38 lines
906 B
Ruby
38 lines
906 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Gitlab
|
||
|
module Bullet
|
||
|
class Exclusions
|
||
|
def initialize(config_file = Gitlab.root.join('config/bullet.yml'))
|
||
|
@config_file = config_file
|
||
|
end
|
||
|
|
||
|
def execute
|
||
|
exclusions.map { |v| v['exclude'] }
|
||
|
end
|
||
|
|
||
|
def validate_paths!
|
||
|
exclusions.each do |properties|
|
||
|
next unless properties['path_with_method']
|
||
|
|
||
|
file = properties['exclude'].first
|
||
|
|
||
|
raise "Bullet: File used by #{config_file} doesn't exist, validate the #{file} exclusion!" unless File.exist?(file)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
attr_reader :config_file
|
||
|
|
||
|
def exclusions
|
||
|
@exclusions ||= if File.exist?(config_file)
|
||
|
YAML.load_file(config_file)['exclusions']&.values || []
|
||
|
else
|
||
|
[]
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|