Sha256: 5b6cdd9bb2f430b276713bac43255a58b6b33adc2f5ee3e0517a8c6f8579b0f2

Contents?: true

Size: 854 Bytes

Versions: 1

Compression:

Stored size: 854 Bytes

Contents

module Virtus
  module Typecast

    # Typecast defined values into true or false.
    # See TRUE_VALUES and FALSE_VALUES constants for a reference.
    class Boolean

      TRUE_VALUES  = [ 1, '1', 't', 'T', 'true',  'TRUE'  ].freeze
      FALSE_VALUES = [ 0, '0', 'f', 'F', 'false', 'FALSE' ].freeze
      BOOLEAN_MAP  = Hash[ TRUE_VALUES.product([ true ]) + FALSE_VALUES.product([ false ]) ].freeze

      # Typecast value to TrueClass or FalseClass
      #
      # @example
      #   Virtus::Typecast::Boolean.call('T') # => true
      #   Virtus::Typecast::Boolean.call('F') # => false
      #
      # @param [Integer, String]
      #
      # @return [TrueClass, FalseClass]
      #
      # @api public
      def self.call(value)
        BOOLEAN_MAP.fetch(value, value)
      end

    end # class Boolean
  end # module Typecast
end # module Virtus

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
virtus-0.0.4 lib/virtus/typecast/boolean.rb