Module: Explicit::Spec::Boolean

Extended by:
Boolean
Included in:
Boolean
Defined in:
lib/explicit/spec/boolean.rb

Constant Summary collapse

VALUES =
{
  "true" => true,
  "on" => true,
  "1" => true,
  "false" => false,
  "off" => false,
  "0" => false
}.freeze

Instance Method Summary collapse

Instance Method Details

#build(options) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/explicit/spec/boolean.rb', line 15

def build(options)
  lambda do |value|
    value =
      if value.is_a?(TrueClass) || value.is_a?(FalseClass)
        value
      elsif value.is_a?(::String)
        VALUES[value]
      else
        nil
      end

    return [:error, :boolean] if value.nil?

    [:ok, value]
  end
end