Analyzer::Zig::Jetzig
Inherits Analyzer < FileHelper < Reference < Object
Jetzig uses filesystem-based "resourceful" routing (Rails-style). A view
file under src/app/views/<name>.zig is mounted at /<name>, and the
public function names inside it map to a fixed (HTTP method, URL-suffix)
table:
index -> GET /<name> get -> GET /<name>/:id new -> GET /<name>/new edit -> GET /<name>/:id/edit post -> POST /<name> put -> PUT /<name>/:id patch -> PATCH /<name>/:id delete -> DELETE /<name>/:id
root.zig is special-cased to /. The view function body is the request
handler, so its 1-hop calls are surfaced as callees and params.get("…")
reads become query parameters.
Constants
action => {http method, url suffix, has resource id}
Explicit custom route registered in the app's startup hook, e.g.
app.route(.GET, "/api/products/:id", @import("app/api/products.zig"), .get);
The view module lives outside app/views/ (so resourceful routing never
sees it) and the action is named by the trailing .<action> enum literal.
Class methods
Instance methods
Instance-side view of the same declaration. The per-file rescues live on
this base class, which has no way to name the analyzer that is running
inside them, so a skipped file could not be attributed to a tech.
Deriving it from analyzer_for keeps the name written exactly once.