A Document containing lists, headings, paragraphs, etc.
Creates a new Document with parts
# File lib/rdoc/markup/document.rb, line 20 def initialize *parts @parts = [] @parts.push(*parts) @file = nil end
Appends part to the document
# File lib/rdoc/markup/document.rb, line 30 def << part case part when RDoc::Markup::Document then unless part.empty? then parts.push(*part.parts) parts << RDoc::Markup::BlankLine.new end when String then raise ArgumentError, "expected RDoc::Markup::Document and friends, got String" unless part.empty? else parts << part end end
Runs this document and all its #items through visitor
# File lib/rdoc/markup/document.rb, line 55 def accept visitor visitor.start_accepting @parts.each do |item| case item when RDoc::Markup::Document then # HACK visitor.accept_document item else item.accept visitor end end visitor.end_accepting end
Does this document have no parts?
# File lib/rdoc/markup/document.rb, line 73 def empty? @parts.empty? or (@parts.length == 1 and RDoc::Markup::Document === @parts.first and @parts.first.empty?) end
When this is a collection of documents (file is not set and this document contains only other documents as its direct children) merge replaces documents in this class with documents from other when the file matches and adds documents from other when the files do not.
The information in other is preferred over the receiver
# File lib/rdoc/markup/document.rb, line 87 def merge other other.parts.each do |other_part| self.parts.delete_if do |self_part| self_part.file and self_part.file == other_part.file end self.parts << other_part end self end
Generated with the Darkfish Rdoc Generator 2.