The local source finds gems in the current directory for fulfilling dependencies.
Local
sorts before Gem::Source
and after Gem::Source::Installed
# File ruby-3.1.2/lib/rubygems/source/local.rb, line 17 def <=>(other) case other when Gem::Source::Installed, Gem::Source::Lock then -1 when Gem::Source::Local then 0 when Gem::Source then 1 else nil end end
# File ruby-3.1.2/lib/rubygems/source/local.rb, line 80 def find_gem(gem_name, version = Gem::Requirement.default, # :nodoc: prerelease = false) load_specs :complete found = [] @specs.each do |n, data| if n.name == gem_name s = data[1].spec if version.satisfied_by?(s.version) if prerelease found << s elsif !s.version.prerelease? || version.prerelease? found << s end end end end found.max_by {|s| s.version } end