summaryrefslogtreecommitdiff
path: root/lib/rss/parser.rb
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-08-13 15:06:58 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-08-13 15:06:58 +0000
commit3349fd5826427a6dfe512202976ddd825ba550b9 (patch)
treeae53ccaee48b23a01886918df61f6f10458df8d8 /lib/rss/parser.rb
parentf5da26fc3419426c6619fc86308f966181762f07 (diff)
* lib/rss/rss.rb: 0.1.8 -> 0.1.9.
* test/rss/test_version.rb: followed the above change. * lib/rss/parser.rb: fixed a bug that handles unintended elements. Thanks to Takuo Yonezawa. [ruby-list:43841] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rss/parser.rb')
-rw-r--r--lib/rss/parser.rb9
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/rss/parser.rb b/lib/rss/parser.rb
index b7a76397b8..bf3b0b5d08 100644
--- a/lib/rss/parser.rb
+++ b/lib/rss/parser.rb
@@ -365,10 +365,10 @@ module RSS
def start_else_element(local, prefix, attrs, ns)
class_name = self.class.class_name(_ns(ns, prefix), local)
current_class = @last_element.class
- next_class = nil
- begin
+ if current_class.const_defined?(class_name)
next_class = current_class.const_get(class_name)
- rescue NameError
+ start_have_something_element(local, prefix, attrs, ns, next_class)
+ else
if !@do_validate or @ignore_unknown_element
@proc_stack.push(nil)
else
@@ -379,9 +379,6 @@ module RSS
raise NotExpectedTagError.new(local, _ns(ns, prefix), parent)
end
end
- if next_class
- start_have_something_element(local, prefix, attrs, ns, next_class)
- end
end
NAMESPLIT = /^(?:([\w:][-\w\d.]*):)?([\w:][-\w\d.]*)/