summaryrefslogtreecommitdiff
path: root/lib/rss/parser.rb
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-12-08 12:58:36 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-12-08 12:58:36 +0000
commitbcf72db844b54492aca33b068711992bd73caccf (patch)
treea54da3329420c04614c460c3b45388951a790aa2 /lib/rss/parser.rb
parent67c5b057e692b39c801aea811c6b75b40c4b8c22 (diff)
* lib/rss, test/rss, sample/rss: backported from CVS HEAD.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rss/parser.rb')
-rw-r--r--lib/rss/parser.rb14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/rss/parser.rb b/lib/rss/parser.rb
index 09b3213372..1030c8f5d4 100644
--- a/lib/rss/parser.rb
+++ b/lib/rss/parser.rb
@@ -348,6 +348,13 @@ module RSS
end
if @do_validate and required and val.nil?
+ unless a_uri.include?(nil)
+ for prefix, uri in ns
+ if a_uri.include?(uri)
+ a_name = "#{prefix}:#{a_name}"
+ end
+ end
+ end
raise MissingAttributeError.new(tag_name, a_name)
end
@@ -357,10 +364,9 @@ module RSS
previous = @last_element
next_element = klass.send(:new, *args)
next_element.do_validate = @do_validate
- setter = ""
- setter << "#{klass.required_prefix}_" if klass.required_prefix
- setter << "#{tag_name}="
- @last_element.send(setter, next_element)
+ prefix = ""
+ prefix << "#{klass.required_prefix}_" if klass.required_prefix
+ previous.__send__(:set_next_element, prefix, tag_name, next_element)
@last_element = next_element
@proc_stack.push Proc.new { |text, tags|
p(@last_element.class) if DEBUG