Class: ReeMapper::Bool

Inherits:
AbstractType
  • Object
show all
Defined in:
lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/bool.rb

Constant Summary collapse

TRUE_CAST_VALUES =
['1', 'true', 'on', 1, true].freeze
FALSE_CAST_VALUES =
['0', 'false', 'off', 0, false].freeze

Instance Method Summary collapse

Instance Method Details

#cast(value) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/bool.rb', line 21

def cast(value)
  if TRUE_CAST_VALUES.include?(value)
    true
  elsif FALSE_CAST_VALUES.include?(value)
    false
  else
    raise ReeMapper::CoercionError.new("is invalid boolean, got `#{truncate(value.inspect)}`")
  end
end

#db_dump(value) ⇒ Object



32
33
34
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/bool.rb', line 32

def db_dump(value)
  serialize(value)
end

#db_load(value) ⇒ Object



37
38
39
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/bool.rb', line 37

def db_load(value)
  cast(value)
end

#db_load_trusted_check(var) ⇒ Object



7
8
9
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/bool.rb', line 7

def db_load_trusted_check(var)
  "(true.equal?(#{var}) || false.equal?(#{var}))"
end

#serialize(value) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/bool.rb', line 12

def serialize(value)
  if value.is_a?(TrueClass) || value.is_a?(FalseClass)
    value
  else
    raise ReeMapper::TypeError.new("should be a boolean, got `#{truncate(value.inspect)}`")
  end
end