diff options
Diffstat (limited to 'lib/rexml/attribute.rb')
-rw-r--r-- | lib/rexml/attribute.rb | 21 |
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, |