class TestBoosters::Files::LeftoverFiles
Attributes
files[R]
Public Class Methods
new(files)
click to toggle source
# File lib/test_boosters/files/leftover_files.rb, line 7 def initialize(files) @files = files end
Public Instance Methods
select(options = {})
click to toggle source
# File lib/test_boosters/files/leftover_files.rb, line 11 def select(options = {}) index = options.fetch(:index) total = options.fetch(:total) file_distribution(total)[index] end
Private Instance Methods
existing_files()
click to toggle source
# File lib/test_boosters/files/leftover_files.rb, line 36 def existing_files @existing_files ||= @files.select { |file| File.file?(file) } end
file_distribution(job_count)
click to toggle source
# File lib/test_boosters/files/leftover_files.rb, line 20 def file_distribution(job_count) # create N empty boxes jobs = Array.new(job_count) { [] } # distribute files in Round Robin fashion sorted_files_by_file_size.each.with_index do |file, index| jobs[index % job_count] << file end jobs end
sorted_files_by_file_size()
click to toggle source
# File lib/test_boosters/files/leftover_files.rb, line 32 def sorted_files_by_file_size @sorted_files_by_file_size ||= existing_files.sort_by { |file| -File.size(file) } end