class RBS::Repository
Constants
- DEFAULT_STDLIB_ROOT
- VersionPath
Attributes
Public Class Methods
Source
# File bundled-src/rbs-3.10.0/lib/rbs/repository.rb, line 83 def self.default new() end
Source
# File bundled-src/rbs-3.10.0/lib/rbs/repository.rb, line 87 def self.find_best_version(version, candidates) candidates = candidates.sort return candidates.last || raise unless version if v = candidates.reverse.bsearch {|v| v <= version ? true : false } v else candidates.first or raise end end
Source
# File bundled-src/rbs-3.10.0/lib/rbs/repository.rb, line 74 def initialize(no_stdlib: false) @dirs = [] @gems = {} unless no_stdlib add(DEFAULT_STDLIB_ROOT) end end
Public Instance Methods
Source
# File bundled-src/rbs-3.10.0/lib/rbs/repository.rb, line 98 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
Source
# File bundled-src/rbs-3.10.0/lib/rbs/repository.rb, line 108 def lookup(gem, version) _, set = lookup_path(gem, version) set&.path end
Source
# File bundled-src/rbs-3.10.0/lib/rbs/repository.rb, line 113 def lookup_path(gem, version) if gem_rbs = gems[gem] unless gem_rbs.empty? set = if version and v = Gem::Version.create(version)&.release gem_rbs.find_best_version(v) else gem_rbs.latest_version end [gem_rbs, set] end end end