Sha256: 28bdea12d95f05c7faefcb4af1ba38163e442f256fa2b24140840b2855c39b08

Contents?: true

Size: 882 Bytes

Versions: 2

Compression:

Stored size: 882 Bytes

Contents

module Rubycritic
  module Orchestrator

    class Base
      def initialize
        @source_control_system = SourceControlSystem.create
      end

      def critique(paths)
        source = SourceLocator.new(paths)
        @smells = AnalysersRunner.new(source.paths).smells
        if @source_control_system.has_revision?
          @smells = RevisionComparator.new(@smells, @source_control_system).smells
          churn = Analyser::Churn.new(source.paths, @source_control_system).churn
        end
        complexity = ComplexityAdapter::Flog.new(source.paths).complexity
        @analysed_files = AnalysedFilesBuilder.new(source.pathnames, @smells, churn, complexity).analysed_files
        generate_report
      end

      def generate_report
        raise NotImplementedError.new("The #{self.class} class must implement the #{__method__} method.")
      end
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rubycritic-0.0.14 lib/rubycritic/orchestrators/base.rb
rubycritic-0.0.13 lib/rubycritic/orchestrators/base.rb