riak-client 2.3.2 → 2.4.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/{README.markdown → README.md} +72 -0
  3. data/Rakefile +9 -10
  4. data/lib/riak/bucket.rb +2 -2
  5. data/lib/riak/client.rb +51 -19
  6. data/lib/riak/client/beefcake/messages.rb +10 -10
  7. data/lib/riak/client/beefcake/object_methods.rb +5 -3
  8. data/lib/riak/client/beefcake/protocol.rb +30 -3
  9. data/lib/riak/client/beefcake/socket.rb +10 -13
  10. data/lib/riak/client/beefcake/time_series_get_operator.rb +8 -3
  11. data/lib/riak/client/beefcake/time_series_list_operator.rb +8 -3
  12. data/lib/riak/client/beefcake/time_series_query_operator.rb +8 -3
  13. data/lib/riak/client/beefcake/ts_cell_codec.rb +11 -1
  14. data/lib/riak/client/beefcake_protobuffs_backend.rb +23 -14
  15. data/lib/riak/client/protobuffs_backend.rb +1 -0
  16. data/lib/riak/counter.rb +2 -2
  17. data/lib/riak/rcontent.rb +30 -7
  18. data/lib/riak/robject.rb +9 -3
  19. data/lib/riak/time_series/list.rb +2 -3
  20. data/lib/riak/time_series/query.rb +2 -1
  21. data/lib/riak/time_series/read.rb +2 -1
  22. data/lib/riak/util/gzip.rb +44 -0
  23. data/lib/riak/version.rb +1 -1
  24. data/riak-client.gemspec +11 -11
  25. data/spec/integration/riak/encodings/kv_spec.rb +6 -0
  26. data/spec/integration/riak/protobuffs/timeouts_spec.rb +174 -0
  27. data/spec/integration/riak/time_series_spec.rb +8 -6
  28. data/spec/riak/beefcake_protobuffs_backend/object_methods_spec.rb +1 -0
  29. data/spec/riak/beefcake_protobuffs_backend/ts_cell_codec_spec.rb +9 -1
  30. data/spec/riak/client_spec.rb +49 -2
  31. data/spec/riak/robject_spec.rb +2 -1
  32. data/spec/riak/stamp_spec.rb +54 -54
  33. data/spec/riak/time_series/listing_spec.rb +1 -0
  34. data/spec/riak/util/gzip_spec.rb +37 -0
  35. data/spec/support/unified_backend_examples.rb +22 -0
  36. metadata +28 -23
@@ -5,7 +5,8 @@ describe 'Time Series',
5
5
  test_client: true, integration: true, time_series: true do
6
6
  let(:table_name){ 'GeoCheckin' }
7
7
 
8
- let(:now){ Time.at(Time.now.to_i) }
8
+ let(:now_ts) { Time.now.to_i }
9
+ let(:now){ Time.at(now_ts) }
9
10
  let(:five_minutes_ago){ now - 300 }
10
11
  let(:now_range_str) do
11
12
  past = (now.to_i - 100) * 1000
@@ -18,16 +19,17 @@ describe 'Time Series',
18
19
  "time > #{range_start} AND time < #{range_end}"
19
20
  end
20
21
 
21
- let(:family){ 'family-' + random_key }
22
- let(:series){ 'series-' + random_key }
22
+ let(:family){ 'geohash-' + random_key }
23
+ let(:series){ 'user-' + random_key }
23
24
 
24
25
  let(:key){ [family, series, now] }
26
+ let(:key_ts){ [family, series, now_ts * 1000] }
25
27
  let(:key2){ [family, series, five_minutes_ago] }
26
28
  let(:datum){ [*key, 'cloudy', 27.1] }
27
29
  let(:datum_null){ [*key2, 'cloudy', nil] }
28
30
 
29
31
  let(:family_series_str) do
30
- "myfamily = '#{family}' AND myseries = '#{series}'"
32
+ "geohash = '#{family}' AND user = '#{series}'"
31
33
  end
