зеркало из https://github.com/github/ruby.git
[rubygems/rubygems] Skip warnings if bundled gems is already loaded
https://github.com/rubygems/rubygems/commit/9583a7eb82
This commit is contained in:
Родитель
422144d220
Коммит
8fbe7d0295
|
@ -233,13 +233,15 @@ module Bundler
|
|||
kernel_class.send(:define_method, :require) do |file|
|
||||
name = file.tr("/", "-")
|
||||
if (::Gem::BUNDLED_GEMS.keys - specs.to_a.map(&:name)).include?(name)
|
||||
target_file = begin
|
||||
Bundler.default_gemfile.basename
|
||||
rescue GemfileNotFound
|
||||
"inline Gemfile"
|
||||
end
|
||||
warn "#{name} is not part of the default gems since Ruby #{::Gem::BUNDLED_GEMS[file]}." \
|
||||
" Add it to your #{target_file}."
|
||||
unless $LOADED_FEATURES.any?{|f| f.end_with?("#{name}.rb", "#{name}.#{RbConfig::CONFIG['DLEXT']}")}
|
||||
target_file = begin
|
||||
Bundler.default_gemfile.basename
|
||||
rescue GemfileNotFound
|
||||
"inline Gemfile"
|
||||
end
|
||||
warn "#{name} is not part of the default gems since Ruby #{::Gem::BUNDLED_GEMS[file]}." \
|
||||
" Add it to your #{target_file}."
|
||||
end
|
||||
end
|
||||
kernel_class.send(:no_warning_require, file)
|
||||
end
|
||||
|
|
|
@ -1574,6 +1574,25 @@ end
|
|||
expect(err).to include("csv is not part of the default gems")
|
||||
end
|
||||
|
||||
it "don't warn with bundled gems when it's loaded twice" do
|
||||
build_repo4 do
|
||||
build_gem "rack"
|
||||
end
|
||||
|
||||
install_gemfile <<-G
|
||||
source "#{file_uri_for(gem_repo4)}"
|
||||
gem "rack"
|
||||
G
|
||||
|
||||
ruby <<-R
|
||||
require 'csv'
|
||||
require 'bundler/setup'
|
||||
require 'csv'
|
||||
R
|
||||
|
||||
expect(err).to be_empty
|
||||
end
|
||||
|
||||
it "don't warn with bundled gems when it's declared in Gemfile" do
|
||||
build_repo4 do
|
||||
build_gem "csv"
|
||||
|
|
Загрузка…
Ссылка в новой задаче