class RubyCritic::AnalysisSummary

def self.generate(analysed_modules)

def self.generate(analysed_modules)
  new(analysed_modules).generate
end

def churns

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

def generate

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

def generate_for(rating)

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

def initialize(analysed_modules)

def initialize(analysed_modules)
  @analysed_modules = analysed_modules
end

def smells

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