Class: Gitlab::Utils::TomlParser

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/utils/toml_parser.rb

Constant Summary collapse

PARSE_TIMEOUT =
2.seconds
ParseError =
Class.new(StandardError)

Class Method Summary collapse

Class Method Details

.safe_parse(content) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/gitlab/utils/toml_parser.rb', line 10

def self.safe_parse(content)
  Timeout.timeout(PARSE_TIMEOUT) do
    TomlRB.parse(content)
  end
rescue TomlRB::ParseError
  raise ParseError, 'content is not valid TOML'
rescue Timeout::Error => e
  Gitlab::ErrorTracking.log_exception(e)
  raise ParseError, 'timeout while parsing TOML'
rescue TomlRB::Error => e
  raise ParseError, "error parsing TOML: #{e.message}"
end