Class: Basic101::ForStack

Inherits:
Object
  • Object
show all
Defined in:
lib/basic101/for_stack.rb

Instance Method Summary collapse

Constructor Details

#initializeForStack

Returns a new instance of ForStack.



5
6
7
# File 'lib/basic101/for_stack.rb', line 5

def initialize
  @stack = []
end

Instance Method Details

#[](reference) ⇒ Object



34
35
36
37
38
# File 'lib/basic101/for_stack.rb', line 34

def [](reference)
  @stack.find do |statement|
    statement.reference == reference
  end
end

#delete_reference(reference) ⇒ Object



28
29
30
31
32
# File 'lib/basic101/for_stack.rb', line 28

def delete_reference(reference)
  @stack.reject! do |statement|
    statement.reference == reference
  end
end

#empty?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/basic101/for_stack.rb', line 9

def empty?
  @stack.empty?
end

#popObject



20
21
22
# File 'lib/basic101/for_stack.rb', line 20

def pop
  @stack.pop
end

#push(statement) ⇒ Object



13
14
15
16
17
18
# File 'lib/basic101/for_stack.rb', line 13

def push(statement)
  if has_reference?(statement.reference)
    raise DuplicateReferenceInForStack
  end
  @stack.push statement
end

#topObject



24
25
26
# File 'lib/basic101/for_stack.rb', line 24

def top
  @stack.last
end