class RubyCritic::Analyser::FlogSmells

def add_smells_to(analysed_module)

def add_smells_to(analysed_module)
  @flog.reset
  @flog.flog(analysed_module.path)
  @flog.each_by_score do |class_method, original_score|
    score = original_score.round
    analysed_module.smells << create_smell(class_method, score) if score >= HIGH_COMPLEXITY_SCORE_THRESHOLD
  end
end

def create_smell(context, score)

def create_smell(context, score)
  Smell.new(
    locations: smell_locations(context),
    context: context,
    message: "has a flog score of #{score}",
    score: score,
    type: type(score),
    analyser: 'flog',
    cost: 0
  )
end

def initialize(analysed_modules)

def initialize(analysed_modules)
  @flog = Flog.new
  @analysed_modules = analysed_modules
end

def run

def run
  @analysed_modules.each do |analysed_module|
    add_smells_to(analysed_module)
    print green '.'
  end
  puts ''
end

def smell_locations(context)

def smell_locations(context)
  line = @flog.method_locations[context]
  file_path, file_line = line.split(':')
  [Location.new(file_path, file_line)]
end

def to_s

def to_s
  'flog smells'
end

def type(score)

def type(score)
  if score >= VERY_HIGH_COMPLEXITY_SCORE_THRESHOLD
    'VeryHighComplexity'
  else
    'HighComplexity'
  end
end