class Mumukit::Explainer
Public Instance Methods
explain(content, test_results)
click to toggle source
# File lib/mumukit/explainer.rb, line 4 def explain(content, test_results) content_type.enumerate(explanations(content, test_results)) end
Private Instance Methods
eval_explain(selector, key, content, test_results)
click to toggle source
# File lib/mumukit/explainer.rb, line 21 def eval_explain(selector, key, content, test_results) send(selector, content, test_results).try do |it| {key: key, binding: it.is_a?(Hash) ? it : {}} end end
eval_explain_methods(content, test_results)
click to toggle source
# File lib/mumukit/explainer.rb, line 15 def eval_explain_methods(content, test_results) explain_methods .map { |selector, key| eval_explain(selector, key, content, test_results) } .compact end
explain_methods()
click to toggle source
# File lib/mumukit/explainer.rb, line 27 def explain_methods self.class .instance_methods(false) .flat_map { |it| it.to_s.captures(/explain_(.*)/).map { [it, $1] } } .compact end
explanations(content, test_results)
click to toggle source
# File lib/mumukit/explainer.rb, line 10 def explanations(content, test_results) eval_explain_methods(content, test_results) .map { |explain| I18n.t(explain[:key], **explain[:binding]) } end