redis-store 1.1.0.rc → 1.1.0.rc2

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.

Potentially problematic release.


This version of redis-store might be problematic. Click here for more details.

data/Gemfile CHANGED
@@ -1,2 +1,4 @@
1
1
  source 'http://rubygems.org'
2
- gemspec
2
+ gemspec
3
+
4
+ gem 'SystemTimer', :platform => :mri_18
data/Rakefile CHANGED
@@ -3,11 +3,5 @@ Bundler.setup
3
3
  require 'rake'
4
4
  require 'bundler/gem_tasks'
5
5
 
6
- begin
7
- require 'rdoc/task'
8
- rescue LoadError
9
- require 'rake/rdoctask'
10
- end
11
-
12
6
  load 'tasks/redis.tasks.rb'
13
7
  task :default => 'redis:test:suite'
@@ -3,7 +3,7 @@ class Redis
3
3
  module Ttl
4
4
  def set(key, value, options = nil)
5
5
  if ttl = expires_in(options)
6
- setex(key, ttl, value)
6
+ setex(key, ttl.to_i, value, :raw => true)
7
7
  else
8
8
  super(key, value)
9
9
  end
@@ -11,7 +11,7 @@ class Redis
11
11
 
12
12
  def setnx(key, value, options = nil)
13
13
  if ttl = expires_in(options)
14
- setnx_with_expire(key, value, ttl)
14
+ setnx_with_expire(key, value, ttl.to_i)
15
15
  else
16
16
  super(key, value)
17
17
  end
@@ -20,8 +20,8 @@ class Redis
20
20
  protected
21
21
  def setnx_with_expire(key, value, ttl)
22
22
  multi do
23
- setnx(key, value)
24
- expire(key, expires_in)
23
+ setnx(key, value, :raw => true)
24
+ expire(key, ttl)
25
25
  end
26
26
  end
27
27
 
@@ -1,5 +1,5 @@
1
1
  class Redis
2
2
  class Store < self
3
- VERSION = '1.1.0.rc'
3
+ VERSION = '1.1.0.rc2'
4
4
  end
5
5
  end
@@ -24,4 +24,4 @@ describe Redis::Store::Interface do
24
24
  it "should setex an element" do
25
25
  lambda { @r.setex("key", 1, "value", :option => true) } #.wont_raise ArgumentError
26
26
  end
27
- end
27
+ end
@@ -0,0 +1,107 @@
1
+ require 'test_helper'
2
+
3
+ class MockRedis
4
+ def initialize
5
+ @sets = []
6
+ @setexes = []
7
+ @setnxes = []
8
+ @expires = []
9
+ end
10
+
11
+ def set(*a)
12
+ @sets << a
13
+ end
14
+
15
+ def has_set?(*a)
16
+ @sets.include?(a)
17
+ end
18
+
19
+ def setex(*a)
20
+ @setexes << a
21
+ end
22
+
23
+ def has_setex?(*a)
24
+ @setexes.include?(a)
25
+ end
26
+
27
+ def setnx(*a)
28
+ @setnxes << a
29
+ end
30
+
31
+ def has_setnx?(*a)
32
+ @setnxes.include?(a)
33
+ end
34
+
35
+ def multi(&block)
36
+ instance_eval do
37
+ def setnx(*a)
38
+ @setnxes << a
39
+ end
40
+
41
+ block.call
42
+ end
43
+ end
44
+
45
+ def expire(*a)
46
+ @expires << a
47
+ end
48
+
49
+ def has_expire?(*a)
50
+ @expires.include?(a)
51
+ end
52
+
53
+ end
54
+
55
+ class MockTtlStore < MockRedis
56
+ include Redis::Store::Ttl
57
+ end
58
+
59
+ describe MockTtlStore do
60
+ let(:key) { 'hello' }
61
+ let(:value) { 'value' }
62
+ let(:options) { { :expire_after => 3600 } }
63
+ let(:redis) { MockTtlStore.new }
64
+
65
+ describe '#set' do
66
+ describe 'without options' do
67
+ it 'must call super with key and value' do
68
+ redis.set(key, value)
69
+ redis.has_set?(key, value).must_equal true
70
+ end
71
+ end
72
+
73
+ describe 'with options' do
74
+ it 'must call setex with proper expiry and set raw to true' do
75
+ redis.set(key, value, options)
76
+ redis.has_setex?(key, options[:expire_after], value, :raw => true).must_equal true
77
+ end
78
+ end
79
+ end
80
+
81
+ describe '#setnx' do
82
+ describe 'without expiry' do
83
+ it 'must call super with key and value' do
84
+ redis.setnx(key, value)
85
+ redis.has_setnx?(key, value)
86
+ end
87
+
88
+ it 'must not call expire' do
89
+ MockTtlStore.any_instance.expects(:expire).never
90
+
91
+ redis.setnx(key, value)
92
+ end
93
+ end
94
+
95
+ describe 'with expiry' do
96
+ it 'must call setnx with key and value and set raw to true' do
97
+ redis.setnx(key, value, options)
98
+ redis.has_setnx?(key, value, :raw => true).must_equal true
99
+ end
100
+
101
+ it 'must call expire' do
102
+ redis.setnx(key, value, options)
103
+ redis.has_expire?(key, options[:expire_after]).must_equal true
104
+ end
105
+ end
106
+ end
107
+ end
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
3
  describe Redis::Store::VERSION do
