Class: JsonModel::TypeSpec::Enum
- Inherits:
-
JsonModel::TypeSpec
- Object
- JsonModel::TypeSpec
- JsonModel::TypeSpec::Enum
- Defined in:
- lib/json_model/type_spec/enum.rb
Instance Attribute Summary collapse
-
#values ⇒ Object
readonly
Returns the value of attribute values.
Instance Method Summary collapse
- #as_schema(**_options) ⇒ Hash
-
#initialize(*values) ⇒ Enum
constructor
A new instance of Enum.
- #register_validations(name, klass) ⇒ Object
Methods inherited from JsonModel::TypeSpec
#cast, #referenced_schemas, resolve
Constructor Details
#initialize(*values) ⇒ Enum
Returns a new instance of Enum.
9 10 11 12 13 14 15 16 |
# File 'lib/json_model/type_spec/enum.rb', line 9 def initialize(*values) super() @values = values if @values.blank? raise(ArgumentError, 'Enum type spec requires a non-empty enum array') end end |
Instance Attribute Details
#values ⇒ Object (readonly)
Returns the value of attribute values.
6 7 8 |
# File 'lib/json_model/type_spec/enum.rb', line 6 def values @values end |
Instance Method Details
#as_schema(**_options) ⇒ Hash
20 21 22 23 24 |
# File 'lib/json_model/type_spec/enum.rb', line 20 def as_schema(**) { enum: values, }.compact end |
#register_validations(name, klass) ⇒ Object
28 29 30 31 32 |
# File 'lib/json_model/type_spec/enum.rb', line 28 def register_validations(name, klass) super klass.validates(name, inclusion: { in: values }, allow_nil: true) end |