diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-12-08 12:58:36 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-12-08 12:58:36 +0000 |
commit | bcf72db844b54492aca33b068711992bd73caccf (patch) | |
tree | a54da3329420c04614c460c3b45388951a790aa2 /lib/rss/parser.rb | |
parent | 67c5b057e692b39c801aea811c6b75b40c4b8c22 (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.rb | 14 |
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 |