riak-client 1.2.0 → 1.4.0

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 (47) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/Gemfile +1 -7
  4. data/README.markdown +66 -0
  5. data/RELEASE_NOTES.md +27 -0
  6. data/lib/riak/bucket.rb +24 -5
  7. data/lib/riak/client.rb +42 -7
  8. data/lib/riak/client/beefcake/message_codes.rb +56 -0
  9. data/lib/riak/client/beefcake/messages.rb +190 -18
  10. data/lib/riak/client/beefcake_protobuffs_backend.rb +143 -10
  11. data/lib/riak/client/feature_detection.rb +26 -1
  12. data/lib/riak/client/http_backend.rb +58 -9
  13. data/lib/riak/client/http_backend/bucket_streamer.rb +15 -0
  14. data/lib/riak/client/http_backend/chunked_json_streamer.rb +42 -0
  15. data/lib/riak/client/http_backend/configuration.rb +17 -1
  16. data/lib/riak/client/http_backend/key_streamer.rb +4 -32
  17. data/lib/riak/client/protobuffs_backend.rb +12 -34
  18. data/lib/riak/counter.rb +101 -0
  19. data/lib/riak/index_collection.rb +71 -0
  20. data/lib/riak/list_buckets.rb +28 -0
  21. data/lib/riak/locale/en.yml +14 -0
  22. data/lib/riak/multiget.rb +123 -0
  23. data/lib/riak/node.rb +2 -0
  24. data/lib/riak/node/configuration.rb +32 -21
  25. data/lib/riak/node/defaults.rb +2 -0
  26. data/lib/riak/node/generation.rb +19 -7
  27. data/lib/riak/node/version.rb +2 -16
  28. data/lib/riak/robject.rb +1 -0
  29. data/lib/riak/secondary_index.rb +67 -0
  30. data/lib/riak/version.rb +1 -1
  31. data/riak-client.gemspec +3 -2
  32. data/spec/integration/riak/counters_spec.rb +51 -0
  33. data/spec/integration/riak/http_backends_spec.rb +24 -14
  34. data/spec/integration/riak/node_spec.rb +6 -28
  35. data/spec/riak/beefcake_protobuffs_backend_spec.rb +84 -0
  36. data/spec/riak/bucket_spec.rb +55 -5
  37. data/spec/riak/client_spec.rb +34 -0
  38. data/spec/riak/counter_spec.rb +122 -0
  39. data/spec/riak/index_collection_spec.rb +50 -0
  40. data/spec/riak/list_buckets_spec.rb +41 -0
  41. data/spec/riak/multiget_spec.rb +76 -0
  42. data/spec/riak/robject_spec.rb +4 -1
  43. data/spec/riak/secondary_index_spec.rb +225 -0
  44. data/spec/spec_helper.rb +1 -0
  45. data/spec/support/sometimes.rb +2 -2
  46. data/spec/support/unified_backend_examples.rb +4 -0
  47. metadata +41 -47
