Class: HashCast::Casters::BooleanCaster

Inherits:
Object
  • Object
show all
Defined in:
lib/hashcast/casters/boolean_caster.rb

Constant Summary collapse

REAL_BOOLEANS =
[TrueClass, FalseClass]
TRUE_VALUES =
['1', 'true', 'on', 1]
FALSE_VALUES =
['0', 'false', 'off', 0]

Class Method Summary collapse

Class Method Details

.cast(value, attr_name, options = {}) ⇒ Object



6
7
8
9
10
11
# File 'lib/hashcast/casters/boolean_caster.rb', line 6

def self.cast(value, attr_name, options = {})
  return value if REAL_BOOLEANS.include?(value.class)
  return true  if TRUE_VALUES.include?(value)
  return false if FALSE_VALUES.include?(value)
  raise HashCast::Errors::CastingError, "should be a boolean"
end