Class: Perron::Resource::TableOfContent::Builder
- Inherits:
-
Object
- Object
- Perron::Resource::TableOfContent::Builder
- Defined in:
- lib/perron/resource/table_of_content.rb
Instance Method Summary collapse
Instance Method Details
#build(headings) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/perron/resource/table_of_content.rb', line 24 def build(headings) parents = {0 => {children: []}} headings.each_with_object(parents[0][:children]) do |heading, _| parents.delete_if { |level, _| level >= heading.level } parent = parents[parents.keys.select { it < heading.level }.max || 0] (parent.is_a?(Hash) ? parent[:children] : parent.children) << heading parents[heading.level] = heading end end |