diff options
author | Dennis Tang <dtang@gitlab.com> | 2018-05-25 23:56:17 +0200 |
---|---|---|
committer | Dennis Tang <dtang@gitlab.com> | 2018-05-25 23:56:17 +0200 |
commit | 95a63a881673533e3fd44243297d1a81e19396b6 (patch) | |
tree | 9a3190b813e2d599043394b30afaa5a5c8f8e565 /lib/gitlab/ci/pipeline/expression/lexeme/matches.rb | |
parent | 48e46f959716c8915f5b59d1314b5e5781f3cd8d (diff) | |
parent | 50c8ed2bf498c69d3d52ba1451274e3fbf438429 (diff) | |
download | gitlab-ce-95a63a881673533e3fd44243297d1a81e19396b6.tar.gz |
Merge remote-tracking branch 'origin/master' into 38759-fetch-available-parameters-directly-from-gke-when-creating-a-cluster
Diffstat (limited to 'lib/gitlab/ci/pipeline/expression/lexeme/matches.rb')
-rw-r--r-- | lib/gitlab/ci/pipeline/expression/lexeme/matches.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/gitlab/ci/pipeline/expression/lexeme/matches.rb b/lib/gitlab/ci/pipeline/expression/lexeme/matches.rb new file mode 100644 index 00000000000..10957598f76 --- /dev/null +++ b/lib/gitlab/ci/pipeline/expression/lexeme/matches.rb @@ -0,0 +1,29 @@ +module Gitlab + module Ci + module Pipeline + module Expression + module Lexeme + class Matches < Lexeme::Operator + PATTERN = /=~/.freeze + + def initialize(left, right) + @left = left + @right = right + end + + def evaluate(variables = {}) + text = @left.evaluate(variables) + regexp = @right.evaluate(variables) + + regexp.scan(text.to_s).any? + end + + def self.build(_value, behind, ahead) + new(behind, ahead) + end + end + end + end + end + end +end |