cassandra-driver 1.0.0.beta.3-java → 1.0.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +51 -14
  3. data/lib/cassandra.rb +164 -78
  4. data/lib/cassandra/address_resolution.rb +36 -0
  5. data/lib/cassandra/address_resolution/policies.rb +2 -0
  6. data/lib/cassandra/address_resolution/policies/ec2_multi_region.rb +56 -0
  7. data/lib/cassandra/address_resolution/policies/none.rb +35 -0
  8. data/lib/cassandra/auth.rb +1 -1
  9. data/lib/cassandra/auth/providers/password.rb +1 -1
  10. data/lib/cassandra/cluster.rb +18 -5
  11. data/lib/cassandra/cluster/client.rb +175 -101
  12. data/lib/cassandra/{client/connection_manager.rb → cluster/connection_pool.rb} +5 -5
  13. data/lib/cassandra/cluster/connector.rb +142 -56
  14. data/lib/cassandra/cluster/control_connection.rb +385 -134
  15. data/lib/cassandra/{client/null_logger.rb → cluster/failed_connection.rb} +12 -14
  16. data/lib/cassandra/cluster/options.rb +13 -2
  17. data/lib/cassandra/cluster/registry.rb +19 -9
  18. data/lib/cassandra/column.rb +5 -0
  19. data/lib/cassandra/compression.rb +1 -1
  20. data/lib/cassandra/compression/compressors/lz4.rb +1 -1
  21. data/lib/cassandra/compression/compressors/snappy.rb +1 -1
  22. data/lib/cassandra/driver.rb +29 -21
  23. data/lib/cassandra/errors.rb +325 -35
  24. data/lib/cassandra/execution/options.rb +13 -6
  25. data/lib/cassandra/execution/trace.rb +4 -4
  26. data/lib/cassandra/future.rb +7 -3
  27. data/lib/cassandra/keyspace.rb +5 -0
  28. data/lib/cassandra/load_balancing/policies/dc_aware_round_robin.rb +13 -4
  29. data/lib/cassandra/load_balancing/policies/token_aware.rb +2 -4
  30. data/lib/cassandra/load_balancing/policies/white_list.rb +3 -6
  31. data/lib/cassandra/null_logger.rb +35 -0
  32. data/lib/cassandra/protocol.rb +0 -16
  33. data/lib/cassandra/protocol/cql_byte_buffer.rb +18 -18
  34. data/lib/cassandra/protocol/cql_protocol_handler.rb +78 -8
  35. data/lib/cassandra/protocol/frame_decoder.rb +2 -2
  36. data/lib/cassandra/protocol/frame_encoder.rb +1 -1
  37. data/lib/cassandra/protocol/requests/query_request.rb +1 -11
  38. data/lib/cassandra/protocol/response.rb +1 -1
  39. data/lib/cassandra/protocol/responses/detailed_error_response.rb +16 -1
  40. data/lib/cassandra/protocol/responses/error_response.rb +17 -0
  41. data/lib/cassandra/protocol/responses/event_response.rb +1 -1
  42. data/lib/cassandra/protocol/responses/raw_rows_result_response.rb +1 -1
  43. data/lib/cassandra/protocol/responses/result_response.rb +1 -1
  44. data/lib/cassandra/protocol/responses/rows_result_response.rb +1 -1
  45. data/lib/cassandra/protocol/type_converter.rb +4 -3
  46. data/lib/cassandra/reconnection.rb +1 -1
  47. data/lib/cassandra/result.rb +4 -6
  48. data/lib/cassandra/retry.rb +3 -5
  49. data/lib/cassandra/session.rb +14 -5
  50. data/lib/cassandra/statements/prepared.rb +5 -1
  51. data/lib/cassandra/table.rb +6 -1
  52. data/lib/cassandra/time_uuid.rb +21 -83
  53. data/lib/cassandra/util.rb +131 -1
  54. data/lib/cassandra/uuid.rb +6 -4
  55. data/lib/cassandra/uuid/generator.rb +207 -0
  56. data/lib/cassandra/version.rb +1 -1
  57. data/lib/cassandra_murmur3.jar +0 -0
  58. metadata +43 -49
  59. data/lib/cassandra/client.rb +0 -144
  60. data/lib/cassandra/client/batch.rb +0 -212
  61. data/lib/cassandra/client/client.rb +0 -591
  62. data/lib/cassandra/client/column_metadata.rb +0 -54
  63. data/lib/cassandra/client/connector.rb +0 -277
  64. data/lib/cassandra/client/execute_options_decoder.rb +0 -59
  65. data/lib/cassandra/client/peer_discovery.rb +0 -50
  66. data/lib/cassandra/client/prepared_statement.rb +0 -314
  67. data/lib/cassandra/client/query_result.rb +0 -230
  68. data/lib/cassandra/client/request_runner.rb +0 -71
  69. data/lib/cassandra/client/result_metadata.rb +0 -48
  70. data/lib/cassandra/client/void_result.rb +0 -78
