couchbase 1.2.0.z.beta-x86-mingw32 → 1.2.1-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +1 -1
- data/Makefile +3 -0
- data/README.markdown +15 -4
- data/RELEASE_NOTES.markdown +526 -0
- data/couchbase.gemspec +0 -1
- data/ext/couchbase_ext/arguments.c +161 -244
- data/ext/couchbase_ext/arithmetic.c +29 -37
- data/ext/couchbase_ext/bucket.c +252 -219
- data/ext/couchbase_ext/couchbase_ext.c +540 -417
- data/ext/couchbase_ext/couchbase_ext.h +218 -191
- data/ext/couchbase_ext/delete.c +30 -27
- data/ext/couchbase_ext/extconf.rb +15 -3
- data/ext/couchbase_ext/get.c +45 -37
- data/ext/couchbase_ext/http.c +95 -74
- data/ext/couchbase_ext/multithread_plugin.c +1238 -0
- data/ext/couchbase_ext/observe.c +42 -37
- data/ext/couchbase_ext/result.c +17 -20
- data/ext/couchbase_ext/stats.c +30 -28
- data/ext/couchbase_ext/store.c +47 -39
- data/ext/couchbase_ext/timer.c +11 -11
- data/ext/couchbase_ext/touch.c +30 -27
- data/ext/couchbase_ext/unlock.c +30 -27
- data/ext/couchbase_ext/utils.c +166 -89
- data/ext/couchbase_ext/version.c +29 -26
- data/lib/action_dispatch/middleware/session/couchbase_store.rb +2 -2
- data/lib/active_support/cache/couchbase_store.rb +6 -6
- data/lib/couchbase.rb +1 -0
- data/lib/couchbase/bucket.rb +6 -11
- data/lib/couchbase/cluster.rb +105 -0
- data/lib/couchbase/utils.rb +8 -5
- data/lib/couchbase/version.rb +1 -1
- data/lib/couchbase/view.rb +51 -5
- data/lib/couchbase/view_row.rb +1 -1
- data/lib/ext/multi_json_fix.rb +13 -9
- data/lib/rack/session/couchbase.rb +11 -7
- data/tasks/compile.rake +1 -1
- data/tasks/test.rake +40 -34
- data/tasks/util.rake +1 -1
- data/test/setup.rb +9 -2
- data/test/test_arithmetic.rb +37 -0
- data/test/test_async.rb +22 -18
- data/test/test_unlock.rb +0 -1
- data/test/test_utils.rb +32 -0
- metadata +13 -23
- data/HISTORY.markdown +0 -219
data/.travis.yml
CHANGED
@@ -9,7 +9,7 @@ before_install:
|
|
9
9
|
- wget -O- http://packages.couchbase.com/ubuntu/couchbase.key | sudo apt-key add -
|
10
10
|
- echo deb http://packages.couchbase.com/snapshot/ubuntu oneiric oneiric/main | sudo tee /etc/apt/sources.list.d/couchbase.list
|
11
11
|
- sudo apt-get update
|
12
|
-
- sudo apt-get -y install
|
12
|
+
- sudo apt-get -y install libcouchbase2-dev
|
13
13
|
|
14
14
|
rvm:
|
15
15
|
- 1.8.7
|
data/Makefile
ADDED
data/README.markdown
CHANGED
@@ -1,6 +1,13 @@
|
|
1
|
-
# Couchbase Ruby Client
|
1
|
+
# Couchbase Ruby Client
|
2
2
|
|
3
|
-
This is the official client library for use with Couchbase Server.
|
3
|
+
This is the official client library for use with Couchbase Server. There
|
4
|
+
are related libraries available:
|
5
|
+
|
6
|
+
* [couchbase-model][6] the ActiveModel implementation, git repository:
|
7
|
+
[https://github.com/couchbase/couchbase-ruby-model][7]
|
8
|
+
|
9
|
+
* [em-couchbase][8] EventMachine friendly implementation of couchbase
|
10
|
+
client, git repository: [https://github.com/couchbase/couchbase-ruby-client-em][9]
|
4
11
|
|
5
12
|
## SUPPORT
|
6
13
|
|
@@ -436,7 +443,6 @@ store a couple of posts using memcached API:
|
|
436
443
|
c['hello-world'] = {:title => 'Hello World',
|
437
444
|
:body => 'Well hello and welcome to my new blog...',
|
438
445
|
:date => '2009/01/15 15:52:20'}
|
439
|
-
c.all_docs.count #=> 3
|
440
446
|
|
441
447
|
Now let's create design doc with sample view and save it in file
|
442
448
|
'blog.json':
|
@@ -486,7 +492,7 @@ You can also use Enumerator to iterate view results
|
|
486
492
|
|
487
493
|
require 'date'
|
488
494
|
posts_by_date = Hash.new{|h,k| h[k] = []}
|
489
|
-
enum = c.
|
495
|
+
enum = c.recent_posts(:include_docs => true).each # request hasn't issued yet
|
490
496
|
enum.inject(posts_by_date) do |acc, doc|
|
491
497
|
acc[date] = Date.strptime(doc['date'], '%Y/%m/%d')
|
492
498
|
acc
|
@@ -519,3 +525,8 @@ the error is detected.
|
|
519
525
|
[3]: http://www.couchbase.com/develop/c/current
|
520
526
|
[4]: https://github.com/mxcl/homebrew/pulls/avsej
|
521
527
|
[5]: http://code.google.com/p/memcached/wiki/BinaryProtocolRevamped
|
528
|
+
[6]: https://rubygems.org/gems/couchbase-model
|
529
|
+
[7]: https://github.com/couchbase/couchbase-ruby-model
|
530
|
+
[8]: https://rubygems.org/gems/em-couchbase
|
531
|
+
[9]: https://github.com/couchbase/couchbase-ruby-client-em
|
532
|
+
|
@@ -0,0 +1,526 @@
|
|
1
|
+
# Release Notes
|
2
|
+
|
3
|
+
This document is a list of user visible feature changes and important
|
4
|
+
bugfixes. Do not forget to update this doc in every important patch.
|
5
|
+
|
6
|
+
## 1.2.1 (2012-12-28)
|
7
|
+
|
8
|
+
* [major] RCBC-101 Persistence constraints were not passed to mutation
|
9
|
+
methods, so they were not applied properly.
|
10
|
+
|
11
|
+
* [major] RCBC-102 Inconsistent return values in case of storage
|
12
|
+
functions with persistence constraints. It always returns a Hash
|
13
|
+
in case of multi-set, even if there is only one document is being
|
14
|
+
set.
|
15
|
+
|
16
|
+
* [minor] Improve internal structures of multi-threaded IO plugin to
|
17
|
+
protect it from memory leaks when the Fiber object is forgotten.
|
18
|
+
|
19
|
+
## 1.2.0 (2012-12-12)
|
20
|
+
|
21
|
+
30 files changed, 2079 insertions(+), 662 deletions(-)
|
22
|
+
|
23
|
+
* New specialized io plugin for releasing Ruby GVL (thanks to
|
24
|
+
Sokolov Yura aka funny_falcon).
|
25
|
+
|
26
|
+
* Ruby 1.9.x uses a global lock for ensuring integrity, and blocking
|
27
|
+
calls should be called inside rb_thread_blocking_region to allow
|
28
|
+
other threads to be run.
|
29
|
+
|
30
|
+
* Ruby 1.8.7 has only green threads, so rb_thread_schedule
|
31
|
+
should be called manually.
|
32
|
+
|
33
|
+
* RCBC-42 Catch exceptions from ruby callbacks.
|
34
|
+
|
35
|
+
* RCBC-99 read out the StringIO contents in json gem monkey patch.
|
36
|
+
|
37
|
+
* Use marshal serializer by default for session store.
|
38
|
+
|
39
|
+
* Remove debugger development dependency.
|
40
|
+
|
41
|
+
* Fix memory leaks and performance improvements.
|
42
|
+
|
43
|
+
## 1.2.0.z.beta5 (2012-11-29)
|
44
|
+
|
45
|
+
25 files changed, 1419 insertions(+), 1230 deletions(-)
|
46
|
+
|
47
|
+
* RCBC-95 Use response body to clarify Couchbase::Error::HTTP.
|
48
|
+
|
49
|
+
* Fix memory leaks: in async mode context wasn't freed.
|
50
|
+
|
51
|
+
* Allow caller to setup default initial value for INCR/DECR on per
|
52
|
+
connection level.
|
53
|
+
|
54
|
+
* Make error message about libcouchbase dependency more verbose.
|
55
|
+
|
56
|
+
## 1.2.0.z.beta4 (2012-11-21)
|
57
|
+
|
58
|
+
27 files changed, 311 insertions(+), 123 deletions(-)
|
59
|
+
|
60
|
+
* Increase default connection timeout for Views up to 75 seconds.
|
61
|
+
|
62
|
+
* RCBC-94 Reset global exception after usage.
|
63
|
+
|
64
|
+
* RCBC-89 Do not expose docs embedded in HTTP response. Use binary
|
65
|
+
protocol for it.
|
66
|
+
|
67
|
+
* Remove all_docs mentions. It isn't recommended to use it because of
|
68
|
+
performance and support concerns.
|
69
|
+
|
70
|
+
* Protect against non string values in :plain mode. Will raise error
|
71
|
+
if the value given isn't a string.
|
72
|
+
|
73
|
+
* RCBC-90 Update documentation about session store.
|
74
|
+
|
75
|
+
* Make rack session store adapter quiet.
|
76
|
+
|
77
|
+
* Update to recent libcouchbase API.
|
78
|
+
|
79
|
+
* Adjust version check for MultiJson monkeypatch (8098da1).
|
80
|
+
|
81
|
+
* Do not hide ValueFormat reason.
|
82
|
+
|
83
|
+
## 1.2.0.z.beta3 (2012-10-16)
|
84
|
+
|
85
|
+
18 files changed, 241 insertions(+), 57 deletions(-)
|
86
|
+
|
87
|
+
* RCBC-52 Implement bucket create/delete operations.
|
88
|
+
|
89
|
+
* Propogate status code for HTTP responses.
|
90
|
+
|
91
|
+
* RCBC-87 Fix build error on macos.
|
92
|
+
|
93
|
+
* Use global scope to find Error classes (thanks to @wr0ngway).
|
94
|
+
|
95
|
+
* Fix memory leaks.
|
96
|
+
|
97
|
+
* Update to recent libcouchbase API.
|
98
|
+
|
99
|
+
## 1.2.0.z.beta2 (2012-09-21)
|
100
|
+
|
101
|
+
3 files changed, 6 insertions(+), 2 deletions(-)
|
102
|
+
|
103
|
+
* RCBC-82 Not all rubies are fat on MacOS. Fixes build.
|
104
|
+
|
105
|
+
## 1.2.0.z.beta (2012-09-18)
|
106
|
+
|
107
|
+
2 files changed, 5 insertions(+), 1 deletion(-)
|
108
|
+
|
109
|
+
* Fix version ordering by using ".z" prefix before .beta.
|
110
|
+
|
111
|
+
## 1.2.0.beta (2012-09-18)
|
112
|
+
|
113
|
+
51 files changed, 9301 insertions(+), 3364 deletions(-)
|
114
|
+
|
115
|
+
* RCBC-81 Protect against NoMethodError in extconf.rb. Fixes
|
116
|
+
gem installation.
|
117
|
+
|
118
|
+
* RCBC-79 Use RESTful flush.
|
119
|
+
|
120
|
+
* Various build fixes.
|
121
|
+
|
122
|
+
* Add attribute reader for Error::Base status code.
|
123
|
+
|
124
|
+
* CCBC-98 Expose client temporary failure error.
|
125
|
+
|
126
|
+
* RCBC-28 Implement Bucket#unlock.
|
127
|
+
|
128
|
+
* Fix CAS conversion for Bucket#delete method for 32-bit systems.
|
129
|
+
|
130
|
+
## 1.1.5 (2012-09-17)
|
131
|
+
|
132
|
+
3 files changed, 9 insertions(+), 5 deletions(-)
|
133
|
+
|
134
|
+
* RCBC-81 Fixed installing issue on MacOS.
|
135
|
+
|
136
|
+
## 1.1.4 (2012-08-30)
|
137
|
+
|
138
|
+
5 files changed, 64 insertions(+), 30 deletions(-)
|
139
|
+
|
140
|
+
* RCBC-37 Allow app to pass intial list of nodes which will let client
|
141
|
+
iterate addresses until an alive node is found.
|
142
|
+
|
143
|
+
Couchbase.connect(:node_list => ['node1.example.com:8091', 'node2.example.org:8091', 'node3.example.com:8091'])
|
144
|
+
|
145
|
+
* RCBC-70 Fixed UTF-8 in the keys. Original discussion
|
146
|
+
https://groups.google.com/d/topic/couchbase/bya0lSf9uGE/discussion
|
147
|
+
|
148
|
+
## 1.2.0.dp6 (2012-06-28)
|
149
|
+
|
150
|
+
21 files changed, 1520 insertions(+), 428 deletions(-)
|
151
|
+
|
152
|
+
* RCBC-47 Allow to skip username for protected buckets. The will use
|
153
|
+
bucket name for credentials.
|
154
|
+
|
155
|
+
* Expose the number of replicas to the user.
|
156
|
+
|
157
|
+
* RCBC-6 Implement OBSERVE command.
|
158
|
+
|
159
|
+
* RCBC-49 :observe option for storage functions.
|
160
|
+
|
161
|
+
* RCBC-50 Allow to read keys from replica.
|
162
|
+
|
163
|
+
* RCBC-57 Expose timers API from libcouchbase.
|
164
|
+
|
165
|
+
* RCBC-59 Replicate flags in Bucket#cas operation.
|
166
|
+
|
167
|
+
* Apply timeout value before connection. Currently libcouchbase shares
|
168
|
+
timeouts for connection and IO operations. This patch allows to
|
169
|
+
setup a timeout when instantiating the connection.
|
170
|
+
|
171
|
+
* RCBC-39 Allow to specify delta for incr/decr in options.
|
172
|
+
|
173
|
+
* RCBC-40 Fix Bucket#cas operation behaviour in async mode. The
|
174
|
+
callback of the Bucket#cas method is triggered only once, when it
|
175
|
+
fetches old value, and it isn't possible to receive notification if
|
176
|
+
the next store operation was successful. Example, append JSON
|
177
|
+
encoded value asynchronously:
|
178
|
+
|
179
|
+
c.default_format = :document
|
180
|
+
c.set("foo", {"bar" => 1})
|
181
|
+
c.run do
|
182
|
+
c.cas("foo") do |val|
|
183
|
+
case val.operation
|
184
|
+
when :get
|
185
|
+
val["baz"] = 2
|
186
|
+
val
|
187
|
+
when :set
|
188
|
+
# verify all is ok
|
189
|
+
puts "error: #{ret.error.inspect}" unless ret.success?
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
c.get("foo") #=> {"bar" => 1, "baz" => 2}
|
194
|
+
|
195
|
+
* RCBC-43 More docs and examples on views.
|
196
|
+
|
197
|
+
* RCBC-37 Bootstrapping using multiple nodes.
|
198
|
+
|
199
|
+
Couchbase.connect(:node_list => ['example.com:8091', 'example.org:8091', 'example.net'])
|
200
|
+
|
201
|
+
* Inherit StandardError instead RuntimeError for errors
|
202
|
+
|
203
|
+
## 1.2.0.dp5 (2012-06-15)
|
204
|
+
|
205
|
+
12 files changed, 939 insertions(+), 20 deletions(-)
|
206
|
+
|
207
|
+
* Integrate with Rack and Rails session store.
|
208
|
+
|
209
|
+
# rack
|
210
|
+
require 'rack/session/couchbase'
|
211
|
+
use Rack::Session::Couchbase
|
212
|
+
|
213
|
+
# rails
|
214
|
+
require 'action_dispatch/middleware/session/couchbase_store'
|
215
|
+
AppName::Application.config.session_store :couchbase_store
|
216
|
+
|
217
|
+
* Implement cache store adapter for Rails.
|
218
|
+
|
219
|
+
cache_options = {
|
220
|
+
:bucket => 'protected',
|
221
|
+
:username => 'protected',
|
222
|
+
:password => 'secret',
|
223
|
+
:expires_in => 30.seconds
|
224
|
+
}
|
225
|
+
config.cache_store = :couchbase_store, cache_options
|
226
|
+
|
227
|
+
* Implement key prefix (simple namespacing).
|
228
|
+
|
229
|
+
Couchbase.connect(:key_prefix => "prefix:")
|
230
|
+
|
231
|
+
* Allow to force assembling result Hash for multi-get.
|
232
|
+
|
233
|
+
connection.get("foo", "bar")
|
234
|
+
#=> [1, 2]
|
235
|
+
connection.get("foo", "bar", :assemble_hash => true)
|
236
|
+
#=> {"foo" => 1, "bar" => 2}
|
237
|
+
|
238
|
+
## 1.2.0.dp4 (2012-06-07)
|
239
|
+
|
240
|
+
4 files changed, 34 insertions(+), 19 deletions(-)
|
241
|
+
|
242
|
+
* Update replace documentation: it accepts :cas option.
|
243
|
+
|
244
|
+
* RCBC-36 Fix segfault. Ocassional segfault when accessing the
|
245
|
+
results of a View. https://gist.github.com/2883925
|
246
|
+
|
247
|
+
## 1.2.0.dp3 (2012-06-06)
|
248
|
+
|
249
|
+
4 files changed, 22 insertions(+), 4 deletions(-)
|
250
|
+
|
251
|
+
* Fix for multi_json < 1.3.3.
|
252
|
+
|
253
|
+
* Break out from event loop for non-chunked responses (fix creating
|
254
|
+
design create).
|
255
|
+
|
256
|
+
## 1.2.0.dp2 (2012-06-06)
|
257
|
+
|
258
|
+
22 files changed, 859 insertions(+), 253 deletions(-)
|
259
|
+
|
260
|
+
* RCBC-31 Make Bucket#get more consistent. The pattern of using more
|
261
|
+
than one argument to determine if an array should be returned is not
|
262
|
+
idiomatic. Consider the case of a multi-get in an application where
|
263
|
+
I have n items to return. If there happens to be only one item it
|
264
|
+
will be treated differently than if there happens to be 2 items.
|
265
|
+
|
266
|
+
get(["foo"]) #=> ["bar"]
|
267
|
+
get("foo") #=> "bar"
|
268
|
+
get(["x"], :extended => true) #=> {"x"=>["xval", 0, 18336939621176836096]}
|
269
|
+
|
270
|
+
* Use monotonic high resolution clock.
|
271
|
+
|
272
|
+
* Implement threshold for outgoing commands.
|
273
|
+
|
274
|
+
* Allow event loop to be stopped from ruby.
|
275
|
+
|
276
|
+
* RCBC-35 Fix the View parameters escaping. More info at
|
277
|
+
https://gist.github.com/2775050
|
278
|
+
|
279
|
+
* RCBC-34 Use multi_json gem. json_gem compatibility (require
|
280
|
+
'yajl/json_gem') is notorious for causing all kinds of issues with
|
281
|
+
various gems. The most compatible way to use yajl is to call
|
282
|
+
Yajl::Parser and Yajl::Encoder directly.
|
283
|
+
|
284
|
+
* Allow block and wait for part of the request.
|
285
|
+
|
286
|
+
* Fix view iterator to not lock the event loop anymore.
|
287
|
+
|
288
|
+
* Define views only if "views" key presented.
|
289
|
+
|
290
|
+
* Require yajl as development dependency.
|
291
|
+
|
292
|
+
* Implement get with lock operation.
|
293
|
+
|
294
|
+
* Update documentation.
|
295
|
+
|
296
|
+
## 1.1.3 (2012-07-27)
|
297
|
+
|
298
|
+
5 files changed, 192 insertions(+), 101 deletions(-)
|
299
|
+
|
300
|
+
* RCBC-64 The Couchbase::Bucket class hasn't implemented the #dup
|
301
|
+
method. So it caused SEGFAULT. The patch is implementing correct
|
302
|
+
function, which copy the internals and initializes new connection.
|
303
|
+
|
304
|
+
* RCBC-59 The flags might be reset if caller will use
|
305
|
+
Couchbase::Bucket#cas operation. Here is IRB session demostrating
|
306
|
+
the issue:
|
307
|
+
|
308
|
+
irb>Couchbase.bucket.set("foo", "bar", :flags => 0x100)
|
309
|
+
17982951084586893312
|
310
|
+
irb> Couchbase.bucket.cas("foo") { "baz" }
|
311
|
+
1712422461213442048
|
312
|
+
irb> Couchbase.bucket.get("foo", :extended => true)
|
313
|
+
["baz", 0, 1712422461213442048]
|
314
|
+
|
315
|
+
|
316
|
+
* RCBC-60 Make object_space GC protector per-bucket object. Previous
|
317
|
+
version provided not completely thread-safe bucket instance, because
|
318
|
+
it was sharing global hash for protecting objects, created in
|
319
|
+
extension, from garbage collecting.
|
320
|
+
|
321
|
+
## 1.1.2 (2012-06-05)
|
322
|
+
|
323
|
+
5 files changed, 9 insertions(+), 4 deletions(-)
|
324
|
+
|
325
|
+
* Upgrade libcouchbase dependency to 1.0.4. Version 1.0.4 includes
|
326
|
+
important stability fixes.
|
327
|
+
|
328
|
+
* Backport debugger patch. The gem used to require debugger as
|
329
|
+
development dependency. Unfortunately ruby-debug19 isn't supported
|
330
|
+
anymore for ruby 1.9.x. But there is new gem 'debugger'. This patch
|
331
|
+
replaces this dependency.
|
332
|
+
|
333
|
+
## 1.2.0.dp (2012-04-10)
|
334
|
+
|
335
|
+
19 files changed, 1606 insertions(+), 93 deletions(-)
|
336
|
+
|
337
|
+
* Properly handle hashes as Couchbase.connection_options
|
338
|
+
|
339
|
+
* Implement views
|
340
|
+
|
341
|
+
* Use verbose mode by default throwing exceptions on NOT_FOUND errors.
|
342
|
+
This means that quiet attribute is false now on new connections.
|
343
|
+
|
344
|
+
* Documentation fixes
|
345
|
+
|
346
|
+
## 1.1.1 (2012-03-19)
|
347
|
+
|
348
|
+
5 files changed, 83 insertions(+), 23 deletions(-)
|
349
|
+
|
350
|
+
* Flags are used differently in different clients for example between
|
351
|
+
Python and Ruby. This fix will force the format to a known value
|
352
|
+
irrespective of the flags.
|
353
|
+
|
354
|
+
* Calls between Ruby and C libraries for Couchbase which involved
|
355
|
+
default arguments had an associated arity of -1 which was not being
|
356
|
+
handled correctly. That is being handled correctly now.
|
357
|
+
|
358
|
+
## 1.1.0 (2012-03-07)
|
359
|
+
|
360
|
+
27 files changed, 2460 insertions(+), 849 deletions(-)
|
361
|
+
|
362
|
+
* With the usage of the URI parser from stdlib it is possible to
|
363
|
+
validate the bucket URI more strictly. Also, it is possible to
|
364
|
+
specify credentials in the URI like:
|
365
|
+
http://username:password@example.com:8091/pools/default/buckets/custom
|
366
|
+
|
367
|
+
* The "default" connection is available in thread local storage. This
|
368
|
+
mean that using the Couchbase.bucket method it is possible to get
|
369
|
+
access to current connection and there is no need to share
|
370
|
+
connections when running in multi-thread environment. Each thread
|
371
|
+
has its own connection reference.
|
372
|
+
|
373
|
+
* The direct dependency on libevent and sasl has been removed. Now the
|
374
|
+
library doesn't require libevent headers installed.
|
375
|
+
|
376
|
+
* The disconnect and reconnect interfaces are implemented which
|
377
|
+
provide routines for explicit resource management. Connections were
|
378
|
+
freed only when the Garbage Collector found that the connection was
|
379
|
+
not being used. Now it's possible for the client to check if the
|
380
|
+
bucket was connected using 'connected?' or 'disconnect' it manually
|
381
|
+
or 'reconnect' using old settings.
|
382
|
+
|
383
|
+
* There were spurious timeout issues with a compound statement like
|
384
|
+
below. No timeout will occur unless there is a problem with the
|
385
|
+
connection.
|
386
|
+
|
387
|
+
connection.run do
|
388
|
+
connection.get("foo") {|ret| puts "got foo = #{ret.value}"}
|
389
|
+
sleep(5)
|
390
|
+
end
|
391
|
+
|
392
|
+
* It is not required to install libcouchbase or libvbucket on windows.
|
393
|
+
|
394
|
+
* It is possible to store nil as a value. It is possible to
|
395
|
+
distinguish a nil value from a missing key by looking at at the
|
396
|
+
value returned and the flags and CAS values as well.
|
397
|
+
|
398
|
+
* Based on the time out fix (CCBC-20), clients will be notified when
|
399
|
+
the connection was dropped or host isn't available.
|
400
|
+
|
401
|
+
## 1.0.0 (2012-03-01)
|
402
|
+
|
403
|
+
50 files changed, 4696 insertions(+), 2647 deletions(-)
|
404
|
+
|
405
|
+
* Port library to use libcouchbase instead of memcached gem.
|
406
|
+
Implemented following operations:
|
407
|
+
|
408
|
+
* get, []
|
409
|
+
* set, []=
|
410
|
+
* add
|
411
|
+
* replace
|
412
|
+
* append
|
413
|
+
* prepend
|
414
|
+
* compare-and-swap
|
415
|
+
* arithmetic (incr/decr)
|
416
|
+
* flush
|
417
|
+
* stats
|
418
|
+
* delete
|
419
|
+
* touch
|
420
|
+
|
421
|
+
* Introduce support for three data formats:
|
422
|
+
|
423
|
+
* document
|
424
|
+
* marshal
|
425
|
+
* plain
|
426
|
+
|
427
|
+
* Removed Views support.
|
428
|
+
|
429
|
+
* Added benchmarks, couchbase vs. memcached vs. dalli
|
430
|
+
|
431
|
+
* Implement asynchronous protocol.
|
432
|
+
|
433
|
+
* e36c2e7 Implement basic commands.
|
434
|
+
|
435
|
+
## 0.9.8 (2011-12-16)
|
436
|
+
|
437
|
+
3 files changed, 8 insertions(+), 3 deletions(-)
|
438
|
+
|
439
|
+
* RCBC-10 Always specify credentials for non-default buckets. It was
|
440
|
+
impossible to store data in non-default buckets.
|
441
|
+
|
442
|
+
## 0.9.7 (2011-10-05)
|
443
|
+
|
444
|
+
7 files changed, 31 insertions(+), 19 deletions(-)
|
445
|
+
|
446
|
+
* Fix design doc removal.
|
447
|
+
|
448
|
+
* Fix 'set' method signature: add missing options argument.
|
449
|
+
|
450
|
+
* Rename gem to 'couchbase' for easy of use. The github project still
|
451
|
+
is 'couchbase-ruby-client'
|
452
|
+
|
453
|
+
## 0.9.6 (2011-10-04)
|
454
|
+
|
455
|
+
13 files changed, 609 insertions(+), 99 deletions(-)
|
456
|
+
|
457
|
+
* Fix bug with decoding multiget result
|
458
|
+
|
459
|
+
* Allow create design documents from IO and String
|
460
|
+
|
461
|
+
* Rename 'json' format to 'document', and describe possible formats
|
462
|
+
|
463
|
+
* Allow to handle errors in view result stream
|
464
|
+
|
465
|
+
* Remove dependency on libyajl library: it bundled with yaji now
|
466
|
+
|
467
|
+
## 0.9.5 (2011-08-24)
|
468
|
+
|
469
|
+
4 files changed, 59 insertions(+), 28 deletions(-)
|
470
|
+
|
471
|
+
* Update README. Make it more human-friendly.
|
472
|
+
|
473
|
+
* Removed depency on will_paginate in development mode.
|
474
|
+
|
475
|
+
## 0.9.4 (2011-08-01)
|
476
|
+
|
477
|
+
24 files changed, 1240 insertions(+), 78 deletions(-)
|
478
|
+
|
479
|
+
* Use streaming json parser to iterate over view results.
|
480
|
+
|
481
|
+
* Update memcached gem dependency to v1.3.
|
482
|
+
|
483
|
+
* Proxy TOUCH command to memcached client.
|
484
|
+
|
485
|
+
* Fix minor bugs in RestClient and Document classes.
|
486
|
+
|
487
|
+
* Disable CouchDB API for nodes without 'couchApiBase' key provided.
|
488
|
+
|
489
|
+
* Fix bug with unicode parsing in config listener.
|
490
|
+
|
491
|
+
* 61f394e RCBC-5 Add Dave's test case: ensure memcached client
|
492
|
+
initialized. Fixes Timeout error on connecting to membase with
|
493
|
+
Couchbase.new on Ruby 1.8.7.
|
494
|
+
|
495
|
+
## 0.9.3 (2011-07-29)
|
496
|
+
|
497
|
+
6 files changed, 167 insertions(+), 9 deletions(-)
|
498
|
+
|
499
|
+
* Use Latch (via Mutex and ConditionVariable) to wait until initial
|
500
|
+
setup will be finished.
|
501
|
+
|
502
|
+
* Update prefix for development views (from '$dev_' to 'dev_').
|
503
|
+
|
504
|
+
## 0.9.2 (2011-07-28)
|
505
|
+
|
506
|
+
5 files changed, 31 insertions(+), 20 deletions(-)
|
507
|
+
|
508
|
+
* Use zero TTL by default to store records forever.
|
509
|
+
|
510
|
+
* Update documentation.
|
511
|
+
|
512
|
+
* Wait until configuration is done.
|
513
|
+
|
514
|
+
## 0.9.1 (2011-07-25)
|
515
|
+
|
516
|
+
3 files changed, 5 insertions(+), 2 deletions(-)
|
517
|
+
|
518
|
+
* Minor bugfix for RestClient initialization.
|
519
|
+
|
520
|
+
## 0.9.0 (2011-07-25)
|
521
|
+
|
522
|
+
19 files changed, 1174 insertions(+)
|
523
|
+
|
524
|
+
* Initial public release. It suppors most of the binary protocol
|
525
|
+
commands through memcached gem and also is able to listen to bucket
|
526
|
+
configuration and make View requests.
|