Module: Xenon::Routing::RouteDirectives

Included in:
Directives, HeaderDirectives, MarshallingDirectives, MethodDirectives, ParamDirectives, PathDirectives, SecurityDirectives
Defined in:
lib/xenon/routing/route_directives.rb

Instance Method Summary collapse

Instance Method Details

#complete(status, body) ⇒ Object



21
22
23
24
25
# 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) {|lambda.call(context)| ... } ⇒ Object

Yields:

  • (lambda.call(context))


41
42
43
# File 'lib/xenon/routing/route_directives.rb', line 41

def extract(lambda)
  yield lambda.call(context)
end

#extract_request(lambda = nil) {|lambda ? lambda.call(context.request) : context.request| ... } ⇒ Object

Yields:

  • (lambda ? lambda.call(context.request) : context.request)


45
46
47
# 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) ⇒ Object



33
34
35
36
37
38
39
# 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) ⇒ Object



7
8
9
10
11
12
# 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) ⇒ Object



14
15
16
17
18
19
# 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 = {}) ⇒ Object



27
28
29
30
31
# 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