diff options
Diffstat (limited to 'lib/rexml/namespace.rb')
-rw-r--r-- | lib/rexml/namespace.rb | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/lib/rexml/namespace.rb b/lib/rexml/namespace.rb index 4a7174eaeb..924edf9506 100644 --- a/lib/rexml/namespace.rb +++ b/lib/rexml/namespace.rb @@ -1,4 +1,5 @@ # frozen_string_literal: false + require_relative 'xmltokens' module REXML @@ -14,14 +15,24 @@ module REXML # Sets the name and the expanded name def name=( name ) @expanded_name = name - name =~ NAMESPLIT - if $1 - @prefix = $1 + case name + when NAMESPLIT + if $1 + @prefix = $1 + else + @prefix = "" + @namespace = "" + end + @name = $2 + when "" + @prefix = nil + @namespace = nil + @name = nil else - @prefix = "" - @namespace = "" + message = "name must be \#{PREFIX}:\#{LOCAL_NAME} or \#{LOCAL_NAME}: " + message += "<#{name.inspect}>" + raise ArgumentError, message end - @name = $2 end # Compares names optionally WITH namespaces |