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.



7
8
9
# File 'lib/basic101/for_stack.rb', line 7

def initialize
  @stack = []
end

Instance Method Details

#[](reference) ⇒ Object



36
37
38
39
40
# File 'lib/basic101/for_stack.rb', line 36

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

#delete_reference(reference) ⇒ Object



30
31
32
33
34
# File 'lib/basic101/for_stack.rb', line 30

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

#empty?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/basic101/for_stack.rb', line 11

def empty?
  @stack.empty?
end

#popObject



22
23
24
# File 'lib/basic101/for_stack.rb', line 22

def pop
  @stack.pop
end

#push(statement) ⇒ Object



15
16
17
18
19
20
# File 'lib/basic101/for_stack.rb', line 15

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

#topObject



26
27
28
# File 'lib/basic101/for_stack.rb', line 26

def top
  @stack.last
end