Sha256: 4d712b00b4900b577a1bbb931914b8f43e513c4ab4dd1cbedc204639ca81a239

Contents?: true

Size: 813 Bytes

Versions: 33

Compression:

Stored size: 813 Bytes

Contents

# frozen_string_literal: true

module RubyCritic
  class AnalysisSummary
    def self.generate(analysed_modules)
      new(analysed_modules).generate
    end

    def initialize(analysed_modules)
      @analysed_modules = analysed_modules
    end

    def generate
      %w[A B C D F].each_with_object({}) do |rating, summary|
        summary[rating] = generate_for(rating)
      end
    end

    private

    attr_reader :analysed_modules, :modules

    def generate_for(rating)
      @modules = analysed_modules.for_rating(rating)
      {
        files: modules.count,
        churns: churns,
        smells: smells
      }
    end

    def churns
      modules.inject(0) { |acc, elem| acc + elem.churn }
    end

    def smells
      modules.inject(0) { |acc, elem| acc + elem.smells.count }
    end
  end
end

Version data entries

33 entries across 33 versions & 2 rubygems

Version Path
rubycritic-4.9.1 lib/rubycritic/analysis_summary.rb
rubycritic-4.9.0 lib/rubycritic/analysis_summary.rb
rubycritic-4.8.1 lib/rubycritic/analysis_summary.rb
rubycritic-4.8.0 lib/rubycritic/analysis_summary.rb
rubycritic-4.7.0 lib/rubycritic/analysis_summary.rb
rubycritic-4.6.1 lib/rubycritic/analysis_summary.rb
rubycritic-4.6.0 lib/rubycritic/analysis_summary.rb
rubycritic-4.5.2 lib/rubycritic/analysis_summary.rb
rubycritic-4.5.1 lib/rubycritic/analysis_summary.rb
rubycritic-4.5.0 lib/rubycritic/analysis_summary.rb
rubycritic-4.4.1 lib/rubycritic/analysis_summary.rb
rubycritic-4.4.0 lib/rubycritic/analysis_summary.rb
rubycritic-4.3.3 lib/rubycritic/analysis_summary.rb
rubycritic-4.3.2 lib/rubycritic/analysis_summary.rb
rubycritic-4.3.1 lib/rubycritic/analysis_summary.rb
rubycritic-4.3.0 lib/rubycritic/analysis_summary.rb
rubycritic-4.2.2 lib/rubycritic/analysis_summary.rb
rubycritic-4.2.1 lib/rubycritic/analysis_summary.rb
rubycritic-4.2.0 lib/rubycritic/analysis_summary.rb
rubycritic-simplecov-4.1.1 lib/rubycritic/analysis_summary.rb