This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.

Treating an Array as a Queue
CodeExpectedActual
stack = []
1.upto(10) { |x| stack.push(x) }
stack
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
stack.pop
10 10
stack
[1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]
queue = []
1.upto(10) { |x| queue.push(x) }
queue
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
queue.shift
1 1
queue
[2, 3, 4, 5, 6, 7, 8, 9, 10] [2, 3, 4, 5, 6, 7, 8, 9, 10]
stack.last
9 9
queue.first
2 2
values = [1,2,3]
stack1 = values.inject([]) { |stack, x| stack.push(x) }
stack2 = [] + values
stack1
[1, 2, 3] [1, 2, 3]
stack2
[1, 2, 3] [1, 2, 3]
stack1.pop
3 3
stack2.pop
3 3