Class: Literal::Rails::FlagsType
- Inherits:
-
ActiveModel::Type::Value
- Object
- ActiveModel::Type::Value
- Literal::Rails::FlagsType
- Defined in:
- lib/literal/rails/flags_type.rb
Instance Method Summary collapse
- #cast(value) ⇒ Object
- #deserialize(value) ⇒ Object
-
#initialize(flags_class) ⇒ FlagsType
constructor
A new instance of FlagsType.
- #serialize(value) ⇒ Object
Constructor Details
#initialize(flags_class) ⇒ FlagsType
4 5 6 7 |
# File 'lib/literal/rails/flags_type.rb', line 4 def initialize(flags_class) @flags_class = flags_class super() end |
Instance Method Details
#cast(value) ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/literal/rails/flags_type.rb', line 9 def cast(value) case value when @flags_class value else deserialize(value) end end |
#deserialize(value) ⇒ Object
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/literal/rails/flags_type.rb', line 31 def deserialize(value) case value when nil nil else @flags_class.from_bit_string(value) || raise( ArgumentError.new("Invalid value: #{value.inspect} for #{@flags_class}"), ) end end |
#serialize(value) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/literal/rails/flags_type.rb', line 18 def serialize(value) case value when nil nil when @flags_class value.to_bit_string else raise Literal::ArgumentError.new( "Invalid value: #{value.inspect}. Expected an #{@flags_class.inspect}.", ) end end |