Sha256: 70feddc580879cdb06c047194d817f0317547254d29b34a32bb61dd4c3df7874

Contents?: true

Size: 1.17 KB

Versions: 33

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true

require 'rubycritic/analysers/helpers/reek'
require 'rubycritic/core/smell'
require 'rubycritic/colorize'

module RubyCritic
  module Analyser
    class ReekSmells
      include Colorize
      def initialize(analysed_modules)
        @analysed_modules = analysed_modules
      end

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

      def to_s
        'reek smells'
      end

      private

      def add_smells_to(analysed_module)
        Reek.new(analysed_module.pathname).smells.each do |smell|
          analysed_module.smells << create_smell(smell)
        end
      end

      def create_smell(smell)
        Smell.new(
          locations: smell_locations(smell.source, smell.lines),
          context: smell.context,
          message: smell.message,
          type: smell.smell_type,
          analyser: 'reek',
          cost: 0
        )
      end

      def smell_locations(file_path, file_lines)
        file_lines.uniq.map do |file_line|
          Location.new(file_path, file_line)
        end.sort
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 2 rubygems

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