lib/bundler/source/metadata.rb
# frozen_string_literal: true module Bundler class Source class Metadata < Source def specs @specs ||= Index.build do |idx| idx << Gem::Specification.new("Ruby\0", Bundler::RubyVersion.system.gem_version) idx << Gem::Specification.new("RubyGems\0", Gem::VERSION) do |s| s.required_rubygems_version = Gem::Requirement.default end if local_spec = Gem.loaded_specs["bundler"] raise CorruptBundlerInstallError.new(local_spec) if local_spec.version.to_s != Bundler::VERSION idx << local_spec else idx << Gem::Specification.new do |s| s.name = "bundler" s.version = VERSION s.license = "MIT" s.platform = Gem::Platform::RUBY s.authors = ["bundler team"] s.bindir = "exe" s.homepage = "https://bundler.io" s.summary = "The best way to manage your application's dependencies" s.executables = %w[bundle] # can't point to the actual gemspec or else the require paths will be wrong s.loaded_from = __dir__ end end idx.each {|s| s.source = self } end end def options {} end def install(spec, _opts = {}) print_using_message "Using #{version_message(spec)}" nil end def to_s "the local ruby installation" end def ==(other) self.class == other.class end alias_method :eql?, :== def hash self.class.hash end def version_message(spec) "#{spec.name} #{spec.version}" end end end end