memcached 1.3.7 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/BENCHMARKS CHANGED
@@ -7,128 +7,122 @@ You can easily run your own benchmarks, as long as you have memcached itself on
7
7
 
8
8
  == x86-64 OS X
9
9
 
10
- These benchmarks were run on a 64-bit OS X machine, with memcached 1.4.5:
11
-
12
- Darwin amber.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17
13
- PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
14
- ruby 1.8.7 (2010-04-19 patchlevel 253) [i686-darwin10.4.0], MBARI 0x6770,
15
- Ruby Enterprise Edition 2010.02
16
- RUBY_HEAP_FREE_MIN=4096
17
- RUBY_HEAP_MIN_SLOTS=500000
18
- RUBY_HEAP_SLOTS_INCREMENT=250000
19
- RUBY_GC_MALLOC_LIMIT=50000000
20
- RUBY_HEAP_SLOTS_GROWTH_FACTOR=1
21
- RUBY_VERSION=ree-1.8.7-2010.02
22
- Ruby 1.8.7p253
23
- Loaded memcached 1.1.1
10
+ These benchmarks were run on a 64-bit OS X machine, with memcached 1.4.5:
11
+
12
+ Darwin winter.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64
13
+ ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.0.1]
14
+ RUBY_VERSION=ruby-1.9.2-p290
15
+ Ruby 1.9.2p290
16
+ Loaded memcached 1.4.0
24
17
  Loaded remix-stash 1.1.3
25
18
  Loaded memcache-client 1.8.5
26
- Loaded kgio 2.0.0
27
- Loaded dalli 1.0.2
28
- PID is 21173
29
- Loops is 20000
19
+ Loaded kgio 2.6.0
20
+ Loaded dalli 1.1.5
21
+ PID is 7161
22
+ Loops is 50000
30
23
  Stack depth is 0
31
- Small value size is: 13 bytes
32
- Large value size is: 4158 bytes
33
-
24
+ Small value size is: 19 bytes
25
+ Large value size is: 4189 bytes
34
26
  user system total real
