Class: Basic101::ForStack
- Inherits:
-
Object
- Object
- Basic101::ForStack
- Defined in:
- lib/basic101/for_stack.rb
Instance Method Summary collapse
- #[](reference) ⇒ Object
- #delete_reference(reference) ⇒ Object
- #empty? ⇒ Boolean
-
#initialize ⇒ ForStack
constructor
A new instance of ForStack.
- #pop ⇒ Object
- #push(statement) ⇒ Object
- #top ⇒ Object
Constructor Details
#initialize ⇒ ForStack
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
9 10 11 |
# File 'lib/basic101/for_stack.rb', line 9 def empty? @stack.empty? end |
#pop ⇒ Object
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 |
#top ⇒ Object
24 25 26 |
# File 'lib/basic101/for_stack.rb', line 24 def top @stack.last end |