module Enabler
Constants
- VERSION
Public Class Methods
config()
click to toggle source
# File lib/enabler.rb, line 30 def config Enabler::Config.instance end
configure(&block)
click to toggle source
# File lib/enabler.rb, line 34 def configure(&block) config.instance_eval &block end
disable!(feature, object)
click to toggle source
# File lib/enabler.rb, line 21 def disable!(feature, object) store.remove!(feature, object) config.after_disablings[feature].call(object) if config.after_disablings[feature] end
enable!(feature, object)
click to toggle source
# File lib/enabler.rb, line 16 def enable!(feature, object) store.add!(feature, object) config.after_enablings[feature].call(object) if config.after_enablings[feature] end
enabled?(feature, object)
click to toggle source
# File lib/enabler.rb, line 26 def enabled?(feature, object) enabled_via_rule?(feature, object) || enabled_via_storage?(feature, object) end
store()
click to toggle source
# File lib/enabler.rb, line 12 def store config.store end
Private Class Methods
enabled_via_rule?(feature, object)
click to toggle source
# File lib/enabler.rb, line 44 def enabled_via_rule?(feature, object) Array(Rule.find(feature.to_sym)).map do |r| r.enabled? object end.include? true end
enabled_via_storage?(feature, object)
click to toggle source
# File lib/enabler.rb, line 40 def enabled_via_storage?(feature, object) store.enabled?(feature, object) end