class TestBoosters::Files::Distributor
Distributes test files based on split configuration, file pattern, and their file size
Public Class Methods
new(split_configuration_path, file_pattern, exclude_pattern, job_count)
click to toggle source
# File lib/test_boosters/files/distributor.rb, line 9 def initialize(split_configuration_path, file_pattern, exclude_pattern, job_count) @split_configuration_path = split_configuration_path @file_pattern = file_pattern @exclude_pattern = exclude_pattern @job_count = job_count end
Public Instance Methods
all_files()
click to toggle source
# File lib/test_boosters/files/distributor.rb, line 29 def all_files @all_files ||= begin files = Dir[@file_pattern].sort files -= Dir[@exclude_pattern] if @exclude_pattern files end end
display_info()
click to toggle source
# File lib/test_boosters/files/distributor.rb, line 16 def display_info puts "Split configuration present: #{split_configuration.present? ? "yes" : "no"}" puts "Split configuration valid: #{split_configuration.valid? ? "yes" : "no"}" puts "Split configuration file count: #{split_configuration.all_files.size}" end
files_for(job_index)
click to toggle source
# File lib/test_boosters/files/distributor.rb, line 22 def files_for(job_index) known = all_files & split_configuration.files_for_job(job_index) leftover = leftover_files.select(:index => job_index, :total => @job_count) [known, leftover] end
Private Instance Methods
leftover_files()
click to toggle source
# File lib/test_boosters/files/distributor.rb, line 39 def leftover_files @leftover_files ||= TestBoosters::Files::LeftoverFiles.new(all_files - split_configuration.all_files) end
split_configuration()
click to toggle source
# File lib/test_boosters/files/distributor.rb, line 43 def split_configuration @split_configuration ||= TestBoosters::Files::SplitConfiguration.new(@split_configuration_path) end