From 163224f639a17980319ca6cd1942a7159b233b81 Mon Sep 17 00:00:00 2001 From: ocean Date: Tue, 10 Jan 2006 03:05:40 +0000 Subject: * 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/trunk@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 44e19c69ee..26b8b8af13 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] + Tue Jan 10 07:26:52 2006 Tanaka Akira * gc.c (gc_stress): renamed from always_gc and enabled by default. @@ -14,8 +19,9 @@ Mon Jan 9 14:25:00 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:25:00 2006 Kero van Gelder + + * lib/webrick/httpservlet/filehandler.rb: fixed typo. [ruby-core:7075] Sun Jan 8 14:15:27 2006 Tanaka Akira 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__ -- cgit v1.2.3