Class: JsonModel::TypeSpec

Inherits:
Object
  • Object
show all
Defined in:
lib/json_model/type_spec.rb,
lib/json_model/type_spec/enum.rb,
lib/json_model/type_spec/array.rb,
lib/json_model/type_spec/object.rb,
lib/json_model/type_spec/primitive.rb,
lib/json_model/type_spec/composition.rb,
lib/json_model/type_spec/primitive/null.rb,
lib/json_model/type_spec/primitive/number.rb,
lib/json_model/type_spec/primitive/string.rb,
lib/json_model/type_spec/primitive/boolean.rb,
lib/json_model/type_spec/primitive/integer.rb,
lib/json_model/type_spec/primitive/numeric.rb,
lib/json_model/type_spec/composition/all_of.rb,
lib/json_model/type_spec/composition/any_of.rb,
lib/json_model/type_spec/composition/one_of.rb

Direct Known Subclasses

Array, Composition, Enum, Object, Primitive

Defined Under Namespace

Classes: Array, Composition, Enum, Object, Primitive

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.resolve(type, **options) ⇒ TypeSpec

Parameters:

  • type (Object)
  • options (Hash)

Returns:



36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/json_model/type_spec.rb', line 36

def resolve(type, **options)
  case type
  when TypeSpec
    type
  when Class
    resolve_type_from_class(type, **options)
  when T::AllOf, T::AnyOf, T::Boolean, T::OneOf, T::Array, T::Enum
    type.to_type_spec(**options)
  else
    raise(ArgumentError, "Unsupported type: #{type}")
  end
end

Instance Method Details

#as_schema(**options) ⇒ Hash

Parameters:

  • options (Hash)

Returns:

  • (Hash)

Raises:

  • (NotImplementedError)


13
14
15
# File 'lib/json_model/type_spec.rb', line 13

def as_schema(**options)
  raise(NotImplementedError)
end

#cast(json) ⇒ ::Object

Parameters:

  • json (::Object)

Returns:

  • (::Object)


28
29
30
# File 'lib/json_model/type_spec.rb', line 28

def cast(json)
  json
end

#referenced_schemasArray<TypeSpec>

Returns:



22
23
24
# File 'lib/json_model/type_spec.rb', line 22

def referenced_schemas
  []
end

#register_validations(name, klass) ⇒ Object

Parameters:

  • name (Symbol)
  • klass (ActiveModel::Validations)


19
# File 'lib/json_model/type_spec.rb', line 19

def register_validations(name, klass) end