Module: Yn
- Defined in:
- lib/yn.rb,
lib/yn/lenient.rb,
lib/yn/version.rb
Overview
Encapsulates all the code of the gem in a meaningful namespace.
Constant Summary collapse
- VERSION =
'1.0.0'.freeze
Class Method Summary collapse
-
.parse(input, lenient: false, default: nil) ⇒ Boolean|nil
Parses yes/no like values.
Class Method Details
.parse(input, lenient: false, default: nil) ⇒ Boolean|nil
Parses yes/no like values
and nil
or default
otherwise.
52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/yn.rb', line 52 def self.parse(input, lenient: false, default: nil) input = input.to_s.strip unless [NilClass, TrueClass, FalseClass].include?(default.class) raise ArgumentError, "Expected the 'default' option to be nil or a boolean, got #{default.class}" end return true if /^(?:y|yes|true|1|on)$/i.match?(input) return false if /^(?:n|no|false|0|off)$/i.match?(input) return Lenient.new.call(input, default) if lenient == true default end |