class ReeMapper::Integer
def cast(value, name:, location: nil)
def cast(value, name:, location: nil) if value.is_a?(Integer) value elsif value.is_a?(String) coerced_value = Integer(value, exception: false) if coerced_value.nil? raise ReeMapper::CoercionError.new("`#{name}` is invalid integer, got `#{truncate(value.inspect)}`", location) end coerced_value else raise ReeMapper::TypeError.new("`#{name}` should be an integer, got `#{truncate(value.inspect)}`", location) end end
def db_dump(value, name:, location: nil)
def db_dump(value, name:, location: nil) serialize(value, name: name, location: location) end
def db_load(value, name:, location: nil)
def db_load(value, name:, location: nil) cast(value, name: name, location: location) end
def serialize(value, name:, location: nil)
def serialize(value, name:, location: nil) if value.is_a? Integer value else raise ReeMapper::TypeError.new("`#{name}` should be an integer, got `#{truncate(value.inspect)}`", location) end end