class Cassandra::Types::Map

Attributes

key_type[R]

@private

value_type[R]

@private

Public Class Methods

new(key_type, value_type) click to toggle source

@private

Calls superclass method Cassandra::Type::new
    # File lib/cassandra/types.rb
695 def initialize(key_type, value_type)
696   super(:map)
697   @key_type = key_type
698   @value_type = value_type
699 end

Public Instance Methods

==(other)
Alias for: eql?
assert(value, message = nil, &block) click to toggle source

Asserts that a given value is a Hash @param value [Object] value to be validated @param message [String] error message to use when assertion fails @yieldreturn [String] error message to use when assertion fails @raise [ArgumentError] if the value is not a Hash @return [void] @see Cassandra::Type#assert

    # File lib/cassandra/types.rb
735 def assert(value, message = nil, &block)
736   Util.assert_instance_of(::Hash, value, message, &block)
737   value.each do |k, v|
738     Util.assert_type(@key_type, k, message, &block)
739     Util.assert_type(@value_type, v, message, &block)
740   end
741   nil
742 end
eql?(other) click to toggle source
    # File lib/cassandra/types.rb
760 def eql?(other)
761   other.is_a?(Map) &&
762     @key_type == other.key_type &&
763     @value_type == other.value_type
764 end
Also aliased as: ==
hash() click to toggle source
    # File lib/cassandra/types.rb
750 def hash
751   @hash ||= begin
752     h = 17
753     h = 31 * h + @kind.hash
754     h = 31 * h + @key_type.hash
755     h = 31 * h + @value_type.hash
756     h
757   end
758 end
new(*value) click to toggle source

Coerces the value to Hash @param value [Object] original value @return [Hash] value @see Cassandra::Type#new

    # File lib/cassandra/types.rb
705 def new(*value)
706   value = value.first if value.one?
707 
708   case value
709   when ::Hash
710     value.each do |k, v|
711       Util.assert_type(@key_type, k)
712       Util.assert_type(@value_type, v)
713     end
714     value
715   when ::Array
716     result = ::Hash.new
717     value.each_slice(2) do |(k, v)|
718       Util.assert_type(@key_type, k)
719       Util.assert_type(@value_type, v)
720       result[k] = v
721     end
722     result
723   else
724     raise ::ArgumentError, "cannot convert #{value.inspect} to #{self}"
725   end
726 end
to_s() click to toggle source

@return [String] `“map<type, type>”` @see Cassandra::Type#to_s

    # File lib/cassandra/types.rb
746 def to_s
747   "map<#{@key_type}, #{@value_type}>"
748 end