class RBS::Repository::GemRBS
Attributes
Public Class Methods
(name: String) → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/repository.rb, line 11 def initialize(name:) @name = name @paths = [] @versions = nil end
Public Instance Methods
() → bool
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/repository.rb, line 64 def empty? versions.empty? end
Returns true if versions is empty.
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/repository.rb, line 59 def find_best_version(version) best_version = Repository.find_best_version(version, version_names) versions[best_version] end
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/repository.rb, line 54 def latest_version latest = version_names.last or raise versions[latest] or raise end
() → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/repository.rb, line 22 def load! @versions = {} versions = @versions or raise paths.each do |gem_path| gem_path.each_child(false) do |child| next unless Gem::Version.correct?(child.to_s) if version = Gem::Version.create(child.to_s) unless version.prerelease? path = gem_path + child if prev = versions[version] RBS.logger.info { "Overwriting gem RBS in repository: gem=#{name}, prev_path=#{prev.path}, new_path=#{path}" } end versions[version] = VersionPath.new(gem: self, version: version, path: path) end end end end end
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/repository.rb, line 49 def oldest_version oldest = version_names.first or raise versions[oldest] or raise end
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/repository.rb, line 45 def version_names versions.keys.sort_by(&:version) end
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/repository.rb, line 17 def versions load! unless @versions @versions or raise end
Hash from a version to VersionPath object.