class MockQueue
Attributes
entries[R]
yield_on_pop[R]
yield_on_push[R]
Public Class Methods
new(yield_on_push: false, yield_on_pop: false)
click to toggle source
# File lib/mock-thread/mock-queue.rb 8 def initialize yield_on_push: false, yield_on_pop: false 9 @entries = [] 10 @yield_on_push = yield_on_push 11 @yield_on_pop = yield_on_pop 12 end
Public Instance Methods
empty?()
click to toggle source
# File lib/mock-thread/mock-queue.rb 14 def empty? 15 entries.empty? 16 end
pop()
click to toggle source
# File lib/mock-thread/mock-queue.rb 26 def pop 27 begin 28 while @entries.empty? 29 Fiber.yield :block 30 end 31 rescue FiberError => ex 32 raise QueueEmptyError, "queue empty (#{ex.message})" 33 end 34 35 val = @entries.shift 36 if yield_on_pop 37 Fiber.yield([:pop, val]) rescue FiberError 38 end 39 val 40 end
push(val)
click to toggle source
# File lib/mock-thread/mock-queue.rb 18 def push val 19 @entries << val 20 if yield_on_push 21 Fiber.yield([:push, val]) rescue FiberError 22 end 23 end
Also aliased as: <<