summaryrefslogtreecommitdiff
path: root/lib/rss/0.9.rb
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-10-16 04:51:15 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-10-16 04:51:15 +0000
commit891ad83098840851fb16f7ec4a664fc664792df0 (patch)
treee1d33d49cca9875ec515d3ee4ed0dc2686432941 /lib/rss/0.9.rb
parent0ebac90b0ebb07ad2aa99080c8509559a7ddc74d (diff)
* lib/rss/: untabified.
* test/rss/: untabified. * lib/rss/0.9.rb (RSS::Rss#to_s): inent -> indent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7048 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rss/0.9.rb')
-rw-r--r--lib/rss/0.9.rb906
1 files changed, 453 insertions, 453 deletions
diff --git a/lib/rss/0.9.rb b/lib/rss/0.9.rb
index 8486c4fc1f..77b65cddec 100644
--- a/lib/rss/0.9.rb
+++ b/lib/rss/0.9.rb
@@ -2,144 +2,144 @@ require "rss/parser"
module RSS
- module RSS09
- NSPOOL = {}
- ELEMENTS = []
-
- def self.append_features(klass)
- super
-
- klass.install_must_call_validator('', nil)
- end
- end
-
- class Rss < Element
-
- include RSS09
- include RootElementMixin
- include XMLStyleSheetMixin
-
- [
- ["channel", nil],
- ].each do |tag, occurs|
- install_model(tag, occurs)
- end
-
- %w(channel).each do |x|
- install_have_child_element(x)
- end
-
- attr_accessor :rss_version, :version, :encoding, :standalone
-
- def initialize(rss_version, version=nil, encoding=nil, standalone=nil)
- super
- end
-
- def items
- if @channel
- @channel.items
- else
- []
- end
- end
-
- def image
- if @channel
- @channel.image
- else
- nil
- end
- end
-
- def to_s(convert=true, indent=calc_indent)
- next_indent = indent + INDENT
- rv = <<-EOR
+ module RSS09
+ NSPOOL = {}
+ ELEMENTS = []
+
+ def self.append_features(klass)
+ super
+
+ klass.install_must_call_validator('', nil)
+ end
+ end
+
+ class Rss < Element
+
+ include RSS09
+ include RootElementMixin
+ include XMLStyleSheetMixin
+
+ [
+ ["channel", nil],
+ ].each do |tag, occurs|
+ install_model(tag, occurs)
+ end
+
+ %w(channel).each do |x|
+ install_have_child_element(x)
+ end
+
+ attr_accessor :rss_version, :version, :encoding, :standalone
+
+ def initialize(rss_version, version=nil, encoding=nil, standalone=nil)
+ super
+ end
+
+ def items
+ if @channel
+ @channel.items
+ else
+ []
+ end
+ end
+
+ def image
+ if @channel
+ @channel.image
+ else
+ nil
+ end
+ end
+
+ def to_s(convert=true, indent=calc_indent)
+ next_indent = indent + INDENT
+ rv = <<-EOR
#{xmldecl}
#{xml_stylesheet_pi}
#{indent}<rss version="#{@rss_version}"#{ns_declaration(next_indent)}>
#{channel_element(false, next_indent)}
#{other_element(false, next_indent)}
-#{inent}}</rss>
+#{indent}}</rss>
EOR
- rv = @converter.convert(rv) if convert and @converter
- remove_empty_newline(rv)
- end
-
- private
- def children
- [@channel]
- end
-
- def _tags
- [
- [nil, 'channel'],
- ].delete_if {|x| send(x[1]).nil?}
- end
-
- def _attrs
- [
- ["version", true],
- ]
- end
-
- class Channel < Element
-
- include RSS09
-
- [
- ["title", nil],
- ["link", nil],
- ["description", nil],
- ["language", nil],
- ["copyright", "?"],
- ["managingEditor", "?"],
- ["webMaster", "?"],
- ["rating", "?"],
- ["docs", "?"],
- ["skipDays", "?"],
- ["skipHours", "?"],
- ].each do |x, occurs|
- install_text_element(x)
- install_model(x, occurs)
- end
-
- [
- ["pubDate", "?"],
- ["lastBuildDate", "?"],
- ].each do |x, occurs|
- install_date_element(x, 'rfc822')
- install_model(x, occurs)
- end
-
- [
- ["image", nil],
- ["textInput", "?"],
- ].each do |x, occurs|
- install_have_child_element(x)
- install_model(x, occurs)
- end
-
- [
- ["cloud", "?"]
- ].each do |x, occurs|
- install_have_attribute_element(x)
- install_model(x, occurs)
- end
-
- [
- ["item", "*"]
- ].each do |x, occurs|
- install_have_children_element(x)
- install_model(x, occurs)
- end
-
- def initialize()
- super()
- end
-
- def to_s(convert=true, indent=calc_indent)
- next_indent = indent + INDENT
- rv = <<-EOT
+ rv = @converter.convert(rv) if convert and @converter
+ remove_empty_newline(rv)
+ end
+
+ private
+ def children
+ [@channel]
+ end
+
+ def _tags
+ [
+ [nil, 'channel'],
+ ].delete_if {|x| send(x[1]).nil?}
+ end
+
+ def _attrs
+ [
+ ["version", true],
+ ]
+ end
+
+ class Channel < Element
+
+ include RSS09
+
+ [
+ ["title", nil],
+ ["link", nil],
+ ["description", nil],
+ ["language", nil],
+ ["copyright", "?"],
+ ["managingEditor", "?"],
+ ["webMaster", "?"],
+ ["rating", "?"],
+ ["docs", "?"],
+ ["skipDays", "?"],
+ ["skipHours", "?"],
+ ].each do |x, occurs|
+ install_text_element(x)
+ install_model(x, occurs)
+ end
+
+ [
+ ["pubDate", "?"],
+ ["lastBuildDate", "?"],
+ ].each do |x, occurs|
+ install_date_element(x, 'rfc822')
+ install_model(x, occurs)
+ end
+
+ [
+ ["image", nil],
+ ["textInput", "?"],
+ ].each do |x, occurs|
+ install_have_child_element(x)
+ install_model(x, occurs)
+ end
+
+ [
+ ["cloud", "?"]
+ ].each do |x, occurs|
+ install_have_attribute_element(x)
+ install_model(x, occurs)
+ end
+
+ [
+ ["item", "*"]
+ ].each do |x, occurs|
+ install_have_children_element(x)
+ install_model(x, occurs)
+ end
+
+ def initialize()
+ super()
+ end
+
+ def to_s(convert=true, indent=calc_indent)
+ next_indent = indent + INDENT
+ rv = <<-EOT
#{indent}<channel>
#{title_element(false, next_indent)}
#{link_element(false, next_indent)}
@@ -160,60 +160,60 @@ EOR
#{other_element(false, next_indent)}
#{indent}</channel>
EOT
- rv = @converter.convert(rv) if convert and @converter
- rv
- end
-
- private
- def children
- [@image, @textInput, @cloud, *@item]
- end
-
- def _tags
- rv = [
- "title",
- "link",
- "description",
- "language",
- "copyright",
- "managingEditor",
- "webMaster",
- "rating",
- "docs",
- "skipDays",
- "skipHours",
- "image",
- "textInput",
- "cloud",
- ].delete_if do |x|
- send(x).nil?
- end.collect do |elem|
- [nil, elem]
- end
-
- @item.each do
- rv << [nil, "item"]
- end
-
- rv
- end
-
- class Image < Element
-
- include RSS09
-
- %w(url title link).each do |x|
- install_text_element(x)
- install_model(x, nil)
- end
- %w(width height description).each do |x|
- install_text_element(x)
- install_model(x, "?")
- end
-
- def to_s(convert=true, indent=calc_indent)
- next_indent = indent + INDENT
- rv = <<-EOT
+ rv = @converter.convert(rv) if convert and @converter
+ rv
+ end
+
+ private
+ def children
+ [@image, @textInput, @cloud, *@item]
+ end
+
+ def _tags
+ rv = [
+ "title",
+ "link",
+ "description",
+ "language",
+ "copyright",
+ "managingEditor",
+ "webMaster",
+ "rating",
+ "docs",
+ "skipDays",
+ "skipHours",
+ "image",
+ "textInput",
+ "cloud",
+ ].delete_if do |x|
+ send(x).nil?
+ end.collect do |elem|
+ [nil, elem]
+ end
+
+ @item.each do
+ rv << [nil, "item"]
+ end
+
+ rv
+ end
+
+ class Image < Element
+
+ include RSS09
+
+ %w(url title link).each do |x|
+ install_text_element(x)
+ install_model(x, nil)
+ end
+ %w(width height description).each do |x|
+ install_text_element(x)
+ install_model(x, "?")
+ end
+
+ def to_s(convert=true, indent=calc_indent)
+ next_indent = indent + INDENT
+ rv = <<-EOT
#{indent}<image>
#{url_element(false, next_indent)}
#{title_element(false, next_indent)}
@@ -224,46 +224,46 @@ EOT
#{other_element(false, next_indent)}
#{indent}</image>
EOT
- rv = @converter.convert(rv) if convert and @converter
- rv
- end
-
- private
- def _tags
- %w(url title link width height description).delete_if do |x|
- send(x).nil?
- end.collect do |elem|
- [nil, elem]
- end
- end
- end
-
- class Cloud < Element
-
- include RSS09
-
- [
- ["domain", nil, true],
- ["port", nil, true],
- ["path", nil, true],
- ["registerProcedure", nil, true],
- ["protocol", nil ,true],
- ].each do |name, uri, required|
- install_get_attribute(name, uri, required)
- end
-
- def initialize(domain, port, path, rp, protocol)
- super()
- @domain = domain
- @port = port
- @path = path
- @registerProcedure = rp
- @protocol = protocol
- end
-
- def to_s(convert=true, indent=calc_indent)
- next_indent = indent + INDENT
- rv = <<-EOT
+ rv = @converter.convert(rv) if convert and @converter
+ rv
+ end
+
+ private
+ def _tags
+ %w(url title link width height description).delete_if do |x|
+ send(x).nil?
+ end.collect do |elem|
+ [nil, elem]
+ end
+ end
+ end
+
+ class Cloud < Element
+
+ include RSS09
+
+ [
+ ["domain", nil, true],
+ ["port", nil, true],
+ ["path", nil, true],
+ ["registerProcedure", nil, true],
+ ["protocol", nil ,true],
+ ].each do |name, uri, required|
+ install_get_attribute(name, uri, required)
+ end
+
+ def initialize(domain, port, path, rp, protocol)
+ super()
+ @domain = domain
+ @port = port
+ @path = path
+ @registerProcedure = rp
+ @protocol = protocol
+ end
+
+ def to_s(convert=true, indent=calc_indent)
+ next_indent = indent + INDENT
+ rv = <<-EOT
#{indent}<cloud
#{next_indent}domain="#{h @domain}"
#{next_indent}port="#{h @port}"
@@ -271,45 +271,45 @@ EOT
#{next_indent}registerProcedure="#{h @registerProcedure}"
#{next_indent}protocol="#{h @protocol}"/>
EOT
- rv = @converter.convert(rv) if convert and @converter
- rv
- end
-
- private
- def _attrs
- %w(domain port path registerProcedure protocol).collect do |attr|
- [attr, true]
- end
- end
-
- end
-
- class Item < Element
-
- include RSS09
-
- %w(title link description).each do |x|
- install_text_element(x)
- end
-
- %w(category source enclosure).each do |x|
- install_have_child_element(x)
- end
-
- [
- ["title", '?'],
- ["link", '?'],
- ["description", '?'],
- ["category", '?'],
- ["source", '?'],
- ["enclosure", '?'],
- ].each do |tag, occurs|
- install_model(tag, occurs)
- end
-
- def to_s(convert=true, indent=calc_indent)
+ rv = @converter.convert(rv) if convert and @converter
+ rv
+ end
+
+ private
+ def _attrs
+ %w(domain port path registerProcedure protocol).collect do |attr|
+ [attr, true]
+ end
+ end
+
+ end
+
+ class Item < Element
+
+ include RSS09
+
+ %w(title link description).each do |x|
+ install_text_element(x)
+ end
+
+ %w(category source enclosure).each do |x|
+ install_have_child_element(x)
+ end
+
+ [
+ ["title", '?'],
+ ["link", '?'],
+ ["description", '?'],
+ ["category", '?'],
+ ["source", '?'],
+ ["enclosure", '?'],
+ ].each do |tag, occurs|
+ install_model(tag, occurs)
+ end
+
+ def to_s(convert=true, indent=calc_indent)
next_indent = indent + INDENT
- rv = <<-EOT
+ rv = <<-EOT
#{indent}<item>
#{title_element(false, next_indent)}
#{link_element(false, next_indent)}
@@ -320,159 +320,159 @@ EOT
#{other_element(false, next_indent)}
#{indent}</item>
EOT
- rv = @converter.convert(rv) if convert and @converter
- rv
- end
-
- private
- def children
- [@category, @source, @enclosure,].compact
- end
-
- def _tags
- %w(title link description author comments category
- source enclosure).delete_if do |x|
- send(x).nil?
- end.collect do |x|
- [nil, x]
- end
- end
-
- class Source < Element
-
- include RSS09
-
- [
- ["url", nil, true]
- ].each do |name, uri, required|
- install_get_attribute(name, uri, required)
- end
-
- content_setup
-
- def initialize(url=nil, content=nil)
- super()
- @url = url
- @content = content
- end
-
- def to_s(convert=true, indent=calc_indent)
- if @url
- rv = %Q! <source url="#{@url}">!
- rv << %Q!#{@content}</source>!
- rv = @converter.convert(rv) if convert and @converter
- rv
- else
- ''
- end
- end
-
- private
- def _tags
- []
- end
-
- def _attrs
- [
- ["url", true]
- ]
- end
-
- end
-
- class Enclosure < Element
-
- include RSS09
-
- [
- ["url", nil, true],
- ["length", nil, true],
- ["type", nil, true],
- ].each do |name, uri, required|
- install_get_attribute(name, uri, required)
- end
-
- def initialize(url=nil, length=nil, type=nil)
- super()
- @url = url
- @length = length
- @type = type
- end
-
- def to_s(convert=true, indent=calc_indent)
- if @url and @length and @type
- rv = %Q!<enclosure url="#{h @url}" !
- rv << %Q!length="#{h @length}" type="#{h @type}"/>!
- rv = @converter.convert(rv) if convert and @converter
- rv
- else
- ''
- end
- end
-
- private
- def _attrs
- [
- ["url", true],
- ["length", true],
- ["type", true],
- ]
- end
-
- end
-
- class Category < Element
-
- include RSS09
-
- [
- ["domain", nil, true]
- ].each do |name, uri, required|
- install_get_attribute(name, uri, required)
- end
-
- content_setup
-
- def initialize(domain=nil, content=nil)
- super()
- @domain = domain
- @content = content
- end
-
- def to_s(convert=true, indent=calc_indent)
- if @domain
- rv = %Q!<category domain="#{h @domain}">!
- rv << %Q!#{h @content}</category>!
- rv = @converter.convert(rv) if convert and @converter
- rv
- else
- ''
- end
- end
-
- private
- def _attrs
- [
- ["domain", true]
- ]
- end
-
- end
-
- end
-
- class TextInput < Element
-
- include RSS09
-
- %w(title description name link).each do |x|
- install_text_element(x)
- install_model(x, nil)
- end
-
- def to_s(convert=true, indent=calc_indent)
+ rv = @converter.convert(rv) if convert and @converter
+ rv
+ end
+
+ private
+ def children
+ [@category, @source, @enclosure,].compact
+ end
+
+ def _tags
+ %w(title link description author comments category
+ source enclosure).delete_if do |x|
+ send(x).nil?
+ end.collect do |x|
+ [nil, x]
+ end
+ end
+
+ class Source < Element
+
+ include RSS09
+
+ [
+ ["url", nil, true]
+ ].each do |name, uri, required|
+ install_get_attribute(name, uri, required)
+ end
+
+ content_setup
+
+ def initialize(url=nil, content=nil)
+ super()
+ @url = url
+ @content = content
+ end
+
+ def to_s(convert=true, indent=calc_indent)
+ if @url
+ rv = %Q! <source url="#{@url}">!
+ rv << %Q!#{@content}</source>!
+ rv = @converter.convert(rv) if convert and @converter
+ rv
+ else
+ ''
+ end
+ end
+
+ private
+ def _tags
+ []
+ end
+
+ def _attrs
+ [
+ ["url", true]
+ ]
+ end
+
+ end
+
+ class Enclosure < Element
+
+ include RSS09
+
+ [
+ ["url", nil, true],
+ ["length", nil, true],
+ ["type", nil, true],
+ ].each do |name, uri, required|
+ install_get_attribute(name, uri, required)
+ end
+
+ def initialize(url=nil, length=nil, type=nil)
+ super()
+ @url = url
+ @length = length
+ @type = type
+ end
+
+ def to_s(convert=true, indent=calc_indent)
+ if @url and @length and @type
+ rv = %Q!<enclosure url="#{h @url}" !
+ rv << %Q!length="#{h @length}" type="#{h @type}"/>!
+ rv = @converter.convert(rv) if convert and @converter
+ rv
+ else
+ ''
+ end
+ end
+
+ private
+ def _attrs
+ [
+ ["url", true],
+ ["length", true],
+ ["type", true],
+ ]
+ end
+
+ end
+
+ class Category < Element
+
+ include RSS09
+
+ [
+ ["domain", nil, true]
+ ].each do |name, uri, required|
+ install_get_attribute(name, uri, required)
+ end
+
+ content_setup
+
+ def initialize(domain=nil, content=nil)
+ super()
+ @domain = domain
+ @content = content
+ end
+
+ def to_s(convert=true, indent=calc_indent)
+ if @domain
+ rv = %Q!<category domain="#{h @domain}">!
+ rv << %Q!#{h @content}</category>!
+ rv = @converter.convert(rv) if convert and @converter
+ rv
+ else
+ ''
+ end
+ end
+
+ private
+ def _attrs
+ [
+ ["domain", true]
+ ]
+ end
+
+ end
+
+ end
+
+ class TextInput < Element
+
+ include RSS09
+
+ %w(title description name link).each do |x|
+ install_text_element(x)
+ install_model(x, nil)
+ end
+
+ def to_s(convert=true, indent=calc_indent)
next_indent = indent + INDENT
- rv = <<-EOT
+ rv = <<-EOT
#{indent}<textInput>
#{title_element(false, next_indent)}
#{description_element(false, next_indent)}
@@ -481,42 +481,42 @@ EOT
#{other_element(false, next_indent)}
#{indent}</textInput>
EOT
- rv = @converter.convert(rv) if convert and @converter
- rv
- end
-
- private
- def _tags
- %w(title description name link).each do |x|
- send(x).nil?
- end.collect do |elem|
- [nil, elem]
- end
- end
- end
-
- end
-
- end
-
- RSS09::ELEMENTS.each do |x|
- BaseListener.install_get_text_element(x, nil, "#{x}=")
- end
-
- module ListenerMixin
- private
- def start_rss(tag_name, prefix, attrs, ns)
- check_ns(tag_name, prefix, ns, nil)
-
- @rss = Rss.new(attrs['version'], @version, @encoding, @standalone)
- @rss.do_validate = @do_validate
- @rss.xml_stylesheets = @xml_stylesheets
- @last_element = @rss
- @proc_stack.push Proc.new { |text, tags|
- @rss.validate_for_stream(tags) if @do_validate
- }
- end
-
- end
+ rv = @converter.convert(rv) if convert and @converter
+ rv
+ end
+
+ private
+ def _tags
+ %w(title description name link).each do |x|
+ send(x).nil?
+ end.collect do |elem|
+ [nil, elem]
+ end
+ end
+ end
+
+ end
+
+ end
+
+ RSS09::ELEMENTS.each do |x|
+ BaseListener.install_get_text_element(x, nil, "#{x}=")
+ end
+
+ module ListenerMixin
+ private
+ def start_rss(tag_name, prefix, attrs, ns)
+ check_ns(tag_name, prefix, ns, nil)
+
+ @rss = Rss.new(attrs['version'], @version, @encoding, @standalone)
+ @rss.do_validate = @do_validate
+ @rss.xml_stylesheets = @xml_stylesheets
+ @last_element = @rss
+ @proc_stack.push Proc.new { |text, tags|
+ @rss.validate_for_stream(tags) if @do_validate
+ }
+ end
+
+ end
end