/** * @fileoverview Ruby Language Extractor * @module @nahisaho/musubix-security/extractors/ruby-extractor * @trace TSK-023, TSK-024 * @trace REQ-SEC-LANG-005, REQ-SEC-CFG-001, REQ-SEC-DFG-001 */ import { BaseExtractor, type ASTNode, type ASTEdge, type DataFlowGraph, type ControlFlowGraph, type SymbolTable, type FrameworkModel, type SupportedLanguage } from './base-extractor.js'; /** * Ruby Language Extractor * @trace TSK-023 */ export declare class RubyExtractor extends BaseExtractor { readonly language: SupportedLanguage; readonly extensions: string[]; private parser; private tree; private nodeIdCounter; private blockIdCounter; /** * Get framework models for Ruby */ getFrameworkModels(): FrameworkModel[]; /** * Initialize tree-sitter parser */ private initParser; /** * Build AST from source code */ protected buildAST(source: string, filePath: string): Promise<{ ast: ASTNode; astNodes: Map; astEdges: ASTEdge[]; }>; /** * Convert tree-sitter node to AST format */ private convertTreeSitterNode; /** * Extract properties from node */ private extractNodeProperties; /** * Create fallback AST when tree-sitter is unavailable */ private createFallbackAST; /** * Build Data Flow Graph */ protected buildDFG(astNodes: Map, _astEdges: ASTEdge[], frameworkModels: FrameworkModel[]): Promise; /** * Build Control Flow Graph */ protected buildCFG(astNodes: Map, _astEdges: ASTEdge[]): Promise; /** * Extract symbols from AST */ protected extractSymbols(astNodes: Map): Promise; } /** * Create Ruby extractor instance */ export declare function createRubyExtractor(): RubyExtractor; //# sourceMappingURL=ruby-extractor.d.ts.map