rubygems-update 0.8.11 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

Files changed (114) hide show
  1. data/ChangeLog +199 -1
  2. data/README +6 -4
  3. data/Rakefile +46 -14
  4. data/bin/gem +6 -0
  5. data/bin/gem_mirror +7 -1
  6. data/bin/gem_server +3 -5
  7. data/bin/gemlock +127 -0
  8. data/bin/gemri +24 -0
  9. data/bin/gemwhich +39 -11
  10. data/bin/index_gem_repository.rb +280 -0
  11. data/bin/update_rubygems +6 -0
  12. data/doc/makedoc.rb +7 -1
  13. data/examples/application/lib/somefunctionality.rb +6 -0
  14. data/lib/gemconfigure.rb +6 -0
  15. data/lib/rbconfig/datadir.rb +24 -0
  16. data/lib/rubygems.rb +90 -24
  17. data/lib/rubygems/builder.rb +6 -0
  18. data/lib/rubygems/cmd_manager.rb +36 -30
  19. data/lib/rubygems/command.rb +90 -29
  20. data/lib/rubygems/config_file.rb +45 -2
  21. data/lib/rubygems/custom_require.rb +12 -6
  22. data/lib/rubygems/dependency_list.rb +6 -0
  23. data/lib/rubygems/doc_manager.rb +79 -34
  24. data/lib/rubygems/format.rb +6 -0
  25. data/lib/rubygems/gem_commands.rb +209 -88
  26. data/lib/rubygems/gem_openssl.rb +12 -0
  27. data/lib/rubygems/gem_runner.rb +25 -10
  28. data/lib/rubygems/incremental_fetcher.rb +136 -0
  29. data/lib/rubygems/installer.rb +103 -28
  30. data/lib/rubygems/loadpath_manager.rb +6 -0
  31. data/lib/rubygems/old_format.rb +6 -0
  32. data/lib/rubygems/open-uri.rb +231 -79
  33. data/lib/rubygems/package.rb +5 -3
  34. data/lib/rubygems/remote_installer.rb +89 -52
  35. data/lib/rubygems/rubygems_version.rb +1 -1
  36. data/lib/rubygems/security.rb +6 -0
  37. data/lib/rubygems/source_index.rb +115 -52
  38. data/lib/rubygems/specification.rb +92 -76
  39. data/lib/rubygems/timer.rb +6 -0
  40. data/lib/rubygems/user_interaction.rb +88 -4
  41. data/lib/rubygems/validator.rb +6 -0
  42. data/lib/rubygems/version.rb +6 -0
  43. data/lib/ubygems.rb +6 -0
  44. data/post-install.rb +6 -0
  45. data/scripts/buildtests.rb +6 -0
  46. data/scripts/gemdoc.rb +6 -0
  47. data/scripts/runtest.rb +6 -0
  48. data/scripts/specdoc.rb +6 -0
  49. data/scripts/upload_gemdoc.rb +6 -0
  50. data/test/bogussources.rb +6 -2
  51. data/test/data/PostMessage-0.0.1.gem +0 -0
  52. data/test/data/a-0.0.1.gem +0 -0
  53. data/test/data/a-0.0.2.gem +0 -0
  54. data/test/data/b-0.0.2.gem +0 -0
  55. data/test/data/c-1.2.gem +0 -0
  56. data/test/data/gemhome/cache/a-0.0.1.gem +0 -0
  57. data/test/data/gemhome/cache/a-0.0.2.gem +0 -0
  58. data/test/data/gemhome/cache/b-0.0.2.gem +0 -0
  59. data/test/data/gemhome/cache/c-1.2.gem +0 -0
  60. data/test/data/gemhome/gems/a-0.0.1/lib/code.rb +6 -0
  61. data/test/data/gemhome/gems/a-0.0.2/lib/code.rb +6 -0
  62. data/test/data/gemhome/gems/b-0.0.2/lib/code.rb +6 -0
  63. data/test/data/gemhome/gems/c-1.2/lib/code.rb +6 -0
  64. data/test/data/gemhome/specifications/a-0.0.1.gemspec +1 -1
  65. data/test/data/gemhome/specifications/a-0.0.2.gemspec +1 -1
  66. data/test/data/gemhome/specifications/b-0.0.2.gemspec +1 -1
  67. data/test/data/gemhome/specifications/c-1.2.gemspec +1 -1
  68. data/test/data/lib/code.rb +6 -0
  69. data/test/data/one/lib/one.rb +6 -0
  70. data/test/data/one/one-0.0.1.gem +0 -0
  71. data/test/data/post_install.gemspec +19 -0
  72. data/test/fake_certlib/openssl.rb +6 -0
  73. data/test/functional.rb +15 -1
  74. data/test/functional_generate_yaml_index.rb +101 -0
  75. data/test/gemenvironment.rb +8 -0
  76. data/test/gemutilities.rb +18 -2
  77. data/test/insure_session.rb +6 -0
  78. data/test/mock/gems/gems/sources-0.0.1/lib/sources.rb +6 -0
  79. data/test/mockgemui.rb +6 -0
  80. data/test/onegem.rb +12 -0
  81. data/test/simple_gem.rb +6 -0
  82. data/test/test_builder.rb +6 -0
  83. data/test/test_cached_fetcher.rb +6 -0
  84. data/test/test_check_command.rb +6 -0
  85. data/test/test_command.rb +6 -0
  86. data/test/test_configfile.rb +6 -0
  87. data/test/test_datadir.rb +32 -0
  88. data/test/test_dependency_list.rb +6 -0
  89. data/test/test_file_list.rb +6 -0
  90. data/test/test_format.rb +6 -0
  91. data/test/test_gemloadpaths.rb +6 -0
  92. data/test/test_gempaths.rb +11 -1
  93. data/test/test_incremental_fetcher.rb +175 -0
  94. data/test/test_installer.rb +30 -3
  95. data/test/test_loadmanager.rb +6 -0
  96. data/test/test_local_cache.rb +8 -2
  97. data/test/test_package.rb +6 -0
  98. data/test/test_parse_commands.rb +8 -2
  99. data/test/test_process_commands.rb +31 -0
  100. data/test/test_remote_fetcher.rb +47 -5
  101. data/test/test_remote_installer.rb +6 -0
  102. data/test/test_require_gem.rb +6 -0
  103. data/test/test_source_index.rb +27 -0
  104. data/test/test_specific_extras.rb +6 -0
  105. data/test/test_specification.rb +30 -0
  106. data/test/test_validator.rb +6 -0
  107. data/test/test_version_comparison.rb +6 -0
  108. data/test/testgem.rc +1 -0
  109. data/test/user_capture.rb +6 -0
  110. data/test/yaml_data.rb +8 -4
  111. metadata +187 -173
  112. data/bin/generate_yaml_index.rb +0 -78
  113. data/lib/rubygems/deployment.rb +0 -267
  114. data/test/test_deployment.rb +0 -93