4
- it "must be equal to 1.1.0.rc" do
5
- Redis::Store::VERSION.must_equal '1.1.0.rc'
4
+ it "must be equal to 1.1.0.rc2" do
5
+ Redis::Store::VERSION.must_equal '1.1.0.rc2'
6
6
  end
7
- end
7
+ end
@@ -14,4 +14,32 @@ describe Redis::Store do
14
14
  @client.expects(:reconnect)
15
15
  @store.reconnect
16
16
  end
17
- end
17
+
18
+ describe '#set' do
19
+ describe 'with expiry' do
20
+ let(:key) { 'key' }
21
+ let(:value) { 'value' }
22
+ let(:options) { { :expire_after => 3600 } }
23
+
24
+ it 'must not double marshall' do
25
+ Marshal.expects(:dump).once
26
+
27
+ @store.set(key, value, options)
28
+ end
29
+ end
30
+ end
31
+
32
+ describe '#setnx' do
33
+ describe 'with expiry' do
34
+ let(:key) { 'key' }
35
+ let(:value) { 'value' }
36
+ let(:options) { { :expire_after => 3600 } }
37
+
38
+ it 'must not double marshall' do
39
+ Marshal.expects(:dump).once
40
+
41
+ @store.setnx(key, value, options)
42
+ end
43
+ end
44
+ end
45
+ end
metadata CHANGED
@@ -1,146 +1,101 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: redis-store
3
- version: !ruby/object:Gem::Version
4
- hash: 7712002
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0.rc2
5
5
  prerelease: 6
6
- segments:
7
- - 1
8
- - 1
9
- - 0
10
- - rc
11
- version: 1.1.0.rc
12
6
  platform: ruby
13
- authors:
7
+ authors:
14
8
  - Luca Guidi
15
9
  autorequire:
16
10
  bindir: bin
17
11
  cert_chain: []
18
-
19
- date: 2011-12-30 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-02-03 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: redis
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70182807299300 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
18
+ requirements:
27
19
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 7
30
- segments:
31
- - 2
32
- - 2
33
- - 0
20
+ - !ruby/object:Gem::Version
34
21
  version: 2.2.0
35
22
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: rake
39
23
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70182807299300
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &70182807298160 !ruby/object:Gem::Requirement
41
28
  none: false
42
- requirements:
29
+ requirements:
43
30
  - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 11
46
- segments:
47
- - 0
48
- - 9
49
- - 2
50
- - 2
31
+ - !ruby/object:Gem::Version
51
32
  version: 0.9.2.2
52
33
  type: :development
53
- version_requirements: *id002
54
- - !ruby/object:Gem::Dependency
55
- name: bundler
56
34
  prerelease: false
57
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70182807298160
36
+ - !ruby/object:Gem::Dependency
37
+ name: bundler
38
+ requirement: &70182807297380 !ruby/object:Gem::Requirement
58
39
  none: false
59
- requirements:
40
+ requirements:
60
41
  - - ~>
61
- - !ruby/object:Gem::Version
62
- hash: 7712070
63
- segments:
64
- - 1
65
- - 1
66
- - rc
42
+ - !ruby/object:Gem::Version
67
43
  version: 1.1.rc
68
44
  type: :development
69
- version_requirements: *id003
70
- - !ruby/object:Gem::Dependency
71
- name: mocha
72
45
  prerelease: false
73
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *70182807297380
47
+ - !ruby/object:Gem::Dependency
48
+ name: mocha
49
+ requirement: &70182807296420 !ruby/object:Gem::Requirement
74
50
  none: false
75
- requirements:
51
+ requirements:
76
52
  - - ~>
77
- - !ruby/object:Gem::Version
78
- hash: 55
79
- segments:
80
- - 0
81
- - 10
82
- - 0
53
+ - !ruby/object:Gem::Version
83
54
  version: 0.10.0
84
55
  type: :development
85
- version_requirements: *id004
86
- - !ruby/object:Gem::Dependency
87
- name: minitest
88
56
  prerelease: false
