fiveruns-memcache-client 1.5.0.4 → 1.5.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/lib/memcache.rb +2 -33
- data/test/test_mem_cache.rb +0 -11
- metadata +3 -4
- data/ext/crc32/crc32.c +0 -38
- data/ext/crc32/extconf.rb +0 -5
data/History.txt
CHANGED
data/lib/memcache.rb
CHANGED
@@ -4,38 +4,7 @@ require 'socket'
|
|
4
4
|
require 'thread'
|
5
5
|
require 'timeout'
|
6
6
|
require 'rubygems'
|
7
|
-
|
8
|
-
class String
|
9
|
-
|
10
|
-
##
|
11
|
-
# Uses the ITU-T polynomial in the CRC32 algorithm.
|
12
|
-
begin
|
13
|
-
require 'crc32'
|
14
|
-
def crc32_ITU_T
|
15
|
-
CRC32.itu_t(self)
|
16
|
-
end
|
17
|
-
rescue LoadError => e
|
18
|
-
puts "Loading with slow CRC32 ITU-T implementation: #{e.message}"
|
19
|
-
|
20
|
-
def crc32_ITU_T
|
21
|
-
r = 0xFFFFFFFF
|
22
|
-
|
23
|
-
each_byte do |i|
|
24
|
-
r ^= i
|
25
|
-
8.times do
|
26
|
-
if (r & 1) != 0 then
|
27
|
-
r = (r>>1) ^ 0xEDB88320
|
28
|
-
else
|
29
|
-
r >>= 1
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
r ^ 0xFFFFFFFF
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
7
|
+
require 'zlib'
|
39
8
|
|
40
9
|
##
|
41
10
|
# A Ruby client library for memcached.
|
@@ -500,7 +469,7 @@ class MemCache
|
|
500
469
|
# sketchy for down servers).
|
501
470
|
|
502
471
|
def hash_for(key)
|
503
|
-
(key
|
472
|
+
(Zlib.crc32(key) >> 16) & 0x7fff
|
504
473
|
end
|
505
474
|
|
506
475
|
##
|
data/test/test_mem_cache.rb
CHANGED
@@ -164,17 +164,6 @@ class TestMemCache < Test::Unit::TestCase
|
|
164
164
|
assert_match /get my_namespace:key\r\n/, server.socket.written.string
|
165
165
|
end
|
166
166
|
|
167
|
-
def test_crc32_ITU_T
|
168
|
-
assert_equal 0, ''.crc32_ITU_T
|
169
|
-
# First value is the fast C version, last value is the pure Ruby version
|
170
|
-
assert_in [-886631737, 1260851911], 'my_namespace:key'.crc32_ITU_T
|
171
|
-
assert_in [-224284233, 870540390], 'my_name√space:key'.crc32_ITU_T
|
172
|
-
end
|
173
|
-
|
174
|
-
def assert_in(possible_values, value)
|
175
|
-
assert possible_values.include?(value), "#{possible_values.inspect} should contain #{value}"
|
176
|
-
end
|
177
|
-
|
178
167
|
def test_initialize
|
179
168
|
cache = MemCache.new :namespace => 'my_namespace', :readonly => true
|
180
169
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fiveruns-memcache-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.0.
|
4
|
+
version: 1.5.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Hodel
|
@@ -19,8 +19,8 @@ description: A Ruby-based memcached client library
|
|
19
19
|
email: mperham@gmail.com
|
20
20
|
executables: []
|
21
21
|
|
22
|
-
extensions:
|
23
|
-
|
22
|
+
extensions: []
|
23
|
+
|
24
24
|
extra_rdoc_files: []
|
25
25
|
|
26
26
|
files:
|
@@ -30,7 +30,6 @@ files:
|
|
30
30
|
- Rakefile
|
31
31
|
- lib/memcache.rb
|
32
32
|
- lib/memcache_util.rb
|
33
|
-
- ext/crc32/crc32.c
|
34
33
|
has_rdoc: false
|
35
34
|
homepage: http://github.com/fiveruns/memcache-client
|
36
35
|
post_install_message:
|
data/ext/crc32/crc32.c
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
#include "ruby.h"
|
2
|
-
#include "stdio.h"
|
3
|
-
|
4
|
-
static VALUE t_itu_t(VALUE self, VALUE string) {
|
5
|
-
VALUE str = StringValue(string);
|
6
|
-
#ifdef RSTRING_LEN
|
7
|
-
int n = RSTRING_LEN(str);
|
8
|
-
#else
|
9
|
-
int n = RSTRING(str)->len;
|
10
|
-
#endif
|
11
|
-
|
12
|
-
#ifdef RSTRING_PTR
|
13
|
-
char* p = RSTRING_PTR(str);
|
14
|
-
#else
|
15
|
-
char* p = RSTRING(str)->ptr;
|
16
|
-
#endif
|
17
|
-
|
18
|
-
unsigned long r = 0xFFFFFFFF;
|
19
|
-
int i, j;
|
20
|
-
|
21
|
-
for (i = 0; i < n; i++) {
|
22
|
-
r = r ^ p[i];
|
23
|
-
for (j = 0; j < 8; j++) {
|
24
|
-
if ( (r & 1) != 0 ) {
|
25
|
-
r = (r >> 1) ^ 0xEDB88320;
|
26
|
-
} else {
|
27
|
-
r = r >> 1;
|
28
|
-
}
|
29
|
-
}
|
30
|
-
}
|
31
|
-
return INT2FIX(r ^ 0xFFFFFFFF);
|
32
|
-
}
|
33
|
-
|
34
|
-
VALUE cCRC32;
|
35
|
-
void Init_crc32() {
|
36
|
-
cCRC32 = rb_define_module("CRC32");
|
37
|
-
rb_define_module_function(cCRC32, "itu_t", t_itu_t, 1);
|
38
|
-
}
|