redis-activesupport 5.0.2 → 5.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f76cc8e43f05938df0720d314014293a6f1fca07
4
- data.tar.gz: 9e1058563ccda4f656c8f124c615997c52d05291
3
+ metadata.gz: eebc0d644eba5c56ef06413a98ac47d8cf73539f
4
+ data.tar.gz: 33b363c215491c97282d37f596068868ba484313
5
5
  SHA512:
6
- metadata.gz: ff1a913f4f8cdbba56665589c487f9def5e02f527b9fa20f06786aaabd0bd97abd4f3d2833639e55b892862fee72671e9aa6e967f9147de0fa380cf5b7e6cdad
7
- data.tar.gz: 9edd85a05fd26962dae0a831f6ad1f74d165e6f3399f0e8d42135bb4394da96f7559faef00fa2bd6b9fbb12087fe04be57a08e892f3c8f99cbd6fe67bfebc3ef
6
+ metadata.gz: a357ae2389638487bc51e9b976f3d76df74765096f91b0d9fbd9cda5eda6720afb3014a3867c77a5633f0cc6993901ffe739738774a7e085942c432f1f134239
7
+ data.tar.gz: a986a0f70541447333c59c0ad1c034c59ab9aaa71d6b2ddc634330973193572bbfa7d95c6bb77d0aa2828f0f5949a4c74b5989820e322fa0861ec308bfd7e9d7
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  Gemfile.lock
2
2
  *.gem
3
3
  tmp/
