Class: Hackle::RemoteConfigEvaluator
- Inherits:
-
Object
- Object
- Hackle::RemoteConfigEvaluator
- Includes:
- ContextualEvaluator
- Defined in:
- lib/hackle/internal/evaluation/evaluator/remoteconfig/remote_config_evaluator.rb
Instance Method Summary collapse
- #evaluate_internal(request, context) ⇒ RemoteConfigEvaluation
-
#initialize(target_rule_determiner:) ⇒ RemoteConfigEvaluator
constructor
A new instance of RemoteConfigEvaluator.
- #supports?(request) ⇒ Boolean
Methods included from ContextualEvaluator
Methods included from Evaluator
Constructor Details
#initialize(target_rule_determiner:) ⇒ RemoteConfigEvaluator
Returns a new instance of RemoteConfigEvaluator.
12 13 14 15 |
# File 'lib/hackle/internal/evaluation/evaluator/remoteconfig/remote_config_evaluator.rb', line 12 def initialize(target_rule_determiner:) # @type [RemoteConfigTargetRuleDeterminer] @target_rule_determiner = target_rule_determiner end |
Instance Method Details
#evaluate_internal(request, context) ⇒ RemoteConfigEvaluation
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/hackle/internal/evaluation/evaluator/remoteconfig/remote_config_evaluator.rb', line 24 def evaluate_internal(request, context) properties_builder = PropertiesBuilder.new .add('requestValueType', request.required_type.name) .add('requestDefaultValue', request.default_value) if request.user.identifiers[request.parameter.identifier_type].nil? return RemoteConfigEvaluation.create_default( request, context, DecisionReason::IDENTIFIER_NOT_FOUND, properties_builder ) end target_rule = @target_rule_determiner.determine_or_nil(request, context) unless target_rule.nil? properties_builder.add('targetRuleKey', target_rule.key) properties_builder.add('targetRuleName', target_rule.name) return evaluation(request, context, target_rule.value, DecisionReason::TARGET_RULE_MATCH, properties_builder) end evaluation(request, context, request.parameter.default_value, DecisionReason::DEFAULT_RULE, properties_builder) end |
#supports?(request) ⇒ Boolean
17 18 19 |
# File 'lib/hackle/internal/evaluation/evaluator/remoteconfig/remote_config_evaluator.rb', line 17 def supports?(request) request.is_a?(RemoteConfigRequest) end |