require 'reek' module AnalDiffist class ReekParser attr_accessor :problems def initialize(paths) @examiner = Reek::Examiner.new(paths) @problems = get_problems end def get_problems unfiltered = @examiner.smells.map {|smell| ReekProblem.new(smell)} filter_reek_problems(unfiltered) end def filter_reek_problems(reek_problems) reek_problems end def diff(previous) AnalDiffist::DiffSet.new(previous.problems, self.problems) end end class ReekProblem def initialize smell @smell = smell end def type @smell.subclass.to_s || '' end def context @smell.location["context"] end def diff other self if other.nil? end def score 2 end def description(mode = :added) "Reek: #{type}" end end end