From 2fa78a09f7d3c35640f261cc427944a5011401cc Mon Sep 17 00:00:00 2001 From: kou Date: Wed, 8 Dec 2004 12:58:36 +0000 Subject: * lib/rss, test/rss, sample/rss: backported from CVS HEAD. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@7509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rss/parser.rb | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'lib/rss/parser.rb') diff --git a/lib/rss/parser.rb b/lib/rss/parser.rb index 09b321337..1030c8f5d 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 -- cgit