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
- #complete(status, body) ⇒ Object
- #extract(lambda) {|lambda.call(context)| ... } ⇒ Object
- #extract_request(lambda = nil) {|lambda ? lambda.call(context.request) : context.request| ... } ⇒ Object
- #fail(status, developer_message = nil) ⇒ Object
- #map_request(map) ⇒ Object
- #map_response(map) ⇒ Object
- #reject(rejection, info = {}) ⇒ Object
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
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
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, = nil) body = { status: status, 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 |