Class: Enumy::Rails::ActiveModel::Type::Enum
- Inherits:
-
ActiveModel::Type::Value
- Object
- ActiveModel::Type::Value
- Enumy::Rails::ActiveModel::Type::Enum
- Defined in:
- lib/enumy/rails/active_model/type/enum.rb
Instance Method Summary collapse
- #cast(value) ⇒ Object
- #deserialize(value) ⇒ Object
-
#initialize(enum_class) ⇒ Enum
constructor
A new instance of Enum.
- #serialize(value) ⇒ Object
- #type ⇒ Object
Constructor Details
#initialize(enum_class) ⇒ Enum
Returns a new instance of Enum.
6 7 8 9 |
# File 'lib/enumy/rails/active_model/type/enum.rb', line 6 def initialize(enum_class) @enum_class = enum_class super() end |
Instance Method Details
#cast(value) ⇒ Object
11 12 13 |
# File 'lib/enumy/rails/active_model/type/enum.rb', line 11 def cast(value) value.is_a?(@enum_class) ? value : @enum_class.find_by(key: value&.to_sym) end |
#deserialize(value) ⇒ Object
23 24 25 |
# File 'lib/enumy/rails/active_model/type/enum.rb', line 23 def deserialize(value) value.is_a?(@enum_class) ? value : @enum_class.find_by(key: value&.to_sym) end |
#serialize(value) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/enumy/rails/active_model/type/enum.rb', line 15 def serialize(value) if value.is_a?(@enum_class) value.key.to_s else @enum_class.find_by(key: value&.to_sym) ? value&.to_s : nil end end |
#type ⇒ Object
27 28 29 |
# File 'lib/enumy/rails/active_model/type/enum.rb', line 27 def type :enum end |