Module: ActiveRecord::ConnectionAdapters::CockroachDB::OID::Interval

Defined in:
lib/active_record/connection_adapters/cockroachdb/oid/interval.rb

Overview

:nodoc:

Constant Summary collapse

DEFAULT_PRECISION =

microseconds

6

Instance Method Summary collapse

Instance Method Details

#cast_value(value) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/active_record/connection_adapters/cockroachdb/oid/interval.rb', line 12

def cast_value(value)
  case value
  when ::ActiveSupport::Duration
    value
  when ::String
    begin
      PostgresqlInterval::Parser.parse(value)
    rescue PostgresqlInterval::ParseError
      # Try ISO 8601
      super
    end
  else
    super
  end
end

#serialize(value) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/active_record/connection_adapters/cockroachdb/oid/interval.rb', line 28

def serialize(value)
  precision = self.precision || DEFAULT_PRECISION
  case value
  when ::ActiveSupport::Duration
    serialize_duration(value, precision)
  when ::Numeric
    serialize_duration(value.seconds, precision)
  else
    super
  end
end

#type_cast_for_schema(value) ⇒ Object



40
41
42
# File 'lib/active_record/connection_adapters/cockroachdb/oid/interval.rb', line 40

def type_cast_for_schema(value)
  serialize(value).inspect
end