class
Analyzer::Ruby::Roda
- Analyzer::Ruby::Roda
- Analyzer::Ruby::RubyEngine
- Analyzer
- Reference
- Object
Defined in:
analyzer/analyzers/ruby/roda.crConstant Summary
-
HTTP_METHOD_MATCHERS =
["get", "post", "put", "delete", "patch", "head", "options"] -
RODA_VERB_BARE =
HTTP_METHOD_MATCHERS.to_h do |verb| {verb, /\br\.#{verb}\b\s*(?:do\b|\{|\/|$)/} end -
RODA_VERB_BLOCK =
HTTP_METHOD_MATCHERS.to_h do |verb| {verb, /\br\.#{verb}\s+(.+?)\s*(?:do\b\s*(?:\|([^|]*)\|)?|\{\s*(?:\|([^|]*)\|)?)/} end -
Precompile the per-verb routing-tree regexes once at load time. Crystal recompiles an interpolated regex literal on every match, so the
r.<verb>matchers used to rebuild 21 regexes for every line of every route block._BLOCK=r.get "x" do |..|/{,_STRING=r.get "path",_BARE=r.get(do/brace/slash/eol). -
RODA_VERB_STRING =
HTTP_METHOD_MATCHERS.to_h do |verb| {verb, /\br\.#{verb}\s+['"]([^'"]+)['"]/} end