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
686 def initialize(key_type, value_type)
687   super(:map)
688   @key_type = key_type
689   @value_type = value_type
690 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
726 def assert(value, message = nil, &block)
727   Util.assert_instance_of(::Hash, value, message, &block)
728   value.each do |k, v|
729     Util.assert_type(@key_type, k, message, &block)
730     Util.assert_type(@value_type, v, message, &block)
731   end
732   nil
733 end
eql?(other) click to toggle source
    # File lib/cassandra/types.rb
751 def eql?(other)
752   other.is_a?(Map) &&
753     @key_type == other.key_type &&
754     @value_type == other.value_type
755 end
Also aliased as: ==
hash() click to toggle source
    # File lib/cassandra/types.rb
741 def hash
742   @hash ||= begin
743     h = 17
744     h = 31 * h + @kind.hash
745     h = 31 * h + @key_type.hash
746     h = 31 * h + @value_type.hash
747     h
748   end
749 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
696 def new(*value)
697   value = value.first if value.one?
698 
699   case value
700   when ::Hash
701     value.each do |k, v|
702       Util.assert_type(@key_type, k)
703       Util.assert_type(@value_type, v)
704     end
705     value
706   when ::Array
707     result = ::Hash.new
708     value.each_slice(2) do |(k, v)|
709       Util.assert_type(@key_type, k)
710       Util.assert_type(@value_type, v)
711       result[k] = v
712     end
713     result
714   else
715     raise ::ArgumentError, "cannot convert #{value.inspect} to #{self}"
716   end
717 end
to_s() click to toggle source

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

    # File lib/cassandra/types.rb
737 def to_s
738   "map<#{@key_type}, #{@value_type}>"
739 end