class Mocapi::MockResponse

Public Class Methods

load_response_map(response_map_yaml) click to toggle source
# File lib/mocapi.rb, line 8
def load_response_map(response_map_yaml)
  @response_map = YAML.load(File.read(response_map_yaml))
end
new(app = nil) click to toggle source
# File lib/mocapi.rb, line 17
def initialize(app = nil)
  @app = app
end
response_map() click to toggle source
# File lib/mocapi.rb, line 12
def response_map
  @response_map || {}
end

Public Instance Methods

call(env) click to toggle source
# File lib/mocapi.rb, line 21
def call(env)
  request = Rack::Request.new(env)

  response = if @app
    @app.call(env)
  else
    [200, {}, ['']]
  end

  if mock_response = response_map[request.path]
    [
      mock_response['status_code'],
      mock_response['headers'],
      mock_response['body']
    ]
  else
    response
  end
end

Private Instance Methods

response_map() click to toggle source
# File lib/mocapi.rb, line 43
def response_map
  @response_map ||= MockResponse.response_map
end