35
- set: libm:ascii 0.600000 0.960000 1.560000 ( 3.790868)
36
- set: libm:ascii:pipeline 0.230000 0.010000 0.240000 ( 0.240365)
37
- set: libm:ascii:udp 0.530000 0.580000 1.110000 ( 2.573610)
38
- set: libm:bin 0.480000 0.860000 1.340000 ( 3.355849)
39
- set: libm:bin:buffer 0.250000 0.100000 0.350000 ( 0.859416)
40
- set: dalli:bin 4.270000 1.380000 5.650000 ( 7.673922)
41
- set: mclient:ascii 7.020000 1.920000 8.940000 ( 9.739894)
42
- set: stash:bin 2.640000 1.060000 3.700000 ( 6.100208)
43
-
44
- get: libm:ascii 0.830000 0.990000 1.820000 ( 3.912925)
45
- get: libm:ascii:pipeline 0.780000 1.070000 1.850000 ( 4.166414)
46
- get: libm:ascii:udp 0.680000 0.620000 1.300000 ( 2.872687)
47
- get: libm:bin 0.690000 1.020000 1.710000 ( 3.588579)
48
- get: libm:bin:buffer 0.690000 1.210000 1.900000 ( 3.927647)
49
- get: dalli:bin 4.530000 1.490000 6.020000 ( 8.197772)
50
- get: mclient:ascii 8.660000 1.870000 10.530000 ( 11.176572)
51
- get: stash:bin 2.310000 1.000000 3.310000 ( 5.581331)
52
-
53
- get-multi: libm:ascii 0.650000 0.560000 1.210000 ( 2.101080)
54
- get-multi: libm:ascii:pipeline 0.750000 0.560000 1.310000 ( 2.188553)
55
- get-multi: libm:ascii:udp 0.710000 0.470000 1.180000 ( 1.680744)
56
- get-multi: libm:bin 0.730000 0.800000 1.530000 ( 4.046271)
57
- get-multi: libm:bin:buffer 0.710000 0.670000 1.380000 ( 2.853617)
58
- get-multi: dalli:bin 7.700000 2.190000 9.890000 ( 10.021851)
59
-
60
- append: libm:ascii 0.740000 1.000000 1.740000 ( 5.609197)
61
- append: libm:ascii:pipeline 0.250000 0.010000 0.260000 ( 0.875205)
62
- append: libm:ascii:udp 0.570000 0.560000 1.130000 ( 4.695231)
63
- append: libm:bin 0.540000 0.900000 1.440000 ( 4.962085)
64
- append: libm:bin:buffer 0.560000 0.780000 1.340000 ( 2.669085)
65
- append: dalli:bin 3.620000 1.240000 4.860000 ( 8.718248)
66
- append: mclient:ascii 7.220000 1.750000 8.970000 ( 11.657408)
67
-
68
- prepend: libm:ascii 0.660000 1.040000 1.700000 ( 5.461676)
69
- prepend: libm:ascii:pipeline 0.260000 0.010000 0.270000 ( 0.760103)
70
- prepend: libm:ascii:udp 0.670000 0.600000 1.270000 ( 4.324850)
71
- prepend: libm:bin 0.560000 0.900000 1.460000 ( 5.801869)
72
- prepend: libm:bin:buffer 0.530000 0.800000 1.330000 ( 3.631074)
73
- prepend: dalli:bin 3.620000 1.240000 4.860000 ( 8.531561)
74
- prepend: mclient:ascii 6.400000 1.590000 7.990000 ( 12.047692)
75
-
76
- delete: libm:ascii 1.350000 0.920000 2.270000 ( 4.693438)
77
- delete: libm:ascii:pipeline 0.320000 0.320000 0.640000 ( 0.706662)
78
- delete: libm:ascii:udp 1.270000 0.660000 1.930000 ( 3.851781)
79
- delete: libm:bin 1.190000 0.960000 2.150000 ( 4.456707)
80
- delete: libm:bin:buffer 0.230000 0.250000 0.480000 ( 0.911735)
81
- delete: dalli:bin 3.850000 1.440000 5.290000 ( 7.160706)
82
- delete: mclient:ascii 7.270000 1.670000 8.940000 ( 9.618969)
83
-
84
- get-missing: libm:ascii 1.430000 0.970000 2.400000 ( 4.982100)
85
- get-missing: libm:ascii:pipeline 1.480000 1.200000 2.680000 ( 5.505560)
86
- get-missing: libm:ascii:udp 1.340000 0.690000 2.030000 ( 3.706029)
87
- get-missing: libm:bin 1.390000 0.960000 2.350000 ( 4.676127)
88
- get-missing: libm:bin:buffer 1.460000 1.230000 2.690000 ( 5.048332)
89
- get-missing: dalli:bin 3.810000 1.380000 5.190000 ( 7.874001)
90
- get-missing: mclient:ascii 6.920000 1.600000 8.520000 ( 9.999317)
91
-
92
- append-missing: libm:ascii 1.370000 0.990000 2.360000 ( 5.073530)
93
- append-missing: libm:ascii:pipeline 0.330000 0.010000 0.340000 ( 0.374423)
94
- append-missing: libm:ascii:udp 1.300000 0.690000 1.990000 ( 4.005369)
95
- append-missing: libm:bin 1.340000 0.920000 2.260000 ( 5.339037)
96
- append-missing: dalli:bin 4.020000 1.420000 5.440000 ( 8.193874)
97
- append-missing: mclient:ascii 6.930000 1.630000 8.560000 ( 10.637547)
98
-
99
- prepend-missing: libm:ascii 1.460000 0.970000 2.430000 ( 5.002199)
100
- prepend-missing: libm:ascii:pipeline 0.240000 0.010000 0.250000 ( 0.253590)
101
- prepend-missing: libm:ascii:udp 1.370000 0.710000 2.080000 ( 4.243274)
102
- prepend-missing: libm:bin 1.360000 0.950000 2.310000 ( 4.946014)
103
- prepend-missing: dalli:bin 3.910000 1.430000 5.340000 ( 7.407236)
104
- prepend-missing: mclient:ascii 7.380000 1.730000 9.110000 ( 10.140385)
105
-
106
- set-large: libm:ascii 0.670000 0.980000 1.650000 ( 5.181314)
107
- set-large: libm:ascii:pipeline 0.410000 0.330000 0.740000 ( 1.757769)
108
- set-large: libm:ascii:udp 0.590000 0.670000 1.260000 ( 3.510175)
109
- set-large: libm:bin 0.540000 0.980000 1.520000 ( 3.878854)
110
- set-large: libm:bin:buffer 0.350000 0.440000 0.790000 ( 2.036610)
111
- set-large: dalli:bin 5.010000 1.670000 6.680000 ( 9.884379)
112
- set-large: mclient:ascii 7.500000 2.130000 9.630000 ( 11.357448)
113
- set-large: stash:bin 3.920000 1.130000 5.050000 ( 7.488534)
114
-
115
- get-large: libm:ascii 0.760000 0.950000 1.710000 ( 4.151140)
116
- get-large: libm:ascii:pipeline 0.820000 1.190000 2.010000 ( 4.079482)
117
- get-large: libm:ascii:udp 0.770000 0.580000 1.350000 ( 2.763797)
118
- get-large: libm:bin 0.640000 0.970000 1.610000 ( 3.686591)
119
- get-large: libm:bin:buffer 0.690000 1.110000 1.800000 ( 3.974967)
120
- get-large: dalli:bin 4.710000 1.430000 6.140000 ( 8.011834)
121
- get-large: mclient:ascii 8.860000 1.970000 10.830000 ( 12.136812)
122
- get-large: stash:bin 2.420000 0.970000 3.390000 ( 5.643309)
123
-
124
- hash:murmur 0.250000 0.000000 0.250000 ( 0.250730)
125
- hash:md5 0.670000 0.000000 0.670000 ( 0.680286)
126
- hash:fnv1a_64 0.320000 0.000000 0.320000 ( 0.319818)
127
- hash:fnv1a_32 0.310000 0.000000 0.310000 ( 0.328325)
128
- hash:jenkins 0.270000 0.010000 0.280000 ( 0.270705)
129
- hash:default 0.410000 0.000000 0.410000 ( 0.412068)
130
- hash:crc 0.380000 0.000000 0.380000 ( 0.377563)
131
- hash:hsieh 0.210000 0.000000 0.210000 ( 0.212948)
132
- hash:fnv1_32 0.310000 0.000000 0.310000 ( 0.316208)
133
- hash:fnv1_64 0.450000 0.000000 0.450000 ( 0.453148)
134
- hash:none 0.210000 0.000000 0.210000 ( 0.213811)
27
+ set: dalli:bin 6.230000 2.860000 9.090000 ( 13.771901)
28
+ set: libm:ascii 0.900000 1.600000 2.500000 ( 6.201596)
29
+ set: libm:ascii:pipeline 0.380000 0.010000 0.390000 ( 0.399863)
30
+ set: libm:ascii:udp 0.540000 0.810000 1.350000 ( 3.033980)
31
+ set: libm:bin 0.660000 1.550000 2.210000 ( 5.829103)
32
+ set: libm:bin:buffer 0.310000 0.560000 0.870000 ( 1.335899)
33
+ set: mclient:ascii 13.760000 3.640000 17.400000 ( 17.519859)
34
+ set: stash:bin 4.350000 2.260000 6.610000 ( 10.901810)
35
+
36
+ get: dalli:bin 6.370000 3.040000 9.410000 ( 13.762127)
37
+ get: libm:ascii 1.130000 1.710000 2.840000 ( 6.472671)
38
+ get: libm:ascii:pipeline 1.350000 2.480000 3.830000 ( 8.459317)
39
+ get: libm:ascii:udp 0.770000 0.910000 1.680000 ( 3.084506)
40
+ get: libm:bin 1.450000 2.910000 4.360000 ( 9.041859)
41
+ get: libm:bin:buffer 1.390000 3.400000 4.790000 ( 9.160760)
42
+ get: mclient:ascii 15.390000 3.890000 19.280000 ( 19.325698)
43
+ get: stash:bin 3.630000 2.310000 5.940000 ( 9.561887)
44
+
45
+ get-multi: dalli:bin 11.220000 4.720000 15.940000 ( 15.977336)
46
+ get-multi: libm:ascii 1.150000 1.190000 2.340000 ( 4.063418)
47
+ get-multi: libm:ascii:pipeline 1.160000 1.190000 2.350000 ( 4.063346)
48
+ get-multi: libm:ascii:udp 1.200000 1.110000 2.310000 ( 2.746055)
49
+ get-multi: libm:bin 1.520000 2.320000 3.840000 ( 5.053102)
50
+ get-multi: libm:bin:buffer 1.560000 2.350000 3.910000 ( 5.154312)
51
+
52
+ append: dalli:bin 5.470000 2.930000 8.400000 ( 24.011438)
53
+ append: libm:ascii 1.290000 1.790000 3.080000 ( 17.774130)
54
+ append: libm:ascii:pipeline 0.450000 0.040000 0.490000 ( 6.633257)
55
+ append: libm:ascii:udp 1.070000 0.970000 2.040000 ( 14.307639)
56
+ append: libm:bin 1.010000 1.740000 2.750000 ( 17.286027)
57
+ append: libm:bin:buffer 1.570000 3.060000 4.630000 ( 11.351744)
58
+ append: mclient:ascii 13.860000 4.610000 18.470000 ( 28.063347)
59
+
60
+ prepend: dalli:bin 5.480000 2.920000 8.400000 ( 24.141383)
61
+ prepend: libm:ascii 1.290000 1.800000 3.090000 ( 17.990164)
62
+ prepend: libm:ascii:pipeline 0.460000 0.050000 0.510000 ( 6.913219)
63
+ prepend: libm:ascii:udp 1.080000 0.970000 2.050000 ( 14.498750)
64
+ prepend: libm:bin 1.010000 1.750000 2.760000 ( 17.490186)
65
+ prepend: libm:bin:buffer 1.590000 3.030000 4.620000 ( 11.528854)
66
+ prepend: mclient:ascii 13.820000 4.590000 18.410000 ( 27.996415)
67
+
68
+ delete: dalli:bin 5.190000 2.860000 8.050000 ( 12.158696)
69
+ delete: libm:ascii 1.730000 1.760000 3.490000 ( 6.891763)
70
+ delete: libm:ascii:pipeline 0.270000 0.010000 0.280000 ( 0.286750)
71
+ delete: libm:ascii:udp 1.280000 0.960000 2.240000 ( 3.521770)
72
+ delete: libm:bin 1.670000 1.730000 3.400000 ( 6.670207)
73
+ delete: libm:bin:buffer 1.990000 1.420000 3.410000 ( 3.408682)
74
+ delete: mclient:ascii 12.300000 3.440000 15.740000 ( 15.004959)
75
+
76
+ get-missing: dalli:bin 5.190000 2.900000 8.090000 ( 12.288468)
77
+ get-missing: libm:ascii 1.890000 1.930000 3.820000 ( 7.300238)
78
+ get-missing: libm:ascii:pipeline 2.000000 2.400000 4.400000 ( 7.861120)
79
+ get-missing: libm:ascii:udp 1.420000 1.000000 2.420000 ( 3.684960)
80
+ get-missing: libm:bin 2.450000 2.880000 5.330000 ( 9.904413)
81
+ get-missing: libm:bin:buffer 2.590000 3.600000 6.190000 ( 10.558657)
82
+ get-missing: mclient:ascii 12.610000 3.520000 16.130000 ( 16.112399)
83
+
84
+ append-missing: dalli:bin 5.440000 2.930000 8.370000 ( 13.119090)
85
+ append-missing: libm:ascii 2.060000 2.060000 4.120000 ( 8.168211)
86
+ append-missing: libm:ascii:pipeline 0.410000 0.020000 0.430000 ( 0.423779)
87
+ append-missing: libm:ascii:udp 1.470000 0.980000 2.450000 ( 4.093117)
88
+ append-missing: libm:bin 1.800000 1.880000 3.680000 ( 7.384185)
89
+ append-missing: libm:bin:buffer 1.920000 2.500000 4.420000 ( 8.242885)
90
+ append-missing: mclient:ascii 12.780000 3.560000 16.340000 ( 16.303513)
91
+
92
+ prepend-missing: dalli:bin 5.440000 2.940000 8.380000 ( 13.143816)
93
+ prepend-missing: libm:ascii 2.060000 2.050000 4.110000 ( 8.207103)
94
+ prepend-missing: libm:ascii:pipeline 0.390000 0.010000 0.400000 ( 0.405324)
95
+ prepend-missing: libm:ascii:udp 1.480000 0.980000 2.460000 ( 4.100100)
96
+ prepend-missing: libm:bin 1.820000 1.910000 3.730000 ( 7.485082)
97
+ prepend-missing: libm:bin:buffer 1.930000 2.490000 4.420000 ( 8.220931)
98
+ prepend-missing: mclient:ascii 12.750000 3.570000 16.320000 ( 16.327426)
99
+
100
+ set-large: dalli:bin 8.210000 4.760000 12.970000 ( 20.323687)
101
+ set-large: libm:ascii 0.980000 1.690000 2.670000 ( 6.540981)
102
+ set-large: libm:ascii:pipeline 0.750000 0.620000 1.370000 ( 1.374806)
103
+ set-large: libm:ascii:udp 0.590000 0.880000 1.470000 ( 3.345455)
104
+ set-large: libm:bin 0.720000 1.620000 2.340000 ( 6.085282)
105
+ set-large: libm:bin:buffer 0.540000 1.000000 1.540000 ( 2.073624)
106
+ set-large: mclient:ascii 15.440000 5.050000 20.490000 ( 21.033437)
107
+ set-large: stash:bin 6.990000 2.970000 9.960000 ( 14.580058)
108
+
109
+ get-large: dalli:bin 6.430000 3.050000 9.480000 ( 13.863885)
110
+ get-large: libm:ascii 1.280000 1.910000 3.190000 ( 7.413390)
111
+ get-large: libm:ascii:pipeline 1.510000 2.690000 4.200000 ( 9.178352)
112
+ get-large: libm:ascii:udp 0.940000 1.050000 1.990000 ( 3.705017)
113
+ get-large: libm:bin 1.580000 3.140000 4.720000 ( 10.028901)
114
+ get-large: libm:bin:buffer 1.550000 3.740000 5.290000 ( 10.237274)
115
+ get-large: mclient:ascii 15.090000 3.590000 18.680000 ( 18.686119)
116
+ get-large: stash:bin 4.810000 3.010000 7.820000 ( 13.311248)
117
+
118
+ hash:default 0.540000 0.010000 0.550000 ( 0.537555)
119
+ hash:md5 0.910000 0.000000 0.910000 ( 0.914356)
120
+ hash:crc 0.620000 0.000000 0.620000 ( 0.624606)
121
+ hash:fnv1_64 0.420000 0.000000 0.420000 ( 0.421316)
122
+ hash:fnv1a_64 0.380000 0.000000 0.380000 ( 0.376717)
123
+ hash:fnv1_32 0.370000 0.000000 0.370000 ( 0.368479)
124
+ hash:fnv1a_32 0.350000 0.000000 0.350000 ( 0.353779)
125
+ hash:hsieh 0.160000 0.000000 0.160000 ( 0.161812)
126
+ hash:murmur 0.220000 0.000000 0.220000 ( 0.220061)
127
+ hash:jenkins 0.270000 0.000000 0.270000 ( 0.264617)
128
+ hash:none 0.160000 0.000000 0.160000 ( 0.165394)
data/CHANGELOG CHANGED
@@ -1,6 +1,10 @@
1
+ v1.4.1. Fix Memcached::Rails#servers bug (tomhughes).
2
+
3
+ v1.4.0. Update Memcached::Rails compatibility wrapper to play along with Rails 3.2, including support for the horrendous ActiveSupport::Duration (tomhughes).
4
+
1
5
  v1.3.7. Rebuild gem to work around timestamp issue in Gemspec on Rubygems 1.7 (tarcieri).
