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, collapse_object_generics: false) ⇒ void

Initialize

Parameters:

  • rbi_dirs (Array<String>)

    directories scanned recursively for

  • collapse_generics (Boolean) (defaults to: false)

    whether generic container types

  • collapse_object_generics (Boolean) (defaults to: false)

    collapse Object generics



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

def initialize(rbi_dirs:, collapse_generics: false, collapse_object_generics: false)
  super(collapse_generics: collapse_generics, collapse_object_generics: collapse_object_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