Module: Xqsr3::Conversion::BoolParser

Defined in:
lib/xqsr3/conversion/bool_parser.rb

Constant Summary collapse

DEFAULT_TRUE_VALUES =
[ /true/i, '1' ]
DEFAULT_FALSE_VALUES =
[ /false/i, '0' ]

Class Method Summary collapse

Class Method Details

.to_bool(s, **options) ⇒ Object

Attempts to parse the given String to a Boolean value, based on the given options

Signature

  • Parameters:

    • options

      An options hash, containing any of the following options

  • Options:

    • :false_values
      ::Array

      An array of strings or regular

      expressions against which to match for false value. Defaults to DEFAULT_FALSE_VALUES

    • :true_values
      ::Array

      An array of strings or regular

      expressions against which to match for true value. Defaults to DEFAULT_TRUE_VALUES

    • :default_value

      An object to be returned if matching fails.

      Defaults to nil

    • :false_value

      An object to be returned if matching succeeds to

      match against :false_values.

    • :true_value

      An object to be returned if matching succeeds to

      match against :true_values.



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/xqsr3/conversion/bool_parser.rb', line 96

def self.to_bool s, **options

  true_values    = options[:true_values] || DEFAULT_TRUE_VALUES
  true_values    = [ true_values ] unless true_values.is_a? ::Array
  false_values = options[:false_values] || DEFAULT_FALSE_VALUES
  false_values = [ false_values ] unless false_values.is_a? ::Array
  default_value  =  options[:default] || nil
  true_value   =  options[:true] || true
  false_value    = options[:false] || false

  return true_value if true_values.any? { |v| self.matches_to_ s, v }
  return false_value if false_values.any? { |v| self.matches_to_ s, v }

  return default_value
end