summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--lib/yaml/rubytypes.rb1
-rw-r--r--test/yaml/test_yaml.rb11
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 <aaron @nospam@ schrab.com>
+
+ * 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 <akr@m17n.org>
* 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 <ocean@m2.ccsnet.ne.jp>
* 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 <rubyforge @nospam@ kero.tmfweb.nl>
+
+ * lib/webrick/httpservlet/filehandler.rb: fixed typo. [ruby-core:7075]
Sun Jan 8 14:15:27 2006 Tanaka Akira <akr@m17n.org>
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__