Class: DynportTools::Features
- Inherits:
-
Object
- Object
- DynportTools::Features
- Defined in:
- lib/dynport_tools/features.rb
Class Attribute Summary collapse
-
.features ⇒ Object
Returns the value of attribute features.
-
.redis ⇒ Object
Returns the value of attribute redis.
Class Method Summary collapse
Class Attribute Details
.features ⇒ Object
Returns the value of attribute features.
3 4 5 |
# File 'lib/dynport_tools/features.rb', line 3 def features @features end |
.redis ⇒ Object
Returns the value of attribute redis.
3 4 5 |
# File 'lib/dynport_tools/features.rb', line 3 def redis @redis end |
Class Method Details
.add_user(feature, user) ⇒ Object
15 16 17 18 |
# 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) ⇒ Object
5 6 7 8 9 10 11 12 13 |
# 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) ⇒ Object
20 21 22 |
# File 'lib/dynport_tools/features.rb', line 20 def remove_user(feature, user) redis.srem("features/#{feature}/users", user.id) end |