Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-05-15 13:37:09 +0300
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-05-15 13:37:09 +0300
commit475d2edf04c13c6a5ed2b5c68d75efd2a8024c2b (patch)
tree9ea43fad665036a975bc9a17aa9fa2672888b713 /lib/gitlab/ci/pipeline/expression
parentbbba6d7e62fb9d8bca635d57604fd503fb3c4645 (diff)
Reorganize exceptions in pipeline expressions module
Diffstat (limited to 'lib/gitlab/ci/pipeline/expression')
-rw-r--r--lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb3
-rw-r--r--lib/gitlab/ci/pipeline/expression/lexer.rb4
-rw-r--r--lib/gitlab/ci/pipeline/expression/parser.rb2
-rw-r--r--lib/gitlab/ci/pipeline/expression/statement.rb6
4 files changed, 6 insertions, 9 deletions
diff --git a/lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb b/lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb
index 2ff527e34a8..59b8e4fad4c 100644
--- a/lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb
+++ b/lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb
@@ -11,10 +11,9 @@ module Gitlab
end
def evaluate(variables = {})
- # TODO multiline support
@regexp = Gitlab::UntrustedRegexp.new(@value)
rescue RegexpError
- raise Parser::ParserError, 'Invalid regular expression!'
+ raise Expression::RuntimeError, 'Invalid regular expression!'
end
def self.build(string)
diff --git a/lib/gitlab/ci/pipeline/expression/lexer.rb b/lib/gitlab/ci/pipeline/expression/lexer.rb
index e1c68b7c3c2..ebc6565266f 100644
--- a/lib/gitlab/ci/pipeline/expression/lexer.rb
+++ b/lib/gitlab/ci/pipeline/expression/lexer.rb
@@ -5,6 +5,8 @@ module Gitlab
class Lexer
include ::Gitlab::Utils::StrongMemoize
+ SyntaxError = Class.new(Expression::ExpressionError)
+
LEXEMES = [
Expression::Lexeme::Variable,
Expression::Lexeme::String,
@@ -12,8 +14,6 @@ module Gitlab
Expression::Lexeme::Equals
].freeze
- SyntaxError = Class.new(Statement::StatementError)
-
MAX_TOKENS = 100
def initialize(statement, max_tokens: MAX_TOKENS)
diff --git a/lib/gitlab/ci/pipeline/expression/parser.rb b/lib/gitlab/ci/pipeline/expression/parser.rb
index fe23ab0b2f8..90f94d0b763 100644
--- a/lib/gitlab/ci/pipeline/expression/parser.rb
+++ b/lib/gitlab/ci/pipeline/expression/parser.rb
@@ -3,8 +3,6 @@ module Gitlab
module Pipeline
module Expression
class Parser
- ParserError = Class.new(Statement::StatementError)
-
def initialize(tokens)
@tokens = tokens.to_enum
@nodes = []
diff --git a/lib/gitlab/ci/pipeline/expression/statement.rb b/lib/gitlab/ci/pipeline/expression/statement.rb
index 363e0b708a6..de37c50d2a2 100644
--- a/lib/gitlab/ci/pipeline/expression/statement.rb
+++ b/lib/gitlab/ci/pipeline/expression/statement.rb
@@ -3,7 +3,7 @@ module Gitlab
module Pipeline
module Expression
class Statement
- StatementError = Class.new(StandardError)
+ StatementError = Class.new(Expression::ExpressionError)
GRAMMAR = [
%w[variable equals string],
@@ -35,13 +35,13 @@ module Gitlab
def truthful?
evaluate.present?
- rescue StatementError
+ rescue Expression::ExpressionError
false
end
def valid?
parse_tree.is_a?(Lexeme::Base)
- rescue StatementError
+ rescue Expression::ExpressionError
false
end
end