# frozen_string_literal: true module Kitchen::Directions::MoveSolutionsToAnswerKey module Strategies class Precalculus def bake(chapter:, append_to:) try_note_solutions(chapter: chapter, append_to: append_to) # Bake section exercises chapter.non_introduction_pages.each do |page| number = "#{chapter.count_in(:book)}.#{page.count_in(:chapter)}" bake_section(chapter: page, append_to: append_to, klass: 'section-exercises', number: number) end # Bake other types of exercises classes = %w[review-exercises practice-test] classes.each do |klass| bake_section(chapter: chapter, append_to: append_to, klass: klass) end end protected def bake_section(chapter:, append_to:, klass:, number: nil) section_solutions_set = Kitchen::Clipboard.new chapter.search(".#{klass}").each do |section| section.search('[data-type="solution"]').each do |solution| solution.cut(to: section_solutions_set) end end return if section_solutions_set.items.empty? title = <<~HTML