rubygems-update 1.8.16 → 1.8.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

@@ -1,5 +1,20 @@
1
1
  # coding: UTF-8
2
2
 
3
+ === 1.8.17 / 2012-02-17
4
+
5
+ * 2 minor enhancements:
6
+
7
+ * Add MacRuby to the list of special cases for platforms (ferrous26)
8
+ * Add a default for where to install rubygems itself
9
+
10
+ * 3 bug fixes:
11
+
12
+ * Fixed gem loading issue caused by dependencies not resolving.
13
+ * Fixed umask error when stdlib is required and unresolved dependencies exist.
14
+ * Shebang munging would only take one arg after the cmd
15
+ * Define SUCKAGE better, ie only MRI 1.9.2
16
+ * Propagate env-shebang to the pristine command if set for install.
17
+
3
18
  === 1.8.16 / 2012-02-12
4
19
 
5
20
  * 3 bug fixes:
@@ -7,7 +7,9 @@
7
7
 
8
8
  module Gem
9
9
  QUICKLOADER_SUCKAGE = RUBY_VERSION =~ /^1\.9\.1/
10
- GEM_PRELUDE_SUCKAGE = RUBY_VERSION =~ /^1\.9\.2/
10
+
11
+ # Only MRI 1.9.2 has the custom prelude.
12
+ GEM_PRELUDE_SUCKAGE = RUBY_VERSION =~ /^1\.9\.2/ and RUBY_ENGINE == "ruby"
11
13
  end
12
14
 
13
15
  if Gem::GEM_PRELUDE_SUCKAGE and defined?(Gem::QuickLoader) then
@@ -118,7 +120,7 @@ require "rubygems/deprecate"
118
120
  # -The RubyGems Team
119
121
 
120
122
  module Gem
121
- VERSION = '1.8.16'
123
+ VERSION = '1.8.17'
122
124
 
123
125
  ##
124
126
  # Raised when RubyGems is unable to load or activate a gem. Contains the
@@ -442,11 +444,11 @@ module Gem
442
444
  # problem, then we will silently continue.
443
445
 
444
446
  def self.ensure_gem_subdirectories dir = Gem.dir
445
- require 'fileutils'
446
-
447
447
  old_umask = File.umask
448
448
  File.umask old_umask | 002
449
449
 
450
+ require 'fileutils'
451
+
450
452
  %w[cache doc gems specifications].each do |name|
451
453
  subdir = File.join dir, name
452
454
  next if File.exist? subdir
@@ -94,10 +94,14 @@ extensions.
94
94
  end
95
95
 
96
96
  # TODO use installer options
97
+ install_defaults = Gem::ConfigFile::PLATFORM_DEFAULTS['install']
98
+ installer_env_shebang = install_defaults.to_s['--env-shebang']
99
+
97
100
  installer = Gem::Installer.new(gem,
98
101
  :wrappers => true,
99
102
  :force => true,
100
- :install_dir => spec.base_dir)
103
+ :install_dir => spec.base_dir,
104
+ :env_shebang => installer_env_shebang)
101
105
  installer.install
102
106
 
103
107
  say "Restored #{spec.full_name}"
@@ -252,9 +252,19 @@ TEXT
252
252
  end
253
253
 
254
254
  def make_destination_dirs(install_destdir)
255
- lib_dir = nil
256
- bin_dir = nil
255
+ lib_dir, bin_dir = Gem.default_rubygems_dirs
257
256
 
257
+ unless lib_dir
258
+ lib_dir, bin_dir = generate_default_dirs(install_destdir)
259
+ end
260
+
261
+ mkdir_p lib_dir
262
+ mkdir_p bin_dir
263
+
264
+ return lib_dir, bin_dir
265
+ end
266
+
267
+ def generate_default_dirs(install_destdir)
258
268
  prefix = options[:prefix]
259
269
  site_or_vendor = options[:site_or_vendor]
260
270
 
@@ -283,10 +293,7 @@ TEXT
283
293
  bin_dir = File.join install_destdir, bin_dir.gsub(/^[a-zA-Z]:/, '')
284
294
  end
285
295
 
286
- mkdir_p lib_dir
287
- mkdir_p bin_dir
288
-
289
- return lib_dir, bin_dir
296
+ [lib_dir, bin_dir]
290
297
  end
291
298
 
292
299
  def remove_old_bin_files(bin_dir)
