class Rubycritic::Generator::HtmlReport

def code_index_generator

def code_index_generator
  Html::CodeIndex.new(@analysed_modules)
end

def copy_assets_to_report_directory

def copy_assets_to_report_directory
  FileUtils.cp_r(ASSETS_DIR, Config.root)
end

def create_directories_and_files

def create_directories_and_files
  Array(generators).each do |generator|
    FileUtils.mkdir_p(generator.file_directory)
    File.open(generator.file_pathname, "w+") do |file|
      file.write(generator.render)
    end
  end
end

def file_generators

def file_generators
  @analysed_modules.map do |analysed_module|
    Html::CodeFile.new(analysed_module)
  end
end

def generate_report

def generate_report
  create_directories_and_files
  copy_assets_to_report_directory
  puts "New critique at #{report_location}"
end

def generators

def generators
  [overview_generator, code_index_generator, smells_index_generator] + file_generators
end

def initialize(analysed_modules)

def initialize(analysed_modules)
  @analysed_modules = analysed_modules
end

def overview_generator

def overview_generator
  @overview_generator ||= Html::Overview.new(@analysed_modules)
end

def report_location

def report_location
  overview_generator.file_href
end

def smells_index_generator

def smells_index_generator
  Html::SmellsIndex.new(@analysed_modules)
end