32
34
 
33
35
  let(:query) do
@@ -192,7 +194,7 @@ SQL
192
194
  lister = Riak::TimeSeries::List.new test_client, table_name
193
195
 
194
196
  lister.issue! do |row|
195
- found_expectation.found! if row.to_a == key
197
+ found_expectation.found! if row.to_a == key_ts
196
198
  end
197
199
  end
198
200
 
@@ -204,7 +206,7 @@ SQL
204
206
 
205
207
  results = lister.issue!
206
208
 
207
- expect(results).to include key
209
+ expect(results).to include key_ts
208
210
  end
209
211
  end
210
212
  end
@@ -12,6 +12,7 @@ describe Riak::Client::BeefcakeProtobuffsBackend::ObjectMethods do
12
12
  :value => '',
13
13
  :vtag => nil,
14
14
  :content_type => nil,
15
+ :content_encoding => nil,
15
16
  :links => nil,
16
17
  :usermeta => nil,
17
18
  :last_mod => nil,
@@ -5,14 +5,22 @@ require 'time'
5
5
  Riak::Client::BeefcakeProtobuffsBackend.configured?
6
6
 
7
7
  describe Riak::Client::BeefcakeProtobuffsBackend::TsCellCodec do
8
- describe 'symmetric serialziation' do
8
+ describe 'symmetric serialization' do
9
9
  it { is_expected.to symmetric_serialize("hello", varchar_value: "hello")}
10
10
  it { is_expected.to symmetric_serialize(5, sint64_value: 5)}
11
11
  it { is_expected.to symmetric_serialize(123.45, double_value: 123.45) }
12
12
  it do
13
+ subject.convert_timestamp = true
13
14
  is_expected.to symmetric_serialize(Time.parse("June 23, 2015 at 9:46:28 EDT"),
14
15
  timestamp_value: 1_435_067_188_000)
15
16
  end
17
+ # GH-274
18
+ it do
19
+ subject.convert_timestamp = true
20
+ ts = 1_459_444_070_103
21
+ t = Time.at(1_459_444_070, 103_000)
22
+ is_expected.to symmetric_serialize(t, timestamp_value: ts)
23
+ end
16
24
  it { is_expected.to symmetric_serialize(true, boolean_value: true) }
17
25
  it { is_expected.to symmetric_serialize(false, boolean_value: false) }
18
26
  it { is_expected.to symmetric_serialize(nil, {}) }
@@ -17,6 +17,7 @@ describe Riak::Client, test_client: true do
17
17
  it "accepts a Protobuffs port" do
18
18
  client = Riak::Client.new :pb_port => 9000
19
19
  expect(client.nodes.size).to eq(1)
20
+ expect(client.nodes.first.host).to eq('127.0.0.1')
20
21
  expect(client.nodes.first.pb_port).to eq(9000)
21
22
  end
22
23
 
@@ -25,7 +26,7 @@ describe Riak::Client, test_client: true do
25
26
  expect(client.client_id).to eq("AAAAAA==")
26
27
  end
27
28
 
28
- it "creates a client ID if not specified" do
29
+ it "creates a client ID if not specified", :integration => true do
29
30
  expect(Riak::Client.new(pb_port: test_client.nodes.first.pb_port).
30
31
  client_id).to_not be_nil
31
32
  end
@@ -39,6 +40,52 @@ describe Riak::Client, test_client: true do
39
40
  expect(client.nodes.size).to eq(3)
40
41
  expect(client.nodes.first.host).to eq("riak1.basho.com")
41
42
  end
