moneta 0.7.9 → 0.7.10

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 (52) hide show
  1. data/.travis.yml +2 -2
  2. data/CHANGES +6 -0
  3. data/Gemfile +2 -0
  4. data/README.md +7 -4
  5. data/Rakefile +2 -2
  6. data/lib/moneta.rb +1 -0
  7. data/lib/moneta/adapters/activerecord.rb +1 -2
  8. data/lib/moneta/adapters/cassandra.rb +31 -26
  9. data/lib/moneta/adapters/cookie.rb +2 -2
  10. data/lib/moneta/adapters/couch.rb +5 -3
  11. data/lib/moneta/adapters/daybreak.rb +13 -9
  12. data/lib/moneta/adapters/dbm.rb +7 -3
  13. data/lib/moneta/adapters/file.rb +4 -3
  14. data/lib/moneta/adapters/fog.rb +5 -2
  15. data/lib/moneta/adapters/gdbm.rb +7 -3
  16. data/lib/moneta/adapters/hbase.rb +11 -9
  17. data/lib/moneta/adapters/kyotocabinet.rb +13 -8
  18. data/lib/moneta/adapters/leveldb.rb +9 -5
  19. data/lib/moneta/adapters/localmemcache.rb +7 -3
  20. data/lib/moneta/adapters/memcached/dalli.rb +16 -11
  21. data/lib/moneta/adapters/memcached/native.rb +20 -15
  22. data/lib/moneta/adapters/memory.rb +2 -1
  23. data/lib/moneta/adapters/mongo.rb +13 -8
  24. data/lib/moneta/adapters/pstore.rb +24 -21
  25. data/lib/moneta/adapters/redis.rb +14 -12
  26. data/lib/moneta/adapters/restclient.rb +10 -7
  27. data/lib/moneta/adapters/riak.rb +5 -1
  28. data/lib/moneta/adapters/sdbm.rb +7 -3
  29. data/lib/moneta/adapters/sequel.rb +13 -8
  30. data/lib/moneta/adapters/sqlite.rb +15 -10
  31. data/lib/moneta/adapters/tdb.rb +8 -4
  32. data/lib/moneta/adapters/tokyocabinet.rb +15 -10
  33. data/lib/moneta/adapters/tokyotyrant.rb +107 -0
  34. data/lib/moneta/cache.rb +17 -17
  35. data/lib/moneta/mixins.rb +7 -5
  36. data/lib/moneta/version.rb +1 -1
  37. data/lib/rack/moneta_store.rb +1 -1
  38. data/lib/rack/session/moneta.rb +6 -3
  39. data/script/benchmarks +28 -28
  40. data/script/generate-specs +96 -41
  41. data/script/memusage +40 -0
  42. data/script/start-services +1 -0
  43. data/spec/helper.rb +4 -1
  44. data/spec/moneta/adapter_tokyotyrant_spec.rb +30 -0
  45. data/spec/moneta/cache_file_memory_spec.rb +3 -3
  46. data/spec/moneta/cache_memory_null_spec.rb +1 -1
  47. data/spec/moneta/simple_tokyotyrant_spec.rb +155 -0
  48. data/spec/moneta/simple_tokyotyrant_with_expires_spec.rb +157 -0
  49. data/spec/monetaspecs.rb +79 -37
  50. data/spec/rack/moneta_store_spec.rb +1 -1
  51. data/spec/rack/session_moneta_spec.rb +27 -0
  52. metadata +10 -3
@@ -47,7 +47,7 @@ describe Rack::MonetaStore do
47
47
  uncached_store['key'] = 'value'
48
48
  get do
49
49
  expect(@store['key']).to eql('value')
50
- expect(@store.backend).to equal(uncached_store)
50
+ expect(@store.adapter).to equal(uncached_store)
51
51
  expect(@store.cache['key']).to eql('value')
52
52
  end
53
53
  end
@@ -302,4 +302,31 @@ describe Rack::Session::Moneta do
302
302
  session['counter'].should.be.nil?
303
303
  session['foo'].should == 'bar'
304
304
  end
