Sha256: d28edd9f9b5e4ca25e5c71dd36e46d03f343db5d38771cf0fddd528917863d9d
Contents?: true
Size: 730 Bytes
Versions: 3
Compression:
Stored size: 730 Bytes
Contents
# frozen_string_literal: true module Basic101 class ForStack def initialize @stack = [] end def empty? @stack.empty? end def push(statement) if has_reference?(statement.reference) raise DuplicateReferenceInForStack end @stack.push statement end def pop @stack.pop end def top @stack.last end def delete_reference(reference) @stack.reject! do |statement| statement.reference == reference end end def [](reference) @stack.find do |statement| statement.reference == reference end end private def has_reference?(reference) !!self[reference] end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
basic101-1.0.2 | lib/basic101/for_stack.rb |
basic101-1.0.1 | lib/basic101/for_stack.rb |
basic101-1.0.0 | lib/basic101/for_stack.rb |