class Grape::App::Doc::Endpoint
Constants
- Status
Attributes
description[R]
details[R]
failure[R]
headers[R]
namespace[R]
params[R]
raw_path[R]
request_method[R]
success[R]
version[R]
Public Class Methods
new(route, registry)
click to toggle source
# File lib/grape/app/doc/endpoint.rb, line 7 def initialize(route, registry) @request_method = route.request_method || 'GET' @version = route.version || '' @namespace = route.namespace || '' @description = route.description || '' @details = route.details || '' @raw_path = route.path @success = parse_status(route, registry, route.entity || [200, "OK"]) @failure = Array(route.http_codes).map do |item| parse_status(route, registry, item) end.compact @headers = (route.headers || {}).map do |name, opts| Grape::App::Doc::Header.new(name, opts) end @params = (route.params || {}).map do |name, opts| Grape::App::Doc::Parameter.new(name, opts) if opts.is_a?(Hash) end.compact end
Public Instance Methods
path()
click to toggle source
@return [String] friendly path string
# File lib/grape/app/doc/endpoint.rb, line 29 def path @path ||= raw_path.sub(':version', version).sub(/\(\.[^\)]+$/, '') end
resource()
click to toggle source
@return [String] extracted the resource name
# File lib/grape/app/doc/endpoint.rb, line 34 def resource namespace.split('/').last || raw_path.split('/:version').last.match('\/(\w*?)[\.\/\(]').captures.first end
Private Instance Methods
parse_status(route, registry, item)
click to toggle source
# File lib/grape/app/doc/endpoint.rb, line 41 def parse_status(route, registry, item) if item.is_a?(Array) && item.size > 1 code, desc, entity = item code = Rack::Utils::SYMBOL_TO_STATUS_CODE[code] if code.is_a?(Symbol) Status.new(code, desc, registry.register(entity)) elsif item.is_a?(Class) && item <= Grape::Entity Status.new(200, "OK", registry.register(item)) else Grape::App::Doc.doc_error("route #{route} contains an invalid definition #{item.inspect}") nil end end