lib/slippery/processors/hr_to_sections.rb in slippery-0.0.1 vs lib/slippery/processors/hr_to_sections.rb in slippery-0.0.3

- old
+ new

@@ -9,22 +9,28 @@ class HrToSections def self.call(doc) self.new.call(doc) end - def initialize(wrapper = H[:section], selector = 'body') - @selector, @wrapper = selector, wrapper + def initialize(wrapper = H[:section], selector = 'body', options = {}) + @selector, @wrapper, @anchor = selector, wrapper, options.fetch(:anchor, true) end def call(doc) doc.replace(@selector) { |element| hr_to_section(element) } end def hr_to_section(element) sections = [@wrapper] + page = 1 element.children.each do |child| if child.tag == :hr - sections << @wrapper.merge_attrs(child) + last_section = @wrapper.merge_attrs(child) + if @anchor + last_section = last_section.merge_attrs(name: "#{page}") + page += 1 + end + sections << last_section else sections[-1] = sections.last << child end end element.set_children(sections)