Class: ActiveRecord::ConnectionAdapters::Redshift::OID::DateTime
- Inherits:
-
Type::DateTime
- Object
- Type::DateTime
- ActiveRecord::ConnectionAdapters::Redshift::OID::DateTime
- Defined in:
- lib/active_record/connection_adapters/redshift/oid/date_time.rb
Overview
:nodoc:
Instance Method Summary collapse
Instance Method Details
#cast_value(value) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/active_record/connection_adapters/redshift/oid/date_time.rb', line 15 def cast_value(value) if value.is_a?(::String) case value when 'infinity' then ::Float::INFINITY when '-infinity' then -::Float::INFINITY when / BC$/ astronomical_year = format("%04d", -value[/^\d+/].to_i + 1) super(value.sub(/ BC$/, "").sub(/^\d+/, astronomical_year)) else super end else value end end |
#type_cast_for_database(value) ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'lib/active_record/connection_adapters/redshift/oid/date_time.rb', line 6 def type_cast_for_database(value) if has_precision? && value.acts_like?(:time) && value.year <= 0 bce_year = format("%04d", -value.year + 1) super.sub(/^-?\d+/, bce_year) + " BC" else super end end |