Class: ReeMapper::DateTime
- Inherits:
-
AbstractType
- Object
- AbstractType
- ReeMapper::DateTime
- Defined in:
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/date_time.rb
Instance Method Summary collapse
- #cast(value) ⇒ Object
- #db_dump(value) ⇒ Object
- #db_load(value) ⇒ Object
- #db_load_trusted_check(var) ⇒ Object
- #serialize(value) ⇒ Object
Instance Method Details
#cast(value) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/date_time.rb', line 20 def cast(value) if value.class == DateTime value elsif value.class == Time ReeDatetime::InDefaultTimeZone.new.call(value.to_datetime) elsif value.is_a?(String) begin ReeDatetime::InDefaultTimeZone.new.call(DateTime.parse(value)) rescue ArgumentError raise ReeMapper::CoercionError.new("is invalid datetime, got `#{truncate(value.inspect)}`") end else raise ReeMapper::TypeError.new("should be a datetime, got `#{truncate(value.inspect)}`") end end |
#db_dump(value) ⇒ Object
37 38 39 |
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/date_time.rb', line 37 def db_dump(value) serialize(value) end |
#db_load(value) ⇒ Object
42 43 44 |
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/date_time.rb', line 42 def db_load(value) cast(value) end |
#db_load_trusted_check(var) ⇒ Object
6 7 8 |
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/date_time.rb', line 6 def db_load_trusted_check(var) "#{var}.instance_of?(::DateTime)" end |
#serialize(value) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/date_time.rb', line 11 def serialize(value) if value.class == DateTime value else raise ReeMapper::TypeError.new("should be a datetime, got `#{truncate(value.inspect)}`") end end |