Class: JsonModel::TypeSpec::Enum
- Inherits:
-
JsonModel::TypeSpec
- Object
- JsonModel::TypeSpec
- JsonModel::TypeSpec::Enum
- Defined in:
- lib/json_model/type_spec/enum.rb
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.
7 8 9 10 11 12 13 14 |
# File 'lib/json_model/type_spec/enum.rb', line 7 def initialize(*values) super() @values = values if @values.blank? raise(ArgumentError, 'Enum type spec requires a non-empty enum array') end end |
Instance Method Details
#as_schema(**_options) ⇒ Hash
18 19 20 21 22 |
# File 'lib/json_model/type_spec/enum.rb', line 18 def as_schema(**) { enum: @values, }.compact end |
#register_validations(name, klass) ⇒ Object
26 27 28 29 30 |
# File 'lib/json_model/type_spec/enum.rb', line 26 def register_validations(name, klass) super klass.validates(name, inclusion: { in: @values }) end |