class MetricFu::FlayGenerator
Public Class Methods
metric()
click to toggle source
# File lib/metric_fu/metrics/flay/generator.rb, line 3 def self.metric :flay end
Public Instance Methods
analyze()
click to toggle source
# File lib/metric_fu/metrics/flay/generator.rb, line 12 def analyze @matches = @output.chomp.split("\n\n").map { |m| m.split("\n ") } end
calculate_result(matches)
click to toggle source
TODO: move into analyze method
# File lib/metric_fu/metrics/flay/generator.rb, line 21 def calculate_result(matches) total_score = matches.shift.first.split("=").last.strip target = [] matches.each do |problem| reason = problem.shift.strip lines_info = problem.map do |full_line| name, line = full_line.split(":").map(&:strip) { name: name, line: line } end target << [reason: reason, matches: lines_info] end { total_score: total_score, total: "Total Score #{total_score}", matches: target.flatten } end
emit()
click to toggle source
# File lib/metric_fu/metrics/flay/generator.rb, line 7 def emit args = "#{minimum_duplication_mass} #{dirs_to_flay}" @output = run!(args) end
to_h()
click to toggle source
# File lib/metric_fu/metrics/flay/generator.rb, line 16 def to_h { flay: calculate_result(@matches) } end
Private Instance Methods
dirs_to_flay()
click to toggle source
# File lib/metric_fu/metrics/flay/generator.rb, line 48 def dirs_to_flay options[:dirs_to_flay].join(" ") end
minimum_duplication_mass()
click to toggle source
# File lib/metric_fu/metrics/flay/generator.rb, line 41 def minimum_duplication_mass flay_mass = options[:minimum_score] return "" unless flay_mass "--mass #{flay_mass} " end