So erhalten Sie eine Liste aller Routen in einem Sinatra-app?
Sagen, ich habe:
require 'sinatra'
get '/' { "hi" }
get '/a' { "a" }
get '/b' { "b" }
Gibt es eine einfache Möglichkeit um eine Liste aller definierten Routen in mein Sinatra-Anwendung?
Untersuchte ich Sinatra::Base.routes
, aber das scheint nicht zu enthalten, die Routen, die ich gerade definiert haben.
War ich in der Hoffnung, ein schöner Weg, um eine selbst-Dokumentation API wie routes.each { |r| p r }
zu bekommen:
/
/a
/b
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie untersuchen
Sinatra::Application.routes
werden, enthält, die Ihre Routen. Dies druckt die regulären Ausdrücke von Ihrer route-Muster:Dinge einfacher machen, nehmen Blick auf die sinatra-advanced-Routen Erweiterung. Es gibt Ihnen eine schöne API für introspecting den Routen:
Sehen die README der sinatra-advanced-Routen für die weitere Dokumentation und Beispiele.
Hier ist ein rake-task zur Ausgabe einer Liste der Routen:
Ausgabe: