diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ext/psych/lib/psych/visitors/yaml_tree.rb | 2 | ||||
-rw-r--r-- | test/psych/test_date_time.rb | 8 |
3 files changed, 15 insertions, 1 deletions
@@ -1,3 +1,9 @@ +Sat Jul 6 04:49:38 2013 Aaron Patterson <aaron@tenderlovemaking.com> + + * ext/psych/lib/psych/visitors/yaml_tree.rb: register time objects so + they are referenced as ids during output. + * test/psych/test_date_time.rb: corresponding test. + Fri Jul 5 20:46:39 2013 NAKAMURA Usaku <usa@ruby-lang.org> * test/ruby/test_unicode_escape.rb (TestUnicodeEscape#test_basic): this diff --git a/ext/psych/lib/psych/visitors/yaml_tree.rb b/ext/psych/lib/psych/visitors/yaml_tree.rb index 3f41f6b5ae..24cbe87f80 100644 --- a/ext/psych/lib/psych/visitors/yaml_tree.rb +++ b/ext/psych/lib/psych/visitors/yaml_tree.rb @@ -216,7 +216,7 @@ module Psych def visit_Time o formatted = format_time o - @emitter.scalar formatted, nil, nil, true, false, Nodes::Scalar::ANY + register o, @emitter.scalar(formatted, nil, nil, true, false, Nodes::Scalar::ANY) end def visit_Rational o diff --git a/test/psych/test_date_time.rb b/test/psych/test_date_time.rb index df66d142f6..9a8e37bc67 100644 --- a/test/psych/test_date_time.rb +++ b/test/psych/test_date_time.rb @@ -13,5 +13,13 @@ module Psych dt = DateTime.now assert_cycle dt end + + def test_alias_with_time + t = Time.now + h = {:a => t, :b => t} + yaml = Psych.dump h + assert_match('&', yaml) + assert_match('*', yaml) + end end end |