Class: Docbook::Output::IndexGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/docbook/output/index_generator.rb

Overview

Generates index content from collected indexterms

Instance Method Summary collapse

Constructor Details

#initialize(index_terms, xref_resolver = nil) ⇒ IndexGenerator

Returns a new instance of IndexGenerator.



274
275
276
277
# File 'lib/docbook/output/index_generator.rb', line 274

def initialize(index_terms, xref_resolver = nil)
  @index_terms = index_terms
  @xref_resolver = xref_resolver
end

Instance Method Details

#generateObject

Generate index data structure grouped by letter



280
281
282
283
284
285
286
287
288
289
290
291
292
# File 'lib/docbook/output/index_generator.rb', line 280

def generate
  by_letter = group_by_letter
  by_letter.sort_by do |letter, _|
    letter == "SYMBOLS" ? "{" : letter.downcase
  end
    .to_h
    .map do |letter, terms|
    {
      letter: letter,
      entries: sort_entries(terms),
    }
  end
end