mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* 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
This commit is contained in:
		
							parent
							
								
									64422ae494
								
							
						
					
					
						commit
						0ebac90b0e
					
				
					 8 changed files with 210 additions and 154 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,8 @@
 | 
			
		|||
Sat Oct 16 13:34:56 2004  Kouhei Sutou  <kou@cozmixng.org>
 | 
			
		||||
 | 
			
		||||
	* lib/rss: supported prety print.
 | 
			
		||||
	* test/rss/test_1.0.rb: added test for calculating default indent size.
 | 
			
		||||
 | 
			
		||||
Sat Oct 16 10:56:36 2004  Nobuyoshi Nakada  <nobu@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* lib/mkmf.rb (create_makefile): install-rb is needed for statically
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										139
									
								
								lib/rss/0.9.rb
									
										
									
									
									
								
							
							
						
						
									
										139
									
								
								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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										126
									
								
								lib/rss/1.0.rb
									
										
									
									
									
								
							
							
						
						
									
										126
									
								
								lib/rss/1.0.rb
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -28,7 +28,7 @@ module RSS
 | 
			
		|||
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		TAG_NAME.replace('RDF')
 | 
			
		||||
		@tag_name = 'RDF'
 | 
			
		||||
 | 
			
		||||
		PREFIX = 'rdf'
 | 
			
		||||
		URI = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 | 
			
		||||
| 
						 | 
				
			
			@ -57,19 +57,21 @@ module RSS
 | 
			
		|||
			super('1.0', version, encoding, standalone)
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		def to_s(convert=true)
 | 
			
		||||
		def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
			next_indent = indent + INDENT
 | 
			
		||||
			rv = <<-EORDF
 | 
			
		||||
#{xmldecl}
 | 
			
		||||
#{xml_stylesheet_pi}<#{PREFIX}:RDF#{ns_declaration}>
 | 
			
		||||
#{channel_element(false)}
 | 
			
		||||
#{image_element(false)}
 | 
			
		||||
#{item_elements(false)}
 | 
			
		||||
#{textinput_element(false)}
 | 
			
		||||
#{other_element(false, "\t")}
 | 
			
		||||
</#{PREFIX}:RDF>
 | 
			
		||||
#{xml_stylesheet_pi}
 | 
			
		||||
#{indent}<#{PREFIX}:RDF#{ns_declaration(next_indent)}>
 | 
			
		||||
#{channel_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}</#{PREFIX}:RDF>
 | 
			
		||||
EORDF
 | 
			
		||||
      rv = @converter.convert(rv) if convert and @converter
 | 
			
		||||
      rv
 | 
			
		||||
      remove_empty_newline(rv)
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		private
 | 
			
		||||
| 
						 | 
				
			
			@ -105,7 +107,7 @@ EORDF
 | 
			
		|||
				
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			TAG_NAME.replace('Seq')
 | 
			
		||||
			@tag_name = 'Seq'
 | 
			
		||||
			
 | 
			
		||||
			install_have_children_element("li")
 | 
			
		||||
			
 | 
			
		||||
| 
						 | 
				
			
			@ -116,12 +118,13 @@ EORDF
 | 
			
		|||
				@li = li
 | 
			
		||||
			end
 | 
			
		||||
			
 | 
			
		||||
			def to_s(convert=true)
 | 
			
		||||
			def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
				next_indent = indent + INDENT
 | 
			
		||||
				<<-EOT
 | 
			
		||||
			<#{PREFIX}:Seq>
 | 
			
		||||
#{li_elements(convert, "\t\t\t\t")}
 | 
			
		||||
#{other_element(convert, "\t\t\t\t")}
 | 
			
		||||
			</#{PREFIX}:Seq>
 | 
			
		||||
#{indent}<#{PREFIX}:Seq>
 | 
			
		||||
#{li_elements(convert, next_indent)}
 | 
			
		||||
