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.
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
11 12 13 |
# File 'lib/basic101/for_stack.rb', line 11 def empty? @stack.empty? end |
#pop ⇒ Object
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 |
#top ⇒ Object
26 27 28 |
# File 'lib/basic101/for_stack.rb', line 26 def top @stack.last end |