aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support
diff options
context:
space:
mode:
authorDavid Burger <davidjburger@yahoo.com>2009-05-17 21:36:44 -0700
committerPratik Naik <pratiknaik@gmail.com>2009-08-09 21:46:52 +0100
commit1382f4de1f9b0e443e7884bd4da53c20f0754568 (patch)
tree0901f754519da277ae98f4bd3ec606d49e02ce35 /activesupport/lib/active_support
parent870750ed4b1e0b0e574aaec86db3e2cdf94b1190 (diff)
downloadrails-1382f4de1f9b0e443e7884bd4da53c20f0754568.tar.gz
rails-1382f4de1f9b0e443e7884bd4da53c20f0754568.tar.bz2
rails-1382f4de1f9b0e443e7884bd4da53c20f0754568.zip
Fix that Hash#to_xml and Array#to_xml shouldn't modify their options hashes [#672 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
Diffstat (limited to 'activesupport/lib/active_support')
-rw-r--r--activesupport/lib/active_support/core_ext/array/conversions.rb1
-rw-r--r--activesupport/lib/active_support/core_ext/hash/conversions.rb1
2 files changed, 2 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/core_ext/array/conversions.rb b/activesupport/lib/active_support/core_ext/array/conversions.rb
index 11846f265c..c53cf3f530 100644
--- a/activesupport/lib/active_support/core_ext/array/conversions.rb
+++ b/activesupport/lib/active_support/core_ext/array/conversions.rb
@@ -159,6 +159,7 @@ class Array
raise "Not all elements respond to to_xml" unless all? { |e| e.respond_to? :to_xml }
require 'builder' unless defined?(Builder)
+ options = options.dup
options[:root] ||= all? { |e| e.is_a?(first.class) && first.class.to_s != "Hash" } ? ActiveSupport::Inflector.pluralize(ActiveSupport::Inflector.underscore(first.class.name)) : "records"
options[:children] ||= options[:root].singularize
options[:indent] ||= 2
diff --git a/activesupport/lib/active_support/core_ext/hash/conversions.rb b/activesupport/lib/active_support/core_ext/hash/conversions.rb
index 2a34874d08..bd9419e1a2 100644
--- a/activesupport/lib/active_support/core_ext/hash/conversions.rb
+++ b/activesupport/lib/active_support/core_ext/hash/conversions.rb
@@ -86,6 +86,7 @@ class Hash
def to_xml(options = {})
require 'builder' unless defined?(Builder)
+ options = options.dup
options[:indent] ||= 2
options.reverse_merge!({ :builder => Builder::XmlMarkup.new(:indent => options[:indent]),
:root => "hash" })