From e49a4c952cfdf32abf3d6ba946f94d152dae988d Mon Sep 17 00:00:00 2001 From: kou Date: Sun, 18 Jun 2006 09:11:03 +0000 Subject: * lib/rss/rss.rb: changed empty namespace URI representation to "" from nil. * lib/rss/parser.rb: ditto. * lib/rss/0.9.rb: ditto. * lib/rss/1.0.rb: ditto. * lib/rss/2.0.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rss/0.9.rb | 44 ++++++++++++++++++++++---------------------- lib/rss/1.0.rb | 2 +- lib/rss/2.0.rb | 10 +++++----- lib/rss/parser.rb | 17 ++++++++++------- lib/rss/rss.rb | 2 +- 5 files changed, 39 insertions(+), 36 deletions(-) (limited to 'lib') diff --git a/lib/rss/0.9.rb b/lib/rss/0.9.rb index 3b193c6762..c3df99a213 100644 --- a/lib/rss/0.9.rb +++ b/lib/rss/0.9.rb @@ -9,7 +9,7 @@ module RSS def self.append_features(klass) super - klass.install_must_call_validator('', nil) + klass.install_must_call_validator('', "") end end @@ -84,7 +84,7 @@ module RSS def _tags [ - [nil, 'channel'], + ["", 'channel'], ].delete_if do |uri, name| __send__(name).nil? end @@ -204,11 +204,11 @@ module RSS ].delete_if do |name| __send__(name).nil? end.collect do |elem| - [nil, elem] + ["", elem] end @item.each do - rv << [nil, "item"] + rv << ["", "item"] end rv @@ -265,7 +265,7 @@ module RSS def _tags @day.compact.collect do - [nil, "day"] + ["", "day"] end end @@ -310,7 +310,7 @@ module RSS def _tags @hour.compact.collect do - [nil, "hour"] + ["", "hour"] end end @@ -376,7 +376,7 @@ module RSS %w(url title link width height description).delete_if do |name| __send__(name).nil? end.collect do |elem| - [nil, elem] + ["", elem] end end @@ -390,11 +390,11 @@ module RSS include RSS09 [ - ["domain", nil, true], - ["port", nil, true, :integer], - ["path", nil, true], - ["registerProcedure", nil, true], - ["protocol", nil, true], + ["domain", "", true], + ["port", "", true, :integer], + ["path", "", true], + ["registerProcedure", "", true], + ["protocol", "", true], ].each do |name, uri, required, type| install_get_attribute(name, uri, required, type) end @@ -478,11 +478,11 @@ module RSS source enclosure).delete_if do |name| __send__(name).nil? end.collect do |name| - [nil, name] + ["", name] end @category.each do - rv << [nil, "category"] + rv << ["", "category"] end rv @@ -507,7 +507,7 @@ module RSS include RSS09 [ - ["url", nil, true] + ["url", "", true] ].each do |name, uri, required| install_get_attribute(name, uri, required) end @@ -547,9 +547,9 @@ module RSS include RSS09 [ - ["url", nil, true], - ["length", nil, true, :integer], - ["type", nil, true], + ["url", "", true], + ["length", "", true, :integer], + ["type", "", true], ].each do |name, uri, required, type| install_get_attribute(name, uri, required, type) end @@ -592,7 +592,7 @@ module RSS include RSS09 [ - ["domain", nil, false] + ["domain", "", false] ].each do |name, uri, required| install_get_attribute(name, uri, required) end @@ -661,7 +661,7 @@ module RSS %w(title description name link).each do |name| __send__(name).nil? end.collect do |elem| - [nil, elem] + ["", elem] end end @@ -675,13 +675,13 @@ module RSS end RSS09::ELEMENTS.each do |name| - BaseListener.install_get_text_element(nil, name, "#{name}=") + BaseListener.install_get_text_element("", name, "#{name}=") end module ListenerMixin private def start_rss(tag_name, prefix, attrs, ns) - check_ns(tag_name, prefix, ns, nil) + check_ns(tag_name, prefix, ns, "") @rss = Rss.new(attrs['version'], @version, @encoding, @standalone) @rss.do_validate = @do_validate diff --git a/lib/rss/1.0.rb b/lib/rss/1.0.rb index 23b4e9953c..52cb2fb1ec 100644 --- a/lib/rss/1.0.rb +++ b/lib/rss/1.0.rb @@ -106,7 +106,7 @@ module RSS end [ - ["resource", [URI, nil], true] + ["resource", [URI, ""], true] ].each do |name, uri, required| install_get_attribute(name, uri, required) end diff --git a/lib/rss/2.0.rb b/lib/rss/2.0.rb index 1c3c22ee70..aa8bee479a 100644 --- a/lib/rss/2.0.rb +++ b/lib/rss/2.0.rb @@ -48,11 +48,11 @@ EOT rv = %w(generator ttl).delete_if do |name| __send__(name).nil? end.collect do |elem| - [nil, elem] + ["", elem] end + _tags09 @category.each do - rv << [nil, "category"] + rv << ["", "category"] end rv @@ -109,7 +109,7 @@ EOT %w(comments author pubDate guid).delete_if do |name| __send__(name).nil? end.collect do |elem| - [nil, elem] + ["", elem] end + _tags09 end @@ -124,7 +124,7 @@ EOT include RSS09 [ - ["isPermaLink", nil, false, :boolean] + ["isPermaLink", "", false, :boolean] ].each do |name, uri, required, type| install_get_attribute(name, uri, required, type) end @@ -168,7 +168,7 @@ EOT end RSS09::ELEMENTS.each do |name| - BaseListener.install_get_text_element(nil, name, "#{name}=") + BaseListener.install_get_text_element("", name, "#{name}=") end end diff --git a/lib/rss/parser.rb b/lib/rss/parser.rb index 4482af9d33..405bc87a63 100644 --- a/lib/rss/parser.rb +++ b/lib/rss/parser.rb @@ -221,7 +221,7 @@ module RSS unless private_instance_methods(false).include?("start_#{name}") module_eval(<<-EOT, file, line) def start_#{name}(name, prefix, attrs, ns) - uri = ns[prefix] + uri = _ns(ns, prefix) if self.class.uri_registered?(uri, #{name.inspect}) if @do_validate tags = self.class.available_tags(uri) @@ -291,7 +291,7 @@ module RSS @ns_stack.push(ns) prefix, local = split_name(name) - @tag_stack.last.push([ns[prefix], local]) + @tag_stack.last.push([_ns(ns, prefix), local]) @tag_stack.push([]) if respond_to?("start_#{local}", true) __send__("start_#{local}", local, prefix, attrs, ns.dup) @@ -317,6 +317,9 @@ module RSS end private + def _ns(ns, prefix) + ns.fetch(prefix, "") + end CONTENT_PATTERN = /\s*([^=]+)=(["'])([^\2]+?)\2/ def parse_pi_content(content) @@ -328,7 +331,7 @@ module RSS end def start_else_element(local, prefix, attrs, ns) - class_name = self.class.class_name(ns[prefix], local) + class_name = self.class.class_name(_ns(ns, prefix), local) current_class = @last_element.class if current_class.constants.include?(class_name) next_class = current_class.const_get(class_name) @@ -354,7 +357,7 @@ module RSS def check_ns(tag_name, prefix, ns, require_uri) if @do_validate - if ns[prefix] == require_uri + if _ns(ns, prefix) == require_uri #ns.delete(prefix) else raise NSError.new(tag_name, prefix, require_uri) @@ -387,7 +390,7 @@ module RSS if a_uri.is_a?(String) or !a_uri.respond_to?(:include?) a_uri = [a_uri] end - unless a_uri == [nil] + unless a_uri == [""] for prefix, uri in ns if a_uri.include?(uri) val = attrs["#{prefix}:#{a_name}"] @@ -395,12 +398,12 @@ module RSS end end end - if val.nil? and a_uri.include?(nil) + if val.nil? and a_uri.include?("") val = attrs[a_name] end if @do_validate and required and val.nil? - unless a_uri.include?(nil) + unless a_uri.include?("") for prefix, uri in ns if a_uri.include?(uri) a_name = "#{prefix}:#{a_name}" diff --git a/lib/rss/rss.rb b/lib/rss/rss.rb index d24a387fe1..b079661ec0 100644 --- a/lib/rss/rss.rb +++ b/lib/rss/rss.rb @@ -535,7 +535,7 @@ EOC end def required_uri - nil + "" end def install_ns(prefix, uri) -- cgit v1.2.3