Class: Yoda::Typing::Inferencer::LoadResolver
- Inherits:
-
Object
- Object
- Yoda::Typing::Inferencer::LoadResolver
- Defined in:
- lib/yoda/typing/inferencer/load_resolver.rb
Instance Attribute Summary collapse
- #project ⇒ Store::Project readonly
Instance Method Summary collapse
-
#initialize(project) ⇒ LoadResolver
constructor
A new instance of LoadResolver.
- #libraries ⇒ Object
- #resolve(path) ⇒ String?
Constructor Details
#initialize(project) ⇒ LoadResolver
Returns a new instance of LoadResolver.
9 10 11 |
# File 'lib/yoda/typing/inferencer/load_resolver.rb', line 9 def initialize(project) @project = project end |
Instance Attribute Details
#project ⇒ Store::Project (readonly)
6 7 8 |
# File 'lib/yoda/typing/inferencer/load_resolver.rb', line 6 def project @project end |
Instance Method Details
#libraries ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/yoda/typing/inferencer/load_resolver.rb', line 26 def libraries [ # In search priority order project.dependency.loadable_gems, project.dependency.std, project.dependency.core ].flatten.map { |lib| lib.with_project_connection(project: project) } end |
#resolve(path) ⇒ String?
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/yoda/typing/inferencer/load_resolver.rb', line 15 def resolve(path) path_at_project = Services::LoadablePathResolver.new.find_loadable_path(project.project_load_paths, path) return path_at_project if path_at_project found_library = libraries.find do |gem| gem.contain_requirable_file?(path) end found_library&.find_requirable_file(path) end |