#{other_element(convert, next_indent)}
 | 
			
		||||
#{indent}</#{PREFIX}:Seq>
 | 
			
		||||
EOT
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -167,9 +170,9 @@ EOT
 | 
			
		|||
				@resource = resource
 | 
			
		||||
			end
 | 
			
		||||
			
 | 
			
		||||
			def to_s(convert=true)
 | 
			
		||||
			def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
				if @resource
 | 
			
		||||
					rv = %Q!<#{PREFIX}:li resource="#{h @resource}" />\n!
 | 
			
		||||
					rv = %Q!#{indent}<#{PREFIX}:li resource="#{h @resource}" />\n!
 | 
			
		||||
					rv = @converter.convert(rv) if convert and @converter
 | 
			
		||||
					rv
 | 
			
		||||
				else
 | 
			
		||||
| 
						 | 
				
			
			@ -228,19 +231,20 @@ EOT
 | 
			
		|||
				@about = about
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			def to_s(convert=true)
 | 
			
		||||
			def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
				next_indent = indent + INDENT
 | 
			
		||||
				about = ''
 | 
			
		||||
				about << %Q!#{PREFIX}:about="#{h @about}"! if @about
 | 
			
		||||
				rv = <<-EOT
 | 
			
		||||
	<channel #{about}>
 | 
			
		||||
		#{title_element(false)}
 | 
			
		||||
		#{link_element(false)}
 | 
			
		||||
		#{description_element(false)}
 | 
			
		||||
		#{image_element(false)}
 | 
			
		||||
#{items_element(false)}
 | 
			
		||||
		#{textinput_element(false)}
 | 
			
		||||
#{other_element(false, "\t\t")}
 | 
			
		||||
	</channel>
 | 
			
		||||
#{indent}<channel #{about}>
 | 
			
		||||
#{title_element(false, next_indent)}
 | 
			
		||||
#{link_element(false, next_indent)}
 | 
			
		||||
#{description_element(false, next_indent)}
 | 
			
		||||
#{image_element(false, next_indent)}
 | 
			
		||||
#{items_element(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
 | 
			
		||||
| 
						 | 
				
			
			@ -293,9 +297,9 @@ EOT
 | 
			
		|||
					@resource = resource
 | 
			
		||||
				end
 | 
			
		||||
 | 
			
		||||
				def to_s(convert=true)
 | 
			
		||||
				def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
					if @resource
 | 
			
		||||
						rv = %Q!<image #{PREFIX}:resource="#{h @resource}" />!
 | 
			
		||||
						rv = %Q!#{indent}<image #{PREFIX}:resource="#{h @resource}" />!
 | 
			
		||||
						rv = @converter.convert(rv) if convert and @converter
 | 
			
		||||
						rv
 | 
			
		||||
					else
 | 
			
		||||
| 
						 | 
				
			
			@ -335,9 +339,9 @@ EOT
 | 
			
		|||
					@resource = resource
 | 
			
		||||
				end
 | 
			
		||||
 | 
			
		||||
				def to_s(convert=true)
 | 
			
		||||
				def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
					if @resource
 | 
			
		||||
						rv = %Q|<textinput #{PREFIX}:resource="#{h @resource}" />|
 | 
			
		||||
						rv = %Q|#{indent}<textinput #{PREFIX}:resource="#{h @resource}" />|
 | 
			
		||||
						rv = @converter.convert(rv) if convert and @converter
 | 
			
		||||
						rv
 | 
			
		||||
					else
 | 
			
		||||
| 
						 | 
				
			
			@ -382,12 +386,13 @@ EOT
 | 
			
		|||
					@Seq = seq
 | 
			
		||||
				end
 | 
			
		||||
				
 | 
			
		||||
				def to_s(convert=true)
 | 
			
		||||
				def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
					next_indent = indent + INDENT
 | 
			
		||||
					<<-EOT
 | 
			
		||||
		<items>
 | 
			
		||||