@@ -103,7 +103,7 @@ module Cassandra
103
103
  when false then io.print(FALSE_STR)
104
104
  when true then io.print(TRUE_STR)
105
105
  else
106
- raise "unsupported type: #{object.inspect}"
106
+ raise ::ArgumentError, "unsupported type: #{object.inspect}"
107
107
  end
108
108
 
109
109
  io.string
@@ -137,6 +137,136 @@ module Cassandra
137
137
  DBL_QUOT + name + DBL_QUOT
138
138
  end
139
139
 
140
+ def assert_type(type, value, message = nil, &block)
141
+ return if value.nil?
142
+
143
+ case type
144
+ when ::Array
145
+ case type.first
146
+ when :list
147
+ assert_instance_of(::Array, value, message, &block)
148
+ value.each do |v|
149
+ assert_type(type[1], v)
150
+ end
151
+ when :set
152
+ assert_instance_of(::Set, value, message, &block)
153
+ value.each do |v|
154
+ assert_type(type[1], v)
155
+ end
156
+ when :map
157
+ assert_instance_of(::Hash, value, message, &block)
158
+ value.each do |k, v|
159
+ assert_type(type[1], k)
160
+ assert_type(type[2], v)
161
+ end
162
+ else
163
+ raise ::RuntimeError, "unsupported complex type #{type.inspect}"
164
+ end
165
+ else
166
+ case type
167
+ when :ascii then assert_instance_of(::String, value, message, &block)
168
+ when :bigint then assert_instance_of(::Numeric, value, message, &block)
169
+ when :blob then assert_instance_of(::String, value, message, &block)
170
+ when :boolean then assert_instance_of_one_of([::TrueClass, ::FalseClass], value, message, &block)
171
+ when :counter then assert_instance_of(::Numeric, value, message, &block)
172
+ when :decimal then assert_instance_of(::BigDecimal, value, message, &block)
173
+ when :double then assert_instance_of(::Float, value, message, &block)
174
+ when :float then assert_instance_of(::Float, value, message, &block)
175
+ when :inet then assert_instance_of(::IPAddr, value, message, &block)
176
+ when :int then assert_instance_of(::Numeric, value, message, &block)
177
+ when :text then assert_instance_of(::String, value, message, &block)
178
+ when :varchar then assert_instance_of(::String, value, message, &block)
179
+ when :timestamp then assert_instance_of(::Time, value, message, &block)
180
+ when :timeuuid then assert_instance_of(TimeUuid, value, message, &block)
181
+ when :uuid then assert_instance_of(Uuid, value, message, &block)
182
+ when :varint then assert_instance_of(::Numeric, value, message, &block)
183
+ else
184
+ raise ::RuntimeError, "unsupported type #{type.inspect}"
185
+ end
186
+ end
187
+ end
188
+
189
+ def assert_instance_of(kind, value, message = nil, &block)
190
+ unless value.is_a?(kind)
191
+ message = yield if block_given?
192
+ message ||= "value must be an instance of #{kind}, #{value.inspect} given"
193
+
194
+ raise ::ArgumentError, message
195
+ end
196
+ end
197
+
198
+ def assert_instance_of_one_of(kinds, value, message = nil, &block)
199
+ unless kinds.any? {|kind| value.is_a?(kind)}
200
+ message = yield if block_given?
201
+ message ||= "value must be an instance of one of #{kinds.inspect}, #{value.inspect} given"
202
+
203
+ raise ::ArgumentError, message
204
+ end
205
+ end
206
+
207
+ def assert_responds_to(method, value, message = nil, &block)
208
+ unless value.respond_to?(method)
209
+ message = yield if block_given?
210
+ message ||= "value #{value.inspect} must respond to #{method.inspect}, but doesn't"
211
+
212
+ raise ::ArgumentError, message
213
+ end
214
+ end
215
+
216
+ def assert_responds_to_all(methods, value, message = nil, &block)
217
+ unless methods.all? {|method| value.respond_to?(method)}
218
+ message = yield if block_given?
219
+ message ||= "value #{value.inspect} must respond to all methods #{methods.inspect}, but doesn't"
220
+
221
+ raise ::ArgumentError, message
222
+ end
223
+ end
224
+
225
+ def assert_not_empty(value, message = nil, &block)
226
+ if value.empty?
227
+ message = yield if block_given?
228
+ message ||= "value cannot be empty"
229
+
230
+ raise ::ArgumentError, message
231
+ end
232
+ end
233
+
234
+ def assert_file_exists(path, message = nil, &block)
235
+ unless ::File.exists?(path)
236
+ message = yield if block_given?
237
+ message ||= "expected file at #{path.inspect} to exist, but it doesn't"
238
+
239
+ raise ::ArgumentError, message
240
+ end
241
+ end
242
+
243
+ def assert_one_of(range, value, message = nil, &block)
244
+ unless range.include?(value)
245
+ message = yield if block_given?
246
+ message ||= "value must be included in #{value.inspect}, #{value.inspect} given"
247
+
248
+ raise ::ArgumentError, message
249
+ end
250
+ end
251
+
252
+ def assert(condition, message = nil, &block)
253
+ unless condition
254
+ message = yield if block_given?
255
+ message ||= "assertion failed"
256
+
257
+ raise ::ArgumentError, message
258
+ end
259
+ end
260
+
261
+ def assert_equal(expected, actual, message = nil, &block)
262
+ unless expected == actual
263
+ message = yield if block_given?
264
+ message ||= "expected #{actual.inspect} to equal #{expected.inspect}"
265
+
266
+ raise ::ArgumentError, message
267
+ end
268
+ end
269
+
140
270
  # @private