2
6
 
3
- v1.3.6. Stop autoconf from running (eric). Raise generic Memcached::Error (instead of nil) on unexpected return code (gcampbell). Retry on Memcached::ServerEnd (ChristopherThorpe)..8
7
+ v1.3.6. Stop autoconf from running (eric). Raise generic Memcached::Error (instead of nil) on unexpected return code (gcampbell). Retry on Memcached::ServerEnd (ChristopherThorpe).
4
8
 
5
9
  v1.3.5. Fix build again (eric).
6
10
 
@@ -10,6 +10,7 @@ Copyright 2009-2011 Cloudburst, LLC. Licensed under the AFL 3. See the included
10
10
 
11
11
  * clean API
12
12
  * robust access to all memcached features
13
+ * SASL support for the binary protocol
13
14
  * multiple hashing modes, including consistent hashing
14
15
  * ludicrous speed, including optional pipelined IO with no_reply
15
16
 
@@ -107,7 +108,7 @@ There is a compatibility wrapper for legacy applications called Memcached::Rails
107
108
 
108
109
  == Reporting problems
109
110
 
110
- The support forum is here[http://github.com/fauna/memcached/issues].
111
+ The support forum is here[http://github.com/evan/memcached/issues].
111
112
 
112
113
  Patches and contributions are very welcome. Please note that contributors are required to assign copyright for their additions to Cloudburst, LLC.
113
114
 
data/Rakefile CHANGED
@@ -3,7 +3,7 @@ require 'echoe'
3
3
 
4
4
  Echoe.new("memcached") do |p|
5
5
  p.author = "Evan Weaver"
6
- p.project = "fauna"
6
+ p.project = "evan"
7
7
  p.summary = "An interface to the libmemcached C client."
8
8
  p.rdoc_pattern = /README|TODO|LICENSE|CHANGELOG|BENCH|COMPAT|exceptions|experimental.rb|behaviors|rails.rb|memcached.rb/
9
9
  p.rdoc_options = %w[--line-numbers --inline-source --title Memcached --main README.rdoc --exclude=ext/bin --exclude=ext/libmemcached-.*/(clients|tests)]
@@ -13,6 +13,7 @@ Echoe.new("memcached") do |p|
13
13
  "ext/lib",
14
14
  "ext/share",
15
15
  "ext/**/Makefile",
16
+ "ext/Makefile.in",
16
17
  "ext/libmemcached-*/autom4te.cache",
17
18
  "ext/libmemcached-*/clients/memcat",
18
19
  "ext/libmemcached-*/clients/memcp",
@@ -72,7 +73,7 @@ task :valgrind do
72
73
  end
73
74
 
74
75
  def with_vms(cmd)
75
- ["ree", "1.9.2", "rbx"].each do |vm| #, "jruby-head"
76
+ ["ree-1.8.7-2011.03", "1.9.2", "rbx"].each do |vm| #, "jruby-head"
76
77
  if !system("bash -c 'cd && source .bash_profile && rvm use #{vm} && cd - && rake clean >> /dev/null && rake compile >> /dev/null && rake #{cmd}'")
77
78
  puts "#{vm} #{cmd} failed"
78
79
  exit(1)
data/TODO CHANGED
@@ -1,4 +1,4 @@
1
1
 
2
+ * Promote touch support to toplevel and add ASCII protocol touching
3
+ * Remove SWIG and modify libmemcached to accept and return Ruby objects directly
2
4
  * Verify that DNS lookups are getting cached
3
- * Check for memory leaks in Valgrind after free callback change
4
- * Re-run benchmarks
@@ -47,9 +47,8 @@ def check_libmemcached
47
47
  $DEFLIBPATH = [] unless SOLARIS_32
48
48
 
49
49
  Dir.chdir(HERE) do
50
- run("touch -r #{BUNDLE_PATH}/m4/visibility.m4 #{BUNDLE_PATH}/configure.ac #{BUNDLE_PATH}/m4/pandora_have_sasl.m4 #{BUNDLE_PATH}/aclocal.m4", "Touching aclocal.m4 in libmemcached.")
51
-
52
50
  Dir.chdir(BUNDLE_PATH) do
51
+ run("find . | xargs touch", "Touching all files so autoconf doesn't run.")
53
52
  run("env CFLAGS='-fPIC #{LIBM_CFLAGS}' LDFLAGS='-fPIC #{LIBM_LDFLAGS}' ./configure --prefix=#{HERE} --without-memcached --disable-shared --disable-utils --disable-dependency-tracking #{$CC} #{$EXTRA_CONF} 2>&1", "Configuring libmemcached.")
54
53
  end
55
54
 
@@ -84,3 +83,5 @@ end
84
83
 
85
84
  $CFLAGS << " -Os"
86
85
  create_makefile 'rlibmemcached'
86
+ run("mv Makefile Makefile.in", "Copy Makefile")
87
+ run("sed 's/-I.opt.local.include//' Makefile.in > Makefile", "Remove MacPorts from the include path")
@@ -4,7 +4,7 @@ class Memcached
4
4
  eval("alias :'#{method_name}_orig' :'#{method_name}'")
5
5
  end
6
6
 
7
- # A legacy compatibility wrapper for the Memcached class. It has basic compatibility with the <b>memcache-client</b> API.
7
+ # A legacy compatibility wrapper for the Memcached class. It has basic compatibility with the <b>memcache-client</b> API and Rails 3.2. (Note that ActiveSupport::Duration objects are supported, but not recommended, as ttl parameters. Using Fixnum ttls, such as provided by time_constants.gem, is much faster.)
8
8
  class Rails < ::Memcached
9
9
 
10
10
  DEFAULTS = {
@@ -23,7 +23,9 @@ class Memcached
23
23
  args.any? ? args.unshift : opts.delete(:servers)
24
24
  ).flatten.compact
25
25
 
26
- opts[:prefix_key] ||= opts[:namespace]
26
+ opts[:prefix_key] = opts[:namespace] if opts[:namespace]
27
+ opts[:prefix_delimiter] = opts[:namespace_separator] if opts[:namespace_separator]
28
+
27
29
  @logger = opts[:logger]
28
30
  @string_return_types = opts[:string_return_types]
29
31
 
@@ -35,6 +37,11 @@ class Memcached
35
37
  @logger = logger
36
38
  end
37
39
 
40
+ # Check if there are any servers defined?
41
+ def active?
42
+ servers.any?
43
+ end
44
+
38
45
  # Wraps Memcached#get so that it doesn't raise. This has the side-effect of preventing you from
39
46
  # storing <tt>nil</tt> values.
40
47
  def get(key, raw=false)
@@ -60,6 +67,9 @@ class Memcached
60
67
  def cas(key, ttl=@default_ttl, raw=false, &block)
61
68
  super(key, ttl, !raw, &block)
62
69
  true
70
+ rescue TypeError => e
71
+ # Maybe we got an ActiveSupport::Duration
72
+ ttl = ttl.value and retry rescue raise e
63
73
  rescue NotFound, ConnectionDataExists
64
74
  false
65
75
  end
@@ -75,6 +85,9 @@ class Memcached
75
85
  def set(key, value, ttl=@default_ttl, raw=false)
76
86
  super(key, value, ttl, !raw)
77
87
  true
88
+ rescue TypeError => e
89
+ # Maybe we got an ActiveSupport::Duration
90
+ ttl = ttl.value and retry rescue raise e
78
91
  rescue NotStored
79
92
  false
80
93
  end
@@ -88,8 +101,10 @@ class Memcached
88
101
  # Wraps Memcached#add so that it doesn't raise.
89
102
  def add(key, value, ttl=@default_ttl, raw=false)
90
103
  super(key, value, ttl, !raw)
91
- # This causes me pain
92
104
  @string_return_types ? "STORED\r\n" : true
105
+ rescue TypeError => e
106
+ # Maybe we got an ActiveSupport::Duration
107
+ ttl = ttl.value and retry rescue raise e
93
108
  rescue NotStored
94
109
  @string_return_types? "NOT STORED\r\n" : false
95
110
  end
@@ -129,5 +144,22 @@ class Memcached
129
144
  alias :"[]" :get
130
145
  alias :"[]=" :set
131
146
 
147
+ # Return an array of server objects.
148
+ def servers
149
+ server_structs.each do |server|
150
+ def server.alive?
151
+ next_retry <= Time.now
152
+ end
153
+ end
154
+ end
155
+
156
+ # Wraps Memcached#set_servers to convert server objects to strings.
157
+ def set_servers(servers)
158
+ servers = Array(servers)
159
+ servers.map! do |server|
160
+ server.is_a?(String) ? server : inspect_server(server)
161
+ end
162
+ super
163
+ end
132
164
  end
133
165
  end
@@ -1,26 +1,26 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  Gem::Specification.new do |s|
4
- s.name = "memcached"
5
- s.version = "1.3.7"
4
+ s.name = %q{memcached}
5
+ s.version = "1.4.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Evan Weaver"]
9
- s.cert_chain = ["/Users/eweaver/p/configuration/gem_certificates/evan_weaver-original-public_cert.pem"]
10
- s.date = "2012-02-12"
11
- s.description = "An interface to the libmemcached C client."
12
- s.email = ""
13
- s.extensions = ["ext/extconf.rb"]
14
- s.extra_rdoc_files = ["BENCHMARKS", "CHANGELOG", "LICENSE", "README.rdoc", "TODO", "ext/libmemcached-0.32/README", "ext/libmemcached-0.32/TODO", "ext/libmemcached-0.32/libmemcached/memcached/README.txt", "lib/memcached.rb", "lib/memcached/behaviors.rb", "lib/memcached/exceptions.rb", "lib/memcached/experimental.rb", "lib/memcached/memcached.rb", "lib/memcached/rails.rb"]
15
- s.files = ["BENCHMARKS", "CHANGELOG", "LICENSE", "Manifest", "README.rdoc", "Rakefile", "TODO", "ext/extconf-make.rb", "ext/extconf.rb", "ext/libmemcached-0.32/AUTHORS", "ext/libmemcached-0.32/COPYING", "ext/libmemcached-0.32/ChangeLog", "ext/libmemcached-0.32/INSTALL", "ext/libmemcached-0.32/Makefile.am", "ext/libmemcached-0.32/Makefile.in", "ext/libmemcached-0.32/NEWS", "ext/libmemcached-0.32/README", "ext/libmemcached-0.32/THANKS", "ext/libmemcached-0.32/TODO", "ext/libmemcached-0.32/aclocal.m4", "ext/libmemcached-0.32/clients/Makefile.am", "ext/libmemcached-0.32/clients/Makefile.in", "ext/libmemcached-0.32/clients/client_options.h", "ext/libmemcached-0.32/clients/execute.c", "ext/libmemcached-0.32/clients/execute.h", "ext/libmemcached-0.32/clients/generator.c", "ext/libmemcached-0.32/clients/generator.h", "ext/libmemcached-0.32/clients/memcat.c", "ext/libmemcached-0.32/clients/memcp.c", "ext/libmemcached-0.32/clients/memdump.c", "ext/libmemcached-0.32/clients/memerror.c", "ext/libmemcached-0.32/clients/memflush.c", "ext/libmemcached-0.32/clients/memrm.c", "ext/libmemcached-0.32/clients/memslap.c", "ext/libmemcached-0.32/clients/memstat.c", "ext/libmemcached-0.32/clients/utilities.c", "ext/libmemcached-0.32/clients/utilities.h", "ext/libmemcached-0.32/config.h.in", "ext/libmemcached-0.32/config/compile", "ext/libmemcached-0.32/config/config.guess", "ext/libmemcached-0.32/config/config.rpath", "ext/libmemcached-0.32/config/config.sub", "ext/libmemcached-0.32/config/depcomp", "ext/libmemcached-0.32/config/install-sh", "ext/libmemcached-0.32/config/ltmain.sh", "ext/libmemcached-0.32/config/missing", "ext/libmemcached-0.32/configure", "ext/libmemcached-0.32/configure.ac", "ext/libmemcached-0.32/docs/Makefile.am", "ext/libmemcached-0.32/docs/Makefile.in", "ext/libmemcached-0.32/docs/libmemcached.pod", "ext/libmemcached-0.32/docs/libmemcached_examples.pod", "ext/libmemcached-0.32/docs/libmemcachedutil.pod", "ext/libmemcached-0.32/docs/memcached_analyze.pod", "ext/libmemcached-0.32/docs/memcached_auto.pod", "ext/libmemcached-0.32/docs/memcached_behavior.pod", "ext/libmemcached-0.32/docs/memcached_callback.pod", "ext/libmemcached-0.32/docs/memcached_create.pod", "ext/libmemcached-0.32/docs/memcached_delete.pod", "ext/libmemcached-0.32/docs/memcached_dump.pod", "ext/libmemcached-0.32/docs/memcached_flush.pod", "ext/libmemcached-0.32/docs/memcached_flush_buffers.pod", "ext/libmemcached-0.32/docs/memcached_generate_hash_value.pod", "ext/libmemcached-0.32/docs/memcached_get.pod", "ext/libmemcached-0.32/docs/memcached_memory_allocators.pod", "ext/libmemcached-0.32/docs/memcached_pool.pod", "ext/libmemcached-0.32/docs/memcached_quit.pod", "ext/libmemcached-0.32/docs/memcached_sasl.pod", "ext/libmemcached-0.32/docs/memcached_server_st.pod", "ext/libmemcached-0.32/docs/memcached_servers.pod", "ext/libmemcached-0.32/docs/memcached_set.pod", "ext/libmemcached-0.32/docs/memcached_stats.pod", "ext/libmemcached-0.32/docs/memcached_strerror.pod", "ext/libmemcached-0.32/docs/memcached_user_data.pod", "ext/libmemcached-0.32/docs/memcached_verbosity.pod", "ext/libmemcached-0.32/docs/memcached_version.pod", "ext/libmemcached-0.32/docs/memcat.pod", "ext/libmemcached-0.32/docs/memcp.pod", "ext/libmemcached-0.32/docs/memdump.pod", "ext/libmemcached-0.32/docs/memerror.pod", "ext/libmemcached-0.32/docs/memflush.pod", "ext/libmemcached-0.32/docs/memrm.pod", "ext/libmemcached-0.32/docs/memslap.pod", "ext/libmemcached-0.32/docs/memstat.pod", "ext/libmemcached-0.32/libmemcached/Makefile.am", "ext/libmemcached-0.32/libmemcached/Makefile.in", "ext/libmemcached-0.32/libmemcached/byteorder.c", "ext/libmemcached-0.32/libmemcached/common.h", "ext/libmemcached-0.32/libmemcached/crc.c", "ext/libmemcached-0.32/libmemcached/hsieh_hash.c", "ext/libmemcached-0.32/libmemcached/jenkins_hash.c", "ext/libmemcached-0.32/libmemcached/libmemcached.ver", "ext/libmemcached-0.32/libmemcached/libmemcached_probes.d", "ext/libmemcached-0.32/libmemcached/libmemcached_probes.h", "ext/libmemcached-0.32/libmemcached/md5.c", "ext/libmemcached-0.32/libmemcached/memcached.c", "ext/libmemcached-0.32/libmemcached/memcached.h", "ext/libmemcached-0.32/libmemcached/memcached.hpp", "ext/libmemcached-0.32/libmemcached/memcached/README.txt", "ext/libmemcached-0.32/libmemcached/memcached/protocol_binary.h", "ext/libmemcached-0.32/libmemcached/memcached_allocators.c", "ext/libmemcached-0.32/libmemcached/memcached_analyze.c", "ext/libmemcached-0.32/libmemcached/memcached_auto.c", "ext/libmemcached-0.32/libmemcached/memcached_behavior.c", "ext/libmemcached-0.32/libmemcached/memcached_callback.c", "ext/libmemcached-0.32/libmemcached/memcached_configure.h.in", "ext/libmemcached-0.32/libmemcached/memcached_connect.c", "ext/libmemcached-0.32/libmemcached/memcached_constants.h", "ext/libmemcached-0.32/libmemcached/memcached_delete.c", "ext/libmemcached-0.32/libmemcached/memcached_do.c", "ext/libmemcached-0.32/libmemcached/memcached_dump.c", "ext/libmemcached-0.32/libmemcached/memcached_fetch.c", "ext/libmemcached-0.32/libmemcached/memcached_flush.c", "ext/libmemcached-0.32/libmemcached/memcached_flush_buffers.c", "ext/libmemcached-0.32/libmemcached/memcached_get.c", "ext/libmemcached-0.32/libmemcached/memcached_get.h", "ext/libmemcached-0.32/libmemcached/memcached_hash.c", "ext/libmemcached-0.32/libmemcached/memcached_hosts.c", "ext/libmemcached-0.32/libmemcached/memcached_internal.h", "ext/libmemcached-0.32/libmemcached/memcached_io.c", "ext/libmemcached-0.32/libmemcached/memcached_io.h", "ext/libmemcached-0.32/libmemcached/memcached_key.c", "ext/libmemcached-0.32/libmemcached/memcached_parse.c", "ext/libmemcached-0.32/libmemcached/memcached_pool.h", "ext/libmemcached-0.32/libmemcached/memcached_purge.c", "ext/libmemcached-0.32/libmemcached/memcached_quit.c", "ext/libmemcached-0.32/libmemcached/memcached_response.c", "ext/libmemcached-0.32/libmemcached/memcached_result.c", "ext/libmemcached-0.32/libmemcached/memcached_result.h", "ext/libmemcached-0.32/libmemcached/memcached_sasl.c", "ext/libmemcached-0.32/libmemcached/memcached_sasl.h", "ext/libmemcached-0.32/libmemcached/memcached_server.c", "ext/libmemcached-0.32/libmemcached/memcached_server.h", "ext/libmemcached-0.32/libmemcached/memcached_stats.c", "ext/libmemcached-0.32/libmemcached/memcached_storage.c", "ext/libmemcached-0.32/libmemcached/memcached_storage.h", "ext/libmemcached-0.32/libmemcached/memcached_strerror.c", "ext/libmemcached-0.32/libmemcached/memcached_string.c", "ext/libmemcached-0.32/libmemcached/memcached_string.h", "ext/libmemcached-0.32/libmemcached/memcached_touch.c", "ext/libmemcached-0.32/libmemcached/memcached_touch.h", "ext/libmemcached-0.32/libmemcached/memcached_types.h", "ext/libmemcached-0.32/libmemcached/memcached_util.h", "ext/libmemcached-0.32/libmemcached/memcached_verbosity.c", "ext/libmemcached-0.32/libmemcached/memcached_version.c", "ext/libmemcached-0.32/libmemcached/memcached_watchpoint.h", "ext/libmemcached-0.32/libmemcached/murmur_hash.c", "ext/libmemcached-0.32/libmemcached/visibility.h", "ext/libmemcached-0.32/libmemcachedutil/Makefile.am", "ext/libmemcached-0.32/libmemcachedutil/Makefile.in", "ext/libmemcached-0.32/libmemcachedutil/libmemcachedutil.ver", "ext/libmemcached-0.32/libmemcachedutil/memcached_pool.c", "ext/libmemcached-0.32/m4/ac_cxx_compile_stdcxx_0x.m4", "ext/libmemcached-0.32/m4/ac_cxx_header_stdcxx_98.m4", "ext/libmemcached-0.32/m4/aclocal.m4", "ext/libmemcached-0.32/m4/acx_pthread.m4", "ext/libmemcached-0.32/m4/byteorder.m4", "ext/libmemcached-0.32/m4/deprecated.m4", "ext/libmemcached-0.32/m4/enable_utillib.m4", "ext/libmemcached-0.32/m4/extensions.m4", "ext/libmemcached-0.32/m4/hsieh.m4", "ext/libmemcached-0.32/m4/lib-prefix.m4", "ext/libmemcached-0.32/m4/libtool.m4", "ext/libmemcached-0.32/m4/ltoptions.m4", "ext/libmemcached-0.32/m4/ltsugar.m4", "ext/libmemcached-0.32/m4/ltversion.m4", "ext/libmemcached-0.32/m4/lt~obsolete.m4", "ext/libmemcached-0.32/m4/memcached.m4", "ext/libmemcached-0.32/m4/pandora_64bit.m4", "ext/libmemcached-0.32/m4/pandora_canonical.m4", "ext/libmemcached-0.32/m4/pandora_check_compiler_version.m4", "ext/libmemcached-0.32/m4/pandora_check_cxx_standard.m4", "ext/libmemcached-0.32/m4/pandora_enable_dtrace.m4", "ext/libmemcached-0.32/m4/pandora_ensure_gcc_version.m4", "ext/libmemcached-0.32/m4/pandora_have_better_malloc.m4", "ext/libmemcached-0.32/m4/pandora_have_sasl.m4", "ext/libmemcached-0.32/m4/pandora_header_assert.m4", "ext/libmemcached-0.32/m4/pandora_libtool.m4", "ext/libmemcached-0.32/m4/pandora_optimize.m4", "ext/libmemcached-0.32/m4/pandora_shared_ptr.m4", "ext/libmemcached-0.32/m4/pandora_vc_build.m4", "ext/libmemcached-0.32/m4/pandora_warnings.m4", "ext/libmemcached-0.32/m4/pod2man.m4", "ext/libmemcached-0.32/m4/protocol_binary.m4", "ext/libmemcached-0.32/m4/setsockopt.m4", "ext/libmemcached-0.32/m4/visibility.m4", "ext/libmemcached-0.32/support/Makefile.am", "ext/libmemcached-0.32/support/Makefile.in", "ext/libmemcached-0.32/support/libmemcached-fc.spec.in", "ext/libmemcached-0.32/support/libmemcached.pc.in", "ext/libmemcached-0.32/support/libmemcached.spec", "ext/libmemcached-0.32/support/libmemcached.spec.in", "ext/libmemcached-0.32/support/set_benchmark.sh", "ext/libmemcached-0.32/tests/Makefile.am", "ext/libmemcached-0.32/tests/Makefile.in", "ext/libmemcached-0.32/tests/atomsmasher.c", "ext/libmemcached-0.32/tests/function.c", "ext/libmemcached-0.32/tests/ketama_test_cases.h", "ext/libmemcached-0.32/tests/output.cmp", "ext/libmemcached-0.32/tests/output.res", "ext/libmemcached-0.32/tests/output2.res", "ext/libmemcached-0.32/tests/plus.cpp", "ext/libmemcached-0.32/tests/r/memcat.res", "ext/libmemcached-0.32/tests/r/memcp.res", "ext/libmemcached-0.32/tests/r/memrm.res", "ext/libmemcached-0.32/tests/r/memslap.res", "ext/libmemcached-0.32/tests/r/memstat.res", "ext/libmemcached-0.32/tests/server.c", "ext/libmemcached-0.32/tests/server.h", "ext/libmemcached-0.32/tests/start.c", "ext/libmemcached-0.32/tests/t/memcat.test", "ext/libmemcached-0.32/tests/t/memcp.test", "ext/libmemcached-0.32/tests/t/memrm.test", "ext/libmemcached-0.32/tests/t/memslap.test", "ext/libmemcached-0.32/tests/t/memstat.test", "ext/libmemcached-0.32/tests/test.c", "ext/libmemcached-0.32/tests/test.h", "ext/libmemcached-0.32/tests/udp.c", "ext/rlibmemcached.i", "ext/rlibmemcached_wrap.c", "lib/memcached.rb", "lib/memcached/auth.rb", "lib/memcached/behaviors.rb", "lib/memcached/exceptions.rb", "lib/memcached/experimental.rb", "lib/memcached/memcached.rb", "lib/memcached/rails.rb", "test/profile/benchmark.rb", "test/profile/c_profiler.rb", "test/profile/exercise.rb", "test/profile/rb_profiler.rb", "test/profile/valgrind.rb", "test/setup.rb", "test/teardown.rb", "test/test_helper.rb", "test/unit/binding_test.rb", "test/unit/memcached_experimental_test.rb", "test/unit/memcached_test.rb", "test/unit/rails_test.rb", "memcached.gemspec"]
16
- s.homepage = "http://fauna.github.com/fauna/memcached/"
17
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Memcached", "--main", "README.rdoc", "--exclude=ext/bin", "--exclude=ext/libmemcached-.*/(clients|tests)"]
18
- s.require_paths = ["lib", "ext"]
19
- s.rubyforge_project = "fauna"
20
- s.rubygems_version = "1.8.16"
21
- s.signing_key = "/Users/eweaver/p/configuration/gem_certificates/evan_weaver-original-private_key.pem"
22
- s.summary = "An interface to the libmemcached C client."
23
- s.test_files = ["test/test_helper.rb", "test/unit/binding_test.rb", "test/unit/memcached_experimental_test.rb", "test/unit/memcached_test.rb", "test/unit/rails_test.rb"]
8
+ s.authors = [%q{Evan Weaver}]
9
+ s.cert_chain = [%q{/Users/eweaver/p/configuration/gem_certificates/evan_weaver-original-public_cert.pem}]
10
+ s.date = %q{2012-02-27}
11
+ s.description = %q{An interface to the libmemcached C client.}
12
+ s.email = %q{}
13
+ s.extensions = [%q{ext/extconf.rb}]
14
+ s.extra_rdoc_files = [%q{BENCHMARKS}, %q{CHANGELOG}, %q{LICENSE}, %q{README.rdoc}, %q{TODO}, %q{ext/libmemcached-0.32/README}, %q{ext/libmemcached-0.32/TODO}, %q{ext/libmemcached-0.32/libmemcached/memcached/README.txt}, %q{lib/memcached.rb}, %q{lib/memcached/behaviors.rb}, %q{lib/memcached/exceptions.rb}, %q{lib/memcached/experimental.rb}, %q{lib/memcached/memcached.rb}, %q{lib/memcached/rails.rb}]
15
+ s.files = [%q{BENCHMARKS}, %q{CHANGELOG}, %q{LICENSE}, %q{Manifest}, %q{README.rdoc}, %q{Rakefile}, %q{TODO}, %q{ext/extconf-make.rb}, %q{ext/extconf.rb}, %q{ext/libmemcached-0.32/AUTHORS}, %q{ext/libmemcached-0.32/COPYING}, %q{ext/libmemcached-0.32/ChangeLog}, %q{ext/libmemcached-0.32/INSTALL}, %q{ext/libmemcached-0.32/Makefile.am}, %q{ext/libmemcached-0.32/Makefile.in}, %q{ext/libmemcached-0.32/NEWS}, %q{ext/libmemcached-0.32/README}, %q{ext/libmemcached-0.32/THANKS}, %q{ext/libmemcached-0.32/TODO}, %q{ext/libmemcached-0.32/aclocal.m4}, %q{ext/libmemcached-0.32/clients/Makefile.am}, %q{ext/libmemcached-0.32/clients/Makefile.in}, %q{ext/libmemcached-0.32/clients/client_options.h}, %q{ext/libmemcached-0.32/clients/execute.c}, %q{ext/libmemcached-0.32/clients/execute.h}, %q{ext/libmemcached-0.32/clients/generator.c}, %q{ext/libmemcached-0.32/clients/generator.h}, %q{ext/libmemcached-0.32/clients/memcat.c}, %q{ext/libmemcached-0.32/clients/memcp.c}, %q{ext/libmemcached-0.32/clients/memdump.c}, %q{ext/libmemcached-0.32/clients/memerror.c}, %q{ext/libmemcached-0.32/clients/memflush.c}, %q{ext/libmemcached-0.32/clients/memrm.c}, %q{ext/libmemcached-0.32/clients/memslap.c}, %q{ext/libmemcached-0.32/clients/memstat.c}, %q{ext/libmemcached-0.32/clients/utilities.c}, %q{ext/libmemcached-0.32/clients/utilities.h}, %q{ext/libmemcached-0.32/config.h.in}, %q{ext/libmemcached-0.32/config/compile}, %q{ext/libmemcached-0.32/config/config.guess}, %q{ext/libmemcached-0.32/config/config.rpath}, %q{ext/libmemcached-0.32/config/config.sub}, %q{ext/libmemcached-0.32/config/depcomp}, %q{ext/libmemcached-0.32/config/install-sh}, %q{ext/libmemcached-0.32/config/ltmain.sh}, %q{ext/libmemcached-0.32/config/missing}, %q{ext/libmemcached-0.32/configure}, %q{ext/libmemcached-0.32/configure.ac}, %q{ext/libmemcached-0.32/docs/Makefile.am}, %q{ext/libmemcached-0.32/docs/Makefile.in}, %q{ext/libmemcached-0.32/docs/libmemcached.pod}, %q{ext/libmemcached-0.32/docs/libmemcached_examples.pod}, %q{ext/libmemcached-0.32/docs/libmemcachedutil.pod}, %q{ext/libmemcached-0.32/docs/memcached_analyze.pod}, %q{ext/libmemcached-0.32/docs/memcached_auto.pod}, %q{ext/libmemcached-0.32/docs/memcached_behavior.pod}, %q{ext/libmemcached-0.32/docs/memcached_callback.pod}, %q{ext/libmemcached-0.32/docs/memcached_create.pod}, %q{ext/libmemcached-0.32/docs/memcached_delete.pod}, %q{ext/libmemcached-0.32/docs/memcached_dump.pod}, %q{ext/libmemcached-0.32/docs/memcached_flush.pod}, %q{ext/libmemcached-0.32/docs/memcached_flush_buffers.pod}, %q{ext/libmemcached-0.32/docs/memcached_generate_hash_value.pod}, %q{ext/libmemcached-0.32/docs/memcached_get.pod}, %q{ext/libmemcached-0.32/docs/memcached_memory_allocators.pod}, %q{ext/libmemcached-0.32/docs/memcached_pool.pod}, %q{ext/libmemcached-0.32/docs/memcached_quit.pod}, %q{ext/libmemcached-0.32/docs/memcached_sasl.pod}, %q{ext/libmemcached-0.32/docs/memcached_server_st.pod}, %q{ext/libmemcached-0.32/docs/memcached_servers.pod}, %q{ext/libmemcached-0.32/docs/memcached_set.pod}, %q{ext/libmemcached-0.32/docs/memcached_stats.pod}, %q{ext/libmemcached-0.32/docs/memcached_strerror.pod}, %q{ext/libmemcached-0.32/docs/memcached_user_data.pod}, %q{ext/libmemcached-0.32/docs/memcached_verbosity.pod}, %q{ext/libmemcached-0.32/docs/memcached_version.pod}, %q{ext/libmemcached-0.32/docs/memcat.pod}, %q{ext/libmemcached-0.32/docs/memcp.pod}, %q{ext/libmemcached-0.32/docs/memdump.pod}, %q{ext/libmemcached-0.32/docs/memerror.pod}, %q{ext/libmemcached-0.32/docs/memflush.pod}, %q{ext/libmemcached-0.32/docs/memrm.pod}, %q{ext/libmemcached-0.32/docs/memslap.pod}, %q{ext/libmemcached-0.32/docs/memstat.pod}, %q{ext/libmemcached-0.32/libmemcached/Makefile.am}, %q{ext/libmemcached-0.32/libmemcached/Makefile.in}, %q{ext/libmemcached-0.32/libmemcached/byteorder.c}, %q{ext/libmemcached-0.32/libmemcached/common.h}, %q{ext/libmemcached-0.32/libmemcached/crc.c}, %q{ext/libmemcached-0.32/libmemcached/hsieh_hash.c}, %q{ext/libmemcached-0.32/libmemcached/jenkins_hash.c}, %q{ext/libmemcached-0.32/libmemcached/libmemcached.ver}, %q{ext/libmemcached-0.32/libmemcached/libmemcached_probes.d}, %q{ext/libmemcached-0.32/libmemcached/libmemcached_probes.h}, %q{ext/libmemcached-0.32/libmemcached/md5.c}, %q{ext/libmemcached-0.32/libmemcached/memcached.c}, %q{ext/libmemcached-0.32/libmemcached/memcached.h}, %q{ext/libmemcached-0.32/libmemcached/memcached.hpp}, %q{ext/libmemcached-0.32/libmemcached/memcached/README.txt}, %q{ext/libmemcached-0.32/libmemcached/memcached/protocol_binary.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_allocators.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_analyze.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_auto.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_behavior.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_callback.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_configure.h.in}, %q{ext/libmemcached-0.32/libmemcached/memcached_connect.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_constants.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_delete.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_do.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_dump.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_fetch.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_flush.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_flush_buffers.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_get.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_get.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_hash.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_hosts.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_internal.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_io.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_io.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_key.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_parse.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_pool.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_purge.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_quit.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_response.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_result.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_result.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_sasl.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_sasl.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_server.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_server.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_stats.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_storage.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_storage.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_strerror.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_string.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_string.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_touch.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_touch.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_types.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_util.h}, %q{ext/libmemcached-0.32/libmemcached/memcached_verbosity.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_version.c}, %q{ext/libmemcached-0.32/libmemcached/memcached_watchpoint.h}, %q{ext/libmemcached-0.32/libmemcached/murmur_hash.c}, %q{ext/libmemcached-0.32/libmemcached/visibility.h}, %q{ext/libmemcached-0.32/libmemcachedutil/Makefile.am}, %q{ext/libmemcached-0.32/libmemcachedutil/Makefile.in}, %q{ext/libmemcached-0.32/libmemcachedutil/libmemcachedutil.ver}, %q{ext/libmemcached-0.32/libmemcachedutil/memcached_pool.c}, %q{ext/libmemcached-0.32/m4/ac_cxx_compile_stdcxx_0x.m4}, %q{ext/libmemcached-0.32/m4/ac_cxx_header_stdcxx_98.m4}, %q{ext/libmemcached-0.32/m4/aclocal.m4}, %q{ext/libmemcached-0.32/m4/acx_pthread.m4}, %q{ext/libmemcached-0.32/m4/byteorder.m4}, %q{ext/libmemcached-0.32/m4/deprecated.m4}, %q{ext/libmemcached-0.32/m4/enable_utillib.m4}, %q{ext/libmemcached-0.32/m4/extensions.m4}, %q{ext/libmemcached-0.32/m4/hsieh.m4}, %q{ext/libmemcached-0.32/m4/lib-prefix.m4}, %q{ext/libmemcached-0.32/m4/libtool.m4}, %q{ext/libmemcached-0.32/m4/ltoptions.m4}, %q{ext/libmemcached-0.32/m4/ltsugar.m4}, %q{ext/libmemcached-0.32/m4/ltversion.m4}, %q{ext/libmemcached-0.32/m4/lt~obsolete.m4}, %q{ext/libmemcached-0.32/m4/memcached.m4}, %q{ext/libmemcached-0.32/m4/pandora_64bit.m4}, %q{ext/libmemcached-0.32/m4/pandora_canonical.m4}, %q{ext/libmemcached-0.32/m4/pandora_check_compiler_version.m4}, %q{ext/libmemcached-0.32/m4/pandora_check_cxx_standard.m4}, %q{ext/libmemcached-0.32/m4/pandora_enable_dtrace.m4}, %q{ext/libmemcached-0.32/m4/pandora_ensure_gcc_version.m4}, %q{ext/libmemcached-0.32/m4/pandora_have_better_malloc.m4}, %q{ext/libmemcached-0.32/m4/pandora_have_sasl.m4}, %q{ext/libmemcached-0.32/m4/pandora_header_assert.m4}, %q{ext/libmemcached-0.32/m4/pandora_libtool.m4}, %q{ext/libmemcached-0.32/m4/pandora_optimize.m4}, %q{ext/libmemcached-0.32/m4/pandora_shared_ptr.m4}, %q{ext/libmemcached-0.32/m4/pandora_vc_build.m4}, %q{ext/libmemcached-0.32/m4/pandora_warnings.m4}, %q{ext/libmemcached-0.32/m4/pod2man.m4}, %q{ext/libmemcached-0.32/m4/protocol_binary.m4}, %q{ext/libmemcached-0.32/m4/setsockopt.m4}, %q{ext/libmemcached-0.32/m4/visibility.m4}, %q{ext/libmemcached-0.32/support/Makefile.am}, %q{ext/libmemcached-0.32/support/Makefile.in}, %q{ext/libmemcached-0.32/support/libmemcached-fc.spec.in}, %q{ext/libmemcached-0.32/support/libmemcached.pc.in}, %q{ext/libmemcached-0.32/support/libmemcached.spec}, %q{ext/libmemcached-0.32/support/libmemcached.spec.in}, %q{ext/libmemcached-0.32/support/set_benchmark.sh}, %q{ext/libmemcached-0.32/tests/Makefile.am}, %q{ext/libmemcached-0.32/tests/Makefile.in}, %q{ext/libmemcached-0.32/tests/atomsmasher.c}, %q{ext/libmemcached-0.32/tests/function.c}, %q{ext/libmemcached-0.32/tests/ketama_test_cases.h}, %q{ext/libmemcached-0.32/tests/output.cmp}, %q{ext/libmemcached-0.32/tests/output.res}, %q{ext/libmemcached-0.32/tests/output2.res}, %q{ext/libmemcached-0.32/tests/plus.cpp}, %q{ext/libmemcached-0.32/tests/r/memcat.res}, %q{ext/libmemcached-0.32/tests/r/memcp.res}, %q{ext/libmemcached-0.32/tests/r/memrm.res}, %q{ext/libmemcached-0.32/tests/r/memslap.res}, %q{ext/libmemcached-0.32/tests/r/memstat.res}, %q{ext/libmemcached-0.32/tests/server.c}, %q{ext/libmemcached-0.32/tests/server.h}, %q{ext/libmemcached-0.32/tests/start.c}, %q{ext/libmemcached-0.32/tests/t/memcat.test}, %q{ext/libmemcached-0.32/tests/t/memcp.test}, %q{ext/libmemcached-0.32/tests/t/memrm.test}, %q{ext/libmemcached-0.32/tests/t/memslap.test}, %q{ext/libmemcached-0.32/tests/t/memstat.test}, %q{ext/libmemcached-0.32/tests/test.c}, %q{ext/libmemcached-0.32/tests/test.h}, %q{ext/libmemcached-0.32/tests/udp.c}, %q{ext/rlibmemcached.i}, %q{ext/rlibmemcached_wrap.c}, %q{lib/memcached.rb}, %q{lib/memcached/auth.rb}, %q{lib/memcached/behaviors.rb}, %q{lib/memcached/exceptions.rb}, %q{lib/memcached/experimental.rb}, %q{lib/memcached/memcached.rb}, %q{lib/memcached/rails.rb}, %q{test/profile/benchmark.rb}, %q{test/profile/c_profiler.rb}, %q{test/profile/exercise.rb}, %q{test/profile/rb_profiler.rb}, %q{test/profile/valgrind.rb}, %q{test/setup.rb}, %q{test/teardown.rb}, %q{test/test_helper.rb}, %q{test/unit/binding_test.rb}, %q{test/unit/memcached_experimental_test.rb}, %q{test/unit/memcached_test.rb}, %q{test/unit/rails_test.rb}, %q{memcached.gemspec}]
16
+ s.homepage = %q{http://evan.github.com/evan/memcached/}
17
+ s.rdoc_options = [%q{--line-numbers}, %q{--inline-source}, %q{--title}, %q{Memcached}, %q{--main}, %q{README.rdoc}, %q{--exclude=ext/bin}, %q{--exclude=ext/libmemcached-.*/(clients|tests)}]
18
+ s.require_paths = [%q{lib}, %q{ext}]
19
+ s.rubyforge_project = %q{evan}
20
+ s.rubygems_version = %q{1.8.6}
21
+ s.signing_key = %q{/Users/eweaver/p/configuration/gem_certificates/evan_weaver-original-private_key.pem}
22
+ s.summary = %q{An interface to the libmemcached C client.}
23
+ s.test_files = [%q{test/test_helper.rb}, %q{test/unit/binding_test.rb}, %q{test/unit/memcached_experimental_test.rb}, %q{test/unit/memcached_test.rb}, %q{test/unit/rails_test.rb}]
24
24
 
25
25
  if s.respond_to? :specification_version then
26
26
  s.specification_version = 3
@@ -60,7 +60,7 @@ class MemcachedExperimentalTest < Test::Unit::TestCase
60
60
  end
61
61
 
62
62
  def test_get_len
63
- server_get_len_capable {
63
+ server_get_len_capable do
64
64
  value = "foobar"
65
65
  @experimental_cache.set key, value, 0, false
66
66
  result = @experimental_cache.get_len 1, key
@@ -82,52 +82,52 @@ class MemcachedExperimentalTest < Test::Unit::TestCase
82
82
  result = @experimental_cache.get_len 32, key
83
83
  assert_equal result.size, 6
84
84
  assert_equal result, value
85
- }
85
+ end
86
86
  end
87
87
 
88
88
  def test_get_len_0_failure
89
- server_get_len_capable {
89
+ server_get_len_capable do
90
90
  value = "Test that we cannot get 0 bytes with a get_len call."
91
91
  @experimental_cache.set key, value, 0, false
92
92
  assert_raises(Memcached::Failure) do
93
93
  result = @experimental_cache.get_len 0, key
94
94
  end
95
- }
95
+ end
96
96
  end
97
97
 
98
98
  def test_get_len_large
99
- server_get_len_capable {
99
+ server_get_len_capable do
100
100
  value = "Test that we can get the first 20 bytes of a string"
101
101
  @experimental_cache.set key, value, 0, false
102
102
  result = @experimental_cache.get_len 20, key
103
103
  assert_equal result.size, 20
104
104
  assert_equal result, value[0..19]
105
- }
105
+ end
106
106
  end
107
107
 
108
108
  def test_get_len_packed
109
- server_get_len_capable {
109
+ server_get_len_capable do
110
110
  value = [1, 2, 3, 4].pack("Q*")
111
111
  @experimental_cache.set key, value, 0, false
112
112
  result = @experimental_cache.get_len 8, key
113
113
  assert_equal [1], result.unpack("Q*")
114
- }
114
+ end
115
115
  end
116
116
 
117
117
  # get_len is not supported when using the binary protocol.
118
118
  # Make sure the single get variant fails appropriately.
119
119
  def test_get_len_binary
120
- server_get_len_capable {
120
+ server_get_len_capable do
121
121
  @experimental_binary_protocol_cache.set key, @value
122
122
  assert_raises(Memcached::ActionNotSupported) do
123
123
  result = @experimental_binary_protocol_cache.get_len 2, key
124
124
  end
125
- }
125
+ end
126
126
  end
127
127
 
128
128
  # Retrieve the first 64 bits of the values for multiple keys.
129
129
  def test_get_len_multi_packed
130
- server_get_len_capable {
130
+ server_get_len_capable do
131
131
  key_1 = "get_len_1"
132
132
  value_1 = [1, 2, 3].pack("Q*")
133
133
  key_2 = "get_len_missing"
@@ -140,13 +140,13 @@ class MemcachedExperimentalTest < Test::Unit::TestCase
140
140
  {key_1=>value_1[0..7], key_3=>value_3[0..7]},
141
141
  @experimental_cache.get_len(8, keys)
142
142
  )
143
- }
143
+ end
144
144
  end
145
145
 
146
146
  # Test that the entire value is passed back when the length specified
147
147
  # is larger than any of the values (e.g., 32 in the case below).
148
148
  def test_get_len_multi_packed_full
149
- server_get_len_capable {
149
+ server_get_len_capable do
150
150
  key_1 = "get_len_1"
151
151
  value_1 = [1, 2, 3].pack("Q*")
152
152
  key_2 = "get_len_missing"
@@ -159,13 +159,13 @@ class MemcachedExperimentalTest < Test::Unit::TestCase
159
159
  {key_1=>value_1, key_3=>value_3},
160
160
  @experimental_cache.get_len(32, keys)
161
161
  )
162
- }
162
+ end
163
163
  end
