class Shokkenki::Consumer::Stubber::StubServerMiddleware

Attributes

error[RW]

Public Class Methods

new() click to toggle source
# File lib/shokkenki/consumer/stubber/stub_server_middleware.rb, line 15
def initialize
  @interactions = Interactions.new
  @middlewares = {
    %r{^#{identify_path}} => lambda(&method(:identify)),
    %r{^/shokkenki/interactions/unused} => UnusedInteractionsMiddleware.new(@interactions),
    %r{^/shokkenki/interactions} => InteractionsMiddleware.new(@interactions),
    %r{^/shokkenki/requests/unmatched} => UnmatchedRequestsMiddleware.new(@interactions),
    /.*/ => StubbedResponseMiddleware.new(@interactions)
  }
end

Public Instance Methods

call(env) click to toggle source
# File lib/shokkenki/consumer/stubber/stub_server_middleware.rb, line 26
def call env
  begin
    handler = @middlewares.find {|path, m| path.match(env['PATH_INFO']) }[1]
    handler.call env
  rescue StandardError => e
    @error = e unless @error
    raise e
  end
end
identify(env) click to toggle source
# File lib/shokkenki/consumer/stubber/stub_server_middleware.rb, line 36
def identify env
  [200, {}, [object_id.to_s]]
end
identify_path() click to toggle source
# File lib/shokkenki/consumer/stubber/stub_server_middleware.rb, line 40
def identify_path
  '/shokkenki/__identify__'
end