From 7642b7531d222c9d7a94add50fffca69458e0eef Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Wed, 19 Jan 2011 15:19:57 -0800 Subject: prefering psych as the yaml parser if possible, fixing assertions for YAML 1.1 compatibility --- .../lib/active_support/core_ext/big_decimal/conversions.rb | 6 ++++++ activesupport/lib/active_support/time_with_zone.rb | 10 ++++++++++ 2 files changed, 16 insertions(+) (limited to 'activesupport/lib') diff --git a/activesupport/lib/active_support/core_ext/big_decimal/conversions.rb b/activesupport/lib/active_support/core_ext/big_decimal/conversions.rb index a279849829..11c318c244 100644 --- a/activesupport/lib/active_support/core_ext/big_decimal/conversions.rb +++ b/activesupport/lib/active_support/core_ext/big_decimal/conversions.rb @@ -1,4 +1,10 @@ require 'bigdecimal' + +begin + require 'psych' +rescue LoadError +end + require 'yaml' class BigDecimal diff --git a/activesupport/lib/active_support/time_with_zone.rb b/activesupport/lib/active_support/time_with_zone.rb index 8137f8e17e..3da216ac78 100644 --- a/activesupport/lib/active_support/time_with_zone.rb +++ b/activesupport/lib/active_support/time_with_zone.rb @@ -137,7 +137,17 @@ module ActiveSupport end end + def encode_with(coder) + if coder.respond_to?(:represent_object) + coder.represent_object(nil, utc) + else + coder.represent_scalar(nil, utc.strftime("%Y-%m-%d %H:%M:%S.%9NZ")) + end + end + def to_yaml(options = {}) + return super if defined?(YAML::ENGINE) && !YAML::ENGINE.syck? + utc.to_yaml(options) end -- cgit v1.2.3