Class: Hackle::CompletedExperimentFlowEvaluator

Inherits:
Object
  • Object
show all
Includes:
ExperimentFlowEvaluator
Defined in:
lib/hackle/internal/evaluation/evaluator/experiment/experiment_flow_evaluator.rb

Instance Method Summary collapse

Instance Method Details

#evaluate(request, context, next_flow) ⇒ Object

Raises:

  • (ArgumentError)


83
84
85
86
87
88
89
90
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_flow_evaluator.rb', line 83

def evaluate(request, context, next_flow)
  return next_flow.evaluate(request, context) if request.experiment.status != ExperimentStatus::COMPLETED

  winner_variation = request.experiment.winner_variation_or_nil
  raise ArgumentError, "winner variation [#{request.experiment.id}]" if winner_variation.nil?

  ExperimentEvaluation.create(request, context, winner_variation, DecisionReason::EXPERIMENT_COMPLETED)
end