class FileAnalyzer
- FileAnalyzer
- Analyzer
- Reference
- Object
Defined in:
models/analyzer.crClass Method Summary
- .add_hook(func : Proc(String, String, Array(Endpoint)), requires_url : Bool = true)
-
.url_independent_hooks? : Bool
True when at least one hook recognises endpoints from file syntax alone.
Instance Method Summary
-
#active_hooks : Array(Hook)
Hooks that can actually produce something for this scan.
- #analyze
- #hooks_count
-
#tech : String
Not registered through
analyzer_for— the FileAnalyzer runs outside the tech registry — but its per-file rescue needs a name to report a skipped file under, and an empty one renders as": skipped 1 file…".
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,
tech : String
tech,
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
True when at least one hook recognises endpoints from file syntax
alone. noir scan consults this before giving up on a code base the
detector found no technologies in: with no techs and no
url-independent hook there is genuinely nothing left to analyze, but
with one there still is.
Instance Method Detail
Hooks that can actually produce something for this scan.
Not registered through analyzer_for — the FileAnalyzer runs outside the
tech registry — but its per-file rescue needs a name to report a skipped
file under, and an empty one renders as ": skipped 1 file…".