aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorRick Olson <technoweenie@gmail.com>2006-07-13 00:44:09 +0000
committerRick Olson <technoweenie@gmail.com>2006-07-13 00:44:09 +0000
commit1ec9f8d049eda0c52a3045752ed447f371462676 (patch)
tree1b6294b8bd99df02229a79cc55855908c851a85a /activesupport
parent35f7cc23badaf51eca7d27b72613ab220d6936a6 (diff)
downloadrails-1ec9f8d049eda0c52a3045752ed447f371462676.tar.gz
rails-1ec9f8d049eda0c52a3045752ed447f371462676.tar.bz2
rails-1ec9f8d049eda0c52a3045752ed447f371462676.zip
Correctly convert <foo nil=true> to nil when using Hash.create_from_xml. [Rick]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4607 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/CHANGELOG2
-rw-r--r--activesupport/lib/active_support/core_ext/hash/conversions.rb2
-rw-r--r--activesupport/test/core_ext/hash_ext_test.rb2
3 files changed, 4 insertions, 2 deletions
diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG
index 5d79c19385..5470555d8e 100644
--- a/activesupport/CHANGELOG
+++ b/activesupport/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Correctly convert <foo nil="true"> to nil when using Hash.create_from_xml. [Rick]
+
* Optional identity for Enumerable#sum defaults to zero. #5657 [gensym@mac.com]
* HashWithIndifferentAccess shouldn't confuse false and nil. #5601 [shugo@ruby-lang.org]
diff --git a/activesupport/lib/active_support/core_ext/hash/conversions.rb b/activesupport/lib/active_support/core_ext/hash/conversions.rb
index 1e7f8eb68d..7927a39d44 100644
--- a/activesupport/lib/active_support/core_ext/hash/conversions.rb
+++ b/activesupport/lib/active_support/core_ext/hash/conversions.rb
@@ -101,7 +101,7 @@ module ActiveSupport #:nodoc:
else content
end
else
- value.empty? ? nil : value.inject({}) do |h,(k,v)|
+ value.empty? || value['nil'] == 'true' ? nil : value.inject({}) do |h,(k,v)|
h[k] = typecast_xml_value(v)
h
end
diff --git a/activesupport/test/core_ext/hash_ext_test.rb b/activesupport/test/core_ext/hash_ext_test.rb
index 2afdf95c4d..bcb4b43af0 100644
--- a/activesupport/test/core_ext/hash_ext_test.rb
+++ b/activesupport/test/core_ext/hash_ext_test.rb
@@ -352,7 +352,7 @@ class HashToXmlTest < Test::Unit::TestCase
<viewed-at type="datetime">2003-07-16T09:28:00+0000</viewed-at>
<content>Have a nice day</content>
<author-email-address>david@loudthinking.com</author-email-address>
- <parent-id></parent-id>
+ <parent-id nil="true"></parent-id>
</topic>
<topic>
<title>The Second Topic</title>