class

Analyzer::Go::Gf

Inherits Analyzer::Go::GoEngine < Analyzer::Go::GoTestPath < Analyzer < FileHelper < Reference < Object

Constants

BOUND_CTOR = /\A(?:(\w+)\.)?(\w+)\s*\(\s*\)\z/

pkg.NewCtrl(): a bound controller constructor.

BOUND_LITERAL = /\A&?\s*(?:new\(\s*)?(?:(\w+)\.)?(\w+)\s*(?:\{|\)\z)/

&Ctrl{}, pkg.Ctrl{}, new(Ctrl): a bound controller value.

IMPORT_MARKER = "github.com/gogf/gf"
IMPORT_MARKER_RE = Regex.union(IMPORT_MARKER)

One precompiled matcher instead of a String#includes? scan per .go file: includes? runs Rabin-Karp over the whole buffer and the marker is absent in the overwhelming majority of files in a polyglot repo, so every one of them pays the full scan. See Analyzer#content_matches?.

Class methods

tech_name
Source

Instance methods

analyze
Source
get_param(line : String) : Param
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