moneta 1.4.2 → 1.5.0

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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +35 -38
  3. data/CHANGES +9 -0
  4. data/CONTRIBUTORS +2 -0
  5. data/Gemfile +143 -55
  6. data/README.md +5 -4
  7. data/lib/moneta/adapter.rb +52 -0
  8. data/lib/moneta/adapters/activerecord.rb +77 -68
  9. data/lib/moneta/adapters/activesupportcache.rb +22 -31
  10. data/lib/moneta/adapters/cassandra.rb +114 -116
  11. data/lib/moneta/adapters/client.rb +17 -18
  12. data/lib/moneta/adapters/couch.rb +31 -26
  13. data/lib/moneta/adapters/datamapper.rb +9 -5
  14. data/lib/moneta/adapters/daybreak.rb +15 -21
  15. data/lib/moneta/adapters/dbm.rb +6 -12
  16. data/lib/moneta/adapters/file.rb +21 -13
  17. data/lib/moneta/adapters/fog.rb +5 -6
  18. data/lib/moneta/adapters/gdbm.rb +6 -12
  19. data/lib/moneta/adapters/hbase.rb +10 -12
  20. data/lib/moneta/adapters/kyotocabinet.rb +22 -27
  21. data/lib/moneta/adapters/leveldb.rb +14 -20
  22. data/lib/moneta/adapters/lmdb.rb +19 -22
  23. data/lib/moneta/adapters/localmemcache.rb +7 -13
  24. data/lib/moneta/adapters/lruhash.rb +20 -20
  25. data/lib/moneta/adapters/memcached/dalli.rb +25 -33
  26. data/lib/moneta/adapters/memcached/native.rb +14 -20
  27. data/lib/moneta/adapters/memory.rb +5 -7
  28. data/lib/moneta/adapters/mongo.rb +53 -52
  29. data/lib/moneta/adapters/pstore.rb +21 -27
  30. data/lib/moneta/adapters/redis.rb +42 -37
  31. data/lib/moneta/adapters/restclient.rb +17 -25
  32. data/lib/moneta/adapters/riak.rb +8 -9
  33. data/lib/moneta/adapters/sdbm.rb +6 -12
  34. data/lib/moneta/adapters/sequel/mysql.rb +8 -8
  35. data/lib/moneta/adapters/sequel/postgres.rb +17 -17
  36. data/lib/moneta/adapters/sequel/postgres_hstore.rb +47 -47
  37. data/lib/moneta/adapters/sequel/sqlite.rb +9 -9
  38. data/lib/moneta/adapters/sequel.rb +56 -65
  39. data/lib/moneta/adapters/sqlite.rb +37 -35
  40. data/lib/moneta/adapters/tdb.rb +8 -14
  41. data/lib/moneta/adapters/tokyocabinet.rb +19 -17
  42. data/lib/moneta/adapters/tokyotyrant.rb +29 -30
  43. data/lib/moneta/adapters/yaml.rb +1 -5
  44. data/lib/moneta/config.rb +101 -0
  45. data/lib/moneta/expires.rb +0 -1
  46. data/lib/moneta/expires_support.rb +3 -4
  47. data/lib/moneta/pool.rb +1 -1
  48. data/lib/moneta/proxy.rb +29 -0
  49. data/lib/moneta/server.rb +21 -14
  50. data/lib/moneta/version.rb +1 -1
  51. data/lib/moneta/wrapper.rb +5 -0
  52. data/lib/moneta.rb +2 -0
  53. data/moneta.gemspec +1 -0
  54. data/spec/moneta/adapters/client/client_helper.rb +4 -3
  55. data/spec/moneta/adapters/faraday_helper.rb +3 -2
  56. data/spec/moneta/adapters/lruhash/adapter_lruhash_spec.rb +10 -6
  57. data/spec/moneta/adapters/mongo/adapter_mongo_spec.rb +2 -2
  58. data/spec/moneta/config_spec.rb +219 -0
  59. data/spec/moneta/proxies/transformer/transformer_bson_spec.rb +3 -1
  60. data/spec/moneta/proxies/transformer/transformer_marshal_escape_spec.rb +2 -0
  61. data/spec/rack/session_moneta_spec.rb +44 -25
  62. data/spec/restserver.rb +3 -14
  63. metadata +24 -6
