memcache 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :build:
3
- :minor: 0
4
- :patch: 1
3
+ :minor: 1
4
+ :patch: 0
5
5
  :major: 1
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, opts)
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, opts)
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, opts = {})
352
- return value if value.nil? or opts[:raw]
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, opts = {})
9
- return get([keys], opts)[keys.to_s] unless keys.kind_of?(Array)
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
@@ -23,7 +23,7 @@ class Memcache
23
23
  end
24
24
 
25
25
  def inspect
26
- "<Memcache::Server: %s:%d (%s)>" % [@host, @port, @status]
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 = false)
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.1"
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-20}
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.1
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-20 00:00:00 -08:00
12
+ date: 2009-11-25 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15