class Ransack::Nodes::Value
def array_of_arrays?(val)
def array_of_arrays?(val) Array === val && Array === val.first end
def cast(type)
def cast(type) case type when :date cast_to_date(value) when :datetime, :timestamp, :time cast_to_time(value) when :boolean cast_to_boolean(value) when :integer cast_to_integer(value) when :float cast_to_float(value) when :decimal cast_to_decimal(value) when :money cast_to_money(value) else cast_to_string(value) end end
def cast_to_boolean(val)
def cast_to_boolean(val) if Constants::TRUE_VALUES.include?(val) true elsif Constants::FALSE_VALUES.include?(val) false else nil end end
def cast_to_date(val)
def cast_to_date(val) if val.respond_to?(:to_date) val.to_date rescue nil else y, m, d = *[val].flatten m ||= 1 d ||= 1 Date.new(y, m, d) rescue nil end end
def cast_to_decimal(val)
def cast_to_decimal(val) if val.blank? nil elsif val.class == BigDecimal val elsif val.respond_to?(:to_d) val.to_d else val.to_s.to_d end end
def cast_to_float(val)
def cast_to_float(val) val.blank? ? nil : val.to_f end
def cast_to_integer(val)
def cast_to_integer(val) val.blank? ? nil : val.to_i end
def cast_to_money(val)
def cast_to_money(val) val.blank? ? nil : val.to_f.to_s end
def cast_to_string(val)
def cast_to_string(val) val.respond_to?(:to_s) ? val.to_s : String.new(val) end
def cast_to_time(val)
def cast_to_time(val) if val.is_a?(Array) Time.zone.local(*val) rescue nil else unless val.acts_like?(:time) val = val.is_a?(String) ? Time.zone.parse(val) : val.to_time rescue val end val.in_time_zone rescue nil end end
def eql?(other)
def eql?(other) self.class == other.class && self.value == other.value end
def hash
def hash value.hash end
def initialize(context, value = nil)
def initialize(context, value = nil) super(context) @value = value end
def inspect
def inspect "Value <#{value}>" end
def persisted?
def persisted? false end