module RSchema::Coercers::Boolean
Coerces certain strings, and nil, to true or false
Constants
- FALSEY_STRINGS
- TRUTHY_STRINGS
Public Instance Methods
build(_schema)
click to toggle source
# File lib/rschema/coercers/boolean.rb, line 14 def build(_schema) self end
call(value)
click to toggle source
# File lib/rschema/coercers/boolean.rb, line 18 def call(value) case value when true, false then Result.success(value) when nil then Result.success(false) when String then coerce_string(value) else Result.failure end end
will_affect?(value)
click to toggle source
# File lib/rschema/coercers/boolean.rb, line 27 def will_affect?(value) value != true && value != false end
Private Instance Methods
coerce_string(str)
click to toggle source
# File lib/rschema/coercers/boolean.rb, line 33 def coerce_string(str) if TRUTHY_STRINGS.include?(str.downcase) Result.success(true) elsif FALSEY_STRINGS.include?(str.downcase) Result.success(false) else Result.failure end end