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
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