class Seven::RedisStore
Public Class Methods
new(redis_opts)
click to toggle source
# File lib/seven/redis_store.rb, line 2 def initialize(redis_opts) opts = redis_opts.symbolize_keys @redis = opts[:redis] end
Public Instance Methods
clear(user)
click to toggle source
# File lib/seven/redis_store.rb, line 21 def clear(user) @redis.del(get_user_key(user.id)) end
clear_all!()
click to toggle source
# File lib/seven/redis_store.rb, line 25 def clear_all! @redis.eval( "local keys = redis.call('keys', 'seven_abilities/*')\n" + "for i = 1, #keys,5000 do\n" + " redis.call('del', unpack(keys, i, math.min(i+4999, #keys)))\n" + "end\n" + "return #keys" ) end
del(user, ability)
click to toggle source
# File lib/seven/redis_store.rb, line 11 def del(user, ability) @redis.hdel(get_user_key(user.id), ability) end
list(user)
click to toggle source
# File lib/seven/redis_store.rb, line 15 def list(user) @redis.hgetall(get_user_key(user.id)).symbolize_keys.tap do |abilities| abilities.each { |k, v| abilities[k] = v == '1' ? true : false } end end
set(user, ability, allowed)
click to toggle source
# File lib/seven/redis_store.rb, line 7 def set(user, ability, allowed) @redis.hset(get_user_key(user.id), ability, allowed ? '1' : '0') end
Private Instance Methods
get_user_key(user_id)
click to toggle source
# File lib/seven/redis_store.rb, line 37 def get_user_key(user_id) "seven_abilities/#{user_id}" end