@@ -0,0 +1,76 @@
1
+ require 'spec_helper'
2
+
3
+ describe Riak::Multiget do
4
+ before :each do
5
+ @client = Riak::Client.new
6
+ @bucket = Riak::Bucket.new(@client, 'foo')
7
+ @pairs = [[@bucket, 'key1'], [@bucket, 'key2']]
8
+ end
9
+
10
+ describe "initialization" do
11
+ it "should accept a client and an array of bucket/key pairs" do
12
+ lambda { Riak::Multiget.new(@client, @pairs) }.should_not raise_error
13
+ end
14
+ end
15
+
16
+ describe "operation" do
17
+ it "should fetch both keys from the bucket" do
18
+ @bucket.should_receive(:[]).with('key1')
19
+ @bucket.should_receive(:[]).with('key2')
20
+
21
+ @multiget = Riak::Multiget.new(@client, @pairs)
22
+ @multiget.fetch
23
+ @multiget.wait_for_finish
24
+ end
25
+
26
+ it "should asynchronously fetch" do
27
+ # make fetches slow
28
+ @slow_mtx = Mutex.new
29
+ @slow_mtx.lock
30
+
31
+ # set up fetch process to wait on key2
32
+ @bucket.should_receive(:[]) do |key|
33
+ next if key == 'key1'
34
+
35
+ # wait for test process
36
+ @slow_mtx.lock
37
+ end.twice
38
+
39
+ # start fetch process
40
+ @multiget = Riak::Multiget.new(@client, @pairs)
41
+ @multiget.fetch
42
+
43
+ @multiget.finished?.should be_false
44
+
45
+ # allow fetch
46
+ @slow_mtx.unlock
47
+
48
+ @results = @multiget.results
49
+ @multiget.finished?.should be_true
50
+ @results.should be_a Hash
51
+ end
52
+
53
+ it "should not die when objects aren't found" do
54
+ @bucket.should_receive(:[]).with('key1').and_raise(Riak::HTTPFailedRequest.new(:get, 200, 404, {}, "File not found"))
55
+ @bucket.should_receive(:[]).with('key2').and_return(true)
56
+
57
+ @results = Riak::Multiget.get_all @client, @pairs
58
+
59
+ @results[[@bucket, 'key1']].should be_nil
60
+ @results[[@bucket, 'key2']].should be_true
61
+ end
62
+ end
63
+
64
+ describe "results" do
65
+ it "should return a hash of pairs to values" do
66
+ @bucket.should_receive(:[]).with('key1')
67
+ @bucket.should_receive(:[]).with('key2')
68
+
69
+ @multiget = Riak::Multiget.new(@client, @pairs)
70
+ @multiget.fetch
71
+ @results = @multiget.results
72
+
73
+ @results.should be_a Hash
74
+ end
75
+ end
76
+ end
@@ -277,6 +277,10 @@ describe Riak::RObject do
277
277
  lambda { @object.content_type = " "; @object.store }.should raise_error(ArgumentError)
278
278
  end
279
279
 
280
+ it "should raise an error when given an empty string as key" do
281
+ lambda { @object.key = ''; @object.store }.should raise_error(ArgumentError)
282
+ end
283
+
280
284
  it "should pass along quorum parameters and returnbody to the backend" do
281
285
  @backend.should_receive(:store_object).with(@object, :returnbody => false, :w => 3, :dw => 2).and_return(true)
282
286
  @object.store(:returnbody => false, :w => 3, :dw => 2)
@@ -461,4 +465,3 @@ describe Riak::RObject do
461
465
  end
462
466
  end
463
467
  end
