Sha256: 14a97fecda2464e8a8cf27c0d1bc9725cf07755ab11b7e51ebf1e6a8b7329ff3

Contents?: true

Size: 1.47 KB

Versions: 6

Compression:

Stored size: 1.47 KB

Contents

module Pione
  module Util
    module BooleanValue
      class << self
        # Return boolean value of the object.
        #
        # @param val [Object]
        #   target object
        # @return [Boolean]
        #   boolean of the object
        def of(val)
          case val
          when NilClass
            false
          when TrueClass
            true
          when FalseClass
            false
          when String
            of_string(val)
          when Numeric
            of_number(val)
          else
            raise ArgumentError.new(val)
          end
        end

        private

        # Return boolean value of the string. Ignoring letter cases, "true",
        # "t", "yes", and "y" are true, and "false", "f", "no", and "n" are
        # false. Ohterwise raise `ArgumentError`.
        #
        # @param val [String]
        #   the string
        # @return [Boolean]
        #   boolean of the string
        def of_string(val)
          case val.downcase
          when "true", "t", "yes", "y"
            true
          when "false", "f", "no", "n"
            false
          else
            raise ArgumentError.new(val)
          end
        end

        # Return boolean value of the number. Return true if the number is
        # greater than 0.
        #
        # @param val [Numeric]
        #   the number
        # @return [Boolean]
        #   boolean of the number
        def of_number(val)
          val > 0
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
pione-0.5.0 lib/pione/util/boolean-value.rb
pione-0.5.0.alpha.2 lib/pione/util/boolean-value.rb
pione-0.5.0.alpha.1 lib/pione/util/boolean-value.rb
pione-0.4.2 lib/pione/util/boolean-value.rb
pione-0.4.1 lib/pione/util/boolean-value.rb
pione-0.4.0 lib/pione/util/boolean-value.rb