class RDoc::Markup::Document

A Document containing lists, headings, paragraphs, etc.

Attributes

file[R]

The file this document was created from. See also RDoc::ClassModule#add_comment

omit_headings_below[RW]

If a heading is below the given level it will be omitted from the #table_of_contents

parts[R]

The parts of the Document

Public Class Methods

new(*parts) click to toggle source

Creates a new Document with parts

# File lib/rdoc/markup/document.rb, line 28
def initialize *parts
 @parts = []
 @parts.concat parts
 @file = nil
 @omit_headings_from_table_of_contents_below = nil
end

Public Instance Methods

<<(part) click to toggle source

Appends part to the document

# File lib/rdoc/markup/document.rb, line 39
def << part
 case part
 when RDoc::Markup::Document then
 unless part.empty? then
 parts.concat 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
accept(visitor) click to toggle source

Runs this document and all its items through visitor

# File lib/rdoc/markup/document.rb, line 64
def accept visitor
 visitor.start_accepting
 visitor.accept_document self
 visitor.end_accepting
end
concat(parts) click to toggle source

Concatenates the given parts onto the document

# File lib/rdoc/markup/document.rb, line 75
def concat parts
 self.parts.concat parts
end
each(&block) click to toggle source

Enumerator for the parts of this document

# File lib/rdoc/markup/document.rb, line 82
def each &block
 @parts.each(&block)
end
empty?() click to toggle source

Does this document have no parts?

# File lib/rdoc/markup/document.rb, line 89
def empty?
 @parts.empty? or (@parts.length == 1 and merged? and @parts.first.empty?)
end
file=(location) click to toggle source

The file this Document was created from.

# File lib/rdoc/markup/document.rb, line 96
def file= location
 @file = case location
 when RDoc::TopLevel then
 location.relative_name
 else
 location
 end
end
merge(other) click to toggle source

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 113
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
merged?() click to toggle source

Does this Document contain other Documents?

# File lib/rdoc/markup/document.rb, line 133
def merged?
 RDoc::Markup::Document === @parts.first
end
push(*parts) click to toggle source

Appends parts to the document

# File lib/rdoc/markup/document.rb, line 150
def push *parts
 self.parts.concat parts
end
table_of_contents() click to toggle source

Returns an Array of headings in the document.

Require 'rdoc/markup/formatter' before calling this method.

# File lib/rdoc/markup/document.rb, line 159
def table_of_contents
 accept RDoc::Markup::ToTableOfContents.to_toc
end