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