Sha256: d68f56d2554634b18aa35b23851ab4938dc0974bb9a1bdcf976c242bb1efad8d

Contents?: true

Size: 911 Bytes

Versions: 10

Compression:

Stored size: 911 Bytes

Contents

module DataMapper
  class Property
    class Boolean < Object
      include PassThroughLoadDump

      primitive ::TrueClass

      def primitive?(value)
        value == true || value == false
      end

      # Typecast a value to a true or false
      #
      # @param [Integer, #to_str] value
      #   value to typecast
      #
      # @return [Boolean]
      #   true or false constructed from value
      #
      # @api private
      def typecast_to_primitive(value)
        if value.kind_of?(::Integer)
          return true  if value == 1
          return false if value == 0
        elsif value.respond_to?(:to_str)
          string_value = value.to_str.downcase
          return true  if %w[ true  1 t ].include?(string_value)
          return false if %w[ false 0 f ].include?(string_value)
        end

        value
      end
    end # class Boolean
  end # class Property
end # module DataMapper

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
dm-core-1.1.0 lib/dm-core/property/boolean.rb
dm-core-1.1.0.rc3 lib/dm-core/property/boolean.rb
dm-core-1.1.0.rc2 lib/dm-core/property/boolean.rb
dm-core-1.1.0.rc1 lib/dm-core/property/boolean.rb
dm-core-1.0.2 lib/dm-core/property/boolean.rb
dm-core-1.0.1 lib/dm-core/property/boolean.rb
dm-core-1.0.0 lib/dm-core/property/boolean.rb
dm-core-1.0.0.rc3 lib/dm-core/property/boolean.rb
dm-core-1.0.0.rc2 lib/dm-core/property/boolean.rb
dm-core-1.0.0.rc1 lib/dm-core/property/boolean.rb