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