141
271
  LOWERCASE_REGEXP = /[[:lower:]\_]*/
142
272
  # @private
@@ -22,7 +22,7 @@ module Cassandra
22
22
  # This is a very basic implementation of UUIDs and exists more or less just
23
23
  # to encode and decode UUIDs from and to Cassandra.
24
24
  #
25
- # If you want to generate UUIDs see {Cassandra::TimeUuid::Generator}.
25
+ # If you want to generate UUIDs see {Cassandra::Uuid::Generator}.
26
26
  #
27
27
  class Uuid
28
28
  # Creates a new UUID either from a string (expected to be on the standard 8-4-4-4-12 form, or just 32 characters without hyphens), or from a 128 bit number.
@@ -88,17 +88,19 @@ module Cassandra
88
88
  # @private
89
89
  def from_s(str)
90
90
  str = str.gsub(HYPHEN, EMPTY_STRING)
91
- raise ArgumentError, "Expected 32 hexadecimal digits but got #{str.length}" unless str.length == 32
92
- raise ArgumentError, "invalid value for Integer(): \"#{str}\"" unless str =~ HEX_RE
91
+ raise ::ArgumentError, "Expected 32 hexadecimal digits but got #{str.length}" unless str.length == 32
92
+ raise ::ArgumentError, "invalid value for Integer(): \"#{str}\"" unless str =~ HEX_RE
93
93
  Integer(str, 16)