164
164
 
165
165
  # get_len is not supported when using the binary protocol.
166
166
  # Test that the multi get variant fails appropriately.
167
167
  def test_get_len_multi_packed_binary
168
- server_get_len_capable {
168
+ server_get_len_capable do
169
169
  key_1 = "get_len_1"
170
170
  value_1 = [1, 2, 3].pack("Q*")
171
171
  key_2 = "get_len_2"
@@ -176,63 +176,63 @@ class MemcachedExperimentalTest < Test::Unit::TestCase
176
176
  assert_raises(Memcached::ActionNotSupported) do
177
177
  result = @experimental_binary_protocol_cache.get_len 2, keys
178
178
  end
179
- }
179
+ end
180
180
  end
181
181
 
182
182
  def test_get_len_multi_completely_missing
183
- server_get_len_capable {
183
+ server_get_len_capable do
184
184
  @experimental_cache.delete "#{key}_1" rescue nil
185
185
  @experimental_cache.delete "#{key}_2" rescue nil
186
186
  assert_equal(
187
187
  {},
188
188
  @experimental_cache.get_len(1, ["#{key}_1", "#{key}_2"])
189
189
  )
190
- }
190
+ end
191
191
  end
192
192
 
193
193
  def test_get_len_failure
194
- server_get_len_capable {
194
+ server_get_len_capable do
195
195
  value = "Test that we cannot use get_len without setting the :experimental_features config."
196
196
  assert_raises(NoMethodError) do
197
197
  result = @cache.get_len 10, key
198
198
  end
199
- }
199
+ end
200
200
  end
