moneta 1.3.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +26 -8
- data/CHANGES +6 -0
- data/CONTRIBUTORS +2 -1
- data/Gemfile +7 -5
- data/README.md +2 -6
- data/feature_matrix.yaml +0 -10
- data/lib/moneta.rb +9 -9
- data/lib/moneta/adapters/mongo.rb +256 -7
- data/lib/moneta/adapters/redis.rb +5 -1
- data/lib/moneta/adapters/sequel.rb +45 -464
- data/lib/moneta/adapters/sequel/mysql.rb +66 -0
- data/lib/moneta/adapters/sequel/postgres.rb +80 -0
- data/lib/moneta/adapters/sequel/postgres_hstore.rb +240 -0
- data/lib/moneta/adapters/sequel/sqlite.rb +57 -0
- data/lib/moneta/adapters/sqlite.rb +7 -7
- data/lib/moneta/create_support.rb +21 -0
- data/lib/moneta/dbm_adapter.rb +31 -0
- data/lib/moneta/{mixins.rb → defaults.rb} +1 -302
- data/lib/moneta/each_key_support.rb +27 -0
- data/lib/moneta/expires_support.rb +60 -0
- data/lib/moneta/hash_adapter.rb +68 -0
- data/lib/moneta/increment_support.rb +16 -0
- data/lib/moneta/nil_values.rb +35 -0
- data/lib/moneta/option_support.rb +51 -0
- data/lib/moneta/transformer/helper/bson.rb +5 -15
- data/lib/moneta/version.rb +1 -1
- data/lib/rack/cache/moneta.rb +14 -15
- data/moneta.gemspec +7 -9
- data/script/benchmarks +1 -2
- data/script/contributors +11 -6
- data/spec/active_support/cache_moneta_store_spec.rb +27 -29
- data/spec/features/concurrent_increment.rb +2 -3
- data/spec/features/create_expires.rb +15 -15
- data/spec/features/default_expires.rb +11 -12
- data/spec/features/expires.rb +215 -210
- data/spec/helper.rb +16 -33
- data/spec/moneta/adapters/mongo/adapter_mongo_spec.rb +16 -1
- data/spec/moneta/adapters/mongo/adapter_mongo_with_default_expires_spec.rb +1 -1
- data/spec/moneta/adapters/mongo/standard_mongo_spec.rb +1 -1
- data/spec/moneta/adapters/sequel/adapter_sequel_spec.rb +7 -34
- data/spec/moneta/adapters/sequel/helper.rb +37 -0
- data/spec/moneta/adapters/sequel/standard_sequel_spec.rb +4 -10
- data/spec/moneta/adapters/sequel/standard_sequel_with_expires_spec.rb +7 -8
- data/spec/moneta/proxies/shared/shared_unix_spec.rb +10 -0
- data/spec/restserver.rb +15 -0
- metadata +39 -58
- data/lib/moneta/adapters/mongo/base.rb +0 -103
- data/lib/moneta/adapters/mongo/moped.rb +0 -166
- data/lib/moneta/adapters/mongo/official.rb +0 -156
- data/spec/moneta/adapters/mongo/adapter_mongo_moped_spec.rb +0 -26
- data/spec/moneta/adapters/mongo/adapter_mongo_moped_with_default_expires_spec.rb +0 -14
- data/spec/moneta/adapters/mongo/adapter_mongo_official_spec.rb +0 -27
- data/spec/moneta/adapters/mongo/adapter_mongo_official_with_default_expires_spec.rb +0 -14
- data/spec/moneta/adapters/mongo/standard_mongo_moped_spec.rb +0 -7
- data/spec/moneta/adapters/mongo/standard_mongo_official_spec.rb +0 -7
- data/spec/quality_spec.rb +0 -51
data/spec/helper.rb
CHANGED
@@ -286,23 +286,9 @@ module MonetaHelpers
|
|
286
286
|
end
|
287
287
|
end
|
288
288
|
|
289
|
-
# Used to test time-dependent specs (e.g. expiry at different positions
|
290
|
-
# within a second). Once close to the start of the second, and once close
|
291
|
-
# to the end.
|
292
|
-
def usecs
|
293
|
-
[1e4, 99e4].map(&:to_i)
|
294
|
-
end
|
295
|
-
|
296
|
-
def at_each_usec(&block)
|
297
|
-
usecs.each do |usec|
|
298
|
-
context "at #{usec} microseconds", isolate: true do
|
299
|
-
include_examples :at_usec, usec, &block
|
300
|
-
end
|
301
|
-
end
|
302
|
-
end
|
303
|
-
|
304
289
|
def use_timecop
|
305
|
-
before{ @timecop = true }
|
290
|
+
before { @timecop = true }
|
291
|
+
after { Timecop.return }
|
306
292
|
end
|
307
293
|
end
|
308
294
|
|
@@ -351,6 +337,20 @@ module MonetaHelpers
|
|
351
337
|
sleep seconds
|
352
338
|
end
|
353
339
|
end
|
340
|
+
|
341
|
+
def time_till_next(tick)
|
342
|
+
now = Time.now.to_f
|
343
|
+
tick - (now % tick)
|
344
|
+
end
|
345
|
+
|
346
|
+
# advance to the moment just after a tick. 1e-2 is needed in some
|
347
|
+
# environments (JRuby) to be able to pass the "not in earlier half" test.
|
348
|
+
def advance_next_tick
|
349
|
+
tick = t_res
|
350
|
+
offset = time_till_next(tick) + 1e-2
|
351
|
+
advance offset
|
352
|
+
raise "not in earlier half of tick" unless Time.now.to_f % tick < tick / 2.0
|
353
|
+
end
|
354
354
|
end
|
355
355
|
end
|
356
356
|
|
@@ -419,7 +419,6 @@ RSpec.shared_context :setup_moneta_store do |builder|
|
|
419
419
|
end
|
420
420
|
|
421
421
|
after do
|
422
|
-
RSpec::Mocks.space.proxy_for(@store).reset
|
423
422
|
if @store
|
424
423
|
@store.close.should == nil
|
425
424
|
@store = nil
|
@@ -433,20 +432,4 @@ RSpec.shared_context :setup_moneta_store do |builder|
|
|
433
432
|
end
|
434
433
|
end
|
435
434
|
|
436
|
-
RSpec.shared_examples :at_usec do |usec|
|
437
|
-
before do
|
438
|
-
now = Time.now
|
439
|
-
# 1000us is a rough guess at how many microseconds this code will take to run
|
440
|
-
if now.usec + 1000 > usec
|
441
|
-
advance(1 - 1e-6 * (now.usec - usec))
|
442
|
-
else
|
443
|
-
advance(1e-6 * (usec - now.usec))
|
444
|
-
end
|
445
|
-
end
|
446
|
-
|
447
|
-
after do
|
448
|
-
Timecop.return if @timecop
|
449
|
-
end
|
450
|
-
end
|
451
|
-
|
452
435
|
Dir['./spec/features/*.rb'].each{ |rb| require rb }
|
@@ -4,9 +4,24 @@ describe 'adapter_mongo', adapter: :Mongo do
|
|
4
4
|
|
5
5
|
moneta_build do
|
6
6
|
Moneta::Adapters::Mongo.new(mongo_config(
|
7
|
-
db: File.basename(__FILE__, '.rb'),
|
7
|
+
db: File.basename(__FILE__, '.rb'),
|
8
|
+
collection: 'adapter_mongo'
|
8
9
|
))
|
9
10
|
end
|
10
11
|
|
11
12
|
moneta_specs ADAPTER_SPECS.with_each_key.with_native_expires.simplevalues_only
|
13
|
+
|
14
|
+
it 'automatically deletes expired document' do
|
15
|
+
store.store('key', 'val', expires: 5)
|
16
|
+
|
17
|
+
i = 0
|
18
|
+
query = store.instance_variable_get(:@collection).find(_id: ::BSON::Binary.new('key'))
|
19
|
+
while i < 70 && query.first
|
20
|
+
i += 1
|
21
|
+
sleep 1 # Mongo needs up to 60 seconds
|
22
|
+
end
|
23
|
+
|
24
|
+
i.should be > 0 # Indicates that it took at least one sleep to expire
|
25
|
+
query.count.should == 0
|
26
|
+
end
|
12
27
|
end
|
@@ -5,7 +5,7 @@ describe 'adapter_mongo_with_default_expires', isolate: true, adapter: :Mongo do
|
|
5
5
|
moneta_build do
|
6
6
|
Moneta::Adapters::Mongo.new(mongo_config(
|
7
7
|
db: File.basename(__FILE__, '.rb'),
|
8
|
-
collection: '
|
8
|
+
collection: 'adapter_mongo_with_default_expires',
|
9
9
|
expires: min_ttl
|
10
10
|
))
|
11
11
|
end
|
@@ -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, MongoHelper::mongo_config(db: File.basename(__FILE__, '.rb'), collection: '
|
5
|
+
moneta_store :Mongo, MongoHelper::mongo_config(db: File.basename(__FILE__, '.rb'), collection: 'standard_mongo')
|
6
6
|
moneta_specs STANDARD_SPECS.with_native_expires.with_each_key
|
7
7
|
end
|
@@ -1,17 +1,13 @@
|
|
1
1
|
require_relative './helper.rb'
|
2
2
|
|
3
3
|
describe ':Sequel adapter', adapter: :Sequel do
|
4
|
+
include_context :sequel
|
5
|
+
|
4
6
|
specs = ADAPTER_SPECS.with_each_key.with_values(:nil)
|
5
7
|
|
6
8
|
context 'with MySQL backend' do
|
7
9
|
moneta_build do
|
8
|
-
Moneta::Adapters::Sequel.new(opts.merge(
|
9
|
-
db: if defined?(JRUBY_VERSION)
|
10
|
-
"jdbc:mysql://localhost/#{mysql_database1}?user=#{mysql_username}"
|
11
|
-
else
|
12
|
-
"mysql2://#{mysql_username}:@localhost/#{mysql_database1}"
|
13
|
-
end
|
14
|
-
))
|
10
|
+
Moneta::Adapters::Sequel.new(opts.merge(db: mysql_uri))
|
15
11
|
end
|
16
12
|
|
17
13
|
include_examples :adapter_sequel, specs
|
@@ -19,8 +15,7 @@ describe ':Sequel adapter', adapter: :Sequel do
|
|
19
15
|
|
20
16
|
context "with SQLite backend" do
|
21
17
|
moneta_build do
|
22
|
-
Moneta::Adapters::Sequel.new(opts.merge(
|
23
|
-
db: "#{defined?(JRUBY_VERSION) && 'jdbc:'}sqlite://" + File.join(tempdir, 'adapter_sequel.db')))
|
18
|
+
Moneta::Adapters::Sequel.new(opts.merge(db: sqlite_uri('adapter_sequel.db')))
|
24
19
|
end
|
25
20
|
|
26
21
|
include_examples :adapter_sequel, specs.without_concurrent
|
@@ -28,16 +23,7 @@ describe ':Sequel adapter', adapter: :Sequel do
|
|
28
23
|
|
29
24
|
context "with Postgres backend" do
|
30
25
|
moneta_build do
|
31
|
-
Moneta::Adapters::Sequel.new(opts.merge(
|
32
|
-
if defined?(JRUBY_VERSION)
|
33
|
-
{db: "jdbc:postgresql://localhost/#{postgres_database1}?user=#{postgres_username}"}
|
34
|
-
else
|
35
|
-
{
|
36
|
-
db: "postgres://localhost/#{postgres_database1}",
|
37
|
-
user: postgres_username
|
38
|
-
}
|
39
|
-
end
|
40
|
-
))
|
26
|
+
Moneta::Adapters::Sequel.new(opts.merge(postgres_options))
|
41
27
|
end
|
42
28
|
|
43
29
|
include_examples :adapter_sequel, specs
|
@@ -45,8 +31,7 @@ describe ':Sequel adapter', adapter: :Sequel do
|
|
45
31
|
|
46
32
|
context "with H2 backend", unsupported: !defined?(JRUBY_VERSION) do
|
47
33
|
moneta_build do
|
48
|
-
Moneta::Adapters::Sequel.new(opts.merge(
|
49
|
-
db: "jdbc:h2:" + tempdir))
|
34
|
+
Moneta::Adapters::Sequel.new(opts.merge(db: h2_uri))
|
50
35
|
end
|
51
36
|
|
52
37
|
include_examples :adapter_sequel, specs, optimize: false
|
@@ -54,19 +39,7 @@ describe ':Sequel adapter', adapter: :Sequel do
|
|
54
39
|
|
55
40
|
context "with Postgres HStore backend" do
|
56
41
|
moneta_build do
|
57
|
-
Moneta::Adapters::Sequel.new(
|
58
|
-
if defined?(JRUBY_VERSION)
|
59
|
-
{db: "jdbc:postgresql://localhost/#{postgres_database1}?user=#{postgres_username}"}
|
60
|
-
else
|
61
|
-
{
|
62
|
-
db: "postgres://localhost/#{postgres_database1}",
|
63
|
-
user: postgres_username
|
64
|
-
}
|
65
|
-
end.merge(
|
66
|
-
table: 'hstore_table1',
|
67
|
-
hstore: 'row'
|
68
|
-
)
|
69
|
-
)
|
42
|
+
Moneta::Adapters::Sequel.new(postgres_hstore_options)
|
70
43
|
end
|
71
44
|
|
72
45
|
# Concurrency is too slow, and binary values cannot be stored in an hstore
|
@@ -1,3 +1,40 @@
|
|
1
|
+
RSpec.shared_context :sequel do
|
2
|
+
def mysql_uri database=nil
|
3
|
+
database ||= mysql_database1
|
4
|
+
if defined?(JRUBY_VERSION)
|
5
|
+
"jdbc:mysql://localhost/#{database}?user=#{mysql_username}&useSSL=false"
|
6
|
+
else
|
7
|
+
"mysql2://#{mysql_username}:@localhost/#{database}"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def sqlite_uri file_name
|
12
|
+
"#{defined?(JRUBY_VERSION) && 'jdbc:'}sqlite://" + File.join(tempdir, file_name)
|
13
|
+
end
|
14
|
+
|
15
|
+
def postgres_options database=nil
|
16
|
+
database ||= postgres_database1
|
17
|
+
if defined?(JRUBY_VERSION)
|
18
|
+
{db: "jdbc:postgresql://localhost/#{database}?user=#{postgres_username}"}
|
19
|
+
else
|
20
|
+
{
|
21
|
+
db: "postgres://localhost/#{database}",
|
22
|
+
user: postgres_username
|
23
|
+
}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def postgres_hstore_options database=nil
|
28
|
+
postgres_options(database).merge \
|
29
|
+
table: 'hstore_table1',
|
30
|
+
hstore: 'row'
|
31
|
+
end
|
32
|
+
|
33
|
+
def h2_uri
|
34
|
+
"jdbc:h2:" + tempdir
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
1
38
|
RSpec.shared_examples :adapter_sequel do |specs, optimize: true|
|
2
39
|
shared_examples :each_key_server do
|
3
40
|
context "with each_key server" do
|
@@ -1,14 +1,8 @@
|
|
1
|
+
require_relative './helper.rb'
|
2
|
+
|
1
3
|
describe 'standard_sequel', adapter: :Sequel do
|
2
|
-
|
3
|
-
{
|
4
|
-
db: if defined?(JRUBY_VERSION)
|
5
|
-
"jdbc:mysql://localhost/#{mysql_database1}?user=#{mysql_username}"
|
6
|
-
else
|
7
|
-
"mysql2://#{mysql_username}:@localhost/#{mysql_database1}"
|
8
|
-
end,
|
9
|
-
table: "simple_sequel"
|
10
|
-
}
|
11
|
-
end
|
4
|
+
include_context :sequel
|
12
5
|
|
6
|
+
moneta_store(:Sequel) { postgres_options.merge(table: "standard_sequel") }
|
13
7
|
moneta_specs STANDARD_SPECS.with_each_key
|
14
8
|
end
|
@@ -1,18 +1,17 @@
|
|
1
|
+
require_relative './helper.rb'
|
2
|
+
|
1
3
|
describe 'standard_sequel_with_expires', adapter: :Sequel do
|
4
|
+
include_context :sequel
|
5
|
+
|
2
6
|
let(:t_res) { 0.125 }
|
3
7
|
let(:min_ttl) { t_res }
|
4
8
|
use_timecop
|
5
9
|
|
6
10
|
moneta_store :Sequel do
|
7
|
-
|
8
|
-
|
9
|
-
"jdbc:mysql://localhost/#{mysql_database1}?user=#{mysql_username}"
|
10
|
-
else
|
11
|
-
"mysql2://#{mysql_username}:@localhost/#{mysql_database1}"
|
12
|
-
end,
|
13
|
-
table: "simple_sequel_with_expires",
|
11
|
+
postgres_options.merge(
|
12
|
+
table: "standard_sequel_with_expires",
|
14
13
|
expires: true
|
15
|
-
|
14
|
+
)
|
16
15
|
end
|
17
16
|
|
18
17
|
moneta_specs STANDARD_SPECS.with_expires.with_each_key
|
@@ -21,6 +21,11 @@ describe "shared_unix", proxy: :Shared do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
context "runnning as the server" do
|
24
|
+
before do
|
25
|
+
store.load('dummy')
|
26
|
+
expect(store.server?).to be true
|
27
|
+
end
|
28
|
+
|
24
29
|
include_examples :shared_unix
|
25
30
|
|
26
31
|
it "has the underlying adapter" do
|
@@ -34,6 +39,11 @@ describe "shared_unix", proxy: :Shared do
|
|
34
39
|
new_store.tap { |store| store.load('dummy') } # Makes a connection
|
35
40
|
end
|
36
41
|
|
42
|
+
before do
|
43
|
+
store.load('dummy')
|
44
|
+
expect(store.server?).to be false
|
45
|
+
end
|
46
|
+
|
37
47
|
after do
|
38
48
|
server_store.close
|
39
49
|
end
|
data/spec/restserver.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'faraday'
|
1
2
|
require 'rack'
|
2
3
|
require 'rack/moneta_rest'
|
3
4
|
|
@@ -31,6 +32,20 @@ def start_restserver(port)
|
|
31
32
|
)
|
32
33
|
|
33
34
|
Thread.start { server.start }
|
35
|
+
|
36
|
+
begin
|
37
|
+
Faraday.get("http://127.0.0.1:#{port}")
|
38
|
+
rescue Faraday::ConnectionFailed
|
39
|
+
tries ||= 5
|
40
|
+
tries -= 1
|
41
|
+
if tries > 0
|
42
|
+
sleep 0.1
|
43
|
+
retry
|
44
|
+
else
|
45
|
+
raise
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
34
49
|
server
|
35
50
|
end
|
36
51
|
|
metadata
CHANGED
@@ -1,46 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moneta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Mendler
|
8
8
|
- Yehuda Katz
|
9
9
|
- Hannes Georg
|
10
10
|
- Alastair Pharo
|
11
|
-
autorequire:
|
11
|
+
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2020-
|
14
|
+
date: 2020-08-23 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
18
|
-
requirement: !ruby/object:Gem::Requirement
|
19
|
-
requirements:
|
20
|
-
- - "~>"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '3.0'
|
23
|
-
type: :development
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '3.0'
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: rspec-retry
|
17
|
+
name: parallel_tests
|
32
18
|
requirement: !ruby/object:Gem::Requirement
|
33
19
|
requirements:
|
34
20
|
- - "~>"
|
35
21
|
- !ruby/object:Gem::Version
|
36
|
-
version:
|
22
|
+
version: 2.29.2
|
37
23
|
type: :development
|
38
24
|
prerelease: false
|
39
25
|
version_requirements: !ruby/object:Gem::Requirement
|
40
26
|
requirements:
|
41
27
|
- - "~>"
|
42
28
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
29
|
+
version: 2.29.2
|
44
30
|
- !ruby/object:Gem::Dependency
|
45
31
|
name: rantly
|
46
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,67 +42,67 @@ dependencies:
|
|
56
42
|
- !ruby/object:Gem::Version
|
57
43
|
version: 1.2.0
|
58
44
|
- !ruby/object:Gem::Dependency
|
59
|
-
name:
|
45
|
+
name: rspec
|
60
46
|
requirement: !ruby/object:Gem::Requirement
|
61
47
|
requirements:
|
62
48
|
- - "~>"
|
63
49
|
- !ruby/object:Gem::Version
|
64
|
-
version:
|
50
|
+
version: '3.0'
|
65
51
|
type: :development
|
66
52
|
prerelease: false
|
67
53
|
version_requirements: !ruby/object:Gem::Requirement
|
68
54
|
requirements:
|
69
55
|
- - "~>"
|
70
56
|
- !ruby/object:Gem::Version
|
71
|
-
version:
|
57
|
+
version: '3.0'
|
72
58
|
- !ruby/object:Gem::Dependency
|
73
|
-
name:
|
59
|
+
name: rspec-retry
|
74
60
|
requirement: !ruby/object:Gem::Requirement
|
75
61
|
requirements:
|
76
62
|
- - "~>"
|
77
63
|
- !ruby/object:Gem::Version
|
78
|
-
version: 0.
|
64
|
+
version: 0.6.1
|
79
65
|
type: :development
|
80
66
|
prerelease: false
|
81
67
|
version_requirements: !ruby/object:Gem::Requirement
|
82
68
|
requirements:
|
83
69
|
- - "~>"
|
84
70
|
- !ruby/object:Gem::Version
|
85
|
-
version: 0.
|
71
|
+
version: 0.6.1
|
86
72
|
- !ruby/object:Gem::Dependency
|
87
73
|
name: rubocop
|
88
74
|
requirement: !ruby/object:Gem::Requirement
|
89
75
|
requirements:
|
90
76
|
- - "~>"
|
91
77
|
- !ruby/object:Gem::Version
|
92
|
-
version: 0.
|
78
|
+
version: 0.81.0
|
93
79
|
type: :development
|
94
80
|
prerelease: false
|
95
81
|
version_requirements: !ruby/object:Gem::Requirement
|
96
82
|
requirements:
|
97
83
|
- - "~>"
|
98
84
|
- !ruby/object:Gem::Version
|
99
|
-
version: 0.
|
85
|
+
version: 0.81.0
|
100
86
|
- !ruby/object:Gem::Dependency
|
101
|
-
name:
|
87
|
+
name: timecop
|
102
88
|
requirement: !ruby/object:Gem::Requirement
|
103
89
|
requirements:
|
104
|
-
- -
|
90
|
+
- - "~>"
|
105
91
|
- !ruby/object:Gem::Version
|
106
|
-
version:
|
92
|
+
version: 0.9.1
|
107
93
|
type: :development
|
108
94
|
prerelease: false
|
109
95
|
version_requirements: !ruby/object:Gem::Requirement
|
110
96
|
requirements:
|
111
|
-
- -
|
97
|
+
- - "~>"
|
112
98
|
- !ruby/object:Gem::Version
|
113
|
-
version:
|
99
|
+
version: 0.9.1
|
114
100
|
description: A unified interface to key/value stores
|
115
101
|
email:
|
116
102
|
- mail@daniel-mendler.de
|
117
103
|
- wycats@gmail.com
|
118
104
|
- hannes.georg@googlemail.com
|
119
|
-
-
|
105
|
+
- me@asph.dev
|
120
106
|
executables: []
|
121
107
|
extensions: []
|
122
108
|
extra_rdoc_files:
|
@@ -162,9 +148,6 @@ files:
|
|
162
148
|
- lib/moneta/adapters/memcached/native.rb
|
163
149
|
- lib/moneta/adapters/memory.rb
|
164
150
|
- lib/moneta/adapters/mongo.rb
|
165
|
-
- lib/moneta/adapters/mongo/base.rb
|
166
|
-
- lib/moneta/adapters/mongo/moped.rb
|
167
|
-
- lib/moneta/adapters/mongo/official.rb
|
168
151
|
- lib/moneta/adapters/null.rb
|
169
152
|
- lib/moneta/adapters/pstore.rb
|
170
153
|
- lib/moneta/adapters/redis.rb
|
@@ -172,6 +155,10 @@ files:
|
|
172
155
|
- lib/moneta/adapters/riak.rb
|
173
156
|
- lib/moneta/adapters/sdbm.rb
|
174
157
|
- lib/moneta/adapters/sequel.rb
|
158
|
+
- lib/moneta/adapters/sequel/mysql.rb
|
159
|
+
- lib/moneta/adapters/sequel/postgres.rb
|
160
|
+
- lib/moneta/adapters/sequel/postgres_hstore.rb
|
161
|
+
- lib/moneta/adapters/sequel/sqlite.rb
|
175
162
|
- lib/moneta/adapters/sqlite.rb
|
176
163
|
- lib/moneta/adapters/tdb.rb
|
177
164
|
- lib/moneta/adapters/tokyocabinet.rb
|
@@ -179,12 +166,20 @@ files:
|
|
179
166
|
- lib/moneta/adapters/yaml.rb
|
180
167
|
- lib/moneta/builder.rb
|
181
168
|
- lib/moneta/cache.rb
|
169
|
+
- lib/moneta/create_support.rb
|
170
|
+
- lib/moneta/dbm_adapter.rb
|
171
|
+
- lib/moneta/defaults.rb
|
172
|
+
- lib/moneta/each_key_support.rb
|
182
173
|
- lib/moneta/enumerable.rb
|
183
174
|
- lib/moneta/expires.rb
|
175
|
+
- lib/moneta/expires_support.rb
|
184
176
|
- lib/moneta/fallback.rb
|
177
|
+
- lib/moneta/hash_adapter.rb
|
178
|
+
- lib/moneta/increment_support.rb
|
185
179
|
- lib/moneta/lock.rb
|
186
180
|
- lib/moneta/logger.rb
|
187
|
-
- lib/moneta/
|
181
|
+
- lib/moneta/nil_values.rb
|
182
|
+
- lib/moneta/option_support.rb
|
188
183
|
- lib/moneta/optionmerger.rb
|
189
184
|
- lib/moneta/pool.rb
|
190
185
|
- lib/moneta/proxy.rb
|
@@ -320,14 +315,8 @@ files:
|
|
320
315
|
- spec/moneta/adapters/memory/standard_memory_with_json_value_serializer_spec.rb
|
321
316
|
- spec/moneta/adapters/memory/standard_memory_with_prefix_spec.rb
|
322
317
|
- spec/moneta/adapters/memory/standard_memory_with_snappy_compress_spec.rb
|
323
|
-
- spec/moneta/adapters/mongo/adapter_mongo_moped_spec.rb
|
324
|
-
- spec/moneta/adapters/mongo/adapter_mongo_moped_with_default_expires_spec.rb
|
325
|
-
- spec/moneta/adapters/mongo/adapter_mongo_official_spec.rb
|
326
|
-
- spec/moneta/adapters/mongo/adapter_mongo_official_with_default_expires_spec.rb
|
327
318
|
- spec/moneta/adapters/mongo/adapter_mongo_spec.rb
|
328
319
|
- spec/moneta/adapters/mongo/adapter_mongo_with_default_expires_spec.rb
|
329
|
-
- spec/moneta/adapters/mongo/standard_mongo_moped_spec.rb
|
330
|
-
- spec/moneta/adapters/mongo/standard_mongo_official_spec.rb
|
331
320
|
- spec/moneta/adapters/mongo/standard_mongo_spec.rb
|
332
321
|
- spec/moneta/adapters/null/null_adapter_spec.rb
|
333
322
|
- spec/moneta/adapters/null/standard_null_spec.rb
|
@@ -432,7 +421,6 @@ files:
|
|
432
421
|
- spec/moneta/semaphore_spec.rb
|
433
422
|
- spec/moneta/stack_file_memory_spec.rb
|
434
423
|
- spec/moneta/stack_memory_file_spec.rb
|
435
|
-
- spec/quality_spec.rb
|
436
424
|
- spec/rack/cache_moneta_spec.rb
|
437
425
|
- spec/rack/moneta_cookies_spec.rb
|
438
426
|
- spec/rack/moneta_store_spec.rb
|
@@ -446,10 +434,10 @@ licenses:
|
|
446
434
|
- MIT
|
447
435
|
metadata:
|
448
436
|
bug_tracker_uri: https://github.com/moneta-rb/moneta/issues
|
449
|
-
changelog_uri: https://github.com/moneta-rb/moneta/blob/v1.
|
450
|
-
documentation_uri: https://www.rubydoc.info/gems/moneta/1.
|
451
|
-
source_code_uri: https://github.com/moneta-rb/moneta/tree/v1.
|
452
|
-
post_install_message:
|
437
|
+
changelog_uri: https://github.com/moneta-rb/moneta/blob/v1.4.0/CHANGES
|
438
|
+
documentation_uri: https://www.rubydoc.info/gems/moneta/1.4.0
|
439
|
+
source_code_uri: https://github.com/moneta-rb/moneta/tree/v1.4.0
|
440
|
+
post_install_message:
|
453
441
|
rdoc_options: []
|
454
442
|
require_paths:
|
455
443
|
- lib
|
@@ -464,8 +452,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
464
452
|
- !ruby/object:Gem::Version
|
465
453
|
version: '0'
|
466
454
|
requirements: []
|
467
|
-
rubygems_version: 3.1.
|
468
|
-
signing_key:
|
455
|
+
rubygems_version: 3.1.4
|
456
|
+
signing_key:
|
469
457
|
specification_version: 4
|
470
458
|
summary: A unified interface to key/value stores, including Redis, Memcached, TokyoCabinet,
|
471
459
|
ActiveRecord and many more
|
@@ -574,14 +562,8 @@ test_files:
|
|
574
562
|
- spec/moneta/adapters/memory/standard_memory_with_json_value_serializer_spec.rb
|
575
563
|
- spec/moneta/adapters/memory/standard_memory_with_prefix_spec.rb
|
576
564
|
- spec/moneta/adapters/memory/standard_memory_with_snappy_compress_spec.rb
|
577
|
-
- spec/moneta/adapters/mongo/adapter_mongo_moped_spec.rb
|
578
|
-
- spec/moneta/adapters/mongo/adapter_mongo_moped_with_default_expires_spec.rb
|
579
|
-
- spec/moneta/adapters/mongo/adapter_mongo_official_spec.rb
|
580
|
-
- spec/moneta/adapters/mongo/adapter_mongo_official_with_default_expires_spec.rb
|
581
565
|
- spec/moneta/adapters/mongo/adapter_mongo_spec.rb
|
582
566
|
- spec/moneta/adapters/mongo/adapter_mongo_with_default_expires_spec.rb
|
583
|
-
- spec/moneta/adapters/mongo/standard_mongo_moped_spec.rb
|
584
|
-
- spec/moneta/adapters/mongo/standard_mongo_official_spec.rb
|
585
567
|
- spec/moneta/adapters/mongo/standard_mongo_spec.rb
|
586
568
|
- spec/moneta/adapters/null/null_adapter_spec.rb
|
587
569
|
- spec/moneta/adapters/null/standard_null_spec.rb
|
@@ -686,7 +668,6 @@ test_files:
|
|
686
668
|
- spec/moneta/semaphore_spec.rb
|
687
669
|
- spec/moneta/stack_file_memory_spec.rb
|
688
670
|
- spec/moneta/stack_memory_file_spec.rb
|
689
|
-
- spec/quality_spec.rb
|
690
671
|
- spec/rack/cache_moneta_spec.rb
|
691
672
|
- spec/rack/moneta_cookies_spec.rb
|
692
673
|
- spec/rack/moneta_store_spec.rb
|