A Document containing lists, headings, paragraphs, etc.
The file this document was created from. See also RDoc::ClassModule#add_comment
The parts of the Document
Creates a new Document with parts
# File lib/rdoc/markup/document.rb, line 20
def initialize *parts
@parts = []
@parts.concat 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.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
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
Concatenates the given parts
onto the document
# File lib/rdoc/markup/document.rb, line 73
def concat parts
self.parts.concat parts
end
Does this document have no parts?
# File lib/rdoc/markup/document.rb, line 80
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 87
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 104
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 124
def merged?
RDoc::Markup::Document === @parts.first
end
Appends parts
to the document
# File lib/rdoc/markup/document.rb, line 141
def push *parts
self.parts.concat 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 150
def table_of_contents
accept RDoc::Markup::ToTableOfContents.to_toc
end
/ | Search |
---|---|
? | Show this help |