~ubuntu-branches/ubuntu/quantal/ruby1.9.1/quantal

« back to all changes in this revision

Viewing changes to test/rubygems/gem_installer_test_case.rb

  • Committer: Bazaar Package Importer
  • Author(s): Lucas Nussbaum
  • Date: 2011-09-24 19:16:17 UTC
  • mfrom: (1.1.8 upstream) (13.1.7 experimental)
  • Revision ID: james.westby@ubuntu.com-20110924191617-o1qz4rcmqjot8zuy
Tags: 1.9.3~rc1-1
* New upstream release: 1.9.3 RC1.
  + Includes load.c fixes. Closes: #639959.
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
require_relative 'gemutilities'
2
 
require 'rubygems/installer'
3
 
 
4
 
class Gem::Installer
5
 
  attr_accessor :gem_dir
6
 
 
7
 
  attr_writer :format
8
 
  attr_writer :gem_home
9
 
  attr_writer :env_shebang
10
 
  attr_writer :ignore_dependencies
11
 
  attr_writer :format_executable
12
 
  attr_writer :security_policy
13
 
  attr_writer :spec
14
 
  attr_writer :wrappers
15
 
end
16
 
 
17
 
class GemInstallerTestCase < RubyGemTestCase
18
 
 
19
 
  def setup
20
 
    super
21
 
 
22
 
    @spec = quick_gem 'a'
23
 
    @gem = File.join @tempdir, @spec.file_name
24
 
 
25
 
    @installer = util_installer @spec, @gem, @gemhome
26
 
 
27
 
    @user_spec = quick_gem 'b'
28
 
    @user_gem = File.join @tempdir, @user_spec.file_name
29
 
 
30
 
    @user_installer = util_installer @user_spec, @user_gem, Gem.user_dir
31
 
    @user_installer.gem_dir = File.join(Gem.user_dir, 'gems',
32
 
                                        @user_spec.full_name)
33
 
  end
34
 
 
35
 
  def util_gem_bindir(version = '2')
36
 
    File.join util_gem_dir(version), "bin"
37
 
  end
38
 
 
39
 
  def util_gem_dir(version = '2')
40
 
    File.join @gemhome, "gems", "a-#{version}" # HACK
41
 
  end
42
 
 
43
 
  def util_inst_bindir
44
 
    File.join @gemhome, "bin"
45
 
  end
46
 
 
47
 
  def util_make_exec(version = '2', shebang = "#!/usr/bin/ruby")
48
 
    @spec.executables = ["my_exec"]
49
 
 
50
 
    FileUtils.mkdir_p util_gem_bindir(version)
51
 
    exec_path = File.join util_gem_bindir(version), "my_exec"
52
 
    File.open exec_path, 'w' do |f|
53
 
      f.puts shebang
54
 
    end
55
 
  end
56
 
 
57
 
  def util_setup_gem(ui = @ui) # HACK fix use_ui to make this automatic
58
 
    @spec.files = File.join('lib', 'code.rb')
59
 
    @spec.executables << 'executable'
60
 
    @spec.extensions << File.join('ext', 'a', 'mkrf_conf.rb')
61
 
 
62
 
    Dir.chdir @tempdir do
63
 
      FileUtils.mkdir_p 'bin'
64
 
      FileUtils.mkdir_p 'lib'
65
 
      FileUtils.mkdir_p File.join('ext', 'a')
66
 
      File.open File.join('bin', 'executable'), 'w' do |f| f.puts '1' end
67
 
      File.open File.join('lib', 'code.rb'), 'w' do |f| f.puts '1' end
68
 
      File.open File.join('ext', 'a', 'mkrf_conf.rb'), 'w' do |f|
69
 
        f << <<-EOF
70
 
          File.open 'Rakefile', 'w' do |rf| rf.puts "task :default" end
71
 
        EOF
72
 
      end
73
 
 
74
 
      use_ui ui do
75
 
        FileUtils.rm @gem
76
 
        Gem::Builder.new(@spec).build
77
 
      end
78
 
    end
79
 
 
80
 
    @installer = Gem::Installer.new @gem
81
 
  end
82
 
 
83
 
  def util_installer(spec, gem_path, gem_home)
84
 
    util_build_gem spec
85
 
    FileUtils.mv File.join(@gemhome, 'cache', spec.file_name),
86
 
                 @tempdir
87
 
 
88
 
    installer = Gem::Installer.new gem_path
89
 
    installer.gem_dir = util_gem_dir
90
 
    installer.gem_home = gem_home
91
 
    installer.spec = spec
92
 
 
93
 
    installer
94
 
  end
95
 
 
96
 
end
97