94
94
  end
95
95
  else
96
96
  # @private
97
97
  def from_s(str)
98
98
  str = str.gsub(HYPHEN, EMPTY_STRING)
99
- raise ArgumentError, "Expected 32 hexadecimal digits but got #{str.length}" unless str.length == 32
99
+ raise ::ArgumentError, "Expected 32 hexadecimal digits but got #{str.length}" unless str.length == 32
100
100
  Integer(str, 16)
101
101
  end
102
102
  end
103
103
  end
104
104
  end
105
+
106
+ require 'cassandra/uuid/generator'
@@ -0,0 +1,207 @@
1
+ # encoding: utf-8
2
+
3
+ #--
4
+ # Copyright 2013-2014 DataStax, Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #++
18
+
19
+ module Cassandra
20
+ class Uuid
21
+ # A UUID generator.
22
+ #
23
+ # This class can be used to genereate Apache Cassandra timeuuid and uuid
24
+ # values.
25
+ #
26
+ # @see Cassandra::Uuid::Generator#now Generating a sequence time UUIDs
27
+ # with reasonable uniqueness guarantees.
28
+ # @see Cassandra::Uuid::Generator#at Generating a time UUID for a given
29
+ # time object or unix timestamp.
30
+ # @see Cassandra::Uuid::Generator#uuid Generating completely random v4
31
+ # UUIDs.
32
+ #
33
+ # @note Instances of this class are absolutely not threadsafe. You should
34
+ # never share instances between threads.
35
+ #
36
+ class Generator
37
+ # Create a new UUID generator.
38
+ #
39
+ # The clock ID and node ID components are set to random numbers when the
40
+ # generator is created. These are used for generation of time UUIDs only.
41
+ #
42
+ # @param [Integer] node_id an alternate node ID
43
+ # @param [Integer] clock_id an alternate clock ID
44
+ # @param [Object<#now>] clock used to generate timeuuid from current time
45
+ #
46
+ # @raise [ArgumentError] if clock doesn't respond to `now`
47
+ def initialize(node_id = (SecureRandom.random_number(2**47) | 0x010000000000), clock_id = SecureRandom.random_number(65536), clock = Time)
48
+ raise ::ArgumentError, "invalid clock" unless clock.respond_to?(:now)
49
+
50
+ @node_id = Integer(node_id)
51
+ @clock_id = Integer(clock_id)
52
+ @clock = clock
53
+ end
54
+
55
+ # Returns a new UUID with a time component that is the current time.
56
+ #
57
+ # If two calls to {#now} happen within the time afforded by the system
58
+ # clock resolution a counter is incremented and added to the time
59
+ # component.
60
+ #
61
+ # If the clock moves backwards the clock ID is reset to a new random
62
+ # number.
63
+ #
64
+ # @example Creating a sequential TimeUuids for the current time
65
+ # generator = Cassandra::Uuid::Generator.new
66
+ # timeuuids = 5.times.map { generator.now }
67
+ #
68
+ # puts timeuuids.zip(timeuuids.map(&:to_time)).map(&:inspect)
69
+ #
70
+ # # Outputs:
71
+ # # [8614b7d0-5646-11e4-8e54-6761d3995ef3, 2014-10-17 21:42:42 UTC]
72
+ # # [8614b91a-5646-11e4-8e54-6761d3995ef3, 2014-10-17 21:42:42 UTC]
73
+ # # [8614b960-5646-11e4-8e54-6761d3995ef3, 2014-10-17 21:42:42 UTC]
74
+ # # [8614b99c-5646-11e4-8e54-6761d3995ef3, 2014-10-17 21:42:42 UTC]
75
+ # # [8614b9ce-5646-11e4-8e54-6761d3995ef3, 2014-10-17 21:42:42 UTC]
76
+ #
77
+ # @see Time.now
78
+ #
79
+ # @return [Cassandra::TimeUuid] a new UUID
80
+ def now
81
+ now = @clock.now
82
+ usecs = now.to_i * 1_000_000 + now.usec
83
+ if @last_usecs && @last_usecs - @sequence <= usecs && usecs <= @last_usecs
84
+ @sequence += 1
85
+ elsif @last_usecs && @last_usecs > usecs
86
+ @sequence = 0
87
+ @clock_id = SecureRandom.random_number(65536)
88
+ else
89
+ @sequence = 0
90
+ end
91
+ @last_usecs = usecs + @sequence
92
+ from_usecs(@last_usecs)
93
+ end
94
+
95
+ # Returns a new UUID with a time component based on the specified Time.
96
+ # A piece of jitter is added to ensure that multiple calls with the same
97
+ # time do not generate the same UUID (if you want determinism you can set
98
+ # the second parameter to zero).
99
+ #
100
+ # @overload at(time, jitter = SecureRandom.random_number(65536))
101
+ # @param [Time] time a Time instance
102
+ # @param [Integer] jitter a number of microseconds to add to the time
103
+ # @return [Cassandra::TimeUuid] a new UUID
104
+ # @overload at(seconds_with_frac, jitter = SecureRandom.random_number(65536))
105
+ # @param [Numeric] seconds_with_frac can be {Integer}, {Float},
106
+ # {Rational}, or other {Numeric}
107
+ # @param [Integer] jitter a number of microseconds to add to the time
108
+ # @return [Cassandra::TimeUuid] a new UUID
109
+ # @overload at(seconds, microseconds_with_frac, jitter = SecureRandom.random_number(65536))
110
+ # @param [Integer] seconds
111
+ # @param [Numeric] microseconds_with_frac can be {Integer}, {Float},
112
+ # {Rational}, or other {Numeric}
113
+ # @param [Integer] jitter a number of microseconds to add to the time
114
+ # @return [Cassandra::TimeUuid] a new UUID
115
+ #
116
+ # @note the `jitter` argument accepted by all variants of this method is
117
+ # required to add randomness to generated {Cassandra::TimeUuid} and
118
+ # might affect the order of generated timestamps. You should set
119
+ # `jitter` to 0 when the source time(stamp)s are unique.
120
+ #
121
+ # @example Creating a TimeUuid from a Time instance
122
+ # generator = Cassandra::Uuid::Generator.new
123
+ # timeuuid = generator.at(Time.at(1413582460))
124
+ #
125
+ # puts timeuuid.to_time
126
+ #
127
+ # # Outputs:
128
+ # # 2014-10-17 21:47:40 UTC
129
+ #
130
+ # @example Creating a TimeUuid from a timestamp
131
+ # generator = Cassandra::Uuid::Generator.new
132
+ # timeuuid = generator.at(1413582423)
133
+ #
134
+ # puts timeuuid.to_time
135
+ #
136
+ # # Outputs:
137
+ # # 2014-10-17 21:47:03 UTC
138
+ #
139
+ # @example Avoid jitter in generated TimeUuid
140
+ # timestamp = 1413582418
141
+ # generator = Cassandra::Uuid::Generator.new
142
+ # timeuuid = generator.at(timestamp, 0)
143
+ #
144
+ # puts timeuuid.to_time.to_i
145
+ #
146
+ # # Outputs:
147
+ # # 1413582418
148
+ #
149
+ # @raise [ArgumentError] when given no arguments or more than 3 arguments
150
+ #
151
+ # @see Time.at
152
+ def at(*args)
153
+ raise ::ArgumentError, "not enough arguments" if args.empty?
154
+ raise ::ArgumentError, "too many arguments" if args.size > 3
155
+
156
+ if args.first.is_a?(Time)
157
+ time = args.shift
158
+ jitter = args.empty? ? SecureRandom.random_number(65536) : Integer(args.shift)
159
+ else
160
+ jitter = args.size > 2 ? Integer(args.pop) : SecureRandom.random_number(65536)
161
+ time = Time.at(*args)
162
+ end
163
+
164
+ from_usecs(time.to_i * 1_000_000 + time.usec + jitter)
165
+ end
166
+
167
+ # Returns a completely random version 4 UUID.
168
+ #
169
+ # @example Generating a random Uuid
170
+ # generator = Cassandra::Uuid::Generator.new
171
+ # uuid = generator.uuid
172
+ #
173
+ # puts uuid
174
+ #
175
+ # # Outputs:
176
+ # # 664dedae-e162-4bc0-9066-b9f1968252aa
177
+ #
178
+ # @see SecureRandom.uuid
179
+ #
180
+ # @return [Cassandra::Uuid] a new UUID
181
+ def uuid
182
+ Uuid.new(SecureRandom.uuid)
183
+ end
184
+
185
+ private
186
+
187
+ # @private
188
+ def from_usecs(usecs)
189
+ t = TimeUuid::GREGORIAN_OFFSET + usecs * 10
190
+ time_hi = t & 0x0fff000000000000
191
+ time_mid = t & 0x0000ffff00000000
192
+ time_low = t & 0x00000000ffffffff
193
+ version = 1
194
+ clock_id = @clock_id & 0x3fff
195
+ node_id = @node_id & 0xffffffffffff
196
+ variant = 0x8000
197
+
198
+ n = (time_low << 96) | (time_mid << 48) | (time_hi << 16)
199
+ n |= version << 76
200
+ n |= (clock_id | variant) << 48
201
+ n |= node_id
202
+
203
+ TimeUuid.new(n)
204
+ end
205
+ end
206
+ end
207
+ end
@@ -17,5 +17,5 @@
17
17
  #++
