Module: RDoc::Generator::Markdown::Selection

Defined in:
lib/rdoc/generator/markdown/selection.rb

Overview

Selects RDoc objects that produce Markdown output.

Class Method Summary collapse

Class Method Details

.classes(store) ⇒ Array<RDoc::Context>

Returns sorted classes and modules with renderable content.

Parameters:

  • store (RDoc::Store)

    Documentation store.

Returns:

  • (Array<RDoc::Context>)

    Selected classes and modules.



10
11
12
# File 'lib/rdoc/generator/markdown/selection.rb', line 10

def self.classes(store)
  store.unique_classes_and_modules.select(&:display?).select { |klass| renderable_class?(klass) }.sort
end

.pages(store) ⇒ Array<RDoc::TopLevel>

Returns sorted documentation pages supported by the generator.

Parameters:

  • store (RDoc::Store)

    Documentation store.

Returns:

  • (Array<RDoc::TopLevel>)

    Selected pages.



34
35
36
37
38
# File 'lib/rdoc/generator/markdown/selection.rb', line 34

def self.pages(store)
  store.all_files.select(&:text?).select(&:display?)
    .select { |page| page.relative_name.match?(/\.(?:md|markdown|rdoc)\z/i) }
    .sort_by(&:base_name)
end

.renderable_class?(klass) ⇒ Boolean

Checks whether a class or module has content worth rendering.

Parameters:

  • klass (RDoc::Context)

    Candidate class or module.

Returns:

  • (Boolean)

    Whether the object should produce a page.



19
20
21
22
23
24
25
26
27
# File 'lib/rdoc/generator/markdown/selection.rb', line 19

def self.renderable_class?(klass)
  klass.in_files.any? ||
    klass.documented? ||
    klass.includes.any? ||
    klass.method_list.any?(&:display?) ||
    klass.constants.any?(&:display?) ||
    klass.attributes.any?(&:display?) ||
    klass.sections.any? { |section| section.title.to_s.match?(/\S/) || !section.to_document.empty? }
end