### Home Classes Methods

### In Files

- lib/rdoc/markup/document.rb

### Parent

Object

### Methods

- ::new
- #<<
- #accept
- #concat
- #each
- #empty?
- #file=
- #merge
- #merged?
- #push
- #table_of_contents

### Included Modules

- Enumerable

### Files

- CONTRIBUTING.rdoc
- CVE-2013-0256.rdoc
- ExampleRDoc.rdoc
- LICENSE.rdoc
- Manifest.txt
- README.rdoc
- RI.rdoc
- Rakefile
- TODO.rdoc

### Class/Module Index

Quicksearch

- RDoc
- RDoc::Alias
- RDoc::AnonClass
- RDoc::AnyMethod
- RDoc::Attr
- RDoc::ClassModule
- RDoc::CodeObject
- RDoc::Comment
- RDoc::Constant
- RDoc::Context
- RDoc::Context::Section
- RDoc::CrossReference
- RDoc::ERBIO
- RDoc::ERBPartial
- RDoc::Encoding
- RDoc::Error
- RDoc::Extend
- RDoc::Gauntlet
- RDoc::Generator
- RDoc::Generator::Darkfish
- RDoc::Generator::JsonIndex
- RDoc::Generator::Markup
- RDoc::Generator::RI
- RDoc::GhostMethod
- RDoc::Include
- RDoc::Markdown
- RDoc::Markdown::Literals
- RDoc::Markup
- RDoc::Markup::AttrChanger
- RDoc::Markup::AttrSpan
- RDoc::Markup::AttributeManager
- RDoc::Markup::Attributes
- RDoc::Markup::BlankLine
- RDoc::Markup::BlockQuote
- RDoc::Markup::Document
- RDoc::Markup::Formatter
- RDoc::Markup::FormatterTestCase
- RDoc::Markup::HardBreak
- RDoc::Markup::Include
- RDoc::Markup::IndentedParagraph
- RDoc::Markup::List
- RDoc::Markup::ListItem
- RDoc::Markup::Paragraph
- RDoc::Markup::Parser
- RDoc::Markup::Parser::Error
- RDoc::Markup::Parser::ParseError
- RDoc::Markup::PreProcess
- RDoc::Markup::Raw
- RDoc::Markup::Rule
- RDoc::Markup::Special
- RDoc::Markup::TextFormatterTestCase
- RDoc::Markup::ToAnsi
- RDoc::Markup::ToBs
- RDoc::Markup::ToHtml
- RDoc::Markup::ToHtmlCrossref
- RDoc::Markup::ToHtmlSnippet
- RDoc::Markup::ToJoinedParagraph
- RDoc::Markup::ToLabel
- RDoc::Markup::ToMarkdown
- RDoc::Markup::ToRdoc
- RDoc::Markup::ToTableOfContents
- RDoc::Markup::ToTest
- RDoc::Markup::ToTtOnly
- RDoc::Markup::Verbatim
- RDoc::MetaMethod
- RDoc::MethodAttr
- RDoc::Mixin
- RDoc::NormalClass
- RDoc::NormalModule
- RDoc::Options
- RDoc::Parser
- RDoc::Parser::C
- RDoc::Parser::ChangeLog
- RDoc::Parser::Markdown
- RDoc::Parser::RD
- RDoc::Parser::Ruby
- RDoc::Parser::RubyTools
- RDoc::Parser::Simple
- RDoc::Parser::Text
- RDoc::RD
- RDoc::RD::BlockParser
- RDoc::RD::Inline
- RDoc::RD::InlineParser
- RDoc::RDoc
- RDoc::RI
- RDoc::RI::Driver
- RDoc::RI::Driver::Error
- RDoc::RI::Driver::NotFoundError
- RDoc::RI::Error
- RDoc::RI::Paths
- RDoc::Require
- RDoc::RubyLex
- RDoc::RubyLex::Error
- RDoc::RubyToken
- RDoc::RubygemsHook
- RDoc::Servlet
- RDoc::SingleClass
- RDoc::Stats
- RDoc::Stats::Normal
- RDoc::Stats::Quiet
- RDoc::Stats::Verbose
- RDoc::Store
- RDoc::Store::Error
- RDoc::Store::MissingFileError
- RDoc::Task
- RDoc::Task
- RDoc::TestCase
- RDoc::TokenStream
- RDoc::TomDoc
- RDoc::TopLevel
- Object

No matching classes.

# 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

[Validate]

Generated with the Darkfish Rdoc Generator 2.