class Analyzer::Haskell::Scotty

Defined in:

analyzer/analyzers/haskell/scotty.cr

Constant Summary

ADDROUTE_LINE_REGEX = /^([ \t]*)(?:[A-Z][A-Za-z0-9_']*\.)?addroute\s+([A-Z]+)\s+"((?:[^"\\]|\\.)*)"(.*)$/
FORM_PARAM_REGEX = /(?<![A-Za-z0-9_'])(?:formParam|formParamMaybe|formParams)\s+"((?:[^"\\]|\\.)*)"/
HEADER_REGEX = /(?<![A-Za-z0-9_'])header\s+"((?:[^"\\]|\\.)*)"/
HTTP_VERBS = {"get" => "GET", "post" => "POST", "put" => "PUT", "patch" => "PATCH", "delete" => "DELETE", "options" => "OPTIONS", "head" => "HEAD"}
PATH_PARAM_REGEX = /(?<![A-Za-z0-9_'])(?:pathParam|pathParamMaybe)\s+"((?:[^"\\]|\\.)*)"/
QUERY_PARAM_REGEX = /(?<![A-Za-z0-9_'])(?:queryParam|queryParamMaybe|param|captureParam)\s+"((?:[^"\\]|\\.)*)"/
ROUTE_LINE_REGEX = /^([ \t]*)(?:[A-Z][A-Za-z0-9_']*\.)?(get|post|put|patch|delete|options|head)\s+"((?:[^"\\]|\\.)*)"(.*)$/
TOKEN_PATTERNS = {"jsonData" => /(?<![A-Za-z0-9_'])jsonData(?![A-Za-z0-9_'])/, "files" => /(?<![A-Za-z0-9_'])files(?![A-Za-z0-9_'])/}

Crystal recompiles an interpolated regex literal on every evaluation (a full PCRE2 JIT compile). The probed token set is fixed, so precompile the matchers once at load time.

Instance Method Summary

Instance methods inherited from class Analyzer

analyze analyze, base_path : String base_path, base_paths : Array(String) base_paths, callees_needed? : Bool callees_needed?, 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, url : String url

Constructor methods inherited from class Analyzer

new(options : Hash(String, YAML::Any)) new

Macros inherited from class Analyzer

define_getter_methods(names) define_getter_methods

Instance methods inherited from module FileHelper

all_files : Array(String) all_files, get_files_by_extension(extension : String) : Array(String) get_files_by_extension, 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_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

Instance Method Detail

def analyze #

[View source]