18
18
 
19
19
  module Cassandra
20
- VERSION = '1.0.0.beta.3'.freeze
20
+ VERSION = '1.0.0'.freeze
21
21
  end
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cassandra-driver
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta.3
4
+ version: 1.0.0
5
5
  platform: java
6
6
  authors:
7
7
  - Theo Hultberg
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-04 00:00:00.000000000 Z
12
+ date: 2014-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ione
@@ -17,12 +17,12 @@ dependencies:
17
17
  requirements:
18
18
  - - ~>
19
19
  - !ruby/object:Gem::Version
20
- version: 1.2.0.pre4
20
+ version: '1.2'
21
21
  requirement: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ~>
24
24
  - !ruby/object:Gem::Version
25
- version: 1.2.0.pre4
25
+ version: '1.2'
26
26
  prerelease: false
27
27
  type: :runtime
28
28
  - !ruby/object:Gem::Dependency
@@ -62,79 +62,61 @@ extensions: []
62
62
  extra_rdoc_files:
63
63
  - README.md
64
64
  files:
65
+ - .yardopts
66
+ - README.md
65
67
  - lib/cassandra.rb
68
+ - lib/cassandra/address_resolution.rb
69
+ - lib/cassandra/address_resolution/policies.rb
70
+ - lib/cassandra/address_resolution/policies/ec2_multi_region.rb
71
+ - lib/cassandra/address_resolution/policies/none.rb
66
72
  - lib/cassandra/auth.rb
