diff --git a/app/models/setting.rb b/app/models/setting.rb index b6df3daef..2d7d8d43c 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -3,6 +3,10 @@ class Setting < ActiveRecord::Base default_scope { order(id: :asc) } + def feature_flag? + key.start_with?('feature.') + end + class << self def [](key) where(key: key).pluck(:value).first.presence diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb index 1344b0c7d..99234de95 100644 --- a/spec/models/setting_spec.rb +++ b/spec/models/setting_spec.rb @@ -16,4 +16,16 @@ describe Setting do it "should persist a setting on the db" do expect(Setting.where(key: 'official_level_1_name', value: 'Stormtrooper')).to exist end + + describe "#feature_flag?" do + it "should be true if key starts with 'feature.'" do + setting = Setting.create(key: 'feature.whatever') + expect(setting.feature_flag?).to eq true + end + + it "should be false if key does not start with 'feature.'" do + setting = Setting.create(key: 'whatever') + expect(setting.feature_flag?).to eq false + end + end end