Class Gem::InstallerTestCase
In: lib/rubygems/installer_test_case.rb
Parent: Gem::TestCase

A test case for Gem::Installer.

Methods

Public Instance methods

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # File lib/rubygems/installer_test_case.rb, line 82
82:   def util_inst_bindir
83:     File.join @gemhome, "bin"
84:   end

[Source]

     # 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

[Source]

    # 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

[Source]

     # 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

[Validate]