riak-client 2.4.0 → 2.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e69542068c0033bf752de26a98b52209dfc927eb
4
- data.tar.gz: fa172471d0c908c7a4f0973b4b7761fd5992c678
3
+ metadata.gz: 775e6ed1950061ebe5279c61fff8acf00bfa05a2
4
+ data.tar.gz: fc0faafd31a106b8b68efe324fd96f70f89989e4
5
5
  SHA512:
6
- metadata.gz: 31155ddb63ea99ccc2b4cec938309a1f046f2244fce48344dc56432cb85e6b8f3bfcd7304d959fcf1677372ea98dd5e6348a9b33930eb8f690d01103c52b7f91
7
- data.tar.gz: 124d775714691a3052d4a4c9888d9a55a6e3e87e7245dd7556700c44bcde12a395e0bed0e54f97ae9adfe1fb50d93b6e1c543acc00a9e9803ee91a1ae6b1d83b
6
+ metadata.gz: a8c7827313ac1b86e7224a54691c650252703c9b29036f69450a469ce924034cb1cf62e758af6d054c9b0a45646464273db4b0a16e57ad69c25c92cea8ce061c
7
+ data.tar.gz: 7d66559d01009bc676694f0d7807f01051f02d2cb80a08e86d46fe8cf25e21b2ed6daf6c8bd28ef9801fc1f6b759bf34a37b003abc37c8a592297961d83b0aa0
data/.gitignore CHANGED
@@ -35,8 +35,7 @@ Gemfile.lock
35
35
 
36
36
  .riaktest
37
37
  **/.riaktest
38
- vendor/erlang
39
- vendor/riak
40
38
  .ruby-version
41
39
  tmp
42
40
  tags
41
+ vendor/
data/README.md CHANGED
@@ -9,10 +9,17 @@ Exhaustive documentation is available at
9
9
  http://basho.github.io/riak-ruby-client/ , and API documentation can be
10
10
  read at http://www.rubydoc.info/gems/riak-client/frames .
11
11
 
