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
- .matches_to_(s, expr) ⇒ Object
-
.to_bool(s, **options) ⇒ Object
Attempts to parse the given string
sto a Boolean value, based on the givenoptions.
Class Method Details
.matches_to_(s, expr) ⇒ Object
58 59 60 61 62 63 64 65 66 |
# File 'lib/xqsr3/conversion/bool_parser.rb', line 58 def self.matches_to_ s, expr case expr when ::Regexp return expr =~ s else return s == expr end end |
.to_bool(s, **options) ⇒ Object
Attempts to parse the given string s to a Boolean value, based on the
given options
Signature
-
Parameters:
sThe string to be parsed;options(+Hash+) Options that control the behaviour of the method;
-
Options:
:false_values(+Array+) An array of strings or regular expressions against which to match for false value. Defaults toDEFAULT_FALSE_VALUES;:true_values(+Array+) An array of strings or regular expressions against which to match for true value. Defaults toDEFAULT_TRUE_VALUES;:default_valueAn object to be returned if matching fails. Defaults tonil;:false_valueAn object to be returned if matching succeeds to match against:false_values. Defaults tofalse;:true_valueAn object to be returned if matching succeeds to match against:true_values. Defaults totrue;
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/xqsr3/conversion/bool_parser.rb', line 90 def self.to_bool s, ** true_values = [:true_values] || DEFAULT_TRUE_VALUES true_values = [ true_values ] unless true_values.is_a? ::Array false_values = [:false_values] || DEFAULT_FALSE_VALUES false_values = [ false_values ] unless false_values.is_a? ::Array default_value = [:default] || nil true_value = [:true] || true false_value = [: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 |