Class: JobGrabber::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/base.rb

Instance Method Summary collapse

Constructor Details

#initialize(sources) ⇒ Base

Returns a new instance of Base.



5
6
7
# File 'lib/base.rb', line 5

def initialize(sources)
  @sources = sources
end

Instance Method Details

#grabObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/base.rb', line 8

def grab
  jobs = Array.new
  mutex = Mutex.new
  threads = Array.new
  @sources.each do |src|
    threads << Thread.new(src, jobs) do |src, jobs|
      src_jobs = JobGrabber::SrcGrabber.new(src).grab
      mutex.synchronize do
        (jobs << src_jobs).flatten!
      end
    end
  end
  threads.each(&:join)
  jobs
end