class Pact::MockService::ControlServer::Delegator

def call env

def call env
  return NOT_FOUND_RESPONSE unless consumer_and_provider_headers_match?(env)
  delegate env
end

def consumer_and_provider_headers_match? env

def consumer_and_provider_headers_match? env
  env[HTTP_X_PACT_CONSUMER] == @consumer_name && env[HTTP_X_PACT_PROVIDER] == @provider_name
end

def delegate env

def delegate env
  @app.call(env.merge(PACT_MOCK_SERVICE_HEADER))
end

def initialize app, consumer_name, provider_name

def initialize app, consumer_name, provider_name
  @app = app
  @consumer_name = consumer_name
  @provider_name = provider_name
end

def shutdown

def shutdown
  @app.shutdown
end