redis-store 1.6.0 → 1.9.2

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
- SHA1:
3
- metadata.gz: 7d09e598db500a23547cfabf8b0ee023aa473aa5
4
- data.tar.gz: 34fea83415585fe81210982d30f1f8891e4f90c5
2
+ SHA256:
3
+ metadata.gz: 7a70e9a1e720591e28f5abee4cbfff877503f808a9318143234579ea942dc073
4
+ data.tar.gz: 037aa5824d933374d37e0f922c8992034ed48d05bf00069be6040d52a6706b2e
5
5
  SHA512:
6
- metadata.gz: a50a647e8edc5a25a1a2d9c2038bac4bec7d77cdc4b68734004c9f5cf4aec105a6d737172cf2a4759239309484aaf9470f73a0db14f0b08bec76718d8a5bd242
7
- data.tar.gz: 24c45f122e99129e14c8dc352875ed7be76c3461623f4b101f955fa2322a4eb16ed0c53c62e1da936480c6e0d096284c77fed18c816f95c64957a9e8776396ad
6
+ metadata.gz: fe1f61f58277a706a19100e85433bd7177b23b8245c6f1354cbe49abdcb2aa9abed9a3956686b074d5c9edb7006f5dbb8f8715d579f316832eecf711a656dab1
7
+ data.tar.gz: 22d18ed2621e2075d2e02a7f830d4ad2de45f834405f62650e9f41f19bff6b6d3a5017d1247fe0de893e5d3c21f71c3aed63f742c8823d05bef5cf6148c74c4d
@@ -0,0 +1,2 @@
1
+ assignees:
2
+ - tubbo
@@ -0,0 +1,13 @@
1
+ changelog:
2
+ exclude:
3
+ labels: [dependencies]
4
+ authors: [renovate-bot]
5
+ categories:
6
+ - title: Breaking Changes
7
+ labels: [breaking]
8
+ - title: New Features
9
+ labels: [enhancement]
10
+ - title: Bug Fixes
11
+ labels: [bug]
12
+ - title: Other Changes
13
+ labels: ["*"]
@@ -0,0 +1,62 @@
1
+ name: CI
2
+ on:
3
+ push:
4
+ branches-ignore: [master]
5
+ tags-ignore: [v*]
6
+ concurrency:
7
+ group: ${{ github.workflow }}-${{ github.ref }}
8
+ cancel-in-progress: true
9
+ jobs:
10
+ test:
11
+ name: "test (ruby: ${{ matrix.ruby }}, redis.rb: ${{ matrix.redis }})"
12
+ runs-on: ubuntu-latest
13
+ continue-on-error: ${{ contains(matrix.ruby, 'head') }}
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ ruby:
18
+ - "2.7"
19
+ - "3.0"
20
+ - "3.1"
21
+ # - 'head'
22
+ - "jruby"
23
+ # - 'jruby-head'
24
+ - "truffleruby"
25
+ # - 'truffleruby-head'
26
+ redis:
27
+ - 4_0_x
28
+ - 4_1_x
29
+ - 4_x
30
+ env:
31
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/redis_${{ matrix.redis }}.gemfile
32
+ services:
33
+ redis:
34
+ image: redis
35
+ ports:
36
+ - 6379:6379
37
+ distributed1:
38
+ image: redis
39
+ ports:
40
+ - 6380:6380
41
+ distributed2:
42
+ image: redis
43
+ ports:
44
+ - 6381:6381
45
+ steps:
46
+ - uses: actions/checkout@v3
47
+ - uses: ruby/setup-ruby@v1
48
+ with:
49
+ ruby-version: ${{ matrix.ruby }}
50
+ bundler-cache: true
51
+ - run: bundle exec rake
52
+ lint:
53
+ runs-on: ubuntu-latest
54
+ steps:
55
+ - uses: actions/checkout@v3
56
+ with:
57
+ fetch-depth: 0
58
+ - uses: ruby/setup-ruby@v1
59
+ with:
60
+ ruby-version: 3.1
61
+ bundler-cache: true
62
+ - run: bundle exec rake lint
@@ -0,0 +1,32 @@
1
+ name: Publish
2
+ on:
3
+ push:
4
+ tags: [v*]
5
+ permissions:
6
+ contents: write
7
+ concurrency:
8
+ group: ${{ github.workflow }}-${{ github.ref }}
9
+ cancel-in-progress: true
10
+ jobs:
11
+ release:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+ - uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: "3.1"
18
+ bundler-cache: true
19
+ - run: |
20
+ mkdir -p ~/.gem
21
+ cat << EOF > ~/.gem/credentials
22
+ ---
23
+ :rubygems_api_key: ${{ secrets.RUBYGEMS_API_KEY }}
24
+ EOF
25
+
26
+ chmod 0600 ~/.gem/credentials
27
+ - run: bundle exec rake release
28
+ - uses: softprops/action-gh-release@v1
29
+ with:
30
+ files: "*.gem"
31
+ generate_release_notes: true
32
+ prerelease: ${{ contains(github.ref, '.pre') }}
data/.rubocop.yml CHANGED
@@ -5,18 +5,12 @@ AllCops:
5
5
  # to ignore them, so only the ones explicitly set in this file are enabled.