464
-
@@ -0,0 +1,225 @@
1
+ require 'spec_helper'
2
+
3
+ describe Riak::SecondaryIndex do
4
+ before(:each) do
5
+ @client = Riak::Client.new
6
+ @bucket = Riak::Bucket.new @client, 'foo'
7
+ end
8
+
9
+ describe "initialization" do
10
+ it "should accept a bucket, index name, and scalar" do
11
+ lambda { Riak::SecondaryIndex.new @bucket, 'asdf', 'aaaa' }.should_not raise_error
12
+ lambda { Riak::SecondaryIndex.new @bucket, 'asdf', 12345 }.should_not raise_error
13
+ end
14
+
15
+ it "should accept a bucket, index name, and a range" do
16
+ lambda { Riak::SecondaryIndex.new @bucket, 'asdf', 'aaaa'..'zzzz' }.should_not raise_error
17
+ lambda { Riak::SecondaryIndex.new @bucket, 'asdf', 1..5 }.should_not raise_error
18
+ end
19
+ end
20
+
21
+ describe "operation" do
22
+ before(:each) do
23
+ @backend = mock 'Backend'
24
+ @client.stub!(:backend).and_yield(@backend)
25
+ @args = [@bucket, 'asdf', 'aaaa'..'zzzz', {}]
26
+ @index = Riak::SecondaryIndex.new *@args
27
+
28
+ @backend.should_receive(:get_index).with(*@args).and_return(%w{abcd efgh})
29
+ end
30
+
31
+ it "should return an array of keys" do
32
+ @results = @index.keys
33
+ @results.should be_a Array
34
+ @results.first.should be_a String
35
+ end
36
+ it "should return an array of values" do
37
+ @backend.should_receive(:fetch_object).with(@bucket, 'abcd', {}).and_return('abcd')
38
+ @backend.should_receive(:fetch_object).with(@bucket, 'efgh', {}).and_return('efgh')
39
+
40
+ @results = @index.values
41
+ @results.should be_a Array
42
+ @results.length.should == 2
43
+ end
44
+ end
45
+
46
+ describe "streaming" do
47
+ it "should stream keys into a block" do
48
+ @backend = mock 'Backend'
49
+ @client.stub!(:backend).and_yield(@backend)
50
+ @args = [@bucket, 'asdf', 'aaaa'..'zzzz', {stream: true}]
51
+ @index = Riak::SecondaryIndex.new *@args
52
+
53
+ @backend.should_receive(:get_index).with(*@args).and_yield('abcd').and_yield('efgh')
54
+
55
+ @index.keys {|b| :noop }
56
+ end
57
+ end
58
+
59
+ describe "pagination" do
60
+ it "should support max_results" do
61
+ @max_results = 5
62
+
63
+ @expected_collection = Riak::IndexCollection.new_from_json({
64
+ 'keys' => %w{aaaa bbbb cccc dddd eeee},
65
+ 'continuation' => 'examplecontinuation'
66
+ }.to_json)
67
+
68
+ @backend = mock 'Backend'
69
+ @client.stub!(:backend).and_yield(@backend)
70
+ @backend.
71
+ should_receive(:get_index).
72
+ with(
73
+ @bucket,
74
+ 'asdf',
75
+ ('aaaa'..'zzzz'),
76
+ :max_results => @max_results
77
+ ).
78
+ and_return(@expected_collection)
79
+ @backend.stub(:get_server_version => '1.4.0')
80
+
81
+
82
+ @index = Riak::SecondaryIndex.new(
83
+ @bucket,
84
+ 'asdf',
85
+ 'aaaa'..'zzzz',
86
+ :max_results => @max_results
87
+ )
88
+
89
+ @results = @index.keys
90
+ @results.should be_an Array
91
+ @results.should == @expected_collection
92
+ @results.length.should == @max_results
93
+ end
94
+
95
+ it "should support continuations" do
96
+ @max_results = 5
97
+
98
+ @expected_collection = Riak::IndexCollection.new_from_json({
99
+ 'keys' => %w{ffff gggg hhhh}
100
+ }.to_json)
101
+
102
+ @backend = mock 'Backend'
103
+ @client.stub!(:backend).and_yield(@backend)
104
+ @backend.
105
+ should_receive(:get_index).
106
+ with(
107
+ @bucket,
108
+ 'asdf',
109
+ ('aaaa'..'zzzz'),
110
+ max_results: @max_results,
111
+ continuation: 'examplecontinuation'
112
+ ).
113
+ and_return(@expected_collection)
114
+ @backend.stub(:get_server_version => '1.4.0')
115
+
116
+
117
+ @index = Riak::SecondaryIndex.new(
118
+ @bucket,
119
+ 'asdf',
120
+ 'aaaa'..'zzzz',
121
+ max_results: @max_results,
122
+ continuation: 'examplecontinuation'
123
+ )
124
+
125
+ @results = @index.keys
126
+ @results.should be_an Array
127
+ @results.should == @expected_collection
128
+ end
129
+
130
+ it "should support a next_page method" do
131
+ @max_results = 5
132
+
133
+ @expected_collection = Riak::IndexCollection.new_from_json({
134
+ 'keys' => %w{aaaa bbbb cccc dddd eeee},
135
+ 'continuation' => 'examplecontinuation'
136
+ }.to_json)
137
+
138
+ @backend = mock 'Backend'
139
+ @client.stub!(:backend).and_yield(@backend)
140
+ @backend.
141
+ should_receive(:get_index).
142
+ once.
143
+ with(
144
+ @bucket,
145
+ 'asdf',
146
+ ('aaaa'..'zzzz'),
147
+ :max_results => @max_results
148
+ ).
149
+ and_return(@expected_collection)
150
+ @backend.stub(:get_server_version => '1.4.0')
151
+
152
+
153
+ @index = Riak::SecondaryIndex.new(
154
+ @bucket,
155
+ 'asdf',
156
+ 'aaaa'..'zzzz',
157
+ :max_results => @max_results
158
+ )
159
+
160
+ @results = @index.keys
161
+ @results.should == @expected_collection
162
+
163
+ @second_collection = Riak::IndexCollection.new_from_json({
164
+ 'keys' => %w{ffff gggg hhhh}
165
+ }.to_json)
166
+ @backend.
167
+ should_receive(:get_index).
168
+ once.
169
+ with(
170
+ @bucket,
171
+ 'asdf',
172
+ ('aaaa'..'zzzz'),
173
+ max_results: @max_results,
174
+ continuation: 'examplecontinuation'
175
+ ).
176
+ and_return(@second_collection)
177
+
178
+ @second_page = @index.next_page
179
+ @second_results = @second_page.keys
180
+ @second_results.should == @second_collection
181
+ end
182
+ end
183
+
184
+ describe "return_terms" do
185
+ it "should optionally give the index value" do
186
+ @expected_collection = Riak::IndexCollection.new_from_json({
187
+ 'results' => [
188
+ {'aaaa' => 'aaaa'},
189
+ {'bbbb' => 'bbbb'},
190
+ {'bbbb' => 'bbbb2'}
191
+ ]
192
+ }.to_json)
193
+
194
+
195
+ @backend = mock 'Backend'
196
+ @client.stub!(:backend).and_yield(@backend)
197
+ @backend.
198
+ should_receive(:get_index).
199
+ with(
200
+ @bucket,
201
+ 'asdf',
202
+ ('aaaa'..'zzzz'),
203
+ :return_terms => true
204
+ ).
205
+ and_return(@expected_collection)
206
+ @backend.stub(:get_server_version => '1.4.0')
207
+
208
+
209
+ @index = Riak::SecondaryIndex.new(
210
+ @bucket,
211
+ 'asdf',
212
+ 'aaaa'..'zzzz',
213
+ :return_terms => true
214
+ )
215
+
216
+ @results = @index.keys
217
+ @results.should be_an Array
218
+ @results.should == @expected_collection
219
+ @results.with_terms.should == {
220
+ 'aaaa' => %w{aaaa},
221
+ 'bbbb' => %w{bbbb bbbb2}
222
+ }
223
+ end
224
+ end
225
+ end
@@ -5,6 +5,7 @@ require 'rubygems' # Use the gems path only for the spec suite
5
5
  require 'riak'
