Module: RailVerdict::StrictYaml

Defined in:
lib/rail_verdict/strict_yaml.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

PLAIN =
Psych::Nodes::Scalar::PLAIN
INTEGER =
/\A[-+]?[0-9]+\z/
FLOAT =
/\A[-+]?[0-9]*\.[0-9]+(?:[eE][-+]?[0-9]+)?\z/
FLOAT_EXPONENT =
/\A[-+]?[0-9]+[eE][-+]?[0-9]+\z/

Class Method Summary collapse

Class Method Details

.parse(text, source_path) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/rail_verdict/strict_yaml.rb', line 21

def self.parse(text, source_path)
  document =
    begin
      Psych.parse(text)
    rescue Psych::SyntaxError => error
      raise Error.new(
        "#{source_path}: YAML syntax error: #{error.message.lines.first.to_s.strip}",
        property_path: "$"
      )
    end

  materialize(document&.root, "$")
end