4
- gemfiles/*.lock
4
+ gemfiles/*.lock
5
+ stdout
@@ -67,13 +67,10 @@ module ActiveSupport
67
67
 
68
68
  # Delete objects for matched keys.
69
69
  #
70
- # Uses SCAN to iterate and collect matched keys only when both client and
71
- # server supports it (Redis server >= 2.8.0, client >= 3.0.6)
72
- #
73
70
  # Performance note: this operation can be dangerous for large production
74
- # databases on Redis < 2.8.0, as it uses the Redis "KEYS" command, which
75
- # is O(N) over the total number of keys in the database. Users of large
76
- # Redis caches should avoid this method.
71
+ # databases, as it uses the Redis "KEYS" command, which is O(N) over the
72
+ # total number of keys in the database. Users of large Redis caches should
73
+ # avoid this method.
77
74
  #
78
75
  # Example:
79
76
  # cache.delete_matched "rab*"
@@ -83,17 +80,7 @@ module ActiveSupport
83
80
  matcher = key_matcher(matcher, options)
84
81
  begin
85
82
  with do |store|
86
- supports_scan_each = store.respond_to?(:supports_redis_version?) &&
87
- store.supports_redis_version?("2.8.0") &&
88
- store.respond_to?(:scan_each)
89
-
90
- if supports_scan_each
91
- keys = store.scan_each(match: matcher).to_a
92
- else
93
- keys = store.keys(matcher)
94
- end
95
-
96
- !keys.empty? && store.del(*keys)
83
+ !(keys = store.keys(matcher)).empty? && store.del(*keys)
97
84
  end
98
85
  rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Redis::CannotConnectError
99
86
  raise if raise_errors?
@@ -109,10 +96,14 @@ module ActiveSupport
109
96
  # cache.read_multi "rabbit", "white-rabbit"
110
97
  # cache.read_multi "rabbit", "white-rabbit", :raw => true
111
98
  def read_multi(*names)
112
- return {} if names == []
113
99
  options = names.extract_options!
100
+ return {} if names == []
101
+
114
102
  keys = names.map{|name| normalize_key(name, options)}
115
- values = with { |c| c.mget(*keys) }
103
+ args = [keys, options]
104
+ args.flatten!
105
+
106
+ values = with { |c| c.mget(*args) }
116
107
  values.map! { |v| v.is_a?(ActiveSupport::Cache::Entry) ? v.value : v }
117
108
 
118
109
  result = Hash[names.zip(values)]
@@ -121,9 +112,10 @@ module ActiveSupport
121
112
  end
122
113
 
123
114
  def fetch_multi(*names)
124
- return {} if names == []
125
- results = read_multi(*names)
126
115
  options = names.extract_options!
116
+ return {} if names == []
117
+
118
+ results = read_multi(*names, options)
127
119
  need_writes = {}
128
120
 
129
121
  fetched = names.inject({}) do |memo, name|
@@ -273,7 +265,6 @@ module ActiveSupport
273
265
  !!@options[:raise_errors]
274
266
  end
275
267
 
276
-
277
268
  # Add the namespace defined in the options to a pattern designed to match keys.
278
269
  #
279
270
  # This implementation is __different__ than ActiveSupport:
@@ -281,8 +272,10 @@ module ActiveSupport
281
272
  # only for strings with wildcards.
282
273
  def key_matcher(pattern, options)
283
274
  prefix = options[:namespace].is_a?(Proc) ? options[:namespace].call : options[:namespace]
275
+
276
+ pattern = pattern.inspect[1..-2] if pattern.is_a? Regexp
277
+
284
278
  if prefix
285
- raise "Regexps aren't supported, please use string with wildcards." if pattern.is_a?(Regexp)
286
279
  "#{prefix}:#{pattern}"
287
280
  else
288
281
  pattern
@@ -3,7 +3,7 @@ $:.push File.expand_path('../lib', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'redis-activesupport'
6
- s.version = '5.0.2'
6
+ s.version = '5.0.3'
7
7
  s.authors = ['Luca Guidi', 'Ryan Bigg']
8
8
  s.email = ['me@lucaguidi.com', 'me@ryanbigg.com']
9
9
  s.homepage = 'http://redis-store.org/redis-activesupport'
@@ -176,7 +176,7 @@ describe ActiveSupport::Cache::RedisStore do
176
176
  end
177
177
  end
178
178
 
179
- if RUBY_VERSION.match /1\.9/
179
+ if RUBY_VERSION.match(/1\.9/)
180
180
  it "reads raw data" do
181
181
  with_store_management do |store|
182
182
  result = store.read("rabbit", :raw => true)
@@ -227,6 +227,18 @@ describe ActiveSupport::Cache::RedisStore do
227
227
  end
228
228
  end
229
229
 
230
+ it 'deletes matched data with a regexp' do
231
+ with_store_management do |store|
232
+ store.write "rabbit2", @white_rabbit
233
+ store.write "rub-a-dub", "Flora de Cana"
234
+ store.delete_matched(/rabb*/)
235
+
236
+ store.read("rabbit").must_be_nil
237
+ store.read("rabbit2").must_be_nil
238
+ store.exist?("rub-a-dub").must_equal(true)
239
+ end
240
+ end
241
+
230
242
  it "verifies existence of an object in the store" do
231
243
  with_store_management do |store|
232
244
  store.exist?("rabbit").must_equal(true)
@@ -415,6 +427,19 @@ describe ActiveSupport::Cache::RedisStore do
415
427
  result.must_equal({})
416
428
  end
417
429
 
430
+ it "read_multi return an empty {} when given an empty array with option" do
431
+ result = @store.read_multi(*[], option: true)
432
+ result.must_equal({})
433
+ end
434
+
435
+ it "read_multi returns values with raw option" do
436
+ @store.write "raw-value-a", "A", raw: true
437
+ @store.write "raw-value-b", "B", raw: true
438
+
439
+ result = @store.read_multi("raw-value-a", "raw-value-b", :raw => true)
440
+ result.must_equal({ "raw-value-a" => "A", "raw-value-b" => "B" })
441
+ end
442
+
418
443
  describe "fetch_multi" do
419
444
  it "reads existing keys and fills in anything missing" do
420
445
  @store.write "bourbon", "makers"
@@ -446,6 +471,11 @@ describe ActiveSupport::Cache::RedisStore do
446
471
  result = @store.fetch_multi(*[]) { 1 }
