Class: ReeMapper::Rational
- Inherits:
-
AbstractType
- Object
- AbstractType
- ReeMapper::Rational
- Defined in:
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/rational.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
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/rational.rb', line 18 def cast(value) if value.is_a?(Rational) value elsif value.is_a?(String) begin Rational(value) rescue ArgumentError, ZeroDivisionError raise ReeMapper::CoercionError.new("is invalid rational, got `#{truncate(value.inspect)}`") end elsif value.is_a?(Numeric) Rational(value) else raise ReeMapper::TypeError.new("should be a rational, got `#{truncate(value.inspect)}`") end end |
#db_dump(value) ⇒ Object
35 36 37 |
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/rational.rb', line 35 def db_dump(value) serialize(value).to_s end |
#db_load(value) ⇒ Object
40 41 42 |
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/rational.rb', line 40 def db_load(value) cast(value) end |
#db_load_trusted_check(var) ⇒ Object
4 5 6 |
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/rational.rb', line 4 def db_load_trusted_check(var) "#{var}.is_a?(::Rational)" end |
#serialize(value) ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/rational.rb', line 9 def serialize(value) if value.is_a?(Rational) value else raise ReeMapper::TypeError.new("should be a rational, got `#{truncate(value.inspect)}`") end end |