Class: Hackle::OverrideExperimentFlowEvaluator
- Inherits:
-
Object
- Object
- Hackle::OverrideExperimentFlowEvaluator
- 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(override_resolver:) ⇒ OverrideExperimentFlowEvaluator
constructor
A new instance of OverrideExperimentFlowEvaluator.
Constructor Details
#initialize(override_resolver:) ⇒ OverrideExperimentFlowEvaluator
Returns a new instance of OverrideExperimentFlowEvaluator.
33 34 35 36 |
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_flow_evaluator.rb', line 33 def initialize(override_resolver:) # @type [ExperimentOverrideResolver] @override_resolver = override_resolver end |
Instance Method Details
#evaluate(request, context, next_flow) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_flow_evaluator.rb', line 38 def evaluate(request, context, next_flow) overridden_variation = @override_resolver.resolve_or_nil(request, context) return next_flow.evaluate(request, context) if overridden_variation.nil? case request.experiment.type when ExperimentType::AB_TEST ExperimentEvaluation.create(request, context, overridden_variation, DecisionReason::OVERRIDDEN) when ExperimentType::FEATURE_FLAG ExperimentEvaluation.create(request, context, overridden_variation, DecisionReason::INDIVIDUAL_TARGET_MATCH) else raise ArgumentError, "unsupported experiment type [#{request.experiment.type}]" end end |