#{Seq_element(convert)}
 | 
			
		||||
#{other_element(convert, "\t\t\t")}
 | 
			
		||||
		</items>
 | 
			
		||||
#{indent}<items>
 | 
			
		||||
#{Seq_element(convert, next_indent)}
 | 
			
		||||
#{other_element(convert, next_indent)}
 | 
			
		||||
#{indent}</items>
 | 
			
		||||
EOT
 | 
			
		||||
				end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -446,16 +451,17 @@ EOT
 | 
			
		|||
				@about = about
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			def to_s(convert=true)
 | 
			
		||||
			def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
				next_indent = indent + INDENT
 | 
			
		||||
				about = ''
 | 
			
		||||
				about << %Q!#{PREFIX}:about="#{h @about}"! if @about
 | 
			
		||||
				rv = <<-EOT
 | 
			
		||||
	<image #{about}>
 | 
			
		||||
		#{title_element(false)}
 | 
			
		||||
		#{url_element(false)}
 | 
			
		||||
		#{link_element(false)}
 | 
			
		||||
#{other_element(false, "\t\t")}
 | 
			
		||||
	</image>
 | 
			
		||||
#{indent}<image #{about}>
 | 
			
		||||
#{title_element(false, next_indent)}
 | 
			
		||||
#{url_element(false, next_indent)}
 | 
			
		||||
#{link_element(false, next_indent)}
 | 
			
		||||
#{other_element(false, next_indent)}
 | 
			
		||||
#{indent}</image>
 | 
			
		||||
EOT
 | 
			
		||||
	      rv = @converter.convert(rv) if convert and @converter
 | 
			
		||||
	      rv
 | 
			
		||||
| 
						 | 
				
			
			@ -515,16 +521,17 @@ EOT
 | 
			
		|||
				@about = about
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			def to_s(convert=true)
 | 
			
		||||
			def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
				next_indent = indent + INDENT
 | 
			
		||||
				about = ''
 | 
			
		||||
				about << %Q!#{PREFIX}:about="#{h @about}"! if @about
 | 
			
		||||
				rv = <<-EOT
 | 
			
		||||
	<item #{about}>
 | 
			
		||||
		#{title_element(false)}
 | 
			
		||||
		#{link_element(false)}
 | 
			
		||||
		#{description_element(false)}
 | 
			
		||||
#{other_element(false, "\t\t")}
 | 
			
		||||
	</item>
 | 
			
		||||
#{indent}<item #{about}>
 | 
			
		||||
#{title_element(false, next_indent)}
 | 
			
		||||
#{link_element(false, next_indent)}
 | 
			
		||||
#{description_element(false, next_indent)}
 | 
			
		||||
#{other_element(false, next_indent)}
 | 
			
		||||
#{indent}</item>
 | 
			
		||||
EOT
 | 
			
		||||
	      rv = @converter.convert(rv) if convert and @converter
 | 
			
		||||
	      rv
 | 
			
		||||
| 
						 | 
				
			
			@ -585,17 +592,18 @@ EOT
 | 
			
		|||
				@about = about
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			def to_s(convert=true)
 | 
			
		||||
			def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
				next_indent = indent + INDENT
 | 
			
		||||
				about = ''
 | 
			
		||||
				about << %Q!#{PREFIX}:about="#{h @about}"! if @about
 | 
			
		||||
				rv = <<-EOT
 | 
			
		||||
	<textinput #{about}>
 | 
			
		||||
		#{title_element(false)}
 | 
			
		||||
		#{description_element(false)}
 | 
			
		||||
		#{name_element(false)}
 | 
			
		||||
		#{link_element(false)}
 | 
			
		||||
#{other_element(false, "\t\t")}
 | 
			
		||||
	</textinput>
 | 
			
		||||
#{indent}<textinput #{about}>
 | 
			
		||||
