class Typero::ModelType

Public Instance Methods

db_schema() click to toggle source
# File lib/typero/type/types/model_type.rb, line 17
def db_schema
  [:jsonb, {
    null: false
  }]
end
set() click to toggle source
# File lib/typero/type/types/model_type.rb, line 2
def set
  value(&:to_h)

  errors = {}

  schema = opts[:model].is_a?(Typero::Schema) ? opts[:model] : Typero.schema(opts[:model])

  # by default models in schems are strict true (remove undefined keys)
  schema.validate value, strict: true do |field, error|
    errors[field] = error
  end

  raise TypeError.new errors.to_json if errors.keys.first
end