class Cassandra::Types::Tuple

Attributes

members[R]

@private

Public Class Methods

new(*members) click to toggle source

@private

Calls superclass method Cassandra::Type::new
     # File lib/cassandra/types.rb
1044 def initialize(*members)
1045   super(:tuple)
1046   @members = members
1047 end

Public Instance Methods

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

Asserts that a given value is an Cassandra::Tuple @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 an Cassandra::Tuple @return [void] @see Cassandra::Type#assert

     # File lib/cassandra/types.rb
1074 def assert(value, message = nil, &block)
1075   Util.assert_instance_of(Cassandra::Tuple, value, message, &block)
1076   Util.assert(value.size <= @members.size, message, &block)
1077   @members.each_with_index do |type, i|
1078     Util.assert_type(type, value[i], message, &block)
1079   end
1080   nil
1081 end
eql?(other) click to toggle source
     # File lib/cassandra/types.rb
1098 def eql?(other)
1099   other.is_a?(Tuple) && @members == other.members
1100 end
Also aliased as: ==
hash() click to toggle source
     # File lib/cassandra/types.rb
1089 def hash
1090   @hash ||= begin
1091     h = 17
1092     h = 31 * h + @kind.hash
1093     h = 31 * h + @members.hash
1094     h
1095   end
1096 end
new(*values) click to toggle source

Coerces the value to Cassandra::Tuple @param values [*Object] tuple values @return [Cassandra::Tuple] value @see Cassandra::Type#new @example Creating a tuple

include Cassandra::Types

tuple(varchar, varchar, int).new('Jane', 'Smith', 38) # => (Jane, Smith, 38)
     # File lib/cassandra/types.rb
1057 def new(*values)
1058   Util.assert(values.size <= @members.size) do
1059     "too many values: #{values.size} out of max #{@members.size}"
1060   end
1061   values.each_with_index do |v, i|
1062     Util.assert_type(@members[i], v)
1063   end
1064   Cassandra::Tuple::Strict.new(@members, values)
1065 end
to_s() click to toggle source

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

     # File lib/cassandra/types.rb
1085 def to_s
1086   "tuple<#{@members.map(&:to_s).join(', ')}>"
1087 end