Package: ruby1.8
Version: 1.8.3+1.8.4preview2-1
Severity: normal
Tags: patch

I reported this upstream some time ago, it's bug 2525 on rubyforge.

http://rubyforge.org/tracker/?func=detail&aid=2535&group_id=426&atid=1698

Since it doesn't look like this is going to get fixed upstream for
1.8.4, I'm reporting it here.  Hopefully it can at least be fixed in the
Debian package.

When loading Symbols containing characters that need to be quoted (e.g.
:"^foo"), the YAML library included with ruby 1.8.3 includes the quotes
in the Symbol.  This makes it impossible for such Symbols to correctly
survive a round trip through YAML.


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.14-2-k7
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages ruby1.8 depends on:
ii  libc6              2.3.5-9               GNU C Library: Shared libraries an
ii  libruby1.8         1.8.3+1.8.4preview2-1 Libraries necessary to run Ruby 1.

ruby1.8 recommends no packages.

-- no debconf information
diff -ur ruby-1.8.3.dist/lib/yaml/rubytypes.rb ruby-1.8.3/lib/yaml/rubytypes.rb
--- ruby-1.8.3.dist/lib/yaml/rubytypes.rb       2005-09-20 01:46:45.000000000 
-0500
+++ ruby-1.8.3/lib/yaml/rubytypes.rb    2005-09-28 12:00:41.556586678 -0500
@@ -183,6 +183,7 @@
     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

Reply via email to