summaryrefslogtreecommitdiff
path: root/lib/rss
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-06-18 09:11:03 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-06-18 09:11:03 +0000
commite49a4c952cfdf32abf3d6ba946f94d152dae988d (patch)
tree6f9d79fc7b7ff1145ebe9f0b74db8912c72ac017 /lib/rss
parent6a594b159a871b4ee53c3e4e175a02b95583f942 (diff)
* 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
Diffstat (limited to 'lib/rss')
-rw-r--r--lib/rss/0.9.rb44
-rw-r--r--lib/rss/1.0.rb2
-rw-r--r--lib/rss/2.0.rb10
-rw-r--r--lib/rss/parser.rb17
-rw-r--r--lib/rss/rss.rb2
5 files changed, 39 insertions, 36 deletions
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)