Bug #4479
closedPsych fails to parse timestamps which is parsable by Syck
Description
=begin
$ irb -f -ryaml -rpsych --prompt simple
RUBY_DESCRIPTION
=> "ruby 1.9.3dev (2011-03-08 trunk 31054) [x86_64-darwin10.6.0]"
YAML::ENGINE.yamler = 'syck'
=> "syck"
YAML.load('{created_at: 2011-03-04T15:58:25Z}')
=> {"created_at"=>2011-03-04 15:58:25 UTC}
YAML::ENGINE.yamler = 'psych'
=> "psych"
YAML.load('{created_at: 2011-03-04T15:58:25Z}')
Psych::SyntaxError: (): couldn't parse YAML at line 0 column 26
from /usr/local/lib/ruby/1.9.1/psych.rb:154:inparse' from /usr/local/lib/ruby/1.9.1/psych.rb:154:in
parse_stream'
from /usr/local/lib/ruby/1.9.1/psych.rb:125:inparse' from /usr/local/lib/ruby/1.9.1/psych.rb:112:in
load'
from (irb):5
from /usr/local/bin/irb:12:in `'
I encountered this in ActiveSupport::JSON::Backends::Yaml.decode fed a JSON sent to a Rails app from Ext.js 4's RestProxy.
=end
Updated by sakuro (Sakuro OZAWA) over 13 years ago
=begin
Reformat...
$ irb -f -ryaml -rpsych --prompt simple
RUBY_DESCRIPTION
=> "ruby 1.9.3dev (2011-03-08 trunk 31054) [x86_64-darwin10.6.0]"
YAML::ENGINE.yamler = 'syck'
=> "syck"
YAML.load('{created_at: 2011-03-04T15:58:25Z}')
=> {"created_at"=>2011-03-04 15:58:25 UTC}
YAML::ENGINE.yamler = 'psych'
=> "psych"
YAML.load('{created_at: 2011-03-04T15:58:25Z}')
Psych::SyntaxError: (): couldn't parse YAML at line 0 column 26
from /usr/local/lib/ruby/1.9.1/psych.rb:154:inparse' from /usr/local/lib/ruby/1.9.1/psych.rb:154:in
parse_stream'
from /usr/local/lib/ruby/1.9.1/psych.rb:125:inparse' from /usr/local/lib/ruby/1.9.1/psych.rb:112:in
load'
from (irb):5
from /usr/local/bin/irb:12:in `'
I encountered this in ActiveSupport::JSON::Backends::Yaml.decode fed a JSON sent to a Rails app from Ext.js 4's RestProxy.
=end
Updated by sakuro (Sakuro OZAWA) over 13 years ago
=begin
libyaml version 0.1.3 (MacPorts)
=end
Updated by tenderlovemaking (Aaron Patterson) over 13 years ago
- Status changed from Open to Third Party's Issue
- Assignee set to tenderlovemaking (Aaron Patterson)
=begin
This is due to ambiguities in the YAML spec and is expressly not supported by libyaml.
Please see the discussion here:
and here:
http://pyyaml.org/wiki/YAMLColonInFlowContext
=end