@@ -55,7 +55,8 @@ module Kernel
55
55
  return gem_original_require path
56
56
  end
57
57
  rescue LoadError => load_error
58
- if load_error.message.end_with?(path) and Gem.try_activate(path) then
58
+ if load_error.message.start_with?("Could not find") or
59
+ (load_error.message.end_with?(path) and Gem.try_activate(path)) then
59
60
  return gem_original_require(path)
60
61
  end
61
62
 
@@ -43,6 +43,13 @@ module Gem
43
43
  @default_dir ||= File.join(*path)
44
44
  end
45
45
 
46
+ ##
47
+ # Paths where RubyGems' .rb files and bin files are installed
48
+
49
+ def self.default_rubygems_dirs
50
+ nil # default to standard layout
51
+ end
52
+
46
53
  ##
47
54
  # Path for gems in the user's home directory
48
55
 
@@ -366,7 +366,7 @@ class Gem::Installer
366
366
 
367
367
  if /\A#!/ =~ first_line then
368
368
  # Preserve extra words on shebang line, like "-w". Thanks RPA.
369
- shebang = first_line.sub(/\A\#!.*?ruby\S*(?=(\s+\S+))/, "#!#{Gem.ruby}")
369
+ shebang = first_line.sub(/\A\#!.*?ruby\S*((\s+\S+)+)/, "#!#{Gem.ruby}")
370
370
  opts = $1
371
371
  shebang.strip! # Avoid nasty ^M issues.
372
372
  end
@@ -68,6 +68,7 @@ class Gem::Platform
68
68
  when /aix(\d+)/ then [ 'aix', $1 ]
69
69
  when /cygwin/ then [ 'cygwin', nil ]
70
70
  when /darwin(\d+)?/ then [ 'darwin', $1 ]
71
+ when /^macruby$/ then [ 'macruby', nil ]
71
72
  when /freebsd(\d+)/ then [ 'freebsd', $1 ]
72
73
  when /hpux(\d+)/ then [ 'hpux', $1 ]
73
74
  when /^java$/, /^jruby$/ then [ 'java', nil ]
@@ -43,6 +43,7 @@ class TestGemPlatform < Gem::TestCase
43
43
  'sparc-solaris2.9' => ['sparc', 'solaris', '2.9'],
44
44
  'universal-darwin8' => ['universal', 'darwin', '8'],
45
45
  'universal-darwin9' => ['universal', 'darwin', '9'],
46
+ 'universal-macruby' => ['universal', 'macruby', nil],
46
47
  'i386-cygwin' => ['x86', 'cygwin', nil],
47
48
  'i686-darwin' => ['x86', 'darwin', nil],
48
49
  'i686-darwin8.4.1' => ['x86', 'darwin', '8'],
@@ -246,6 +247,12 @@ class TestGemPlatform < Gem::TestCase
246
247
  refute_match 'dotnet-2.0', Gem::Platform.local
247
248
  assert_match 'dotnet-4.0', Gem::Platform.local
248
249
 
250
+ util_set_arch 'universal-macruby-1.0'
251
+ assert_match 'universal-macruby', Gem::Platform.local
252
+ assert_match 'macruby', Gem::Platform.local
253
+ refute_match 'universal-macruby-0.10', Gem::Platform.local
254
+ assert_match 'universal-macruby-1.0', Gem::Platform.local
255
+
249
256
  util_set_arch 'powerpc-darwin'
250
257
  assert_match 'powerpc-darwin', Gem::Platform.local
251
258
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-update
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 8
9
- - 16
10
- version: 1.8.16
9
+ - 17
10
+ version: 1.8.17
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jim Weirich
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2012-02-10 00:00:00 Z
20
+ date: 2012-02-17 00:00:00 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  name: minitest
@@ -399,7 +399,7 @@ post_install_message:
399
399
  rdoc_options:
400
400
  - --main
401
401
  - README.rdoc
402
- - --title=RubyGems 1.8.16 Documentation
402
+ - --title=RubyGems 1.8.17 Documentation
403
403
  require_paths:
404
404
  - hide_lib_for_update
405
405
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -425,7 +425,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
425
425
  requirements: []
426
426
 
427
427
  rubyforge_project: rubygems
428
- rubygems_version: 1.8.14
428
+ rubygems_version: 1.8.16
429
429
  signing_key:
430
430
  specification_version: 3
431
431
  summary: RubyGems is a package management framework for Ruby