Sha256: 6a08d00db0c90140b3f074835ddd5efad9b4552904cbebd85ae185cd0b686503
Contents?: true
Size: 1.75 KB
Versions: 7
Compression:
Stored size: 1.75 KB
Contents
# frozen_string_literal: true module Kitchen::Directions::BakeNumberedExercise class V1 def bake(exercise:, number:, suppress_solution_if: false, note_suppressed_solutions: false, cases: false) problem = exercise.problem solution = exercise.solution # Store label information label_number = "#{exercise.ancestor(:chapter).count_in(:book)}.#{number}" exercise.target_label(label_text: 'exercise', custom_content: label_number, cases: cases) problem_number = "<span class='os-number'>#{number}</span>" suppress_solution = case suppress_solution_if when Symbol number.send(suppress_solution_if) else suppress_solution_if end if solution.present? if suppress_solution solution.trash exercise.add_class('os-hasSolution-trashed') if note_suppressed_solutions else problem_number = "<a class='os-number' href='##{exercise.id}-solution'>#{number}</a>" bake_solution(exercise: exercise, number: number) end end problem.replace_children(with: <<~HTML #{problem_number} <span class='os-divider'>. </span> <div class="os-problem-container">#{problem.children}</div> HTML ) end def bake_solution(exercise:, number:, divider: '. ') solution = exercise.solution solution.id = "#{exercise.id}-solution" exercise.add_class('os-hasSolution') solution.replace_children(with: <<~HTML <a class='os-number' href='##{exercise.id}'>#{number}</a> <span class='os-divider'>#{divider}</span> <div class="os-solution-container">#{solution.children}</div> HTML ) end end end
Version data entries
7 entries across 7 versions & 1 rubygems