Class: RoutesApiSpecGenerator::RouteCollector
- Inherits:
-
Object
- Object
- RoutesApiSpecGenerator::RouteCollector
- Defined in:
- lib/routes_api_spec_generator/route_collector.rb
Instance Method Summary collapse
- #collect ⇒ Object
-
#initialize(routes:, namespace_prefix: '/api/v1', verbs: %w[GET])) ⇒ RouteCollector
constructor
A new instance of RouteCollector.
Constructor Details
#initialize(routes:, namespace_prefix: '/api/v1', verbs: %w[GET])) ⇒ RouteCollector
Returns a new instance of RouteCollector.
5 6 7 8 9 |
# File 'lib/routes_api_spec_generator/route_collector.rb', line 5 def initialize(routes:, namespace_prefix: '/api/v1', verbs: %w[GET]) @routes = routes @namespace_prefix = namespace_prefix @verbs = verbs.map(&:upcase) end |
Instance Method Details
#collect ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/routes_api_spec_generator/route_collector.rb', line 11 def collect @routes.filter_map do |route| next unless matching_route?(route) verb = primary_verb(route) next unless @verbs.include?(verb) { verb: verb, path: route.path.spec.to_s.gsub('(.:format)', ''), controller: route.defaults[:controller], action: route.defaults[:action].to_s } end.uniq { |r| [r[:path], r[:verb], r[:action]] } end |