module FeatureCop

Constants

VERSION

Public Class Methods

allows?(feature, identifier = nil, options = {}) click to toggle source
# File lib/feature_cop.rb, line 21
def self.allows?(feature, identifier = nil, options = {})
  feature_status = ENV["#{feature.to_s.upcase}"]
  return false if feature_status.nil? 
  self.method(feature_status.downcase).call(feature.to_s, identifier.to_s, options)
end
as_json(identifier = nil) click to toggle source
# File lib/feature_cop.rb, line 47
def self.as_json(identifier = nil)
  feature_set = {}
  features.each_pair do |feature, setting|
    feature_set[feature.downcase.camelize(:lower)] = self.method(setting.downcase).call(feature, identifier)
  end
  feature_set
end
env() click to toggle source
# File lib/feature_cop.rb, line 27
def self.env
  @env ||= ENV["RAILS_ENV"] || ENV["RACK_ENV"] || ENV["APP_ENV"] || ENV["APP_ENV"] || "development"
end
features() click to toggle source
# File lib/feature_cop.rb, line 31
def self.features
  @features ||= self.set_features
end
reset_features() click to toggle source
# File lib/feature_cop.rb, line 35
def self.reset_features
  @features = self.set_features
end
set_features() click to toggle source
# File lib/feature_cop.rb, line 39
def self.set_features
  features = {}
  ENV.each_pair do |key, value|
    features[key] = value if key.end_with?("_FEATURE")
  end
  return features
end
to_json(identifier = nil) click to toggle source
# File lib/feature_cop.rb, line 55
def self.to_json(identifier = nil)
  self.as_json(identifier).to_json
end