redis_buddy 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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