From 562648e48ca42e6a263d52677638683add7327a6 Mon Sep 17 00:00:00 2001 From: kou Date: Fri, 26 Apr 2013 13:56:34 +0000 Subject: [PATCH] * lib/rexml/element.rb (REXML::Attributes#to_a): Support namespaced attributes. [ruby-dev:47277] [Bug #8301] Patch by Ippei Obayashi. Thanks!!! * test/rexml/test_attributes.rb (AttributesTester#test_to_a_with_namespaces): Add a test of the above change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 9 +++++++++ lib/rexml/element.rb | 2 +- test/rexml/test_attributes.rb | 22 ++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index a1d8e1b7b6..c2278137be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Fri Apr 26 22:53:55 2013 Kouhei Sutou + + * lib/rexml/element.rb (REXML::Attributes#to_a): Support + namespaced attributes. [ruby-dev:47277] [Bug #8301] + Patch by Ippei Obayashi. Thanks!!! + * test/rexml/test_attributes.rb + (AttributesTester#test_to_a_with_namespaces): Add a test of the + above change. + Fri Apr 26 21:48:29 2013 Kouhei Sutou * lib/rss/atom.rb (RSS::Atom::Entry): Fix indent of document comment. diff --git a/lib/rexml/element.rb b/lib/rexml/element.rb index c415830c14..c30b150c0b 100644 --- a/lib/rexml/element.rb +++ b/lib/rexml/element.rb @@ -987,7 +987,7 @@ module REXML end def to_a - values.flatten + enum_for(:each_attribute).to_a end # Returns the number of attributes the owning Element contains. diff --git a/test/rexml/test_attributes.rb b/test/rexml/test_attributes.rb index e46850de3a..f9c09876f7 100644 --- a/test/rexml/test_attributes.rb +++ b/test/rexml/test_attributes.rb @@ -195,4 +195,26 @@ class AttributesTester < Test::Unit::TestCase doc.add_element 'a', { 'v' => 'x & y' } assert doc.to_s.index(';') end + + def test_to_a_with_namespaces + document = Document.new(<<-XML) + + + +XML + child = document.root.elements["child"] + assert_equal([ + "attribute='no-ns'", + "ns1:attribute='ns1'", + "ns2:attribute='ns2'", + "other-attribute='other-value'", + ], + child.attributes.to_a.collect(&:to_string).sort) + end end