Class: Ace::Hitl::Molecules::HitlAnswerEditor

Inherits:
Object
  • Object
show all
Defined in:
lib/ace/hitl/molecules/hitl_answer_editor.rb

Constant Summary collapse

ANSWER_HEADER =
/^## Answer\s*$/

Class Method Summary collapse

Class Method Details

.apply(body, answer) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/ace/hitl/molecules/hitl_answer_editor.rb', line 9

def self.apply(body, answer)
  answer_text = answer.to_s.strip
  replacement = "## Answer\n\n#{answer_text}\n"
  source = body.to_s.rstrip

  if source.match?(ANSWER_HEADER)
    source.sub(/^## Answer[ \t]*(?:\n.*)?\z/m, replacement)
  elsif source.empty?
    replacement
  else
    "#{source}\n\n#{replacement}"
  end
end