redis_buddy 0.1.9 → 0.2.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.
@@ -0,0 +1,14 @@
1
+ class DistributedJsonRedis < Redis::Distributed
2
+
3
+ # backwards compat
4
+ def self.inherited(child)
5
+ ActiveSupport::Deprecation.warn("#{child.to_s} is deprecated. Use DistributedJsonRedis instead.") if defined?(ActiveSupport::Deprecation)
6
+ end
7
+
8
+ def initialize(addresses)
9
+ nodes = addresses.map do |address|
10
+ JsonRedis.new(address)
11
+ end
12
+ @ring = Redis::HashRing.new(nodes)
13
+ end
14
+ end
@@ -1,13 +1,4 @@
1
- # (c) 2009 Luca Guidi
2
-
3
- class DistributedMarshaledRedis < Redis::Distributed
4
- def initialize(addresses)
5
- nodes = addresses.map do |address|
6
- MarshaledRedis.new address
7
- end
8
- @ring = Redis::HashRing.new nodes
9
- end
10
-
11
- alias_method :flush_db, :delete_cloud!
1
+ # backwards compat
2
+ class DistributedMarshaledRedis < DistributedJsonRedis
12
3
  end
13
4
 
@@ -0,0 +1,29 @@
1
+ class JsonRedis < Redis
2
+
3
+ # backwards compat
4
+ def self.inherited(child)
5
+ ActiveSupport::Deprecation.warn("#{child.to_s} is deprecated. Use JsonRedis instead.") if defined?(ActiveSupport::Deprecation)
6
+ end
7
+
8
+ def set(key, value)
9
+ value = Yajl.dump(value) if encode?(value)
10
+ super(key, value)
11
+ end
12
+
13
+ def setex(key, value, expires)
14
+ value = Yajl.dump(value) if encode?(value)
15
+ super(key, value, expires)
16
+ end
17
+
18
+ def get(key)
19
+ result = @client.call(:get, key)
20
+ result = Yajl.load(result) if result
21
+ result
22
+ end
23
+
24
+ private
25
+ def encode?(value)
26
+ !value.is_a?(Integer)
27
+ end
28
+ end
29
+
@@ -1,36 +1,4 @@
1
- # (c) 2009 Luca Guidi
2
-
3
- class MarshaledRedis < Redis
4
- def set(key, val, options = nil)
5
- val = Marshal.dump val unless raw?(options)
6
- super key, val, expires_in(options)
7
- end
8
-
9
- def set_unless_exists(key, val, options = nil)
10
- val = Marshal.dump val unless raw?(options)
11
- super key, val
12
- end
13
-
14
- def get(key, options = nil)
15
- result = call_command([:get, key])
16
- result = Marshal.load result if unmarshal?(result, options)
17
- result
18
- end
19
-
20
- private
21
- def unmarshal?(result, options)
22
- result && result.size > 0 && !raw?(options)
23
- end
24
-
25
- def raw?(options)
26
- options && options[:raw]
27
- end
28
-
29
- def expires_in(options)
30
- if options
31
- # Rack::Session Merb Rails/Sinatra
32
- options[:expire_after] || options[:expires_in] || options[:expire_in]
33
- end
34
- end
1
+ # backwards compat
2
+ class MarshaledRedis < JsonRedis
35
3
  end
36
4
 
@@ -7,7 +7,7 @@ class RedisFactory
7
7
  if addresses.size > 1
8
8
  DistributedMarshaledRedis.new addresses
9
9
  else
10
- MarshaledRedis.new addresses.first || {}
10
+ JsonRedis.new addresses.first || {}
11
11
  end
12
12
  end
13
13
 
@@ -8,54 +8,47 @@ module ActiveSupport
8
8
  end
9
9
 
10
10
  def write(key, value, options = nil)
11
- super do
12
- method = options && options[:unless_exist] ? :set_unless_exists : :set
11
+ method = options && options[:unless_exist] ? :set_unless_exists : :set
13
12
 
14
- if options && options[:expire]
15
- if info['redis_version'] <= '1.2.6'
16
- method = :set
17
- options = options[:expire]
18
- else
19
- @data.send(:setex, options[:expire], value)
20
- end
21
- end
22
- @data.send(method, key, value, options) if options.is_a?(Integer) || !options || (options && !options[:expire])
13
+ if options && options[:expire]
14
+ if (info.is_a?(Array) ? info.first['redis_version'] : info['redis_version']) <= '1.2.6'
15
+ @data.send(:set, key, value)
16
+ @data.send(:expire, key, options[:expire])
17
+ else
18
+ @data.send(:setex, key, value,options[:expire])
19
+ end
20
+ else
21
+ @data.send(method, key, value)
23
22
  end
