summaryrefslogtreecommitdiff
path: root/lib/rss/2.0.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rss/2.0.rb')
-rw-r--r--lib/rss/2.0.rb97
1 files changed, 17 insertions, 80 deletions
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