memcache 1.2.0 → 1.2.1
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.
- data/.gitignore +12 -1
- data/README.rdoc +65 -11
- data/Rakefile +14 -0
- data/VERSION.yml +2 -2
- data/bench/benchmark.rb +126 -0
- data/ext/extconf.rb +51 -2
- data/ext/libmemcached-0.38.tar.gz +0 -0
- data/ext/native_server.c +575 -0
- data/lib/memcache/base.rb +65 -0
- data/lib/memcache/local_server.rb +7 -53
- data/lib/memcache/migration.rb +7 -6
- data/lib/memcache/null_server.rb +1 -1
- data/lib/memcache/pg_server.rb +37 -20
- data/lib/memcache/{segmented_server.rb → segmented.rb} +25 -15
- data/lib/memcache/server.rb +44 -56
- data/lib/memcache.rb +131 -83
- data/test/memcache_local_server_test.rb +1 -1
- data/test/memcache_native_server_test.rb +31 -0
- data/test/memcache_null_server_test.rb +16 -8
- data/test/memcache_segmented_native_server_test.rb +18 -0
- data/test/memcache_segmented_server_test.rb +6 -9
- data/test/memcache_server_test.rb +9 -11
- data/test/memcache_server_test_helper.rb +89 -49
- data/test/memcache_test.rb +11 -19
- data/test/test_helper.rb +34 -9
- metadata +12 -4
- data/memcache.gemspec +0 -69
@@ -1,34 +1,74 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/test_helper'
|
2
2
|
|
3
3
|
module MemcacheServerTestHelper
|
4
|
-
def
|
5
|
-
|
4
|
+
def test_prefix
|
5
|
+
assert_equal nil, m.prefix = nil
|
6
|
+
assert_equal nil, m.prefix
|
7
|
+
|
8
|
+
m.set('1', 'baz', 0)
|
9
|
+
m.set('2', 'bar', 0)
|
10
|
+
|
11
|
+
assert_equal nil, m.prefix
|
12
|
+
assert_equal 'foo', m.prefix = 'foo'
|
13
|
+
assert_equal 'foo', m.prefix
|
14
|
+
|
15
|
+
m.set('2', 'foo', 0)
|
16
|
+
assert_equal nil, m.get('1')
|
17
|
+
assert_equal 'foo', m.get('2')
|
18
|
+
assert_equal({'2'=>'foo'}, m.get(['1', '2']))
|
19
|
+
|
20
|
+
assert_equal 'bar:', m.prefix = 'bar:'
|
21
|
+
assert_equal 'bar:', m.prefix
|
22
|
+
|
23
|
+
assert_equal nil, m.prefix = nil
|
24
|
+
assert_equal nil, m.prefix
|
25
|
+
|
26
|
+
assert_equal 'baz', m.get('1')
|
27
|
+
assert_equal 'bar', m.get('2')
|
28
|
+
assert_equal({'1'=>'baz','2'=>'bar'}, m.get(['1', '2']))
|
6
29
|
end
|
7
30
|
|
8
31
|
def test_set_and_get
|
9
|
-
m.set(2, 'foo', 0)
|
10
|
-
|
32
|
+
assert_equal 'foo', m.set('2', 'foo', 0)
|
33
|
+
|
11
34
|
assert_equal 'foo', m.get('2')
|
12
35
|
assert_equal 'foo', m.get('2')
|
13
36
|
|
14
|
-
m.set(2, 'bar', 0)
|
37
|
+
assert_equal 'bar', m.set('2', 'bar', 0)
|
15
38
|
|
16
39
|
assert_equal 'bar', m.get('2')
|
17
40
|
assert_equal 'bar', m.get('2')
|
18
41
|
end
|
19
42
|
|
43
|
+
def test_spaces_in_keys
|
44
|
+
assert_equal '1', m.set('foo bar', '1', 0)
|
45
|
+
|
46
|
+
assert_equal '1', m.get('foo bar')
|
47
|
+
assert_equal '1', m.get('foo bar')
|
48
|
+
|
49
|
+
assert_equal '2', m.set('foo bar', '2', 0)
|
50
|
+
|
51
|
+
assert_equal '2', m.get('foo bar')
|
52
|
+
assert_equal '2', m.get('foo bar')
|
53
|
+
|
54
|
+
assert_equal '8', m.set('foo baz', '8', 0)
|
55
|
+
|
56
|
+
expected = { 'foo bar' => '2', 'foo baz' => '8' }
|
57
|
+
assert_equal expected, m.get(['foo bar','foo baz'])
|
58
|
+
end
|
59
|
+
|
20
60
|
def test_expiry
|
21
|
-
m.set('foo', 'foo', 1)
|
61
|
+
assert_equal 'foo', m.set('foo', 'foo', 1)
|
22
62
|
assert_equal 'foo', m.get('foo')
|
23
63
|
|
24
|
-
m.add('bar', 'bar', 1)
|
64
|
+
assert_equal 'bar', m.add('bar', 'bar', 1)
|
25
65
|
assert_equal 'bar', m.get('bar')
|
26
66
|
|
27
|
-
m.set('baz', '')
|
28
|
-
m.replace('baz', 'baz',
|
67
|
+
assert_equal '', m.set('baz', '')
|
68
|
+
assert_equal 'baz', m.replace('baz', 'baz', 1)
|
29
69
|
assert_equal 'baz', m.get('baz')
|
30
70
|
|
31
|
-
m.set('bam', 'bap', Time.now + 1)
|
71
|
+
assert_equal 'bap', m.set('bam', 'bap', (Time.now + 1).to_i)
|
32
72
|
assert_equal 'bap', m.get('bam')
|
33
73
|
|
34
74
|
sleep 2
|
@@ -41,114 +81,114 @@ module MemcacheServerTestHelper
|
|
41
81
|
|
42
82
|
def test_add_and_replace
|
43
83
|
# Replace should do nothing if key doesn't exist.
|
44
|
-
m.replace('foo', 'bar')
|
84
|
+
assert_equal nil, m.replace('foo', 'bar')
|
45
85
|
assert_equal nil, m.get('foo')
|
46
86
|
|
47
87
|
# Add should only work if key doesn't exist.
|
48
|
-
m.add('foo', 'foo')
|
88
|
+
assert_equal 'foo', m.add('foo', 'foo')
|
49
89
|
assert_equal 'foo', m.get('foo')
|
50
90
|
assert_equal nil, m.add('foo', 'bar')
|
51
91
|
assert_equal 'foo', m.get('foo')
|
52
|
-
|
92
|
+
|
53
93
|
# Replace should only work if key doesn't exist.
|
54
|
-
m.replace('foo', 'bar')
|
94
|
+
assert_equal 'bar', m.replace('foo', 'bar')
|
55
95
|
assert_equal 'bar', m.get('foo')
|
56
96
|
end
|
57
97
|
|
58
98
|
def test_append_and_prepend
|
59
|
-
m.append('foo', 'bar')
|
99
|
+
assert_equal false, m.append('foo', 'bar')
|
60
100
|
assert_equal nil, m.get('foo')
|
61
101
|
|
62
102
|
m.set('foo', 'foo')
|
63
|
-
m.append('foo', 'bar')
|
103
|
+
assert_equal true, m.append('foo', 'bar')
|
64
104
|
assert_equal 'foobar', m.get('foo')
|
65
105
|
|
66
|
-
m.prepend('foo', 'baz')
|
106
|
+
assert_equal true, m.prepend('foo', 'baz')
|
67
107
|
assert_equal 'bazfoobar', m.get('foo')
|
68
108
|
end
|
69
109
|
|
70
110
|
def test_incr
|
71
111
|
# incr does nothing if value doesn't exist
|
72
|
-
m.incr('foo')
|
112
|
+
assert_equal nil, m.incr('foo')
|
73
113
|
assert_equal nil, m.get('foo')
|
74
114
|
|
75
|
-
m.decr('foo', 1)
|
115
|
+
assert_equal nil, m.decr('foo', 1)
|
76
116
|
assert_equal nil, m.get('foo')
|
77
117
|
|
78
118
|
m.set('foo', '0')
|
79
|
-
m.incr('foo')
|
119
|
+
assert_equal 1, m.incr('foo')
|
80
120
|
assert_equal '1', m.get('foo')
|
81
121
|
|
82
|
-
m.incr('foo', 52)
|
122
|
+
assert_equal 53, m.incr('foo', 52)
|
83
123
|
assert_equal '53', m.get('foo')
|
84
124
|
|
85
|
-
m.decr('foo', 43)
|
125
|
+
assert_equal 10, m.decr('foo', 43)
|
86
126
|
assert_equal '10', m.get('foo')
|
87
127
|
|
88
128
|
# Cannot go below zero.
|
89
|
-
m.decr('foo', 100)
|
129
|
+
assert_equal 0, m.decr('foo', 100)
|
90
130
|
assert_equal '0', m.get('foo').strip
|
91
131
|
end
|
92
132
|
|
93
133
|
def test_multi_get
|
94
|
-
m.set(2, '1,2,3')
|
95
|
-
m.set(3, '4,5')
|
96
|
-
|
134
|
+
m.set('2', '1,2,3')
|
135
|
+
m.set('3', '4,5')
|
136
|
+
|
97
137
|
expected = { '2' => '1,2,3', '3' => '4,5' }
|
98
|
-
assert_equal expected, m.get([2,3])
|
138
|
+
assert_equal expected, m.get(['2','3'])
|
139
|
+
assert_equal '4,5', m.get(['3'])['3']
|
140
|
+
assert_equal({}, m.get([]))
|
99
141
|
end
|
100
|
-
|
142
|
+
|
101
143
|
def test_delete
|
102
|
-
m.set(2, '1,2,3')
|
103
|
-
|
104
|
-
assert_equal '1,2,3', m.get(2)
|
144
|
+
m.set('2', '1,2,3')
|
105
145
|
|
106
|
-
m.
|
107
|
-
|
108
|
-
assert_equal nil, m.get(2)
|
146
|
+
assert_equal '1,2,3', m.get('2')
|
147
|
+
assert_equal true, m.delete('2')
|
148
|
+
assert_equal nil, m.get('2')
|
109
149
|
end
|
110
150
|
|
111
151
|
def test_flush_all
|
112
|
-
m.set(2, 'bar')
|
113
|
-
|
114
|
-
assert_equal 'bar', m.get(2)
|
152
|
+
m.set('2', 'bar')
|
153
|
+
|
154
|
+
assert_equal 'bar', m.get('2')
|
115
155
|
|
116
156
|
m.flush_all
|
117
|
-
|
118
|
-
assert_equal nil, m.get(2)
|
157
|
+
|
158
|
+
assert_equal nil, m.get('2')
|
119
159
|
end
|
120
|
-
|
160
|
+
|
121
161
|
module AdvancedMethods
|
122
162
|
def test_flags
|
123
163
|
m.set('thom', 'hartmann', 0)
|
124
164
|
value = m.gets('thom')
|
125
165
|
assert_equal 0, value.memcache_flags
|
126
|
-
|
166
|
+
|
127
167
|
m.set('thom', 'hartmann', 0, 0b11110001)
|
128
168
|
value = m.gets('thom')
|
129
169
|
assert_equal 0b11110001, value.memcache_flags
|
130
|
-
|
170
|
+
|
131
171
|
value = m.get('thom')
|
132
172
|
assert_equal 0b11110001, value.memcache_flags
|
133
|
-
|
173
|
+
|
134
174
|
m.set('thom', 'hartmann', 0, 0b10101010)
|
135
175
|
value = m.get('thom')
|
136
176
|
assert_equal 0b10101010, value.memcache_flags
|
137
177
|
end
|
138
|
-
|
178
|
+
|
139
179
|
def test_gets_and_cas
|
140
180
|
m.set('thom', 'hartmann')
|
141
|
-
|
142
|
-
value = m.gets('thom')
|
181
|
+
|
182
|
+
value = m.gets('thom')
|
143
183
|
assert_equal 'hartmann', value
|
144
|
-
m.cas('thom', 'thompson', value.memcache_cas)
|
184
|
+
assert_equal 'thompson', m.cas('thom', 'thompson', value.memcache_cas)
|
145
185
|
assert_equal 'thompson', m.get('thom')
|
146
|
-
|
186
|
+
|
147
187
|
value = m.gets('thom')
|
148
188
|
m.delete('thom')
|
149
189
|
assert_nil m.cas('thom', 'hartson', value.memcache_cas)
|
150
190
|
assert_equal nil, m.get('thom')
|
151
|
-
|
191
|
+
|
152
192
|
m.add('thom', 'hartmann')
|
153
193
|
value = m.gets('thom')
|
154
194
|
m.set('thom', 'foo')
|
data/test/memcache_test.rb
CHANGED
@@ -3,33 +3,25 @@ require File.dirname(__FILE__) + '/test_helper'
|
|
3
3
|
|
4
4
|
class MemcacheTest < Test::Unit::TestCase
|
5
5
|
PORTS = [11212, 11213, 11214, 11215, 11216, 11217]
|
6
|
-
|
7
|
-
def m
|
8
|
-
@memcache
|
9
|
-
end
|
10
|
-
|
11
6
|
def setup
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
def teardown
|
17
|
-
stop_memcache(*PORTS)
|
7
|
+
init_memcache(*PORTS) do
|
8
|
+
Memcache.new(:servers => PORTS.collect {|p| "localhost:#{p}"})
|
9
|
+
end
|
18
10
|
end
|
19
11
|
|
20
|
-
def test_get_and_set
|
12
|
+
def test_get_and_set
|
21
13
|
100.times do |i|
|
22
14
|
m.set(i.to_s, i)
|
23
15
|
assert_equal i, m.get(i.to_s)
|
24
16
|
end
|
25
17
|
|
26
|
-
keys = (0..200).
|
18
|
+
keys = (0..200).collect {|key| key.to_s}
|
27
19
|
results = m.get(keys)
|
28
20
|
assert_equal 100, results.size
|
29
21
|
results.each do |key, value|
|
30
22
|
assert_equal key.to_i, value
|
31
23
|
end
|
32
|
-
|
24
|
+
|
33
25
|
100.times do |i|
|
34
26
|
m.set(i.to_s, i.to_s, :raw => true)
|
35
27
|
assert_equal i.to_s, m.get(i.to_s, :raw => true)
|
@@ -68,7 +60,7 @@ class MemcacheTest < Test::Unit::TestCase
|
|
68
60
|
assert_equal nil, m.get(i.to_s, :raw => true)
|
69
61
|
|
70
62
|
m.add(i.to_s, 'homerun', :raw => true)
|
71
|
-
assert_equal 'homerun', m.get(i.to_s, :raw => true)
|
63
|
+
assert_equal 'homerun', m.get(i.to_s, :raw => true)
|
72
64
|
end
|
73
65
|
end
|
74
66
|
|
@@ -92,7 +84,7 @@ class MemcacheTest < Test::Unit::TestCase
|
|
92
84
|
assert_equal [i, :foo], m["foo#{i}"]
|
93
85
|
|
94
86
|
m.get_or_set("foo#{i}") {raise}
|
95
|
-
assert_equal [i, :foo], m["foo#{i}"]
|
87
|
+
assert_equal [i, :foo], m["foo#{i}"]
|
96
88
|
|
97
89
|
# Overwrite if changed.
|
98
90
|
m.get_or_set("bar#{i}") do
|
@@ -109,7 +101,7 @@ class MemcacheTest < Test::Unit::TestCase
|
|
109
101
|
assert_equal [:foo, i], m["foo#{i}"]
|
110
102
|
|
111
103
|
m.get_or_add("foo#{i}") {raise}
|
112
|
-
assert_equal [:foo, i], m["foo#{i}"]
|
104
|
+
assert_equal [:foo, i], m["foo#{i}"]
|
113
105
|
|
114
106
|
# Don't overwrite if changed.
|
115
107
|
m.get_or_add("bar#{i}") do
|
@@ -141,7 +133,7 @@ class MemcacheTest < Test::Unit::TestCase
|
|
141
133
|
assert_equal i, m.get(i.to_s)
|
142
134
|
end
|
143
135
|
|
144
|
-
keys = (0...200).
|
136
|
+
keys = (0...200).collect {|key| key.to_s}
|
145
137
|
results = m.get_some(keys) do |missing_keys|
|
146
138
|
assert_equal 100, missing_keys.size
|
147
139
|
r = {}
|
@@ -160,7 +152,7 @@ class MemcacheTest < Test::Unit::TestCase
|
|
160
152
|
def test_get_with_reset_expiry
|
161
153
|
m.add('foo', 'quick brown fox', :expiry => 1)
|
162
154
|
assert_equal 'quick brown fox', m.get('foo', :expiry => 2)
|
163
|
-
sleep(1)
|
155
|
+
sleep(1)
|
164
156
|
assert_equal 'quick brown fox', m.get('foo')
|
165
157
|
end
|
166
158
|
|
data/test/test_helper.rb
CHANGED
@@ -7,20 +7,45 @@ require 'pp'
|
|
7
7
|
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
|
8
8
|
require 'memcache'
|
9
9
|
|
10
|
-
system 'killall memcached 2> /dev/null'
|
11
|
-
|
12
10
|
class Test::Unit::TestCase
|
13
|
-
|
11
|
+
@@servers ||= {}
|
12
|
+
def init_memcache(*ports)
|
14
13
|
ports.each do |port|
|
15
|
-
|
14
|
+
@@servers[port] ||= start_memcache(port)
|
16
15
|
end
|
17
|
-
|
16
|
+
|
17
|
+
@memcache = yield
|
18
|
+
@memcache.flush_all
|
18
19
|
end
|
19
20
|
|
20
|
-
def
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
def m
|
22
|
+
@memcache
|
23
|
+
end
|
24
|
+
|
25
|
+
def start_memcache(port)
|
26
|
+
system("memcached -p #{port} -U 0 -d -P /tmp/memcached_#{port}.pid")
|
27
|
+
sleep 1
|
28
|
+
File.read("/tmp/memcached_#{port}.pid")
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.with_prefixes(*prefixes)
|
32
|
+
# Define new test_* methods that calls super for every prefix. This only works for
|
33
|
+
# methods that are mixed in, and should be called before you define custom test methods.
|
34
|
+
opts = prefixes.last.is_a?(Hash) ? prefixes.last : {}
|
35
|
+
instance_methods.each do |method_name|
|
36
|
+
next unless method_name =~ /^test_/
|
37
|
+
next if opts[:except] and opts[:except].include?(method_name)
|
38
|
+
next if opts[:only] and not opts[:only].include?(method_name)
|
39
|
+
|
40
|
+
define_method(method_name) do |*args|
|
41
|
+
prefixes.each do |prefix|
|
42
|
+
assert_equal prefix, m.prefix = prefix
|
43
|
+
assert_equal prefix, m.prefix
|
44
|
+
super
|
45
|
+
assert_equal nil, m.prefix = nil
|
46
|
+
assert_equal nil, m.prefix
|
47
|
+
end
|
48
|
+
end
|
24
49
|
end
|
25
50
|
end
|
26
51
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memcache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Balthrop
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-03-17 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -28,17 +28,23 @@ files:
|
|
28
28
|
- README.rdoc
|
29
29
|
- Rakefile
|
30
30
|
- VERSION.yml
|
31
|
+
- bench/benchmark.rb
|
32
|
+
- ext/extconf.rb
|
33
|
+
- ext/libmemcached-0.38.tar.gz
|
34
|
+
- ext/native_server.c
|
31
35
|
- lib/memcache.rb
|
36
|
+
- lib/memcache/base.rb
|
32
37
|
- lib/memcache/local_server.rb
|
33
38
|
- lib/memcache/migration.rb
|
34
39
|
- lib/memcache/null_server.rb
|
35
40
|
- lib/memcache/pg_server.rb
|
36
|
-
- lib/memcache/
|
41
|
+
- lib/memcache/segmented.rb
|
37
42
|
- lib/memcache/server.rb
|
38
|
-
- memcache.gemspec
|
39
43
|
- test/memcache_local_server_test.rb
|
44
|
+
- test/memcache_native_server_test.rb
|
40
45
|
- test/memcache_null_server_test.rb
|
41
46
|
- test/memcache_pg_server_test.rb
|
47
|
+
- test/memcache_segmented_native_server_test.rb
|
42
48
|
- test/memcache_segmented_server_test.rb
|
43
49
|
- test/memcache_server_test.rb
|
44
50
|
- test/memcache_server_test_helper.rb
|
@@ -74,8 +80,10 @@ specification_version: 3
|
|
74
80
|
summary: Advanced ruby memcache client
|
75
81
|
test_files:
|
76
82
|
- test/memcache_local_server_test.rb
|
83
|
+
- test/memcache_native_server_test.rb
|
77
84
|
- test/memcache_null_server_test.rb
|
78
85
|
- test/memcache_pg_server_test.rb
|
86
|
+
- test/memcache_segmented_native_server_test.rb
|
79
87
|
- test/memcache_segmented_server_test.rb
|
80
88
|
- test/memcache_server_test.rb
|
81
89
|
- test/memcache_server_test_helper.rb
|
data/memcache.gemspec
DELETED
@@ -1,69 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{memcache}
|
8
|
-
s.version = "1.2.0"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Justin Balthrop"]
|
12
|
-
s.date = %q{2009-12-17}
|
13
|
-
s.description = %q{Ruby client for memcached supporting advanced protocol features and pluggable architecture.}
|
14
|
-
s.email = %q{code@justinbalthrop.com}
|
15
|
-
s.extensions = ["ext/extconf.rb"]
|
16
|
-
s.extra_rdoc_files = [
|
17
|
-
"LICENSE",
|
18
|
-
"README.rdoc"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
".gitignore",
|
22
|
-
"LICENSE",
|
23
|
-
"README.rdoc",
|
24
|
-
"Rakefile",
|
25
|
-
"VERSION.yml",
|
26
|
-
"lib/memcache.rb",
|
27
|
-
"lib/memcache/local_server.rb",
|
28
|
-
"lib/memcache/migration.rb",
|
29
|
-
"lib/memcache/null_server.rb",
|
30
|
-
"lib/memcache/pg_server.rb",
|
31
|
-
"lib/memcache/segmented_server.rb",
|
32
|
-
"lib/memcache/server.rb",
|
33
|
-
"memcache.gemspec",
|
34
|
-
"test/memcache_local_server_test.rb",
|
35
|
-
"test/memcache_null_server_test.rb",
|
36
|
-
"test/memcache_pg_server_test.rb",
|
37
|
-
"test/memcache_segmented_server_test.rb",
|
38
|
-
"test/memcache_server_test.rb",
|
39
|
-
"test/memcache_server_test_helper.rb",
|
40
|
-
"test/memcache_test.rb",
|
41
|
-
"test/test_helper.rb"
|
42
|
-
]
|
43
|
-
s.homepage = %q{http://github.com/ninjudd/memcache}
|
44
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
45
|
-
s.require_paths = ["lib"]
|
46
|
-
s.rubygems_version = %q{1.3.5}
|
47
|
-
s.summary = %q{Advanced ruby memcache client}
|
48
|
-
s.test_files = [
|
49
|
-
"test/memcache_local_server_test.rb",
|
50
|
-
"test/memcache_null_server_test.rb",
|
51
|
-
"test/memcache_pg_server_test.rb",
|
52
|
-
"test/memcache_segmented_server_test.rb",
|
53
|
-
"test/memcache_server_test.rb",
|
54
|
-
"test/memcache_server_test_helper.rb",
|
55
|
-
"test/memcache_test.rb",
|
56
|
-
"test/test_helper.rb"
|
57
|
-
]
|
58
|
-
|
59
|
-
if s.respond_to? :specification_version then
|
60
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
61
|
-
s.specification_version = 3
|
62
|
-
|
63
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
64
|
-
else
|
65
|
-
end
|
66
|
-
else
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|