@@ -4,30 +4,50 @@ require 'rack/mock'
4
4
  require 'thread'
5
5
 
6
6
  describe Rack::Session::Moneta do
7
- session_key = Rack::Session::Moneta::DEFAULT_OPTIONS[:key]
8
- session_match = /#{session_key}=([0-9a-fA-F]+);/
9
- incrementor = lambda do |env|
10
- env["rack.session"]["counter"] ||= 0
11
- env["rack.session"]["counter"] += 1
12
- Rack::Response.new(env["rack.session"].inspect).to_a
7
+ use_timecop
8
+
9
+ let(:session_key) { Rack::Session::Moneta::DEFAULT_OPTIONS[:key] }
10
+ let(:session_match) { /#{session_key}=([0-9a-fA-F]+);/ }
11
+
12
+ let :incrementor_proc do
13
+ lambda do |env|
14
+ env["rack.session"]["counter"] ||= 0
15
+ env["rack.session"]["counter"] += 1
16
+ Rack::Response.new(env["rack.session"].inspect).to_a
17
+ end
18
+ end
19
+
20
+ let :drop_session do
21
+ Rack::Lint.new(proc do |env|
22
+ env['rack.session.options'][:drop] = true
23
+ incrementor_proc.call(env)
24
+ end)
25
+ end
26
+
27
+ let :renew_session do
28
+ Rack::Lint.new(proc do |env|
29
+ env['rack.session.options'][:renew] = true
30
+ incrementor_proc.call(env)
31
+ end)
32
+ end
33
+
34
+ let :defer_session do
35
+ Rack::Lint.new(proc do |env|
36
+ env['rack.session.options'][:defer] = true
37
+ incrementor_proc.call(env)
38
+ end)
39
+ end
40
+
41
+ let :skip_session do
42
+ Rack::Lint.new(proc do |env|
43
+ env['rack.session.options'][:skip] = true
44
+ incrementor_proc.call(env)
45
+ end)
46
+ end
47
+
48
+ let :incrementor do
49
+ Rack::Lint.new(incrementor_proc)
13
50
  end
14
- drop_session = Rack::Lint.new(proc do |env|
15
- env['rack.session.options'][:drop] = true
16
- incrementor.call(env)
17
- end)
18
- renew_session = Rack::Lint.new(proc do |env|
19
- env['rack.session.options'][:renew] = true
20
- incrementor.call(env)
21
- end)
22
- defer_session = Rack::Lint.new(proc do |env|
23
- env['rack.session.options'][:defer] = true
24
- incrementor.call(env)
25
- end)
26
- skip_session = Rack::Lint.new(proc do |env|
27
- env['rack.session.options'][:skip] = true
28
- incrementor.call(env)
29
- end)
30
- incrementor = Rack::Lint.new(incrementor)
31
51
 
32
52
  it 'supports different constructors' do
33
53
  Rack::Session::Moneta.new(incrementor, :store => :Memory)
@@ -96,8 +116,7 @@ describe Rack::Session::Moneta do
96
116
  res = Rack::MockRequest.new(pool).get('/', "HTTP_COOKIE" => cookie)
97
117
  res["Set-Cookie"].should == cookie
98
118
  res.body.should include '"counter"=>2'
99
- puts 'Sleeping to expire session' if $DEBUG
100
- sleep 4
119
+ advance 4
101
120
  res = Rack::MockRequest.new(pool).get('/', "HTTP_COOKIE" => cookie)
102
121
  res["Set-Cookie"].should_not == cookie
103
122
  res.body.should include '"counter"=>1'
data/spec/restserver.rb CHANGED
@@ -1,18 +1,7 @@
1
1
  require 'faraday'
2
2
  require 'rack'
3
3
  require 'rack/moneta_rest'
4
-
5
- MONETA_RESTSERVER_LOGGER =
6
- if defined?(JRUBY_VERSION)
7
- require 'rjack-logback'
8
- RJack::Logback.config_console( :level => :off )
9
- require 'fishwife'
10
- nil
11
- else
12
- require 'webrick'
13
- # Keep webrick quiet
14
- WEBrick::Log.new($stderr, WEBrick::BasicLog::ERROR)
15
- end
4
+ require 'webrick'
16
5
 
17
6
  class MonetaRestServerShutdown < StandardError; end
18
7
 
@@ -25,10 +14,10 @@ def start_restserver(port)
25
14
  end
26
15
  end,
27
16
  :environment => 'none',
28
- :server => defined?(JRUBY_VERSION) ? :Fishwife : :webrick,
17
+ :server => :webrick,
29
18
  :Port => port,
30
19
  :AccessLog => [],
31
- :Logger => MONETA_RESTSERVER_LOGGER
20
+ :Logger => WEBrick::Log.new($stderr, WEBrick::BasicLog::ERROR)
32
21
  )
