class RBS::Repository
Constants
- DEFAULT_STDLIB_ROOT
- VersionPath
Attributes
dirs[R]
gems[R]
Public Class Methods
default()
click to toggle source
# File rbs-1.4.0/lib/rbs/repository.rb, line 86 def self.default new().tap do |repo| repo.add(DEFAULT_STDLIB_ROOT) end end
new(no_stdlib: false)
click to toggle source
# File rbs-1.4.0/lib/rbs/repository.rb, line 77 def initialize(no_stdlib: false) @dirs = [] @gems = {} unless no_stdlib add(DEFAULT_STDLIB_ROOT) end end
Public Instance Methods
add(dir)
click to toggle source
# File rbs-1.4.0/lib/rbs/repository.rb, line 92 def add(dir) dirs << dir dir.each_child(false) do |child| gem_name = child.to_s gem_rbs = (gems[gem_name] ||= GemRBS.new(name: gem_name)) gem_rbs.paths << dir + child end end
lookup(gem, version)
click to toggle source
# File rbs-1.4.0/lib/rbs/repository.rb, line 102 def lookup(gem, version) _, set = lookup_path(gem, version) set&.path end
lookup_path(gem, version)
click to toggle source
# File rbs-1.4.0/lib/rbs/repository.rb, line 107 def lookup_path(gem, version) if gem_rbs = gems[gem] unless gem_rbs.empty? set = if v = Gem::Version.create(version)&.release gem_rbs.find_best_version(v) else gem_rbs.latest_version end [gem_rbs, set] end end end