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