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