Class: Mumukit::Explainer

Inherits:
Object
  • Object
show all
Defined in:
lib/mumukit/explainer.rb

Instance Method Summary collapse

Instance Method Details

#eval_explain(selector, key, content, test_results) ⇒ Object



11
12
13
14
15
# File 'lib/mumukit/explainer.rb', line 11

def eval_explain(selector, key, content, test_results)
  send(selector, content, test_results).try do |it|
    {key: key, binding: it}
  end
end

#explain(content, test_results) ⇒ Object



2
3
4
5
6
7
8
9
# File 'lib/mumukit/explainer.rb', line 2

def explain(content, test_results)
  explain_methods
      .map { |selector, key| eval_explain(selector, key, content, test_results) }
      .compact
      .map { |explain| I18n.t(explain[:key], explain[:binding]) }
      .map { |it| "* #{it}" }
      .join("\n")
end

#explain_methodsObject



17
18
19
20
21
22
# File 'lib/mumukit/explainer.rb', line 17

def explain_methods
  self.class
      .instance_methods(false)
      .flat_map { |it| it.to_s.captures(/explain_(.*)/).map { [it, $1] } }
      .compact
end