lib/pronto/runners.rb in pronto-0.11.0 vs lib/pronto/runners.rb in pronto-0.11.1
- old
+ new
@@ -4,37 +4,54 @@
@runners = runners
@config = config
end
def run(patches)
- patches = reject_excluded(@config.excluded_files('all'), patches)
+ patches = reject_excluded(config.excluded_files('all'), patches)
return [] if patches.none?
result = []
- @runners.each do |runner|
+ active_runners.each do |runner|
next if exceeds_max?(result)
- @config.logger.log("Running #{runner}")
+ config.logger.log("Running #{runner}")
runner_patches = reject_excluded(
- @config.excluded_files(runner.title), patches
+ config.excluded_files(runner.title), patches
)
next if runner_patches.none?
result += runner.new(runner_patches, patches.commit).run.flatten.compact
end
- result = result.take(@config.max_warnings) if @config.max_warnings
+ result = result.take(config.max_warnings) if config.max_warnings
result
end
private
+ attr_reader :config, :runners
+
+ def active_runners
+ runners.select { |runner| active_runner?(runner) }
+ end
+
+ def active_runner?(runner)
+ return true if config.runners.empty? && config.skip_runners.empty?
+
+ if config.runners.empty?
+ !config.skip_runners.include?(runner.title)
+ else
+ active_runner_names = config.runners - config.skip_runners
+ active_runner_names.include?(runner.title)
+ end
+ end
+
def reject_excluded(excluded_files, patches)
return patches unless excluded_files.any?
patches.reject do |patch|
excluded_files.include?(patch.new_file_full_path.to_s)
end
end
def exceeds_max?(warnings)
- @config.max_warnings && warnings.count >= @config.max_warnings
+ config.max_warnings && warnings.count >= config.max_warnings
end
end
end