class FeatureToggles::Feature
Public Class Methods
is_enabled?(feature_name, user_type=nil)
click to toggle source
# File lib/feature_toggles/feature.rb, line 3 def self.is_enabled?(feature_name, user_type=nil) if user_type && has_user_specific_permission?(feature_name, user_type) enabled_for_user?(feature_name, user_type) else enabled_generally?(feature_name) end end
Private Class Methods
default_feature_toggles_file_name()
click to toggle source
# File lib/feature_toggles/feature.rb, line 30 def self.default_feature_toggles_file_name 'feature_toggles.yml' end
enabled_for_user?(feature_name, user_type)
click to toggle source
# File lib/feature_toggles/feature.rb, line 21 def self.enabled_for_user?(feature_name, user_type) !!Hash(feature_permissions(feature_name)[user_type])[:enabled] end
enabled_generally?(feature_name)
click to toggle source
# File lib/feature_toggles/feature.rb, line 13 def self.enabled_generally?(feature_name) !!feature_permissions(feature_name)[:enabled] end
feature_permissions(feature_name)
click to toggle source
# File lib/feature_toggles/feature.rb, line 25 def self.feature_permissions(feature_name) Hash(feature_toggle_data[feature_name]) end
feature_toggle_data()
click to toggle source
# File lib/feature_toggles/feature.rb, line 34 def self.feature_toggle_data @loader ||= FeatureToggles::Loader.new(Rails.env) @feature_toggle_data ||= @loader.load(default_feature_toggles_file_name) end
has_user_specific_permission?(feature_name, user_type)
click to toggle source
# File lib/feature_toggles/feature.rb, line 17 def self.has_user_specific_permission?(feature_name, user_type) feature_permissions(feature_name).key?(user_type) end