Sha256: f7226dfd465f13d7ba022c115776f37b18923e52ec45e4491936f92e19027f5b
Contents?: true
Size: 1.3 KB
Versions: 2
Compression:
Stored size: 1.3 KB
Contents
require 'reek' require 'reek/cli/options' require 'reek/source/source_locator' module Danger # Lints Ruby files via [Reek](https://rubygems.org/gems/reek). # Results are sent as inline comments. # # @example Running Reek # # # Runs Reek on modified and added files in the PR # reek.lint # # @see blooper05/danger-reek # @tags ruby, reek, lint class DangerReek < Plugin # Runs Ruby files through Reek. # @return [Array<Reek::SmellWarning, nil>] def lint files_to_lint = fetch_files_to_lint code_smells = run_linter(files_to_lint) warn_each_line(code_smells) end private def run_linter(files_to_lint) configuration = ::Reek::Configuration::AppConfiguration.from_path(nil) files_to_lint.flat_map do |file| examiner = ::Reek::Examiner.new(file, configuration: configuration) examiner.smells end end def fetch_files_to_lint files = git.modified_files + git.added_files ::Reek::Source::SourceLocator.new(files).sources end def warn_each_line(code_smells) code_smells.each do |smell| message = smell.message.capitalize source = smell.source smell.lines.each do |line| warn(message, file: source, line: line) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
danger-reek-0.2.1 | lib/reek/plugin.rb |
danger-reek-0.2.0 | lib/reek/plugin.rb |