class AnalDiffist::StdOutReporter
Public Instance Methods
describe(problems, mode)
click to toggle source
# File lib/analdiffist/std_out_reporter.rb, line 28 def describe(problems, mode) results = [] by_type = problems.group_by do |prob| prob.context.split(/(\#|\.)/).first end by_type.keys.sort.each do |type_name| results << " #{type_name}" type_problems = by_type[type_name] by_context = type_problems.group_by do |prob| name = prob.context[type_name.length..-1] end by_context.keys.sort.each do |k| results << " #{k == '' ? '(none)' : k}" results += by_context[k].map {|p| " #{p.description(mode)}"} end end results end
describe_problems(problems, title, mode)
click to toggle source
# File lib/analdiffist/std_out_reporter.rb, line 22 def describe_problems problems, title, mode sum = sum_scores(problems) puts "\n#{title} (#{problems.length} : #{sum})\n" puts describe(problems, mode).join("\n") end
report(diff, from_rev, to_rev)
click to toggle source
# File lib/analdiffist/std_out_reporter.rb, line 3 def report diff, from_rev, to_rev puts "\n\nAnaldifference between revisions: \n #{from_rev}\n #{to_rev}" sum = sum_scores(diff.added_problems + diff.removed_problems) direction = ["Same", "Worse", "Better"][sum<=>0] puts "Overall: #{'+' if sum > 0}#{sum} (#{direction})" describe_problems(diff.added_problems, 'Worse', :added) describe_problems(diff.removed_problems, 'Better', :removed) puts "\n\n" end
sum_scores(diffs)
click to toggle source
# File lib/analdiffist/std_out_reporter.rb, line 16 def sum_scores diffs sum = 0.0 diffs.each {|p| sum += p.score} sum.round(1) end