Module: GrapePathHelpers::AllRoutes

Defined in:
lib/grape-path-helpers/all_routes.rb

Overview

methods to extend Grape::API’s behavior so it can get a list of routes from all APIs and decorate them with the DecoratedRoute class

Instance Method Summary collapse

Instance Method Details

#all_routesObject



13
14
15
16
# File 'lib/grape-path-helpers/all_routes.rb', line 13

def all_routes
  routes = subclasses.flat_map { |s| s.send(:prepare_routes) }
  routes.uniq { |r| r.options.merge(path: r.path) }
end

#decorated_routesObject



6
7
8
9
10
11
# File 'lib/grape-path-helpers/all_routes.rb', line 6

def decorated_routes
  # memoize so that construction of decorated routes happens once
  @decorated_routes ||= all_routes
                        .map { |r| DecoratedRoute.new(r) }
                        .sort_by { |r| -r.dynamic_path_segments.count }
end