67
- - lib/cassandra/client.rb
68
- - lib/cassandra/cluster.rb
69
- - lib/cassandra/column.rb
70
- - lib/cassandra/compression.rb
71
- - lib/cassandra/driver.rb
72
- - lib/cassandra/errors.rb
73
- - lib/cassandra/future.rb
74
- - lib/cassandra/host.rb
75
- - lib/cassandra/keyspace.rb
76
- - lib/cassandra/listener.rb
77
- - lib/cassandra/load_balancing.rb
78
- - lib/cassandra/protocol.rb
79
- - lib/cassandra/reconnection.rb
80
- - lib/cassandra/result.rb
81
- - lib/cassandra/retry.rb
82
- - lib/cassandra/session.rb
83
- - lib/cassandra/statement.rb
84
- - lib/cassandra/statements.rb
85
- - lib/cassandra/table.rb
86
- - lib/cassandra/time_uuid.rb
87
- - lib/cassandra/util.rb
88
- - lib/cassandra/uuid.rb
89
- - lib/cassandra/version.rb
90
73
  - lib/cassandra/auth/providers.rb
91
74
  - lib/cassandra/auth/providers/password.rb
92
- - lib/cassandra/client/batch.rb
93
- - lib/cassandra/client/client.rb
94
- - lib/cassandra/client/column_metadata.rb
95
- - lib/cassandra/client/connection_manager.rb
96
- - lib/cassandra/client/connector.rb
97
- - lib/cassandra/client/execute_options_decoder.rb
98
- - lib/cassandra/client/null_logger.rb
99
- - lib/cassandra/client/peer_discovery.rb
100
- - lib/cassandra/client/prepared_statement.rb
101
- - lib/cassandra/client/query_result.rb
102
- - lib/cassandra/client/request_runner.rb
103
- - lib/cassandra/client/result_metadata.rb
104
- - lib/cassandra/client/void_result.rb
75
+ - lib/cassandra/cluster.rb
105
76
  - lib/cassandra/cluster/client.rb
