Sha256: ae53c8dd84d1f6ce1f08117d5b5c587a00982e50e97e1f38bc7e67b6de652352

Contents?: true

Size: 989 Bytes

Versions: 1

Compression:

Stored size: 989 Bytes

Contents

# frozen_string_literal: true

module Kitchen::Directions::BakeFreeResponse
  class V1
    renderable

    def bake(chapter:, metadata_source:, append_to:)
      @metadata_elements = metadata_source.children_to_keep.copy

      @free_response_clipboard = Kitchen::Clipboard.new
      chapter.pages.each do |page|
        free_response_questions = page.free_response
        next if free_response_questions.none?

        free_response_questions.search('h3').trash
        title = Kitchen::Directions::EocSectionTitleLinkSnippet.v1(page: page)
        free_response_questions.each do |free_response_question|
          free_response_question.prepend(child: title)
          free_response_question.cut(to: @free_response_clipboard)
        end
      end

      return if @free_response_clipboard.none?

      append_to_element = append_to || chapter
      @title_tag = append_to ? 'h3' : 'h2'

      append_to_element.append(child: render(file: 'free_response.xhtml.erb'))
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
openstax_kitchen-11.2.0 lib/kitchen/directions/bake_free_response/v1.rb