From 966a25465aab5c2972e6c453f631a15fc2223256 Mon Sep 17 00:00:00 2001 From: kou Date: Sat, 17 Mar 2007 10:13:25 +0000 Subject: * lib/rss, test/rss: - supported Atom. - bumped version 0.1.6 to 0.1.7. * sample/rss/convert.rb: added new sample. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rss/2.0.rb | 97 ++++++++++------------------------------------------------ 1 file changed, 17 insertions(+), 80 deletions(-) (limited to 'lib/rss/2.0.rb') diff --git a/lib/rss/2.0.rb b/lib/rss/2.0.rb index 1c3c22ee70..3798da4eb7 100644 --- a/lib/rss/2.0.rb +++ b/lib/rss/2.0.rb @@ -10,52 +10,20 @@ module RSS ["generator"], ["ttl", :integer], ].each do |name, type| - install_text_element(name, type) - install_model(name, '?') + install_text_element(name, "", "?", name, type) end [ %w(category categories), ].each do |name, plural_name| - install_have_children_element(name, plural_name) - install_model(name, '*') + install_have_children_element(name, "", "*", name, plural_name) end - + [ ["image", "?"], ["language", "?"], ].each do |name, occurs| - install_model(name, occurs) - end - - def other_element(need_convert, indent) - rv = <<-EOT -#{category_elements(need_convert, indent)} -#{generator_element(need_convert, indent)} -#{ttl_element(need_convert, indent)} -EOT - rv << super - end - - private - alias children09 children - def children - children09 + @category.compact - end - - alias _tags09 _tags - def _tags - rv = %w(generator ttl).delete_if do |name| - __send__(name).nil? - end.collect do |elem| - [nil, elem] - end + _tags09 - - @category.each do - rv << [nil, "category"] - end - - rv + install_model(name, "", occurs) end Category = Item::Category @@ -66,15 +34,13 @@ EOT ["comments", "?"], ["author", "?"], ].each do |name, occurs| - install_text_element(name) - install_model(name, occurs) + install_text_element(name, "", occurs) end [ ["pubDate", '?'], ].each do |name, occurs| - install_date_element(name, 'rfc822') - install_model(name, occurs) + install_date_element(name, "", occurs, name, 'rfc822') end alias date pubDate alias date= pubDate= @@ -82,37 +48,10 @@ EOT [ ["guid", '?'], ].each do |name, occurs| - install_have_child_element(name) - install_model(name, occurs) - end - - def other_element(need_convert, indent) - rv = [ - super, - *%w(author comments pubDate guid).collect do |name| - __send__("#{name}_element", false, indent) - end - ].reject do |value| - /\A\s*\z/.match(value) - end - rv.join("\n") + install_have_child_element(name, "", occurs) end private - alias children09 children - def children - children09 + [@guid].compact - end - - alias _tags09 _tags - def _tags - %w(comments author pubDate guid).delete_if do |name| - __send__(name).nil? - end.collect do |elem| - [nil, elem] - end + _tags09 - end - alias _setup_maker_element setup_maker_element def setup_maker_element(item) _setup_maker_element(item) @@ -124,17 +63,21 @@ EOT include RSS09 [ - ["isPermaLink", nil, false, :boolean] + ["isPermaLink", "", false, :boolean] ].each do |name, uri, required, type| install_get_attribute(name, uri, required, type) end content_setup - def initialize(isPermaLink=nil, content=nil) - super() - self.isPermaLink = isPermaLink - self.content = content + def initialize(*args) + if Utils.element_initialize_arguments?(args) + super + else + super() + self.isPermaLink = args[0] + self.content = args[1] + end end alias_method :_PermaLink?, :PermaLink? @@ -145,12 +88,6 @@ EOT end private - def _attrs - [ - ["isPermaLink", false] - ] - end - def maker_target(item) item.guid end @@ -168,7 +105,7 @@ EOT end RSS09::ELEMENTS.each do |name| - BaseListener.install_get_text_element(nil, name, "#{name}=") + BaseListener.install_get_text_element("", name, name) end end -- cgit v1.2.3