201
201
 
202
202
  def test_cas
203
- server_get_len_capable {
203
+ server_get_len_capable do
204
204
  # Get the first three chars of the value back.
205
205
  @experimental_cas_cache.set(key, "foo_bar", 0, false)
206
206
  assert_equal "foo", @experimental_cas_cache.get_len(3, key)
207
207
  assert_equal "foo_bar", @experimental_cas_cache.get_len(7, key)
208
- }
208
+ end
209
209
  end
210
210
 
211
211
  # Touch command
212
212
 
213
213
  def test_touch_capability
214
- server_touch_capable {
215
- @cache.set(key, "value", 3)
214
+ server_touch_capable do
215
+ @experimental_binary_protocol_cache.set(key, "value", 10)
216
216
  assert_nothing_raised do
217
- @experimental_binary_protocol_cache.touch(key, 10)
217
+ @experimental_binary_protocol_cache.touch(key, 20)
218
218
  end
219
219
  assert_raises(Memcached::ActionNotSupported) do
220
220
  @experimental_cache.touch(key, 10)
221
221
  end
222
- }
222
+ end
223
223
  end
224
224
 
225
225
  def test_touch_missing_key
226
- server_touch_capable {
226
+ server_touch_capable do
227
227
  @experimental_binary_protocol_cache.delete key rescue nil
228
228
  assert_raises(Memcached::NotFound) do
229
229
  @experimental_binary_protocol_cache.touch(key, 10)
230
230
  end
231
- }
231
+ end
232
232
  end
