module Xenon::Routing::RouteDirectives

Public Instance Methods

complete(status, body) click to toggle source
# File lib/xenon/routing/route_directives.rb, line 21
def complete(status, body)
  map_response complete: true, status: Rack::Utils.status_code(status), body: body do
    throw :complete
  end
end
extract(lambda) { |call| ... } click to toggle source
# File lib/xenon/routing/route_directives.rb, line 41
def extract(lambda)
  yield lambda.call(context)
end
extract_request(lambda = nil) { |lambda ? call: request| ... } click to toggle source
# File lib/xenon/routing/route_directives.rb, line 45
def extract_request(lambda = nil)
  yield lambda ? lambda.call(context.request) : context.request
end
fail(status, developer_message = nil) click to toggle source
# File lib/xenon/routing/route_directives.rb, line 33
def fail(status, developer_message = nil)
  body = {
    status: status,
    developer_message: developer_message || Rack::Utils::HTTP_STATUS_CODES[status]
  }
  complete status, body
end
map_request(map) { || ... } click to toggle source
# File lib/xenon/routing/route_directives.rb, line 7
def map_request(map)
  context.branch do
    context.request = map.respond_to?(:call) ? map.call(context.request) : context.request.copy(map)
    yield
  end
end
map_response(map) { || ... } click to toggle source
# File lib/xenon/routing/route_directives.rb, line 14
def map_response(map)
  context.branch do
    context.response = map.respond_to?(:call) ? map.call(context.response) : context.response.copy(map)
    yield
  end
end
reject(rejection, info = {}) click to toggle source
# File lib/xenon/routing/route_directives.rb, line 27
def reject(rejection, info = {})
  return if rejection.nil?
  rejection = Rejection.new(rejection, info) unless rejection.is_a?(Rejection)
  context.rejections << rejection
end