module Stackable

Stackable

Stackable mixin provides pop, push, pull, etc. It depends on slice, splice and insert.

Public Instance Methods

peek() click to toggle source

Peek at the top of the stack.

a = [1, 2, 3]
a.peek          #=> 3
a               #=> [1, 2, 3]
# File lib/core/facets/stackable.rb, line 81
def peek
  slice(-1)
end
poke(x) click to toggle source

Poke item onto the stack.

a = [2, 3]
a.poke(1)       #=> [1, 2, 3]

TODO: Better name (besides unshift)?
# File lib/core/facets/stackable.rb, line 69
def poke(x)
  insert(0,x)
end
Also aliased as: unshift
pop() click to toggle source

Pop item off stack.

a = [1, 2, 3]
a.pop           #=> 3
a               #=> [1, 2]
# File lib/core/facets/stackable.rb, line 37
def pop
  splice(-1)
end
pull() click to toggle source

Pull item off the stack.

a = [1, 2, 3]
a.pull          #=> 1
a               #=> [2, 3]
# File lib/core/facets/stackable.rb, line 56
def pull
  slice(0)
end
Also aliased as: shift
push(x) click to toggle source

Push item onto the stack.

a = [1, 2]
a.push(3)       #=> [1, 2, 3]
# File lib/core/facets/stackable.rb, line 46
def push(x)
  insert(-1,x)
end
shift() click to toggle source
Alias for: pull
unshift(x) click to toggle source
Alias for: poke