moneta 1.4.0 → 1.4.1
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.
- checksums.yaml +4 -4
- data/CHANGES +5 -0
- data/Gemfile +1 -1
- data/lib/moneta/adapters/mongo.rb +12 -4
- data/lib/moneta/version.rb +1 -1
- data/spec/helper.rb +0 -2
- data/spec/moneta/adapters/mongo/adapter_mongo_spec.rb +17 -3
- data/spec/moneta/adapters/mongo/adapter_mongo_with_default_expires_spec.rb +3 -3
- data/spec/moneta/adapters/mongo/standard_mongo_spec.rb +1 -1
- metadata +5 -7
- data/spec/support/mongo_helper.rb +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7e5d10abbde662c609b4dad3e16871e4cb3c8571777dae41e07c9a9501d3afe
|
4
|
+
data.tar.gz: 6752b78a6a0aa701695d896e207250783d88a7835c5293f3e1a50e059b45259e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63e33a297973f0b5ee15b62d4322534d871e55ae97249865d7cce7103fee1e9cce398190ee102b72ce1179b6ac044587c544ba3c6d07a6ce0906012c717fe6fc
|
7
|
+
data.tar.gz: dd53487e54f56c8faccef18d122e1f28300fd89d5e436c338c5c6688454bf79a0025b1b05d3e3621260e0fbc134e65564239afcdc22ce487a88de61a732cedf0
|
data/CHANGES
CHANGED
data/Gemfile
CHANGED
@@ -29,7 +29,7 @@ module Moneta
|
|
29
29
|
# @option options [String] :user Username used to authenticate
|
30
30
|
# @option options [String] :password Password used to authenticate
|
31
31
|
# @option options [Integer] :port (MongoDB default port) MongoDB server port
|
32
|
-
# @option options [String] :
|
32
|
+
# @option options [String] :database ('moneta') MongoDB database
|
33
33
|
# @option options [Integer] :expires Default expiration time
|
34
34
|
# @option options [String] :expires_field ('expiresAt') Document field to store expiration time
|
35
35
|
# @option options [String] :value_field ('value') Document field to store value
|
@@ -43,8 +43,12 @@ module Moneta
|
|
43
43
|
@type_field = options.delete(:type_field) || 'type'
|
44
44
|
|
45
45
|
collection = options.delete(:collection) || 'moneta'
|
46
|
-
|
47
|
-
|
46
|
+
|
47
|
+
if options.key?(:db)
|
48
|
+
warn('Moneta::Adapters::Mongo - the :db option is deprecated and will be removed in a future version. Use :database instead')
|
49
|
+
end
|
50
|
+
database = options.delete(:database) || options.delete(:db) || 'moneta'
|
51
|
+
backend = options[:backend] ||
|
48
52
|
begin
|
49
53
|
host = options.delete(:host) || '127.0.0.1'
|
50
54
|
port = options.delete(:port) || DEFAULT_PORT
|
@@ -53,7 +57,8 @@ module Moneta
|
|
53
57
|
end
|
54
58
|
::Mongo::Client.new(["#{host}:#{port}"], options)
|
55
59
|
end
|
56
|
-
|
60
|
+
|
61
|
+
@backend = backend.use(database)
|
57
62
|
@collection = @backend[collection]
|
58
63
|
if @backend.command(buildinfo: 1).documents.first['version'] >= '2.2'
|
59
64
|
@collection.indexes.create_one({ @expires_field => 1 }, expire_after: 0)
|
@@ -111,6 +116,9 @@ module Moneta
|
|
111
116
|
{ :$inc => { @value_field => amount } },
|
112
117
|
return_document: :after,
|
113
118
|
upsert: true)[@value_field]
|
119
|
+
rescue ::Mongo::Error::OperationFailure
|
120
|
+
tries ||= 0
|
121
|
+
(tries += 1) < 3 ? retry : raise
|
114
122
|
end
|
115
123
|
|
116
124
|
# (see Proxy#create)
|
data/lib/moneta/version.rb
CHANGED
data/spec/helper.rb
CHANGED
@@ -10,7 +10,6 @@ require 'rantly'
|
|
10
10
|
require 'rantly/rspec_extensions'
|
11
11
|
# rantly/shrinks
|
12
12
|
require 'timecop'
|
13
|
-
require_relative 'support/mongo_helper'
|
14
13
|
|
15
14
|
class MonetaParallelFormatter < RSpec::Core::Formatters::BaseTextFormatter
|
16
15
|
def start(*args)
|
@@ -366,7 +365,6 @@ RSpec.configure do |config|
|
|
366
365
|
|
367
366
|
config.extend MonetaHelpers::ClassMethods
|
368
367
|
config.include MonetaHelpers::InstanceMethods
|
369
|
-
config.include MongoHelper, adapter: :Mongo
|
370
368
|
end
|
371
369
|
|
372
370
|
# FIXME: Get rid of this once raise_error expectations no longer generate
|
@@ -2,11 +2,13 @@ describe 'adapter_mongo', adapter: :Mongo do
|
|
2
2
|
let(:t_res) { 0.125 }
|
3
3
|
let(:min_ttl) { t_res }
|
4
4
|
|
5
|
+
let(:database) { File.basename(__FILE__, '.rb') }
|
6
|
+
|
5
7
|
moneta_build do
|
6
|
-
Moneta::Adapters::Mongo.new(
|
7
|
-
|
8
|
+
Moneta::Adapters::Mongo.new(
|
9
|
+
database: database,
|
8
10
|
collection: 'adapter_mongo'
|
9
|
-
)
|
11
|
+
)
|
10
12
|
end
|
11
13
|
|
12
14
|
moneta_specs ADAPTER_SPECS.with_each_key.with_native_expires.simplevalues_only
|
@@ -24,4 +26,16 @@ describe 'adapter_mongo', adapter: :Mongo do
|
|
24
26
|
i.should be > 0 # Indicates that it took at least one sleep to expire
|
25
27
|
query.count.should == 0
|
26
28
|
end
|
29
|
+
|
30
|
+
it 'uses the database specified via the :database option' do
|
31
|
+
expect(store.backend.database.name).to eq database
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'uses the database specified via the :db option' do
|
35
|
+
store = Moneta::Adapters::Mongo.new(
|
36
|
+
db: database,
|
37
|
+
collection: 'adapter_mongo'
|
38
|
+
)
|
39
|
+
expect(store.backend.database.name).to eq database
|
40
|
+
end
|
27
41
|
end
|
@@ -3,11 +3,11 @@ describe 'adapter_mongo_with_default_expires', isolate: true, adapter: :Mongo do
|
|
3
3
|
let(:min_ttl) { t_res }
|
4
4
|
|
5
5
|
moneta_build do
|
6
|
-
Moneta::Adapters::Mongo.new(
|
7
|
-
|
6
|
+
Moneta::Adapters::Mongo.new(
|
7
|
+
database: File.basename(__FILE__, '.rb'),
|
8
8
|
collection: 'adapter_mongo_with_default_expires',
|
9
9
|
expires: min_ttl
|
10
|
-
)
|
10
|
+
)
|
11
11
|
end
|
12
12
|
|
13
13
|
moneta_specs ADAPTER_SPECS.with_each_key.with_expires.with_default_expires.simplevalues_only
|
@@ -2,6 +2,6 @@ describe 'standard_mongo', adapter: :Mongo do
|
|
2
2
|
let(:t_res) { 0.125 }
|
3
3
|
let(:min_ttl) { t_res }
|
4
4
|
|
5
|
-
moneta_store :Mongo,
|
5
|
+
moneta_store :Mongo, {database: File.basename(__FILE__, '.rb'), collection: 'standard_mongo'}
|
6
6
|
moneta_specs STANDARD_SPECS.with_native_expires.with_each_key
|
7
7
|
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: 1.4.
|
4
|
+
version: 1.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Mendler
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2020-
|
14
|
+
date: 2020-10-27 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: parallel_tests
|
@@ -426,7 +426,6 @@ files:
|
|
426
426
|
- spec/rack/moneta_store_spec.rb
|
427
427
|
- spec/rack/session_moneta_spec.rb
|
428
428
|
- spec/restserver.rb
|
429
|
-
- spec/support/mongo_helper.rb
|
430
429
|
- test/action_dispatch/fixtures/session_autoload_test/foo.rb
|
431
430
|
- test/action_dispatch/session_moneta_store_test.rb
|
432
431
|
homepage: https://github.com/moneta-rb/moneta
|
@@ -434,9 +433,9 @@ licenses:
|
|
434
433
|
- MIT
|
435
434
|
metadata:
|
436
435
|
bug_tracker_uri: https://github.com/moneta-rb/moneta/issues
|
437
|
-
changelog_uri: https://github.com/moneta-rb/moneta/blob/v1.4.
|
438
|
-
documentation_uri: https://www.rubydoc.info/gems/moneta/1.4.
|
439
|
-
source_code_uri: https://github.com/moneta-rb/moneta/tree/v1.4.
|
436
|
+
changelog_uri: https://github.com/moneta-rb/moneta/blob/v1.4.1/CHANGES
|
437
|
+
documentation_uri: https://www.rubydoc.info/gems/moneta/1.4.1
|
438
|
+
source_code_uri: https://github.com/moneta-rb/moneta/tree/v1.4.1
|
440
439
|
post_install_message:
|
441
440
|
rdoc_options: []
|
442
441
|
require_paths:
|
@@ -673,6 +672,5 @@ test_files:
|
|
673
672
|
- spec/rack/moneta_store_spec.rb
|
674
673
|
- spec/rack/session_moneta_spec.rb
|
675
674
|
- spec/restserver.rb
|
676
|
-
- spec/support/mongo_helper.rb
|
677
675
|
- test/action_dispatch/fixtures/session_autoload_test/foo.rb
|
678
676
|
- test/action_dispatch/session_moneta_store_test.rb
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module MongoHelper
|
4
|
-
def mongo_config(opts = {})
|
5
|
-
prefix = ENV.fetch('TEST_ENV_NUMBER', '')
|
6
|
-
opts.merge(collection: "#{prefix}#{opts[:collection]}")
|
7
|
-
end
|
8
|
-
|
9
|
-
def self.mongo_config(args)
|
10
|
-
Class.include(MongoHelper).new.mongo_config(args)
|
11
|
-
end
|
12
|
-
end
|