1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[bundler/bundler] Extract yet another helper method

https://github.com/bundler/bundler/commit/948a863bd8
This commit is contained in:
David Rodríguez 2019-08-15 18:58:07 +02:00 committed by Hiroshi SHIBATA
parent 4318405609
commit a2d7c97a91
No known key found for this signature in database
GPG key ID: F9CF13417264FAC2
2 changed files with 19 additions and 20 deletions

View file

@ -225,16 +225,8 @@ RSpec.describe "The library itself" do
end
it "can still be built" do
with_root_gemspec do |gemspec|
Dir.chdir(root) { gem_command! :build, gemspec }
end
bundler_path = root.join("bundler-#{Bundler::VERSION}.gem")
begin
with_built_bundler do |_gem_path|
expect(err).to be_empty, "bundler should build as a gem without warnings, but\n#{err}"
ensure
bundler_path.rmtree
end
end

View file

@ -297,20 +297,13 @@ module Spec
options = gems.last.is_a?(Hash) ? gems.pop : {}
gem_repo = options.fetch(:gem_repo) { gem_repo1 }
gems.each do |g|
path = if g == :bundler
with_root_gemspec do |gemspec|
Dir.chdir(root) { gem_command! :build, gemspec }
end
bundler_path = root.join("bundler-#{Bundler::VERSION}.gem")
if g == :bundler
with_built_bundler {|gem_path| install_gem(gem_path) }
elsif g.to_s =~ %r{\A(?:[A-Z]:)?/.*\.gem\z}
g
install_gem(g)
else
"#{gem_repo}/gems/#{g}.gem"
install_gem("#{gem_repo}/gems/#{g}.gem")
end
install_gem(path)
bundler_path && bundler_path.rmtree
end
end
@ -320,6 +313,20 @@ module Spec
gem_command! :install, "--no-document --ignore-dependencies '#{path}'"
end
def with_built_bundler
with_root_gemspec do |gemspec|
Dir.chdir(root) { gem_command! :build, gemspec.to_s }
end
bundler_path = root + "bundler-#{Bundler::VERSION}.gem"
begin
yield(bundler_path)
ensure
bundler_path.rmtree
end
end
def with_gem_path_as(path)
backup = ENV.to_hash
ENV["GEM_HOME"] = path.to_s