method
type_cast
v4.0.2 -
Show latest stable
-
0 notes -
Class: Range
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2 (0)
- 4.1.8 (0)
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.0
- 6.1.3.1
- 6.1.7.7
- 7.0.0
- 7.1.3.2
- 7.1.3.4
- What's this?
type_cast(value)
public
Hide source
# File activerecord/lib/active_record/connection_adapters/postgresql/oid.rb, line 135 def type_cast(value) return if value.nil? || value == 'empty' return value if value.is_a?(::Range) extracted = extract_bounds(value) case @subtype when :date from = ConnectionAdapters::Column.value_to_date(extracted[:from]) from -= 1.day if extracted[:exclude_start] to = ConnectionAdapters::Column.value_to_date(extracted[:to]) when :decimal from = BigDecimal.new(extracted[:from].to_s) # FIXME: add exclude start for ::Range, same for timestamp ranges to = BigDecimal.new(extracted[:to].to_s) when :time from = ConnectionAdapters::Column.string_to_time(extracted[:from]) to = ConnectionAdapters::Column.string_to_time(extracted[:to]) when :integer from = to_integer(extracted[:from]) rescue value ? 1 : 0 from -= 1 if extracted[:exclude_start] to = to_integer(extracted[:to]) rescue value ? 1 : 0 else return value end ::Range.new(from, to, extracted[:exclude_end]) end