From c62aca26c561d7ff129d4408c81cb6f838490509 Mon Sep 17 00:00:00 2001 From: tenderlove Date: Fri, 5 Jul 2013 19:51:12 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ ext/psych/lib/psych/visitors/yaml_tree.rb | 2 +- test/psych/test_date_time.rb | 8 ++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 3106ad9f9c..d6fd2ca577 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sat Jul 6 04:49:38 2013 Aaron Patterson + + * 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 * 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