Class: Ci::Inputs::RulesEvaluator

Inherits:
Object
  • Object
show all
Includes:
Gitlab::Utils::StrongMemoize
Defined in:
lib/ci/inputs/rules_evaluator.rb

Overview

Evaluates input rules to determine which options and default values should apply. Finds the first rule that evaluates to true or uses the fallback rule.

Constant Summary collapse

RULE_EXPRESSION_STATEMENT =
Gitlab::Ci::Pipeline::Expression::Statement
RULE_EXPRESSION_KEY =
:if

Instance Method Summary collapse

Constructor Details

#initialize(rules, current_inputs) ⇒ RulesEvaluator

Returns a new instance of RulesEvaluator.



16
17
18
19
# File 'lib/ci/inputs/rules_evaluator.rb', line 16

def initialize(rules, current_inputs)
  @rules = rules || []
  @current_inputs = current_inputs || {}
end

Instance Method Details

#resolved_defaultObject



25
26
27
# File 'lib/ci/inputs/rules_evaluator.rb', line 25

def resolved_default
  matching_rule&.[](:default)
end

#resolved_optionsObject



21
22
23
# File 'lib/ci/inputs/rules_evaluator.rb', line 21

def resolved_options
  matching_rule&.[](:options)
end