6
6
  DisabledByDefault: true
7
7
  Exclude:
8
- - '**/vendor/**/*'
8
+ - "**/vendor/**/*"
9
9
 
10
10
  # Prefer &&/|| over and/or.
11
11
  Style/AndOr:
12
12
  Enabled: true
13
13
 
14
- # Do not use braces for hash literals when they are the last argument of a
15
- # method call.
16
- Style/BracesAroundHashParameters:
17
- Enabled: true
18
- EnforcedStyle: context_dependent
19
-
20
14
  # Align comments with method definitions.
21
15
  Layout/CommentIndentation:
22
16
  Enabled: true
@@ -46,7 +40,7 @@ Layout/FirstParameterIndentation:
46
40
  # extra level of indentation.
47
41
  Layout/IndentationConsistency:
48
42
  Enabled: true
49
- EnforcedStyle: rails
43
+ EnforcedStyle: indented_internal_methods
50
44
 
51
45
  # Two spaces, no tabs (for indentation).
52
46
  Layout/IndentationWidth:
@@ -99,11 +93,11 @@ Layout/SpaceInsideParens:
99
93
  Enabled: true
100
94
 
101
95
  # Detect hard tabs, no hard tabs.
102
- Layout/Tab:
96
+ Layout/IndentationStyle:
103
97
  Enabled: true
104
98
 
105
99
  # Blank lines should not have any spaces.
106
- Layout/TrailingBlankLines:
100
+ Layout/TrailingEmptyLines:
107
101
  Enabled: true
108
102
 
109
103
  # No trailing whitespace.
@@ -111,7 +105,7 @@ Layout/TrailingWhitespace:
111
105
  Enabled: true
112
106
 
113
107
  # Use quotes for string literals when they are enough.
114
- Style/UnneededPercentQ:
108
+ Style/RedundantPercentQ:
115
109
  Enabled: true
116
110
 
117
111
  # Align `end` with the matching keyword or starting expression except for
data/Appraisals CHANGED
@@ -1,8 +1,19 @@
1
+ appraise "redis_4_0_x" do
2
+ gem "redis", "~> 4.0.0"
3
+ end
4
+
5
+ appraise "redis_4_1_x" do
6
+ gem "redis", "~> 4.1.0"
7
+ end
1
8
 
2
- appraise "redis_3_x" do
3
- gem "redis", "~> 3.0"
9
+ appraise "redis_4_6_x" do
10
+ gem "redis", "~> 4.6.0"
4
11
  end
5
12
 
6
13
  appraise "redis_4_x" do
7
14
  gem "redis", "~> 4.0"
8
15
  end