#{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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,11 +23,11 @@ module RSS
 | 
			
		|||
				install_model(x, occurs)
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			def other_element(convert, indent='')
 | 
			
		||||
			def other_element(convert, indent)
 | 
			
		||||
				rv = <<-EOT
 | 
			
		||||
#{indent}#{category_element(convert)}
 | 
			
		||||
#{indent}#{generator_element(convert)}
 | 
			
		||||
#{indent}#{ttl_element(convert)}
 | 
			
		||||
#{category_element(convert, indent)}
 | 
			
		||||
#{generator_element(convert, indent)}
 | 
			
		||||
#{ttl_element(convert, indent)}
 | 
			
		||||
EOT
 | 
			
		||||
				rv << super
 | 
			
		||||
			end
 | 
			
		||||
| 
						 | 
				
			
			@ -73,12 +73,12 @@ EOT
 | 
			
		|||
					install_model(x, occurs)
 | 
			
		||||
				end
 | 
			
		||||
			
 | 
			
		||||
				def other_element(convert, indent='')
 | 
			
		||||
				def other_element(convert, indent)
 | 
			
		||||
					rv = <<-EOT
 | 
			
		||||
#{indent}#{author_element(false)}
 | 
			
		||||
#{indent}#{comments_element(false)}
 | 
			
		||||
#{indent}#{pubDate_element(false)}
 | 
			
		||||
#{indent}#{guid_element(false)}
 | 
			
		||||
#{author_element(false, indent)}
 | 
			
		||||
#{comments_element(false, indent)}
 | 
			
		||||
#{pubDate_element(false, indent)}
 | 
			
		||||
#{guid_element(false, indent)}
 | 
			
		||||
EOT
 | 
			
		||||
					rv << super
 | 
			
		||||
				end
 | 
			
		||||
| 
						 | 
				
			
			@ -116,7 +116,7 @@ EOT
 | 
			
		|||
						@content = content
 | 
			
		||||
					end
 | 
			
		||||
 | 
			
		||||
					def to_s(convert=true)
 | 
			
		||||
					def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
						if @content
 | 
			
		||||
							rv = %Q!<guid!
 | 
			
		||||
							rv << %Q! isPermaLink="#{h @isPermaLink}"! if @isPermaLink
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -286,8 +286,8 @@ module RSS
 | 
			
		|||
					@proc_stack.push(nil)
 | 
			
		||||
				else
 | 
			
		||||
					parent = "ROOT ELEMENT???"
 | 
			
		||||
					if current_class.const_defined?("TAG_NAME")
 | 
			
		||||
						parent = current_class.const_get("TAG_NAME")
 | 
			
		||||
					if current_class.tag_name
 | 
			
		||||
						parent = current_class.tag_name
 | 
			
		||||
					end
 | 
			
		||||
					raise NotExceptedTagError.new(local, parent)
 | 
			
		||||
				end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -154,7 +154,7 @@ module RSS
 | 
			
		|||
			install_element(name) do |n, elem_name|
 | 
			
		||||
				<<-EOC
 | 
			
		||||
				if @#{n}
 | 
			
		||||
					"\#{indent}\#{@#{n}.to_s(convert)}"
 | 
			
		||||
					"\#{@#{n}.to_s(convert, indent)}"
 | 
			
		||||
				else
 | 
			
		||||
					''
 | 
			
		||||
				end
 | 
			
		||||
| 
						 | 
				
			
			@ -171,7 +171,7 @@ EOC
 | 
			
		|||
				<<-EOC
 | 
			
		||||
				rv = ''
 | 
			
		||||
				@#{n}.each do |x|
 | 
			
		||||
					rv << "\#{indent}\#{x.to_s(convert)}"
 | 
			
		||||
					rv << "\#{x.to_s(convert, indent)}"
 | 
			
		||||
				end
 | 
			
		||||
				rv
 | 
			
		||||
EOC
 | 
			
		||||