24
23
  end
25
24
 
26
- def read(key, options = nil)
27
- super do
28
- @data.get key
29
- end
25
+ def read(key)
26
+ @data.get(key)
30
27
  end
31
28
 
32
- def ttl(key, options = nil)
33
- @data.ttl key, options
29
+ def ttl(key)
30
+ @data.ttl(key)
34
31
  end
35
32
 
36
- def delete(key, options = nil)
37
- super do
38
- @data.del key
39
- end
33
+ def delete(key)
34
+ @data.del(key)
40
35
  end
41
36
 
42
- def exist?(key, options = nil)
43
- super do
44
- @data.exists key
45
- end
37
+ def exist?(key)
38
+ @data.exists(key)
46
39
  end
47
40
 
48
- def increment(key, amount = 1)
49
- @data.incr key, amount
41
+ def increment(key, amount = nil)
42
+ amount.nil? ? @data.incr(key) : @data.incrby(key, amount)
50
43
  end
51
44
 
52
- def decrement(key, amount = 1)
53
- @data.decr key, amount
45
+ def decrement(key, amount = nil)
46
+ amount.nil? ? @data.decr(key) : @data.decrby(key, amount)
54
47
  end
55
48
 
56
- def delete_matched(matcher, options = nil)
49
+ def delete_matched(matcher)
57
50
  super do
58
- @data.keys(matcher).each { |key| @data.delete key }
51
+ @data.keys(matcher).each { |key| @data.del(key) }
59
52
  end
60
53
  end
61
54
 
data/lib/redis_buddy.rb CHANGED
@@ -3,6 +3,8 @@ require 'redis/distributed'
3
3
  require 'redis/namespace'
4
4
 
5
5
  require 'redis/redis_factory'
6
+ require 'redis/json_redis'
7
+ require 'redis/distributed_json_redis'
6
8
  require 'redis/marshaled_redis'
7
9
  require 'redis/distributed_marshaled_redis'
8
10
 
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 1
8
- - 9
9
- version: 0.1.9
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ole Riesenberg
@@ -14,37 +14,52 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-14 00:00:00 +02:00
17
+ date: 2010-09-24 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: redis
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ~>
26
27
  - !ruby/object:Gem::Version
27
28
  segments:
28
- - 1
29
+ - 2
29
30
  - 0
30
- - 7
31
- version: 1.0.7
31
+ - 6
32
+ version: 2.0.6
32
33
  type: :runtime
33
34
  version_requirements: *id001
34
35
  - !ruby/object:Gem::Dependency
35
36
  name: redis-namespace
36
37
  prerelease: false
37
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
38
40
  requirements:
39
41
  - - ~>
40
42
  - !ruby/object:Gem::Version
41
43
  segments:
42
44
  - 0
43
- - 4
44
- - 2
45
- version: 0.4.2
45
+ - 10
46
+ - 0
47
+ version: 0.10.0
46
48
  type: :runtime
47
49
  version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: yajl-ruby
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ type: :runtime
62
+ version_requirements: *id003
48
63
  description: A namespaced Redis Cache Store for Rails 3, based on redis-store
49
64
  email: labs@buddybrand.de
50
65
  executables: []
@@ -54,7 +69,9 @@ extensions: []
54
69
  extra_rdoc_files:
55
70
  - README.md
56
71
  files:
72
+ - lib/redis/distributed_json_redis.rb
57
73
  - lib/redis/distributed_marshaled_redis.rb
74
+ - lib/redis/json_redis.rb
58
75
  - lib/redis/marshaled_redis.rb
59
76
  - lib/redis/redis_factory.rb
60
77
  - lib/redis_buddy.rb
@@ -70,6 +87,7 @@ rdoc_options:
70
87
  require_paths:
71
88
  - lib
72
89
  required_ruby_version: !ruby/object:Gem::Requirement
90
+ none: false
73
91
  requirements:
74
92
  - - ">="
75
93
  - !ruby/object:Gem::Version
@@ -77,6 +95,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
77
95
  - 0
78
96
  version: "0"
79
97
  required_rubygems_version: !ruby/object:Gem::Requirement
98
+ none: false
80
99
  requirements:
81
100
  - - ">="
82
101
  - !ruby/object:Gem::Version
@@ -86,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
105
  requirements: []
87
106
 
88
107
  rubyforge_project:
89
- rubygems_version: 1.3.6
108
+ rubygems_version: 1.3.7
90
109
  signing_key:
91
110
  specification_version: 3
92
111
  summary: A namespaced Redis Cache Store for Rails 3