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
# 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