Class: Hackle::RemoteConfigTargetRuleMatcher
- Inherits:
-
Object
- Object
- Hackle::RemoteConfigTargetRuleMatcher
- Defined in:
- lib/hackle/internal/evaluation/evaluator/remoteconfig/remote_config_determiner.rb
Instance Method Summary collapse
-
#initialize(target_matcher:, bucketer:) ⇒ RemoteConfigTargetRuleMatcher
constructor
A new instance of RemoteConfigTargetRuleMatcher.
- #matches(request, context, target_rule) ⇒ boolean
Constructor Details
#initialize(target_matcher:, bucketer:) ⇒ RemoteConfigTargetRuleMatcher
Returns a new instance of RemoteConfigTargetRuleMatcher.
23 24 25 26 27 28 |
# File 'lib/hackle/internal/evaluation/evaluator/remoteconfig/remote_config_determiner.rb', line 23 def initialize(target_matcher:, bucketer:) # @type [TargetMatcher] @target_matcher = target_matcher # @type [Bucketer] @bucketer = bucketer end |
Instance Method Details
#matches(request, context, target_rule) ⇒ boolean
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/hackle/internal/evaluation/evaluator/remoteconfig/remote_config_determiner.rb', line 34 def matches(request, context, target_rule) matches = @target_matcher.matches(request, context, target_rule.target) return false unless matches identifier = request.user.identifiers[request.parameter.identifier_type] return false if identifier.nil? bucket = request.workspace.get_bucket_or_nil(target_rule.bucket_id) raise ArgumentError, "bucket [#{target_rule.bucket_id}]" if bucket.nil? allocated = @bucketer.bucketing(bucket, identifier) !allocated.nil? end |