Class: Rjq::VM::RecordingInputQueue

Inherits:
Object
  • Object
show all
Defined in:
lib/rjq/vm.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue) ⇒ RecordingInputQueue

Returns a new instance of RecordingInputQueue.



24
25
26
27
# File 'lib/rjq/vm.rb', line 24

def initialize(queue)
  @queue = queue
  @records = []
end

Instance Attribute Details

#current_recordObject (readonly)

Returns the value of attribute current_record.



22
23
24
# File 'lib/rjq/vm.rb', line 22

def current_record
  @current_record
end

Instance Method Details

#each_remainingObject



43
44
45
46
47
# File 'lib/rjq/vm.rb', line 43

def each_remaining
  return enum_for(:each_remaining) unless block_given?

  yield shift until empty?
end

#empty?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/rjq/vm.rb', line 29

def empty?
  @queue.empty?
end

#playbackObject



49
50
51
# File 'lib/rjq/vm.rb', line 49

def playback
  Runtime::InputQueue.new(@records)
end

#shiftObject



39
40
41
# File 'lib/rjq/vm.rb', line 39

def shift
  shift_record&.value
end

#shift_recordObject



33
34
35
36
37
# File 'lib/rjq/vm.rb', line 33

def shift_record
  @current_record = @queue.shift_record
  @records << @current_record if @current_record
  @current_record
end