77
+ - lib/cassandra/cluster/connection_pool.rb
106
78
  - lib/cassandra/cluster/connector.rb
107
79
  - lib/cassandra/cluster/control_connection.rb
80
+ - lib/cassandra/cluster/failed_connection.rb
108
81
  - lib/cassandra/cluster/metadata.rb
109
82
  - lib/cassandra/cluster/options.rb
110
83
  - lib/cassandra/cluster/registry.rb
111
84
  - lib/cassandra/cluster/schema.rb
112
85
  - lib/cassandra/cluster/schema/partitioners.rb
113
- - lib/cassandra/cluster/schema/replication_strategies.rb
114
- - lib/cassandra/cluster/schema/type_parser.rb
115
86
  - lib/cassandra/cluster/schema/partitioners/murmur3.rb
116
87
  - lib/cassandra/cluster/schema/partitioners/ordered.rb
117
88
  - lib/cassandra/cluster/schema/partitioners/random.rb
89
+ - lib/cassandra/cluster/schema/replication_strategies.rb
118
90
  - lib/cassandra/cluster/schema/replication_strategies/network_topology.rb
119
91
  - lib/cassandra/cluster/schema/replication_strategies/none.rb
120
92
  - lib/cassandra/cluster/schema/replication_strategies/simple.rb
93
+ - lib/cassandra/cluster/schema/type_parser.rb
94
+ - lib/cassandra/column.rb
95
+ - lib/cassandra/compression.rb
121
96
  - lib/cassandra/compression/compressors/lz4.rb
122
97
  - lib/cassandra/compression/compressors/snappy.rb
98
+ - lib/cassandra/driver.rb
99
+ - lib/cassandra/errors.rb
123
100
  - lib/cassandra/execution/info.rb
124
101
  - lib/cassandra/execution/options.rb
125
102
  - lib/cassandra/execution/trace.rb
103
+ - lib/cassandra/future.rb
104
+ - lib/cassandra/host.rb
105
+ - lib/cassandra/keyspace.rb
106
+ - lib/cassandra/listener.rb
107
+ - lib/cassandra/load_balancing.rb
126
108
  - lib/cassandra/load_balancing/policies.rb
127
109
  - lib/cassandra/load_balancing/policies/dc_aware_round_robin.rb
128
110
  - lib/cassandra/load_balancing/policies/round_robin.rb
129
111
  - lib/cassandra/load_balancing/policies/token_aware.rb
