memcached 1.3.7 → 1.4.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.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