class Enabler::Storage::Redis

Attributes

redis[R]

Public Class Methods

new(redis) click to toggle source
# File lib/enabler/storage/redis.rb, line 7
def initialize(redis)
        @redis = redis
end

Public Instance Methods

add!(feature, model) click to toggle source
# File lib/enabler/storage/redis.rb, line 11
def add!(feature, model)
        redis.sadd key(feature, model), model.id
end
enabled?(feature, model) click to toggle source
# File lib/enabler/storage/redis.rb, line 19
def enabled?(feature, model)
        redis.sismember key(feature, model), model.id 
end
remove!(feature, model) click to toggle source
# File lib/enabler/storage/redis.rb, line 15
def remove!(feature, model)
        redis.srem key(feature, model), model.id
end

Private Instance Methods

key(feature, model) click to toggle source
# File lib/enabler/storage/redis.rb, line 25
def key(feature, model)
        "enabler::#{underscore model.class.to_s}::#{underscore feature.to_s}"
end
underscore(string) click to toggle source

taking from active support

# File lib/enabler/storage/redis.rb, line 30
def underscore(string)
        string.gsub(/::/, '/').
                gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
                gsub(/([a-z\d])([A-Z])/,'\1_\2').
                tr("-", "_").
                downcase
end