16
+
17
+ appraise "redis_5_x" do
18
+ gem "redis", "~> 5.0"
19
+ end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,63 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.0
4
+
5
+ Breaking Changes
6
+
7
+ * As a factor of updates for Redis v4.2.x, support for Ruby 2.1 and 2.2
8
+ has been dropped. These Ruby versions are end-of-life anyway.
9
+
10
+ Fixed
11
+
12
+ * [Compatibility with Redis client v4.2.x](https://github.com/redis-store/redis-store/pull/333)
13
+
14
+ Added
15
+
16
+ * [Support for edge Ruby's keyword arguments](https://github.com/redis-store/redis-store/pull/334)
17
+
18
+ ## 1.8.2
19
+
20
+ Breaking Changes
21
+
22
+ * None
23
+
24
+ Added
25
+
26
+ * [Add namespace to zincrby and zscore](https://github.com/redis-store/redis-store/pull/323)
27
+ * [Add namespace to zadd and zrem](https://github.com/redis-store/redis-store/pull/326)
28
+
29
+ Fixed
30
+
31
+ * None
32
+
33
+ ## 1.8.1
34
+
35
+ Breaking Changes
36
+
37
+ * None
38
+
39
+ Added
40
+
41
+ * None
42
+
43
+ Fixed
44
+
45
+ * [Add namespace to remaining hash methods](https://github.com/redis-store/redis-store/pull/321)
46
+
47
+ ## 1.8.0
48
+
49
+ Breaking Changes
50
+
51
+ * None
52
+
53
+ Added
54
+
55
+ * [Redis Cluster Support](https://github.com/redis-store/redis-store/pull/318)
56
+
57
+ Fixed
58
+
59
+ * None
60
+
3
61
  ## 1.6.0
4
62
 
5
63
  Breaking Changes
@@ -59,7 +117,7 @@ Added
59
117
 
60
118
  Fixed
61
119
 
62
- * Conventional `Marshal.dump` usage allowing potential security vulnerability (CVE-2017-1000248)
120
+ * Conventional `Marshal.dump` usage allowing potential security vulnerability (CVE-2017-1000248)
63
121
 
64
122
  ## 1.3.0
65
123
 
data/CODEOWNERS ADDED
@@ -0,0 +1 @@
1
+ * @tubbo
data/README.md CHANGED
@@ -45,9 +45,9 @@ s.add_dependency 'redis-store', '>= 1.4', '< 2'
45
45
 
46
46
  ## Status
47
47
 
48
- [![Gem Version](https://badge.fury.io/rb/redis-store.png)](http://badge.fury.io/rb/redis-store)
49
- [![Build Status](https://secure.travis-ci.org/redis-store/redis-store.png?branch=master)](http://travis-ci.org/redis-store/redis-store?branch=master)
50
- [![Code Climate](https://codeclimate.com/github/redis-store/redis-store.png)](https://codeclimate.com/github/redis-store/redis-store)
48
+ [![Gem Version](https://badge.fury.io/rb/redis-store.svg)](http://badge.fury.io/rb/redis-store)
49
+ [![Build Status](https://secure.travis-ci.org/redis-store/redis-store.svg?branch=master)](http://travis-ci.org/redis-store/redis-store?branch=master)
50
+ [![Code Climate](https://codeclimate.com/github/redis-store/redis-store.svg)](https://codeclimate.com/github/redis-store/redis-store)
51
51
 
52
52
  ## Copyright
53
53
 
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ require 'rubocop/rake_task'
7
7
 
8
8
  RuboCop::RakeTask.new :lint
9
9
 
10
- if !ENV["APPRAISAL_INITIALIZED"] && !ENV["TRAVIS"]
10
+ if !ENV["APPRAISAL_INITIALIZED"] && !ENV["CI"]
11
11
  task :default do
12
12
  sh "appraisal install && rake appraisal default"
13
13
  end
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "redis", "~> 4.0.0"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "redis", "~> 4.1.0"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "redis", "~> 4.6.0"
6
+
7
+ gemspec path: "../"
@@ -2,6 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "redis", "~> 3.0"
5
+ gem "redis", "~> 5.0"
6
6
 
7
7
  gemspec path: "../"
@@ -5,8 +5,16 @@ class Redis
5
5
  super(key)
6
6
  end
7
7
 
8
+ REDIS_SET_OPTIONS = %i(ex px nx xx keepttl).freeze
9
+ private_constant :REDIS_SET_OPTIONS
10
+
8
11
  def set(key, value, options = nil)
9
- super(key, value, options || {})
12
+ if options && REDIS_SET_OPTIONS.any? { |k| options.key?(k) }
13
+ kwargs = REDIS_SET_OPTIONS.each_with_object({}) { |key, h| h[key] = options[key] if options.key?(key) }
14
+ super(key, value, **kwargs)
15
+ else
16
+ super(key, value)
17
+ end
10
18
  end
11
19
 
12
20
  def setnx(key, value, options = nil)
@@ -3,28 +3,32 @@ class Redis
3
3
  module Namespace
4
4
  FLUSHDB_BATCH_SIZE = 1000
5
5
 
6
- def set(key, val, options = nil)
7
- namespace(key) { |k| super(k, val, options) }
6
+ def set(key, *args)
7
+ namespace(key) { |k| super(k, *args) }
8
8
  end
9
9
 
10
- def setex(key, ttl, val, options = nil)
11
- namespace(key) { |k| super(k, ttl, val, options) }
10
+ def setex(key, *args)
11
+ namespace(key) { |k| super(k, *args) }
12
12
  end
13
13
 
14
- def setnx(key, val, options = nil)
15
- namespace(key) { |k| super(k, val, options) }
14
+ def setnx(key, *args)
15
+ namespace(key) { |k| super(k, *args) }
16
16
  end
17
17
 
18
18
  def ttl(key, options = nil)
19
19
  namespace(key) { |k| super(k) }
20
20
  end
21
21
 
22
- def get(key, options = nil)
23
- namespace(key) { |k| super(k, options) }
22
+ def get(key, *args)
23
+ namespace(key) { |k| super(k, *args) }
24
24
  end
25
25
 
26
- def exists(key)
27
- namespace(key) { |k| super(k) }
26
+ def exists(*keys)
27
+ super(*keys.map { |key| interpolate(key) })
28
+ end
29
+
30
+ def exists?(*keys)
31
+ super(*keys.map { |key| interpolate(key) })
28
32
  end
29
33
 
30
34
  def incrby(key, increment)
@@ -39,10 +43,25 @@ class Redis
39
43
  namespace(pattern) { |p| super(p).map { |key| strip_namespace(key) } }
40
44
  end
41
45
 
46
+ def scan(cursor, match: nil, **kwargs)
47
+ if match
48
+ namespace(match) do |pattern|
49
+ cursor, keys = super(cursor, match: pattern, **kwargs)
50
+ [ cursor, keys.map { |key| strip_namespace(key) } ]
51
+ end
52
+ else
53
+ super(cursor, **kwargs)
54
+ end
55
+ end
56
+
42
57
  def del(*keys)
43
58
  super(*keys.map { |key| interpolate(key) }) if keys.any?
44
59
  end
45
60
 
61
+ def unlink(*keys)
62
+ super(*keys.map { |key| interpolate(key) }) if keys.any?
63
+ end
64
+
46
65
  def watch(*keys)
47
66
  super(*keys.map { |key| interpolate(key) }) if keys.any?
48
67
  end
@@ -63,6 +82,86 @@ class Redis
63
82
  namespace(key) { |k| super(k, ttl) }
64
83
  end
65
84
 
85
+ def hdel(key, *fields)
86
+ namespace(key) { |k| super(k, *fields) }
87
+ end
88
+
89
+ def hget(key, field)
90
+ namespace(key) { |k| super(k, field) }
91
+ end
92
+
93
+ def hgetall(key)
94
+ namespace(key) { |k| super(k) }
95
+ end
96
+
97
+ def hexists(key, field)
98
+ namespace(key) { |k| super(k, field) }
99
+ end
100
+
101
+ def hincrby(key, field, increment)
102
+ namespace(key) { |k| super(k, field, increment) }
103
+ end
104
+
105
+ def hincrbyfloat(key, field, increment)
106
+ namespace(key) { |k| super(k, field, increment) }
107
+ end
108
+
109
+ def hkeys(key)
110
+ namespace(key) { |k| super(k) }
111
+ end
112
+
113
+ def hlen(key)
114
+ namespace(key) { |k| super(k) }
115
+ end
116
+
117
+ def hmget(key, *fields, &blk)
118
+ namespace(key) { |k| super(k, *fields, &blk) }
119
+ end
120
+
121
+ def hmset(key, *attrs)
122
+ namespace(key) { |k| super(k, *attrs) }
123
+ end
124
+
125
+ def hset(key, *args)
126
+ namespace(key) { |k| super(k, *args) }
127
+ end
128
+
129
+ def hsetnx(key, field, val)
130
+ namespace(key) { |k| super(k, field, val) }
131
+ end
132
+
133
+ def hvals(key)
134
+ namespace(key) { |k| super(k) }
135
+ end
136
+
137
+ def hscan(key, *args)
138
+ namespace(key) { |k| super(k, *args) }
139
+ end
140
+
141
+ def hscan_each(key, *args)
142
+ namespace(key) { |k| super(k, *args) }
143
+ end
144
+
145
+ def zincrby(key, increment, member)
146
+ namespace(key) { |k| super(k, increment, member) }
147
+ end
148
+
149
+ def zscore(key, member)
150
+ namespace(key) { |k| super(k, member) }
151
+ end
152
+
153
+ def zadd(key, *args)
154
+ namespace(key) { |k| super(k, *args) }
155
+ end
156
+
157
+ def zrem(key, member)
158
+ namespace(key) { |k| super(k, member) }
159
+ end
160
+
161
+ if respond_to?(:ruby2_keywords, true)
162
+ ruby2_keywords :set, :setex, :setnx, :hscan, :hscan_each
163
+ end
164
+
66
165
  def to_s
67
166
  if namespace_str
68
167
  "#{super} with namespace #{namespace_str}"
@@ -19,9 +19,14 @@ class Redis
19
19
 
20
20
  protected
21
21
  def setnx_with_expire(key, value, ttl, options = {})
22
- with_multi_or_pipelined(options) do
23
- setnx(key, value, :raw => true)
24
- expire(key, ttl)
22
+ with_multi_or_pipelined(options) do |transaction|
23
+ if transaction.is_a?(Redis::Store) # for redis < 4.6
24
+ setnx(key, value, :raw => true)
25
+ expire(key, ttl)
26
+ else
27
+ transaction.setnx(key, value)
28
+ transaction.expire(key, ttl)
29
+ end
25
30
  end
26
31
  end
27
32
 
@@ -34,7 +39,7 @@ class Redis
34
39
  end
35
40
 
36
41
  def with_multi_or_pipelined(options, &block)
37
- return pipelined(&block) if options[:avoid_multi_commands]
42
+ return pipelined(&block) if options.key?(:cluster) || options[:avoid_multi_commands]
38
43
  multi(&block)
39
44
  end
40
45
  end
@@ -1,5 +1,5 @@
1
1
  class Redis
2
2
  class Store < self
3
- VERSION = '1.6.0'
3
+ VERSION = '1.9.2'
4
4
  end
5
5
  end
data/redis-store.gemspec CHANGED
@@ -12,18 +12,14 @@ Gem::Specification.new do |s|
12
12
  s.summary = 'Redis stores for Ruby frameworks'
13
13
  s.description = 'Namespaced Rack::Session, Rack::Cache, I18n and cache Redis stores for Ruby web frameworks.'
14
14
 
15
- s.rubyforge_project = 'redis-store'
16
-
17
15
  s.files = `git ls-files`.split("\n")
18
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
- s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
20
16
  s.require_paths = ["lib"]
21
17
  s.license = 'MIT'
22
18
 
23
- s.add_dependency 'redis', '>= 2.2', '< 5'
19
+ s.add_dependency 'redis', '>= 4', '< 6'
24
20
 
25
- s.add_development_dependency 'rake', '~> 10'
26
- s.add_development_dependency 'bundler', '~> 1.3'
21
+ s.add_development_dependency 'rake', '>= 12.3.3'
22
+ s.add_development_dependency 'bundler'
27
23
  s.add_development_dependency 'mocha', '~> 0.14.0'
28
24
  s.add_development_dependency 'minitest', '~> 5'
29
25
  s.add_development_dependency 'git', '~> 1.2'
@@ -19,7 +19,7 @@ describe "Redis::DistributedStore" do
19
19
  dmr = Redis::DistributedStore.new [ :host => "localhost", :port => "6380", :db => "1" ]
20
20
  dmr.ring.nodes.size == 1
21
21
  mr = dmr.ring.nodes.first
22
- mr.to_s.must_equal("Redis Client connected to localhost:6380 against DB 1")
22
+ _(mr.to_s).must_equal("Redis Client connected to localhost:6380 against DB 1")
23
23
  end
24
24
 
25
25
  it "forces reconnection" do
@@ -32,11 +32,11 @@ describe "Redis::DistributedStore" do
32
32
 
33
33
  it "sets an object" do
34
34
  @dmr.set "rabbit", @white_rabbit
35
- @dmr.get("rabbit").must_equal(@white_rabbit)
35
+ _(@dmr.get("rabbit")).must_equal(@white_rabbit)
36
36
  end
37
37
 
38
38
  it "gets an object" do
39
- @dmr.get("rabbit").must_equal(@rabbit)
39
+ _(@dmr.get("rabbit")).must_equal(@rabbit)
40
40
  end
41
41
 
42
42
  it "mget" do
@@ -44,9 +44,9 @@ describe "Redis::DistributedStore" do
44
44
  begin
45
45
  @dmr.mget "rabbit", "rabbit2" do |rabbits|
46
46
  rabbit, rabbit2 = rabbits
47
- rabbits.length.must_equal(2)
48
- rabbit.must_equal(@rabbit)
49
- rabbit2.must_equal(@white_rabbit)
47
+ _(rabbits.length).must_equal(2)
48
+ _(rabbit).must_equal(@rabbit)
49
+ _(rabbit2).must_equal(@white_rabbit)
50
50
  end
51
51
  rescue Redis::Distributed::CannotDistribute
52
52
  # Not supported on redis-rb < 4, and hence Ruby < 2.2.
@@ -57,9 +57,9 @@ describe "Redis::DistributedStore" do
57
57
  @dmr.set "rabbit2", @white_rabbit
58
58
  begin
59
59
  result = @dmr.mapped_mget("rabbit", "rabbit2")
60
- result.keys.must_equal %w[ rabbit rabbit2 ]
61
- result["rabbit"].must_equal @rabbit
62
- result["rabbit2"].must_equal @white_rabbit
60
+ _(result.keys).must_equal %w[ rabbit rabbit2 ]
61
+ _(result["rabbit"]).must_equal @rabbit
62
+ _(result["rabbit2"]).must_equal @white_rabbit
63
63
  rescue Redis::Distributed::CannotDistribute
64
64
  # Not supported on redis-rb < 4, and hence Ruby < 2.2.
65
65
  end
@@ -70,7 +70,7 @@ describe "Redis::DistributedStore" do
70
70
  { :host => "localhost", :port => "6380", :db => 0 },
71
71
  { :host => "localhost", :port => "6381", :db => 0 }
72
72
  ], replicas: 1024
73
- dmr.ring.replicas.must_equal 1024
73
+ _(dmr.ring.replicas).must_equal 1024
74
74
  end
75
75
 
76
76
  it "uses a custom ring object" do
@@ -79,8 +79,8 @@ describe "Redis::DistributedStore" do
79
79
  { :host => "localhost", :port => "6380", :db => 0 },
80
80
  { :host => "localhost", :port => "6381", :db => 0 }
81
81
  ], ring: my_ring
82
- dmr.ring.must_equal my_ring
83
- dmr.ring.nodes.length.must_equal 2
82
+ _(dmr.ring).must_equal my_ring
83
+ _(dmr.ring.nodes.length).must_equal 2
84
84
  end
85
85
 
86
86
  describe '#redis_version' do
@@ -108,4 +108,4 @@ describe "Redis::DistributedStore" do
108
108
  @dmr.get "rabbit"
109
109
  end
110
110
  end
111
- end
111
+ end unless ENV['CI']