aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rexml/attribute.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rexml/attribute.rb')
-rw-r--r--lib/rexml/attribute.rb21
1 files changed, 10 insertions, 11 deletions
diff --git a/lib/rexml/attribute.rb b/lib/rexml/attribute.rb
index 37671cf15f..8933a013a2 100644
--- a/lib/rexml/attribute.rb
+++ b/lib/rexml/attribute.rb
@@ -67,15 +67,11 @@ module REXML
# e.add_attribute( "nsa:a", "aval" )
# e.add_attribute( "b", "bval" )
# e.attributes.get_attribute( "a" ).prefix # -> "nsa"
- # e.attributes.get_attribute( "b" ).prefix # -> "elns"
+ # e.attributes.get_attribute( "b" ).prefix # -> ""
# a = Attribute.new( "x", "y" )
# a.prefix # -> ""
def prefix
- pf = super
- if pf == ""
- pf = @element.prefix if @element
- end
- pf
+ super
end
# Returns the namespace URL, if defined, or nil otherwise
@@ -87,9 +83,8 @@ module REXML
# e.attribute("ns:a").namespace # => "http://url"
# e.attribute("nsx:a").namespace # => nil
#
- # TODO: This method should always return nil for no namespace
- # attribute. Because the default namespace doesn't apply to
- # attribute name.
+ # This method always returns "" for no namespace attribute. Because
+ # the default namespace doesn't apply to attribute names.
#
# From https://www.w3.org/TR/xml-names/#uniqAttrs
#
@@ -99,10 +94,14 @@ module REXML
# e.add_namespace("", "http://example.com/")
# e.namespace # => "http://example.com/"
# e.add_attribute("a", "b")
- # e.attribute("a").namespace # => nil
+ # e.attribute("a").namespace # => ""
def namespace arg=nil
arg = prefix if arg.nil?
- @element.namespace arg
+ if arg == ""
+ ""
+ else
+ @element.namespace(arg)
+ end
end
# Returns true if other is an Attribute and has the same name and value,