Module Stackable
In: lib/core/facets/stackable.rb

Stackable

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

Methods

peek   poke   pop   pull   push   shift   unshift  

Public Instance methods

Peek at the top of the stack.

  a = [1, 2, 3]
  a.peek          #=> 3
  a               #=> [1, 2, 3]

[Source]

    # File lib/core/facets/stackable.rb, line 81
81:   def peek
82:     slice(-1)
83:   end

Poke item onto the stack.

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

  TODO: Better name (besides unshift)?

[Source]

    # File lib/core/facets/stackable.rb, line 69
69:   def poke(x)
70:     insert(0,x)
71:   end

Pop item off stack.

  a = [1, 2, 3]
  a.pop           #=> 3
  a               #=> [1, 2]

[Source]

    # File lib/core/facets/stackable.rb, line 37
37:   def pop
38:     splice(-1)
39:   end

Pull item off the stack.

  a = [1, 2, 3]
  a.pull          #=> 1
  a               #=> [2, 3]

[Source]

    # File lib/core/facets/stackable.rb, line 56
56:   def pull
57:     slice(0)
58:   end

Push item onto the stack.

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

[Source]

    # File lib/core/facets/stackable.rb, line 46
46:   def push(x)
47:     insert(-1,x)
48:   end
shift()

Alias for pull

unshift(x)

Alias for poke

[Validate]