abstract class
Analyzer::Specification::SpecificationEngine
- Analyzer::Specification::SpecificationEngine
- Analyzer
- Reference
- Object
Overview
Base for the specification-format analyzers (OpenAPI, Postman, HAR, Terraform, k8s manifests, proxy exports, …).
They do not walk the file tree the way the language engines do. The
detector recognises a document and pushes its path into CodeLocator
under a key, and the analyzer later drains that key. Forty-odd
analyzers each open-coded the same drain:
locator = CodeLocator.instance
files = locator.all("some-key")
return @result unless files.is_a?(Array(String))
files.each do |path|
next unless File.exists?(path)
begin
...
rescue e
@logger.debug "..."
@logger.debug_sub e
end
end
with just enough variation between copies that some dropped the
existence check, some dropped the per-file rescue (letting one
malformed document abort every remaining file for that analyzer), and
the log wording differed everywhere. each_spec_file is that drain,
once.
Direct Known Subclasses
- Analyzer::Specification::ApacheHttpd
- Analyzer::Specification::Apisix
- Analyzer::Specification::Appwrite
- Analyzer::Specification::AsyncApi
- Analyzer::Specification::AwsCdk
- Analyzer::Specification::AwsCloudformation
- Analyzer::Specification::AzureFunctions
- Analyzer::Specification::Bruno
- Analyzer::Specification::Burp
- Analyzer::Specification::Caddy
- Analyzer::Specification::Caido
- Analyzer::Specification::CloudflareWrangler
- Analyzer::Specification::Directus
- Analyzer::Specification::Envoy
- Analyzer::Specification::GraphqlSdl
- Analyzer::Specification::Grpc
- Analyzer::Specification::Har
- Analyzer::Specification::Hasura
- Analyzer::Specification::HttpFile
- Analyzer::Specification::Insomnia
- Analyzer::Specification::IstioVirtualservice
- Analyzer::Specification::K8sGatewayApi
- Analyzer::Specification::K8sIngress
- Analyzer::Specification::Kamal
- Analyzer::Specification::Kong
- Analyzer::Specification::Mitmproxy
- Analyzer::Specification::Netlify
- Analyzer::Specification::Nginx
- Analyzer::Specification::Oas2
- Analyzer::Specification::Oas3
- Analyzer::Specification::OData
- Analyzer::Specification::OpenRpc
- Analyzer::Specification::PayloadCms
- Analyzer::Specification::Postman
- Analyzer::Specification::RAML
- Analyzer::Specification::ServerlessFramework
- Analyzer::Specification::Smithy
- Analyzer::Specification::Strapi
- Analyzer::Specification::Supabase
- Analyzer::Specification::Terraform
- Analyzer::Specification::Traefik
- Analyzer::Specification::TypeSpec
- Analyzer::Specification::Vercel
- Analyzer::Specification::WSDL
- Analyzer::Specification::ZapSitesTree
Defined in:
analyzer/engines/specification_engine.crConstant Summary
-
ABSOLUTE_SERVER_URL =
/\A[A-Za-z][A-Za-z0-9+.\-]*:\/\// -
scheme://prefix of an absolute URL.//host/pathis deliberately not matched here — it is protocol-relative and handled separately.