class Rack::Spec::BaseRequestHandler

Base class for providing some utility methods to handle Rack env and JSON Schema

Public Class Methods

call(**args) click to toggle source

Utility wrapper method

# File lib/rack/spec/base_request_handler.rb, line 6
def self.call(**args)
  new(**args).call
end
new(env: nil, schema: nil) click to toggle source

@param env [Hash] Rack env @param schema [JsonSchema::Schema] Schema object

# File lib/rack/spec/base_request_handler.rb, line 12
def initialize(env: nil, schema: nil)
  @env = env
  @schema = schema
end

Private Instance Methods

has_list_data?() click to toggle source

@return [true, false] True if response is intended to be list data

# File lib/rack/spec/base_request_handler.rb, line 59
def has_list_data?
  link.rel == "instances" && !link.target_schema
end
method() click to toggle source

@return [String] HTTP request method @example

method #=> "GET"
# File lib/rack/spec/base_request_handler.rb, line 28
def method
  request.request_method
end
path() click to toggle source

@return [String] Request path @example

path #=> "/recipes"
# File lib/rack/spec/base_request_handler.rb, line 35
def path
  request.path_info
end
request() click to toggle source

Treats env as a utility object to easily extract method and path @return [Rack::Request]

# File lib/rack/spec/base_request_handler.rb, line 21
def request
  @request ||= Rack::Request.new(@env)
end