12
+ ## Build Status
13
+
14
+ [![Build Status](https://travis-ci.org/basho/riak-ruby-client.svg?branch=master)](https://travis-ci.org/basho/riak-ruby-client)
15
+
12
16
  ## Dependencies
13
17
 
14
- Ruby 1.9.3, 2.0, 2.1, and 2.2 are supported. JRuby in 1.9 and 2.0 modes are
15
- also supported. `riak-client` is not compatible with Ruby 1.8.
18
+ Ruby 1.9.3, 2.0, 2.1, and 2.2 are supported. JRuby in 2.0 mode is also supported.
19
+
20
+ Travis CI is configured to run unit tests on 1.9.3, 2.X versions of Ruby and JRuby.
21
+
22
+ *NOTE:* official support for the [Ruby 1.9 series ended February of 2015](https://www.ruby-lang.org/en/news/2014/01/10/ruby-1-9-3-will-end-on-2015/).
16
23
 
17
24
  In JRuby 1.7.13, OCSP validation is absent, and CRL validation always
18
25
  fails. [This issue is being tracked][1] and this document will be updated when
@@ -1,6 +1,12 @@
1
1
  # Riak Ruby Client Release Notes
2
2
 
3
- ## [2.4.0 Release - 2016-06-15](https://github.com/basho/riak-ruby-client/issues?q=milestone%3Ariak-ruby-client-2.4.0)
3
+ ## [`2.4.1` Release - 2016-08-02](https://github.com/basho/riak-ruby-client/issues?q=milestone%3Ariak-ruby-client-2.4.1)
4
+
5
+ Version `2.4.1` is a bugfix release that addresses some issues when using Ruby `1.9.3`.
6
+
7
+ * [Update `1.9.3` support](https://github.com/basho/riak-ruby-client/pull/281)
8
+
9
+ ## [`2.4.0` Release - 2016-06-15](https://github.com/basho/riak-ruby-client/issues?q=milestone%3Ariak-ruby-client-2.4.0)
4
10
 
5
11
  Highlights (see milestone for full changes):
6
12
 
@@ -8,22 +14,19 @@ Highlights (see milestone for full changes):
8
14
  * [Add `gzip` encoding support](https://github.com/basho/riak-ruby-client/pull/273)
9
15
  * [Support connect, read and write socket timeouts](https://github.com/basho/riak-ruby-client/pull/270)
10
16
 
11
- ## 2.3.2 Release - 2016-01-12
17
+ ## `2.3.2` Release - 2016-01-12
12
18
 
13
- Version 2.3.2 is a bugfix release with a small fix in support of the Riak TS
14
- time series database.
19
+ Version `2.3.2` is a bugfix release with a small fix in support of the Riak TS time series database.
15
20
 
16
21
  * Queries that return no data will return an empty collection.
17
22
 
18
- ## 2.3.0 Release - 2015-12-15
23
+ ## `2.3.0` Release - 2015-12-15
19
24
 
20
- Version 2.3.0 is a feature release, introducing support for the Riak TS time
21
- series database.
25
+ Version `2.3.0` is a feature release, introducing support for the Riak TS time series database.
22
26
 
23
27
  New features:
24
28
 
25
- * Riak TS support, for queries, reads, writes, and deletes. Key list support
26
- is also provided.
29
+ * Riak TS support, for queries, reads, writes, and deletes. Key list support is also provided.
27
30
  * Network error logging, thanks to Sebastian Röbke.
28
31
 
29
32
  Bug fixes:
@@ -31,18 +34,18 @@ Bug fixes:
31
34
  * The `last_modified` field on `RContent` and `RObject` objects now has
32
35
  microsecond precision, thanks to Sebastian Röbke.
33
36
 
34
- ## 2.2.2 Release - 2015-11-24
37
+ ## `2.2.2` Release - 2015-11-24
35
38
 
36
- Version 2.2.2 is a bugfix release.
39
+ Version `2.2.2` is a bugfix release.
37
40
 
38
- * Corrected Hidekazu Tanaka's name in the 2.2.1 release notes.
41
+ * Corrected Hidekazu Tanaka's name in the `2.2.1` release notes.
39
42
  * Deleting maps inside map CRDTs works, thanks to Kazuhiro Suzuki.
40
43
  * Fix `Riak::Search::Index` documentation in the readme, thanks to Zshawn Syed.
41
- * Tighten up the i18n gem requirement, thanks to Sean Kelly.
44
+ * Tighten up the `i18n` gem requirement, thanks to Sean Kelly.
42
45
 
43
- ## 2.2.1 Release - 2015-06-19
46
+ ## `2.2.1` Release - 2015-06-19
44
47
 
45
- Version 2.2.1 is a bugfix release, and includes additional testing of character
48
+ Version `2.2.1` is a bugfix release, and includes additional testing of character
46
49
  encodings.
47
50
 
48
51
  Bug fixes:
@@ -63,9 +66,9 @@ Testing enhancements:
63
66
  findings are available on our documentation site:
64
67
  http://basho.github.io/riak-ruby-client/encoding.html
65
68
 
66
- ## 2.2.0 Release - 2015-05-27
69
+ ## `2.2.0` Release - 2015-05-27
67
70
 
68
- Version 2.2.0 is a feature release.
71
+ Version `2.2.0` is a feature release.
69
72
 
70
73
  New features:
71
74
 
@@ -90,9 +93,9 @@ Bug fixes:
90
93
  * Loading and storing objects from bucket-typed buckets is more reliable and
91
94
  correct thanks to Takeshi Akima.
92
95
 
93
- ## 2.1.0 Release - 2014-10-03
96
+ ## `2.1.0` Release - 2014-10-03
94
97
 
95
- Version 2.1.0 is a feature release.
98
+ Version `2.1.0` is a feature release.
96
99
 
97
100
  New features:
98
101
 
@@ -106,12 +109,12 @@ New features:
106
109
  Small changes:
107
110
 
108
111
  * UTF-8 support is now tested against.
109
- * RSpec 3.1 is now supported, although RSpec 3.0 still works.
112
+ * RSpec `3.1` is now supported, although RSpec `3.0` still works.
110
113
  * Specs no longer use gratuitous "should"s.
111
114
 
112
- ## 2.0.0 Release - 2014-09-05
115
+ ## `2.0.0` Release - 2014-09-05
113
116
 
114
- Version 2.0.0 is a major new version with many new features, API changes,
117
+ Version `2.0.0` is a major new version with many new features, API changes,
115
118
  and feature removals.
116
119
 
117
120
  New features:
@@ -128,7 +131,7 @@ API changes:
128
131
  * Exceptions raised by the client are subclasses of `Riak::Error`.
129
132
  * The internals of the Beefcake-based protocol buffers support have been
130
133
  refactored for reliability and maintainability.
131
- * The Beefcake version has been bumped to 1.0 for improvements in speed and
134
+ * The Beefcake version has been bumped to `1.0` for improvements in speed and
132
135
  memory usage.
133
136
  * Tests now use RSpec 3.
134
137
 
@@ -139,22 +142,22 @@ Removed:
139
142
  * The included test-server has been removed. Tests now require a Riak node to
140
143
  be configured and run independently of the test suite.
141
144
 
142
- ## 1.4.2 Bugfix Release - 2013-09-20
145
+ ## `1.4.2` Bugfix Release - 2013-09-20
143
146
 
144
- Release 1.4.2 fixes a couple bugs.
147
+ Release `1.4.2` fixes a couple bugs.
145
148
 
146
149
  Bugfixes:
147
150
 
148
- * 2i Requests over PBC block forever when 0 results match in 1.4.x,
151
+ * 2i Requests over PBC block forever when 0 results match in `1.4.x`,
149
152
  reported by Sean "graphex" McKibben in
150
153
  https://github.com/basho/riak-ruby-client/pull/121 and
151
154
  https://github.com/basho/riak-ruby-client/pull/122
152
155
  * RObject#links is an Array when loaded from PBC, reported by Dan Pisarski in
153
156
  https://github.com/basho/riak-ruby-client/pull/123
154
157
 
155
- ## 1.4.1 Patch/Bugfix Release - 2013-09-06
158
+ ## `1.4.1` Patch/Bugfix Release - 2013-09-06
156
159
 
157
- Release 1.4.1 fixes a few minor bugs and issues.
160
+ Release `1.4.1` fixes a few minor bugs and issues.
158
161
 
159
162
  Issues:
160
163
 
@@ -170,16 +173,16 @@ Bugfixes:
170
173
  * Issue when reading Git-based version numbers, reported and fixed by
171
174
  jacepp in https://github.com/basho/riak-ruby-client/pull/120
172
175
 
173
- ## 1.4.0 Feature Release - 2013-08-16
176
+ ## `1.4.0` Feature Release - 2013-08-16
174
177
 
175
- Release 1.4.0 adds support for Riak 1.4 and fixes a few bugs.
178
+ Release `1.4.0` adds support for Riak `1.4` and fixes a few bugs.
176
179
 
177
180
  Features for all Riak versions:
178
181
 
179
182
  * Multi-get parallelizes fetching multiple objects from one or more
180
183
  buckets.
181
184
 
182
- Features for Riak 1.4 and newer:
185
+ Features for Riak `1.4` and newer:
183
186
 
184
187
  * Bucket properties are settable and resettable over Protocol Buffers.
185
188
  * Distributed counters are implemented by the `Riak::Counter` class.
@@ -193,18 +196,18 @@ Features for Riak 1.4 and newer:
193
196
 
194
197
  Bugfixes:
195
198
 
196
- * Tests pass and don't stall in Ruby 2.0.
199
+ * Tests pass and don't stall in Ruby `2.0`.
197
200
  * Zero-length key and bucket names are forbidden in the client.
198
- * Test server works with Riak 1.4.
201
+ * Test server works with Riak `1.4`.
199
202
 
200
- ## 1.2.0 Feature Release - 2013-05-15
203
+ ## `1.2.0` Feature Release - 2013-05-15
201
204
 
202
- Release 1.2.0 adds support for Riak 1.3 and fixes a number of bugs.
205
+ Release `1.2.0` adds support for Riak `1.3` and fixes a number of bugs.
203
206
 
204
207
  Features:
205
208
 
206
209
  * The "clear bucket properties" feature has been added. This resets
207
- modified bucket properties to the defaults on Riak 1.3+ clusters.
210
+ modified bucket properties to the defaults on Riak `1.3+` clusters.
208
211
  * Anonymous "strfun" MapReduce functions written in Erlang can now be
209
212
  sent from the client, if they are enabled on the server-side.
210
213
 
@@ -215,19 +218,19 @@ Bugfixes:
215
218
  submitting secondary index queries.
216
219
  * Search query results returned over PBC are assumed to be UTF-8
217
220
  encoded.
218
- * The newer Excon API is now supported (>= 0.19.0).
221
+ * The newer Excon API is now supported `(>= 0.19.0)`.
219
222
  * When enabling the search commit hook, the 'precommit' property will
220
223
  now be checked more safely.
221
224
 
222
- ## 1.1.1 Patch/Bugfix Release - 2013-01-10
225
+ ## `1.1.1` Patch/Bugfix Release - 2013-01-10
223
226
 
224
- Release 1.1.1 fixes a minor bug with Net::HTTP on Ruby 1.8.7 with
227
+ Release `1.1.1` fixes a minor bug with Net::HTTP on Ruby `1.8.7` with
225
228
  patch level less than 315, where an exception would cause closing the
226
229
  socket before it was opened.
227
230
 
228
- ## 1.1.0 Feature Release - 2012-11-07
231
+ ## `1.1.0` Feature Release - 2012-11-07
229
232
 
230
- Release 1.1.0 includes full Riak 1.2 compatibility, and includes
233
+ Release `1.1.0` includes full Riak `1.2` compatibility, and includes
231
234
  improvements to the handling of siblings, the node generation
232
235
  tools, and resolves a number of important bugs.
233
236
 
@@ -235,12 +238,12 @@ Features:
235
238
 
236
239
  * Client features are enabled or disabled based on the detected Riak
237
240
  version.
238
- * Riak 1.2 compatibility, including search and 2I over Protocol
241
+ * Riak `1.2` compatibility, including search and 2I over Protocol
239
242
  Buffers.
240
- * Phaseless MapReduce (which was available in 1.1) is allowed, using
243
+ * Phaseless MapReduce (which was available in `1.1`) is allowed, using
241
244
  feature detection to determine whether an exception is raised.
242
245
  * Conditional store_object operations on Protocol Buffers use the
243
- message features available since Riak 1.0.
246
+ message features available since Riak `1.0`.
244
247
  * The integration test-suite can be run without generating a test
245
248
  node, which lets us support riak_test.
246
249
 
@@ -272,32 +275,32 @@ Bugfixes:
272
275
  required all HTTP requests to use streaming, even if invoked without
273
276
  a block.
274
277
 
275
- ## 1.0.5 Packaging Fix Release - 2012-10-12
278
+ ## `1.0.5` Packaging Fix Release - 2012-10-12
276
279
 
277
- Release 1.0.5 fixes a bug with the RubyGems packaging that
280
+ Release `1.0.5` fixes a bug with the RubyGems packaging that
278
281
  inadvertently included the `pkg` directory, which might have included
279
282
  old gem versions. No client functionality has changed with this
280
283
  release.
281
284
 
282
- ## 1.0.4 Patch/Bugfix Release - 2012-07-06
285
+ ## `1.0.4` Patch/Bugfix Release - 2012-07-06
283
286
 
284
- Release 1.0.4 fixes some bugs and adds configurable timeouts to the
287
+ Release `1.0.4` fixes some bugs and adds configurable timeouts to the
285
288
  Excon HTTP backend.
286
289
 
287
- **NOTE** This will likely be the last release in the 1.0.x series. The
288
- planned changes for 1.1.x are:
290
+ **NOTE** This will likely be the last release in the `1.0.x` series. The
291
+ planned changes for `1.1.x` are:
289
292
 
290
293
  * `Riak::Client::Pool` will be replaced by the `innertube` gem, which
291
294
  is its extraction.
292
- * Riak 1.2 will be fully supported, including the new native 2I and
295
+ * Riak `1.2` will be fully supported, including the new native 2I and
293
296
  Search features over PBC.
294
297
  * A richer exception hierarchy so that applications can deal more
295
298
  intelligently with request failures.
296
299
 
297
- Changes in 1.0.4:
300
+ Changes in `1.0.4`:
298
301
 
299
302
  * A function in the `app_helper` module that does not exist on Riak
300
- 1.1 and earlier was copied into the KV test backend.
303
+ `1.1` and earlier was copied into the KV test backend.
301
304
  * Excon's configuration logic was made more idempotent.
302
305
  * Added timeout support to the Excon HTTP backend. [Mat Brown]
303
306
  * Corrected an misnamed constant in Excon which would cause timeouts
@@ -309,9 +312,9 @@ Changes in 1.0.4:
309
312
  * Deprecation warnings for later versions of MultiJson are now
310
313
  resolved.
311
314
 
312
- ## 1.0.3 Patch/Bugfix Release - 2012-04-17
315
+ ## `1.0.3` Patch/Bugfix Release - 2012-04-17
313
316
 
314
- Release 1.0.3 fixes some bugs and adds support for secondary indexes
317
+ Release `1.0.3` fixes some bugs and adds support for secondary indexes
315
318
  when using `Riak::TestServer`.
316
319
 
317
320
  * Added tests for secondary index features to the unified backend
@@ -324,7 +327,7 @@ when using `Riak::TestServer`.
324
327
  generated nodes.
325
328
  * `Riak::Node::Console` no longer overrides the `SIGWINCH` signal
326
329
  handler.
327
- * [Excon](http://rubygems.org/gems/excon) versions >= 0.7.0 are now
330
+ * [Excon](http://rubygems.org/gems/excon) versions >= `0.7.0` are now
328
331
  supported.
329
332
  * IO-style objects will now be emitted properly when using the
330
333
  `NetHTTPBackend`. [#1](https://github.com/basho/riak-ruby-client/issues/1)
@@ -338,14 +341,14 @@ when using `Riak::TestServer`.
338
341
  * Nodes should now generate properly when the `riak` script is a
339
342
  symlink (e.g. Homebrew). [#26](https://github.com/basho/riak-ruby-client/issues/26)
340
343
 
341
- ## 1.0.2 Repackaging - 2012-04-02
344
+ ## `1.0.2` Repackaging - 2012-04-02
342
345
 
343
- Release 1.0.2 relaxes the multi_json dependency so that the client
344
- will function with Rails 3.2. Version 1.0.1 was yanked.
346
+ Release `1.0.2` relaxes the multi_json dependency so that the client
347
+ will function with Rails 3.2. Version `1.0.1` was yanked.
345
348
 
346
- ## 1.0.1 Patch/Bugfix Release - 2012-04-02
349
+ ## `1.0.1` Patch/Bugfix Release - 2012-04-02
347
350
 
348
- Release 1.0.1 is a minor bugfix/patch release. Included in this
351
+ Release `1.0.1` is a minor bugfix/patch release. Included in this
349
352
  release are:
350
353
 
351
354
  * I18n messages now include the French locale. [Eric Cestari]
@@ -356,18 +359,18 @@ release are:
356
359
  is not clobbered by the `Riak::TestServer` when adding the location
357
360
  of the test backend code.
358
361
 
359
- ## 1.0.0 Feature Release - 2012-02-03
362
+ ## `1.0.0` Feature Release - 2012-02-03
360
363
 
361
- Release 1.0.0 is a major feature release and is the first where
364
+ Release `1.0.0` is a major feature release and is the first where
362
365
  `riak-client`, `ripple`, and `riak-sessions` will be released
363
366
  independently (see below). Because there too many individual changes
364
367
  to recount, this entry will cover the major features and bugfixes
365
368
  present in the release.
366
369
 
367
- ### Riak 1.0/1.1 Compatibility
370
+ ### Riak `1.0`/`1.1` Compatibility
368
371
 
369
- `riak-client` is fully compatible with Riak 1.0.x and
370
- (yet-to-be-released) 1.1.x, including supporting secondary indexes,
372
+ `riak-client` is fully compatible with Riak `1.0.x` and
373
+ (yet-to-be-released) `1.1.x`, including supporting secondary indexes,
371
374
  integrated search, and cluster membership commands.
372
375
 
373
376
  ### Multi-node Connections and Retries
@@ -441,7 +444,7 @@ The new gem and repository locations are below:
441
444
 
442
445
  ### Significant Known Issues
443
446
 
444
- Attempting to use the Protocol Buffers transport with a 0.14.x cluster
447
+ Attempting to use the Protocol Buffers transport with a `0.14.x` cluster
445
448
  may cause the connection to dump because of incompatibilities in
446
449
  certain protocol messages. This will be addressed in a future
447
450
  patch/bugfix release.
@@ -449,7 +452,7 @@ patch/bugfix release.
449
452
  The new node generation and test server intermittently fails on JRuby,
450
453
  specifically from deadlocks related to blocking opens for the console
451
454
  FIFOs. The JRuby team has helped on this issue, but there may not be a
452
- clear resolution path until JRuby 1.7 or later.
455
+ clear resolution path until JRuby `1.7` or later.
453
456
 
454
457
  Other known issues may be found on the
455
458
  [Github issue tracker](https://github.com/basho/riak-ruby-client/issues?milestone=1).
@@ -1,3 +1,4 @@
1
+ require 'riak/util/string'
1
2
  require 'riak/util/translation'
2
3
  require 'riak/client'
3
4
  require 'riak/robject'
@@ -8,6 +9,7 @@ module Riak
8
9
  # Represents and encapsulates operations on a Riak bucket. You may retrieve a bucket
9
10
  # using {Client#bucket}, or create it manually and retrieve its meta-information later.
10
11
  class Bucket
12
+ include Util::String
11
13
  include Util::Translation
12
14
 
13
15
  # (Riak Search) The precommit specification for kv/search integration
@@ -294,12 +296,7 @@ module Riak
294
296
  def ==(other)
295
297
  return false unless self.class == other.class
296
298
  return false unless self.client == other.client
297
- return true if self.name.nil? && other.name.nil?
298
- unless self.name.respond_to?(:bytes) && other.name.respond_to?(:bytes)
299
- return false
300
- end
301
- return false unless self.name.bytes == other.name.bytes
302
- true
299
+ return equal_bytes?(self.name, other.name)
303
300
  end
304
301
  end
305
302
  end
@@ -1,9 +1,12 @@
1
+ require 'riak/util/string'
1
2
  require 'riak/bucket_typed/bucket'
2
3
  require 'riak/errors/crdt_error'
3
4
 
4
5
  module Riak
5
6
  # A representation of a bucket type
6
7
  class BucketType
8
+ include Util::String
9
+
7
10
  attr_reader :client, :name
8
11
 
9
12
  # The name of Riak's default bucket type.
@@ -70,8 +73,7 @@ module Riak
70
73
  def ==(other)
71
74
  return false unless self.class == other.class
72
75
  return false unless self.client == other.client
73
- return false unless self.name.bytes == other.name.bytes
74
- true
76
+ return equal_bytes?(self.name, other.name)
75
77
  end
76
78
  end
77
79
  end
@@ -20,9 +20,13 @@ module Riak
20
20
 
21
21
  private
22
22
  def start_tcp_socket(host, port, options = {})
23
- Socket.tcp(host, port, connect_timeout: options[:connect_timeout]).tap do |sock|
24
- sock.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, true)
25
- end
23
+ sock = if options[:connect_timeout] && RUBY_VERSION >= '2.0.0'
24
+ Socket.tcp(host, port, connect_timeout: options[:connect_timeout])
25
+ else
26
+ Socket.tcp(host, port)
27
+ end
28
+ sock.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, true)
29
+ sock
26
30
  end
27
31
 
28
32
  def start_tls_socket(host, port, options)