Class: MarkdownComposer::DocumentIndex::MarkdownParser::MutableSection

Inherits:
Struct
  • Object
show all
Defined in:
lib/markdown_composer/document_index/markdown_parser.rb

Instance Method Summary collapse

Instance Method Details

#to_immutable(document_end) ⇒ Object



317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
# File 'lib/markdown_composer/document_index/markdown_parser.rb', line 317

def to_immutable(document_end)
  all = body_nodes + child_sections.flat_map { |child| [ child.heading_node, *child.to_immutable(document_end).all_nodes ] }
  end_line = ([ heading_node&.end_line, *all.map(&:end_line) ].compact.max || start_line)
  ComposerSection.new(
    id: id,
    source_key: source_key,
    heading_node: heading_node,
    level: level,
    title_text: title_text,
    body_nodes: body_nodes,
    child_sections: child_sections,
    all_nodes: all,
    source_position: source_position,
    parent_section_id: parent_section_id,
    start_line: start_line,
    end_line: [ end_line, document_end ].min
  )
end