- Category set to ext
- Assignee set to tenderlovemaking (Aaron Patterson)
- Target version set to 1.9.3
これは syck のバグです。Ruby 1.9.2 で最初に require 'psych' と書いてから、require 'yaml' と書けば、バグは発生しません。
例:
ruby-1.9.2-p290 :001 > RUBY_VERSION
=> "1.9.2"
ruby-1.9.2-p290 :002 > require 'psych'
=> true
ruby-1.9.2-p290 :003 > require 'yaml'
=> true
ruby-1.9.2-p290 :004 > YAML.load("--- foo")
=> "foo"
ruby-1.9.2-p290 :005 > YAML.load("--- !str foo")
=> "foo"
ruby-1.9.2-p290 :006 > YAML.load("--- !tag:yaml.org,2002:str foo")
=> "foo"
ruby-1.9.2-p290 :007 > YAML.load("--- !!str foo")
=> "foo"
ruby-1.9.2-p290 :008 > YAML.load("--- !tag:yaml.org,2002:str foo")
Psych::SyntaxError: couldn't parse YAML at line 1 column 24
from /Users/aaron/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:in parse' from /Users/aaron/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:in parse_stream'
from /Users/aaron/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:119:in parse' from /Users/aaron/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:106:in load'
from (irb):8
from /Users/aaron/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `'
ruby-1.9.2-p290 :009 >
Ruby 1.9.3 を使ったら、require 'yaml' だけで良いです。
例:
ruby-1.9.3-head :001 > RUBY_VERSION
=> "1.9.3"
ruby-1.9.3-head :002 > require 'yaml'
=> true
ruby-1.9.3-head :003 > YAML.load("--- foo")
=> "foo"
ruby-1.9.3-head :004 > YAML.load("--- !str foo")
=> "foo"
ruby-1.9.3-head :005 > YAML.load("--- !tag:yaml.org,2002:str foo")
=> "foo"
ruby-1.9.3-head :006 > YAML.load("--- !!str foo")
=> "foo"
ruby-1.9.3-head :007 > YAML.load("--- !tag:yaml.org,2002:str foo")
Psych::SyntaxError: (): couldn't parse YAML at line 0 column 24
from /Users/aaron/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/psych.rb:154:in parse' from /Users/aaron/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/psych.rb:154:in parse_stream'
from /Users/aaron/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/psych.rb:125:in parse' from /Users/aaron/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/psych.rb:112:in load'
from (irb):7
from /Users/aaron/.rvm/rubies/ruby-1.9.3-head/bin/irb:16:in `'
ruby-1.9.3-head :008 >