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 merged? and @parts.first.empty?) end
The file this Document was created from.
# File lib/rdoc/markup/document.rb, line 80 def file= location @file = case location when RDoc::TopLevel then location.absolute_name else location end 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 97 def merge other if empty? then @parts = other.parts return self end 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
Does this Document contain other Documents?
# File lib/rdoc/markup/document.rb, line 117 def merged? RDoc::Markup::Document === @parts.first end
Appends parts to the document
# File lib/rdoc/markup/document.rb, line 134 def push *parts self.parts.push(*parts) end
Returns an Array of headings in the document.
Require ‘rdoc/markup/formatter’ before calling this method.
# File lib/rdoc/markup/document.rb, line 143 def table_of_contents accept RDoc::Markup::ToTableOfContents.to_toc end
Generated with the Darkfish Rdoc Generator 2.