@@ -1,3 +1,9 @@
1
+ #--
2
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #++
6
+
1
7
  module Gem
2
8
 
3
9
  class VerificationError < Gem::Exception; end
@@ -1,3 +1,9 @@
1
+ #--
2
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #++
6
+
1
7
  module Gem
2
8
 
3
9
  ####################################################################
@@ -1,4 +1,10 @@
1
1
  # This file allows for the running of rubygems with a nice
2
2
  # command line look-and-feel: ruby -rubygems foo.rb
3
+ #--
4
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
5
+ # All rights reserved.
6
+ # See LICENSE.txt for permissions.
7
+ #++
8
+
3
9
 
4
10
  require 'rubygems'
@@ -1,3 +1,9 @@
1
+ #--
2
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #++
6
+
1
7
  def remove_stubs
2
8
  is_apparent_stub = lambda { |path|
3
9
  File.read(path, 40) =~ /^# This file was generated by RubyGems/ and
@@ -1,4 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
+ #--
3
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
+ # All rights reserved.
5
+ # See LICENSE.txt for permissions.
6
+ #++
7
+
2
8
 
3
9
  require 'fileutils'
4
10
  require 'rubygems'
@@ -1,4 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
+ #--
3
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
+ # All rights reserved.
5
+ # See LICENSE.txt for permissions.
6
+ #++
7
+
2
8
 
3
9
  require 'rubygems'
4
10
  Gem.manage_gems
@@ -1,4 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
+ #--
3
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
+ # All rights reserved.
5
+ # See LICENSE.txt for permissions.
6
+ #++
7
+
2
8
 
3
9
  require 'test/unit'
4
10
  require 'pp'
@@ -1,3 +1,9 @@
1
+ #--
2
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #++
6
+
1
7
  require 'yaml'
2
8
  require 'ostruct'
3
9
  require 'rubygems'
@@ -1,4 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
+ #--
3
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
+ # All rights reserved.
5
+ # See LICENSE.txt for permissions.
6
+ #++
7
+
2
8
 
3
9
  require 'mechanize'
4
10
  require 'fileutils'
@@ -1,5 +1,9 @@
1
- # $GEM_PATH ||= []
2
- # $GEM_PATH.unshift(File.join(File.dirname(File.expand_path(__FILE__)), "mock", "gems"))
1
+ #--
2
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #++
6
+
3
7
  require 'rubygems'
4
8
  Gem::manage_gems
5
9
  Gem.use_paths("test/mock/gems")
Binary file
Binary file
Binary file
Binary file
@@ -1 +1,7 @@
1
+ #--
2
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #++
6
+
1
7
  CODE = 1
@@ -1 +1,7 @@
1
+ #--
2
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #++
6
+
1
7
  CODE = 1
@@ -1 +1,7 @@
1
+ #--
2
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #++
6
+
1
7
  CODE = 1
@@ -1 +1,7 @@
1
+ #--
2
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #++
6
+
1
7
  CODE = 1
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{a}
3
3
  s.version = "0.0.1"
4
- s.date = %q{2005-07-13}
4
+ s.date = %q{2006-06-28}
5
5
  s.summary = %q{summary}
6
6
  s.description = %q{desc}
7
7
  s.files = ["lib/code.rb"]
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{a}
3
3
  s.version = "0.0.2"
4
- s.date = %q{2005-07-13}
4
+ s.date = %q{2006-06-28}
5
5
  s.summary = %q{summary}
6
6
  s.description = %q{desc}
7
7
  s.files = ["lib/code.rb"]
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{b}
3
3
  s.version = "0.0.2"
4
- s.date = %q{2005-07-13}
4
+ s.date = %q{2006-06-28}
5
5
  s.summary = %q{summary}
6
6
  s.description = %q{desc}
7
7
  s.files = ["lib/code.rb"]
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{c}
3
3
  s.version = "1.2"
4
- s.date = %q{2005-07-13}
4
+ s.date = %q{2006-06-28}
5
5
  s.summary = %q{summary}
6
6
  s.description = %q{desc}
7
7
  s.files = ["lib/code.rb"]
@@ -1 +1,7 @@
1
+ #--
2
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #++
6
+
1
7
  CODE = 1
@@ -1,3 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
+ #--
3
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
+ # All rights reserved.
5
+ # See LICENSE.txt for permissions.
6
+ #++
7
+
2
8
 
3
9
  ONE=1
Binary file
@@ -0,0 +1,19 @@
1
+ # -*- ruby -*-
2
+
3
+ require 'rubygems'
4
+
5
+ spec = Gem::Specification.new do |s|
6
+
7
+ s.name = 'PostMessage'
8
+ s.version = "0.0.1"
9
+ s.summary = "Test for post install messages with gems."
10
+
11
+ s.author = "Geoffrey Grosenbach"
12
+ s.email = "no@example.com"
13
+ s.post_install_message = "I am a shiny gem!"
14
+ end
15
+
16
+ if $0 == __FILE__
17
+ Gem.manage_gems
18
+ Gem::Builder.new(spec).build
19
+ end
@@ -1 +1,7 @@
1
+ #--
2
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #++
6
+
1
7
  fail LoadError, "no such file to load -- openssl"
@@ -1,4 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
+ #--
3
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
+ # All rights reserved.
5
+ # See LICENSE.txt for permissions.
6
+ #++
7
+
2
8
 
3
9
  require 'test/unit'
4
10
  require 'rubygems'
@@ -119,6 +125,14 @@ class FunctionalTest < Test::Unit::TestCase
119
125
  SIGN_FILES = %w(gem-private_key.pem gem-public_cert.pem)
120
126
 
121
127
  def test_cert_build
128
+ begin
129
+ require 'openssl'
130
+ rescue LoadError => ex
131
+ puts "WARNING: openssl is not availble, " +
132
+ "unable to test the cert functions"
133
+ return
134
+ end
135
+
122
136
  SIGN_FILES.each do |fn| FileUtils.rm_f fn end
123
137
  gem_withssl "cert --build x@y.z"
124
138
  SIGN_FILES.each do |fn|
@@ -140,7 +154,7 @@ class FunctionalTest < Test::Unit::TestCase
140
154
 
141
155
  # Run a gem command without the SSL library.
142
156
  def gem_nossl(options="")
143
- old_options = @ruby_options
157
+ old_options = @ruby_options.dup
144
158
  @ruby_options << " -Itest/fake_certlib"
145
159
  gem(options)
146
160
  ensure
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
+ # All rights reserved.
5
+ # See LICENSE.txt for permissions.
6
+ #++
7
+
8
+
9
+ require 'test/unit'
10
+ require 'fileutils'
11
+ require 'test/insure_session'
12
+ require 'test/onegem'
13
+
14
+ # ====================================================================
15
+ class TestGenerateYamlIndex < Test::Unit::TestCase
16
+
17
+ SERVER_DIR = 'test/temp/server'
18
+
19
+ def setup
20
+ @gyi_path = File.expand_path("bin/index_gem_repository.rb")
21
+ @gem_path = File.expand_path("bin/gem")
22
+ lib_path = File.expand_path("lib")
23
+ @ruby_options = "-I#{lib_path} -I."
24
+ @verbose = false
25
+ end
26
+
27
+ def test_build_gem
28
+ OneGem.make(self)
29
+ end
30
+
31
+ def test_server_dir_initialize_really_works
32
+ initialize_server_directory
33
+ assert File.exist?(srvfile("gems"))
34
+ assert File.exist?(srvfile("gems/one-0.0.1.gem"))
35
+ assert ! File.exist?(srvfile("yaml"))
36
+ assert ! File.exist?(srvfile("yaml.Z"))
37
+ assert ! File.exist?(srvfile("quick"))
38
+ end
39
+
40
+ def test_generate_old_style_index
41
+ initialize_server_directory
42
+
43
+ generate_yaml_index("--directory #{SERVER_DIR} --no-quick")
44
+
45
+ assert_equal 0, @status, "no status error"
46
+ assert File.exist?(srvfile("yaml"))
47
+ assert File.exist?(srvfile("yaml.Z"))
48
+ assert ! File.exist?(srvfile("quick"))
49
+ end
50
+
51
+ def test_generate_quick_index
52
+ initialize_server_directory
53
+
54
+ generate_yaml_index("--directory #{SERVER_DIR}")
55
+
56
+ assert_equal 0, @status, "no status error"
57
+ assert File.exist?(srvfile("yaml"))
58
+ assert File.exist?(srvfile("yaml.Z"))
59
+ assert File.exist?(srvfile("quick"))
60
+ assert File.exist?(srvfile("quick/index"))
61
+ assert File.exist?(srvfile("quick/index.rz"))
62
+ assert File.exist?(srvfile("quick/one-0.0.1.gemspec.rz"))
63
+ assert ! File.exist?(srvfile("quick/one-0.0.1.gemspec"))
64
+ end
65
+
66
+ def initialize_server_directory
67
+ FileUtils.rm_r srvfile("quick") rescue nil
68
+ FileUtils.rm_r srvfile("yaml") rescue nil
69
+ FileUtils.rm_r srvfile("yaml.Z") rescue nil
70
+ unless File.exist?(srvfile("gems"))
71
+ FileUtils.mkdir_p(srvfile("gems"))
72
+ OneGem.make(self)
73
+ FileUtils.cp OneGem::ONEGEM, srvfile("gems")
74
+ end
75
+ end
76
+
77
+ # Run the generate_yaml_index command for the functional test.
78
+ def generate_yaml_index(options="")
79
+ shell = Session::Shell.new
80
+ command = "#{Gem.ruby} #{@ruby_options} #{@gyi_path} #{options}"
81
+ puts "\n\nCOMMAND: [#{command}]" if @verbose
82
+ @out, @err = shell.execute command
83
+ @status = shell.exit_status
84
+ puts "STATUS: [#{@status}]" if @verbose
85
+ puts "OUTPUT: [#{@out}]" if @verbose
86
+ puts "ERROR: [#{@err}]" if @verbose
87
+ puts "PWD: [#{Dir.pwd}]" if @verbose
88
+ shell.close
89
+ end
90
+
91
+ # Run a gem command for the functional test.
92
+ def gem(options="")
93
+ cmd = "#{Gem.ruby} #{@ruby_options} #{@gem_path} #{options}"
94
+ system cmd
95
+ end
96
+
97
+ def srvfile(name)
98
+ File.join(SERVER_DIR, name)
99
+ end
100
+ end
101
+
@@ -1,4 +1,12 @@
1
1
  # Create a test environment for gems.
2
+ #--
3
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
+ # All rights reserved.
5
+ # See LICENSE.txt for permissions.
6
+ #++
7
+
8
+
9
+ $SAFE = 1
2
10
 
3
11
  require 'rubygems'
4
12
  require 'rubygems/installer'
@@ -1,4 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
+ #--
3
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
+ # All rights reserved.
5
+ # See LICENSE.txt for permissions.
6
+ #++
7
+
2
8
 
3
9
  require 'fileutils'
4
10
  require 'test/unit/testcase'
@@ -8,7 +14,7 @@ require 'test/yaml_data'
8
14
  module Utilities
9
15
  def make_cache_area(path, *uris)
10
16
  fn = File.join(path, 'source_cache')
11
- open(fn, 'w') do |f| f.write Marshal.dump(cache_hash(*uris)) end
17
+ open(fn, 'wb') do |f| f.write Marshal.dump(cache_hash(*uris)) end
12
18
  end
13
19
 
14
20
  extend self
@@ -16,6 +22,7 @@ end
16
22
 
17
23
  class RubyGemTestCase < Test::Unit::TestCase
18
24
  def setup
25
+ super
19
26
  @tempdir = File.join Dir.tmpdir, "test_rubygems_#{$$}"
20
27
  @gemhome = File.join @tempdir, "gemhome"
21
28
  @gemcache = File.join(@gemhome, "source_cache")
@@ -38,7 +45,7 @@ class RubyGemTestCase < Test::Unit::TestCase
38
45
  [lc.user_cache_file, 'usr'],
39
46
  ].each do |fn, data|
40
47
  FileUtils.mkdir_p File.dirname(fn)
41
- open(fn, "w") { |f| f.puts(Marshal.dump({'key' => data})) }
48
+ open(fn, "wb") { |f| f.write(Marshal.dump({'key' => data})) }
42
49
  end
43
50
  end
44
51
 
@@ -79,4 +86,13 @@ class RubyGemTestCase < Test::Unit::TestCase
79
86
  def test_stupid
80
87
  # shuts up test/unit
81
88
  end
89
+
90
+ @@win_platform = nil
91
+ def win_platform?
92
+ if @@win_platform.nil?
93
+ patterns = [/mswin/i, /mingw/i, /bccwin/i, /wince/i]
94
+ @@win_platform = patterns.find{|r| RUBY_PLATFORM =~ r} ? true : false
95
+ end
96
+ @@win_platform
97
+ end
82
98
  end