6
6
  require 'rspec'
7
7
  require 'fakeweb'
8
+ require 'stringio'
8
9
 
9
10
  # Only the tests should really get away with this.
10
11
  Riak.disable_list_keys_warnings = true
@@ -35,11 +35,11 @@ RSpec.configure do |config|
35
35
  d.filtered_examples.select {|e| e.metadata[:sometimes] && e.metadata[:retried] > 1 }
36
36
  end
37
37
  end.flatten
38
- formatter.message color[retried_examples.empty? ? :green : :yellow, "\n\nRetried examples: #{retried_examples.count}"]
38
+ formatter.message color[retried_examples.empty? ? :success_color : :pending_color, "\n\nRetried examples: #{retried_examples.count}"]
39
39
  unless retried_examples.empty?
40
40
  retried_examples.each do |e|
41
41
  formatter.message " #{e.full_description}"
42
- formatter.message(color[:yellow, " [#{e.metadata[:retried]}/#{e.metadata[:retries]}] "] + RSpec::Core::Metadata::relative_path(e.location))
42
+ formatter.message(color[:pending_color, " [#{e.metadata[:retried]}/#{e.metadata[:retries]}] "] + RSpec::Core::Metadata::relative_path(e.location))
43
43
  end
44
44
  end
45
45
  end
@@ -259,6 +259,10 @@ shared_examples_for "Unified backend API" do
259
259
  it "should find keys for a range query" do
260
260
  @backend.get_index('test', 'index_int', 19..21).should =~ ["19","20", "21"]
261
261
  end
262
+
263
+ it "should return an empty array for a query that does not match any keys" do
264
+ @backend.get_index('test', 'index_int', 10000).should == []
265
+ end
262
266
  end
263
267
 
264
268
  # mapred
metadata CHANGED
@@ -1,20 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riak-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
5
- prerelease:
4
+ version: 1.4.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sean Cribbs
8
+ - Bryce Kerley
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-15 00:00:00.000000000 Z
12
+ date: 2013-08-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
16
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
17
  requirements:
19
18
  - - ~>
20
19
  - !ruby/object:Gem::Version
@@ -22,7 +21,6 @@ dependencies:
22
21
  type: :development
23
22
  prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
25
  - - ~>
28
26
  - !ruby/object:Gem::Version