| 
						 | 
				
			
			@ -320,14 +320,16 @@ EOC
 | 
			
		|||
		extend BaseModel
 | 
			
		||||
		include Utils
 | 
			
		||||
 | 
			
		||||
		INDENT = "  "
 | 
			
		||||
    
 | 
			
		||||
		class << self
 | 
			
		||||
 | 
			
		||||
			def inherited(klass)
 | 
			
		||||
				klass.module_eval(<<-EOC)
 | 
			
		||||
				public
 | 
			
		||||
				
 | 
			
		||||
				TAG_NAME = name.split('::').last.downcase
 | 
			
		||||
 | 
			
		||||
				@tag_name = name.split(/::/).last.downcase
 | 
			
		||||
				@indent_size = name.split(/::/).size - 2
 | 
			
		||||
 | 
			
		||||
				@@must_call_validators = {}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -415,6 +417,14 @@ EOC
 | 
			
		|||
				self::NSPOOL[prefix] = uri
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			def tag_name
 | 
			
		||||
				@tag_name
 | 
			
		||||
			end
 | 
			
		||||
      
 | 
			
		||||
			def indent_size
 | 
			
		||||
				@indent_size
 | 
			
		||||
			end
 | 
			
		||||
      
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		attr_accessor :do_validate
 | 
			
		||||
| 
						 | 
				
			
			@ -426,7 +436,7 @@ EOC
 | 
			
		|||
		end
 | 
			
		||||
 | 
			
		||||
		def tag_name
 | 
			
		||||
			self.class::TAG_NAME
 | 
			
		||||
			self.class.tag_name
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		def converter=(converter)
 | 
			
		||||
| 
						 | 
				
			
			@ -498,7 +508,7 @@ EOC
 | 
			
		|||
		def validate_attribute
 | 
			
		||||
			_attrs.each do |a_name, required|
 | 
			
		||||
				if required and send(a_name).nil?
 | 
			
		||||
					raise MissingAttributeError.new(self.class::TAG_NAME, a_name)
 | 
			
		||||
					raise MissingAttributeError.new(self.class.tag_name, a_name)
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
| 
						 | 
				
			
			@ -615,6 +625,15 @@ EOC
 | 
			
		|||
			rv
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		private
 | 
			
		||||
		def calc_indent
 | 
			
		||||
			INDENT * (self.class.indent_size)
 | 
			
		||||
		end
 | 
			
		||||
    
 | 
			
		||||
		def remove_empty_newline(string)
 | 
			
		||||
			string.gsub(/^\s*$(?:\r?\n?)/, '')
 | 
			
		||||
		end
 | 
			
		||||
    
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	module RootElementMixin
 | 
			
		||||
