From 9ee62cee66b809df22f3d8cbdaae1668fc34c82f Mon Sep 17 00:00:00 2001 From: ocean Date: Tue, 10 Jan 2006 03:05:40 +0000 Subject: [PATCH] * lib/yaml/rubytypes.rb (Symbol#yaml_new): YAML loading of quoted Symbols broken. [ruby-Bugs:2535] (written by Aaron Schrab) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 10 ++++++++-- lib/yaml/rubytypes.rb | 1 + test/yaml/test_yaml.rb | 11 +++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8f35f10c91..34b9e1b139 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Jan 10 12:00:48 2006 Aaron Schrab + + * lib/yaml/rubytypes.rb (Symbol#yaml_new): YAML loading of quoted + Symbols broken. [ruby-Bugs:2535] + Mon Jan 9 19:54:35 2006 arton * ext/zlib/extconf.rb: zlib compiled DLL version 1.2.3 distributed by @@ -8,8 +13,9 @@ Mon Jan 9 14:17:12 2006 Hirokazu Yamamoto * win32/Makefile.sub (OPTFLAGS): I have experienced trouble on y- flag, (VisualC++6) so use -O2b2xg- if $(MSC_VER) < 1400. [ruby-core:7040] - * lib/webrick/httpservlet/filehandler.rb: fixed typo. (Kero van Gelder) - [ruby-core:7075] +Mon Jan 9 14:17:12 2006 Kero van Gelder + + * lib/webrick/httpservlet/filehandler.rb: fixed typo. [ruby-core:7075] Sat Jan 7 15:40:07 2006 Nobuyoshi Nakada diff --git a/lib/yaml/rubytypes.rb b/lib/yaml/rubytypes.rb index 10516d7557..d58e9bb38e 100644 --- a/lib/yaml/rubytypes.rb +++ b/lib/yaml/rubytypes.rb @@ -183,6 +183,7 @@ class Symbol yaml_as "tag:ruby.yaml.org,2002:sym" def Symbol.yaml_new( klass, tag, val ) if String === val + val = YAML::load( val ) if val =~ /\A(["']).*\1\z/ val.intern else raise YAML::TypeError, "Invalid Symbol: " + val.inspect diff --git a/test/yaml/test_yaml.rb b/test/yaml/test_yaml.rb index fd91fa866c..fe506675f3 100644 --- a/test/yaml/test_yaml.rb +++ b/test/yaml/test_yaml.rb @@ -1225,6 +1225,17 @@ EOY inspect_str = "[[...], [...]]" assert_equal( inspect_str, YAML::load( a.to_yaml ).inspect ) end + + # + # Test Symbol cycle + # + def test_symbol_cycle + # + # From Aaron Schrab [ruby-Bugs:2535] + # + assert_cycle(:"^foo") + end + end if $0 == __FILE__