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.
- data/.travis.yml +2 -2
- data/CHANGES +6 -0
- data/Gemfile +2 -0
- data/README.md +7 -4
- data/Rakefile +2 -2
- data/lib/moneta.rb +1 -0
- data/lib/moneta/adapters/activerecord.rb +1 -2
- data/lib/moneta/adapters/cassandra.rb +31 -26
- data/lib/moneta/adapters/cookie.rb +2 -2
- data/lib/moneta/adapters/couch.rb +5 -3
- data/lib/moneta/adapters/daybreak.rb +13 -9
- data/lib/moneta/adapters/dbm.rb +7 -3
- data/lib/moneta/adapters/file.rb +4 -3
- data/lib/moneta/adapters/fog.rb +5 -2
- data/lib/moneta/adapters/gdbm.rb +7 -3
- data/lib/moneta/adapters/hbase.rb +11 -9
- data/lib/moneta/adapters/kyotocabinet.rb +13 -8
- data/lib/moneta/adapters/leveldb.rb +9 -5
- data/lib/moneta/adapters/localmemcache.rb +7 -3
- data/lib/moneta/adapters/memcached/dalli.rb +16 -11
- data/lib/moneta/adapters/memcached/native.rb +20 -15
- data/lib/moneta/adapters/memory.rb +2 -1
- data/lib/moneta/adapters/mongo.rb +13 -8
- data/lib/moneta/adapters/pstore.rb +24 -21
- data/lib/moneta/adapters/redis.rb +14 -12
- data/lib/moneta/adapters/restclient.rb +10 -7
- data/lib/moneta/adapters/riak.rb +5 -1
- data/lib/moneta/adapters/sdbm.rb +7 -3
- data/lib/moneta/adapters/sequel.rb +13 -8
- data/lib/moneta/adapters/sqlite.rb +15 -10
- data/lib/moneta/adapters/tdb.rb +8 -4
- data/lib/moneta/adapters/tokyocabinet.rb +15 -10
- data/lib/moneta/adapters/tokyotyrant.rb +107 -0
- data/lib/moneta/cache.rb +17 -17
- data/lib/moneta/mixins.rb +7 -5
- data/lib/moneta/version.rb +1 -1
- data/lib/rack/moneta_store.rb +1 -1
- data/lib/rack/session/moneta.rb +6 -3
- data/script/benchmarks +28 -28
- data/script/generate-specs +96 -41
- data/script/memusage +40 -0
- data/script/start-services +1 -0
- data/spec/helper.rb +4 -1
- data/spec/moneta/adapter_tokyotyrant_spec.rb +30 -0
- data/spec/moneta/cache_file_memory_spec.rb +3 -3
- data/spec/moneta/cache_memory_null_spec.rb +1 -1
- data/spec/moneta/simple_tokyotyrant_spec.rb +155 -0
- data/spec/moneta/simple_tokyotyrant_with_expires_spec.rb +157 -0
- data/spec/monetaspecs.rb +79 -37
- data/spec/rack/moneta_store_spec.rb +1 -1
- data/spec/rack/session_moneta_spec.rb +27 -0
- metadata +10 -3
data/script/start-services
CHANGED
data/spec/helper.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'rspec/core/formatters/progress_formatter'
|
3
|
+
require 'rspec/retry'
|
1
4
|
require 'moneta'
|
2
5
|
require 'fileutils'
|
3
6
|
require 'monetaspecs'
|
4
|
-
require 'rspec/core/formatters/progress_formatter'
|
5
7
|
|
6
8
|
RSpec::Core::Formatters::ProgressFormatter.class_eval do
|
7
9
|
def example_passed(example)
|
@@ -10,6 +12,7 @@ RSpec::Core::Formatters::ProgressFormatter.class_eval do
|
|
10
12
|
end
|
11
13
|
|
12
14
|
RSpec.configure do |config|
|
15
|
+
config.verbose_retry = true
|
13
16
|
config.color_enabled = true
|
14
17
|
config.tty = true
|
15
18
|
config.formatter = :progress
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Generated by generate-specs
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
describe_moneta "adapter_tokyotyrant" do
|
5
|
+
def log
|
6
|
+
@log ||= File.open(File.join(make_tempdir, 'adapter_tokyotyrant.log'), 'a')
|
7
|
+
end
|
8
|
+
|
9
|
+
def features
|
10
|
+
[:create, :increment]
|
11
|
+
end
|
12
|
+
|
13
|
+
def new_store
|
14
|
+
Moneta::Adapters::TokyoTyrant.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def load_value(value)
|
18
|
+
Marshal.load(value)
|
19
|
+
end
|
20
|
+
|
21
|
+
include_context 'setup_store'
|
22
|
+
it_should_behave_like 'create'
|
23
|
+
it_should_behave_like 'features'
|
24
|
+
it_should_behave_like 'increment'
|
25
|
+
it_should_behave_like 'multiprocess'
|
26
|
+
it_should_behave_like 'null_stringkey_stringvalue'
|
27
|
+
it_should_behave_like 'persist_stringkey_stringvalue'
|
28
|
+
it_should_behave_like 'returndifferent_stringkey_stringvalue'
|
29
|
+
it_should_behave_like 'store_stringkey_stringvalue'
|
30
|
+
end
|
@@ -13,7 +13,7 @@ describe_moneta "cache_file_memory" do
|
|
13
13
|
def new_store
|
14
14
|
Moneta.build do
|
15
15
|
use(:Cache) do
|
16
|
-
|
16
|
+
adapter { adapter :File, :dir => File.join(make_tempdir, "cache_file_memory") }
|
17
17
|
cache { adapter :Memory }
|
18
18
|
end
|
19
19
|
end
|
@@ -33,11 +33,11 @@ describe_moneta "cache_file_memory" do
|
|
33
33
|
it_should_behave_like 'returnsame_stringkey_stringvalue'
|
34
34
|
it_should_behave_like 'store_stringkey_stringvalue'
|
35
35
|
it 'stores loaded values in cache' do
|
36
|
-
store.
|
36
|
+
store.adapter['foo'] = 'bar'
|
37
37
|
store.cache['foo'].should be_nil
|
38
38
|
store['foo'].should == 'bar'
|
39
39
|
store.cache['foo'].should == 'bar'
|
40
|
-
store.
|
40
|
+
store.adapter.delete('foo')
|
41
41
|
store['foo'].should == 'bar'
|
42
42
|
store.delete('foo')
|
43
43
|
store['foo'].should be_nil
|
@@ -0,0 +1,155 @@
|
|
1
|
+
# Generated by generate-specs
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
describe_moneta "simple_tokyotyrant" do
|
5
|
+
def log
|
6
|
+
@log ||= File.open(File.join(make_tempdir, 'simple_tokyotyrant.log'), 'a')
|
7
|
+
end
|
8
|
+
|
9
|
+
def features
|
10
|
+
[:create, :increment]
|
11
|
+
end
|
12
|
+
|
13
|
+
def new_store
|
14
|
+
Moneta.new(:TokyoTyrant, :logger => {:out => log})
|
15
|
+
end
|
16
|
+
|
17
|
+
def load_value(value)
|
18
|
+
Marshal.load(value)
|
19
|
+
end
|
20
|
+
|
21
|
+
include_context 'setup_store'
|
22
|
+
it_should_behave_like 'create'
|
23
|
+
it_should_behave_like 'features'
|
24
|
+
it_should_behave_like 'increment'
|
25
|
+
it_should_behave_like 'marshallable_key'
|
26
|
+
it_should_behave_like 'marshallable_value'
|
27
|
+
it_should_behave_like 'multiprocess'
|
28
|
+
it_should_behave_like 'null_objectkey_objectvalue'
|
29
|
+
it_should_behave_like 'null_objectkey_stringvalue'
|
30
|
+
it_should_behave_like 'null_objectkey_hashvalue'
|
31
|
+
it_should_behave_like 'null_objectkey_booleanvalue'
|
32
|
+
it_should_behave_like 'null_objectkey_nilvalue'
|
33
|
+
it_should_behave_like 'null_objectkey_integervalue'
|
34
|
+
it_should_behave_like 'null_stringkey_objectvalue'
|
35
|
+
it_should_behave_like 'null_stringkey_stringvalue'
|
36
|
+
it_should_behave_like 'null_stringkey_hashvalue'
|
37
|
+
it_should_behave_like 'null_stringkey_booleanvalue'
|
38
|
+
it_should_behave_like 'null_stringkey_nilvalue'
|
39
|
+
it_should_behave_like 'null_stringkey_integervalue'
|
40
|
+
it_should_behave_like 'null_hashkey_objectvalue'
|
41
|
+
it_should_behave_like 'null_hashkey_stringvalue'
|
42
|
+
it_should_behave_like 'null_hashkey_hashvalue'
|
43
|
+
it_should_behave_like 'null_hashkey_booleanvalue'
|
44
|
+
it_should_behave_like 'null_hashkey_nilvalue'
|
45
|
+
it_should_behave_like 'null_hashkey_integervalue'
|
46
|
+
it_should_behave_like 'null_booleankey_objectvalue'
|
47
|
+
it_should_behave_like 'null_booleankey_stringvalue'
|
48
|
+
it_should_behave_like 'null_booleankey_hashvalue'
|
49
|
+
it_should_behave_like 'null_booleankey_booleanvalue'
|
50
|
+
it_should_behave_like 'null_booleankey_nilvalue'
|
51
|
+
it_should_behave_like 'null_booleankey_integervalue'
|
52
|
+
it_should_behave_like 'null_nilkey_objectvalue'
|
53
|
+
it_should_behave_like 'null_nilkey_stringvalue'
|
54
|
+
it_should_behave_like 'null_nilkey_hashvalue'
|
55
|
+
it_should_behave_like 'null_nilkey_booleanvalue'
|
56
|
+
it_should_behave_like 'null_nilkey_nilvalue'
|
57
|
+
it_should_behave_like 'null_nilkey_integervalue'
|
58
|
+
it_should_behave_like 'null_integerkey_objectvalue'
|
59
|
+
it_should_behave_like 'null_integerkey_stringvalue'
|
60
|
+
it_should_behave_like 'null_integerkey_hashvalue'
|
61
|
+
it_should_behave_like 'null_integerkey_booleanvalue'
|
62
|
+
it_should_behave_like 'null_integerkey_nilvalue'
|
63
|
+
it_should_behave_like 'null_integerkey_integervalue'
|
64
|
+
it_should_behave_like 'persist_objectkey_objectvalue'
|
65
|
+
it_should_behave_like 'persist_objectkey_stringvalue'
|
66
|
+
it_should_behave_like 'persist_objectkey_hashvalue'
|
67
|
+
it_should_behave_like 'persist_objectkey_booleanvalue'
|
68
|
+
it_should_behave_like 'persist_objectkey_nilvalue'
|
69
|
+
it_should_behave_like 'persist_objectkey_integervalue'
|
70
|
+
it_should_behave_like 'persist_stringkey_objectvalue'
|
71
|
+
it_should_behave_like 'persist_stringkey_stringvalue'
|
72
|
+
it_should_behave_like 'persist_stringkey_hashvalue'
|
73
|
+
it_should_behave_like 'persist_stringkey_booleanvalue'
|
74
|
+
it_should_behave_like 'persist_stringkey_nilvalue'
|
75
|
+
it_should_behave_like 'persist_stringkey_integervalue'
|
76
|
+
it_should_behave_like 'persist_hashkey_objectvalue'
|
77
|
+
it_should_behave_like 'persist_hashkey_stringvalue'
|
78
|
+
it_should_behave_like 'persist_hashkey_hashvalue'
|
79
|
+
it_should_behave_like 'persist_hashkey_booleanvalue'
|
80
|
+
it_should_behave_like 'persist_hashkey_nilvalue'
|
81
|
+
it_should_behave_like 'persist_hashkey_integervalue'
|
82
|
+
it_should_behave_like 'persist_booleankey_objectvalue'
|
83
|
+
it_should_behave_like 'persist_booleankey_stringvalue'
|
84
|
+
it_should_behave_like 'persist_booleankey_hashvalue'
|
85
|
+
it_should_behave_like 'persist_booleankey_booleanvalue'
|
86
|
+
it_should_behave_like 'persist_booleankey_nilvalue'
|
87
|
+
it_should_behave_like 'persist_booleankey_integervalue'
|
88
|
+
it_should_behave_like 'persist_nilkey_objectvalue'
|
89
|
+
it_should_behave_like 'persist_nilkey_stringvalue'
|
90
|
+
it_should_behave_like 'persist_nilkey_hashvalue'
|
91
|
+
it_should_behave_like 'persist_nilkey_booleanvalue'
|
92
|
+
it_should_behave_like 'persist_nilkey_nilvalue'
|
93
|
+
it_should_behave_like 'persist_nilkey_integervalue'
|
94
|
+
it_should_behave_like 'persist_integerkey_objectvalue'
|
95
|
+
it_should_behave_like 'persist_integerkey_stringvalue'
|
96
|
+
it_should_behave_like 'persist_integerkey_hashvalue'
|
97
|
+
it_should_behave_like 'persist_integerkey_booleanvalue'
|
98
|
+
it_should_behave_like 'persist_integerkey_nilvalue'
|
99
|
+
it_should_behave_like 'persist_integerkey_integervalue'
|
100
|
+
it_should_behave_like 'returndifferent_objectkey_objectvalue'
|
101
|
+
it_should_behave_like 'returndifferent_objectkey_stringvalue'
|
102
|
+
it_should_behave_like 'returndifferent_objectkey_hashvalue'
|
103
|
+
it_should_behave_like 'returndifferent_stringkey_objectvalue'
|
104
|
+
it_should_behave_like 'returndifferent_stringkey_stringvalue'
|
105
|
+
it_should_behave_like 'returndifferent_stringkey_hashvalue'
|
106
|
+
it_should_behave_like 'returndifferent_hashkey_objectvalue'
|
107
|
+
it_should_behave_like 'returndifferent_hashkey_stringvalue'
|
108
|
+
it_should_behave_like 'returndifferent_hashkey_hashvalue'
|
109
|
+
it_should_behave_like 'returndifferent_booleankey_objectvalue'
|
110
|
+
it_should_behave_like 'returndifferent_booleankey_stringvalue'
|
111
|
+
it_should_behave_like 'returndifferent_booleankey_hashvalue'
|
112
|
+
it_should_behave_like 'returndifferent_nilkey_objectvalue'
|
113
|
+
it_should_behave_like 'returndifferent_nilkey_stringvalue'
|
114
|
+
it_should_behave_like 'returndifferent_nilkey_hashvalue'
|
115
|
+
it_should_behave_like 'returndifferent_integerkey_objectvalue'
|
116
|
+
it_should_behave_like 'returndifferent_integerkey_stringvalue'
|
117
|
+
it_should_behave_like 'returndifferent_integerkey_hashvalue'
|
118
|
+
it_should_behave_like 'store_objectkey_objectvalue'
|
119
|
+
it_should_behave_like 'store_objectkey_stringvalue'
|
120
|
+
it_should_behave_like 'store_objectkey_hashvalue'
|
121
|
+
it_should_behave_like 'store_objectkey_booleanvalue'
|
122
|
+
it_should_behave_like 'store_objectkey_nilvalue'
|
123
|
+
it_should_behave_like 'store_objectkey_integervalue'
|
124
|
+
it_should_behave_like 'store_stringkey_objectvalue'
|
125
|
+
it_should_behave_like 'store_stringkey_stringvalue'
|
126
|
+
it_should_behave_like 'store_stringkey_hashvalue'
|
127
|
+
it_should_behave_like 'store_stringkey_booleanvalue'
|
128
|
+
it_should_behave_like 'store_stringkey_nilvalue'
|
129
|
+
it_should_behave_like 'store_stringkey_integervalue'
|
130
|
+
it_should_behave_like 'store_hashkey_objectvalue'
|
131
|
+
it_should_behave_like 'store_hashkey_stringvalue'
|
132
|
+
it_should_behave_like 'store_hashkey_hashvalue'
|
133
|
+
it_should_behave_like 'store_hashkey_booleanvalue'
|
134
|
+
it_should_behave_like 'store_hashkey_nilvalue'
|
135
|
+
it_should_behave_like 'store_hashkey_integervalue'
|
136
|
+
it_should_behave_like 'store_booleankey_objectvalue'
|
137
|
+
it_should_behave_like 'store_booleankey_stringvalue'
|
138
|
+
it_should_behave_like 'store_booleankey_hashvalue'
|
139
|
+
it_should_behave_like 'store_booleankey_booleanvalue'
|
140
|
+
it_should_behave_like 'store_booleankey_nilvalue'
|
141
|
+
it_should_behave_like 'store_booleankey_integervalue'
|
142
|
+
it_should_behave_like 'store_nilkey_objectvalue'
|
143
|
+
it_should_behave_like 'store_nilkey_stringvalue'
|
144
|
+
it_should_behave_like 'store_nilkey_hashvalue'
|
145
|
+
it_should_behave_like 'store_nilkey_booleanvalue'
|
146
|
+
it_should_behave_like 'store_nilkey_nilvalue'
|
147
|
+
it_should_behave_like 'store_nilkey_integervalue'
|
148
|
+
it_should_behave_like 'store_integerkey_objectvalue'
|
149
|
+
it_should_behave_like 'store_integerkey_stringvalue'
|
150
|
+
it_should_behave_like 'store_integerkey_hashvalue'
|
151
|
+
it_should_behave_like 'store_integerkey_booleanvalue'
|
152
|
+
it_should_behave_like 'store_integerkey_nilvalue'
|
153
|
+
it_should_behave_like 'store_integerkey_integervalue'
|
154
|
+
it_should_behave_like 'transform_value'
|
155
|
+
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
# Generated by generate-specs
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
describe_moneta "simple_tokyotyrant_with_expires" do
|
5
|
+
def log
|
6
|
+
@log ||= File.open(File.join(make_tempdir, 'simple_tokyotyrant_with_expires.log'), 'a')
|
7
|
+
end
|
8
|
+
|
9
|
+
def features
|
10
|
+
[:create, :expires, :increment]
|
11
|
+
end
|
12
|
+
|
13
|
+
def new_store
|
14
|
+
Moneta.new(:TokyoTyrant, :expires => true, :logger => {:out => log})
|
15
|
+
end
|
16
|
+
|
17
|
+
def load_value(value)
|
18
|
+
Marshal.load(value)
|
19
|
+
end
|
20
|
+
|
21
|
+
include_context 'setup_store'
|
22
|
+
it_should_behave_like 'create'
|
23
|
+
it_should_behave_like 'create_expires'
|
24
|
+
it_should_behave_like 'expires'
|
25
|
+
it_should_behave_like 'features'
|
26
|
+
it_should_behave_like 'increment'
|
27
|
+
it_should_behave_like 'marshallable_key'
|
28
|
+
it_should_behave_like 'marshallable_value'
|
29
|
+
it_should_behave_like 'multiprocess'
|
30
|
+
it_should_behave_like 'null_objectkey_objectvalue'
|
31
|
+
it_should_behave_like 'null_objectkey_stringvalue'
|
32
|
+
it_should_behave_like 'null_objectkey_hashvalue'
|
33
|
+
it_should_behave_like 'null_objectkey_booleanvalue'
|
34
|
+
it_should_behave_like 'null_objectkey_nilvalue'
|
35
|
+
it_should_behave_like 'null_objectkey_integervalue'
|
36
|
+
it_should_behave_like 'null_stringkey_objectvalue'
|
37
|
+
it_should_behave_like 'null_stringkey_stringvalue'
|
38
|
+
it_should_behave_like 'null_stringkey_hashvalue'
|
39
|
+
it_should_behave_like 'null_stringkey_booleanvalue'
|
40
|
+
it_should_behave_like 'null_stringkey_nilvalue'
|
41
|
+
it_should_behave_like 'null_stringkey_integervalue'
|
42
|
+
it_should_behave_like 'null_hashkey_objectvalue'
|
43
|
+
it_should_behave_like 'null_hashkey_stringvalue'
|
44
|
+
it_should_behave_like 'null_hashkey_hashvalue'
|
45
|
+
it_should_behave_like 'null_hashkey_booleanvalue'
|
46
|
+
it_should_behave_like 'null_hashkey_nilvalue'
|
47
|
+
it_should_behave_like 'null_hashkey_integervalue'
|
48
|
+
it_should_behave_like 'null_booleankey_objectvalue'
|
49
|
+
it_should_behave_like 'null_booleankey_stringvalue'
|
50
|
+
it_should_behave_like 'null_booleankey_hashvalue'
|
51
|
+
it_should_behave_like 'null_booleankey_booleanvalue'
|
52
|
+
it_should_behave_like 'null_booleankey_nilvalue'
|
53
|
+
it_should_behave_like 'null_booleankey_integervalue'
|
54
|
+
it_should_behave_like 'null_nilkey_objectvalue'
|
55
|
+
it_should_behave_like 'null_nilkey_stringvalue'
|
56
|
+
it_should_behave_like 'null_nilkey_hashvalue'
|
57
|
+
it_should_behave_like 'null_nilkey_booleanvalue'
|
58
|
+
it_should_behave_like 'null_nilkey_nilvalue'
|
59
|
+
it_should_behave_like 'null_nilkey_integervalue'
|
60
|
+
it_should_behave_like 'null_integerkey_objectvalue'
|
61
|
+
it_should_behave_like 'null_integerkey_stringvalue'
|
62
|
+
it_should_behave_like 'null_integerkey_hashvalue'
|
63
|
+
it_should_behave_like 'null_integerkey_booleanvalue'
|
64
|
+
it_should_behave_like 'null_integerkey_nilvalue'
|
65
|
+
it_should_behave_like 'null_integerkey_integervalue'
|
66
|
+
it_should_behave_like 'persist_objectkey_objectvalue'
|
67
|
+
it_should_behave_like 'persist_objectkey_stringvalue'
|
68
|
+
it_should_behave_like 'persist_objectkey_hashvalue'
|
69
|
+
it_should_behave_like 'persist_objectkey_booleanvalue'
|
70
|
+
it_should_behave_like 'persist_objectkey_nilvalue'
|
71
|
+
it_should_behave_like 'persist_objectkey_integervalue'
|
72
|
+
it_should_behave_like 'persist_stringkey_objectvalue'
|
73
|
+
it_should_behave_like 'persist_stringkey_stringvalue'
|
74
|
+
it_should_behave_like 'persist_stringkey_hashvalue'
|
75
|
+
it_should_behave_like 'persist_stringkey_booleanvalue'
|
76
|
+
it_should_behave_like 'persist_stringkey_nilvalue'
|
77
|
+
it_should_behave_like 'persist_stringkey_integervalue'
|
78
|
+
it_should_behave_like 'persist_hashkey_objectvalue'
|
79
|
+
it_should_behave_like 'persist_hashkey_stringvalue'
|
80
|
+
it_should_behave_like 'persist_hashkey_hashvalue'
|
81
|
+
it_should_behave_like 'persist_hashkey_booleanvalue'
|
82
|
+
it_should_behave_like 'persist_hashkey_nilvalue'
|
83
|
+
it_should_behave_like 'persist_hashkey_integervalue'
|
84
|
+
it_should_behave_like 'persist_booleankey_objectvalue'
|
85
|
+
it_should_behave_like 'persist_booleankey_stringvalue'
|
86
|
+
it_should_behave_like 'persist_booleankey_hashvalue'
|
87
|
+
it_should_behave_like 'persist_booleankey_booleanvalue'
|
88
|
+
it_should_behave_like 'persist_booleankey_nilvalue'
|
89
|
+
it_should_behave_like 'persist_booleankey_integervalue'
|
90
|
+
it_should_behave_like 'persist_nilkey_objectvalue'
|
91
|
+
it_should_behave_like 'persist_nilkey_stringvalue'
|
92
|
+
it_should_behave_like 'persist_nilkey_hashvalue'
|
93
|
+
it_should_behave_like 'persist_nilkey_booleanvalue'
|
94
|
+
it_should_behave_like 'persist_nilkey_nilvalue'
|
95
|
+
it_should_behave_like 'persist_nilkey_integervalue'
|
96
|
+
it_should_behave_like 'persist_integerkey_objectvalue'
|
97
|
+
it_should_behave_like 'persist_integerkey_stringvalue'
|
98
|
+
it_should_behave_like 'persist_integerkey_hashvalue'
|
99
|
+
it_should_behave_like 'persist_integerkey_booleanvalue'
|
100
|
+
it_should_behave_like 'persist_integerkey_nilvalue'
|
101
|
+
it_should_behave_like 'persist_integerkey_integervalue'
|
102
|
+
it_should_behave_like 'returndifferent_objectkey_objectvalue'
|
103
|
+
it_should_behave_like 'returndifferent_objectkey_stringvalue'
|
104
|
+
it_should_behave_like 'returndifferent_objectkey_hashvalue'
|
105
|
+
it_should_behave_like 'returndifferent_stringkey_objectvalue'
|
106
|
+
it_should_behave_like 'returndifferent_stringkey_stringvalue'
|
107
|
+
it_should_behave_like 'returndifferent_stringkey_hashvalue'
|
108
|
+
it_should_behave_like 'returndifferent_hashkey_objectvalue'
|
109
|
+
it_should_behave_like 'returndifferent_hashkey_stringvalue'
|
110
|
+
it_should_behave_like 'returndifferent_hashkey_hashvalue'
|
111
|
+
it_should_behave_like 'returndifferent_booleankey_objectvalue'
|
112
|
+
it_should_behave_like 'returndifferent_booleankey_stringvalue'
|
113
|
+
it_should_behave_like 'returndifferent_booleankey_hashvalue'
|
114
|
+
it_should_behave_like 'returndifferent_nilkey_objectvalue'
|
115
|
+
it_should_behave_like 'returndifferent_nilkey_stringvalue'
|
116
|
+
it_should_behave_like 'returndifferent_nilkey_hashvalue'
|
117
|
+
it_should_behave_like 'returndifferent_integerkey_objectvalue'
|
118
|
+
it_should_behave_like 'returndifferent_integerkey_stringvalue'
|
119
|
+
it_should_behave_like 'returndifferent_integerkey_hashvalue'
|
120
|
+
it_should_behave_like 'store_objectkey_objectvalue'
|
121
|
+
it_should_behave_like 'store_objectkey_stringvalue'
|
122
|
+
it_should_behave_like 'store_objectkey_hashvalue'
|
123
|
+
it_should_behave_like 'store_objectkey_booleanvalue'
|
124
|
+
it_should_behave_like 'store_objectkey_nilvalue'
|
125
|
+
it_should_behave_like 'store_objectkey_integervalue'
|
126
|
+
it_should_behave_like 'store_stringkey_objectvalue'
|
127
|
+
it_should_behave_like 'store_stringkey_stringvalue'
|
128
|
+
it_should_behave_like 'store_stringkey_hashvalue'
|
129
|
+
it_should_behave_like 'store_stringkey_booleanvalue'
|
130
|
+
it_should_behave_like 'store_stringkey_nilvalue'
|
131
|
+
it_should_behave_like 'store_stringkey_integervalue'
|
132
|
+
it_should_behave_like 'store_hashkey_objectvalue'
|
133
|
+
it_should_behave_like 'store_hashkey_stringvalue'
|
134
|
+
it_should_behave_like 'store_hashkey_hashvalue'
|
135
|
+
it_should_behave_like 'store_hashkey_booleanvalue'
|
136
|
+
it_should_behave_like 'store_hashkey_nilvalue'
|
137
|
+
it_should_behave_like 'store_hashkey_integervalue'
|
138
|
+
it_should_behave_like 'store_booleankey_objectvalue'
|
139
|
+
it_should_behave_like 'store_booleankey_stringvalue'
|
140
|
+
it_should_behave_like 'store_booleankey_hashvalue'
|
141
|
+
it_should_behave_like 'store_booleankey_booleanvalue'
|
142
|
+
it_should_behave_like 'store_booleankey_nilvalue'
|
143
|
+
it_should_behave_like 'store_booleankey_integervalue'
|
144
|
+
it_should_behave_like 'store_nilkey_objectvalue'
|
145
|
+
it_should_behave_like 'store_nilkey_stringvalue'
|
146
|
+
it_should_behave_like 'store_nilkey_hashvalue'
|
147
|
+
it_should_behave_like 'store_nilkey_booleanvalue'
|
148
|
+
it_should_behave_like 'store_nilkey_nilvalue'
|
149
|
+
it_should_behave_like 'store_nilkey_integervalue'
|
150
|
+
it_should_behave_like 'store_integerkey_objectvalue'
|
151
|
+
it_should_behave_like 'store_integerkey_stringvalue'
|
152
|
+
it_should_behave_like 'store_integerkey_hashvalue'
|
153
|
+
it_should_behave_like 'store_integerkey_booleanvalue'
|
154
|
+
it_should_behave_like 'store_integerkey_nilvalue'
|
155
|
+
it_should_behave_like 'store_integerkey_integervalue'
|
156
|
+
it_should_behave_like 'transform_value_expires'
|
157
|
+
end
|
data/spec/monetaspecs.rb
CHANGED
@@ -16898,146 +16898,188 @@ end
|
|
16898
16898
|
#################### expires ####################
|
16899
16899
|
|
16900
16900
|
shared_examples_for 'expires' do
|
16901
|
-
it 'supports expires on store and
|
16902
|
-
store.store('key1', 'val1', :expires =>
|
16901
|
+
it 'supports expires on store and []', :retry => 3 do
|
16902
|
+
store.store('key1', 'val1', :expires => 3)
|
16903
16903
|
store['key1'].should == 'val1'
|
16904
16904
|
sleep 1
|
16905
16905
|
store['key1'].should == 'val1'
|
16906
|
-
sleep
|
16906
|
+
sleep 3
|
16907
|
+
store['key1'].should be_nil
|
16908
|
+
end
|
16909
|
+
|
16910
|
+
it 'supports strict expires on store and []' do
|
16911
|
+
store.store('key1', 'val1', :expires => 2)
|
16912
|
+
store['key1'].should == 'val1'
|
16913
|
+
sleep 3 # Sleep 3 seconds because after 2 seconds the value can still exist!
|
16907
16914
|
store['key1'].should be_nil
|
16908
16915
|
end
|
16909
16916
|
|
16910
|
-
it 'supports
|
16917
|
+
it 'supports expires on store and fetch', :retry => 3 do
|
16918
|
+
store.store('key1', 'val1', :expires => 3)
|
16919
|
+
store.fetch('key1').should == 'val1'
|
16920
|
+
sleep 1
|
16921
|
+
store.fetch('key1').should == 'val1'
|
16922
|
+
sleep 3
|
16923
|
+
store.fetch('key1').should be_nil
|
16924
|
+
end
|
16925
|
+
|
16926
|
+
it 'supports strict expires on store and fetch' do
|
16927
|
+
store.store('key1', 'val1', :expires => 2)
|
16928
|
+
store.fetch('key1').should == 'val1'
|
16929
|
+
sleep 3 # Sleep 3 seconds because after 2 seconds the value can still exist!
|
16930
|
+
store.fetch('key1').should be_nil
|
16931
|
+
end
|
16932
|
+
|
16933
|
+
it 'supports 0 as no-expires on store and []' do
|
16911
16934
|
store.store('key1', 'val1', :expires => 0)
|
16912
16935
|
store['key1'].should == 'val1'
|
16913
16936
|
sleep 2
|
16914
16937
|
store['key1'].should == 'val1'
|
16915
16938
|
end
|
16916
16939
|
|
16917
|
-
it 'supports false as no-expires on store and
|
16940
|
+
it 'supports false as no-expires on store and []' do
|
16918
16941
|
store.store('key1', 'val1', :expires => false)
|
16919
16942
|
store['key1'].should == 'val1'
|
16920
16943
|
sleep 2
|
16921
16944
|
store['key1'].should == 'val1'
|
16922
16945
|
end
|
16923
16946
|
|
16924
|
-
it 'supports expires on store and load' do
|
16925
|
-
store.store('key1', 'val1', :expires =>
|
16947
|
+
it 'supports expires on store and load', :retry => 3 do
|
16948
|
+
store.store('key1', 'val1', :expires => 3)
|
16926
16949
|
store.load('key1').should == 'val1'
|
16927
16950
|
sleep 1
|
16928
16951
|
store.load('key1').should == 'val1'
|
16929
|
-
sleep
|
16952
|
+
sleep 3
|
16930
16953
|
store.load('key1').should be_nil
|
16931
16954
|
end
|
16932
16955
|
|
16933
|
-
it 'supports expires on store and
|
16956
|
+
it 'supports strict expires on store and load' do
|
16934
16957
|
store.store('key1', 'val1', :expires => 2)
|
16958
|
+
store.load('key1').should == 'val1'
|
16959
|
+
sleep 3 # Sleep 3 seconds because after 2 seconds the value can still exist!
|
16960
|
+
store.load('key1').should be_nil
|
16961
|
+
end
|
16962
|
+
|
16963
|
+
it 'supports expires on store and key?', :retry => 3 do
|
16964
|
+
store.store('key1', 'val1', :expires => 3)
|
16935
16965
|
store.key?('key1').should be_true
|
16936
16966
|
sleep 1
|
16937
16967
|
store.key?('key1').should be_true
|
16938
|
-
sleep
|
16968
|
+
sleep 3
|
16939
16969
|
store.key?('key1').should be_false
|
16940
16970
|
end
|
16941
16971
|
|
16942
|
-
it 'supports
|
16943
|
-
store.store('
|
16972
|
+
it 'supports strict expires on store and key?' do
|
16973
|
+
store.store('key1', 'val1', :expires => 2)
|
16974
|
+
store.key?('key1').should be_true
|
16975
|
+
sleep 3 # Sleep 3 seconds because after 2 seconds the value can still exist!
|
16976
|
+
store.key?('key1').should be_false
|
16977
|
+
end
|
16978
|
+
|
16979
|
+
it 'supports updating the expiration time in load', :retry => 3 do
|
16980
|
+
store.store('key2', 'val2', :expires => 3)
|
16944
16981
|
store['key2'].should == 'val2'
|
16945
16982
|
sleep 1
|
16946
|
-
store.load('key2', :expires =>
|
16983
|
+
store.load('key2', :expires => 5).should == 'val2'
|
16947
16984
|
store['key2'].should == 'val2'
|
16948
|
-
sleep
|
16985
|
+
sleep 3
|
16949
16986
|
store['key2'].should == 'val2'
|
16950
|
-
sleep
|
16987
|
+
sleep 3
|
16951
16988
|
store['key2'].should be_nil
|
16952
16989
|
end
|
16953
16990
|
|
16954
16991
|
it 'supports 0 as no-expires in load' do
|
16955
16992
|
store.store('key1', 'val1', :expires => 2)
|
16956
16993
|
store.load('key1', :expires => 0).should == 'val1'
|
16957
|
-
sleep
|
16994
|
+
sleep 3
|
16958
16995
|
store.load('key1').should == 'val1'
|
16959
16996
|
end
|
16960
16997
|
|
16961
16998
|
it 'supports false as no-expires in load' do
|
16962
16999
|
store.store('key1', 'val1', :expires => 2)
|
16963
17000
|
store.load('key1', :expires => false).should == 'val1'
|
16964
|
-
sleep
|
17001
|
+
sleep 3
|
16965
17002
|
store.load('key1').should == 'val1'
|
16966
17003
|
end
|
16967
17004
|
|
16968
|
-
it 'supports updating the expiration time in key?' do
|
16969
|
-
store.store('key2', 'val2', :expires =>
|
17005
|
+
it 'supports updating the expiration time in key?', :retry => 3 do
|
17006
|
+
store.store('key2', 'val2', :expires => 3)
|
16970
17007
|
store['key2'].should == 'val2'
|
16971
17008
|
sleep 1
|
16972
|
-
store.key?('key2', :expires =>
|
17009
|
+
store.key?('key2', :expires => 5).should be_true
|
16973
17010
|
store['key2'].should == 'val2'
|
16974
|
-
sleep
|
17011
|
+
sleep 3
|
16975
17012
|
store['key2'].should == 'val2'
|
16976
|
-
sleep
|
17013
|
+
sleep 3
|
16977
17014
|
store['key2'].should be_nil
|
16978
17015
|
end
|
16979
17016
|
|
16980
17017
|
it 'supports 0 as no-expires in key?' do
|
16981
17018
|
store.store('key1', 'val1', :expires => 2)
|
16982
17019
|
store.key?('key1', :expires => 0).should be_true
|
16983
|
-
sleep
|
17020
|
+
sleep 3
|
16984
17021
|
store['key1'].should == 'val1'
|
16985
17022
|
end
|
16986
17023
|
|
16987
17024
|
it 'supports false as no-expires in key?' do
|
16988
17025
|
store.store('key1', 'val1', :expires => 2)
|
16989
17026
|
store.key?('key1', :expires => false ).should be_true
|
16990
|
-
sleep
|
17027
|
+
sleep 3
|
16991
17028
|
store['key1'].should == 'val1'
|
16992
17029
|
end
|
16993
17030
|
|
16994
|
-
it 'supports updating the expiration time in fetch' do
|
16995
|
-
store.store('key1', 'val1', :expires =>
|
17031
|
+
it 'supports updating the expiration time in fetch', :retry => 3 do
|
17032
|
+
store.store('key1', 'val1', :expires => 3)
|
16996
17033
|
store['key1'].should == 'val1'
|
16997
17034
|
sleep 1
|
16998
|
-
store.fetch('key1', nil, :expires =>
|
17035
|
+
store.fetch('key1', nil, :expires => 5).should == 'val1'
|
16999
17036
|
store['key1'].should == 'val1'
|
17000
|
-
sleep
|
17037
|
+
sleep 3
|
17001
17038
|
store['key1'].should == 'val1'
|
17002
|
-
sleep
|
17039
|
+
sleep 3
|
17003
17040
|
store['key1'].should be_nil
|
17004
17041
|
end
|
17005
17042
|
|
17006
17043
|
it 'supports 0 as no-expires in fetch' do
|
17007
17044
|
store.store('key1', 'val1', :expires => 2)
|
17008
17045
|
store.fetch('key1', nil, :expires => 0).should == 'val1'
|
17009
|
-
sleep
|
17046
|
+
sleep 3
|
17010
17047
|
store.load('key1').should == 'val1'
|
17011
17048
|
end
|
17012
17049
|
|
17013
17050
|
it 'supports false as no-expires in fetch' do
|
17014
17051
|
store.store('key1', 'val1', :expires => 2)
|
17015
17052
|
store.fetch('key1', nil, :expires => false).should == 'val1'
|
17016
|
-
sleep
|
17053
|
+
sleep 3
|
17017
17054
|
store.load('key1').should == 'val1'
|
17018
17055
|
end
|
17019
17056
|
|
17020
|
-
it 'respects expires in delete' do
|
17057
|
+
it 'strictly respects expires in delete' do
|
17021
17058
|
store.store('key2', 'val2', :expires => 2)
|
17022
17059
|
store['key2'].should == 'val2'
|
17060
|
+
sleep 3 # Sleep 3 seconds because after 2 seconds the value can still exist!
|
17061
|
+
store.delete('key2').should be_nil
|
17062
|
+
end
|
17063
|
+
|
17064
|
+
it 'respects expires in delete', :retry => 3 do
|
17065
|
+
store.store('key2', 'val2', :expires => 3)
|
17066
|
+
store['key2'].should == 'val2'
|
17023
17067
|
sleep 1
|
17024
17068
|
store['key2'].should == 'val2'
|
17025
|
-
sleep
|
17069
|
+
sleep 3
|
17026
17070
|
store.delete('key2').should be_nil
|
17027
17071
|
end
|
17028
17072
|
|
17029
17073
|
it 'supports the #expires syntactic sugar' do
|
17030
17074
|
store.store('persistent_key', 'persistent_value', :expires => 0)
|
17031
|
-
store.expires(
|
17032
|
-
store['key2'].should == 'val2'
|
17033
|
-
sleep 1
|
17075
|
+
store.expires(1).store('key2', 'val2')
|
17034
17076
|
store['key2'].should == 'val2'
|
17035
17077
|
sleep 2
|
17036
17078
|
store.delete('key2').should be_nil
|
17037
17079
|
store['persistent_key'].should == 'persistent_value'
|
17038
17080
|
end
|
17039
17081
|
|
17040
|
-
it 'supports false as no-expires on store and
|
17082
|
+
it 'supports false as no-expires on store and []' do
|
17041
17083
|
store.store('key1', 'val1', :expires => false)
|
17042
17084
|
store['key1'].should == 'val1'
|
17043
17085
|
sleep 2
|