Class: Hackle::TargetExperimentFlowEvaluator
- Inherits:
-
Object
- Object
- Hackle::TargetExperimentFlowEvaluator
- Includes:
- ExperimentFlowEvaluator
- Defined in:
- lib/hackle/internal/evaluation/evaluator/experiment/experiment_flow_evaluator.rb
Instance Method Summary collapse
- #evaluate(request, context, next_flow) ⇒ Object
-
#initialize(target_determiner:) ⇒ TargetExperimentFlowEvaluator
constructor
A new instance of TargetExperimentFlowEvaluator.
Constructor Details
#initialize(target_determiner:) ⇒ TargetExperimentFlowEvaluator
Returns a new instance of TargetExperimentFlowEvaluator.
97 98 99 100 |
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_flow_evaluator.rb', line 97 def initialize(target_determiner:) # @type [ExperimentTargetDeterminer] @target_determiner = target_determiner end |
Instance Method Details
#evaluate(request, context, next_flow) ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_flow_evaluator.rb', line 102 def evaluate(request, context, next_flow) if request.experiment.type != ExperimentType::AB_TEST raise ArgumentError, "experiment type must be AB_TEST [#{request.experiment.id}]" end is_user_in_experiment_target = @target_determiner.user_in_experiment_target?(request, context) if is_user_in_experiment_target next_flow.evaluate(request, context) else ExperimentEvaluation.create_default(request, context, DecisionReason::NOT_IN_EXPERIMENT_TARGET) end end |