Class: PolyId::BinaryUuidType
- Inherits:
-
ActiveModel::Type::Binary
- Object
- ActiveModel::Type::Binary
- PolyId::BinaryUuidType
- Defined in:
- lib/polyid/binary_uuid_type.rb
Instance Method Summary collapse
- #cast(value) ⇒ Object
- #deserialize(value) ⇒ Object
- #serialize(value) ⇒ Object
- #serialize_cast_value(value) ⇒ Object
Instance Method Details
#cast(value) ⇒ Object
3 4 5 6 7 8 9 10 11 |
# File 'lib/polyid/binary_uuid_type.rb', line 3 def cast(value) return if value.nil? if binary_uuid_bytes?(value) deserialize(value) else normalize_uuid(value) end end |
#deserialize(value) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/polyid/binary_uuid_type.rb', line 24 def deserialize(value) return if value.nil? bytes = value.is_a?(Data) ? value.to_s : value return bytes unless binary_uuid_bytes?(bytes) bytes.unpack("H8H4H4H4H12").join("-") end |
#serialize(value) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/polyid/binary_uuid_type.rb', line 13 def serialize(value) return if value.nil? bytes = binary_uuid_bytes?(value) ? value : pack_uuid(normalize_uuid(value)) super(bytes) end |
#serialize_cast_value(value) ⇒ Object
20 21 22 |
# File 'lib/polyid/binary_uuid_type.rb', line 20 def serialize_cast_value(value) serialize(value) end |