parent
bd8df25cdc
commit
aeea88174d
@ -113,6 +113,10 @@ RSpec.configure do |config|
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
config.before :each, :sudo => true do
|
||||||
|
Spec::Sudo.write_safe_config
|
||||||
|
end
|
||||||
|
|
||||||
config.after :suite do
|
config.after :suite do
|
||||||
FileUtils.rm_r Spec::Path.pristine_system_gem_path
|
FileUtils.rm_r Spec::Path.pristine_system_gem_path
|
||||||
end
|
end
|
||||||
|
@ -258,6 +258,10 @@ module Spec
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def git_root
|
||||||
|
ruby_core? ? source_root : source_root.parent
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def git_ls_files(glob)
|
def git_ls_files(glob)
|
||||||
@ -278,10 +282,6 @@ module Spec
|
|||||||
ruby_core? ? "man/bundle* man/gemfile*" : "lib/bundler/man/bundle*.1 lib/bundler/man/gemfile*.5"
|
ruby_core? ? "man/bundle* man/gemfile*" : "lib/bundler/man/bundle*.1 lib/bundler/man/gemfile*.5"
|
||||||
end
|
end
|
||||||
|
|
||||||
def git_root
|
|
||||||
ruby_core? ? source_root : source_root.parent
|
|
||||||
end
|
|
||||||
|
|
||||||
def ruby_core_tarball?
|
def ruby_core_tarball?
|
||||||
!git_root.join(".git").directory?
|
!git_root.join(".git").directory?
|
||||||
end
|
end
|
||||||
|
@ -18,6 +18,12 @@ module Spec
|
|||||||
gem_load_and_activate(gem_name, bin_container)
|
gem_load_and_activate(gem_name, bin_container)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def gem_load_and_possibly_install(gem_name, bin_container)
|
||||||
|
require_relative "switch_rubygems"
|
||||||
|
|
||||||
|
gem_load_activate_and_possibly_install(gem_name, bin_container)
|
||||||
|
end
|
||||||
|
|
||||||
def gem_require(gem_name)
|
def gem_require(gem_name)
|
||||||
gem_activate(gem_name)
|
gem_activate(gem_name)
|
||||||
require gem_name
|
require gem_name
|
||||||
@ -99,9 +105,21 @@ module Spec
|
|||||||
abort "We couldn't activate #{gem_name} (#{e.requirement}). Run `gem install #{gem_name}:'#{e.requirement}'`"
|
abort "We couldn't activate #{gem_name} (#{e.requirement}). Run `gem install #{gem_name}:'#{e.requirement}'`"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def gem_load_activate_and_possibly_install(gem_name, bin_container)
|
||||||
|
gem_activate_and_possibly_install(gem_name)
|
||||||
|
load Gem.bin_path(gem_name, bin_container)
|
||||||
|
end
|
||||||
|
|
||||||
|
def gem_activate_and_possibly_install(gem_name)
|
||||||
|
gem_activate(gem_name)
|
||||||
|
rescue Gem::LoadError => e
|
||||||
|
Gem.install(gem_name, e.requirement)
|
||||||
|
retry
|
||||||
|
end
|
||||||
|
|
||||||
def gem_activate(gem_name)
|
def gem_activate(gem_name)
|
||||||
require "bundler"
|
require "bundler"
|
||||||
gem_requirement = Bundler::LockfileParser.new(File.read(dev_lockfile)).dependencies[gem_name]&.requirement
|
gem_requirement = Bundler::LockfileParser.new(File.read(dev_lockfile)).specs.find {|spec| spec.name == gem_name }.version
|
||||||
gem gem_name, gem_requirement
|
gem gem_name, gem_requirement
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -6,6 +6,10 @@ module Spec
|
|||||||
@which_sudo ||= Bundler.which("sudo")
|
@which_sudo ||= Bundler.which("sudo")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.write_safe_config
|
||||||
|
File.write(Spec::Path.tmp("gitconfig"), "[safe]\n\tdirectory = #{Spec::Path.git_root}")
|
||||||
|
end
|
||||||
|
|
||||||
def sudo(cmd)
|
def sudo(cmd)
|
||||||
raise "sudo not present" unless Sudo.present?
|
raise "sudo not present" unless Sudo.present?
|
||||||
sys_exec("sudo #{cmd}")
|
sys_exec("sudo #{cmd}")
|
||||||
|
@ -15,7 +15,7 @@ gemspec = File.expand_path('custom_name.gemspec', __dir__)
|
|||||||
|
|
||||||
Dir.mktmpdir("custom_name") do |dir|
|
Dir.mktmpdir("custom_name") do |dir|
|
||||||
built_gem = File.expand_path(File.join(dir, "custom_name.gem"))
|
built_gem = File.expand_path(File.join(dir, "custom_name.gem"))
|
||||||
system(*gem, "build", gemspec, "--output", built_gem)
|
system *gem, "build", gemspec, "--output", built_gem
|
||||||
system(*gem, "install", "--verbose", "--local", built_gem, *ARGV)
|
system *gem, "install", "--verbose", "--local", built_gem, *ARGV
|
||||||
system %q(ruby -rcustom_name -e "puts 'Result: ' + CustomName.say_hello")
|
system %q(ruby -rcustom_name -e "puts 'Result: ' + CustomName.say_hello")
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user