Rails では、次の方法で定義したすべてのルートを表示します。
rake routes
Roda アプリでこれを行う組み込みの方法はありますか?
そうでない場合、Roda 開発者がすべてのルートをすばやく表示するために使用する一般的なパターンはありますか (おそらく、ある種の Rake タスクですか?)
自動は不可。roda
ルートはリクエストが入ったときに動的に評価されるため、事前にロードされず、どこかで利用可能なデータ構造に保存されます。
ドキュメントが言うように:
ルート ブロックは、新しいリクエストが着信するたびに呼び出されます。Rack::Request のサブクラスのインスタンスが生成され、ルートを照合するためのメソッドがいくつか追加されます。
最小限の労力で済む簡単な解決策は、プラグインを使用することですが、次のように、ファイルroda-route_list
内の各ルートの上部に説明のコメントが必要です。app.rb
# route: /path/to/foo
# route: GET /path/to/foo
# ...
(他の可能性についてはドキュメントを確認してください)
roda-route_list
次に、ルート メタデータを含む json ファイルを作成する必要があります。これを行うには、プラグインに同梱されているスクリプトを起動します。
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)
次のような単純な rake タスクを作成して、すべてのルートを一覧表示することもできます。
# Rakefile
require 'roda'
namespace :routes do
task :list do |task|
class App < Roda
plugin :route_list
puts route_list
end
end
end
このスニペットよりもエレガントな解決策があるかもしれませんが、うまくいきます:)
それが役に立てば幸い!