| 
						 | 
				
			
			@ -646,11 +665,11 @@ EOC
 | 
			
		|||
			rv
 | 
			
		||||
		end
 | 
			
		||||
		
 | 
			
		||||
		def ns_declaration
 | 
			
		||||
		def ns_declaration(indent)
 | 
			
		||||
			rv = ''
 | 
			
		||||
			self.class::NSPOOL.each do |prefix, uri|
 | 
			
		||||
				prefix = ":#{prefix}" unless prefix.empty?
 | 
			
		||||
				rv << %Q|\n\txmlns#{prefix}="#{html_escape(uri)}"|
 | 
			
		||||
				rv << %Q|\n#{indent}xmlns#{prefix}="#{html_escape(uri)}"|
 | 
			
		||||
			end
 | 
			
		||||
			rv
 | 
			
		||||
		end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,9 +76,10 @@ module RSS
 | 
			
		|||
				@resource = resource
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			def to_s(convert=true)
 | 
			
		||||
			def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
				if @resource
 | 
			
		||||
					rv = %Q!<#{TRACKBACK_PREFIX}:ping #{::RSS::RDF::PREFIX}:resource="#{h @resource}"/>!
 | 
			
		||||
					rv = %Q[#{indent}<#{TRACKBACK_PREFIX}:ping ]
 | 
			
		||||
					rv << %Q[#{::RSS::RDF::PREFIX}:resource="#{h @resource}"/>]
 | 
			
		||||
					rv = @converter.convert(rv) if convert and @converter
 | 
			
		||||
					rv
 | 
			
		||||
				else
 | 
			
		||||
| 
						 | 
				
			
			@ -121,9 +122,10 @@ module RSS
 | 
			
		|||
				@resource = resource
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			def to_s(convert=true)
 | 
			
		||||
			def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
				if @resource
 | 
			
		||||
					rv = %Q!<#{TRACKBACK_PREFIX}:about #{::RSS::RDF::PREFIX}:resource="#{h @resource}"/>!
 | 
			
		||||
					rv = %Q[#{indent}<#{TRACKBACK_PREFIX}:about ]
 | 
			
		||||
					rv << %Q[#{::RSS::RDF::PREFIX}:resource="#{h @resource}"/>]
 | 
			
		||||
					rv = @converter.convert(rv) if convert and @converter
 | 
			
		||||
					rv
 | 
			
		||||
				else
 | 
			
		||||
| 
						 | 
				
			
			@ -245,9 +247,11 @@ module RSS
 | 
			
		|||
 | 
			
		||||
			end
 | 
			
		||||
			
 | 
			
		||||
			def to_s(convert=true)
 | 
			
		||||
			def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
				if @content
 | 
			
		||||
					rv = %Q!<#{TRACKBACK_PREFIX}:ping>#{h @content}</#{TRACKBACK_PREFIX}:ping>!
 | 
			
		||||
					rv = %Q[#{indent}<#{TRACKBACK_PREFIX}:ping>]
 | 
			
		||||
					rv << h(@content)
 | 
			
		||||
					rv << %Q[</#{TRACKBACK_PREFIX}:ping>]
 | 
			
		||||
					rv = @converter.convert(rv) if convert and @converter
 | 
			
		||||
					rv
 | 
			
		||||
				else
 | 
			
		||||
| 
						 | 
				
			
			@ -274,9 +278,11 @@ module RSS
 | 
			
		|||
 | 
			
		||||
			end
 | 
			
		||||
			
 | 
			
		||||
			def to_s(convert=true)
 | 
			
		||||
			def to_s(convert=true, indent=calc_indent)
 | 
			
		||||
				if @content
 | 
			
		||||
					rv = %Q!<#{TRACKBACK_PREFIX}:about>#{h @content}</#{TRACKBACK_PREFIX}:about>!
 | 
			
		||||
					rv = %Q[#{indent}<#{TRACKBACK_PREFIX}:about>]
 | 
			
		||||
					rv << h(@content)
 | 
			
		||||
					rv << %Q[</#{TRACKBACK_PREFIX}:about>]
 | 
			
		||||
					rv = @converter.convert(rv) if convert and @converter
 | 
			
		||||
					rv
 | 
			
		||||
				else
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -255,5 +255,16 @@ module RSS
 | 
			
		|||
			
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		def test_indent_size
 | 
			
		||||
			assert_equal(0, RDF.indent_size)
 | 
			
		||||
			assert_equal(1, RDF::Channel.indent_size)
 | 
			
		||||
			assert_equal(2, RDF::Channel::Image.indent_size)
 | 
			
		||||
			assert_equal(2, RDF::Channel::Textinput.indent_size)
 | 
			
		||||
			assert_equal(2, RDF::Channel::Items.indent_size)
 | 
			
		||||
			assert_equal(1, RDF::Image.indent_size)
 | 
			
		||||
			assert_equal(1, RDF::Item.indent_size)
 | 
			
		||||
			assert_equal(1, RDF::Textinput.indent_size)
 | 
			
		||||
		end
 | 
			
		||||
    
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue