class InspectRequest::Checker

Checker class

Attributes

session[R]
started[R]

Public Class Methods

new() click to toggle source
# File lib/inspect_request.rb, line 16
def initialize
  @results = []
  @verifier_block = proc {}

  self.class.start
  self.class.session.on_request do |req|
    track_result @verifier_block.call req.clone
  end
end
shutdown() click to toggle source

Shutdown proxy

# File lib/inspect_request.rb, line 37
def self.shutdown
  @session.shutdown if @started
  @started = false
end
start() click to toggle source

Start the proxy. No need to do this unless you've explicitely shut it down

# File lib/inspect_request.rb, line 27
def self.start
  return if @started
  @session ||= Ritm::Session.new
  @session.start
  @started = true
  trap('INT') { Checker.shutdown }
  trap('TERM') { Checker.shutdown }
end

Public Instance Methods

configure(&block) click to toggle source

Configure proxy. It will also auto-restart the proxy

Examples

foo = InspectRequest::Checker.new
foo.configure do
  proxy[:bind_port] = 7070
end
# File lib/inspect_request.rb, line 69
def configure(&block)
  self.class.session.send(:configure, &block)
  self.class.session.shutdown
  self.class.session.start
end
fulfilled?() click to toggle source

did our verification ever fulfilled?

# File lib/inspect_request.rb, line 57
def fulfilled?
  res = @results.any? # any true?
  @results.clear
  res
end
started?() click to toggle source
# File lib/inspect_request.rb, line 42
def started?
  self.class.started
end
verify(&block) click to toggle source

block should return true/false given an req (webrick request instance)

Examples
foo.verify do |req|
  req.host == 'example.org'
end
# File lib/inspect_request.rb, line 52
def verify(&block)
  @verifier_block = block
end

Private Instance Methods

track_result(result) click to toggle source
# File lib/inspect_request.rb, line 77
def track_result(result)
  @results.push result
end