Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Use xmlschema when serializing TimeWithZones to xml [#2223 state:reso…

…lved]

When using Hash#to_xml, any TimeWithZone objects now use xmlschema (iso8601), rather than a simple TimeWithZone#to_s.

Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
  • Loading branch information...
commit 923067810480c93817dbae3d8295a18aa2a2ec3a 1 parent d771e7d
Jonathan del Strother authored lifo committed
5 activesupport/lib/active_support/core_ext/hash/conversions.rb
View
@@ -24,11 +24,12 @@ def content_type
"Bignum" => "integer",
"BigDecimal" => "decimal",
"Float" => "float",
+ "TrueClass" => "boolean",
+ "FalseClass" => "boolean",
"Date" => "date",
"DateTime" => "datetime",
"Time" => "datetime",
- "TrueClass" => "boolean",
- "FalseClass" => "boolean"
+ "ActiveSupport::TimeWithZone" => "datetime"
} unless defined?(XML_TYPE_NAMES)
XML_FORMATTING = {
9 activesupport/test/core_ext/hash_ext_test.rb
View
@@ -497,6 +497,15 @@ def test_three_levels_with_array
assert xml.include?(%(<addresses type="array"><address><streets type="array"><street><name>))
end
+ def test_timezoned_attributes
+ xml = {
+ :created_at => Time.utc(1999,2,2),
+ :local_created_at => Time.utc(1999,2,2).in_time_zone('Eastern Time (US & Canada)')
+ }.to_xml(@xml_options)
+ assert_match %r{<created-at type=\"datetime\">1999-02-02T00:00:00Z</created-at>}, xml
+ assert_match %r{<local-created-at type=\"datetime\">1999-02-01T19:00:00-05:00</local-created-at>}, xml
+ end
+
def test_single_record_from_xml
topic_xml = <<-EOT
<topic>
Please sign in to comment.
Something went wrong with that request. Please try again.