From 05837afd72625cadb1fbe0d83c552393ca975c98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 25 Jan 2016 13:45:15 +0100 Subject: [PATCH] adds #feature_flag? to Setting --- app/models/setting.rb | 4 ++++ spec/models/setting_spec.rb | 12 ++++++++++++ 2 files changed, 16 insertions(+) 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