Method: Buffet::Master#next_file_for

Defined in:
lib/buffet/master.rb

#next_file_for(slave_name, previous_spec) ⇒ Object



109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/buffet/master.rb', line 109

def next_file_for(slave_name, previous_spec)
  file = nil

  @lock.synchronize do
    if rerun_spec?(previous_spec)
      @spec_queue_count[previous_spec] += 1
      return previous_spec
    else
      if file = @specs.shift
        @spec_queue_count[file] += 1
        @current_spec_for_slave[slave_name] = file

        @slaves_stats[slave_name][:specs] << file
      end
    end
  end

  if file
    slave = nil
    @lock.synchronize do
      slave = @slaves_stats[slave_name][:slave]
    end
    @listener.spec_taken(slave, file)
  end

  file
end