Sha256: ce6b9bcf64576e7fe3922eb8e7d23dd5265eb964031fd673766aca6f4caa3399

Contents?: true

Size: 1.23 KB

Versions: 5

Compression:

Stored size: 1.23 KB

Contents

require "rubycritic/reporters/base"
require "rubycritic/report_generators/overview"
require "rubycritic/report_generators/smells_index"
require "rubycritic/report_generators/code_index"
require "rubycritic/report_generators/code_file"

module Rubycritic
  module Reporter

    class Main < Base
      def initialize(analysed_files)
        @analysed_files = analysed_files
        @smells = analysed_files.flat_map(&:smells).uniq
      end

      def generate_report
        create_directories_and_files(generators)
        copy_assets_to_report_directory
        report_location
      end

      private

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

      def overview_generator
        @overview_generator ||= Generator::Overview.new(@analysed_files)
      end

      def code_index_generator
        Generator::CodeIndex.new(@analysed_files)
      end

      def smells_index_generator
        Generator::SmellsIndex.new(@smells)
      end

      def file_generators
        @analysed_files.map do |analysed_file|
          Generator::CodeFile.new(analysed_file)
        end
      end

      def report_location
        overview_generator.file_href
      end
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rubycritic-1.0.2 lib/rubycritic/reporters/main.rb
rubycritic-1.0.1 lib/rubycritic/reporters/main.rb
rubycritic-1.0.0 lib/rubycritic/reporters/main.rb
rubycritic-0.0.16 lib/rubycritic/reporters/main.rb
rubycritic-0.0.15 lib/rubycritic/reporters/main.rb