233
233
 
234
234
  def test_touch
235
- server_touch_capable {
235
+ server_touch_capable do
236
236
  @experimental_binary_protocol_cache.set key, @value, 2
237
237
  assert_equal @value, @experimental_binary_protocol_cache.get(key)
238
238
  sleep(1)
@@ -244,7 +244,7 @@ class MemcachedExperimentalTest < Test::Unit::TestCase
244
244
  assert_raises(Memcached::NotFound) do
245
245
  @experimental_binary_protocol_cache.get(key)
246
246
  end
247
- }
247
+ end
248
248
  end
249
249
 
250
250
  # Memory cleanup
@@ -1,10 +1,12 @@
1
1
 
2
2
  require File.expand_path("#{File.dirname(__FILE__)}/../test_helper")
3
+ require 'active_support/duration'
3
4
 
4
5
  class RailsTest < Test::Unit::TestCase
5
6
 
6
7
  def setup
7
8
  @servers = ['127.0.0.1:43042', '127.0.0.1:43043', "#{UNIX_SOCKET_NAME}0"]
9
+ @duration = ActiveSupport::Duration.new(2592000, [[:months, 1]])
8
10
  @namespace = 'rails_test'
9
11
  @cache = Memcached::Rails.new(:servers => @servers, :namespace => @namespace)
