class DynportTools::Features
Attributes
features[RW]
redis[RW]
Public Class Methods
add_user(feature, user)
click to toggle source
# File lib/dynport_tools/features.rb, line 15 def add_user(feature, user) raise "feature #{feature} not defined" if !(features || []).include?(feature) redis.sadd("features/#{feature}/users", user.id) end
feature(name)
click to toggle source
# File lib/dynport_tools/features.rb, line 5 def feature(name) self.features ||= Array.new self.features << name self.class.send(:define_method, :"#{name}_enabled_for?") do |user, &block| enabled = !user.nil? && redis.sismember("features/#{name}/users", user.id.to_s) block.call if enabled && block enabled end end
remove_user(feature, user)
click to toggle source
# File lib/dynport_tools/features.rb, line 20 def remove_user(feature, user) redis.srem("features/#{feature}/users", user.id) end