class Leftovers::MergedConfig
Public Class Methods
new(load_defaults: false)
click to toggle source
# File lib/leftovers/merged_config.rb, line 8 def initialize(load_defaults: false) @configs = [] @loaded_configs = Set.new return unless load_defaults self << :ruby self << project_config self << project_todo load_bundled_gem_config end
Public Instance Methods
<<(config)
click to toggle source
# File lib/leftovers/merged_config.rb, line 19 def <<(config) config = Leftovers::Config.new(config) unless config.is_a?(Leftovers::Config) return if @loaded_configs.include?(config.name) unmemoize @configs << config @loaded_configs << config.name config.gems.each { |gem| self << gem } config.requires.each do |req| Leftovers.try_require(req, message: "cannot require '#{req}' from #{config.name}.yml") end end
dynamic()
click to toggle source
# File lib/leftovers/merged_config.rb, line 64 def dynamic @dynamic ||= ::Leftovers::ProcessorBuilders::EachDynamic.build(@configs.map(&:dynamic)) end
exclude_paths()
click to toggle source
# File lib/leftovers/merged_config.rb, line 48 def exclude_paths @exclude_paths ||= @configs.flat_map(&:exclude_paths) end
include_paths()
click to toggle source
# File lib/leftovers/merged_config.rb, line 52 def include_paths @include_paths ||= @configs.flat_map(&:include_paths) end
keep()
click to toggle source
# File lib/leftovers/merged_config.rb, line 68 def keep @keep ||= ::Leftovers::MatcherBuilders::Or.build(@configs.map(&:keep)) end
project_config()
click to toggle source
# File lib/leftovers/merged_config.rb, line 32 def project_config Leftovers::Config.new(:'.leftovers.yml', path: Leftovers.pwd + '.leftovers.yml') end
project_todo()
click to toggle source
# File lib/leftovers/merged_config.rb, line 36 def project_todo Leftovers::Config.new(:'.leftovers_todo.yml', path: Leftovers.pwd + '.leftovers_todo.yml') end
test_only()
click to toggle source
# File lib/leftovers/merged_config.rb, line 72 def test_only @test_only ||= ::Leftovers::MatcherBuilders::Or.build(@configs.map(&:test_only)) end
test_paths()
click to toggle source
# File lib/leftovers/merged_config.rb, line 56 def test_paths @test_paths ||= FastIgnore.new( include_rules: @configs.flat_map(&:test_paths), gitignore: false, root: Leftovers.pwd ) end
unmemoize()
click to toggle source
# File lib/leftovers/merged_config.rb, line 40 def unmemoize remove_instance_variable(:@exclude_paths) if defined?(@exclude_paths) remove_instance_variable(:@include_paths) if defined?(@include_paths) remove_instance_variable(:@test_paths) if defined?(@test_paths) remove_instance_variable(:@dynamic) if defined?(@dynamic) remove_instance_variable(:@keep) if defined?(@keep) end
Private Instance Methods
load_bundled_gem_config()
click to toggle source
# File lib/leftovers/merged_config.rb, line 78 def load_bundled_gem_config return unless Leftovers.try_require('bundler') Bundler.locked_gems.specs.each do |spec| self << spec.name end end