[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
|
end
|
||||||
|
|
||||||
module Gem
|
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
|
class Specification
|
||||||
include ::Bundler::MatchMetadata
|
include ::Bundler::MatchMetadata
|
||||||
include ::Bundler::MatchPlatform
|
include ::Bundler::MatchPlatform
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "rubygems" unless defined?(Gem)
|
require "rubygems" unless defined?(Gem)
|
||||||
|
begin
|
||||||
|
require "bundled_gems" unless defined?(Gem::BUNDLED_GEMS)
|
||||||
|
rescue LoadError
|
||||||
|
end
|
||||||
|
|
||||||
module Bundler
|
module Bundler
|
||||||
class RubygemsIntegration
|
class RubygemsIntegration
|
||||||
@ -225,6 +229,20 @@ module Bundler
|
|||||||
end
|
end
|
||||||
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)
|
def replace_require(specs)
|
||||||
return if [::Kernel.singleton_class, ::Kernel].any?{|klass| klass.respond_to?(:no_warning_require)}
|
return if [::Kernel.singleton_class, ::Kernel].any?{|klass| klass.respond_to?(:no_warning_require)}
|
||||||
|
|
||||||
@ -370,7 +388,11 @@ module Bundler
|
|||||||
def replace_entrypoints(specs)
|
def replace_entrypoints(specs)
|
||||||
specs_by_name = add_default_gems_to(specs)
|
specs_by_name = add_default_gems_to(specs)
|
||||||
|
|
||||||
|
if defined?(::Gem::BUNDLED_GEMS)
|
||||||
replace_require(specs)
|
replace_require(specs)
|
||||||
|
else
|
||||||
|
reverse_rubygems_kernel_mixin
|
||||||
|
end
|
||||||
replace_gem(specs, specs_by_name)
|
replace_gem(specs, specs_by_name)
|
||||||
stub_rubygems(specs)
|
stub_rubygems(specs)
|
||||||
replace_bin_path(specs_by_name)
|
replace_bin_path(specs_by_name)
|
||||||
|
@ -1566,7 +1566,12 @@ end
|
|||||||
gem "rack"
|
gem "rack"
|
||||||
G
|
G
|
||||||
|
|
||||||
|
|
||||||
ruby <<-R
|
ruby <<-R
|
||||||
|
module Gem
|
||||||
|
remove_const :BUNDLED_GEMS if defined?(BUNDLED_GEMS)
|
||||||
|
BUNDLED_GEMS = { "csv" => "1.0.0" }
|
||||||
|
end
|
||||||
require 'bundler/setup'
|
require 'bundler/setup'
|
||||||
require 'csv'
|
require 'csv'
|
||||||
R
|
R
|
||||||
@ -1585,6 +1590,10 @@ end
|
|||||||
G
|
G
|
||||||
|
|
||||||
ruby <<-R
|
ruby <<-R
|
||||||
|
module Gem
|
||||||
|
remove_const :BUNDLED_GEMS if defined?(BUNDLED_GEMS)
|
||||||
|
BUNDLED_GEMS = { "csv" => "1.0.0" }
|
||||||
|
end
|
||||||
require 'csv'
|
require 'csv'
|
||||||
require 'bundler/setup'
|
require 'bundler/setup'
|
||||||
require 'csv'
|
require 'csv'
|
||||||
@ -1604,6 +1613,10 @@ end
|
|||||||
G
|
G
|
||||||
|
|
||||||
ruby <<-R
|
ruby <<-R
|
||||||
|
module Gem
|
||||||
|
remove_const :BUNDLED_GEMS if defined?(BUNDLED_GEMS)
|
||||||
|
BUNDLED_GEMS = { "csv" => "1.0.0" }
|
||||||
|
end
|
||||||
require 'bundler/setup'
|
require 'bundler/setup'
|
||||||
require 'csv'
|
require 'csv'
|
||||||
R
|
R
|
||||||
@ -1625,6 +1638,10 @@ end
|
|||||||
G
|
G
|
||||||
|
|
||||||
ruby <<-R
|
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'
|
require 'bundler/setup'
|
||||||
begin
|
begin
|
||||||
require 'net/imap'
|
require 'net/imap'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user