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