Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Mini xml 4 #6446

Merged
merged 1 commit into from

4 participants

@acapilleri

this pull request fixes #6328 and it was also discussed on #6436

@steveklabnik
Collaborator

This doesn't merge cleanly. Mind rebasing?

@rafaelfranca

And squash the commits.

@acapilleri

@rafaelfranca done, thanks

@carlosantoniodasilva

@acapilleri it still does not merge cleanly, could you please rebase it from current master? Thanks.

@acapilleri

excuse me, if could be trivial. I cherry-pick the single commit from the 3-2 branch to the master and the diff seems ok.
Also I tryed to do a pull request to my master and the merge has gone well. What's happened? Also I rebased from the master

@acapilleri

@carlosantoniodasilva , done, I think now it could be merged well. Thanks

@carlosantoniodasilva

I don't know what happened, but github was telling me it was not possible to merge :smiley:.. thanks!

@acapilleri

:)... thanks and i'm sorry for this troubles

@acapilleri acapilleri changed xml type datetime to dateTime, fixes #6328
XmlMini define the xml 'datatime', but according to
http://www.w3.org/TR/xmlschema-2/#dateTime could be better
change this to 'dateTime' with upper case letter 'T.
So 'DateTime' and 'Time' are redefined from 'datetime' to 'dateTime'

add the changing to the changelog
5646d65
@acapilleri

...ok.. updated and rebased, thanks

@carlosantoniodasilva carlosantoniodasilva merged commit a6d0e37 into rails:master
@carlosantoniodasilva

Great, merged, thanks! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on May 23, 2012
  1. @acapilleri

    changed xml type datetime to dateTime, fixes #6328

    acapilleri authored
    XmlMini define the xml 'datatime', but according to
    http://www.w3.org/TR/xmlschema-2/#dateTime could be better
    change this to 'dateTime' with upper case letter 'T.
    So 'DateTime' and 'Time' are redefined from 'datetime' to 'dateTime'
    
    add the changing to the changelog
