summaryrefslogtreecommitdiff
path: root/lib/rss/parser.rb
diff options
context:
space:
mode:
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