Module: Sideband

Defined in:
lib/sideband.rb,
lib/sideband/queue.rb,
lib/sideband/thread.rb,
lib/sideband/worker.rb,
lib/sideband/manager.rb,
lib/sideband/version.rb

Defined Under Namespace

Classes: Manager, Queue, Thread, Worker

Constant Summary collapse

VERSION =
'1.0.3'

Class Method Summary collapse

Class Method Details

.enqueue(job = nil) ⇒ Object



44
45
46
# File 'lib/sideband.rb', line 44

def self.enqueue(job = nil)
  queue(job)
end

.initialize!Object



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/sideband.rb', line 12

def self.initialize!
  @manager = Manager.new

  if block_given?
    begin
      yield
    ensure
      join
    end
  else
    @manager
  end
end

.joinObject



26
27
28
29
# File 'lib/sideband.rb', line 26

def self.join
  manager.join
  kill
end

.killObject



31
32
33
34
# File 'lib/sideband.rb', line 31

def self.kill
  manager.kill
  @manager = nil
end

.managerObject



48
49
50
51
52
# File 'lib/sideband.rb', line 48

def self.manager
  m = @manager
  m = initialize! if m.nil?
  m
end

.queue(job = nil) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/sideband.rb', line 36

def self.queue(job = nil)
  if job
    manager.queue << job
  else
    manager.queue
  end
end