class Corleone::Emitter::RSpec
Public Class Methods
new(dir, workers)
click to toggle source
# File lib/corleone/emitter/rspec.rb, line 7 def initialize(dir, workers) @dir = dir @workers = workers process_items end
Public Instance Methods
empty?()
click to toggle source
# File lib/corleone/emitter/rspec.rb, line 42 def empty? item_queue.empty? end
item_queue()
click to toggle source
# File lib/corleone/emitter/rspec.rb, line 28 def item_queue @item_queue ||= Queue.new end
pop()
click to toggle source
# File lib/corleone/emitter/rspec.rb, line 32 def pop Corleone::Message::Item.new(item_queue.pop) end
process_items()
click to toggle source
# File lib/corleone/emitter/rspec.rb, line 36 def process_items spec_groups.each do |group| item_queue << Corleone::Message::Item.new(group) end end
runner_args()
click to toggle source
# File lib/corleone/emitter/rspec.rb, line 46 def runner_args Corleone::Message::RunnerArgs.new(nil) end
spec_files()
click to toggle source
# File lib/corleone/emitter/rspec.rb, line 14 def spec_files Dir.glob(File.join(@dir, '**/*spec.rb')) end
spec_groups()
click to toggle source
# File lib/corleone/emitter/rspec.rb, line 18 def spec_groups groups = @workers.times.map { [] } spec_files.shuffle.each_with_index do |item, i| groups[i % @workers] << item end groups end