Class: Hackle::ExperimentEvaluationFlowFactory
- Inherits:
-
Object
- Object
- Hackle::ExperimentEvaluationFlowFactory
- Defined in:
- lib/hackle/internal/evaluation/evaluator/experiment/experiment_evaluation_flow_factory.rb
Instance Method Summary collapse
- #get(experiment_type) ⇒ ExperimentFlow
-
#initialize(target_matcher:, bucketer:) ⇒ ExperimentEvaluationFlowFactory
constructor
A new instance of ExperimentEvaluationFlowFactory.
Constructor Details
#initialize(target_matcher:, bucketer:) ⇒ ExperimentEvaluationFlowFactory
Returns a new instance of ExperimentEvaluationFlowFactory.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_evaluation_flow_factory.rb', line 12 def initialize(target_matcher:, bucketer:) action_resolver = ExperimentActionResolver.new(bucketer: bucketer) override_resolver = ExperimentOverrideResolver.new( target_matcher: target_matcher, action_resolver: action_resolver ) container_resolver = ExperimentContainerResolver.new(bucketer: bucketer) target_determiner = ExperimentTargetDeterminer.new(target_matcher: target_matcher) target_rule_determiner = ExperimentTargetRuleDeterminer.new(target_matcher: target_matcher) # @type [ExperimentFlow] @ab_test_flow = EvaluationFlow.create( [ OverrideExperimentFlowEvaluator.new(override_resolver: override_resolver), IdentifierExperimentFlowEvaluator.new, ContainerExperimentFlowEvaluator.new(container_resolver: container_resolver), TargetExperimentFlowEvaluator.new(target_determiner: target_determiner), DraftExperimentFlowEvaluator.new, PausedExperimentFlowEvaluator.new, CompletedExperimentFlowEvaluator.new, TrafficAllocateExperimentFlowEvaluator.new(action_resolver: action_resolver) ] ) # @type [ExperimentFlow] @feature_flag_flow = EvaluationFlow.create( [ DraftExperimentFlowEvaluator.new, PausedExperimentFlowEvaluator.new, CompletedExperimentFlowEvaluator.new, OverrideExperimentFlowEvaluator.new(override_resolver: override_resolver), IdentifierExperimentFlowEvaluator.new, TargetRuleExperimentFlowEvaluator.new( target_rule_determiner: target_rule_determiner, action_resolver: action_resolver ), DefaultRuleExperimentFlowEvaluator.new(action_resolver: action_resolver) ] ) end |
Instance Method Details
#get(experiment_type) ⇒ ExperimentFlow
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_evaluation_flow_factory.rb', line 56 def get(experiment_type) case experiment_type when ExperimentType::AB_TEST @ab_test_flow when ExperimentType::FEATURE_FLAG @feature_flag_flow else raise ArgumentError, "unsupported ExperimentType [#{experiment_type}]" end end |