class Rubycritic::Reporter
def code_index_generator
def code_index_generator @code_index_generator ||= CodeIndexGenerator.new(file_generators) end
def file_generators
def file_generators @file_generators ||= @source_pathnames.map do |file_pathname| file_smells = @smelly_pathnames[file_pathname] FileGenerator.new(file_pathname, file_smells) end end
def generate_report
def generate_report generators.each do |generator| FileUtils.mkdir_p(generator.file_directory) File.open(generator.file_pathname, "w+") do |file| file.write(generator.render) end end FileUtils.cp_r(ASSETS_DIR, BaseGenerator::REPORT_DIR) code_index_generator.file_href end
def generators
def generators [code_index_generator, smells_index_generator] + file_generators end
def initialize(source_pathnames, smells)
def initialize(source_pathnames, smells) @source_pathnames = source_pathnames @smells = smells @smelly_pathnames = pathnames_to_files_with_smells end
def pathnames_to_files_with_smells
def pathnames_to_files_with_smells pathnames = Hash.new { |hash, key| hash[key] = [] } @smells.each do |smell| smell.pathnames.each do |path| pathnames[path] << smell end end pathnames end
def smells_index_generator
def smells_index_generator @smells_index_generator ||= SmellsIndexGenerator.new(@smells) end