Автоматически не представляется возможным. roda
маршруты динамически оцениваются при поступлении запроса, поэтому они не загружаются до и не хранятся в какой-либо структуре данных.
documentation Как говорит:
Блок маршрут называется всякий раз, когда новый запрос приходит Он дал экземпляр подкласса Rack :: Request с некоторыми дополнительными методами для согласования маршрутов..
простое решение, которое требует минимальных усилий, чтобы использовать roda-route_list
плагин, но он нуждается поясняющий комментарий на вершине каждого маршрута в файле app.rb
, как это:
# route: /path/to/foo
# route: GET /path/to/foo
# ...
(проверить documentation для других возможностей)
Затем вы должны создать файл, содержащий JSon метаданные маршрутов, вы можете сделать это запуск сценария поставляется с roda-route_list
плагин
roda-parse_routes -f routes.json app.rb
Это создает файл routes.json
в корневом каталоге вашего приложения, и, наконец, вы можете получить список маршрутов с:
route_list # => [{:path=>'/path/to/foo', :methods=>['GET', 'POST']}]
# (it is an Array of route metadata hashes)
Вы можете также создать простую задачу грабли перечислить все маршруты, что-то вроде этого:
# Rakefile
require 'roda'
namespace :routes do
task :list do |task|
class App < Roda
plugin :route_list
puts route_list
end
end
end
может быть, есть более элегантное решение, чем этот фрагмент кода, но это работает :)
Ho Это помогает!