class RubyCritic::AnalysisSummary

Attributes

analysed_modules[R]
modules[R]

Public Class Methods

generate(analysed_modules) click to toggle source
# File lib/rubycritic/analysis_summary.rb, line 5
def self.generate(analysed_modules)
  new(analysed_modules).generate
end
new(analysed_modules) click to toggle source
# File lib/rubycritic/analysis_summary.rb, line 9
def initialize(analysed_modules)
  @analysed_modules = analysed_modules
end

Public Instance Methods

generate() click to toggle source
# File lib/rubycritic/analysis_summary.rb, line 13
def generate
  %w[A B C D F].each_with_object({}) do |rating, summary|
    summary[rating] = generate_for(rating)
  end
end

Private Instance Methods

churns() click to toggle source
# File lib/rubycritic/analysis_summary.rb, line 32
def churns
  modules.inject(0) { |acc, elem| acc + elem.churn }
end
generate_for(rating) click to toggle source
# File lib/rubycritic/analysis_summary.rb, line 23
def generate_for(rating)
  @modules = analysed_modules.for_rating(rating)
  {
    files: modules.count,
    churns: churns,
    smells: smells
  }
end
smells() click to toggle source
# File lib/rubycritic/analysis_summary.rb, line 36
def smells
  modules.inject(0) { |acc, elem| acc + elem.smells.count }
end