Class: Docscribe::Types::Sorbet::RBIProvider

Inherits:
BaseProvider show all
Defined in:
lib/docscribe/types/sorbet/rbi_provider.rb

Overview

Sorbet provider that loads signatures from RBI directories.

Each configured directory is scanned recursively for ‘.rbi` files, and any signatures that can be parsed are indexed into Docscribe’s normalized signature model.

Instance Method Summary collapse

Methods inherited from BaseProvider

#signature_for

Constructor Details

#initialize(rbi_dirs:, collapse_generics: false) ⇒ Object

Parameters:

  • rbi_dirs (Array<String>)

    directories scanned recursively for ‘.rbi` files

  • collapse_generics (Boolean) (defaults to: false)

    whether generic container types should be simplified during formatting



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/docscribe/types/sorbet/rbi_provider.rb', line 20

def initialize(rbi_dirs:, collapse_generics: false)
  super(collapse_generics: collapse_generics)

  Array(rbi_dirs).each do |dir|
    path = Pathname(dir)
    next unless path.directory?

    path.glob('**/*.rbi').sort.each do |file|
      load_from_string(file.read, label: file.to_s)
    end
  end
end