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
42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/perron/resource/table_of_content.rb', line 42 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 |