class Rack::JsonSchema::Mock::RequestHandler

Public Class Methods

new(app: nil, **args) click to toggle source

@param app [Object] Rack application

# File lib/rack/json_schema/mock.rb, line 20
def initialize(app: nil, **args)
  @app = app
  super(**args)
end

Public Instance Methods

call() click to toggle source

Returns dummy response if JSON schema is defined for the current link @return [Array] Rack response

# File lib/rack/json_schema/mock.rb, line 27
def call
  if has_link_for_current_action?
    dummy_response
  else
    @app.call(@env)
  end
end

Private Instance Methods

dummy_body() click to toggle source
# File lib/rack/json_schema/mock.rb, line 49
def dummy_body
  document = ResponseGenerator.call(schema_for_current_link)
  document = [document] if has_list_data?
  JSON.pretty_generate(document) + "\n"
end
dummy_headers() click to toggle source
# File lib/rack/json_schema/mock.rb, line 45
def dummy_headers
  { "Content-Type" => "application/json; charset=utf-8" }
end
dummy_response() click to toggle source
# File lib/rack/json_schema/mock.rb, line 37
def dummy_response
  [dummy_status, dummy_headers, [dummy_body]]
end
dummy_status() click to toggle source
# File lib/rack/json_schema/mock.rb, line 41
def dummy_status
  method == "POST" ? 201 : 200
end