Class | Gem::InstallerTestCase |
In: |
lib/rubygems/installer_test_case.rb
|
Parent: | Gem::TestCase |
A test case for Gem::Installer.
# File lib/rubygems/installer_test_case.rb, line 57 57: def setup 58: super 59: 60: @spec = quick_gem 'a' 61: 62: @gem = File.join @tempdir, @spec.file_name 63: 64: @installer = util_installer @spec, @gem, @gemhome 65: 66: @user_spec = quick_gem 'b' 67: @user_gem = File.join @tempdir, @user_spec.file_name 68: 69: @user_installer = util_installer @user_spec, @user_gem, Gem.user_dir 70: @user_installer.gem_dir = File.join(Gem.user_dir, 'gems', 71: @user_spec.full_name) 72: end
# File lib/rubygems/installer_test_case.rb, line 74 74: def util_gem_bindir(version = '2') 75: File.join util_gem_dir(version), "bin" 76: end
# File lib/rubygems/installer_test_case.rb, line 78 78: def util_gem_dir(version = '2') 79: File.join @gemhome, "gems", "a-#{version}" # HACK 80: end
# File lib/rubygems/installer_test_case.rb, line 82 82: def util_inst_bindir 83: File.join @gemhome, "bin" 84: end
# File lib/rubygems/installer_test_case.rb, line 123 123: def util_installer(spec, gem_path, gem_home) 124: util_build_gem spec 125: FileUtils.mv File.join(@gemhome, 'cache', spec.file_name), 126: @tempdir 127: 128: installer = Gem::Installer.new gem_path 129: installer.gem_dir = util_gem_dir 130: installer.gem_home = gem_home 131: installer.spec = spec 132: 133: installer 134: end
# File lib/rubygems/installer_test_case.rb, line 86 86: def util_make_exec(version = '2', shebang = "#!/usr/bin/ruby") 87: @spec.executables = ["my_exec"] 88: 89: FileUtils.mkdir_p util_gem_bindir(version) 90: exec_path = File.join util_gem_bindir(version), "my_exec" 91: File.open exec_path, 'w' do |f| 92: f.puts shebang 93: end 94: end
# File lib/rubygems/installer_test_case.rb, line 96 96: def util_setup_gem(ui = @ui) # HACK fix use_ui to make this automatic 97: @spec.files = File.join('lib', 'code.rb') 98: @spec.executables << 'executable' 99: @spec.extensions << File.join('ext', 'a', 'mkrf_conf.rb') 100: 101: Dir.chdir @tempdir do 102: FileUtils.mkdir_p 'bin' 103: FileUtils.mkdir_p 'lib' 104: FileUtils.mkdir_p File.join('ext', 'a') 105: File.open File.join('bin', 'executable'), 'w' do |f| f.puts '1' end 106: File.open File.join('lib', 'code.rb'), 'w' do |f| f.puts '1' end 107: File.open File.join('ext', 'a', 'mkrf_conf.rb'), 'w' do |f| 108: f << "File.open 'Rakefile', 'w' do |rf| rf.puts \"task :default\" end\n" 109: end 110: 111: use_ui ui do 112: FileUtils.rm @gem 113: Gem::Builder.new(@spec).build 114: end 115: end 116: 117: @installer = Gem::Installer.new @gem 118: end