Class: Gitlab::Ci::Config::Interpolation::MatrixInterpolator

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/ci/config/interpolation/matrix_interpolator.rb

Overview

Performs matrix variable interpolation in needs:parallel:matrix configurations. This interpolator specifically handles the ‘$[[ matrix.VARIABLE_NAME ]]` syntax to enable dynamic job dependencies based on matrix values.

Constant Summary collapse

MATRIX_EXPRESSION_REGEXP =
Gitlab::UntrustedRegexp.new('(\$\[\[\s*matrix\.([a-zA-Z0-9_-]+)\s*\]\])')

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(matrix_variables) ⇒ MatrixInterpolator

Returns a new instance of MatrixInterpolator.



17
18
19
20
# File 'lib/gitlab/ci/config/interpolation/matrix_interpolator.rb', line 17

def initialize(matrix_variables)
  @matrix_variables = matrix_variables || {}
  @errors = []
end

Instance Attribute Details

#errorsObject (readonly)

Returns the value of attribute errors.



15
16
17
# File 'lib/gitlab/ci/config/interpolation/matrix_interpolator.rb', line 15

def errors
  @errors
end

Instance Method Details

#interpolate(needs_config) ⇒ Object



22
23
24
# File 'lib/gitlab/ci/config/interpolation/matrix_interpolator.rb', line 22

def interpolate(needs_config)
  interpolate_value(needs_config)
end