class JsonProjection::Fifo
Public Class Methods
empty()
click to toggle source
# File lib/json-projection/parser/fifo.rb, line 4 def self.empty @empty ||= self.new([].freeze) end
new(stack = [])
click to toggle source
# File lib/json-projection/parser/fifo.rb, line 12 def initialize(stack = []) @stack = stack end
pure(*vals)
click to toggle source
# File lib/json-projection/parser/fifo.rb, line 8 def self.pure(*vals) Fifo.new(vals) end
Public Instance Methods
==(other)
click to toggle source
# File lib/json-projection/parser/fifo.rb, line 28 def ==(other) return false unless other.is_a?(Fifo) return stack == other.stack end
empty?()
click to toggle source
# File lib/json-projection/parser/fifo.rb, line 24 def empty? @stack.empty? end
hash()
click to toggle source
# File lib/json-projection/parser/fifo.rb, line 33 def hash stack.hash end
pop!()
click to toggle source
# File lib/json-projection/parser/fifo.rb, line 20 def pop! @stack.pop end
prepend!(fifo)
click to toggle source
# File lib/json-projection/parser/fifo.rb, line 37 def prepend!(fifo) return if fifo.empty? if empty? @stack = fifo.stack.dup return end @stack = fifo.stack.concat(@stack) end
push!(val)
click to toggle source
# File lib/json-projection/parser/fifo.rb, line 16 def push!(val) @stack.insert(0, val) end
Protected Instance Methods
stack()
click to toggle source
# File lib/json-projection/parser/fifo.rb, line 48 def stack @stack end