From 26f22b7d5a5adc7c38e0a031abbb5bf01f90f553 Mon Sep 17 00:00:00 2001 From: Bing Xie Date: Fri, 29 Aug 2014 15:19:13 +1000 Subject: [PATCH] Specify feature model name --- lib/flip/declarable.rb | 4 ++-- lib/flip/feature_set.rb | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/flip/declarable.rb b/lib/flip/declarable.rb index 8a5331c..faf6de1 100644 --- a/lib/flip/declarable.rb +++ b/lib/flip/declarable.rb @@ -11,8 +11,8 @@ def feature(key, options = {}) end # Adds a strategy for determining feature status. - def strategy(strategy) - FeatureSet.instance.add_strategy strategy + def strategy(strategy, model_klass = nil) + FeatureSet.instance.add_strategy strategy, model_klass end # The default response, boolean or a Proc to be called. diff --git a/lib/flip/feature_set.rb b/lib/flip/feature_set.rb index f37554c..16758cc 100644 --- a/lib/flip/feature_set.rb +++ b/lib/flip/feature_set.rb @@ -32,8 +32,14 @@ def << definition end # Adds a strategy for determing feature status. - def add_strategy(strategy) - strategy = strategy.new if strategy.is_a? Class + def add_strategy(strategy, model_klass = nil) + if strategy.is_a? Class + if model_klass && model_klass.is_a?(Class) + strategy = strategy.new model_klass + else + strategy = strategy.new + end + end @strategies[strategy.name] = strategy end