Class: Hackle::ExperimentContainerResolver
- Inherits:
-
Object
- Object
- Hackle::ExperimentContainerResolver
- Defined in:
- lib/hackle/internal/evaluation/evaluator/experiment/experiment_resolver.rb
Instance Method Summary collapse
-
#initialize(bucketer:) ⇒ ExperimentContainerResolver
constructor
A new instance of ExperimentContainerResolver.
- #user_in_container_group?(request, container) ⇒ Boolean
Constructor Details
#initialize(bucketer:) ⇒ ExperimentContainerResolver
Returns a new instance of ExperimentContainerResolver.
110 111 112 113 |
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_resolver.rb', line 110 def initialize(bucketer:) # @type [Bucketer] @bucketer = bucketer end |
Instance Method Details
#user_in_container_group?(request, container) ⇒ Boolean
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/hackle/internal/evaluation/evaluator/experiment/experiment_resolver.rb', line 117 def user_in_container_group?(request, container) identifier = request.user.identifiers[request.experiment.identifier_type] return false if identifier.nil? bucket = request.workspace.get_bucket_or_nil(container.bucket_id) raise ArgumentError, "bucket [#{container.bucket_id}]" if bucket.nil? slot = @bucketer.bucketing(bucket, identifier) return false if slot.nil? group = container.get_group_or_nil(slot.variation_id) raise ArgumentError, "container group [#{slot.variation_id}]" if group.nil? group.experiments.include?(request.experiment.id) end |