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