aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rss/0.9.rb
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-10-16 04:39:58 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-10-16 04:39:58 +0000
commit0ebac90b0ebb07ad2aa99080c8509559a7ddc74d (patch)
tree4e0e2233ffd5cc0a5e1052471c41d5f3d3172d6e /lib/rss/0.9.rb
parent64422ae4941480634fbc2788d73ec3ba44c70b4b (diff)
downloadruby-0ebac90b0ebb07ad2aa99080c8509559a7ddc74d.tar.gz
* lib/rss: supported prety print.
* test/rss/test_1.0.rb: added test for calculating default indent size. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7047 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rss/0.9.rb')
-rw-r--r--lib/rss/0.9.rb139
1 files changed, 73 insertions, 66 deletions
diff --git a/lib/rss/0.9.rb b/lib/rss/0.9.rb
index c95c47e974..8486c4fc1f 100644
--- a/lib/rss/0.9.rb
+++ b/lib/rss/0.9.rb
@@ -51,16 +51,18 @@ module RSS
end
end
- def to_s(convert=true)
+ def to_s(convert=true, indent=calc_indent)
+ next_indent = indent + INDENT
rv = <<-EOR
#{xmldecl}
-#{xml_stylesheet_pi}<rss version="#{@rss_version}"#{ns_declaration}>
-#{channel_element(false)}
-#{other_element(false, "\t")}
-</rss>
+#{xml_stylesheet_pi}
+#{indent}<rss version="#{@rss_version}"#{ns_declaration(next_indent)}>
+#{channel_element(false, next_indent)}
+#{other_element(false, next_indent)}
+#{inent}}</rss>
EOR
- rv = @converter.convert(rv) if convert and @converter
- rv
+ rv = @converter.convert(rv) if convert and @converter
+ remove_empty_newline(rv)
end
private
@@ -135,30 +137,31 @@ EOR
super()
end
- def to_s(convert=true)
+ def to_s(convert=true, indent=calc_indent)
+ next_indent = indent + INDENT
rv = <<-EOT
- <channel>
- #{title_element(false)}
- #{link_element(false)}
- #{description_element(false)}
- #{language_element(false)}
- #{copyright_element(false)}
- #{managingEditor_element(false)}
- #{webMaster_element(false)}
- #{rating_element(false)}
- #{pubDate_element(false)}
- #{lastBuildDate_element(false)}
- #{docs_element(false)}
- #{skipDays_element(false)}
- #{skipHours_element(false)}
- #{image_element(false)}
-#{item_elements(false)}
- #{textInput_element(false)}
-#{other_element(false, "\t\t")}
- </channel>
+#{indent}<channel>
+#{title_element(false, next_indent)}
+#{link_element(false, next_indent)}
+#{description_element(false, next_indent)}
+#{language_element(false, next_indent)}
+#{copyright_element(false, next_indent)}
+#{managingEditor_element(false, next_indent)}
+#{webMaster_element(false, next_indent)}
+#{rating_element(false, next_indent)}
+#{pubDate_element(false, next_indent)}
+#{lastBuildDate_element(false, next_indent)}
+#{docs_element(false, next_indent)}
+#{skipDays_element(false, next_indent)}
+#{skipHours_element(false, next_indent)}
+#{image_element(false, next_indent)}
+#{item_elements(false, next_indent)}
+#{textInput_element(false, next_indent)}
+#{other_element(false, next_indent)}
+#{indent}</channel>
EOT
rv = @converter.convert(rv) if convert and @converter
- rv
+ rv
end
private
@@ -208,17 +211,18 @@ EOT
install_model(x, "?")
end
- def to_s(convert=true)
+ def to_s(convert=true, indent=calc_indent)
+ next_indent = indent + INDENT
rv = <<-EOT
- <image>
- #{url_element(false)}
- #{title_element(false)}
- #{link_element(false)}
- #{width_element(false)}
- #{height_element(false)}
- #{description_element(false)}
-#{other_element(false, "\t\t\t\t")}
- </image>
+#{indent}<image>
+#{url_element(false, next_indent)}
+#{title_element(false, next_indent)}
+#{link_element(false, next_indent)}
+#{width_element(false, next_indent)}
+#{height_element(false, next_indent)}
+#{description_element(false, next_indent)}
+#{other_element(false, next_indent)}
+#{indent}</image>
EOT
rv = @converter.convert(rv) if convert and @converter
rv
@@ -257,14 +261,15 @@ EOT
@protocol = protocol
end
- def to_s(convert=true)
+ def to_s(convert=true, indent=calc_indent)
+ next_indent = indent + INDENT
rv = <<-EOT
- <cloud
- domain="#{h @domain}"
- port="#{h @port}"
- path="#{h @path}"
- registerProcedure="#{h @registerProcedure}"
- protocol="#{h @protocol}"/>
+#{indent}<cloud
+#{next_indent}domain="#{h @domain}"
+#{next_indent}port="#{h @port}"
+#{next_indent}path="#{h @path}"
+#{next_indent}registerProcedure="#{h @registerProcedure}"
+#{next_indent}protocol="#{h @protocol}"/>
EOT
rv = @converter.convert(rv) if convert and @converter
rv
@@ -302,17 +307,18 @@ EOT
install_model(tag, occurs)
end
- def to_s(convert=true)
+ def to_s(convert=true, indent=calc_indent)
+ next_indent = indent + INDENT
rv = <<-EOT
- <item>
- #{title_element(false)}
- #{link_element(false)}
- #{description_element(false)}
- #{category_element(false)}
- #{source_element(false)}
- #{enclosure_element(false)}
-#{other_element(false, "\t\t\t\t")}
- </item>
+#{indent}<item>
+#{title_element(false, next_indent)}
+#{link_element(false, next_indent)}
+#{description_element(false, next_indent)}
+#{category_element(false, next_indent)}
+#{source_element(false, next_indent)}
+#{enclosure_element(false, next_indent)}
+#{other_element(false, next_indent)}
+#{indent}</item>
EOT
rv = @converter.convert(rv) if convert and @converter
rv
@@ -350,7 +356,7 @@ EOT
@content = content
end
- def to_s(convert=true)
+ def to_s(convert=true, indent=calc_indent)
if @url
rv = %Q! <source url="#{@url}">!
rv << %Q!#{@content}</source>!
@@ -393,7 +399,7 @@ EOT
@type = type
end
- def to_s(convert=true)
+ 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}"/>!
@@ -433,7 +439,7 @@ EOT
@content = content
end
- def to_s(convert=true)
+ def to_s(convert=true, indent=calc_indent)
if @domain
rv = %Q!<category domain="#{h @domain}">!
rv << %Q!#{h @content}</category>!
@@ -464,15 +470,16 @@ EOT
install_model(x, nil)
end
- def to_s(convert=true)
+ def to_s(convert=true, indent=calc_indent)
+ next_indent = indent + INDENT
rv = <<-EOT
- <textInput>
- #{title_element(false)}
- #{description_element(false)}
- #{name_element(false)}
- #{link_element(false)}
-#{other_element(false, "\t\t\t\t")}
- </textInput>
+#{indent}<textInput>
+#{title_element(false, next_indent)}
+#{description_element(false, next_indent)}
+#{name_element(false, next_indent)}
+#{link_element(false, next_indent)}
+#{other_element(false, next_indent)}
+#{indent}</textInput>
EOT
rv = @converter.convert(rv) if convert and @converter
rv