From 7c6063dda2cfec609a0cb79948f7c573eb5c9710 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Tue, 20 Feb 2018 15:11:14 +0100 Subject: Add a base class for pipeline expressions tokens --- lib/gitlab/ci/pipeline/expression/equality.rb | 2 +- lib/gitlab/ci/pipeline/expression/string.rb | 2 +- lib/gitlab/ci/pipeline/expression/token.rb | 21 +++++++++++++++++++++ lib/gitlab/ci/pipeline/expression/variable.rb | 2 +- 4 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 lib/gitlab/ci/pipeline/expression/token.rb 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 = /("|')(?.+)('|")/.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 = /$(?\w+)/.freeze def initialize(value) -- cgit v1.2.1