@@ -30,103 +28,90 @@ dependencies:
30
28
  - !ruby/object:Gem::Dependency
31
29
  name: fakeweb
32
30
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
31
  requirements:
35
- - - ! '>='
32
+ - - '>='
36
33
  - !ruby/object:Gem::Version
37
34
  version: '1.2'
38
35
  type: :development
39
36
  prerelease: false
40
37
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
38
  requirements:
43
- - - ! '>='
39
+ - - '>='
44
40
  - !ruby/object:Gem::Version
45
41
  version: '1.2'
46
42
  - !ruby/object:Gem::Dependency
47
43
  name: rack
48
44
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
45
  requirements:
51
- - - ! '>='
46
+ - - '>='
52
47
  - !ruby/object:Gem::Version
53
48
  version: '1.0'
54
49
  type: :development
55
50
  prerelease: false
56
51
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
52
  requirements:
59
- - - ! '>='
53
+ - - '>='
60
54
  - !ruby/object:Gem::Version
61
55
  version: '1.0'
62
56
  - !ruby/object:Gem::Dependency
63
57
  name: excon
64
58
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
59
  requirements:
67
- - - ! '>='
60
+ - - '>='
68
61
  - !ruby/object:Gem::Version
69
62
  version: 0.6.1
70
63
  type: :development
71
64
  prerelease: false
72
65
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
66
  requirements:
75
- - - ! '>='
67
+ - - '>='
76
68
  - !ruby/object:Gem::Version
77
69
  version: 0.6.1
78
70
  - !ruby/object:Gem::Dependency
79
71
  name: rake
80
72
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
73
  requirements:
83
- - - ! '>='
74
+ - - '>='
84
75
  - !ruby/object:Gem::Version
85
76
  version: '0'
86
77
  type: :development
87
78
  prerelease: false
88
79
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
80
  requirements:
91
- - - ! '>='
81
+ - - '>='
92
82
  - !ruby/object:Gem::Version
93
83
  version: '0'
94
84
  - !ruby/object:Gem::Dependency
95
85
  name: i18n
96
86
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
87
  requirements:
99
- - - ! '>='
88
+ - - '>='
100
89
  - !ruby/object:Gem::Version
101
90
  version: 0.4.0
102
91
  type: :runtime
103
92
  prerelease: false
104
93
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
94
  requirements:
107
- - - ! '>='
95
+ - - '>='
108
96
  - !ruby/object:Gem::Version
109
97
  version: 0.4.0
110
98
  - !ruby/object:Gem::Dependency
111
99
  name: builder
112
100
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
101
  requirements:
115
- - - ! '>='
102
+ - - '>='
116
103
  - !ruby/object:Gem::Version
117
104
  version: 2.1.2
118
105
  type: :runtime
119
106
  prerelease: false
120
107
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
108
  requirements:
123
- - - ! '>='
109
+ - - '>='
124
110
  - !ruby/object:Gem::Version
125
111
  version: 2.1.2
126
112
  - !ruby/object:Gem::Dependency
127
113
  name: beefcake
128
114
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
115
  requirements:
131
116
  - - ~>
132
117
  - !ruby/object:Gem::Version
@@ -134,7 +119,6 @@ dependencies:
134
119
  type: :runtime
135
120
  prerelease: false
136
121
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
122
  requirements:
139
123
  - - ~>
140
124
  - !ruby/object:Gem::Version
@@ -142,7 +126,6 @@ dependencies:
142
126
  - !ruby/object:Gem::Dependency
143
127
  name: multi_json
144
128
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
129
  requirements:
147
130
  - - ~>
148
131
  - !ruby/object:Gem::Version
@@ -150,7 +133,6 @@ dependencies:
150
133
  type: :runtime
151
134
  prerelease: false
152
135
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
136
  requirements:
155
137
  - - ~>
156
138
  - !ruby/object:Gem::Version
@@ -158,7 +140,6 @@ dependencies:
158
140
  - !ruby/object:Gem::Dependency
159
141
  name: innertube
160
142
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
143
  requirements:
163
144
  - - ~>
164
145
  - !ruby/object:Gem::Version
@@ -166,7 +147,6 @@ dependencies:
166
147
  type: :runtime
167
148
  prerelease: false
168
149
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
150
  requirements:
