class Kitchen::Directions::BakeNumberedNotes::V3

Public Instance Methods

bake(book:, classes:, suppress_solution: true) click to toggle source

for the try it notes, must be called AFTER bake_exercises

# File lib/kitchen/directions/bake_notes/bake_numbered_notes/v3.rb, line 7
      def bake(book:, classes:, suppress_solution: true)
        classes.each do |klass|
          book.chapters.pages.notes("$.#{klass}").each do |note|
            note.wrap_children(class: 'os-note-body')
            previous_example = note.previous
            until previous_example.nil? || previous_example[:'data-type'] == 'example'
              previous_example = previous_example.previous
            end
            os_number = previous_example&.first('.os-number')&.children&.to_s

            note.prepend(child:
              <<~HTML
                <h3 class="os-title">
                  <span class="os-title-label">#{note.autogenerated_title}</span>
                  <span class="os-number">#{os_number}</span>
                </h3>
              HTML
            )

            note.title&.trash
            note.exercises.each do |exercise|
              BakeNumberedNotes.bake_note_exercise(
                note: note, exercise: exercise, divider: '. ', suppress_solution: suppress_solution
              )
            end
            note.injected_questions.each do |question|
              BakeNumberedNotes.bake_note_injected_question(note: note, question: question)
            end
          end
        end
      end