dalli 1.1.4 → 1.1.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of dalli might be problematic. Click here for more details.
- data/History.md +14 -0
- data/LICENSE +1 -1
- data/README.md +11 -11
- data/dalli.gemspec +2 -2
- data/lib/active_support/cache/dalli_store.rb +3 -2
- data/lib/dalli/client.rb +4 -4
- data/lib/dalli/version.rb +1 -1
- data/lib/rack/session/dalli.rb +1 -1
- data/test/abstract_unit.rb +0 -1
- data/test/benchmark_test.rb +25 -8
- data/test/helper.rb +7 -4
- data/test/test_active_support.rb +1 -1
- data/test/test_compatibility.rb +4 -4
- data/test/test_dalli.rb +5 -5
- data/test/test_encoding.rb +4 -4
- data/test/test_failover.rb +2 -2
- data/test/test_network.rb +6 -6
- data/test/test_ring.rb +7 -7
- data/test/test_sasl.rb +5 -5
- data/test/test_session_store.rb +1 -2
- data/test/test_synchrony.rb +2 -2
- metadata +13 -13
data/History.md
CHANGED
@@ -1,6 +1,20 @@
|
|
1
1
|
Dalli Changelog
|
2
2
|
=====================
|
3
3
|
|
4
|
+
WARNING: This is the last 1.1.x release. The next release will be 2.0
|
5
|
+
and not compatible with 1.x; lock dalli in your Gemfile so it does not
|
6
|
+
pick up 2.x releases:
|
7
|
+
|
8
|
+
gem 'dalli', '~> 1.1'
|
9
|
+
|
10
|
+
1.1.5
|
11
|
+
=======
|
12
|
+
|
13
|
+
- Coerce input to incr/decr to integer via #to\_i [#165]
|
14
|
+
- Convert test suite to minitest/spec (crigor, #166)
|
15
|
+
- Fix encoding issue with keys [#162]
|
16
|
+
- Fix double namespacing with Rails and dalli\_store. [#160]
|
17
|
+
|
4
18
|
1.1.4
|
5
19
|
=======
|
6
20
|
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -7,13 +7,13 @@ The name is a variant of Salvador Dali for his famous painting [The Persistence
|
|
7
7
|
|
8
8
|
![Persistence of Memory](http://www.virtualdali.com/assets/paintings/31PersistenceOfMemory.jpg)
|
9
9
|
|
10
|
-
Dalli's development
|
10
|
+
Dalli's initial development was sponsored by [CouchBase](http://www.couchbase.com/). Many thanks to them!
|
11
11
|
|
12
12
|
|
13
13
|
Design
|
14
14
|
------------
|
15
15
|
|
16
|
-
I decided to write Dalli after maintaining memcache-client for
|
16
|
+
I decided to write Dalli after maintaining memcache-client for two years for a few specific reasons:
|
17
17
|
|
18
18
|
0. The code is mostly old and gross. The bulk of the code is a single 1000 line .rb file.
|
19
19
|
1. It has a lot of options that are infrequently used which complicate the codebase.
|
@@ -34,12 +34,14 @@ So a few notes. Dalli:
|
|
34
34
|
Supported Ruby versions and implementations
|
35
35
|
------------------------------------------------
|
36
36
|
|
37
|
-
Dalli
|
37
|
+
Dalli should work identically on:
|
38
38
|
|
39
|
-
*
|
40
|
-
* Ruby 1.9.
|
41
|
-
* Ruby 1.8.7
|
42
|
-
* Rubinius 2.0
|
39
|
+
* JRuby 1.6+
|
40
|
+
* Ruby 1.9.2+
|
41
|
+
* Ruby 1.8.7+
|
42
|
+
* Rubinius 2.0
|
43
|
+
|
44
|
+
If you have problems, please enter an issue.
|
43
45
|
|
44
46
|
|
45
47
|
Installation and Usage
|
@@ -163,9 +165,7 @@ Eric Wong - for help using his [kgio](http://unicorn.bogomips.org/kgio/index.htm
|
|
163
165
|
|
164
166
|
Brian Mitchell - for his remix-stash project which was helpful when implementing and testing the binary protocol support.
|
165
167
|
|
166
|
-
[
|
167
|
-
|
168
|
-
[Bootspring](http://bootspring.com) is my Ruby and Rails consulting company. We specialize in Ruby infrastructure, performance and scalability tuning for Rails applications. If you need help, please [contact us](mailto:info@bootspring.com) today.
|
168
|
+
[CouchBase](http://couchbase.com) - for their project sponsorship
|
169
169
|
|
170
170
|
|
171
171
|
Author
|
@@ -177,4 +177,4 @@ Mike Perham, mperham@gmail.com, [mikeperham.com](http://mikeperham.com), [@mperh
|
|
177
177
|
Copyright
|
178
178
|
-----------
|
179
179
|
|
180
|
-
Copyright (c)
|
180
|
+
Copyright (c) 2012 Mike Perham. See LICENSE for details.
|
data/dalli.gemspec
CHANGED
@@ -23,9 +23,9 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.require_paths = ["lib"]
|
24
24
|
s.summary = %q{High performance memcached client for Ruby}
|
25
25
|
s.test_files = Dir.glob("test/**/*")
|
26
|
-
s.add_development_dependency(%q<
|
26
|
+
s.add_development_dependency(%q<mini_shoulda>, [">= 0"])
|
27
27
|
s.add_development_dependency(%q<mocha>, [">= 0"])
|
28
|
-
s.add_development_dependency(%q<rails>, [">= 3.0
|
28
|
+
s.add_development_dependency(%q<rails>, [">= 3.0"])
|
29
29
|
s.add_development_dependency(%q<memcache-client>, [">= 1.8.5"])
|
30
30
|
end
|
31
31
|
|
@@ -36,6 +36,7 @@ module ActiveSupport
|
|
36
36
|
|
37
37
|
addresses << 'localhost:11211' if addresses.empty?
|
38
38
|
options = options.dup
|
39
|
+
options.delete(:namespace)
|
39
40
|
# Extend expiry by stale TTL or else memcached will never return stale data.
|
40
41
|
# See ActiveSupport::Cache#fetch.
|
41
42
|
options[:expires_in] += options[:race_condition_ttl] if options[:expires_in] && options[:race_condition_ttl]
|
@@ -148,8 +149,8 @@ module ActiveSupport
|
|
148
149
|
|
149
150
|
private
|
150
151
|
def escape_key(key)
|
151
|
-
key = key.to_s
|
152
|
-
key = key.force_encoding('
|
152
|
+
key = key.to_s.dup
|
153
|
+
key = key.force_encoding('BINARY') if key.respond_to? :force_encoding
|
153
154
|
key = key.gsub(ESCAPE_KEY_CHARS){|match| "%#{match.getbyte(0).to_s(16).upcase}"}
|
154
155
|
key = "#{key[0, 213]}:md5:#{Digest::MD5.hexdigest(key)}" if key.size > 250
|
155
156
|
key
|
data/lib/dalli/client.rb
CHANGED
@@ -183,7 +183,7 @@ module Dalli
|
|
183
183
|
|
184
184
|
##
|
185
185
|
# Incr adds the given amount to the counter on the memcached server.
|
186
|
-
# Amt must be a positive value.
|
186
|
+
# Amt must be a positive integer value.
|
187
187
|
#
|
188
188
|
# If default is nil, the counter must already exist or the operation
|
189
189
|
# will fail and will return nil. Otherwise this method will return
|
@@ -195,12 +195,12 @@ module Dalli
|
|
195
195
|
def incr(key, amt=1, ttl=nil, default=nil)
|
196
196
|
raise ArgumentError, "Positive values only: #{amt}" if amt < 0
|
197
197
|
ttl ||= @options[:expires_in]
|
198
|
-
perform(:incr, key, amt, ttl, default)
|
198
|
+
perform(:incr, key, amt.to_i, ttl, default)
|
199
199
|
end
|
200
200
|
|
201
201
|
##
|
202
202
|
# Decr subtracts the given amount from the counter on the memcached server.
|
203
|
-
# Amt must be a positive value.
|
203
|
+
# Amt must be a positive integer value.
|
204
204
|
#
|
205
205
|
# memcached counters are unsigned and cannot hold negative values. Calling
|
206
206
|
# decr on a counter which is 0 will just return 0.
|
@@ -215,7 +215,7 @@ module Dalli
|
|
215
215
|
def decr(key, amt=1, ttl=nil, default=nil)
|
216
216
|
raise ArgumentError, "Positive values only: #{amt}" if amt < 0
|
217
217
|
ttl ||= @options[:expires_in]
|
218
|
-
perform(:decr, key, amt, ttl, default)
|
218
|
+
perform(:decr, key, amt.to_i, ttl, default)
|
219
219
|
end
|
220
220
|
|
221
221
|
##
|
data/lib/dalli/version.rb
CHANGED
data/lib/rack/session/dalli.rb
CHANGED
@@ -14,7 +14,7 @@ module Rack
|
|
14
14
|
super
|
15
15
|
mserv = @default_options[:memcache_server]
|
16
16
|
mopts = @default_options.reject{|k,v| !DEFAULT_OPTIONS.include? k }
|
17
|
-
@pool = options[:cache] || Dalli::Client.new(mserv, mopts)
|
17
|
+
@pool = options[:cache] || ::Dalli::Client.new(mserv, mopts)
|
18
18
|
end
|
19
19
|
|
20
20
|
def generate_sid
|
data/test/abstract_unit.rb
CHANGED
@@ -141,7 +141,6 @@ end
|
|
141
141
|
class ActionController::IntegrationTest < ActiveSupport::TestCase
|
142
142
|
def self.build_app(routes = nil)
|
143
143
|
RoutedRackApp.new(routes || ActionDispatch::Routing::RouteSet.new) do |middleware|
|
144
|
-
middleware.use "ActionDispatch::ShowExceptions"
|
145
144
|
middleware.use "ActionDispatch::Callbacks"
|
146
145
|
middleware.use "ActionDispatch::ParamsParser"
|
147
146
|
middleware.use "ActionDispatch::Cookies"
|
data/test/benchmark_test.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'helper'
|
2
2
|
require 'benchmark'
|
3
|
+
require 'active_support/cache/dalli_store'
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
def setup
|
5
|
+
describe 'performance' do
|
6
|
+
before do
|
7
7
|
puts "Testing #{Dalli::VERSION} with #{RUBY_DESCRIPTION}"
|
8
8
|
# We'll use a simple @value to try to avoid spending time in Marshal,
|
9
9
|
# which is a constant penalty that both clients have to pay
|
@@ -21,13 +21,29 @@ class TestBenchmark < Test::Unit::TestCase
|
|
21
21
|
@counter = 'counter'
|
22
22
|
end
|
23
23
|
|
24
|
-
|
24
|
+
should 'run benchmarks' do
|
25
25
|
memcached do
|
26
26
|
|
27
27
|
Benchmark.bm(31) do |x|
|
28
28
|
|
29
29
|
n = 2500
|
30
30
|
|
31
|
+
@ds = ActiveSupport::Cache::DalliStore.new(@servers)
|
32
|
+
x.report("mixed:rails:dalli") do
|
33
|
+
n.times do
|
34
|
+
@ds.read @key1
|
35
|
+
@ds.write @key2, @value
|
36
|
+
@ds.fetch(@key3) { @value }
|
37
|
+
@ds.fetch(@key2) { @value }
|
38
|
+
@ds.fetch(@key1) { @value }
|
39
|
+
@ds.write @key2, @value, :unless_exists => true
|
40
|
+
@ds.delete @key2
|
41
|
+
@ds.increment @counter, 1, :initial => 100
|
42
|
+
@ds.increment @counter, 1, :expires_in => 12
|
43
|
+
@ds.decrement @counter, 1
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
31
47
|
@m = Dalli::Client.new(@servers)
|
32
48
|
x.report("set:plain:dalli") do
|
33
49
|
n.times do
|
@@ -153,18 +169,19 @@ class TestBenchmark < Test::Unit::TestCase
|
|
153
169
|
|
154
170
|
@m = Dalli::Client.new(@servers)
|
155
171
|
x.report("incr:ruby:dalli") do
|
172
|
+
counter = 'foocount'
|
156
173
|
n.times do
|
157
|
-
@m.incr
|
174
|
+
@m.incr counter, 1, 0, 1
|
158
175
|
end
|
159
176
|
n.times do
|
160
|
-
@m.decr
|
177
|
+
@m.decr counter, 1
|
161
178
|
end
|
162
179
|
|
163
|
-
assert_equal 0, @m.incr(
|
180
|
+
assert_equal 0, @m.incr(counter, 0)
|
164
181
|
end
|
165
182
|
|
166
183
|
end
|
167
184
|
end
|
168
185
|
|
169
186
|
end
|
170
|
-
end
|
187
|
+
end
|
data/test/helper.rb
CHANGED
@@ -7,8 +7,10 @@ gem 'rails', WANT_RAILS_VERSION
|
|
7
7
|
require 'rails'
|
8
8
|
puts "Testing with Rails #{Rails.version}"
|
9
9
|
|
10
|
-
require '
|
11
|
-
require '
|
10
|
+
require 'minitest/spec'
|
11
|
+
require 'mini_shoulda'
|
12
|
+
require 'minitest/pride'
|
13
|
+
require 'minitest/autorun'
|
12
14
|
require 'memcached_mock'
|
13
15
|
require 'mocha'
|
14
16
|
|
@@ -18,16 +20,17 @@ require 'logger'
|
|
18
20
|
Dalli.logger = Logger.new(STDOUT)
|
19
21
|
Dalli.logger.level = Logger::ERROR
|
20
22
|
|
21
|
-
class
|
23
|
+
class MiniTest::Spec
|
22
24
|
include MemcachedMock::Helper
|
23
25
|
|
24
26
|
def assert_error(error, regexp=nil, &block)
|
25
|
-
ex =
|
27
|
+
ex = assert_raises(error, &block)
|
26
28
|
assert_match(regexp, ex.message, "#{ex.class.name}: #{ex.message}\n#{ex.backtrace.join("\n\t")}")
|
27
29
|
end
|
28
30
|
|
29
31
|
def with_activesupport
|
30
32
|
require 'active_support/all'
|
33
|
+
require 'active_support/cache/dalli_store'
|
31
34
|
yield
|
32
35
|
end
|
33
36
|
|
data/test/test_active_support.rb
CHANGED
data/test/test_compatibility.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
|
3
|
+
describe 'Compatibility' do
|
4
4
|
|
5
|
-
|
5
|
+
before do
|
6
6
|
require 'dalli/memcache-client'
|
7
7
|
end
|
8
8
|
|
@@ -26,8 +26,8 @@ class TestCompatibility < Test::Unit::TestCase
|
|
26
26
|
|
27
27
|
end
|
28
28
|
|
29
|
-
|
29
|
+
after do
|
30
30
|
Dalli::Client.compatibility_mode = false
|
31
31
|
end
|
32
32
|
|
33
|
-
end
|
33
|
+
end
|
data/test/test_dalli.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'helper'
|
2
2
|
require 'memcached_mock'
|
3
3
|
|
4
|
-
|
4
|
+
describe 'Dalli' do
|
5
5
|
|
6
6
|
should "default to localhost:11211" do
|
7
7
|
dc = Dalli::Client.new
|
@@ -251,7 +251,7 @@ class TestDalli < Test::Unit::TestCase
|
|
251
251
|
|
252
252
|
# rollover the 64-bit value, we'll get something undefined.
|
253
253
|
resp = dc.incr('big', 1)
|
254
|
-
|
254
|
+
0x10000000000000000.wont_equal resp
|
255
255
|
dc.reset
|
256
256
|
end
|
257
257
|
end
|
@@ -273,7 +273,7 @@ class TestDalli < Test::Unit::TestCase
|
|
273
273
|
should "pass a simple smoke test" do
|
274
274
|
memcached do |dc|
|
275
275
|
resp = dc.flush
|
276
|
-
|
276
|
+
resp.wont_be_nil
|
277
277
|
assert_equal [true, true], resp
|
278
278
|
|
279
279
|
assert_equal true, dc.set(:foo, 'bar')
|
@@ -343,7 +343,7 @@ class TestDalli < Test::Unit::TestCase
|
|
343
343
|
cache.set('b', 11)
|
344
344
|
inc = cache.incr('cat', 10, 0, 10)
|
345
345
|
cache.set('f', 'zzz')
|
346
|
-
|
346
|
+
wont_be_nil(cache.cas('f') do |value|
|
347
347
|
value << 'z'
|
348
348
|
end)
|
349
349
|
assert_equal false, cache.add('a', 11)
|
@@ -399,7 +399,7 @@ class TestDalli < Test::Unit::TestCase
|
|
399
399
|
dalli = Dalli::Client.new(dc.instance_variable_get(:@servers), :compression => true)
|
400
400
|
|
401
401
|
value = "0"*1024*1024
|
402
|
-
|
402
|
+
assert_raises Dalli::DalliError, /too large/ do
|
403
403
|
dc.set('verylarge', value)
|
404
404
|
end
|
405
405
|
dalli.set('verylarge', value)
|
data/test/test_encoding.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
require 'helper'
|
3
3
|
require 'memcached_mock'
|
4
4
|
|
5
|
-
|
5
|
+
describe 'Encoding' do
|
6
6
|
|
7
7
|
context 'using a live server' do
|
8
8
|
should 'support i18n content' do
|
@@ -14,7 +14,7 @@ class TestEncoding < Test::Unit::TestCase
|
|
14
14
|
assert_equal utf8, dc.get(key)
|
15
15
|
|
16
16
|
# keys must be ASCII
|
17
|
-
|
17
|
+
assert_raises ArgumentError, /illegal character/ do
|
18
18
|
dc.set(bad_key, utf8)
|
19
19
|
end
|
20
20
|
end
|
@@ -33,11 +33,11 @@ class TestEncoding < Test::Unit::TestCase
|
|
33
33
|
should 'not allow non-ASCII keys' do
|
34
34
|
memcached do |dc|
|
35
35
|
key = 'fooƒ'
|
36
|
-
|
36
|
+
assert_raises ArgumentError do
|
37
37
|
dc.set(key, 'bar')
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
42
|
end
|
43
|
-
end
|
43
|
+
end
|
data/test/test_failover.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
|
3
|
+
describe 'FailOver' do
|
4
4
|
context 'assuming some bad servers' do
|
5
5
|
|
6
6
|
should 'silently reconnect if server hiccups' do
|
@@ -37,7 +37,7 @@ class TestFailover < Test::Unit::TestCase
|
|
37
37
|
|
38
38
|
memcached_kill(29126)
|
39
39
|
|
40
|
-
|
40
|
+
assert_raises Dalli::RingError, :message => "No server available" do
|
41
41
|
dc.set 'foo', 'bar'
|
42
42
|
end
|
43
43
|
end
|
data/test/test_network.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
|
3
|
+
describe 'Network' do
|
4
4
|
|
5
5
|
context 'assuming a bad network' do
|
6
6
|
|
7
7
|
should 'handle no server available' do
|
8
|
-
|
8
|
+
assert_raises Dalli::RingError, :message => "No server available" do
|
9
9
|
dc = Dalli::Client.new 'localhost:19333'
|
10
10
|
dc.get 'foo'
|
11
11
|
end
|
@@ -14,7 +14,7 @@ class TestNetwork < Test::Unit::TestCase
|
|
14
14
|
context 'with a fake server' do
|
15
15
|
should 'handle connection reset' do
|
16
16
|
memcached_mock(lambda {|sock| sock.close }) do
|
17
|
-
|
17
|
+
assert_raises Dalli::RingError, :message => "No server available" do
|
18
18
|
dc = Dalli::Client.new('localhost:19123')
|
19
19
|
dc.get('abc')
|
20
20
|
end
|
@@ -23,7 +23,7 @@ class TestNetwork < Test::Unit::TestCase
|
|
23
23
|
|
24
24
|
should 'handle malformed response' do
|
25
25
|
memcached_mock(lambda {|sock| sock.write('123') }) do
|
26
|
-
|
26
|
+
assert_raises Dalli::RingError, :message => "No server available" do
|
27
27
|
dc = Dalli::Client.new('localhost:19123')
|
28
28
|
dc.get('abc')
|
29
29
|
end
|
@@ -32,7 +32,7 @@ class TestNetwork < Test::Unit::TestCase
|
|
32
32
|
|
33
33
|
should 'handle connect timeouts' do
|
34
34
|
memcached_mock(lambda {|sock| sleep(0.6); sock.close }, :delayed_start) do
|
35
|
-
|
35
|
+
assert_raises Dalli::RingError, :message => "No server available" do
|
36
36
|
dc = Dalli::Client.new('localhost:19123')
|
37
37
|
dc.get('abc')
|
38
38
|
end
|
@@ -41,7 +41,7 @@ class TestNetwork < Test::Unit::TestCase
|
|
41
41
|
|
42
42
|
should 'handle read timeouts' do
|
43
43
|
memcached_mock(lambda {|sock| sleep(0.6); sock.write('giraffe') }) do
|
44
|
-
|
44
|
+
assert_raises Dalli::RingError, :message => "No server available" do
|
45
45
|
dc = Dalli::Client.new('localhost:19123')
|
46
46
|
dc.get('abc')
|
47
47
|
end
|
data/test/test_ring.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
|
3
|
+
describe 'Ring' do
|
4
4
|
|
5
5
|
context 'a ring of servers' do
|
6
6
|
|
@@ -17,7 +17,7 @@ class TestRing < Test::Unit::TestCase
|
|
17
17
|
|
18
18
|
should 'raise when no servers are available/defined' do
|
19
19
|
ring = Dalli::Ring.new([], {})
|
20
|
-
|
20
|
+
assert_raises Dalli::RingError, :message => "No server available" do
|
21
21
|
ring.server_for_key('test')
|
22
22
|
end
|
23
23
|
end
|
@@ -28,7 +28,7 @@ class TestRing < Test::Unit::TestCase
|
|
28
28
|
Dalli::Server.new("localhost:12345"),
|
29
29
|
]
|
30
30
|
ring = Dalli::Ring.new(servers, {})
|
31
|
-
|
31
|
+
assert_raises Dalli::RingError, :message => "No server available" do
|
32
32
|
ring.server_for_key('test')
|
33
33
|
end
|
34
34
|
end
|
@@ -52,7 +52,7 @@ class TestRing < Test::Unit::TestCase
|
|
52
52
|
Dalli::Server.new("localhost:12346"),
|
53
53
|
]
|
54
54
|
ring = Dalli::Ring.new(servers, {})
|
55
|
-
|
55
|
+
assert_raises Dalli::RingError, :message => "No server available" do
|
56
56
|
ring.server_for_key('test')
|
57
57
|
end
|
58
58
|
end
|
@@ -71,12 +71,12 @@ class TestRing < Test::Unit::TestCase
|
|
71
71
|
end
|
72
72
|
|
73
73
|
should 'detect when a dead server is up again' do
|
74
|
-
memcached(
|
74
|
+
memcached(19997) do
|
75
75
|
down_retry_delay = 0.5
|
76
|
-
dc = Dalli::Client.new(['localhost:
|
76
|
+
dc = Dalli::Client.new(['localhost:19997', 'localhost:19998'], :down_retry_delay => down_retry_delay)
|
77
77
|
assert_equal 1, dc.stats.values.compact.count
|
78
78
|
|
79
|
-
memcached(
|
79
|
+
memcached(19998) do
|
80
80
|
assert_equal 2, dc.stats.values.compact.count
|
81
81
|
end
|
82
82
|
end
|
data/test/test_sasl.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
|
3
|
+
describe 'Sasl' do
|
4
4
|
|
5
5
|
context 'a server requiring authentication' do
|
6
6
|
|
7
7
|
context 'without authentication credentials' do
|
8
|
-
|
8
|
+
before do
|
9
9
|
ENV['MEMCACHE_USERNAME'] = 'foo'
|
10
10
|
ENV['MEMCACHE_PASSWORD'] = 'wrongpwd'
|
11
11
|
end
|
12
12
|
|
13
|
-
|
13
|
+
after do
|
14
14
|
ENV['MEMCACHE_USERNAME'] = nil
|
15
15
|
ENV['MEMCACHE_PASSWORD'] = nil
|
16
16
|
end
|
@@ -43,12 +43,12 @@ class TestSasl < Test::Unit::TestCase
|
|
43
43
|
#
|
44
44
|
# with password 'testtest'
|
45
45
|
context 'in an authenticated environment' do
|
46
|
-
|
46
|
+
before do
|
47
47
|
ENV['MEMCACHE_USERNAME'] = 'testuser'
|
48
48
|
ENV['MEMCACHE_PASSWORD'] = 'testtest'
|
49
49
|
end
|
50
50
|
|
51
|
-
|
51
|
+
after do
|
52
52
|
ENV['MEMCACHE_USERNAME'] = nil
|
53
53
|
ENV['MEMCACHE_PASSWORD'] = nil
|
54
54
|
end
|
data/test/test_session_store.rb
CHANGED
@@ -216,10 +216,9 @@ class TestSessionStore < ActionController::IntegrationTest
|
|
216
216
|
|
217
217
|
@app = self.class.build_app(set) do |middleware|
|
218
218
|
middleware.use ActionDispatch::Session::DalliStore, options
|
219
|
-
middleware.delete "ActionDispatch::ShowExceptions"
|
220
219
|
end
|
221
220
|
|
222
221
|
yield
|
223
222
|
end
|
224
223
|
end
|
225
|
-
end
|
224
|
+
end
|
data/test/test_synchrony.rb
CHANGED
@@ -4,7 +4,7 @@ if defined?(RUBY_ENGINE) && RUBY_ENGINE != 'jruby'
|
|
4
4
|
begin
|
5
5
|
require 'em-spec/test'
|
6
6
|
|
7
|
-
|
7
|
+
describe 'Synchrony' do
|
8
8
|
include EM::TestHelper
|
9
9
|
|
10
10
|
context 'using a live server' do
|
@@ -156,7 +156,7 @@ class TestSynchrony < Test::Unit::TestCase
|
|
156
156
|
dalli = Dalli::Client.new(dc.instance_variable_get(:@servers), :compression => true, :async => true)
|
157
157
|
|
158
158
|
value = "0"*1024*1024
|
159
|
-
|
159
|
+
assert_raises Dalli::DalliError, /too large/ do
|
160
160
|
dc.set('verylarge', value)
|
161
161
|
end
|
162
162
|
dalli.set('verylarge', value)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dalli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-02-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
16
|
-
requirement: &
|
15
|
+
name: mini_shoulda
|
16
|
+
requirement: &70232123468080 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70232123468080
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: mocha
|
27
|
-
requirement: &
|
27
|
+
requirement: &70232123467180 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,21 +32,21 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70232123467180
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rails
|
38
|
-
requirement: &
|
38
|
+
requirement: &70232123465920 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 3.0
|
43
|
+
version: '3.0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70232123465920
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: memcache-client
|
49
|
-
requirement: &
|
49
|
+
requirement: &70232123465100 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: 1.8.5
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70232123465100
|
58
58
|
description: High performance memcached client for Ruby
|
59
59
|
email: mperham@gmail.com
|
60
60
|
executables: []
|
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
117
|
version: '0'
|
118
118
|
requirements: []
|
119
119
|
rubyforge_project:
|
120
|
-
rubygems_version: 1.8.
|
120
|
+
rubygems_version: 1.8.15
|
121
121
|
signing_key:
|
122
122
|
specification_version: 3
|
123
123
|
summary: High performance memcached client for Ruby
|