Module: Xqsr3::Conversion::BoolParser

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

Overview

+include-able module that provides Boolean parsing

Constant Summary collapse

DEFAULT_TRUE_VALUES =

Recognised truey values

[ /true/i, '1' ]
DEFAULT_FALSE_VALUES =

Recognised falsey values

[ /false/i, '0' ]

Class Method Summary collapse

Class Method Details

.to_bool(s, **options) ⇒ Object

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

Signature

  • Parameters:

    • s The string to be parsed

    • 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. Defaults to false

    • :true_value An object to be returned if matching succeeds to match against :true_values. Defaults to true



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

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