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, NotInitializedError, Queue, Thread, Worker

Constant Summary collapse

VERSION =
'1.0.1'

Class Method Summary collapse

Class Method Details

.initialize!Object



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

def self.initialize!
  new_manager = Manager.new
  puts 'Sideband initialized!'

  if block_given?
    begin
      ::Thread.current['sideband.manager'] = new_manager
      yield
    ensure
      join
    end
  else
    ::Thread.current['sideband.manager'] = new_manager
  end
end

.joinObject



28
29
30
31
# File 'lib/sideband.rb', line 28

def self.join
  manager.join
  kill
end

.killObject



33
34
35
36
# File 'lib/sideband.rb', line 33

def self.kill
  manager.kill
  ::Thread.current['sideband.manager'] = nil
end

.managerObject



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

def self.manager
  manager = ::Thread.current['sideband.manager']
  raise NotInitializedError.new('Sideband must be initialized! before using.') if manager.nil?
  manager
end

.queueObject



38
39
40
# File 'lib/sideband.rb', line 38

def self.queue
  manager.queue
end