Sha256: f76187b94e889dbdf90c1e098004c79aa47e9a1df3bf971e91f70db94b6b3c5b
Contents?: true
Size: 949 Bytes
Versions: 7
Compression:
Stored size: 949 Bytes
Contents
# frozen_string_literal: true module Git module Lint class Runner def initialize configuration:, collector: Collector.new @configuration = configuration @collector = collector end def call commits: Branches::Feature.new.commits Array(commits).map { |commit| check commit } collector end private attr_reader :configuration, :collector def check commit configuration.map { |id, settings| load_analyzer id, commit, settings } .select(&:enabled?) .map { |analyzer| collector.add analyzer } end def load_analyzer id, commit, settings klass = Analyzers::Abstract.descendants.find { |descendant| descendant.id == id } fail Errors::Base, "Invalid analyzer: #{id}. See docs for supported analyzer." unless klass klass.new commit: commit, settings: settings end end end end
Version data entries
7 entries across 7 versions & 1 rubygems