171
151
  - - ~>
172
152
  - !ruby/object:Gem::Version
@@ -176,6 +156,7 @@ description: riak-client is a rich client for Riak, the distributed database by
176
156
  bucket configuration, link-walking, secondary indexes and map-reduce.
177
157
  email:
178
158
  - sean@basho.com
159
+ - bryce@basho.com
179
160
  executables: []
180
161
  extensions: []
181
162
  extra_rdoc_files: []
@@ -198,6 +179,7 @@ files:
198
179
  - lib/riak.rb
199
180
  - lib/riak/bucket.rb
200
181
  - lib/riak/client.rb
182
+ - lib/riak/client/beefcake/message_codes.rb
201
183
  - lib/riak/client/beefcake/messages.rb
202
184
  - lib/riak/client/beefcake/object_methods.rb
203
185
  - lib/riak/client/beefcake_protobuffs_backend.rb
@@ -205,6 +187,8 @@ files:
205
187
  - lib/riak/client/excon_backend.rb
206
188
  - lib/riak/client/feature_detection.rb
207
189
  - lib/riak/client/http_backend.rb
190
+ - lib/riak/client/http_backend/bucket_streamer.rb
191
+ - lib/riak/client/http_backend/chunked_json_streamer.rb
208
192
  - lib/riak/client/http_backend/configuration.rb
209
193
  - lib/riak/client/http_backend/key_streamer.rb
210
194
  - lib/riak/client/http_backend/object_methods.rb
@@ -225,11 +209,14 @@ files:
225
209
  - lib/riak/core_ext/stringify_keys.rb
226
210
  - lib/riak/core_ext/symbolize_keys.rb
227
211
  - lib/riak/core_ext/to_param.rb
212
+ - lib/riak/counter.rb
228
213
  - lib/riak/encoding.rb
229
214
  - lib/riak/failed_request.rb
230
215
  - lib/riak/i18n.rb
216
+ - lib/riak/index_collection.rb
231
217
  - lib/riak/json.rb
232
218
  - lib/riak/link.rb
219
+ - lib/riak/list_buckets.rb
233
220
  - lib/riak/locale/en.yml
234
221
  - lib/riak/locale/fr.yml
235
222
  - lib/riak/map_reduce.rb
@@ -237,6 +224,7 @@ files:
237
224
  - lib/riak/map_reduce/phase.rb
238
225
  - lib/riak/map_reduce/results.rb
239
226
  - lib/riak/map_reduce_error.rb
227
+ - lib/riak/multiget.rb
240
228
  - lib/riak/node.rb
241
229
  - lib/riak/node/configuration.rb
242
230
  - lib/riak/node/console.rb
@@ -248,6 +236,7 @@ files:
248
236
  - lib/riak/rcontent.rb
249
237
  - lib/riak/robject.rb
250
238
  - lib/riak/search.rb
239
+ - lib/riak/secondary_index.rb
251
240
  - lib/riak/serializers.rb
252
241
  - lib/riak/stamp.rb
253
242
  - lib/riak/test_server.rb
@@ -273,6 +262,7 @@ files:
273
262
  - spec/fixtures/server.cert.key
274
263
  - spec/fixtures/test.pem
275
264
  - spec/integration/riak/cluster_spec.rb
265
+ - spec/integration/riak/counters_spec.rb
276
266
  - spec/integration/riak/http_backends_spec.rb
277
267
  - spec/integration/riak/node_spec.rb
278
268
  - spec/integration/riak/protobuffs_backends_spec.rb
@@ -283,6 +273,7 @@ files:
283
273
  - spec/riak/bucket_spec.rb
284
274
  - spec/riak/client_spec.rb
285
275
  - spec/riak/core_ext/to_param_spec.rb
276
+ - spec/riak/counter_spec.rb
286
277
  - spec/riak/escape_spec.rb
287
278
  - spec/riak/excon_backend_spec.rb
288
279
  - spec/riak/feature_detection_spec.rb
@@ -291,15 +282,19 @@ files:
291
282
  - spec/riak/http_backend/object_methods_spec.rb
292
283
  - spec/riak/http_backend/transport_methods_spec.rb
293
284
  - spec/riak/http_backend_spec.rb
285
+ - spec/riak/index_collection_spec.rb
294
286
  - spec/riak/link_spec.rb
