dalli 1.0.2 → 1.0.3
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 +7 -0
- data/Performance.md +60 -18
- data/README.md +1 -1
- data/Rakefile +5 -1
- data/lib/dalli.rb +2 -0
- data/lib/dalli/client.rb +1 -0
- data/lib/dalli/server.rb +15 -5
- data/lib/dalli/socket.rb +11 -7
- data/lib/dalli/version.rb +1 -1
- data/test/test_active_support.rb +8 -0
- data/test/test_session_store.rb +3 -3
- metadata +104 -124
data/History.md
CHANGED
data/Performance.md
CHANGED
@@ -10,26 +10,68 @@ You can optionally use kgio to give Dalli a small, 10-20% performance boost: gem
|
|
10
10
|
|
11
11
|
Testing 1.8.5 with ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]
|
12
12
|
user system total real
|
13
|
-
set:plain:memcache
|
14
|
-
set:ruby:memcache
|
15
|
-
get:plain:memcache
|
16
|
-
get:ruby:memcache
|
17
|
-
multiget:ruby:memcache
|
18
|
-
missing:ruby:memcache
|
19
|
-
mixed:ruby:memcache
|
13
|
+
set:plain:memcache 2.070000 0.340000 2.410000 ( 2.611709)
|
14
|
+
set:ruby:memcache 1.990000 0.330000 2.320000 ( 2.869653)
|
15
|
+
get:plain:memcache 2.290000 0.360000 2.650000 ( 2.926425)
|
16
|
+
get:ruby:memcache 2.360000 0.350000 2.710000 ( 2.951604)
|
17
|
+
multiget:ruby:memcache 1.050000 0.120000 1.170000 ( 1.285787)
|
18
|
+
missing:ruby:memcache 1.990000 0.330000 2.320000 ( 2.567641)
|
19
|
+
mixed:ruby:memcache 4.390000 0.670000 5.060000 ( 5.721000)
|
20
|
+
incr:ruby:memcache 0.700000 0.120000 0.820000 ( 0.842896)
|
21
|
+
|
22
|
+
*libmemcached*:
|
23
|
+
|
24
|
+
Testing 1.1.2 with ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]
|
25
|
+
user system total real
|
26
|
+
set:plain:libm 0.120000 0.220000 0.340000 ( 0.847521)
|
27
|
+
setq:plain:libm 0.030000 0.000000 0.030000 ( 0.126944)
|
28
|
+
set:ruby:libm 0.220000 0.250000 0.470000 ( 1.102789)
|
29
|
+
get:plain:libm 0.140000 0.230000 0.370000 ( 0.813998)
|
30
|
+
get:ruby:libm 0.210000 0.240000 0.450000 ( 1.025994)
|
31
|
+
multiget:ruby:libm 0.100000 0.080000 0.180000 ( 0.322217)
|
32
|
+
missing:ruby:libm 0.250000 0.240000 0.490000 ( 1.049972)
|
33
|
+
mixed:ruby:libm 0.400000 0.410000 0.810000 ( 2.172349)
|
34
|
+
mixedq:ruby:libm 0.410000 0.360000 0.770000 ( 1.516718)
|
35
|
+
incr:ruby:libm 0.080000 0.340000 0.420000 ( 1.685931)
|
20
36
|
|
21
37
|
*dalli*:
|
22
38
|
|
23
39
|
Using kgio socket IO
|
24
|
-
Testing 1.0.
|
40
|
+
Testing 1.0.2 with ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]
|
41
|
+
user system total real
|
42
|
+
set:plain:dalli 0.850000 0.320000 1.170000 ( 1.691393)
|
43
|
+
setq:plain:dalli 0.500000 0.130000 0.630000 ( 0.651227)
|
44
|
+
set:ruby:dalli 0.900000 0.330000 1.230000 ( 1.865228)
|
45
|
+
get:plain:dalli 0.990000 0.390000 1.380000 ( 1.929994)
|
46
|
+
get:ruby:dalli 0.950000 0.370000 1.320000 ( 1.844251)
|
47
|
+
multiget:ruby:dalli 0.790000 0.300000 1.090000 ( 1.227073)
|
48
|
+
missing:ruby:dalli 0.810000 0.370000 1.180000 ( 1.627039)
|
49
|
+
mixed:ruby:dalli 1.850000 0.710000 2.560000 ( 3.555032)
|
50
|
+
mixedq:ruby:dalli 1.840000 0.610000 2.450000 ( 2.945982)
|
51
|
+
incr:ruby:dalli 0.310000 0.120000 0.430000 ( 0.616465)
|
52
|
+
|
53
|
+
Testing 1.0.2 with rubinius 1.3.0dev (1.8.7 382e813f xxxx-xx-xx JI) [x86_64-apple-darwin10.6.0]
|
54
|
+
user system total real
|
55
|
+
set:plain:dalli 2.800581 0.329360 3.129941 ( 5.186546)
|
56
|
+
setq:plain:dalli 1.064253 0.138044 1.202297 ( 1.280355)
|
57
|
+
set:ruby:dalli 2.220885 0.262619 2.483504 ( 2.778118)
|
58
|
+
get:plain:dalli 2.291344 0.280490 2.571834 ( 2.948004)
|
59
|
+
get:ruby:dalli 2.148900 0.274477 2.423377 ( 2.425808)
|
60
|
+
multiget:ruby:dalli 1.724193 0.249145 1.973338 ( 2.158673)
|
61
|
+
missing:ruby:dalli 1.881502 0.272610 2.154112 ( 2.208384)
|
62
|
+
mixed:ruby:dalli 4.292620 0.533768 4.826388 ( 4.830238)
|
63
|
+
mixedq:ruby:dalli 4.076032 0.501442 4.577474 ( 4.583800)
|
64
|
+
incr:ruby:dalli 0.691467 0.091475 0.782942 ( 0.931674)
|
65
|
+
|
66
|
+
Testing 1.0.2 with rubinius 1.2.0 (1.8.7 release 2010-12-21 JI) [x86_64-apple-darwin10.6.0]
|
25
67
|
user system total real
|
26
|
-
set:plain:dalli
|
27
|
-
setq:plain:dalli 0.
|
28
|
-
set:ruby:dalli
|
29
|
-
get:plain:dalli
|
30
|
-
get:ruby:dalli
|
31
|
-
multiget:ruby:dalli
|
32
|
-
missing:ruby:dalli
|
33
|
-
mixed:ruby:dalli
|
34
|
-
mixedq:ruby:dalli
|
35
|
-
incr:ruby:dalli 0.
|
68
|
+
set:plain:dalli 6.586927 0.331545 6.918472 ( 4.628652)
|
69
|
+
setq:plain:dalli 0.930905 0.129008 1.059913 ( 1.016105)
|
70
|
+
set:ruby:dalli 2.702486 0.283004 2.985490 ( 2.690442)
|
71
|
+
get:plain:dalli 2.740202 0.291353 3.031555 ( 2.722746)
|
72
|
+
get:ruby:dalli 1.979379 0.282986 2.262365 ( 2.264118)
|
73
|
+
multiget:ruby:dalli 1.887086 0.249799 2.136885 ( 1.803230)
|
74
|
+
missing:ruby:dalli 1.882662 0.278019 2.160681 ( 2.113429)
|
75
|
+
mixed:ruby:dalli 3.969242 0.553361 4.522603 ( 4.524504)
|
76
|
+
mixedq:ruby:dalli 3.520755 0.475669 3.996424 ( 3.997405)
|
77
|
+
incr:ruby:dalli 0.849998 0.094012 0.944010 ( 0.884001)
|
data/README.md
CHANGED
@@ -44,7 +44,7 @@ Remember, Dalli **requires** memcached 1.4+. You can check the version with `me
|
|
44
44
|
dc.set('abc', 123)
|
45
45
|
value = dc.get('abc')
|
46
46
|
|
47
|
-
The test suite requires memcached 1.4.3+ with SASL enabled (
|
47
|
+
The test suite requires memcached 1.4.3+ with SASL enabled (brew install memcached --enable-sasl ; mv /usr/bin/memcache /usr/bin/memcached.old). Currently only supports the PLAIN mechanism.
|
48
48
|
|
49
49
|
Dalli has no runtime dependencies and never will. You can optionally install the 'kgio' gem to
|
50
50
|
give Dalli a 10-20% performance boost.
|
data/Rakefile
CHANGED
data/lib/dalli.rb
CHANGED
@@ -18,6 +18,8 @@ module Dalli
|
|
18
18
|
class NetworkError < DalliError; end
|
19
19
|
# no server available/alive error
|
20
20
|
class RingError < DalliError; end
|
21
|
+
# application error in marshalling
|
22
|
+
class MarshalError < DalliError; end
|
21
23
|
|
22
24
|
def self.logger
|
23
25
|
@logger ||= (rails_logger || default_logger)
|
data/lib/dalli/client.rb
CHANGED
data/lib/dalli/server.rb
CHANGED
@@ -34,6 +34,8 @@ module Dalli
|
|
34
34
|
@down_at = nil
|
35
35
|
@last_down_at = nil
|
36
36
|
@options = DEFAULTS.merge(options)
|
37
|
+
@sock = nil
|
38
|
+
@msg = nil
|
37
39
|
end
|
38
40
|
|
39
41
|
# Chokepoint method for instrumentation
|
@@ -43,13 +45,13 @@ module Dalli
|
|
43
45
|
send(op, *args)
|
44
46
|
rescue Dalli::NetworkError
|
45
47
|
raise
|
46
|
-
rescue Dalli::
|
47
|
-
|
48
|
-
rescue TypeError => ex
|
49
|
-
Dalli.logger.error "Application bug: #{ex.class.name}: #{ex.message}"
|
48
|
+
rescue Dalli::MarshalError => ex
|
49
|
+
Dalli.logger.error "Marshalling error for key '#{args.first}': #{ex.message}"
|
50
50
|
Dalli.logger.error "You are trying to cache a Ruby object which cannot be serialized to memcached."
|
51
51
|
Dalli.logger.error ex.backtrace.join("\n\t")
|
52
52
|
false
|
53
|
+
rescue Dalli::DalliError
|
54
|
+
raise
|
53
55
|
rescue Exception => ex
|
54
56
|
Dalli.logger.error "Unexpected exception in Dalli: #{ex.class.name}: #{ex.message}"
|
55
57
|
Dalli.logger.error "This is a bug in Dalli, please enter an issue in Github if it does not already exist."
|
@@ -253,7 +255,15 @@ module Dalli
|
|
253
255
|
marshalled = false
|
254
256
|
value = unless options && options[:raw]
|
255
257
|
marshalled = true
|
256
|
-
|
258
|
+
begin
|
259
|
+
Marshal.dump(value)
|
260
|
+
rescue => ex
|
261
|
+
# Marshalling can throw several different types of generic Ruby exceptions.
|
262
|
+
# Convert to a specific exception so we can special case it higher up the stack.
|
263
|
+
exc = Dalli::MarshalError.new(ex.message)
|
264
|
+
exc.set_backtrace ex.backtrace
|
265
|
+
raise exc
|
266
|
+
end
|
257
267
|
else
|
258
268
|
value.to_s
|
259
269
|
end
|
data/lib/dalli/socket.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
begin
|
2
2
|
require 'kgio'
|
3
|
-
puts "Using kgio socket IO" if $TESTING
|
3
|
+
puts "Using kgio socket IO" if defined?($TESTING)
|
4
4
|
|
5
5
|
class Dalli::Server::KSocket < Kgio::Socket
|
6
6
|
attr_accessor :options
|
@@ -41,26 +41,30 @@ begin
|
|
41
41
|
|
42
42
|
rescue LoadError
|
43
43
|
|
44
|
-
puts "Using standard socket IO (#{RUBY_DESCRIPTION})" if $TESTING
|
44
|
+
puts "Using standard socket IO (#{RUBY_DESCRIPTION})" if defined?($TESTING)
|
45
45
|
if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
|
46
46
|
|
47
47
|
class Dalli::Server::KSocket < TCPSocket
|
48
|
+
attr_accessor :options
|
49
|
+
|
48
50
|
def self.open(host, port, options = {})
|
49
|
-
new(host, port)
|
51
|
+
sock = new(host, port)
|
52
|
+
sock.options = { :host => host, :port => port }.merge(options)
|
53
|
+
sock
|
50
54
|
end
|
51
55
|
|
52
56
|
def readfull(count)
|
53
57
|
value = ''
|
54
58
|
begin
|
55
59
|
loop do
|
56
|
-
value <<
|
60
|
+
value << read_nonblock(count - value.bytesize)
|
57
61
|
break if value.bytesize == count
|
58
62
|
end
|
59
63
|
rescue Errno::EAGAIN, Errno::EWOULDBLOCK
|
60
64
|
if IO.select([self], nil, nil, options[:timeout])
|
61
65
|
retry
|
62
66
|
else
|
63
|
-
raise Timeout::Error, "IO timeout"
|
67
|
+
raise Timeout::Error, "IO timeout: #{options.inspect}"
|
64
68
|
end
|
65
69
|
end
|
66
70
|
value
|
@@ -77,7 +81,7 @@ rescue LoadError
|
|
77
81
|
# All this ugly code to ensure proper Socket connect timeout
|
78
82
|
addr = Socket.getaddrinfo(host, nil)
|
79
83
|
sock = new(Socket.const_get(addr[0][0]), Socket::SOCK_STREAM, 0)
|
80
|
-
sock.options = options
|
84
|
+
sock.options = { :host => host, :port => port }.merge(options)
|
81
85
|
begin
|
82
86
|
sock.connect_nonblock(Socket.pack_sockaddr_in(port, addr[0][3]))
|
83
87
|
rescue Errno::EINPROGRESS
|
@@ -101,7 +105,7 @@ rescue LoadError
|
|
101
105
|
if IO.select([self], nil, nil, options[:timeout])
|
102
106
|
retry
|
103
107
|
else
|
104
|
-
raise Timeout::Error, "IO timeout"
|
108
|
+
raise Timeout::Error, "IO timeout: #{options.inspect}"
|
105
109
|
end
|
106
110
|
end
|
107
111
|
value
|
data/lib/dalli/version.rb
CHANGED
data/test/test_active_support.rb
CHANGED
@@ -129,6 +129,14 @@ class TestActiveSupport < Test::Unit::TestCase
|
|
129
129
|
assert_equal 2, @dalli.increment('counter')
|
130
130
|
assert_equal 1, @dalli.decrement('counter')
|
131
131
|
assert_equal "1", @dalli.read('counter', :raw => true)
|
132
|
+
|
133
|
+
assert_equal 0, @mc.increment('counterX')
|
134
|
+
assert_equal 0, @mc.increment('counterX')
|
135
|
+
assert_equal nil, @mc.read('counterX')
|
136
|
+
|
137
|
+
assert_equal 1, @dalli.increment('counterX')
|
138
|
+
assert_equal 2, @dalli.increment('counterX')
|
139
|
+
assert_equal 2, @dalli.read('counterX', :raw => true).to_i
|
132
140
|
end
|
133
141
|
end
|
134
142
|
end
|
data/test/test_session_store.rb
CHANGED
@@ -52,7 +52,7 @@ class TestSessionStore < ActionController::IntegrationTest
|
|
52
52
|
|
53
53
|
begin
|
54
54
|
require 'dalli'
|
55
|
-
memcache = Dalli::Client.new('
|
55
|
+
memcache = Dalli::Client.new('127.0.0.1:11211')
|
56
56
|
memcache.set('ping', '')
|
57
57
|
|
58
58
|
def test_setting_and_getting_session_value
|
@@ -207,12 +207,12 @@ class TestSessionStore < ActionController::IntegrationTest
|
|
207
207
|
end
|
208
208
|
end
|
209
209
|
rescue LoadError, RuntimeError
|
210
|
-
$stderr.puts "Skipping TestSessionStore tests. Start memcached and try again
|
210
|
+
$stderr.puts "Skipping TestSessionStore tests. Start memcached and try again: #{$!.message}"
|
211
211
|
end
|
212
212
|
|
213
213
|
private
|
214
214
|
def with_test_route_set(options = {})
|
215
|
-
options = {:key => '_session_id'}.merge(options)
|
215
|
+
options = {:key => '_session_id', :memcache_server => '127.0.0.1:11211'}.merge(options)
|
216
216
|
with_routing do |set|
|
217
217
|
set.draw do |map|
|
218
218
|
match ':action', :to => ::TestSessionStore::TestController
|
metadata
CHANGED
@@ -1,78 +1,62 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dalli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 1
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
version: 1.0.2
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.3
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
|
-
- Mike Perham
|
8
|
+
- Mike Perham
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
13
|
+
date: 2011-03-18 00:00:00 -07:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ">="
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
segments:
|
70
|
-
- 1
|
71
|
-
- 8
|
72
|
-
- 5
|
73
|
-
version: 1.8.5
|
74
|
-
type: :development
|
75
|
-
version_requirements: *id004
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: shoulda
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: "0"
|
25
|
+
type: :development
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: mocha
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: "0"
|
36
|
+
type: :development
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: rails
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 3.0.1
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: memcache-client
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: 1.8.5
|
58
|
+
type: :development
|
59
|
+
version_requirements: *id004
|
76
60
|
description: High performance memcached client for Ruby
|
77
61
|
email: mperham@gmail.com
|
78
62
|
executables: []
|
@@ -82,83 +66,79 @@ extensions: []
|
|
82
66
|
extra_rdoc_files: []
|
83
67
|
|
84
68
|
files:
|
85
|
-
- lib/
|
86
|
-
- lib/
|
87
|
-
- lib/
|
88
|
-
- lib/active_support/cache/
|
89
|
-
- lib/
|
90
|
-
- lib/dalli/
|
91
|
-
- lib/dalli/
|
92
|
-
- lib/dalli/
|
93
|
-
- lib/dalli/
|
94
|
-
- lib/dalli/
|
95
|
-
- lib/dalli/
|
96
|
-
- lib/dalli/
|
97
|
-
- lib/dalli.rb
|
98
|
-
- LICENSE
|
99
|
-
- README.md
|
100
|
-
- History.md
|
101
|
-
- Rakefile
|
102
|
-
- Gemfile
|
103
|
-
- dalli.gemspec
|
104
|
-
- Performance.md
|
105
|
-
- Upgrade.md
|
106
|
-
- test/abstract_unit.rb
|
107
|
-
- test/benchmark_test.rb
|
108
|
-
- test/helper.rb
|
109
|
-
- test/memcached_mock.rb
|
110
|
-
- test/test_active_support.rb
|
111
|
-
- test/test_compatibility.rb
|
112
|
-
- test/test_dalli.rb
|
113
|
-
- test/test_encoding.rb
|
114
|
-
- test/test_failover.rb
|
115
|
-
- test/test_network.rb
|
116
|
-
- test/test_ring.rb
|
117
|
-
- test/test_sasl.rb
|
118
|
-
- test/test_session_store.rb
|
69
|
+
- lib/dalli.rb
|
70
|
+
- lib/action_controller/session/dalli_store.rb
|
71
|
+
- lib/action_dispatch/middleware/session/dalli_store.rb
|
72
|
+
- lib/active_support/cache/dalli_store.rb
|
73
|
+
- lib/active_support/cache/dalli_store23.rb
|
74
|
+
- lib/dalli/client.rb
|
75
|
+
- lib/dalli/compatibility.rb
|
76
|
+
- lib/dalli/memcache-client.rb
|
77
|
+
- lib/dalli/options.rb
|
78
|
+
- lib/dalli/ring.rb
|
79
|
+
- lib/dalli/server.rb
|
80
|
+
- lib/dalli/socket.rb
|
81
|
+
- lib/dalli/version.rb
|
82
|
+
- LICENSE
|
83
|
+
- README.md
|
84
|
+
- History.md
|
85
|
+
- Rakefile
|
86
|
+
- Gemfile
|
87
|
+
- dalli.gemspec
|
88
|
+
- Performance.md
|
89
|
+
- Upgrade.md
|
90
|
+
- test/abstract_unit.rb
|
91
|
+
- test/benchmark_test.rb
|
92
|
+
- test/helper.rb
|
93
|
+
- test/memcached_mock.rb
|
94
|
+
- test/test_active_support.rb
|
95
|
+
- test/test_compatibility.rb
|
96
|
+
- test/test_dalli.rb
|
97
|
+
- test/test_encoding.rb
|
98
|
+
- test/test_failover.rb
|
99
|
+
- test/test_network.rb
|
100
|
+
- test/test_ring.rb
|
101
|
+
- test/test_sasl.rb
|
102
|
+
- test/test_session_store.rb
|
119
103
|
has_rdoc: true
|
120
104
|
homepage: http://github.com/mperham/dalli
|
121
105
|
licenses: []
|
122
106
|
|
123
107
|
post_install_message:
|
124
108
|
rdoc_options:
|
125
|
-
- --charset=UTF-8
|
109
|
+
- --charset=UTF-8
|
126
110
|
require_paths:
|
127
|
-
- lib
|
111
|
+
- lib
|
128
112
|
required_ruby_version: !ruby/object:Gem::Requirement
|
129
113
|
none: false
|
130
114
|
requirements:
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
- 0
|
135
|
-
version: "0"
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: "0"
|
136
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
119
|
none: false
|
138
120
|
requirements:
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
- 0
|
143
|
-
version: "0"
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: "0"
|
144
124
|
requirements: []
|
145
125
|
|
146
126
|
rubyforge_project:
|
147
|
-
rubygems_version: 1.
|
127
|
+
rubygems_version: 1.5.1
|
148
128
|
signing_key:
|
149
129
|
specification_version: 3
|
150
130
|
summary: High performance memcached client for Ruby
|
151
131
|
test_files:
|
152
|
-
- test/abstract_unit.rb
|
153
|
-
- test/benchmark_test.rb
|
154
|
-
- test/helper.rb
|
155
|
-
- test/memcached_mock.rb
|
156
|
-
- test/test_active_support.rb
|
157
|
-
- test/test_compatibility.rb
|
158
|
-
- test/test_dalli.rb
|
159
|
-
- test/test_encoding.rb
|
160
|
-
- test/test_failover.rb
|
161
|
-
- test/test_network.rb
|
162
|
-
- test/test_ring.rb
|
163
|
-
- test/test_sasl.rb
|
164
|
-
- test/test_session_store.rb
|
132
|
+
- test/abstract_unit.rb
|
133
|
+
- test/benchmark_test.rb
|
134
|
+
- test/helper.rb
|
135
|
+
- test/memcached_mock.rb
|
136
|
+
- test/test_active_support.rb
|
137
|
+
- test/test_compatibility.rb
|
138
|
+
- test/test_dalli.rb
|
139
|
+
- test/test_encoding.rb
|
140
|
+
- test/test_failover.rb
|
141
|
+
- test/test_network.rb
|
142
|
+
- test/test_ring.rb
|
143
|
+
- test/test_sasl.rb
|
144
|
+
- test/test_session_store.rb
|