mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 b19a968f9a
			
		
	
	
		b19a968f9a
		
	
	
	
	
		
			
			Patch by Dave Worth https://github.com/ruby/ruby/pull/341 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			71 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| ##
 | |
| # Joins the parts of an RDoc::Markup::Paragraph into a single String.
 | |
| #
 | |
| # This allows for easier maintenance and testing of Markdown support.
 | |
| #
 | |
| # This formatter only works on Paragraph instances.  Attempting to process
 | |
| # other markup syntax items will not work.
 | |
| 
 | |
| class RDoc::Markup::ToJoinedParagraph < RDoc::Markup::Formatter
 | |
| 
 | |
|   def initialize # :nodoc:
 | |
|     super nil
 | |
|   end
 | |
| 
 | |
|   def start_accepting # :nodoc:
 | |
|   end
 | |
| 
 | |
|   def end_accepting # :nodoc:
 | |
|   end
 | |
| 
 | |
|   ##
 | |
|   # Converts the parts of +paragraph+ to a single entry.
 | |
| 
 | |
|   def accept_paragraph paragraph
 | |
|     parts = []
 | |
|     string = false
 | |
| 
 | |
|     paragraph.parts.each do |part|
 | |
|       if String === part then
 | |
|         if string then
 | |
|           string << part
 | |
|         else
 | |
|           parts << part
 | |
|           string = part
 | |
|         end
 | |
|       else
 | |
|         parts << part
 | |
|         string = false
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     parts = parts.map do |part|
 | |
|       if String === part then
 | |
|         part.rstrip
 | |
|       else
 | |
|         part
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     # TODO use Enumerable#chunk when Ruby 1.8 support is dropped
 | |
|     #parts = paragraph.parts.chunk do |part|
 | |
|     #  String === part
 | |
|     #end.map do |string, chunk|
 | |
|     #  string ? chunk.join.rstrip : chunk
 | |
|     #end.flatten
 | |
| 
 | |
|     paragraph.parts.replace parts
 | |
|   end
 | |
| 
 | |
|   alias accept_block_quote     ignore
 | |
|   alias accept_heading         ignore
 | |
|   alias accept_list_end        ignore
 | |
|   alias accept_list_item_end   ignore
 | |
|   alias accept_list_item_start ignore
 | |
|   alias accept_list_start      ignore
 | |
|   alias accept_raw             ignore
 | |
|   alias accept_rule            ignore
 | |
|   alias accept_verbatim        ignore
 | |
| 
 | |
| end
 | |
| 
 |