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__