[rubygems/rubygems] Extract Gem::BUNDLED_GEMS from Bundler
https://github.com/rubygems/rubygems/commit/e30e86aa60
This commit is contained in:
parent
8fbe7d0295
commit
979d1fa5fe
@ -29,29 +29,6 @@ unless Gem.ruby_version.to_s == RUBY_VERSION || RUBY_PATCHLEVEL == -1
|
||||
end
|
||||
|
||||
module Gem
|
||||
|
||||
BUNDLED_GEMS = {
|
||||
"rexml" => "3.0.0",
|
||||
"rss" => "3.0.0",
|
||||
"webrick" => "3.0.0",
|
||||
"matrix" => "3.1.0",
|
||||
"net-ftp" => "3.1.0",
|
||||
"net-imap" => "3.1.0",
|
||||
"net-pop" => "3.1.0",
|
||||
"net-smtp" => "3.1.0",
|
||||
"abbrev" => "3.4.0",
|
||||
"observer" => "3.4.0",
|
||||
"getoptlong" => "3.4.0",
|
||||
"resolv-replace" => "3.4.0",
|
||||
"rinda" => "3.4.0",
|
||||
"nkf" => "3.4.0",
|
||||
"syslog" => "3.4.0",
|
||||
"drb" => "3.4.0",
|
||||
"mutex_m" => "3.4.0",
|
||||
"csv" => "3.4.0",
|
||||
"base64" => "3.4.0"
|
||||
}.freeze
|
||||
|
||||
class Specification
|
||||
include ::Bundler::MatchMetadata
|
||||
include ::Bundler::MatchPlatform
|
||||
|
@ -1,6 +1,10 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubygems" unless defined?(Gem)
|
||||
begin
|
||||
require "bundled_gems" unless defined?(Gem::BUNDLED_GEMS)
|
||||
rescue LoadError
|
||||
end
|
||||
|
||||
module Bundler
|
||||
class RubygemsIntegration
|
||||
@ -225,6 +229,20 @@ module Bundler
|
||||
end
|
||||
end
|
||||
|
||||
def reverse_rubygems_kernel_mixin
|
||||
# Disable rubygems' gem activation system
|
||||
if Gem.respond_to?(:discover_gems_on_require=)
|
||||
Gem.discover_gems_on_require = false
|
||||
else
|
||||
kernel = (class << ::Kernel; self; end)
|
||||
[kernel, ::Kernel].each do |k|
|
||||
if k.private_method_defined?(:gem_original_require)
|
||||
redefine_method(k, :require, k.instance_method(:gem_original_require))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def replace_require(specs)
|
||||
return if [::Kernel.singleton_class, ::Kernel].any?{|klass| klass.respond_to?(:no_warning_require)}
|
||||
|
||||
@ -370,7 +388,11 @@ module Bundler
|
||||
def replace_entrypoints(specs)
|
||||
specs_by_name = add_default_gems_to(specs)
|
||||
|
||||
replace_require(specs)
|
||||
if defined?(::Gem::BUNDLED_GEMS)
|
||||
replace_require(specs)
|
||||
else
|
||||
reverse_rubygems_kernel_mixin
|
||||
end
|
||||
replace_gem(specs, specs_by_name)
|
||||
stub_rubygems(specs)
|
||||
replace_bin_path(specs_by_name)
|
||||
|
@ -1566,7 +1566,12 @@ end
|
||||
gem "rack"
|
||||
G
|
||||
|
||||
|
||||
ruby <<-R
|
||||
module Gem
|
||||
remove_const :BUNDLED_GEMS if defined?(BUNDLED_GEMS)
|
||||
BUNDLED_GEMS = { "csv" => "1.0.0" }
|
||||
end
|
||||
require 'bundler/setup'
|
||||
require 'csv'
|
||||
R
|
||||
@ -1585,6 +1590,10 @@ end
|
||||
G
|
||||
|
||||
ruby <<-R
|
||||
module Gem
|
||||
remove_const :BUNDLED_GEMS if defined?(BUNDLED_GEMS)
|
||||
BUNDLED_GEMS = { "csv" => "1.0.0" }
|
||||
end
|
||||
require 'csv'
|
||||
require 'bundler/setup'
|
||||
require 'csv'
|
||||
@ -1604,6 +1613,10 @@ end
|
||||
G
|
||||
|
||||
ruby <<-R
|
||||
module Gem
|
||||
remove_const :BUNDLED_GEMS if defined?(BUNDLED_GEMS)
|
||||
BUNDLED_GEMS = { "csv" => "1.0.0" }
|
||||
end
|
||||
require 'bundler/setup'
|
||||
require 'csv'
|
||||
R
|
||||
@ -1625,6 +1638,10 @@ end
|
||||
G
|
||||
|
||||
ruby <<-R
|
||||
module Gem
|
||||
remove_const :BUNDLED_GEMS if defined?(BUNDLED_GEMS)
|
||||
BUNDLED_GEMS = { "csv" => "1.0.0", "net-imap" => "0.0.1" }
|
||||
end
|
||||
require 'bundler/setup'
|
||||
begin
|
||||
require 'net/imap'
|
||||
|
Loading…
x
Reference in New Issue
Block a user