class Rack::ClientSpec::RequestTrace
Attributes
match[R]
Public Class Methods
new(sequences)
click to toggle source
# File lib/rack/client_spec/request_trace.rb, line 6 def initialize(sequences) @pointers = {} @sequences = {} @match = nil sequences.each do |name, sequence| set_sequence name, sequence end end
Public Instance Methods
reset(name)
click to toggle source
# File lib/rack/client_spec/request_trace.rb, line 20 def reset(name) @pointers[name] = 0 end
set_sequence(name, sequence)
click to toggle source
# File lib/rack/client_spec/request_trace.rb, line 15 def set_sequence(name, sequence) @sequences[name] = sequence @pointers[name] = 0 end
states()
click to toggle source
# File lib/rack/client_spec/request_trace.rb, line 36 def states states = {} @sequences.each do |name, sequence| states[name] = [] sequence.each_with_index do |request, i| states[name] << { passed: @pointers[name] > i, request: request, } end end states end
trace(env)
click to toggle source
# File lib/rack/client_spec/request_trace.rb, line 24 def trace(env) @sequences.each do |name, sequence| next unless sequence[@pointers[name]].match?(env) @pointers[name] += 1 if @pointers[name] == sequence.length @match = name break end end !@match.nil? end