class Basic101::ForStack

Public Class Methods

new() click to toggle source
# File lib/basic101/for_stack.rb, line 7
def initialize
  @stack = []
end

Public Instance Methods

[](reference) click to toggle source
# File lib/basic101/for_stack.rb, line 36
def [](reference)
  @stack.find do |statement|
    statement.reference == reference
  end
end
delete_reference(reference) click to toggle source
# File lib/basic101/for_stack.rb, line 30
def delete_reference(reference)
  @stack.reject! do |statement|
    statement.reference == reference
  end
end
empty?() click to toggle source
# File lib/basic101/for_stack.rb, line 11
def empty?
  @stack.empty?
end
pop() click to toggle source
# File lib/basic101/for_stack.rb, line 22
def pop
  @stack.pop
end
push(statement) click to toggle source
# File lib/basic101/for_stack.rb, line 15
def push(statement)
  if has_reference?(statement.reference)
    raise DuplicateReferenceInForStack
  end
  @stack.push statement
end
top() click to toggle source
# File lib/basic101/for_stack.rb, line 26
def top
  @stack.last
end

Private Instance Methods

has_reference?(reference) click to toggle source
# File lib/basic101/for_stack.rb, line 44
def has_reference?(reference)
  !!self[reference]
end