In Files

  • rubygems/installer_test_case.rb

Class/Module Index [+]

Quicksearch

Gem::InstallerTestCase

A test case for Gem::Installer.

Public Instance Methods

setup() click to toggle source
 
               # File rubygems/installer_test_case.rb, line 57
def setup
  super

  @installer_tmp = File.join @tempdir, 'installer'
  FileUtils.mkdir_p @installer_tmp

  Gem.use_paths @installer_tmp
  Gem.ensure_gem_subdirectories @installer_tmp

  @spec = quick_gem 'a'
  util_make_exec @spec
  util_build_gem @spec
  @gem = @spec.cache_file

  @user_spec = quick_gem 'b'
  util_make_exec @user_spec
  util_build_gem @user_spec
  @user_gem = @user_spec.cache_file

  Gem.use_paths @gemhome

  @installer      = util_installer @spec, @gemhome
  @user_installer = util_installer @user_spec, Gem.user_dir, :user

  Gem.use_paths @gemhome
end
            
util_gem_bindir(spec = @spec) click to toggle source
 
               # File rubygems/installer_test_case.rb, line 84
def util_gem_bindir spec = @spec
  # TODO: deprecate
  spec.bin_dir
end
            
util_gem_dir(spec = @spec) click to toggle source
 
               # File rubygems/installer_test_case.rb, line 89
def util_gem_dir spec = @spec
  # TODO: deprecate
  spec.gem_dir
end
            
util_inst_bindir() click to toggle source
 
               # File rubygems/installer_test_case.rb, line 94
def util_inst_bindir
  File.join @gemhome, "bin"
end
            
util_installer(spec, gem_home, user=false) click to toggle source
 
               # File rubygems/installer_test_case.rb, line 141
def util_installer(spec, gem_home, user=false)
  Gem::Installer.new spec.cache_file, :user_install => user
end
            
util_make_exec(spec = @spec, shebang = "#!/usr/bin/ruby") click to toggle source
 
               # File rubygems/installer_test_case.rb, line 98
def util_make_exec(spec = @spec, shebang = "#!/usr/bin/ruby")
  spec.executables = %w[executable]
  spec.files << 'bin/executable'

  exec_path = spec.bin_file "executable"
  write_file exec_path do |io|
    io.puts shebang
  end

  bin_path = File.join @tempdir, "bin", "executable"
  write_file bin_path do |io|
    io.puts shebang
  end
end
            
util_setup_gem(ui = @ui) click to toggle source
 
               # File rubygems/installer_test_case.rb, line 113
def util_setup_gem(ui = @ui) # HACK fix use_ui to make this automatic
  @spec.files << File.join('lib', 'code.rb')
  @spec.extensions << File.join('ext', 'a', 'mkrf_conf.rb')

  Dir.chdir @tempdir do
    FileUtils.mkdir_p 'bin'
    FileUtils.mkdir_p 'lib'
    FileUtils.mkdir_p File.join('ext', 'a')
    File.open File.join('bin', 'executable'), 'w' do |f|
      f.puts "raise 'ran executable'"
    end
    File.open File.join('lib', 'code.rb'), 'w' do |f| f.puts '1' end
    File.open File.join('ext', 'a', 'mkrf_conf.rb'), 'w' do |f|
      f << <<-EOF
        File.open 'Rakefile', 'w' do |rf| rf.puts "task :default" end
      EOF
    end

    use_ui ui do
      FileUtils.rm @gem

      @gem = Gem::Builder.new(@spec).build
    end
  end

  @installer = Gem::Installer.new @gem
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus