Sha256: f9b9de84a3159c7e982e1f50609b0deaa5357546d5b6e6170efb78927abcdad8

Contents?: true

Size: 903 Bytes

Versions: 2

Compression:

Stored size: 903 Bytes

Contents

module Mirage
  class Server < Sinatra::Base
    # TODO write tests to check that all of these verbs are supported
    %w(get post delete put options head).each do |http_method|
      send(http_method, '/responses/*') do |name|
        body, query_string = request.body.read.to_s, request.query_string
        name = "/#{name}"

        options = {:body => body,
                   :http_method => http_method,
                   :endpoint => name,
                   :params => request.params,
                   :headers => extract_http_headers(env)}
        begin
          record = MockResponse.find(options)
        rescue ServerResponseNotFound
          record = MockResponse.find_default(options)
        end

        synchronize do
          tracked_requests(record.response_id) << request.dup
        end


        send_response(record, body, request, query_string)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mirage-4.0.0.alpha9 server/routes/responses.rb
mirage-4.0.0.alpha8 server/routes/responses.rb