Grape::API (MyApi) のサブクラスによって生成されたすべてのルートのリストを生成しようとしています。
私は呼び出すことで近づくことができます:
MyApi.send(:route_set).instance_variable_get(:@routes)
Rack::Mount::Route オブジェクトの配列が得られます。
有用な Route オブジェクトの唯一の属性は、次のようなハッシュを返す :conditions です。
:path_info => (?-mix:\\A\\/api\\/(?<version>v1)\\/token(?:\\.(?<format>[^\\/]+))?\\Z)", "k: request_method, v: (?-mix:\\AGET\\Z)
ご覧のとおり、ハッシュの値は、ルートのパスを照合するための正規表現です。:named_captures を使用して、正規表現からすべての名前付きキャプチャを取得することもできます。
{:path_info=>{:version=>0, :format=>1}, :request_method=>{}}
最終的に私がやろうとしているのは、Grape::API を介して作成されたすべてのルートのリスト、それらのフルパスなどを生成することです。条件で正規表現を分解しようとするのは意味がありません。Rack::Mount::Route の人間が読めるパスにアクセス/生成する別の方法はありますか?