memcache 1.0.1 → 1.1.0
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/VERSION.yml +2 -2
- data/lib/memcache.rb +5 -5
- data/lib/memcache/segmented_server.rb +4 -4
- data/lib/memcache/server.rb +2 -2
- data/memcache.gemspec +2 -2
- metadata +2 -2
data/VERSION.yml
CHANGED
data/lib/memcache.rb
CHANGED
@@ -82,7 +82,7 @@ class Memcache
|
|
82
82
|
else
|
83
83
|
value = server(key).get(key, opts[:cas])
|
84
84
|
end
|
85
|
-
unmarshal(value,
|
85
|
+
opts[:raw] ? value : unmarshal(value, key)
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
@@ -329,7 +329,7 @@ protected
|
|
329
329
|
keys_by_server.each do |server, keys|
|
330
330
|
server.get(keys, opts[:cas]).each do |key, value|
|
331
331
|
input_key = key_to_input_key[key]
|
332
|
-
results[input_key] = unmarshal(value,
|
332
|
+
results[input_key] = opts[:raw] ? value : unmarshal(value, key)
|
333
333
|
end
|
334
334
|
end
|
335
335
|
results
|
@@ -348,15 +348,15 @@ protected
|
|
348
348
|
opts[:raw] ? value : Marshal.dump(value)
|
349
349
|
end
|
350
350
|
|
351
|
-
def unmarshal(value,
|
352
|
-
return value if value.nil?
|
351
|
+
def unmarshal(value, key = nil)
|
352
|
+
return value if value.nil?
|
353
353
|
|
354
354
|
object = Marshal.load(value)
|
355
355
|
object.memcache_flags = value.memcache_flags
|
356
356
|
object.memcache_cas = value.memcache_cas
|
357
357
|
object
|
358
358
|
rescue Exception => e
|
359
|
-
puts "Memcache read error: #{e.class} #{e.to_s} while unmarshalling value: #{value}"
|
359
|
+
puts "Memcache read error: #{e.class} #{e.to_s} on key '#{key}' while unmarshalling value: #{value}"
|
360
360
|
nil
|
361
361
|
end
|
362
362
|
|
@@ -5,8 +5,8 @@ class Memcache
|
|
5
5
|
MAX_SIZE = 1000000 # bytes
|
6
6
|
PARTIAL_VALUE = 0x40000000
|
7
7
|
|
8
|
-
def get(keys,
|
9
|
-
return get([keys],
|
8
|
+
def get(keys, cas = nil)
|
9
|
+
return get([keys], cas)[keys.to_s] unless keys.kind_of?(Array)
|
10
10
|
return {} if keys.empty?
|
11
11
|
|
12
12
|
results = super
|
@@ -38,8 +38,8 @@ class Memcache
|
|
38
38
|
if value
|
39
39
|
value.memcache_cas = results[key].memcache_cas
|
40
40
|
value.memcache_flags = results[key].memcache_flags ^ PARTIAL_VALUE
|
41
|
-
results[key] = value
|
42
41
|
end
|
42
|
+
results[key] = value
|
43
43
|
end
|
44
44
|
results
|
45
45
|
end
|
@@ -86,7 +86,7 @@ class Memcache
|
|
86
86
|
if value and value.size > MAX_SIZE
|
87
87
|
master_key, parts = segment(key, value)
|
88
88
|
parts.each do |hash, data|
|
89
|
-
set(hash, data, expiry)
|
89
|
+
set(hash, data, expiry + 1) # We want the segments to expire slightly after the master key.
|
90
90
|
end
|
91
91
|
[master_key, flags | PARTIAL_VALUE]
|
92
92
|
else
|
data/lib/memcache/server.rb
CHANGED
@@ -23,7 +23,7 @@ class Memcache
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def inspect
|
26
|
-
"
|
26
|
+
"<#{self.class.name}: %s:%d (%s)>" % [@host, @port, @status]
|
27
27
|
end
|
28
28
|
|
29
29
|
def name
|
@@ -87,7 +87,7 @@ class Memcache
|
|
87
87
|
get(keys, true)
|
88
88
|
end
|
89
89
|
|
90
|
-
def get(keys, cas =
|
90
|
+
def get(keys, cas = nil)
|
91
91
|
return get([keys], cas)[keys.to_s] unless keys.kind_of?(Array)
|
92
92
|
return {} if keys.empty?
|
93
93
|
|
data/memcache.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{memcache}
|
8
|
-
s.version = "1.0
|
8
|
+
s.version = "1.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Justin Balthrop"]
|
12
|
-
s.date = %q{2009-11-
|
12
|
+
s.date = %q{2009-11-25}
|
13
13
|
s.description = %q{Ruby client for memcached supporting advanced protocol features and pluggable architecture.}
|
14
14
|
s.email = %q{code@justinbalthrop.com}
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memcache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Balthrop
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-25 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|