Sha256: b3e9fbf2fee56b16ee7c46f5bb098ec0c963fa12248406fa1323b4673647259c

Contents?: true

Size: 714 Bytes

Versions: 2

Compression:

Stored size: 714 Bytes

Contents

module DR
  module Bool
    extend(self)
    def to_bool(el, default=nil)
      case el
      when String
        string=el.chomp
        return true if string =~ (/(true|t|yes|y|1)$/i)
        return false if string.empty? || string =~ (/(false|f|no|n|0)$/i)
      when Fixnum
        return ! (el == 0)
      when Process::Status
        exitstatus=el.exitstatus
        return exitstatus == 0
      else
        return true if el == true
        return false if el == false
        #we don't return !!el because we don't want nil to be false but to
        #give an error
      end
      return default unless default.nil?
      raise ArgumentError.new("Invalid value for Boolean: \"#{el}\"")
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
drain-0.2.0 lib/dr/base/bool.rb
drain-0.1.0 lib/drain/base/bool.rb