10
12
  @value = OpenStruct.new(:a => 1, :b => 2, :c => GenericClass)
@@ -18,6 +20,7 @@ class RailsTest < Test::Unit::TestCase
18
20
  end
19
21
 
20
22
  def test_exist
23
+ @cache.delete(key)
21
24
  assert !@cache.exist?(key)
22
25
  @cache.set key, nil
23
26
  assert @cache.exist?(key)
@@ -115,10 +118,70 @@ class RailsTest < Test::Unit::TestCase
115
118
  assert_equal @namespace, @cache.namespace
116
119
  end
117
120
 
121
+ def test_active
122
+ assert @cache.active?
123
+ end
124
+
125
+ def test_servers
126
+ compare_servers @cache, @servers
127
+ end
128
+
129
+ def test_servers_alive
130
+ @cache.servers.each do |server|
131
+ assert server.alive?
132
+ end
133
+ end
134
+
135
+ def test_set_servers
136
+ cache = Memcached::Rails.new(:servers => @servers, :namespace => @namespace)
137
+ compare_servers cache, @servers
138
+ cache.set_servers cache.servers
139
+ cache = Memcached::Rails.new(:servers => @servers.first, :namespace => @namespace)
140
+ cache.set_servers @servers.first
141
+ end
142
+
143
+ def test_cas_with_duration
144
+ cache = Memcached::Rails.new(:servers => @servers, :namespace => @namespace, :support_cas => true)
145
+ value2 = OpenStruct.new(:d => 3, :e => 4, :f => GenericClass)
146
+ cache.set key, @value
147
+ cache.cas(key, @duration) do |current|
148
+ assert_equal @value, current
149
+ value2
150
+ end
151
+ assert_equal value2, cache.get(key)
152
+ end
153
+
154
+ def test_set_with_duration
155
+ @cache.set key, @value, @duration
156
+ result = @cache.get key
157
+ assert_equal @value, result
158
+ end
159
+
160
+ def test_set_with_invalid_type
161
+ assert_raises(TypeError) do
162
+ @cache.set key, Object.new, 0, true
163
+ end
164
+ end
165
+
166
+ def test_write_with_duration
167
+ @cache.write key, @value, :ttl => @duration
168
+ result = @cache.get key
169
+ assert_equal @value, result
170
+ end
171
+
172
+ def test_add_with_duration
173
+ @cache.add key, @value, @duration
174
+ result = @cache.get key
175
+ assert_equal @value, result
176
+ end
177
+
118
178
  private
