diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-04-26 13:56:34 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-04-26 13:56:34 +0000 |
commit | 562648e48ca42e6a263d52677638683add7327a6 (patch) | |
tree | 5d9ba26a7a991d781ee1ebf1b6b3e3954ab5314f | |
parent | b486e50434df45d6e161eb359f576964a783e9e7 (diff) | |
download | ruby-562648e48ca42e6a263d52677638683add7327a6.tar.gz |
* 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
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | lib/rexml/element.rb | 2 | ||||
-rw-r--r-- | test/rexml/test_attributes.rb | 22 |
3 files changed, 32 insertions, 1 deletions
@@ -1,3 +1,12 @@ +Fri Apr 26 22:53:55 2013 Kouhei Sutou <kou@cozmixng.org> + + * 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 <kou@cozmixng.org> * 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) +<root + xmlns:ns1="http://example.org/ns1" + xmlns:ns2="http://example.org/ns2"> + <child + ns1:attribute="ns1" + ns2:attribute="ns2" + attribute="no-ns" + other-attribute="other-value"/> +</root> +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 |