This page is out of date. Refresh to see the latest.
View
2  activemodel/lib/active_model/serializers/xml.rb
@@ -172,7 +172,7 @@ def add_procs
# <id type="integer">1</id>
# <name>David</name>
# <age type="integer">16</age>
- # <created-at type="datetime">2011-01-30T22:29:23Z</created-at>
+ # <created-at type="dateTime">2011-01-30T22:29:23Z</created-at>
# </user>
#
# The <tt>:only</tt> and <tt>:except</tt> options can be used to limit the attributes
View
2  activemodel/test/cases/serializers/xml_serialization_test.rb
@@ -140,7 +140,7 @@ def setup
end
test "should serialize datetime" do
- assert_match %r{<created-at type=\"datetime\">2006-08-01T00:00:00Z</created-at>}, @contact.to_xml
+ assert_match %r{<created-at type=\"dateTime\">2006-08-01T00:00:00Z</created-at>}, @contact.to_xml
end
test "should serialize boolean" do
View
4 activerecord/lib/active_record/serializers/xml_serializer.rb
@@ -18,8 +18,8 @@ module Serialization
# <id type="integer">1</id>
# <approved type="boolean">false</approved>
# <replies-count type="integer">0</replies-count>
- # <bonus-time type="datetime">2000-01-01T08:28:00+12:00</bonus-time>
- # <written-on type="datetime">2003-07-16T09:28:00+1200</written-on>
+ # <bonus-time type="dateTime">2000-01-01T08:28:00+12:00</bonus-time>
+ # <written-on type="dateTime">2003-07-16T09:28:00+1200</written-on>
# <content>Have a nice day</content>
# <author-email-address>david@loudthinking.com</author-email-address>
# <parent-id></parent-id>
View
14 activerecord/test/cases/xml_serialization_test.rb
@@ -92,7 +92,7 @@ def test_should_serialize_binary
end
def test_should_serialize_datetime
- assert_match %r{<created-at type=\"datetime\">2006-08-01T00:00:00Z</created-at>}, @xml
+ assert_match %r{<created-at type=\"dateTime\">2006-08-01T00:00:00Z</created-at>}, @xml
end
def test_should_serialize_boolean
@@ -109,7 +109,7 @@ def test_should_serialize_datetime_with_timezone
timezone, Time.zone = Time.zone, "Pacific Time (US & Canada)"
toy = Toy.create(:name => 'Mickey', :updated_at => Time.utc(2006, 8, 1))
- assert_match %r{<updated-at type=\"datetime\">2006-07-31T17:00:00-07:00</updated-at>}, toy.to_xml
+ assert_match %r{<updated-at type=\"dateTime\">2006-07-31T17:00:00-07:00</updated-at>}, toy.to_xml
ensure
Time.zone = timezone
end
@@ -118,7 +118,7 @@ def test_should_serialize_datetime_with_timezone_reloaded
timezone, Time.zone = Time.zone, "Pacific Time (US & Canada)"
toy = Toy.create(:name => 'Minnie', :updated_at => Time.utc(2006, 8, 1)).reload
- assert_match %r{<updated-at type=\"datetime\">2006-07-31T17:00:00-07:00</updated-at>}, toy.to_xml
+ assert_match %r{<updated-at type=\"dateTime\">2006-07-31T17:00:00-07:00</updated-at>}, toy.to_xml
ensure
Time.zone = timezone
end
@@ -152,7 +152,7 @@ def test_should_serialize_datetime
assert %r{<created-at (.*)></created-at>}.match(@xml)
attributes = $1
assert_match %r{nil="true"}, attributes
- assert_match %r{type="datetime"}, attributes
+ assert_match %r{type="dateTime"}, attributes
end
def test_should_serialize_boolean
@@ -188,7 +188,7 @@ def test_to_xml
assert_equal "integer" , xml.elements["//replies-count"].attributes['type']
assert_equal written_on_in_current_timezone, xml.elements["//written-on"].text
- assert_equal "datetime" , xml.elements["//written-on"].attributes['type']
+ assert_equal "dateTime" , xml.elements["//written-on"].attributes['type']
assert_equal "david@loudthinking.com", xml.elements["//author-email-address"].text
@@ -198,7 +198,7 @@ def test_to_xml
if current_adapter?(:SybaseAdapter)
assert_equal last_read_in_current_timezone, xml.elements["//last-read"].text
- assert_equal "datetime" , xml.elements["//last-read"].attributes['type']
+ assert_equal "dateTime" , xml.elements["//last-read"].attributes['type']
else
# Oracle enhanced adapter allows to define Date attributes in model class (see topic.rb)
assert_equal "2004-04-15", xml.elements["//last-read"].text
@@ -211,7 +211,7 @@ def test_to_xml
assert_equal "boolean" , xml.elements["//approved"].attributes['type']
assert_equal bonus_time_in_current_timezone, xml.elements["//bonus-time"].text
- assert_equal "datetime" , xml.elements["//bonus-time"].attributes['type']
+ assert_equal "dateTime" , xml.elements["//bonus-time"].attributes['type']
end
end
View
2  activesupport/CHANGELOG.md
@@ -1,5 +1,7 @@
## Rails 4.0.0 (unreleased) ##
+* Changed xml type `datetime` to `dateTime` (with upper case letter `T`). *Angelo Capilleri*
+
* Add `:instance_accessor` option for `class_attribute`. *Alexey Vakhov*
* `constantize` now looks in the ancestor chain. *Marc-Andre Lafortune & Andrew White*
View
4 activesupport/lib/active_support/core_ext/hash/conversions.rb
@@ -57,8 +57,8 @@ class Hash
# "TrueClass" => "boolean",
# "FalseClass" => "boolean",
# "Date" => "date",
- # "DateTime" => "datetime",
- # "Time" => "datetime"
+ # "DateTime" => "dateTime",
+ # "Time" => "dateTime"
# }
#
# By default the root node is "hash", but that's configurable via the <tt>:root</tt> option.
View
9 activesupport/lib/active_support/xml_mini.rb
@@ -39,8 +39,8 @@ def content_type
"TrueClass" => "boolean",
"FalseClass" => "boolean",
"Date" => "date",
- "DateTime" => "datetime",
- "Time" => "datetime",
+ "DateTime" => "dateTime",
+ "Time" => "dateTime",
"Array" => "array",
"Hash" => "hash"
} unless defined?(TYPE_NAMES)
@@ -48,7 +48,7 @@ def content_type
FORMATTING = {
"symbol" => Proc.new { |symbol| symbol.to_s },
"date" => Proc.new { |date| date.to_s(:db) },
- "datetime" => Proc.new { |time| time.xmlschema },
+ "dateTime" => Proc.new { |time| time.xmlschema },
"binary" => Proc.new { |binary| ::Base64.encode64(binary) },
"yaml" => Proc.new { |yaml| yaml.to_yaml }
} unless defined?(FORMATTING)
@@ -111,6 +111,7 @@ def to_tag(key, value, options)
type_name ||= TYPE_NAMES[value.class.name]
type_name ||= value.class.name if value && !value.respond_to?(:to_str)
type_name = type_name.to_s if type_name
+ type_name = "dateTime" if type_name == "datetime"
key = rename_key(key.to_s, options)
@@ -145,7 +146,7 @@ def _dasherize(key)
"#{left}#{middle.tr('_ ', '--')}#{right}"
end
- # TODO: Add support for other encodings
+ # TODO: Add support for other encodings
def _parse_binary(bin, entity) #:nodoc:
case entity['encoding']
when 'base64'
View
4 activesupport/test/core_ext/hash_ext_test.rb
@@ -672,8 +672,8 @@ def test_timezoned_attributes
: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
+ 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_multiple_records_from_xml_with_attributes_other_than_type_ignores_them_without_exploding
Something went wrong with that request. Please try again.