From dc22968239d57dddbfb5ef33ff07d013e7518611 Mon Sep 17 00:00:00 2001 From: tenderlove Date: Mon, 18 Jul 2011 04:38:37 +0000 Subject: * ext/psych/lib/psych.rb: define a new BadAlias error class. * ext/psych/lib/psych/visitors/to_ruby.rb: raise an exception when deserializing an alias that does not exist. * test/psych/test_merge_keys.rb: corresponding test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/psych/lib/psych.rb | 3 +++ ext/psych/lib/psych/visitors/to_ruby.rb | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'ext/psych/lib') diff --git a/ext/psych/lib/psych.rb b/ext/psych/lib/psych.rb index 31d73c1f03..8a4d63a49c 100644 --- a/ext/psych/lib/psych.rb +++ b/ext/psych/lib/psych.rb @@ -98,6 +98,9 @@ module Psych class Exception < RuntimeError end + class BadAlias < Exception + end + autoload :Stream, 'psych/stream' ### diff --git a/ext/psych/lib/psych/visitors/to_ruby.rb b/ext/psych/lib/psych/visitors/to_ruby.rb index b8eb698754..fd899f65a6 100644 --- a/ext/psych/lib/psych/visitors/to_ruby.rb +++ b/ext/psych/lib/psych/visitors/to_ruby.rb @@ -201,7 +201,7 @@ module Psych end def visit_Psych_Nodes_Alias o - @st[o.anchor] + @st.fetch(o.anchor) { raise BadAlias, "Unknown alias: #{o.anchor}" } end private -- cgit v1.2.3