130
112
  - lib/cassandra/load_balancing/policies/white_list.rb
113
+ - lib/cassandra/null_logger.rb
114
+ - lib/cassandra/protocol.rb
131
115
  - lib/cassandra/protocol/cql_byte_buffer.rb
132
116
  - lib/cassandra/protocol/cql_protocol_handler.rb
133
117
  - lib/cassandra/protocol/frame_decoder.rb
134
118
  - lib/cassandra/protocol/frame_encoder.rb
135
119
  - lib/cassandra/protocol/request.rb
136
- - lib/cassandra/protocol/response.rb
137
- - lib/cassandra/protocol/type_converter.rb
138
120
  - lib/cassandra/protocol/requests/auth_response_request.rb
139
121
  - lib/cassandra/protocol/requests/batch_request.rb
140
122
  - lib/cassandra/protocol/requests/credentials_request.rb
@@ -145,6 +127,7 @@ files:
145
127
  - lib/cassandra/protocol/requests/register_request.rb
146
128
  - lib/cassandra/protocol/requests/startup_request.rb
147
129
  - lib/cassandra/protocol/requests/void_query_request.rb
130
+ - lib/cassandra/protocol/response.rb
148
131
  - lib/cassandra/protocol/responses/auth_challenge_response.rb
149
132
  - lib/cassandra/protocol/responses/auth_success_response.rb
150
133
  - lib/cassandra/protocol/responses/authenticate_response.rb
@@ -163,20 +146,31 @@ files:
163
146
  - lib/cassandra/protocol/responses/supported_response.rb
164
147
  - lib/cassandra/protocol/responses/topology_change_event_response.rb
165
148
  - lib/cassandra/protocol/responses/void_result_response.rb
149
+ - lib/cassandra/protocol/type_converter.rb
150
+ - lib/cassandra/reconnection.rb
166
151
  - lib/cassandra/reconnection/policies.rb
167
152
  - lib/cassandra/reconnection/policies/constant.rb
168
153
  - lib/cassandra/reconnection/policies/exponential.rb
154
+ - lib/cassandra/result.rb
155
+ - lib/cassandra/retry.rb
169
156
  - lib/cassandra/retry/policies.rb
170
157
  - lib/cassandra/retry/policies/default.rb
171
158
  - lib/cassandra/retry/policies/downgrading_consistency.rb
172
159
  - lib/cassandra/retry/policies/fallthrough.rb
160
+ - lib/cassandra/session.rb
161
+ - lib/cassandra/statement.rb
162
+ - lib/cassandra/statements.rb
173
163
  - lib/cassandra/statements/batch.rb
174
164
  - lib/cassandra/statements/bound.rb
175
165
  - lib/cassandra/statements/prepared.rb
176
166
  - lib/cassandra/statements/simple.rb
177
167
  - lib/cassandra/statements/void.rb
178
- - README.md
179
- - .yardopts
168
+ - lib/cassandra/table.rb
169
+ - lib/cassandra/time_uuid.rb
170
+ - lib/cassandra/util.rb
171
+ - lib/cassandra/uuid.rb
172
+ - lib/cassandra/uuid/generator.rb
173
+ - lib/cassandra/version.rb
180
174
  - lib/cassandra_murmur3.jar
181
175
  homepage: http://datastax.github.io/ruby-driver
182
176
  licenses:
@@ -198,12 +192,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
198
192
  version: 1.9.3
199
193
  required_rubygems_version: !ruby/object:Gem::Requirement
200
194
  requirements:
201
- - - '>'
195
+ - - '>='
202
196
  - !ruby/object:Gem::Version
203
- version: 1.3.1
197
+ version: '0'
204
198
  requirements: []
205
199
  rubyforge_project:
206
- rubygems_version: 2.1.9
200
+ rubygems_version: 2.4.2
207
201
  signing_key:
208
202
  specification_version: 4
209
203
  summary: Datastax Ruby Driver for Apache Cassandra