class
Analyzer::Go::Chi
- Analyzer::Go::Chi
- Analyzer
- Reference
- Object
Defined in:
analyzer/analyzers/go/chi.crConstant Summary
-
IMPORT_MARKER =
"github.com/go-chi/chi" -
Go enforces per-file imports, so any file using chi's router types must mention the package path. Filter on this marker to avoid touching the bulk of files in projects whose detection matched on a single dummy/fixture file (the chi extractor is loose enough that another framework's verb calls would otherwise surface as chi routes).
-
IMPORT_MARKER_RE =
Regex.union(IMPORT_MARKER) -
Whole-file gates, run on every
.goin the tree. -
MOUNT_CALL_RE =
/\.Mount\(/
Class Method Summary
Instance Method Summary
- #analyze
-
#analyze_router_function(file_path : String, func_name : String, package_files : Hash(String, Array(String)) | Nil = nil, file_contents_cache : Hash(String, String) | Nil = nil, file_lines_cache : Hash(String, Array(String)) | Nil = nil, recv_type : String | Nil = nil) : Array(Endpoint)
Extracts endpoints from a router function definition, searching across all .go files in the same directory (Go package) if not found in the given file.
- #get_param(line : String, pattern : String) : Param
Instance methods inherited from class Analyzer
analyze
analyze,
base_path : String
base_path,
base_paths : Array(String)
base_paths,
base_relative_path(path : String) : String
base_relative_path,
callees_needed? : Bool
callees_needed?,
content_matches?(content : String, markers : Regex) : Bool
content_matches?,
http_header_name(name : String) : String | Nil
http_header_name,
line_number_for_index(content : String, char_index : Int32) : Int32
line_number_for_index,
logger : NoirLogger
logger,
parallel_analyze(files : Array(String), &block : String -> Nil)
parallel_analyze,
read_file_content(path : String) : String
read_file_content,
result : Array(Endpoint)
result,
unique_params(params : Array(Param)) : Array(Param)
unique_params,
url : String
url,
web_root_path(path : String, markers : Array(String)) : String
web_root_path
Constructor methods inherited from class Analyzer
new(options : Hash(String, YAML::Any))
new
Macros inherited from class Analyzer
analyzer_for(tech)
analyzer_for
Instance methods inherited from module FileHelper
all_files : Array(String)
all_files,
get_files_by_basename(basename : String) : Array(String)
get_files_by_basename,
get_files_by_extension(extension : String) : Array(String)
get_files_by_extension,
get_files_by_extensions(extensions : Array(String)) : Array(String)
get_files_by_extensions,
get_files_by_prefix(prefix : String) : Array(String)
get_files_by_prefix,
get_files_by_prefix_and_extension(prefix : String, extension : String) : Array(String)
get_files_by_prefix_and_extension,
get_files_by_relative_path(relative_path : String, root : String = "") : Array(String)
get_files_by_relative_path,
get_public_dir_files(base_path : String, folder : String) : Array(String)
get_public_dir_files,
get_public_files(base_path : String, anchors : Array(String) = ["shard.yml", "Gemfile"]) : Array(String)
get_public_files,
walked_path(expanded : String) : String
walked_path
Class Method Detail
Instance Method Detail
Extracts endpoints from a router function definition, searching across all .go files in the same directory (Go package) if not found in the given file.
Uses the tree-sitter walker too, but scoped down to just the target
function's declaration so the returned routes are relative to the
function body — caller slaps on the Mount prefix. When recv_type
is given, the target is a method (func (r Type) Name()) and only
the declaration on that receiver type is matched.