diff options
author | ujihisa <[email protected]> | 2019-02-21 17:42:08 +0900 |
---|---|---|
committer | Hiroshi SHIBATA <[email protected]> | 2019-08-04 11:55:03 +0900 |
commit | f85caf40a69d322bde80a547e4b17568604746ff () | |
tree | dc27c0ad461dddbc0a7d2b2124e0a3b715a99358 /lib/rexml | |
parent | 33e4a59b4a051b853bc412cf8badfc26a7cb391a (diff) |
[ruby/rexml] Message less confusing error to human (#16)
* Message less confusing error to human * Problem: Following error message is not helpful, because you have to reason that '' actually means it's in the top-level, and the 'div' (not '</div>') is an end tag require "rexml/parsers/lightparser" REXML::Parsers::LightParser.new('</div>').parse #=> Missing end tag for '' (got 'div') * Solution: add a special case in error handling just to change the error message require "rexml/parsers/lightparser" REXML::Parsers::LightParser.new('</div>').parse #=> Unexpected top-level end tag (got 'div') * Refactor by removing unnecessary `md` check * Thanks @a_matsuda to review this at asakusa.rb! https://.com/ruby/rexml/commit/f6528d4477
-rw-r--r-- | lib/rexml/parsers/baseparser.rb | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -335,6 +335,10 @@ module REXML @nsstack.shift last_tag = @tags.pop md = @source.match( CLOSE_MATCH, true ) if md.nil? or last_tag != md[1] message = "Missing end tag for '#{last_tag}'" message << " (got '#{md[1]}')" if md |