class

Analyzer::Specification::Traefik

Inherits Analyzer::Specification::SpecificationEngine < Analyzer < FileHelper < Reference < Object

Constants

METHOD_ANY = "ANY"
SPLIT_RULES = Noir::TopLevelSplit::Rules.new(nest: Noir::TopLevelSplit::Nest::Paren, quotes: "", escape: Noir::TopLevelSplit::Escape::None, strip: true, empties: Noir::TopLevelSplit::Empties::DropAll, per_kind: false, clamp: true)

Traefik router rules: Host(a.com) && (PathPrefix(/x) || PathPrefix(/y)). quotes: "" is load-bearing — matcher arguments are written with backticks, single quotes and double quotes interchangeably and routinely contain unbalanced ones (Path(/it's), a regexp with a lone quote), so any quote handling at all would swallow the rest of the rule and lose every alternative after it. Only () nests; []/{} appear inside HostRegexp character classes and repetition counts, where counting them would be actively wrong. No escape handling: the replaced loop had none, and a \ in a matcher regexp is a regexp escape, not a string escape.

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