Class: Hackle::ContainerExperimentFlowEvaluator
- Inherits:
-
Object
- Object
- Hackle::ContainerExperimentFlowEvaluator
- 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(container_resolver:) ⇒ ContainerExperimentFlowEvaluator
constructor
A new instance of ContainerExperimentFlowEvaluator.
Constructor Details
#initialize(container_resolver:) ⇒ ContainerExperimentFlowEvaluator
Returns a new instance of ContainerExperimentFlowEvaluator.
209 210 211 212 |
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_flow_evaluator.rb', line 209 def initialize(container_resolver:) # @type [ExperimentContainerResolver] @container_resolver = container_resolver end |
Instance Method Details
#evaluate(request, context, next_flow) ⇒ Object
214 215 216 217 218 219 220 221 222 223 224 225 226 227 |
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_flow_evaluator.rb', line 214 def evaluate(request, context, next_flow) container_id = request.experiment.container_id return next_flow.evaluate(request, context) if container_id.nil? container = request.workspace.get_container_or_nil(container_id) raise ArgumentError, "container [#{container_id}]" if container.nil? is_user_in_container_group = @container_resolver.user_in_container_group?(request, container) if is_user_in_container_group next_flow.evaluate(request, context) else ExperimentEvaluation.create_default(request, context, DecisionReason::NOT_IN_MUTUAL_EXCLUSION_EXPERIMENT) end end |