Class: FiberAudit::Static::CallSiteExtractor
- Inherits:
-
Object
- Object
- FiberAudit::Static::CallSiteExtractor
- Defined in:
- lib/fiber_audit/static/call_site_extractor.rb
Overview
Extracts CallSite objects from Ruby source files using Prism. Performs single-pass parsing per file with receiver inference.
Defined Under Namespace
Classes: ASTVisitor, ParseError, Result
Constant Summary collapse
- WELL_KNOWN_CONSTANTS =
Well-known constants that can be resolved without semantic index
%w[ Kernel Open3 IO Process Thread Mutex ConditionVariable Monitor MonitorMixin TCPSocket TCPServer UDPSocket UNIXSocket UNIXServer Socket IPSocket Net::HTTP URI OpenURI ActiveSupport::CurrentAttributes File Dir Pathname Redis Net::SMTP Net::FTP Net::IMAP ].to_set.freeze
Instance Method Summary collapse
-
#call ⇒ Object
Extract call sites from all files.
-
#initialize(files:, semantic_index: nil) ⇒ CallSiteExtractor
constructor
A new instance of CallSiteExtractor.
Constructor Details
#initialize(files:, semantic_index: nil) ⇒ CallSiteExtractor
Returns a new instance of CallSiteExtractor.
48 49 50 51 |
# File 'lib/fiber_audit/static/call_site_extractor.rb', line 48 def initialize(files:, semantic_index: nil) @files = Array(files) @sem = semantic_index end |
Instance Method Details
#call ⇒ Object
Extract call sites from all files. Returns Result. Never raises; collects parse errors per file. Maintains deterministic order: files processed in provided order.
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/fiber_audit/static/call_site_extractor.rb', line 56 def call call_sites = [] parse_errors = [] @files.each do |file_path| extract_from_file(file_path, call_sites, parse_errors) end Result.new(call_sites: call_sites, parse_errors: parse_errors) end |