moneta 0.7.9 → 0.7.10

Sign up to get free protection for your applications and to get access to all the features.
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: