summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-02-20 15:11:14 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-02-20 15:11:14 +0100
commit7c6063dda2cfec609a0cb79948f7c573eb5c9710 (patch)
tree91954f1cb9f5913f390a725af2b133856b06d583
parent34bebde866b05886baed7df4c6a0e5ba17500757 (diff)
downloadgitlab-ce-7c6063dda2cfec609a0cb79948f7c573eb5c9710.tar.gz
Add a base class for pipeline expressions tokens
-rw-r--r--lib/gitlab/ci/pipeline/expression/equality.rb2
-rw-r--r--lib/gitlab/ci/pipeline/expression/string.rb2
-rw-r--r--lib/gitlab/ci/pipeline/expression/token.rb21
-rw-r--r--lib/gitlab/ci/pipeline/expression/variable.rb2
4 files changed, 24 insertions, 3 deletions
diff --git a/lib/gitlab/ci/pipeline/expression/equality.rb b/lib/gitlab/ci/pipeline/expression/equality.rb
index dd2cf0118f2..668b581df5a 100644
--- a/lib/gitlab/ci/pipeline/expression/equality.rb
+++ b/lib/gitlab/ci/pipeline/expression/equality.rb
@@ -2,7 +2,7 @@ module Gitlab
module Ci
module Pipeline
module Expression
- class Equality
+ class Equality < Expression::Token
PATTERN = /==/.freeze
def initialize(left, right)
diff --git a/lib/gitlab/ci/pipeline/expression/string.rb b/lib/gitlab/ci/pipeline/expression/string.rb
index 6a4d78a67a1..d8d6155f431 100644
--- a/lib/gitlab/ci/pipeline/expression/string.rb
+++ b/lib/gitlab/ci/pipeline/expression/string.rb
@@ -2,7 +2,7 @@ module Gitlab
module Ci
module Pipeline
module Expression
- class String
+ class String < Expression::Token
PATTERN = /("|')(?<value>.+)('|")/.freeze
def initialize(value)
diff --git a/lib/gitlab/ci/pipeline/expression/token.rb b/lib/gitlab/ci/pipeline/expression/token.rb
new file mode 100644
index 00000000000..bf28191a645
--- /dev/null
+++ b/lib/gitlab/ci/pipeline/expression/token.rb
@@ -0,0 +1,21 @@
+module Gitlab
+ module Ci
+ module Pipeline
+ module Expression
+ class Token
+ def evaluate(**variables)
+ raise NotImplementedError
+ end
+
+ def self.build(string)
+ raise NotImplementedError
+ end
+
+ def self.scan(scanner)
+ scanner.scan(PATTERN)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/ci/pipeline/expression/variable.rb b/lib/gitlab/ci/pipeline/expression/variable.rb
index e547a9aaa46..d22566c61a8 100644
--- a/lib/gitlab/ci/pipeline/expression/variable.rb
+++ b/lib/gitlab/ci/pipeline/expression/variable.rb
@@ -2,7 +2,7 @@ module Gitlab
module Ci
module Pipeline
module Expression
- class Equality
+ class Equality < Expression::Token
PATTERN = /$(?<name>\w+)/.freeze
def initialize(value)