447
472
  result.must_equal({})
448
473
  end
474
+
475
+ it "return an empty {} when given an empty array with option" do
476
+ result = @store.read_multi(*[], option: true)
477
+ result.must_equal({})
478
+ end
449
479
  end
450
480
 
451
481
  describe "fetch_multi namespaced keys" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis-activesupport
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.2
4
+ version: 5.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
@@ -9,130 +9,130 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-02-28 00:00:00.000000000 Z
12
+ date: 2017-07-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redis-store
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ~>
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
20
  version: 1.3.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ~>
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: 1.3.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: activesupport
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - '>='
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: '3'
35
- - - <
35
+ - - "<"
36
36
  - !ruby/object:Gem::Version
37
37
  version: '6'
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  requirements:
42
- - - '>='
42
+ - - ">="
43
43
  - !ruby/object:Gem::Version
44
44
  version: '3'
45
- - - <
45
+ - - "<"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '6'
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rake
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10'
55
55
  type: :development
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '10'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: bundler
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.3'
69
69
  type: :development
70
70
  prerelease: false
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '1.3'
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: mocha
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.14.0
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: 0.14.0
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: minitest
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '4.2'
97
- - - <
97
+ - - "<"
98
98
  - !ruby/object:Gem::Version
99
99
  version: '6'
100
100
  type: :development
101
101
  prerelease: false
102
102
  version_requirements: !ruby/object:Gem::Requirement
103
103
  requirements:
104
- - - '>='
104
+ - - ">="
105
105
  - !ruby/object:Gem::Version
106
106
  version: '4.2'
107
- - - <
107
+ - - "<"
108
108
  - !ruby/object:Gem::Version
109
109
  version: '6'
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: connection_pool
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - ~>
114
+ - - "~>"
115
115
  - !ruby/object:Gem::Version
116
116
  version: 2.2.0
117
117
  type: :development
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - ~>
121
+ - - "~>"
122
122
  - !ruby/object:Gem::Version
123
123
  version: 2.2.0
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: redis-store-testing
126
126
  requirement: !ruby/object:Gem::Requirement
127
127
  requirements:
128
- - - '>='
128
+ - - ">="
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
131
  type: :development
132
132
  prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - '>='
135
+ - - ">="
136
136
  - !ruby/object:Gem::Version
137
137
  version: '0'
138
138
  description: Redis store for ActiveSupport
@@ -143,8 +143,8 @@ executables: []
143
143
  extensions: []
144
144
  extra_rdoc_files: []
145
145
  files:
146
- - .gitignore
147
- - .travis.yml
146
+ - ".gitignore"
147
+ - ".travis.yml"
148
148
  - Gemfile
149
149
  - MIT-LICENSE
150
150
  - README.md
@@ -155,7 +155,6 @@ files:
155
155
  - lib/active_support/cache/redis_store.rb
156
156
  - lib/redis-activesupport.rb
157
157
  - redis-activesupport.gemspec
158
- - stdout
159
158
  - test/active_support/cache/redis_store_test.rb
160
159
  - test/test_helper.rb
161
160
  homepage: http://redis-store.org/redis-activesupport
@@ -168,17 +167,17 @@ require_paths:
168
167
  - lib
169
168
  required_ruby_version: !ruby/object:Gem::Requirement
170
169
  requirements:
171
- - - '>='
170
+ - - ">="
172
171
  - !ruby/object:Gem::Version
173
172
  version: '0'
174
173
  required_rubygems_version: !ruby/object:Gem::Requirement
175
174
  requirements:
176
- - - '>='
175
+ - - ">="
177
176
  - !ruby/object:Gem::Version
178
177
  version: '0'
179
178
  requirements: []
180
179
  rubyforge_project: redis-activesupport
181
- rubygems_version: 2.5.2
180
+ rubygems_version: 2.6.11
182
181
  signing_key:
183
182
  specification_version: 4
184
183
  summary: Redis store for ActiveSupport
data/stdout DELETED
File without changes