89
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *70182807296420
58
+ - !ruby/object:Gem::Dependency
59
+ name: minitest
60
+ requirement: &70182807295000 !ruby/object:Gem::Requirement
90
61
  none: false
91
- requirements:
62
+ requirements:
92
63
  - - ~>
93
- - !ruby/object:Gem::Version
94
- hash: 47
95
- segments:
96
- - 2
97
- - 8
98
- - 0
64
+ - !ruby/object:Gem::Version
99
65
  version: 2.8.0
100
66
  type: :development
101
- version_requirements: *id005
102
- - !ruby/object:Gem::Dependency
103
- name: purdytest
104
67
  prerelease: false
105
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *70182807295000
69
+ - !ruby/object:Gem::Dependency
70
+ name: purdytest
71
+ requirement: &70182807294440 !ruby/object:Gem::Requirement
106
72
  none: false
107
- requirements:
73
+ requirements:
108
74
  - - ~>
109
- - !ruby/object:Gem::Version
110
- hash: 23
111
- segments:
112
- - 1
113
- - 0
114
- - 0
75
+ - !ruby/object:Gem::Version
115
76
  version: 1.0.0
116
77
  type: :development
117
- version_requirements: *id006
118
- - !ruby/object:Gem::Dependency
119
- name: git
120
78
  prerelease: false
121
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *70182807294440
80
+ - !ruby/object:Gem::Dependency
81
+ name: git
82
+ requirement: &70182807293680 !ruby/object:Gem::Requirement
122
83
  none: false
123
- requirements:
84
+ requirements:
124
85
  - - ~>
125
- - !ruby/object:Gem::Version
126
- hash: 21
127
- segments:
128
- - 1
129
- - 2
130
- - 5
86
+ - !ruby/object:Gem::Version
131
87
  version: 1.2.5
132
88
  type: :development
133
- version_requirements: *id007
134
- description: Namespaced Rack::Session, Rack::Cache, I18n and cache Redis stores for Ruby web frameworks.
135
- email:
89
+ prerelease: false
90
+ version_requirements: *70182807293680
91
+ description: Namespaced Rack::Session, Rack::Cache, I18n and cache Redis stores for
92
+ Ruby web frameworks.
93
+ email:
136
94
  - guidi.luca@gmail.com
137
95
  executables: []
138
-
139
96
  extensions: []
140
-
141
97
  extra_rdoc_files: []
142
-
143
- files:
98
+ files:
144
99
  - Gemfile
145
100
  - MIT-LICENSE
146
101
  - README.md
@@ -164,45 +119,35 @@ files:
164
119
  - test/redis/store/interface_test.rb
165
120
  - test/redis/store/marshalling_test.rb
166
121
  - test/redis/store/namespace_test.rb
122
+ - test/redis/store/ttl_test.rb
167
123
  - test/redis/store/version_test.rb
168
124
  - test/redis/store_test.rb
169
125
  - test/test_helper.rb
170
- homepage: ""
126
+ homepage: ''
171
127
  licenses: []
172
-
173
128
  post_install_message:
174
129
  rdoc_options: []
175
-
176
- require_paths:
130
+ require_paths:
177
131
  - lib
178
- required_ruby_version: !ruby/object:Gem::Requirement
132
+ required_ruby_version: !ruby/object:Gem::Requirement
179
133
  none: false
180
- requirements:
181
- - - ">="
182
- - !ruby/object:Gem::Version
183
- hash: 3
184
- segments:
185
- - 0
186
- version: "0"
187
- required_rubygems_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ! '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ required_rubygems_version: !ruby/object:Gem::Requirement
188
139
  none: false
189
- requirements:
190
- - - ">"
191
- - !ruby/object:Gem::Version
192
- hash: 25
193
- segments:
194
- - 1
195
- - 3
196
- - 1
140
+ requirements:
141
+ - - ! '>'
142
+ - !ruby/object:Gem::Version
197
143
  version: 1.3.1
198
144
  requirements: []
199
-
200
145
  rubyforge_project: redis-store
201
- rubygems_version: 1.8.6
146
+ rubygems_version: 1.8.15
202
147
  signing_key:
203
148
  specification_version: 3
204
149
  summary: Redis stores for Ruby frameworks
205
- test_files:
150
+ test_files:
206
151
  - test/config/node-one.conf
207
152
  - test/config/node-two.conf
208
153
  - test/config/redis.conf
@@ -211,7 +156,7 @@ test_files:
211
156
  - test/redis/store/interface_test.rb
212
157
  - test/redis/store/marshalling_test.rb
213
158
  - test/redis/store/namespace_test.rb
159
+ - test/redis/store/ttl_test.rb
214
160
  - test/redis/store/version_test.rb
215
161
  - test/redis/store_test.rb
216
162
  - test/test_helper.rb
217
- has_rdoc: