Module: Arrolio::TocBuilder

Defined in:
lib/arrolio/toc_builder.rb

Class Method Summary collapse

Class Method Details

.build_flowables(context, layout_spec, rules: {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/arrolio/toc_builder.rb', line 7

def build_flowables(context, layout_spec, rules: {})
  styles = rules.fetch('styles', {})
  entries = context.heading_entries
  entries.map do |entry|
    number = entry[:number]
    title = entry[:title].to_s
    label = number ? "#{number} #{title}" : title
    style_id = style_id_for(entry[:level], styles)
    style = layout_spec.resolve_style(style_id)
    Flowables::TocLineFlowable.new(
      label,
      entry[:page_number],
      level: entry[:level] || 1,
      style: style
    )
  end
end

.style_id_for(level, styles) ⇒ Object



25
26
27
28
29
# File 'lib/arrolio/toc_builder.rb', line 25

def style_id_for(level, styles)
  key = level.to_i >= 2 ? 'sub' : 'entry'
  default_style = key == 'sub' ? 'toc_entry_sub' : 'toc_entry'
  (styles[key] || default_style).to_sym
end