43
+
44
+ it "maps port to unset nodes, and does not create localhost node" do
45
+ client = Riak::Client.new nodes: [
46
+ {host: 'riak1.basho.com'},
47
+ {host: 'riak2.basho.com', pb_port: 1234},
48
+ {host: 'riak3.basho.com', pb_port: 5678}
49
+ ], pb_port: 4321
50
+ expect(client.nodes.size).to eq(3)
51
+ expect(client.nodes[0].host).to eq("riak1.basho.com")
52
+ expect(client.nodes[0].pb_port).to eq(4321)
53
+ expect(client.nodes[1].host).to eq("riak2.basho.com")
54
+ expect(client.nodes[1].pb_port).to eq(1234)
55
+ end
56
+
57
+ it "defaults to max_retries = 2" do
58
+ client = Riak::Client.new
59
+ expect(client.max_retries).to eq(2)
60
+ end
61
+
62
+ it "accepts max_retries option" do
63
+ client = Riak::Client.new :max_retries => 42
64
+ expect(client.max_retries).to eq(42)
65
+ end
66
+
67
+ it "accepts timeouts" do
68
+ client = Riak::Client.new(
69
+ :connect_timeout => 1,
70
+ :read_timeout => 2,
71
+ :write_timeout => 3
72
+ )
73
+ expect(client.connect_timeout).to eq(1)
74
+ expect(client.read_timeout).to eq(2)
75
+ expect(client.write_timeout).to eq(3)
76
+ end
77
+
78
+ it "accepts convert_timestamp" do
79
+ client = Riak::Client.new(
80
+ :convert_timestamp => true
81
+ )
82
+ expect(client.convert_timestamp).to be
83
+ end
84
+
85
+ it "has default convert_timestamp of false" do
86
+ client = Riak::Client.new
87
+ expect(client.convert_timestamp).to_not be
88
+ end
42
89
  end
43
90
 
44
91
  it "exposes a Stamp object" do
@@ -226,7 +273,7 @@ describe Riak::Client, test_client: true do
226
273
  rescue RuntimeError
227
274
  end
228
275
 
229
- expect(call_count).to eq(3)
276
+ expect(call_count).to eq(@client.max_retries + 1)
230
277
  end
231
278
 
232
279
  it "throws a RuntimeError if it runs out of retries" do
@@ -8,7 +8,7 @@ describe Riak::RObject do
8
8
 
9
9
  describe "initialization" do
10
10
  it "sets the bucket" do
11
- @object = Riak::RObject.new(@bucket)
11
+ @object = Riak::RObject.new(@bucket, "bar")
12
12
  expect(@object.bucket).to eq(@bucket)
13
13
  end
14
14
 
@@ -293,6 +293,7 @@ describe Riak::RObject do
293
293
  end
294
294
 
295
295
  it "passes quorum parameters and returnbody to the backend" do
296
+ @object.key = 'foo'
296
297
  expect(@backend).to receive(:store_object).
