summaryrefslogtreecommitdiff
path: root/lib/gitlab/ci/pipeline/expression/lexeme
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-05-15 13:04:18 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-05-15 13:04:18 +0200
commit65f4e7b2a1fe8946109c7aa0d59999bfaaeba257 (patch)
treebd63b0f5c65d02f4f6d90a2fd253265a0e33f895 /lib/gitlab/ci/pipeline/expression/lexeme
parent475d2edf04c13c6a5ed2b5c68d75efd2a8024c2b (diff)
downloadgitlab-ce-65f4e7b2a1fe8946109c7aa0d59999bfaaeba257.tar.gz
Add support for pattern matching in variables expressions
Diffstat (limited to 'lib/gitlab/ci/pipeline/expression/lexeme')
-rw-r--r--lib/gitlab/ci/pipeline/expression/lexeme/matches.rb2
-rw-r--r--lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb2
2 files changed, 3 insertions, 1 deletions
diff --git a/lib/gitlab/ci/pipeline/expression/lexeme/matches.rb b/lib/gitlab/ci/pipeline/expression/lexeme/matches.rb
index 806f2082227..10957598f76 100644
--- a/lib/gitlab/ci/pipeline/expression/lexeme/matches.rb
+++ b/lib/gitlab/ci/pipeline/expression/lexeme/matches.rb
@@ -15,7 +15,7 @@ module Gitlab
text = @left.evaluate(variables)
regexp = @right.evaluate(variables)
- regexp.scan(text).any?
+ regexp.scan(text.to_s).any?
end
def self.build(_value, behind, ahead)
diff --git a/lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb b/lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb
index 59b8e4fad4c..f7b12914249 100644
--- a/lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb
+++ b/lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb
@@ -3,6 +3,8 @@ module Gitlab
module Pipeline
module Expression
module Lexeme
+ require_dependency 're2'
+
class Pattern < Lexeme::Value
PATTERN = %r{/(?<regexp>.+)/}.freeze