class Git::Cop::Runner

Attributes

collector[R]
configuration[R]

Public Class Methods

new(configuration:, collector: Collector.new) click to toggle source
# File lib/git/cop/runner.rb, line 6
def initialize configuration:, collector: Collector.new
  @configuration = configuration
  @collector = collector
end

Public Instance Methods

run(commits: Branches::Feature.new.commits) click to toggle source
# File lib/git/cop/runner.rb, line 11
def run commits: Branches::Feature.new.commits
  Array(commits).map { |commit| check commit }
  collector
end

Private Instance Methods

check(commit) click to toggle source
# File lib/git/cop/runner.rb, line 26
def check commit
  cops = configuration.map { |id, settings| load_cop id, commit, settings }
  cops.select(&:enabled?).map { |cop| collector.add cop }
end
load_cop(id, commit, settings) click to toggle source
# File lib/git/cop/runner.rb, line 20
def load_cop id, commit, settings
  klass = Styles::Abstract.descendants.find { |descendant| descendant.id == id }
  fail(Errors::Base, "Invalid cop: #{id}. See docs for supported cops.") unless klass
  klass.new commit: commit, settings: settings
end