33
22
 
34
23
  Thread.start { server.start }
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: 1.4.2
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Mendler
@@ -11,8 +11,22 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2021-05-11 00:00:00.000000000 Z
14
+ date: 2022-04-06 00:00:00.000000000 Z
15
15
  dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: multi_json
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: 1.15.0
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 1.15.0
16
30
  - !ruby/object:Gem::Dependency
17
31
  name: parallel_tests
18
32
  requirement: !ruby/object:Gem::Requirement
@@ -125,6 +139,7 @@ files:
125
139
  - lib/action_dispatch/middleware/session/moneta_store.rb
126
140
  - lib/active_support/cache/moneta_store.rb
127
141
  - lib/moneta.rb
142
+ - lib/moneta/adapter.rb
128
143
  - lib/moneta/adapters/activerecord.rb
129
144
  - lib/moneta/adapters/activesupportcache.rb
130
145
  - lib/moneta/adapters/cassandra.rb
@@ -166,6 +181,7 @@ files:
166
181
  - lib/moneta/adapters/yaml.rb
167
182
  - lib/moneta/builder.rb
168
183
  - lib/moneta/cache.rb
184
+ - lib/moneta/config.rb
169
185
  - lib/moneta/create_support.rb
170
186
  - lib/moneta/dbm_adapter.rb
171
187
  - lib/moneta/defaults.rb
@@ -354,6 +370,7 @@ files:
354
370
  - spec/moneta/adapters/yaml/standard_yaml_spec.rb
355
371
  - spec/moneta/adapters/yaml/standard_yaml_with_expires_spec.rb
356
372
  - spec/moneta/builder_spec.rb
373
+ - spec/moneta/config_spec.rb
357
374
  - spec/moneta/mutex_spec.rb
358
375
  - spec/moneta/proxies/cache/cache_file_memory_spec.rb
359
376
  - spec/moneta/proxies/cache/cache_memory_null_spec.rb
@@ -429,9 +446,9 @@ licenses:
429
446
  - MIT
430
447
  metadata:
431
448
  bug_tracker_uri: https://github.com/moneta-rb/moneta/issues
432
- changelog_uri: https://github.com/moneta-rb/moneta/blob/v1.4.2/CHANGES
433
- documentation_uri: https://www.rubydoc.info/gems/moneta/1.4.2
434
- source_code_uri: https://github.com/moneta-rb/moneta/tree/v1.4.2
449
+ changelog_uri: https://github.com/moneta-rb/moneta/blob/v1.5.0/CHANGES
450
+ documentation_uri: https://www.rubydoc.info/gems/moneta/1.5.0
451
+ source_code_uri: https://github.com/moneta-rb/moneta/tree/v1.5.0
435
452
  post_install_message:
436
453
  rdoc_options: []
437
454
  require_paths:
@@ -447,7 +464,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
447
464
  - !ruby/object:Gem::Version
448
465
  version: '0'
449
466
  requirements: []
450
- rubygems_version: 3.2.15
467
+ rubygems_version: 3.3.8
451
468
  signing_key:
452
469
  specification_version: 4
453
470
  summary: A unified interface to key/value stores, including Redis, Memcached, TokyoCabinet,
@@ -596,6 +613,7 @@ test_files:
596
613
  - spec/moneta/adapters/yaml/standard_yaml_spec.rb
597
614
  - spec/moneta/adapters/yaml/standard_yaml_with_expires_spec.rb
598
615
  - spec/moneta/builder_spec.rb
616
+ - spec/moneta/config_spec.rb
599
617
  - spec/moneta/mutex_spec.rb
600
618
  - spec/moneta/proxies/cache/cache_file_memory_spec.rb
601
619
  - spec/moneta/proxies/cache/cache_memory_null_spec.rb