class SimpleFeatures::Features
Attributes
features[RW]
Public Class Methods
load_config(config_file = nil)
click to toggle source
returns Feature object
# File lib/simple_features/features.rb, line 13 def self.load_config(config_file = nil) if defined? 'Rails' features = YAML.load_file(Rails.root.join('config', 'simple_features.yml'))[environment] else features = YAML.load_file(config_file) end self.new(features) end
new(features = {})
click to toggle source
# File lib/simple_features/features.rb, line 5 def initialize(features = {}) @features = features make_features self end
Private Instance Methods
environment()
click to toggle source
# File lib/simple_features/features.rb, line 42 def environment if defined? 'Rails' Rails.env else :production end end
is_boolean?(value)
click to toggle source
# File lib/simple_features/features.rb, line 50 def is_boolean?(value) value = "#{value}".downcase ['true', 'false'].include? value end
make_features()
click to toggle source
# File lib/simple_features/features.rb, line 25 def make_features @features.each do |feature, feature_value| unless is_boolean? feature_value begin raise ArgumentError.new("Value must be true or false for key #{feature}") rescue ArgumentError => e puts e.message end else define_singleton_method("#{feature}?") do feature_value end end end end