305
+
306
+ it "does not suffer a race-condition in get_session" do
307
+ # By lying about existence of a key this proxy tricks the session
308
+ # to overwrite values when it wouldn't normally.
309
+ broken_key = Class.new(::Moneta::Proxy) do
310
+ def key?(key, *args)
311
+ false
312
+ end
313
+ end
314
+
315
+ pool = Rack::Session::Moneta.new(incrementor) do
316
+ use broken_key
317
+ adapter :Memory
318
+ end
319
+
320
+ # Override the SID generator with one that returns predefined values.
321
+ gen = ["deadbeef", "deadbeef", "caffee"]
322
+ def gen.hex(_)
323
+ shift || raise("Empty!")
324
+ end
325
+ pool.instance_variable_set(:@sid_secure, gen)
326
+ req = Rack::MockRequest.new(pool)
327
+ req.get('/')
328
+ res = req.get('/')
329
+ res['Set-Cookie'].should =~ /\Arack.session=caffee; /
330
+ end
331
+
305
332
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moneta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.9
4
+ version: 0.7.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-01-29 00:00:00.000000000 Z
14
+ date: 2013-02-02 00:00:00.000000000 Z
15
15
  dependencies: []
16
16
  description: A unified interface to key/value stores
17
17
  email:
@@ -68,6 +68,7 @@ files:
68
68
  - lib/moneta/adapters/sqlite.rb
69
69
  - lib/moneta/adapters/tdb.rb
70
70
  - lib/moneta/adapters/tokyocabinet.rb
71
+ - lib/moneta/adapters/tokyotyrant.rb
71
72
  - lib/moneta/adapters/yaml.rb
72
73
  - lib/moneta/builder.rb
73
74
  - lib/moneta/cache.rb
@@ -100,6 +101,7 @@ files:
100
101
  - script/install-bundle
101
102
  - script/install-kyotocabinet
102
103
  - script/kill-travis
104
+ - script/memusage
103
105
  - script/start-services
104
106
  - script/upload-bundle
105
107
  - spec/action_dispatch/fixtures/session_autoload_test/foo.rb
@@ -143,6 +145,7 @@ files:
143
145
  - spec/moneta/adapter_tdb_spec.rb
144
146
  - spec/moneta/adapter_tokyocabinet_bdb_spec.rb
145
147
  - spec/moneta/adapter_tokyocabinet_hdb_spec.rb
148
+ - spec/moneta/adapter_tokyotyrant_spec.rb
146
149
  - spec/moneta/adapter_yaml_spec.rb
147
150
  - spec/moneta/cache_file_memory_spec.rb
148
151
  - spec/moneta/cache_memory_null_spec.rb
@@ -220,6 +223,8 @@ files:
220
223
  - spec/moneta/simple_tdb_with_expires_spec.rb
221
224
  - spec/moneta/simple_tokyocabinet_spec.rb
222
225
  - spec/moneta/simple_tokyocabinet_with_expires_spec.rb
226
+ - spec/moneta/simple_tokyotyrant_spec.rb
227
+ - spec/moneta/simple_tokyotyrant_with_expires_spec.rb
223
228
  - spec/moneta/simple_yaml_spec.rb
224
229
  - spec/moneta/simple_yaml_with_expires_spec.rb
225
230
  - spec/moneta/stack_file_memory_spec.rb
@@ -332,6 +337,7 @@ test_files:
332
337
  - spec/moneta/adapter_tdb_spec.rb
333
338
  - spec/moneta/adapter_tokyocabinet_bdb_spec.rb
334
339
  - spec/moneta/adapter_tokyocabinet_hdb_spec.rb
340
+ - spec/moneta/adapter_tokyotyrant_spec.rb
335
341
  - spec/moneta/adapter_yaml_spec.rb
336
342
  - spec/moneta/cache_file_memory_spec.rb
337
343
  - spec/moneta/cache_memory_null_spec.rb
@@ -409,6 +415,8 @@ test_files:
409
415
  - spec/moneta/simple_tdb_with_expires_spec.rb
410
416
  - spec/moneta/simple_tokyocabinet_spec.rb
411
417
  - spec/moneta/simple_tokyocabinet_with_expires_spec.rb
418
+ - spec/moneta/simple_tokyotyrant_spec.rb
419
+ - spec/moneta/simple_tokyotyrant_with_expires_spec.rb
412
420
  - spec/moneta/simple_yaml_spec.rb
413
421
  - spec/moneta/simple_yaml_with_expires_spec.rb
414
422
  - spec/moneta/stack_file_memory_spec.rb
@@ -454,4 +462,3 @@ test_files:
454
462
  - spec/rack/moneta_cookies_spec.rb
455
463
  - spec/rack/moneta_store_spec.rb
456
464
  - spec/rack/session_moneta_spec.rb
457
- has_rdoc: