Sha256: 13b074e2b2deb92458733440196f59906c26eb86eccf45050065c59ac072fd73

Contents?: true

Size: 576 Bytes

Versions: 1

Compression:

Stored size: 576 Bytes

Contents

# inspired by
# https://github.com/typesigs/safebool/blob/master/lib/safebool.rb

module Boolean
  TRUE_VALUES  = %w[true yes on t y 1]
  FALSE_VALUES = %w[false no off f n 0]

  def self.parse data
    case data.to_s.downcase.strip
    when *TRUE_VALUES
      true
    when *FALSE_VALUES
      false
    else
      nil
    end
  end
end

class TrueClass
  include Boolean

  def to_i
    1
  end
end

class FalseClass
  include Boolean

  def to_i
    0
  end
end

class Numeric
  def to_b
    self > 0
  end
end

class Object
  def to_b
    !!::Boolean.parse(self)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lux-fw-0.6.2 ./lib/overload/boolean.rb