Class: Hackle::ExperimentEvaluator

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

Instance Method Summary collapse

Methods included from ContextualEvaluator

#evaluate

Methods included from Evaluator

context, #evaluate

Constructor Details

#initialize(flow_factory:) ⇒ ExperimentEvaluator

Returns a new instance of ExperimentEvaluator.

Parameters:



12
13
14
15
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_evaluator.rb', line 12

def initialize(flow_factory:)
  # @type [ExperimentEvaluationFlowFactory]
  @flow_factory = flow_factory
end

Instance Method Details

#evaluate_internal(request, context) ⇒ ExperimentEvaluation

Parameters:

Returns:



24
25
26
27
28
29
30
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_evaluator.rb', line 24

def evaluate_internal(request, context)
  evaluation_flow = @flow_factory.get(request.experiment.type)
  evaluation = evaluation_flow.evaluate(request, context)
  return evaluation unless evaluation.nil?

  ExperimentEvaluation.create_default(request, context, DecisionReason::TRAFFIC_NOT_ALLOCATED)
end

#supports?(request) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_evaluator.rb', line 17

def supports?(request)
  request.is_a?(ExperimentRequest)
end