Class: WonkoTheSane::Util::TaskStack

Inherits:
Object
  • Object
show all
Defined in:
lib/wonko_the_sane/util/task_stack.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeTaskStack

Returns a new instance of TaskStack.



6
7
8
# File 'lib/wonko_the_sane/util/task_stack.rb', line 6

def initialize
  @queue = []
end

Instance Attribute Details

#queueObject (readonly)

Returns the value of attribute queue.



4
5
6
# File 'lib/wonko_the_sane/util/task_stack.rb', line 4

def queue
  @queue
end

Instance Method Details

#in_background(&block) ⇒ Object



23
24
25
26
27
# File 'lib/wonko_the_sane/util/task_stack.rb', line 23

def in_background(&block)
  thread = Thread.new &block
  pop_all
  thread.join.value
end

#popObject



16
17
18
19
# File 'lib/wonko_the_sane/util/task_stack.rb', line 16

def pop
  task = @queue.pop
  task.call
end

#pop_allObject



20
21
22
# File 'lib/wonko_the_sane/util/task_stack.rb', line 20

def pop_all
  pop until @queue.empty?
end

#push(task) ⇒ Object



10
11
12
# File 'lib/wonko_the_sane/util/task_stack.rb', line 10

def push(task)
  @queue.push task
end

#push_defered(task) ⇒ Object



13
14
15
# File 'lib/wonko_the_sane/util/task_stack.rb', line 13

def push_defered(task)
  @queue.unshift task
end