diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2006-06-29 02:00:44 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2006-06-29 02:00:44 +0000 |
commit | 4defe1ac8a1689262a9a9f2c030714727f72e06e (patch) | |
tree | 3dd05013bf0a30c0a416e34d57af2146393bd20b /activesupport | |
parent | 1fd9a46d713a4b314621bd7cf171bd048b10741f (diff) | |
download | rails-4defe1ac8a1689262a9a9f2c030714727f72e06e.tar.gz rails-4defe1ac8a1689262a9a9f2c030714727f72e06e.tar.bz2 rails-4defe1ac8a1689262a9a9f2c030714727f72e06e.zip |
More compatible Hash.create_from_xml. Closes #5523.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4510 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/CHANGELOG | 2 | ||||
-rw-r--r-- | activesupport/lib/active_support/core_ext/hash/conversions.rb | 2 | ||||
-rw-r--r-- | activesupport/test/core_ext/hash_ext_test.rb | 23 |
3 files changed, 27 insertions, 0 deletions
diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG index e1d34edb90..94470cf139 100644 --- a/activesupport/CHANGELOG +++ b/activesupport/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* More compatible Hash.create_from_xml. #5523 [nunemaker@gmail.com] + * Added Enumerable#sum for calculating a sum from the elements [DHH, jonathan@daikini.com]. Examples: [1, 2, 3].sum diff --git a/activesupport/lib/active_support/core_ext/hash/conversions.rb b/activesupport/lib/active_support/core_ext/hash/conversions.rb index ac4a612e49..1e7f8eb68d 100644 --- a/activesupport/lib/active_support/core_ext/hash/conversions.rb +++ b/activesupport/lib/active_support/core_ext/hash/conversions.rb @@ -113,6 +113,8 @@ module ActiveSupport #:nodoc: when 1 then value.first else value end + when "String" + value else raise "can't typecast #{value.inspect}" end diff --git a/activesupport/test/core_ext/hash_ext_test.rb b/activesupport/test/core_ext/hash_ext_test.rb index 65050de15a..bd197a7e4e 100644 --- a/activesupport/test/core_ext/hash_ext_test.rb +++ b/activesupport/test/core_ext/hash_ext_test.rb @@ -357,4 +357,27 @@ class HashToXmlTest < Test::Unit::TestCase assert_equal expected_topic_hash, Hash.create_from_xml(topics_xml)["topics"]["topic"].first end + + def test_single_record_from_xml_with_attributes_other_than_type + topic_xml = <<-EOT + <rsp stat="ok"> + <photos page="1" pages="1" perpage="100" total="16"> + <photo id="175756086" owner="55569174@N00" secret="0279bf37a1" server="76" title="Colored Pencil PhotoBooth Fun" ispublic="1" isfriend="0" isfamily="0"/> + </photos> + </rsp> + EOT + + expected_topic_hash = { + :id => "175756086", + :owner => "55569174@N00", + :secret => "0279bf37a1", + :server => "76", + :title => "Colored Pencil PhotoBooth Fun", + :ispublic => "1", + :isfriend => "0", + :isfamily => "0", + }.stringify_keys + + assert_equal expected_topic_hash, Hash.create_from_xml(topic_xml)["rsp"]["photos"]["photo"] + end end
\ No newline at end of file |