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 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