Class: Aclatraz::Store::Redis
- Inherits:
-
Object
- Object
- Aclatraz::Store::Redis
- Includes:
- Helpers
- Defined in:
- lib/aclatraz/store/redis.rb
Constant Summary collapse
- ROLES_KEY =
"aclatraz.roles"
- MEMBER_ROLES_KEY =
"member.%s.roles"
Instance Method Summary collapse
- #check(role, owner, object = nil) ⇒ Object
- #clear ⇒ Object
- #delete(role, owner, object = nil) ⇒ Object
-
#initialize(*args) ⇒ Redis
constructor
:nodoc:.
- #roles(member = nil) ⇒ Object
- #set(role, owner, object = nil) ⇒ Object
Methods included from Helpers
Constructor Details
#initialize(*args) ⇒ Redis
:nodoc:
15 16 17 |
# File 'lib/aclatraz/store/redis.rb', line 15 def initialize(*args) # :nodoc: @backend = ::Redis.new(*args) end |
Instance Method Details
#check(role, owner, object = nil) ⇒ Object
37 38 39 40 41 |
# File 'lib/aclatraz/store/redis.rb', line 37 def check(role, owner, object=nil) @backend.sismember(role.to_s, pack(owner.id, object)) or begin object && !object.is_a?(Class) ? check(role, owner, object.class) : false end end |
#clear ⇒ Object
47 48 49 |
# File 'lib/aclatraz/store/redis.rb', line 47 def clear @backend.flushdb end |
#delete(role, owner, object = nil) ⇒ Object
43 44 45 |
# File 'lib/aclatraz/store/redis.rb', line 43 def delete(role, owner, object=nil) @backend.srem(role.to_s, pack(owner.id, object)) end |
#roles(member = nil) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/aclatraz/store/redis.rb', line 29 def roles(member=nil) if member @backend.hkeys(MEMBER_ROLES_KEY % member.id.to_s) else @backend.hkeys(ROLES_KEY) end end |
#set(role, owner, object = nil) ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/aclatraz/store/redis.rb', line 19 def set(role, owner, object=nil) @backend.multi do unless object @backend.hset(ROLES_KEY, role, 1) @backend.hset(MEMBER_ROLES_KEY % owner.id.to_s, role, 1) end @backend.sadd(role.to_s, pack(owner.id, object)) end end |