From 137c547c3ef8167630170275ba2ae5a14fa0af95 Mon Sep 17 00:00:00 2001 From: tenderlove Date: Tue, 4 Oct 2011 17:53:41 +0000 Subject: * ext/psych/lib/psych/syntax_error.rb: Add file, line, offset, and message attributes during parse failure. * ext/psych/parser.c: Update parser to raise exception with correct values. * test/psych/test_exception.rb: corresponding tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/psych/lib/psych/syntax_error.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 ext/psych/lib/psych/syntax_error.rb (limited to 'ext/psych/lib/psych/syntax_error.rb') diff --git a/ext/psych/lib/psych/syntax_error.rb b/ext/psych/lib/psych/syntax_error.rb new file mode 100644 index 0000000000..9fe3e0da30 --- /dev/null +++ b/ext/psych/lib/psych/syntax_error.rb @@ -0,0 +1,18 @@ +module Psych + class SyntaxError < ::SyntaxError + attr_reader :file, :line, :column, :offset, :problem, :context + + def initialize file, line, col, offset, problem, context + err = [problem, context].compact.join ' ' + message = "(%s): %s at line %d column %d" % [file, err, line, col] + + @file = file + @line = line + @column = col + @offset = offset + @problem = problem + @context = context + super(message) + end + end +end -- cgit v1.2.3