Sha256: 38b03e222098b30b108fe360c9e1d7bcd2b57568a9210df0cfe55f39a7d69574

Contents?: true

Size: 995 Bytes

Versions: 2

Compression:

Stored size: 995 Bytes

Contents

# frozen_string_literal: true

module Kitchen::Directions::BakeNumberedExercise
  class V1
    def bake(exercise:, number:)
      problem = exercise.problem
      solution = exercise.solution

      problem_number = "<span class='os-number'>#{number}</span>"

      if solution.present?
        solution.id = "#{exercise.id}-solution"
        exercise.add_class('os-hasSolution')
        problem_number = "<a class='os-number' href='##{exercise.id}-solution'>#{number}</a>"

        solution.replace_children(with:
          <<~HTML
            <a class='os-number' href='##{exercise.id}'>#{number}</a>
            <span class='os-divider'>. </span>
            <div class="os-solution-container">#{solution.children}</div>
          HTML
        )
      end

      problem.replace_children(with:
        <<~HTML
          #{problem_number}
          <span class='os-divider'>. </span>
          <div class="os-problem-container">#{problem.children}</div>
        HTML
      )
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
openstax_kitchen-3.2.0 lib/kitchen/directions/bake_numbered_exercise/v1.rb
openstax_kitchen-3.1.0 lib/kitchen/directions/bake_numbered_exercise/v1.rb