module Findable::Schema::Conversion

Constants

FALSE_VALUE

Public Class Methods

add_type!(type) click to toggle source
# File lib/findable/schema/conversion.rb, line 18
def add_type!(type)
  return type if type.is_a?(Proc)
  types[type.to_sym] = method(type).to_proc
end
clear_types() click to toggle source
# File lib/findable/schema/conversion.rb, line 23
def clear_types
  @_types = nil
end
to(type) click to toggle source
# File lib/findable/schema/conversion.rb, line 7
def to(type)
  return types[:default] if type.nil?
  types[type.to_sym] || add_type!(type)
end
types() click to toggle source
# File lib/findable/schema/conversion.rb, line 12
def types
  @_types ||= {
    default: Proc.new {|value| value }
  }
end

Private Class Methods

boolean(value) click to toggle source
# File lib/findable/schema/conversion.rb, line 45
def boolean(value)
  if value.is_a?(TrueClass) || value.is_a?(FalseClass)
    value
  else
    value.in?(FALSE_VALUE) ? false : !!value
  end
end
date(value) click to toggle source
# File lib/findable/schema/conversion.rb, line 53
def date(value)
  return value if value.is_a?(Date)
  Date.parse(value)
end
datetime(value) click to toggle source
# File lib/findable/schema/conversion.rb, line 58
def datetime(value)
  if value.is_a?(Time) || value.is_a?(ActiveSupport::TimeWithZone)
    return value
  end
  (Time.zone || Time).parse(value)
end
decimal(value) click to toggle source
# File lib/findable/schema/conversion.rb, line 37
def decimal(value)
  BigDecimal(value)
end
float(value) click to toggle source
# File lib/findable/schema/conversion.rb, line 33
def float(value)
  value.to_f
end
inquiry(value) click to toggle source
# File lib/findable/schema/conversion.rb, line 69
def inquiry(value)
  value.to_s.inquiry
end
integer(value) click to toggle source

Conversion methods

# File lib/findable/schema/conversion.rb, line 29
def integer(value)
  value.to_i
end
string(value) click to toggle source
# File lib/findable/schema/conversion.rb, line 41
def string(value)
  value.to_s
end
symbol(value) click to toggle source
# File lib/findable/schema/conversion.rb, line 65
def symbol(value)
  value.to_sym
end