119
179
 
120
180
  def key
121
181
  caller.first[/.*[` ](.*)'/, 1] # '
122
182
  end
123
183
 
184
+ def compare_servers(cache, servers)
185
+ cache.servers.map{|s| "#{s.hostname}:#{s.port}".chomp(':0')} == servers
186
+ end
124
187
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memcached
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.7
4
+ version: 1.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -50,7 +50,7 @@ cert_chain:
50
50
  -----END CERTIFICATE-----
51
51
 
52
52
  '
53
- date: 2012-02-12 00:00:00.000000000 Z
53
+ date: 2012-02-27 00:00:00.000000000Z
54
54
  dependencies: []
55
55
  description: An interface to the libmemcached C client.
56
56
  email: ''
@@ -313,7 +313,7 @@ files:
313
313
  - test/unit/memcached_test.rb
314
314
  - test/unit/rails_test.rb
315
315
  - memcached.gemspec
316
- homepage: http://fauna.github.com/fauna/memcached/
316
+ homepage: http://evan.github.com/evan/memcached/
317
317
  licenses: []
318
318
  post_install_message:
319
319
  rdoc_options:
@@ -341,8 +341,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
341
341
  - !ruby/object:Gem::Version
342
342
  version: '1.2'
343
343
  requirements: []
344
- rubyforge_project: fauna
345
- rubygems_version: 1.8.16
344
+ rubyforge_project: evan
345
+ rubygems_version: 1.8.6
346
346
  signing_key:
347
347
  specification_version: 3
348
348
  summary: An interface to the libmemcached C client.
metadata.gz.sig CHANGED
Binary file