287
+ - spec/riak/list_buckets_spec.rb
295
288
  - spec/riak/map_reduce/filter_builder_spec.rb
296
289
  - spec/riak/map_reduce/phase_spec.rb
297
290
  - spec/riak/map_reduce_spec.rb
291
+ - spec/riak/multiget_spec.rb
298
292
  - spec/riak/multipart_spec.rb
299
293
  - spec/riak/net_http_backend_spec.rb
300
294
  - spec/riak/node_spec.rb
301
295
  - spec/riak/robject_spec.rb
302
296
  - spec/riak/search_spec.rb
297
+ - spec/riak/secondary_index_spec.rb
303
298
  - spec/riak/serializers_spec.rb
304
299
  - spec/riak/stamp_spec.rb
305
300
  - spec/riak/stream_parser_spec.rb
@@ -319,33 +314,26 @@ files:
319
314
  - spec/support/version_filter.rb
320
315
  homepage: http://github.com/basho/riak-ruby-client
321
316
  licenses: []
317
+ metadata: {}
322
318
  post_install_message:
323
319
  rdoc_options: []
324
320
  require_paths:
325
321
  - lib
326
322
  required_ruby_version: !ruby/object:Gem::Requirement
327
- none: false
328
323
  requirements:
329
- - - ! '>='
324
+ - - '>='
330
325
  - !ruby/object:Gem::Version
331
326
  version: '0'
332
- segments:
333
- - 0
334
- hash: 20034304450029998
335
327
  required_rubygems_version: !ruby/object:Gem::Requirement
336
- none: false
337
328
  requirements:
338
- - - ! '>='
329
+ - - '>='
339
330
  - !ruby/object:Gem::Version
340
331
  version: '0'
341
- segments:
342
- - 0
343
- hash: 20034304450029998
344
332
  requirements: []
345
333
  rubyforge_project:
346
- rubygems_version: 1.8.23
334
+ rubygems_version: 2.0.2
347
335
  signing_key:
348
- specification_version: 3
336
+ specification_version: 4
349
337
  summary: riak-client is a rich client for Riak, the distributed database by Basho.
350
338
  test_files:
351
339
  - spec/failover/failover.rb
@@ -361,6 +349,7 @@ test_files:
361
349
  - spec/fixtures/server.cert.key
362
350
  - spec/fixtures/test.pem
363
351
  - spec/integration/riak/cluster_spec.rb
352
+ - spec/integration/riak/counters_spec.rb
364
353
  - spec/integration/riak/http_backends_spec.rb
365
354
  - spec/integration/riak/node_spec.rb
366
355
  - spec/integration/riak/protobuffs_backends_spec.rb
@@ -371,6 +360,7 @@ test_files:
371
360
  - spec/riak/bucket_spec.rb
372
361
  - spec/riak/client_spec.rb
373
362
  - spec/riak/core_ext/to_param_spec.rb
363
+ - spec/riak/counter_spec.rb
374
364
  - spec/riak/escape_spec.rb
375
365
  - spec/riak/excon_backend_spec.rb
376
366
  - spec/riak/feature_detection_spec.rb
@@ -379,15 +369,19 @@ test_files:
379
369
  - spec/riak/http_backend/object_methods_spec.rb
380
370
  - spec/riak/http_backend/transport_methods_spec.rb
381
371
  - spec/riak/http_backend_spec.rb
372
+ - spec/riak/index_collection_spec.rb
382
373
  - spec/riak/link_spec.rb
374
+ - spec/riak/list_buckets_spec.rb
383
375
  - spec/riak/map_reduce/filter_builder_spec.rb
384
376
  - spec/riak/map_reduce/phase_spec.rb
385
377
  - spec/riak/map_reduce_spec.rb
378
+ - spec/riak/multiget_spec.rb
386
379
  - spec/riak/multipart_spec.rb
387
380
  - spec/riak/net_http_backend_spec.rb
388
381
  - spec/riak/node_spec.rb
389
382
  - spec/riak/robject_spec.rb
390
383
  - spec/riak/search_spec.rb
384
+ - spec/riak/secondary_index_spec.rb
391
385
  - spec/riak/serializers_spec.rb
392
386
  - spec/riak/stamp_spec.rb
393
387
  - spec/riak/stream_parser_spec.rb