class RDoc::Markup::Document
A Document containing lists, headings, paragraphs, etc.
Attributes
The file this document was created from. See also RDoc::ClassModule#add_comment
If a heading is below the given level it will be omitted from the table_of_contents
Public Class Methods
Source
# File lib/rdoc/markup/document.rb, line 31 def initialize(*parts) @parts = [] @parts.concat parts @file = nil @omit_headings_from_table_of_contents_below = nil end
Creates a new Document with parts
Public Instance Methods
Source
# File lib/rdoc/markup/document.rb, line 42 def <<(part) case part when Markup::Document unless part.empty? parts.concat part.parts parts << Markup::BlankLine.new end when String raise ArgumentError, "expected RDoc::Markup::Document and friends, got String" unless part.empty? else parts << part end end
Appends part to the document
Source
# File lib/rdoc/markup/document.rb, line 67 def accept(visitor) visitor.start_accepting visitor.accept_document self visitor.end_accepting end
Runs this document and all its #items through visitor
Source
# File lib/rdoc/markup/document.rb, line 78 def concat(parts) self.parts.concat parts end
Concatenates the given parts onto the document
Source
# File lib/rdoc/markup/document.rb, line 85 def each(&block) @parts.each(&block) end
Enumerator for the parts of this document
Source
# File lib/rdoc/markup/document.rb, line 92 def empty? @parts.empty? or (@parts.length == 1 and merged? and @parts.first.empty?) end
Does this document have no parts?
Source
# File lib/rdoc/markup/document.rb, line 99 def file=(location) @file = case location when TopLevel location.relative_name else location end end
The file this Document was created from.
Source
# File lib/rdoc/markup/document.rb, line 116 def merge(other) if empty? @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
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
Source
# File lib/rdoc/markup/document.rb, line 136 def merged? Markup::Document === @parts.first end
Does this Document contain other Documents?
Source
# File lib/rdoc/markup/document.rb, line 153 def push(*parts) self.parts.concat parts end
Appends parts to the document
Source
# File lib/rdoc/markup/document.rb, line 162 def table_of_contents accept Markup::ToTableOfContents.to_toc end
Returns an Array of headings in the document.
Require ‘rdoc/markup/formatter’ before calling this method.