Class: Cassandra::Types::Tuple
- Inherits:
-
Cassandra::Type
- Object
- Cassandra::Type
- Cassandra::Types::Tuple
- Defined in:
- lib/cassandra/types.rb
Instance Attribute Summary
Attributes inherited from Cassandra::Type
Instance Method Summary collapse
-
#assert(value, message = nil, &block) ⇒ void
Asserts that a given value is an Cassandra::Tuple.
- #eql?(other) ⇒ Boolean (also: #==)
- #hash ⇒ Object
-
#new(*values) ⇒ Cassandra::Tuple
Coerces the value to Cassandra::Tuple.
-
#to_s ⇒ String
"tuple<type, type, type...>"
.
Instance Method Details
#assert(value, message = nil, &block) ⇒ void
This method returns an undefined value.
Asserts that a given value is an Cassandra::Tuple
1074 1075 1076 1077 1078 1079 1080 1081 |
# File 'lib/cassandra/types.rb', line 1074 def assert(value, = nil, &block) Util.assert_instance_of(Cassandra::Tuple, value, , &block) Util.assert(value.size <= @members.size, , &block) @members.each_with_index do |type, i| Util.assert_type(type, value[i], , &block) end nil end |
#eql?(other) ⇒ Boolean Also known as: ==
1098 1099 1100 |
# File 'lib/cassandra/types.rb', line 1098 def eql?(other) other.is_a?(Tuple) && @members == other.members end |
#hash ⇒ Object
1089 1090 1091 1092 1093 1094 1095 1096 |
# File 'lib/cassandra/types.rb', line 1089 def hash @hash ||= begin h = 17 h = 31 * h + @kind.hash h = 31 * h + @members.hash h end end |
#new(*values) ⇒ Cassandra::Tuple
Coerces the value to Cassandra::Tuple
1057 1058 1059 1060 1061 1062 1063 1064 1065 |
# File 'lib/cassandra/types.rb', line 1057 def new(*values) Util.assert(values.size <= @members.size) do "too many values: #{values.size} out of max #{@members.size}" end values.each_with_index do |v, i| Util.assert_type(@members[i], v) end Cassandra::Tuple::Strict.new(@members, values) end |
#to_s ⇒ String
Returns "tuple<type, type, type...>"
.
1085 1086 1087 |
# File 'lib/cassandra/types.rb', line 1085 def to_s "tuple<#{@members.map(&:to_s).join(', ')}>" end |