jmoses-couchbase 1.3.6

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 (91) hide show
  1. data/.gitignore +15 -0
  2. data/.travis.yml +22 -0
  3. data/.yardopts +5 -0
  4. data/CONTRIBUTING.markdown +75 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE +201 -0
  7. data/Makefile +3 -0
  8. data/README.markdown +665 -0
  9. data/RELEASE_NOTES.markdown +819 -0
  10. data/Rakefile +20 -0
  11. data/couchbase.gemspec +49 -0
  12. data/examples/chat-em/Gemfile +7 -0
  13. data/examples/chat-em/README.markdown +45 -0
  14. data/examples/chat-em/server.rb +82 -0
  15. data/examples/chat-goliath-grape/Gemfile +5 -0
  16. data/examples/chat-goliath-grape/README.markdown +50 -0
  17. data/examples/chat-goliath-grape/app.rb +67 -0
  18. data/examples/chat-goliath-grape/config/app.rb +20 -0
  19. data/examples/transcoders/Gemfile +3 -0
  20. data/examples/transcoders/README.markdown +59 -0
  21. data/examples/transcoders/cb-zcat +40 -0
  22. data/examples/transcoders/cb-zcp +45 -0
  23. data/examples/transcoders/gzip_transcoder.rb +49 -0
  24. data/examples/transcoders/options.rb +54 -0
  25. data/ext/couchbase_ext/.gitignore +4 -0
  26. data/ext/couchbase_ext/arguments.c +956 -0
  27. data/ext/couchbase_ext/arithmetic.c +316 -0
  28. data/ext/couchbase_ext/bucket.c +1373 -0
  29. data/ext/couchbase_ext/context.c +65 -0
  30. data/ext/couchbase_ext/couchbase_ext.c +1364 -0
  31. data/ext/couchbase_ext/couchbase_ext.h +644 -0
  32. data/ext/couchbase_ext/delete.c +163 -0
  33. data/ext/couchbase_ext/eventmachine_plugin.c +452 -0
  34. data/ext/couchbase_ext/extconf.rb +169 -0
  35. data/ext/couchbase_ext/get.c +316 -0
  36. data/ext/couchbase_ext/gethrtime.c +129 -0
  37. data/ext/couchbase_ext/http.c +432 -0
  38. data/ext/couchbase_ext/multithread_plugin.c +1090 -0
  39. data/ext/couchbase_ext/observe.c +171 -0
  40. data/ext/couchbase_ext/plugin_common.c +171 -0
  41. data/ext/couchbase_ext/result.c +129 -0
  42. data/ext/couchbase_ext/stats.c +163 -0
  43. data/ext/couchbase_ext/store.c +542 -0
  44. data/ext/couchbase_ext/timer.c +192 -0
  45. data/ext/couchbase_ext/touch.c +186 -0
  46. data/ext/couchbase_ext/unlock.c +176 -0
  47. data/ext/couchbase_ext/utils.c +551 -0
  48. data/ext/couchbase_ext/version.c +142 -0
  49. data/lib/action_dispatch/middleware/session/couchbase_store.rb +38 -0
  50. data/lib/active_support/cache/couchbase_store.rb +430 -0
  51. data/lib/couchbase.rb +155 -0
  52. data/lib/couchbase/bucket.rb +457 -0
  53. data/lib/couchbase/cluster.rb +119 -0
  54. data/lib/couchbase/connection_pool.rb +58 -0
  55. data/lib/couchbase/constants.rb +12 -0
  56. data/lib/couchbase/result.rb +26 -0
  57. data/lib/couchbase/transcoder.rb +120 -0
  58. data/lib/couchbase/utils.rb +62 -0
  59. data/lib/couchbase/version.rb +21 -0
  60. data/lib/couchbase/view.rb +506 -0
  61. data/lib/couchbase/view_row.rb +272 -0
  62. data/lib/ext/multi_json_fix.rb +56 -0
  63. data/lib/rack/session/couchbase.rb +108 -0
  64. data/tasks/benchmark.rake +6 -0
  65. data/tasks/compile.rake +160 -0
  66. data/tasks/test.rake +100 -0
  67. data/tasks/util.rake +21 -0
  68. data/test/profile/.gitignore +1 -0
  69. data/test/profile/Gemfile +6 -0
  70. data/test/profile/benchmark.rb +195 -0
  71. data/test/setup.rb +178 -0
  72. data/test/test_arithmetic.rb +185 -0
  73. data/test/test_async.rb +316 -0
  74. data/test/test_bucket.rb +276 -0
  75. data/test/test_cas.rb +235 -0
  76. data/test/test_couchbase.rb +77 -0
  77. data/test/test_couchbase_connection_pool.rb +77 -0
  78. data/test/test_couchbase_rails_cache_store.rb +361 -0
  79. data/test/test_delete.rb +120 -0
  80. data/test/test_errors.rb +82 -0
  81. data/test/test_eventmachine.rb +70 -0
  82. data/test/test_format.rb +164 -0
  83. data/test/test_get.rb +407 -0
  84. data/test/test_stats.rb +57 -0
  85. data/test/test_store.rb +216 -0
  86. data/test/test_timer.rb +42 -0
  87. data/test/test_touch.rb +97 -0
  88. data/test/test_unlock.rb +119 -0
  89. data/test/test_utils.rb +58 -0
  90. data/test/test_version.rb +52 -0
  91. metadata +353 -0
