module KnapsackPro class BaseAllocatorBuilder TEST_RUNNER_MAP = { KnapsackPro::Adapters::RSpecAdapter => 'rspec', KnapsackPro::Adapters::CucumberAdapter => 'cucumber', KnapsackPro::Adapters::MinitestAdapter => 'minitest', KnapsackPro::Adapters::SpinachAdapter => 'spinach', KnapsackPro::Adapters::TestUnitAdapter => 'test-unit', } def initialize(adapter_class) @adapter_class = adapter_class ENV['KNAPSACK_PRO_TEST_RUNNER'] = TEST_RUNNER_MAP[adapter_class] end def allocator raise NotImplementedError end def test_dir KnapsackPro::Config::Env.test_dir || test_file_pattern.split('/').first.gsub(/({)/, '') end private attr_reader :adapter_class def env KnapsackPro::Config::Env end def repository_adapter KnapsackPro::RepositoryAdapterInitiator.call end def test_file_pattern TestFilePattern.call(adapter_class) end def test_files KnapsackPro::TestFileFinder.call(test_file_pattern) end end end