Class: Chiridion::Engine::GeneratedRbsLoader
- Inherits:
-
Object
- Object
- Chiridion::Engine::GeneratedRbsLoader
- Defined in:
- lib/chiridion/engine/generated_rbs_loader.rb
Overview
Comprehensive loader for RBS::Inline-generated .rbs files.
Unlike the simpler RbsLoader, this extracts ALL available information from generated RBS files:
-
Method signatures with parameter types and return types
-
Instance variable declarations (@name: Type)
-
Attribute declarations (attr_reader name: Type)
-
Type aliases (type name = definition)
-
Class/module structure with comments
The generated RBS files are authoritative - they’ve been properly parsed by rbs-inline from the source annotations. We just need to read them.
Defined Under Namespace
Classes: Result
Instance Method Summary collapse
-
#initialize(verbose: false, logger: nil) ⇒ GeneratedRbsLoader
constructor
A new instance of GeneratedRbsLoader.
-
#load(rbs_dir) ⇒ Result
Load all data from generated RBS directory.
Constructor Details
#initialize(verbose: false, logger: nil) ⇒ GeneratedRbsLoader
Returns a new instance of GeneratedRbsLoader.
34 35 36 37 |
# File 'lib/chiridion/engine/generated_rbs_loader.rb', line 34 def initialize(verbose: false, logger: nil) @verbose = verbose @logger = logger end |
Instance Method Details
#load(rbs_dir) ⇒ Result
Load all data from generated RBS directory.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/chiridion/engine/generated_rbs_loader.rb', line 43 def load(rbs_dir) signatures = {} ivars = {} attrs = {} type_aliases = {} overloads = {} return empty_result unless rbs_dir && Dir.exist?(rbs_dir) rbs_files = Dir.glob(File.join(rbs_dir, "**/*.rbs")) rbs_files.each do |file| parse_file(file, signatures, ivars, attrs, type_aliases, overloads) end log_stats(signatures, ivars, attrs, type_aliases) if @verbose Result.new( signatures: signatures, ivars: ivars, attrs: attrs, type_aliases: type_aliases, overloads: overloads ) end |