Zugriff auf kompilierte Routen in der Traube / Rack::Berg::Route

Ich versuche, erstellen Sie eine Liste aller Routen generiert, von meinem Unterklasse von Grape::API (MyApi).

Bekomme ich schließen, indem Sie:

MyApi.send(:route_set).instance_variable_get(:@routes)

gibt mir ein array von Rack::Berg::Route-Objekte.

Das einzige Attribut der Route-Objekt, das nützlich ist, ist :welche Voraussetzungen gibt einen Hash wie dieser:

 :path_info => (?-mix:\\A\\/api\\/(?<version>v1)\\/token(?:\\.(?<format>[^\\/]+))?\\Z)", "k: request_method, v: (?-mix:\\AGET\\Z)

Wie Sie sehen können den Wert der hash ist eine regexp für das matching der route Weg. Ich kann auch mit :named_captures zu bekommen, alle Namen erfasst von den regexp:

{:path_info=>{:version=>0, :format=>1}, :request_method=>{}}

Letztlich das, was ich bin versucht zu tun ist erstellen Sie eine Liste aller Routen, die Sie erstellt Rebsorte::API Ihre vollständigen Pfad, etc. Es macht keinen Sinn für mich zu versuchen und zu dekonstruieren, die regexp in den Bedingungen. Gibt es eine andere Möglichkeit für den Zugriff auf/Erzeugung lesbarer Pfad für Rack::Berg::Route?

InformationsquelleAutor Josh | 2011-06-11
Schreibe einen Kommentar