redis-classy 0.9.0 → 0.9.1
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/README.rdoc +35 -4
- data/VERSION +1 -1
- data/lib/redis/classy.rb +4 -4
- data/redis-classy.gemspec +2 -2
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -8,6 +8,27 @@ This library contains only 27 lines of code, yet powerful when you need more abs
|
|
8
8
|
|
9
9
|
Requies the redis-namespace gem.
|
10
10
|
|
11
|
+
== Synopsis
|
12
|
+
|
13
|
+
With the vanilla redis gem, you've been normally doing this:
|
14
|
+
|
15
|
+
redis = Redis.new
|
16
|
+
redis.set "foo", "bar"
|
17
|
+
|
18
|
+
With the redis-namespace gem, you could add a prefix in the following manner:
|
19
|
+
|
20
|
+
redis_ns = Redis::Namespace.new('ns', :redis => redis)
|
21
|
+
redis_ns['foo'] = 'bar' # equivalent of => redis.set "ns:foo", "bar"
|
22
|
+
|
23
|
+
Now, with the redis-classy gem, you could finally do:
|
24
|
+
|
25
|
+
class Prefix < Redis::Classy
|
26
|
+
end
|
27
|
+
|
28
|
+
Prefix.set "foo", "bar" # equivalent of => redis.set "Prefix:foo", "bar"
|
29
|
+
Prefix.get "foo"
|
30
|
+
=> "bar"
|
31
|
+
|
11
32
|
== Install
|
12
33
|
|
13
34
|
gem install redis-classy
|
@@ -18,11 +39,12 @@ In Gemfile:
|
|
18
39
|
|
19
40
|
gem "redis-classy"
|
20
41
|
|
21
|
-
In
|
42
|
+
In config/initializers/redis_classy.rb:
|
22
43
|
|
23
44
|
Redis::Classy.db = Redis.new
|
24
45
|
|
25
46
|
Now you can write models that inherit the Redis::Classy class, automatically prefixing keys with its class name.
|
47
|
+
You can use any Redis commands on the class, since they are simply passed to the Redis instance.
|
26
48
|
|
27
49
|
class UniqueUser < Redis::Classy
|
28
50
|
def self.nuke
|
@@ -60,12 +82,12 @@ In most cases you may be just fine with class methods, but by creating an instan
|
|
60
82
|
counter.key
|
61
83
|
=> "Room:123"
|
62
84
|
|
63
|
-
You also have access to the non-namespaced, raw Redis instance via Redis::Classy
|
85
|
+
You also have access to the non-namespaced, raw Redis instance via Redis::Classy
|
64
86
|
|
65
|
-
Redis::Classy.
|
87
|
+
Redis::Classy.keys "UniqueUser:*"
|
66
88
|
=> ["UniqueUser:2011-02-28", "UniqueUser:2011-03-01"]
|
67
89
|
|
68
|
-
Redis::Classy.
|
90
|
+
Redis::Classy.multi do
|
69
91
|
UniqueUser.sadd "2011-02-28", @user_a.id
|
70
92
|
UniqueUser.sadd "2011-02-28", @user_b.id
|
71
93
|
end
|
@@ -73,3 +95,12 @@ You also have access to the non-namespaced, raw Redis instance via Redis::Classy
|
|
73
95
|
Since the "db" attribute is a class instance variable, you can dynamically assign different databases for each class.
|
74
96
|
|
75
97
|
UniqueUser.db = Redis::Namespace.new("UniqueUser", :redis => Redis.new(:host => "another.host"))
|
98
|
+
|
99
|
+
== Reference
|
100
|
+
|
101
|
+
Dependency:
|
102
|
+
https://github.com/ezmobius/redis-rb
|
103
|
+
https://github.com/defunkt/redis-namespace
|
104
|
+
|
105
|
+
Use case:
|
106
|
+
https://github.com/kenn/redis-mutex
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.1
|
data/lib/redis/classy.rb
CHANGED
@@ -9,8 +9,8 @@ class Redis
|
|
9
9
|
subclass.db = Redis::Namespace.new(subclass.name, :redis => self.db)
|
10
10
|
end
|
11
11
|
|
12
|
-
def method_missing(method_name, *args)
|
13
|
-
self.db.send(method_name, *args)
|
12
|
+
def method_missing(method_name, *args, &block)
|
13
|
+
self.db.send(method_name, *args, &block)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
@@ -20,8 +20,8 @@ class Redis
|
|
20
20
|
self.key = key
|
21
21
|
end
|
22
22
|
|
23
|
-
def method_missing(method_name, *args)
|
24
|
-
self.class.send(method_name, self.key, *args)
|
23
|
+
def method_missing(method_name, *args, &block)
|
24
|
+
self.class.send(method_name, self.key, *args, &block)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
data/redis-classy.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{redis-classy}
|
8
|
-
s.version = "0.9.
|
8
|
+
s.version = "0.9.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kenn Ejima"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-03-16}
|
13
13
|
s.description = %q{Make the prefix part of the Redis keys a class name for your model.}
|
14
14
|
s.email = %q{kenn.ejima@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: redis-classy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.9.
|
5
|
+
version: 0.9.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Kenn Ejima
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-03-16 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -94,7 +94,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
94
94
|
requirements:
|
95
95
|
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
hash:
|
97
|
+
hash: -2882799030924789426
|
98
98
|
segments:
|
99
99
|
- 0
|
100
100
|
version: "0"
|