297
298
  with(@object,
298
299
  returnbody: false,
@@ -1,54 +1,54 @@
1
- require 'spec_helper'
2
- require 'riak/stamp'
3
-
4
- describe Riak::Stamp, test_client: true do
5
- subject { described_class.new test_client }
6
- it "generates always increasing integer identifiers" do
7
- 1000.times do
8
- one = subject.next
9
- two = subject.next
10
- expect([one, two]).to be_all {|i| Integer === i }
11
- expect(two).to be > one
12
- end
13
- end
14
-
15
- it "delays until the next millisecond when the sequence overflows" do
16
- old = subject.instance_variable_get(:@timestamp) + 0
17
- subject.instance_variable_set(:@sequence, described_class::SEQUENCE_MASK)
18
- count = 0
19
- # Simulate the time_gen method returning the same thing multiple times
20
- allow(subject).to receive(:time_gen) do
21
- count += 1
22
- if count < 10
23
- old
24
- else
25
- old + 1
26
- end
27
- end
28
- expect((subject.next >> described_class::TIMESTAMP_SHIFT) & described_class::TIMESTAMP_MASK).to eq(old + 1)
29
- end
30
-
31
- it "raises an exception when the system clock moves backwards" do
32
- old = subject.instance_variable_get(:@timestamp)
33
- expect(subject).to receive(:time_gen).and_return(old - 10)
34
- expect {
35
- subject.next
36
- }.to raise_error(Riak::BackwardsClockError)
37
- end
38
-
39
- # The client/worker ID should be used for disambiguation, not for
40
- # primary ordering. This breaks from the Snowflake model where the
41
- # worker ID is in more significant bits.
42
- it "uses the client ID as the bottom component of the identifier" do
43
- expect(subject.next & described_class::CLIENT_ID_MASK).to eq(subject.client.client_id.hash & described_class::CLIENT_ID_MASK)
44
- end
45
-
46
- context "using a non-integer client ID" do
47
- subject { described_class.new(Riak::Client.new(:client_id => "ripple")) }
48
- let(:hash) { "ripple".hash }
49
-
50
- it "uses the hash of the client ID as the bottom component of the identifier" do
51
- expect(subject.next & described_class::CLIENT_ID_MASK).to eq(subject.client.client_id.hash & described_class::CLIENT_ID_MASK)
52
- end
53
- end
54
- end
1
+ require 'spec_helper'
2
+ require 'riak/stamp'
3
+
4
+ describe Riak::Stamp, test_client: true, integration: true do
5
+ subject { described_class.new test_client }
6
+ it "generates always increasing integer identifiers" do
7
+ 1000.times do
8
+ one = subject.next
9
+ two = subject.next
10
+ expect([one, two]).to be_all {|i| Integer === i }
11
+ expect(two).to be > one
12
+ end
13
+ end
14
+
15
+ it "delays until the next millisecond when the sequence overflows" do
16
+ old = subject.instance_variable_get(:@timestamp) + 0
17
+ subject.instance_variable_set(:@sequence, described_class::SEQUENCE_MASK)
18
+ count = 0
19
+ # Simulate the time_gen method returning the same thing multiple times
20
+ allow(subject).to receive(:time_gen) do
21
+ count += 1
22
+ if count < 10
23
+ old
24
+ else
25
+ old + 1
26
+ end
27
+ end
28
+ expect((subject.next >> described_class::TIMESTAMP_SHIFT) & described_class::TIMESTAMP_MASK).to eq(old + 1)
29
+ end
30
+
31
+ it "raises an exception when the system clock moves backwards" do
32
+ old = subject.instance_variable_get(:@timestamp)
33
+ expect(subject).to receive(:time_gen).and_return(old - 10)
34
+ expect {
35
+ subject.next
36
+ }.to raise_error(Riak::BackwardsClockError)
37
+ end
38
+
39
+ # The client/worker ID should be used for disambiguation, not for
40
+ # primary ordering. This breaks from the Snowflake model where the
41
+ # worker ID is in more significant bits.
42
+ it "uses the client ID as the bottom component of the identifier" do
43
+ expect(subject.next & described_class::CLIENT_ID_MASK).to eq(subject.client.client_id.hash & described_class::CLIENT_ID_MASK)
44
+ end
45
+
46
+ context "using a non-integer client ID" do
47
+ subject { described_class.new(Riak::Client.new(:client_id => "ripple")) }
48
+ let(:hash) { "ripple".hash }
49
+
50
+ it "uses the hash of the client ID as the bottom component of the identifier" do
51
+ expect(subject.next & described_class::CLIENT_ID_MASK).to eq(subject.client.client_id.hash & described_class::CLIENT_ID_MASK)
52
+ end
53
+ end
54
+ end
@@ -8,6 +8,7 @@ describe Riak::TimeSeries::List do
8
8
  let(:backend) do
9
9
  instance_double('Riak::Client::BeefcakeProtobuffsBackend').tap do |be|
10
10
  allow(client).to receive(:backend).and_yield be
11
+ allow(client).to receive(:convert_timestamp).and_return(true)
11
12
  end
12
13
  end
13
14
  let(:operator) do
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ # Borrowed from ActiveSupport
4
+ # https://github.com/rails/rails/blob/master/activesupport/test/gzip_test.rb
5
+
6
+ describe Riak::Util::Gzip do
7
+ describe ".compress" do
8
+ it "decompresses to the same value" do
9
+ expect(Riak::Util::Gzip.decompress(Riak::Util::Gzip.compress("Hello World"))).to eq("Hello World")
10
+ expect(Riak::Util::Gzip.decompress(Riak::Util::Gzip.compress("Hello World", Zlib::NO_COMPRESSION))).to eq("Hello World")
11
+ expect(Riak::Util::Gzip.decompress(Riak::Util::Gzip.compress("Hello World", Zlib::BEST_SPEED))).to eq("Hello World")
12
+ expect(Riak::Util::Gzip.decompress(Riak::Util::Gzip.compress("Hello World", Zlib::BEST_COMPRESSION))).to eq("Hello World")
13
+ expect(Riak::Util::Gzip.decompress(Riak::Util::Gzip.compress("Hello World", nil, Zlib::FILTERED))).to eq("Hello World")
14
+ expect(Riak::Util::Gzip.decompress(Riak::Util::Gzip.compress("Hello World", nil, Zlib::HUFFMAN_ONLY))).to eq("Hello World")
15
+ expect(Riak::Util::Gzip.decompress(Riak::Util::Gzip.compress("Hello World", nil, nil))).to eq("Hello World")
16
+ end
17
+
18
+ it "returns a binary string" do
19
+ compressed = Riak::Util::Gzip.compress('')
20
+
21
+ expect(compressed.encoding).to eq(Encoding.find('binary'))
22
+ expect(compressed).not_to be_blank
23
+ end
24
+
25
+ it "returns gzipped string by compression level" do
26
+ source_string = "Hello World"*100
27
+
28
+ gzipped_by_speed = Riak::Util::Gzip.compress(source_string, Zlib::BEST_SPEED)
29
+ expect(Zlib::GzipReader.new(StringIO.new(gzipped_by_speed)).level).to eq(1)
30
+
31
+ gzipped_by_best_compression = Riak::Util::Gzip.compress(source_string, Zlib::BEST_COMPRESSION)
32
+ expect(Zlib::GzipReader.new(StringIO.new(gzipped_by_best_compression)).level).to eq(9)
33
+
34
+ expect(gzipped_by_best_compression.bytesize < gzipped_by_speed.bytesize).to be true
35
+ end
36
+ end
37
+ end
@@ -377,4 +377,26 @@ shared_examples_for "Unified backend API" do
377
377
  expect(found).to be_truthy
378
378
  end
379
379
  end
380
+
381
+ # gzip
382
+ context "using gzip" do
383
+ before do
384
+ @robject = Riak::RObject.new(@bucket, "fetch")
385
+ @robject.content_type = "application/json"
386
+ @robject.content_encoding = "gzip"
387
+ @robject.data = { "test" => "pass" }
388
+ @backend.store_object(@robject)
389
+ end
390
+
391
+ it "stores a compressed object" do
392
+ expected_data = @robject.deserialize(@robject.decompress(@robject.raw_data))
393
+ expect(expected_data).to eq(@robject.data)
394
+ end
395
+
396
+ it "loads a compressed object" do
397
+ robj = @backend.fetch_object(@bucket.name, "fetch")
398
+ expect(robj).to be_kind_of(Riak::RObject)
399
+ expect(robj.data).to eq(@robject.data)
400
+ end
401
+ end
380
402
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riak-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2
4
+ version: 2.4.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryce Kerley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-13 00:00:00.000000000 Z
11
+ date: 2016-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 10.1.1
33
+ version: '10.1'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 10.1.1
40
+ version: '10.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: yard
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.8.7
47
+ version: '0.8'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.8.7
54
+ version: '0.8'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: kramdown
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,56 +72,56 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.10.0
75
+ version: '0.10'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.10.0
82
+ version: '0.10'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: instrumentable
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 1.1.0
89
+ version: '1.1'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 1.1.0
96
+ version: '1.1'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rubocop
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.28.0
103
+ version: '0.40'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.28.0
110
+ version: '0.40'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: i18n
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.6.8
117
+ version: '0.6'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.6.8
124
+ version: '0.6'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: beefcake
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 1.0.2
159
+ version: '1.0'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 1.0.2
166
+ version: '1.0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: cert_validator
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -193,7 +193,7 @@ files:
193
193
  - Gemfile
194
194
  - Guardfile
195
195
  - LICENSE.md
196
- - README.markdown
196
+ - README.md
197
197
  - RELEASE_NOTES.md
198
198
  - Rakefile
199
199
  - lib/riak.rb
@@ -300,6 +300,7 @@ files:
300
300
  - lib/riak/time_series/row.rb
301
301
  - lib/riak/time_series/submission.rb
302
302
  - lib/riak/util/escape.rb
303
+ - lib/riak/util/gzip.rb
303
304
  - lib/riak/util/tcp_socket_extensions.rb
304
305
  - lib/riak/util/translation.rb
305
306
  - lib/riak/version.rb
@@ -332,6 +333,7 @@ files:
332
333
  - spec/integration/riak/preflist_spec.rb
333
334
  - spec/integration/riak/properties_spec.rb
334
335
  - spec/integration/riak/protobuffs/interrupted_request_spec.rb
336
+ - spec/integration/riak/protobuffs/timeouts_spec.rb
335
337
  - spec/integration/riak/protobuffs_backends_spec.rb
336
338
  - spec/integration/riak/search_spec.rb
337
339
  - spec/integration/riak/secondary_index_spec.rb
@@ -388,6 +390,7 @@ files:
388
390
  - spec/riak/time_series/deletion_spec.rb
389
391
  - spec/riak/time_series/listing_spec.rb
390
392
  - spec/riak/time_series/submission_spec.rb
393
+ - spec/riak/util/gzip_spec.rb
391
394
  - spec/riak/walk_spec_spec.rb
392
395
  - spec/spec_helper.rb
393
396
  - spec/support/certs/README.md
@@ -413,7 +416,7 @@ files:
413
416
  - spec/support/wait_until.rb
414
417
  homepage: http://github.com/basho/riak-ruby-client
415
418
  licenses:
416
- - Apache 2.0
419
+ - Apache-2.0
417
420
  metadata: {}
418
421
  post_install_message:
419
422
  rdoc_options: []
@@ -426,12 +429,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
426
429
  version: 1.9.3
427
430
  required_rubygems_version: !ruby/object:Gem::Requirement
428
431
  requirements:
429
- - - ">="
432
+ - - ">"
430
433
  - !ruby/object:Gem::Version
431
- version: '0'
434
+ version: 1.3.1
432
435
  requirements: []
433
436
  rubyforge_project:
434
- rubygems_version: 2.5.0
437
+ rubygems_version: 2.6.4
435
438
  signing_key:
436
439
  specification_version: 4
437
440
  summary: riak-client is a rich client for Riak, the distributed database by Basho.
@@ -463,6 +466,7 @@ test_files:
463
466
  - spec/integration/riak/preflist_spec.rb
464
467
  - spec/integration/riak/properties_spec.rb
465
468
  - spec/integration/riak/protobuffs/interrupted_request_spec.rb
469
+ - spec/integration/riak/protobuffs/timeouts_spec.rb
466
470
  - spec/integration/riak/protobuffs_backends_spec.rb
467
471
  - spec/integration/riak/search_spec.rb
468
472
  - spec/integration/riak/secondary_index_spec.rb
@@ -519,6 +523,7 @@ test_files:
519
523
  - spec/riak/time_series/deletion_spec.rb
520
524
  - spec/riak/time_series/listing_spec.rb
521
525
  - spec/riak/time_series/submission_spec.rb
526
+ - spec/riak/util/gzip_spec.rb
522
527
  - spec/riak/walk_spec_spec.rb
523
528
  - spec/spec_helper.rb
524
529
  - spec/support/certs/README.md