Class: GrapeOpenapi3::Readers::RouteReader
- Inherits:
-
Object
- Object
- GrapeOpenapi3::Readers::RouteReader
- Defined in:
- lib/grape_openapi3/readers/route_reader.rb
Overview
Reads a Grape::Router::Route and returns a plain Hash of structured data. Returns nil for hidden routes (they should be skipped).
What we read from the route:
route.request_method → http_method
route.path → path (via PathNormalizer)
route.options[:description] → summary (first arg to desc "...")
route.options[:detail] → detail (longer description)
route.options[:tags] → tags
route.options[:hidden] → hidden (skip if true)
route.options[:deprecated] → deprecated
route.options[:success] → success_entity (Grape::Entity class)
route.options[:entity] → success_entity (alias)
route.options[:is_array] → is_array
route.options[:http_codes] → failure_codes (alias: :failure)
route.options[:consumes] → consumes
route.options[:produces] → produces
route.options[:security] → security
route.params → params (path captures + declared params merged)
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(route) ⇒ RouteReader
constructor
A new instance of RouteReader.
Constructor Details
#initialize(route) ⇒ RouteReader
Returns a new instance of RouteReader.
29 30 31 |
# File 'lib/grape_openapi3/readers/route_reader.rb', line 29 def initialize(route) @route = route end |
Class Method Details
.call(route) ⇒ Object
25 26 27 |
# File 'lib/grape_openapi3/readers/route_reader.rb', line 25 def self.call(route) new(route).call end |
Instance Method Details
#call ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/grape_openapi3/readers/route_reader.rb', line 33 def call return nil if hidden? { http_method: @route.request_method.downcase, path: PathNormalizer.call(@route.path, version: route_version), summary: summary, detail: @route.[:detail], tags: Array(@route.[:tags]), deprecated: @route.[:deprecated] || false, security: @route.[:security], params: normalized_params, success_entity: success_entity, is_array: @route.[:is_array] || false, failure_codes: normalized_failure_codes, consumes: Array(@route.[:consumes]), produces: Array(@route.[:produces]), } end |