summaryrefslogtreecommitdiff
path: root/lib/psych/visitors/yaml_tree.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2013-11-26 13:43:10 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2013-11-26 13:43:10 -0800
commit1029c92983fc2cf90107accb73cf69d206099694 (patch)
treed2ed870ca161882de0efdc4c2673d8a8b93fa8ac /lib/psych/visitors/yaml_tree.rb
parent6066fcc8d8d49ed22538cf33e2c3da61334d55b2 (diff)
downloadpsych-1029c92983fc2cf90107accb73cf69d206099694.zip
fix support for negative years.
Fixes #168
Diffstat (limited to 'lib/psych/visitors/yaml_tree.rb')
-rw-r--r--lib/psych/visitors/yaml_tree.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/psych/visitors/yaml_tree.rb b/lib/psych/visitors/yaml_tree.rb
index b469e2d..1cb2137 100644
--- a/lib/psych/visitors/yaml_tree.rb
+++ b/lib/psych/visitors/yaml_tree.rb
@@ -209,7 +209,11 @@ module Psych
end
def visit_DateTime o
- formatted = format_time o.to_time
+ formatted = if o.offset.zero?
+ o.strftime("%Y-%m-%d %H:%M:%S.%9N Z".freeze)
+ else
+ o.strftime("%Y-%m-%d %H:%M:%S.%9N %:z".freeze)
+ end
tag = '!ruby/object:DateTime'
register o, @emitter.scalar(formatted, nil, tag, false, false, Nodes::Scalar::ANY)
end