From 7b1d1f1d42cc861bc97378996a96a8cfef42588d Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Mon, 22 Jul 2013 12:11:52 +1000 Subject: [PATCH] Add FeatureToggle config to replace ENV['OFW_DEPLOYMENT'] --- .gitignore | 1 + lib/open_food_web/feature_toggle.rb | 16 +++++++++++++++ spec/lib/open_food_web/feature_toggle_spec.rb | 20 +++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 lib/open_food_web/feature_toggle.rb create mode 100644 spec/lib/open_food_web/feature_toggle_spec.rb diff --git a/.gitignore b/.gitignore index 6cb7536f07..51b6e343a6 100644 --- a/.gitignore +++ b/.gitignore @@ -28,5 +28,6 @@ public/images public/spree config/abr.yml config/heroku_env.rb +config/initializers/feature_toggle.rb NERD_tree* coverage diff --git a/lib/open_food_web/feature_toggle.rb b/lib/open_food_web/feature_toggle.rb new file mode 100644 index 0000000000..501429d74b --- /dev/null +++ b/lib/open_food_web/feature_toggle.rb @@ -0,0 +1,16 @@ +module OpenFoodWeb + class FeatureToggle + def self.enabled? feature + features[feature] + end + + + private + + def self.features + {eaterprises: true, + local_organics: false, + enterprises_distributor_info_rich_text: false} + end + end +end diff --git a/spec/lib/open_food_web/feature_toggle_spec.rb b/spec/lib/open_food_web/feature_toggle_spec.rb new file mode 100644 index 0000000000..7487a97d55 --- /dev/null +++ b/spec/lib/open_food_web/feature_toggle_spec.rb @@ -0,0 +1,20 @@ +require 'open_food_web/feature_toggle' + +module OpenFoodWeb + describe FeatureToggle do + it "returns true when feature is on" do + FeatureToggle.stub(:features).and_return({foo: true}) + FeatureToggle.enabled?(:foo).should be_true + end + + it "returns false when feature is off" do + FeatureToggle.stub(:features).and_return({foo: false}) + FeatureToggle.enabled?(:foo).should be_false + end + + it "returns false when feature is undefined" do + FeatureToggle.stub(:features).and_return({}) + FeatureToggle.enabled?(:foo).should be_false + end + end +end