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.
Files changed (45) hide show
  1. data/.travis.yml +1 -1
  2. data/Makefile +3 -0
  3. data/README.markdown +15 -4
  4. data/RELEASE_NOTES.markdown +526 -0
  5. data/couchbase.gemspec +0 -1
  6. data/ext/couchbase_ext/arguments.c +161 -244
  7. data/ext/couchbase_ext/arithmetic.c +29 -37
  8. data/ext/couchbase_ext/bucket.c +252 -219
  9. data/ext/couchbase_ext/couchbase_ext.c +540 -417
  10. data/ext/couchbase_ext/couchbase_ext.h +218 -191
  11. data/ext/couchbase_ext/delete.c +30 -27
  12. data/ext/couchbase_ext/extconf.rb +15 -3
  13. data/ext/couchbase_ext/get.c +45 -37
  14. data/ext/couchbase_ext/http.c +95 -74
  15. data/ext/couchbase_ext/multithread_plugin.c +1238 -0
  16. data/ext/couchbase_ext/observe.c +42 -37
  17. data/ext/couchbase_ext/result.c +17 -20
  18. data/ext/couchbase_ext/stats.c +30 -28
  19. data/ext/couchbase_ext/store.c +47 -39
  20. data/ext/couchbase_ext/timer.c +11 -11
  21. data/ext/couchbase_ext/touch.c +30 -27
  22. data/ext/couchbase_ext/unlock.c +30 -27
  23. data/ext/couchbase_ext/utils.c +166 -89
  24. data/ext/couchbase_ext/version.c +29 -26
  25. data/lib/action_dispatch/middleware/session/couchbase_store.rb +2 -2
  26. data/lib/active_support/cache/couchbase_store.rb +6 -6
  27. data/lib/couchbase.rb +1 -0
  28. data/lib/couchbase/bucket.rb +6 -11
  29. data/lib/couchbase/cluster.rb +105 -0
  30. data/lib/couchbase/utils.rb +8 -5
  31. data/lib/couchbase/version.rb +1 -1
  32. data/lib/couchbase/view.rb +51 -5
  33. data/lib/couchbase/view_row.rb +1 -1
  34. data/lib/ext/multi_json_fix.rb +13 -9
  35. data/lib/rack/session/couchbase.rb +11 -7
  36. data/tasks/compile.rake +1 -1
  37. data/tasks/test.rake +40 -34
  38. data/tasks/util.rake +1 -1
  39. data/test/setup.rb +9 -2
  40. data/test/test_arithmetic.rb +37 -0
  41. data/test/test_async.rb +22 -18
  42. data/test/test_unlock.rb +0 -1
  43. data/test/test_utils.rb +32 -0
  44. metadata +13 -23
  45. 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 libevent-dev libvbucket-dev libcouchbase-dev
12
+ - sudo apt-get -y install libcouchbase2-dev
13
13
 
14
14
  rvm:
15
15
  - 1.8.7
data/Makefile ADDED
@@ -0,0 +1,3 @@
1
+ all:
2
+ $(MAKE) -C../.. ruby-client
3
+
data/README.markdown CHANGED
@@ -1,6 +1,13 @@
1
- # Couchbase Ruby Client [![Build Status](https://secure.travis-ci.org/couchbase/couchbase-ruby-client.png?branch=master)](http://travis-ci.org/couchbase/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.all_docs(:include_docs => true).each # request hasn't issued yet
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.