class Flipflop::Strategies::LambdaStrategy
Public Class Methods
default_description()
click to toggle source
# File lib/flipflop/strategies/lambda_strategy.rb, line 5 def default_description "Resolves feature settings with custom code." end
new(**options)
click to toggle source
Calls superclass method
Flipflop::Strategies::AbstractStrategy::new
# File lib/flipflop/strategies/lambda_strategy.rb, line 10 def initialize(**options) @lambda = (options.delete(:lambda) || ->(*) { }).freeze super(**options) if @lambda.arity.abs != 1 raise StrategyError.new(name, "has lambda with arity #{@lambda.arity}, expected 1 or -1") end end
Public Instance Methods
enabled?(feature)
click to toggle source
# File lib/flipflop/strategies/lambda_strategy.rb, line 18 def enabled?(feature) result = instance_exec(feature, &@lambda) return result if result.nil? or result == !!result raise StrategyError.new(name, "returned invalid result #{result.inspect} for feature '#{feature}'") end