@@ -0,0 +1,58 @@
1
+ # Author:: Couchbase <info@couchbase.com>
2
+ # Copyright:: 2011, 2012 Couchbase, Inc.
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+ require File.join(File.dirname(__FILE__), 'setup')
19
+
20
+ class TestUtils < MiniTest::Test
21
+
22
+ def setup
23
+ @mock = start_mock
24
+ end
25
+
26
+ def teardown
27
+ stop_mock(@mock)
28
+ end
29
+
30
+ def test_complex_startkey
31
+ assert_equal "all_docs?startkey=%5B%22Deadmau5%22%2C%22%22%5D", Couchbase::Utils.build_query("all_docs", :startkey => ["Deadmau5", ""])
32
+ end
33
+
34
+ def test_it_provides_enough_info_with_value_error
35
+ class << MultiJson
36
+ alias dump_good dump
37
+ def dump(obj)
38
+ raise ArgumentError, "cannot accept your object"
39
+ end
40
+ end
41
+ connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
42
+ assert_raises(Couchbase::Error::ValueFormat) do
43
+ connection.set(uniq_id, "foo")
44
+ end
45
+ begin
46
+ connection.set(uniq_id, "foo")
47
+ rescue Couchbase::Error::ValueFormat => ex
48
+ assert_match /cannot accept your object/, ex.to_s
49
+ assert_instance_of ArgumentError, ex.inner_exception
50
+ end
51
+ ensure
52
+ class << MultiJson
53
+ undef dump
54
+ alias dump dump_good
55
+ end
56
+ end
57
+
58
+ end
@@ -0,0 +1,52 @@
1
+ # Author:: Couchbase <info@couchbase.com>
2
+ # Copyright:: 2011, 2012 Couchbase, Inc.
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+ require File.join(File.dirname(__FILE__), 'setup')
19
+
20
+ class TestVersion < MiniTest::Test
21
+
22
+ def setup
23
+ @mock = start_mock
24
+ end
25
+
26
+ def teardown
27
+ stop_mock(@mock)
28
+ end
29
+
30
+ def test_sync_version
31
+ connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
32
+ ver = connection.version
33
+ assert ver.is_a?(Hash)
34
+ assert_equal @mock.num_nodes, ver.size
35
+ end
36
+
37
+ def test_async_version
38
+ connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
39
+ ver = {}
40
+ connection.run do |conn|
41
+ conn.version do |ret|
42
+ assert ret.success?
43
+ ver[ret.node] = ret.value
44
+ end
45
+ end
46
+ assert_equal @mock.num_nodes, ver.size
47
+ ver.each do |node, v|
48
+ assert v.is_a?(String)
49
+ end
50
+ end
51
+
52
+ end
metadata ADDED
@@ -0,0 +1,353 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jmoses-couchbase
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.6
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Couchbase
9
+ - Jon Moses
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2014-04-25 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: yaji
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: '0.3'
23
+ - - ! '>='
24
+ - !ruby/object:Gem::Version
25
+ version: 0.3.2
26
+ type: :runtime
27
+ prerelease: false
28
+ version_requirements: !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '0.3'
34
+ - - ! '>='
35
+ - !ruby/object:Gem::Version
36
+ version: 0.3.2
37
+ - !ruby/object:Gem::Dependency
38
+ name: multi_json
39
+ requirement: !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: '1.0'
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ~>
51
+ - !ruby/object:Gem::Version
52
+ version: '1.0'
53
+ - !ruby/object:Gem::Dependency
54
+ name: connection_pool
55
+ requirement: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: 2.0.0
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 2.0.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ! '>='
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ - !ruby/object:Gem::Dependency
86
+ name: minitest
87
+ requirement: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ~>
91
+ - !ruby/object:Gem::Version
92
+ version: '5.0'
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: 5.0.4
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '5.0'
104
+ - - ! '>='
105
+ - !ruby/object:Gem::Version
106
+ version: 5.0.4
107
+ - !ruby/object:Gem::Dependency
108
+ name: rake-compiler
109
+ requirement: !ruby/object:Gem::Requirement
110
+ none: false
111
+ requirements:
112
+ - - ~>
113
+ - !ruby/object:Gem::Version
114
+ version: '0.7'
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: 0.7.5
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '0.7'
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: 0.7.5
129
+ - !ruby/object:Gem::Dependency
130
+ name: mini_portile
131
+ requirement: !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
134
+ - - ~>
135
+ - !ruby/object:Gem::Version
136
+ version: '0.5'
137
+ - - ! '>='
138
+ - !ruby/object:Gem::Version
139
+ version: 0.5.2
140
+ type: :development
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ none: false
144
+ requirements:
145
+ - - ~>
146
+ - !ruby/object:Gem::Version
147
+ version: '0.5'
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: 0.5.2
151
+ - !ruby/object:Gem::Dependency
152
+ name: yajl-ruby
153
+ requirement: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ~>
157
+ - !ruby/object:Gem::Version
158
+ version: '1.1'
159
+ - - ! '>='
160
+ - !ruby/object:Gem::Version
161
+ version: 1.1.0
162
+ type: :development
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ none: false
166
+ requirements:
167
+ - - ~>
168
+ - !ruby/object:Gem::Version
169
+ version: '1.1'
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
+ version: 1.1.0
173
+ - !ruby/object:Gem::Dependency
174
+ name: active_support
175
+ requirement: !ruby/object:Gem::Requirement
176
+ none: false
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ type: :development
182
+ prerelease: false
183
+ version_requirements: !ruby/object:Gem::Requirement
184
+ none: false
185
+ requirements:
186
+ - - ! '>='
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ - !ruby/object:Gem::Dependency
190
+ name: eventmachine
191
+ requirement: !ruby/object:Gem::Requirement
192
+ none: false
193
+ requirements:
194
+ - - ! '>='
195
+ - !ruby/object:Gem::Version
196
+ version: '0'
197
+ type: :development
198
+ prerelease: false
199
+ version_requirements: !ruby/object:Gem::Requirement
200
+ none: false
201
+ requirements:
202
+ - - ! '>='
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ description: The official client library for use with Couchbase Server. This fork
206
+ has been updated to require connection-pool 2.0, instead of 1.0
207
+ email:
208
+ - support@couchbase.com
209
+ - jon@burningbush.us
210
+ executables: []
211
+ extensions:
212
+ - ext/couchbase_ext/extconf.rb
213
+ extra_rdoc_files: []
214
+ files:
215
+ - .gitignore
216
+ - .travis.yml
217
+ - .yardopts
218
+ - CONTRIBUTING.markdown
219
+ - Gemfile
220
+ - LICENSE
221
+ - Makefile
222
+ - README.markdown
223
+ - RELEASE_NOTES.markdown
224
+ - Rakefile
225
+ - couchbase.gemspec
226
+ - examples/chat-em/Gemfile
227
+ - examples/chat-em/README.markdown
228
+ - examples/chat-em/server.rb
229
+ - examples/chat-goliath-grape/Gemfile
230
+ - examples/chat-goliath-grape/README.markdown
231
+ - examples/chat-goliath-grape/app.rb
232
+ - examples/chat-goliath-grape/config/app.rb
233
+ - examples/transcoders/Gemfile
234
+ - examples/transcoders/README.markdown
235
+ - examples/transcoders/cb-zcat
236
+ - examples/transcoders/cb-zcp
237
+ - examples/transcoders/gzip_transcoder.rb
238
+ - examples/transcoders/options.rb
239
+ - ext/couchbase_ext/.gitignore
240
+ - ext/couchbase_ext/arguments.c
241
+ - ext/couchbase_ext/arithmetic.c
242
+ - ext/couchbase_ext/bucket.c
243
+ - ext/couchbase_ext/context.c
244
+ - ext/couchbase_ext/couchbase_ext.c
245
+ - ext/couchbase_ext/couchbase_ext.h
246
+ - ext/couchbase_ext/delete.c
247
+ - ext/couchbase_ext/eventmachine_plugin.c
248
+ - ext/couchbase_ext/extconf.rb
249
+ - ext/couchbase_ext/get.c
250
+ - ext/couchbase_ext/gethrtime.c
251
+ - ext/couchbase_ext/http.c
252
+ - ext/couchbase_ext/multithread_plugin.c
253
+ - ext/couchbase_ext/observe.c
254
+ - ext/couchbase_ext/plugin_common.c
255
+ - ext/couchbase_ext/result.c
256
+ - ext/couchbase_ext/stats.c
257
+ - ext/couchbase_ext/store.c
258
+ - ext/couchbase_ext/timer.c
259
+ - ext/couchbase_ext/touch.c
260
+ - ext/couchbase_ext/unlock.c
261
+ - ext/couchbase_ext/utils.c
262
+ - ext/couchbase_ext/version.c
263
+ - lib/action_dispatch/middleware/session/couchbase_store.rb
264
+ - lib/active_support/cache/couchbase_store.rb
265
+ - lib/couchbase.rb
266
+ - lib/couchbase/bucket.rb
267
+ - lib/couchbase/cluster.rb
268
+ - lib/couchbase/connection_pool.rb
269
+ - lib/couchbase/constants.rb
270
+ - lib/couchbase/result.rb
271
+ - lib/couchbase/transcoder.rb
272
+ - lib/couchbase/utils.rb
273
+ - lib/couchbase/version.rb
274
+ - lib/couchbase/view.rb
275
+ - lib/couchbase/view_row.rb
276
+ - lib/ext/multi_json_fix.rb
277
+ - lib/rack/session/couchbase.rb
278
+ - tasks/benchmark.rake
279
+ - tasks/compile.rake
280
+ - tasks/test.rake
281
+ - tasks/util.rake
282
+ - test/profile/.gitignore
283
+ - test/profile/Gemfile
284
+ - test/profile/benchmark.rb
285
+ - test/setup.rb
286
+ - test/test_arithmetic.rb
287
+ - test/test_async.rb
288
+ - test/test_bucket.rb
289
+ - test/test_cas.rb
290
+ - test/test_couchbase.rb
291
+ - test/test_couchbase_connection_pool.rb
292
+ - test/test_couchbase_rails_cache_store.rb
293
+ - test/test_delete.rb
294
+ - test/test_errors.rb
295
+ - test/test_eventmachine.rb
296
+ - test/test_format.rb
297
+ - test/test_get.rb
298
+ - test/test_stats.rb
299
+ - test/test_store.rb
300
+ - test/test_timer.rb
301
+ - test/test_touch.rb
302
+ - test/test_unlock.rb
303
+ - test/test_utils.rb
304
+ - test/test_version.rb
305
+ homepage: http://couchbase.org
306
+ licenses:
307
+ - ASL-2
308
+ post_install_message:
309
+ rdoc_options: []
310
+ require_paths:
311
+ - lib
312
+ required_ruby_version: !ruby/object:Gem::Requirement
313
+ none: false
314
+ requirements:
315
+ - - ! '>='
316
+ - !ruby/object:Gem::Version
317
+ version: '0'
318
+ required_rubygems_version: !ruby/object:Gem::Requirement
319
+ none: false
320
+ requirements:
321
+ - - ! '>='
322
+ - !ruby/object:Gem::Version
323
+ version: '0'
324
+ requirements: []
325
+ rubyforge_project:
326
+ rubygems_version: 1.8.24
327
+ signing_key:
328
+ specification_version: 3
329
+ summary: Couchbase ruby driver (updated gemspec for connection-pool 2)
330
+ test_files:
331
+ - test/profile/.gitignore
332
+ - test/profile/Gemfile
333
+ - test/profile/benchmark.rb
334
+ - test/setup.rb
335
+ - test/test_arithmetic.rb
336
+ - test/test_async.rb
337
+ - test/test_bucket.rb
338
+ - test/test_cas.rb
339
+ - test/test_couchbase.rb
340
+ - test/test_couchbase_connection_pool.rb
341
+ - test/test_couchbase_rails_cache_store.rb
342
+ - test/test_delete.rb
343
+ - test/test_errors.rb
344
+ - test/test_eventmachine.rb
345
+ - test/test_format.rb
346
+ - test/test_get.rb
347
+ - test/test_stats.rb
348
+ - test/test_store.rb
349
+ - test/test_timer.rb
350
+ - test/test_touch.rb
351
+ - test/test_unlock.rb
352
+ - test/test_utils.rb
353
+ - test/test_version.rb