class RDoc::Markup::ToTableOfContents

frozen_string_literal: true

Extracts just the RDoc::Markup::Heading elements from a RDoc::Markup::Document to help build a table of contents

Attributes

omit_headings_below[RW]

Omits headings with a level less than the given level.

res[R]

Output accumulator

Public Class Methods

to_toc() click to toggle source

Singleton for table-of-contents generation

# File lib/rdoc/markup/to_table_of_contents.rb, line 13
def self.to_toc
  @to_toc ||= new
end

Public Instance Methods

accept_document(document) click to toggle source

Adds document to the output, using its heading cutoff if present

Calls superclass method RDoc::Markup::Formatter#accept_document
# File lib/rdoc/markup/to_table_of_contents.rb, line 36
def accept_document document
  @omit_headings_below = document.omit_headings_below

  super
end
accept_heading(heading) click to toggle source

Adds heading to the table of contents

# File lib/rdoc/markup/to_table_of_contents.rb, line 45
def accept_heading heading
  @res << heading unless suppressed? heading
end
end_accepting() click to toggle source

Returns the table of contents

# File lib/rdoc/markup/to_table_of_contents.rb, line 52
def end_accepting
  @res
end
start_accepting() click to toggle source

Prepares the visitor for text generation

# File lib/rdoc/markup/to_table_of_contents.rb, line 59
def start_accepting
  @omit_headings_below = nil
  @res = []
end
suppressed?(heading) click to toggle source

Returns true if heading is below the display threshold

# File lib/rdoc/markup/to_table_of_contents.rb, line 67
def suppressed? heading
  return false unless @omit_headings_below

  heading.level > @omit_headings_below
end