class

Analyzer::Cfml::Fw1

Inherits Analyzer::Cfml::CfmlEngine < Analyzer < FileHelper < Reference < Object

FW/1 (Framework One) routing.

Routes live in Application.cfc as an array of single-key structs, where the key is an optional $METHOD followed by the pattern:

variables.framework = {
    routes = [
        { "$GET/todo/:id"    = "/main/get/id/:id" },
        { "$DELETE/todo/:id" = "/main/delete/id/:id" },
        { "$POST/todo/"      = "/main/save" },
        { 'hint' = 'Resource Routes', '$RESOURCES' = 'dogs' }
    ]
};

A key with no $ prefix answers every method. hint is a label the framework skips, not a route.

Constants

ALL_METHODS = ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]

A key with no $ prefix, or an explicit $*, answers every method.

METHOD_PREFIX_RE = /\A\$([A-Za-z*]+)/

$METHOD prefix on the pattern. $* means every method.

NON_ROUTE_KEYS = Set {"hint"}

hint labels the entry rather than declaring a route. Only keys FW/1's own sources use as labels belong here — skipping a key the framework does treat as a pattern is a silent false negative.

RESOURCE_TEMPLATES = [{["GET"], "", false}, {["GET"], "/new", false}, {["POST"], "", false}, {["GET"], "", true}, {["PUT", "PATCH"], "", true}, {["DELETE"], "", true}]

framework/one.cfc defines these as resourceRouteTemplates. Note there is no edit route — FW/1 differs from Rails here.

RESOURCES_KEY = "$RESOURCES"
ROUTE_ENTRY_RE = /["']([^"']+)["']\s*[:=]\s*["']([^"']*)["']/

"$GET/todo/:id" = "/main/get/id/:id" — the value is the internal action, which is not part of the URL.

ROUTES_ARRAY_RE = /\broutes\s*[:=]\s*\[/i

Class methods

tech_name
Source

Instance methods

analyze
Source
tech

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.

Source