rubygems-update 1.3.5 → 1.3.6
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.
- data.tar.gz.sig +0 -0
- data/.autotest +8 -1
- data/ChangeLog +164 -0
- data/History.txt +52 -1
- data/Manifest.txt +8 -8
- data/README +3 -2
- data/Rakefile +49 -5
- data/bin/gem +2 -2
- data/bin/update_rubygems +9 -11
- data/cruise_config.rb +4 -3
- data/hide_lib_for_update/note.txt +5 -0
- data/lib/rbconfig/datadir.rb +10 -14
- data/lib/rubygems.rb +117 -140
- data/lib/rubygems/builder.rb +4 -2
- data/lib/rubygems/command.rb +51 -48
- data/lib/rubygems/command_manager.rb +2 -0
- data/lib/rubygems/commands/dependency_command.rb +10 -5
- data/lib/rubygems/commands/environment_command.rb +1 -1
- data/lib/rubygems/commands/fetch_command.rb +6 -5
- data/lib/rubygems/commands/install_command.rb +1 -0
- data/lib/rubygems/commands/mirror_command.rb +8 -8
- data/lib/rubygems/commands/owner_command.rb +75 -0
- data/lib/rubygems/commands/pristine_command.rb +1 -1
- data/lib/rubygems/commands/push_command.rb +45 -0
- data/lib/rubygems/commands/query_command.rb +4 -1
- data/lib/rubygems/commands/rdoc_command.rb +24 -9
- data/lib/rubygems/commands/server_command.rb +6 -0
- data/lib/rubygems/commands/setup_command.rb +14 -4
- data/lib/rubygems/commands/unpack_command.rb +2 -2
- data/lib/rubygems/commands/update_command.rb +2 -2
- data/lib/rubygems/commands/which_command.rb +7 -9
- data/lib/rubygems/config_file.rb +100 -26
- data/lib/rubygems/defaults.rb +1 -1
- data/lib/rubygems/dependency.rb +133 -75
- data/lib/rubygems/dependency_installer.rb +28 -10
- data/lib/rubygems/dependency_list.rb +41 -12
- data/lib/rubygems/doc_manager.rb +7 -0
- data/lib/rubygems/format.rb +16 -20
- data/lib/rubygems/gem_openssl.rb +1 -1
- data/lib/rubygems/gem_path_searcher.rb +10 -12
- data/lib/rubygems/gemcutter_utilities.rb +49 -0
- data/lib/rubygems/indexer.rb +2 -2
- data/lib/rubygems/install_update_options.rb +1 -9
- data/lib/rubygems/installer.rb +35 -76
- data/lib/rubygems/local_remote_options.rb +1 -2
- data/lib/rubygems/package.rb +0 -1
- data/lib/rubygems/package/tar_input.rb +3 -1
- data/lib/rubygems/package_task.rb +16 -11
- data/lib/rubygems/remote_fetcher.rb +22 -8
- data/lib/rubygems/requirement.rb +78 -100
- data/lib/rubygems/server.rb +41 -10
- data/lib/rubygems/source_index.rb +5 -5
- data/lib/rubygems/spec_fetcher.rb +2 -2
- data/lib/rubygems/specification.rb +66 -16
- data/lib/rubygems/test_utilities.rb +33 -4
- data/lib/rubygems/uninstaller.rb +3 -3
- data/lib/rubygems/user_interaction.rb +45 -0
- data/lib/rubygems/validator.rb +6 -7
- data/lib/rubygems/version.rb +206 -149
- data/lib/rubygems/version_option.rb +16 -0
- data/test/fake_certlib/openssl.rb +1 -1
- data/test/functional.rb +0 -7
- data/test/gem_installer_test_case.rb +4 -4
- data/test/gem_package_tar_test_case.rb +1 -1
- data/test/gemutilities.rb +35 -31
- data/test/insure_session.rb +0 -8
- data/test/mockgemui.rb +0 -8
- data/test/simple_gem.rb +2 -8
- data/test/test_config.rb +3 -10
- data/test/test_gem.rb +9 -14
- data/test/test_gem_builder.rb +1 -7
- data/test/test_gem_command.rb +1 -8
- data/test/test_gem_command_manager.rb +1 -7
- data/test/test_gem_commands_build_command.rb +4 -4
- data/test/test_gem_commands_cert_command.rb +1 -2
- data/test/test_gem_commands_check_command.rb +1 -7
- data/test/test_gem_commands_contents_command.rb +1 -1
- data/test/test_gem_commands_dependency_command.rb +17 -31
- data/test/test_gem_commands_environment_command.rb +1 -1
- data/test/test_gem_commands_fetch_command.rb +14 -12
- data/test/test_gem_commands_generate_index_command.rb +1 -1
- data/test/test_gem_commands_install_command.rb +22 -20
- data/test/test_gem_commands_list_command.rb +1 -1
- data/test/test_gem_commands_lock_command.rb +1 -1
- data/test/test_gem_commands_mirror_command.rb +5 -5
- data/test/test_gem_commands_outdated_command.rb +3 -5
- data/test/test_gem_commands_owner_command.rb +105 -0
- data/test/test_gem_commands_pristine_command.rb +2 -2
- data/test/test_gem_commands_push_command.rb +61 -0
- data/test/test_gem_commands_query_command.rb +23 -56
- data/test/test_gem_commands_server_command.rb +1 -1
- data/test/test_gem_commands_sources_command.rb +1 -70
- data/test/test_gem_commands_specification_command.rb +3 -4
- data/test/test_gem_commands_stale_command.rb +1 -1
- data/test/test_gem_commands_uninstall_command.rb +3 -4
- data/test/test_gem_commands_unpack_command.rb +1 -1
- data/test/test_gem_commands_update_command.rb +13 -13
- data/test/test_gem_commands_which_command.rb +66 -0
- data/test/test_gem_config_file.rb +13 -7
- data/test/test_gem_dependency.rb +82 -134
- data/test/test_gem_dependency_installer.rb +55 -30
- data/test/test_gem_dependency_list.rb +28 -7
- data/test/test_gem_doc_manager.rb +1 -7
- data/test/test_gem_ext_configure_builder.rb +2 -2
- data/test/test_gem_ext_ext_conf_builder.rb +1 -1
- data/test/test_gem_ext_rake_builder.rb +1 -1
- data/test/test_gem_format.rb +14 -11
- data/test/test_gem_gem_path_searcher.rb +12 -1
- data/test/test_gem_gem_runner.rb +1 -1
- data/test/test_gem_gemcutter_utilities.rb +103 -0
- data/test/test_gem_indexer.rb +44 -51
- data/test/test_gem_install_update_options.rb +1 -7
- data/test/test_gem_installer.rb +22 -82
- data/test/test_gem_local_remote_options.rb +1 -1
- data/test/test_gem_package_tar_header.rb +1 -8
- data/test/test_gem_package_tar_input.rb +1 -8
- data/test/test_gem_package_tar_output.rb +1 -8
- data/test/test_gem_package_tar_reader.rb +1 -8
- data/test/test_gem_package_tar_reader_entry.rb +1 -8
- data/test/test_gem_package_tar_writer.rb +1 -8
- data/test/test_gem_package_task.rb +1 -25
- data/test/test_gem_platform.rb +4 -4
- data/test/test_gem_remote_fetcher.rb +31 -21
- data/test/test_gem_requirement.rb +210 -140
- data/test/test_gem_server.rb +36 -1
- data/test/test_gem_source_index.rb +7 -13
- data/test/test_gem_spec_fetcher.rb +17 -47
- data/test/test_gem_specification.rb +7 -20
- data/test/test_gem_stream_ui.rb +21 -1
- data/test/test_gem_uninstaller.rb +1 -2
- data/test/test_gem_validator.rb +2 -8
- data/test/test_gem_version.rb +110 -254
- data/test/test_gem_version_option.rb +1 -1
- data/test/test_kernel.rb +1 -7
- data/util/CL2notes +1 -1
- data/util/gem_prelude.rb.template +64 -41
- metadata +33 -71
- metadata.gz.sig +0 -0
- data/lib/rubygems/digest/digest_adapter.rb +0 -49
- data/lib/rubygems/digest/md5.rb +0 -23
- data/lib/rubygems/digest/sha1.rb +0 -22
- data/lib/rubygems/digest/sha2.rb +0 -22
- data/lib/rubygems/timer.rb +0 -28
- data/test/test_gem_digest.rb +0 -46
- data/test/test_gem_source_info_cache.rb +0 -447
- data/test/test_gem_source_info_cache_entry.rb +0 -78
data/bin/gem
CHANGED
@@ -9,10 +9,10 @@ require 'rubygems'
|
|
9
9
|
require 'rubygems/gem_runner'
|
10
10
|
require 'rubygems/exceptions'
|
11
11
|
|
12
|
-
required_version = Gem::Requirement.new "
|
12
|
+
required_version = Gem::Requirement.new ">= 1.8.6"
|
13
13
|
|
14
14
|
unless required_version.satisfied_by? Gem.ruby_version then
|
15
|
-
abort "Expected Ruby Version #{required_version},
|
15
|
+
abort "Expected Ruby Version #{required_version}, is #{Gem.ruby_version}"
|
16
16
|
end
|
17
17
|
|
18
18
|
args = ARGV.clone
|
data/bin/update_rubygems
CHANGED
@@ -8,19 +8,19 @@
|
|
8
8
|
require 'rubygems'
|
9
9
|
|
10
10
|
if ARGV.include? '-h' or ARGV.include? '--help' then
|
11
|
-
puts "rubygems_update [options]"
|
12
|
-
puts
|
13
|
-
puts "This will install the latest version of RubyGems."
|
14
|
-
puts
|
15
|
-
puts "\t--version=X.Y\tUpdate rubygems from the X.Y version."
|
11
|
+
$stderr.puts "rubygems_update [options]"
|
12
|
+
$stderr.puts
|
13
|
+
$stderr.puts "This will install the latest version of RubyGems."
|
14
|
+
$stderr.puts
|
15
|
+
$stderr.puts "\t--version=X.Y\tUpdate rubygems from the X.Y version."
|
16
16
|
exit
|
17
17
|
end
|
18
18
|
|
19
19
|
unless ARGV.grep(/--version=([\d\.]*)/).empty? then
|
20
|
-
exec
|
20
|
+
exec Gem.ruby, '-S', $PROGRAM_NAME, "_#{$1}_"
|
21
21
|
end
|
22
22
|
|
23
|
-
update_dir = $LOAD_PATH.find { |
|
23
|
+
update_dir = $LOAD_PATH.find { |dir| dir =~ /rubygems-update/ }
|
24
24
|
|
25
25
|
if update_dir.nil?
|
26
26
|
puts "Error: Cannot find RubyGems Update Path!"
|
@@ -31,8 +31,6 @@ if update_dir.nil?
|
|
31
31
|
else
|
32
32
|
update_dir = File.dirname(update_dir)
|
33
33
|
Dir.chdir update_dir
|
34
|
-
|
35
|
-
RGVERSION = $1
|
36
|
-
puts "Installing RubyGems #{RGVERSION}"
|
37
|
-
system "#{Gem.ruby} setup.rb #{ARGV.join(' ')}"
|
34
|
+
system(Gem.ruby, 'setup.rb', *ARGV)
|
38
35
|
end
|
36
|
+
|
data/cruise_config.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
# Project-specific configuration for CruiseControl.rb
|
2
|
+
require 'socket'
|
2
3
|
|
3
4
|
Project.configure do |project|
|
4
5
|
|
5
6
|
# Send email notifications about broken and fixed builds to email1@your.site, email2@your.site (default: send to nobody)
|
6
|
-
project.email_notifier.emails = ['rubygems-developers@rubyforge.org']
|
7
|
+
project.email_notifier.emails = ['rubygems-developers@rubyforge.org'] if Socket.gethostname =~ /ci.pivotallabs.com/
|
7
8
|
|
8
9
|
# Set email 'from' field to john@doe.com:
|
9
10
|
project.email_notifier.from = 'devnull+rubygems-ci@pivotallabs.com'
|
@@ -14,9 +15,9 @@ Project.configure do |project|
|
|
14
15
|
# Build the project by invoking shell script "build_my_app.sh". Keep in mind that when the script is invoked,
|
15
16
|
# current working directory is <em>[cruise data]</em>/projects/your_project/work, so if you do not keep build_my_app.sh
|
16
17
|
# in version control, it should be '../build_my_app.sh' instead
|
17
|
-
|
18
|
+
project.build_command = 'rake check_extra_deps default'
|
18
19
|
|
19
20
|
# Ping Subversion for new revisions every 5 minutes (default: 30 seconds)
|
20
21
|
project.scheduler.polling_interval = 5.minutes
|
21
22
|
|
22
|
-
end
|
23
|
+
end
|
data/lib/rbconfig/datadir.rb
CHANGED
@@ -1,24 +1,20 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
#--
|
3
2
|
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
|
4
3
|
# All rights reserved.
|
5
4
|
# See LICENSE.txt for permissions.
|
6
5
|
#++
|
7
6
|
|
7
|
+
module RbConfig
|
8
8
|
|
9
|
-
|
9
|
+
##
|
10
|
+
# Return the path to the data directory associated with the given package
|
11
|
+
# name. Normally this is just
|
12
|
+
# "#{RbConfig::CONFIG['datadir']}/#{package_name}", but may be modified by
|
13
|
+
# packages like RubyGems to handle versioned data directories.
|
10
14
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
# Return the path to the data directory associated with the given
|
15
|
-
# package name. Normally this is just
|
16
|
-
# "#{Config::CONFIG['datadir']}/#{package_name}", but may be
|
17
|
-
# modified by packages like RubyGems to handle versioned data
|
18
|
-
# directories.
|
19
|
-
def Config.datadir(package_name)
|
20
|
-
File.join(CONFIG['datadir'], package_name)
|
21
|
-
end
|
15
|
+
def self.datadir(package_name)
|
16
|
+
File.join(CONFIG['datadir'], package_name)
|
17
|
+
end unless RbConfig.respond_to?(:datadir)
|
22
18
|
|
23
|
-
end
|
24
19
|
end
|
20
|
+
|
data/lib/rubygems.rb
CHANGED
@@ -9,69 +9,6 @@ require 'rubygems/defaults'
|
|
9
9
|
require 'thread'
|
10
10
|
require 'etc'
|
11
11
|
|
12
|
-
module Gem
|
13
|
-
|
14
|
-
RubyGemsVersion = VERSION = '1.3.5'
|
15
|
-
|
16
|
-
##
|
17
|
-
# Raised when RubyGems is unable to load or activate a gem. Contains the
|
18
|
-
# name and version requirements of the gem that either conflicts with
|
19
|
-
# already activated gems or that RubyGems is otherwise unable to activate.
|
20
|
-
|
21
|
-
class LoadError < ::LoadError
|
22
|
-
|
23
|
-
##
|
24
|
-
# Name of gem
|
25
|
-
|
26
|
-
attr_accessor :name
|
27
|
-
|
28
|
-
##
|
29
|
-
# Version requirement of gem
|
30
|
-
|
31
|
-
attr_accessor :version_requirement
|
32
|
-
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
module Kernel
|
38
|
-
|
39
|
-
##
|
40
|
-
# Use Kernel#gem to activate a specific version of +gem_name+.
|
41
|
-
#
|
42
|
-
# +version_requirements+ is a list of version requirements that the
|
43
|
-
# specified gem must match, most commonly "= example.version.number". See
|
44
|
-
# Gem::Requirement for how to specify a version requirement.
|
45
|
-
#
|
46
|
-
# If you will be activating the latest version of a gem, there is no need to
|
47
|
-
# call Kernel#gem, Kernel#require will do the right thing for you.
|
48
|
-
#
|
49
|
-
# Kernel#gem returns true if the gem was activated, otherwise false. If the
|
50
|
-
# gem could not be found, didn't match the version requirements, or a
|
51
|
-
# different version was already activated, an exception will be raised.
|
52
|
-
#
|
53
|
-
# Kernel#gem should be called *before* any require statements (otherwise
|
54
|
-
# RubyGems may load a conflicting library version).
|
55
|
-
#
|
56
|
-
# In older RubyGems versions, the environment variable GEM_SKIP could be
|
57
|
-
# used to skip activation of specified gems, for example to test out changes
|
58
|
-
# that haven't been installed yet. Now RubyGems defers to -I and the
|
59
|
-
# RUBYLIB environment variable to skip activation of a gem.
|
60
|
-
#
|
61
|
-
# Example:
|
62
|
-
#
|
63
|
-
# GEM_SKIP=libA:libB ruby -I../libA -I../libB ./mycode.rb
|
64
|
-
|
65
|
-
def gem(gem_name, *version_requirements) # :doc:
|
66
|
-
skip_list = (ENV['GEM_SKIP'] || "").split(/:/)
|
67
|
-
raise Gem::LoadError, "skipping #{gem_name}" if skip_list.include? gem_name
|
68
|
-
Gem.activate(gem_name, *version_requirements)
|
69
|
-
end
|
70
|
-
|
71
|
-
private :gem
|
72
|
-
|
73
|
-
end
|
74
|
-
|
75
12
|
##
|
76
13
|
# RubyGems is the Ruby standard for publishing and managing third party
|
77
14
|
# libraries.
|
@@ -86,6 +23,7 @@ end
|
|
86
23
|
#
|
87
24
|
# * {Creating Gems}[http://docs.rubygems.org/read/chapter/5]
|
88
25
|
# * Gem::Specification
|
26
|
+
# * Gem::Version for version dependency notes
|
89
27
|
#
|
90
28
|
# Further RubyGems documentation can be found at:
|
91
29
|
#
|
@@ -96,7 +34,8 @@ end
|
|
96
34
|
# == RubyGems Plugins
|
97
35
|
#
|
98
36
|
# As of RubyGems 1.3.2, RubyGems will load plugins installed in gems or
|
99
|
-
# $LOAD_PATH. Plugins must be named 'rubygems_plugin'
|
37
|
+
# $LOAD_PATH. Plugins must be named 'rubygems_plugin' (.rb, .so, etc) and
|
38
|
+
# placed at the root of your gem's #require_path. Plugins are discovered via
|
100
39
|
# Gem::find_files then loaded. Take care when implementing a plugin as your
|
101
40
|
# plugin file may be loaded multiple times if multiple versions of your gem
|
102
41
|
# are installed.
|
@@ -122,7 +61,7 @@ end
|
|
122
61
|
# == Bugs
|
123
62
|
#
|
124
63
|
# You can submit bugs to the
|
125
|
-
# {RubyGems bug tracker}[http://rubyforge.org/tracker/?atid=575&group_id=126
|
64
|
+
# {RubyGems bug tracker}[http://rubyforge.org/tracker/?atid=575&group_id=126]
|
126
65
|
# on RubyForge
|
127
66
|
#
|
128
67
|
# == Credits
|
@@ -131,26 +70,26 @@ end
|
|
131
70
|
#
|
132
71
|
# RubyGems was originally developed at RubyConf 2003 by:
|
133
72
|
#
|
134
|
-
# * Rich Kilmer
|
135
|
-
# * Chad Fowler
|
136
|
-
# * David Black
|
73
|
+
# * Rich Kilmer -- rich(at)infoether.com
|
74
|
+
# * Chad Fowler -- chad(at)chadfowler.com
|
75
|
+
# * David Black -- dblack(at)wobblini.net
|
137
76
|
# * Paul Brannan -- paul(at)atdesk.com
|
138
|
-
# * Jim Weirch
|
77
|
+
# * Jim Weirch -- jim(at)weirichhouse.org
|
139
78
|
#
|
140
79
|
# Contributors:
|
141
80
|
#
|
142
|
-
# * Gavin Sinclair
|
143
|
-
# * George Marrows
|
144
|
-
# * Dick Davies
|
81
|
+
# * Gavin Sinclair -- gsinclair(at)soyabean.com.au
|
82
|
+
# * George Marrows -- george.marrows(at)ntlworld.com
|
83
|
+
# * Dick Davies -- rasputnik(at)hellooperator.net
|
145
84
|
# * Mauricio Fernandez -- batsman.geo(at)yahoo.com
|
146
|
-
# * Simon Strandgaard
|
147
|
-
# * Dave Glasser
|
148
|
-
# * Paul Duncan
|
149
|
-
# * Ville Aine
|
150
|
-
# * Eric Hodel
|
151
|
-
# * Daniel Berger
|
152
|
-
# * Phil Hagelberg
|
153
|
-
# * Ryan Davis
|
85
|
+
# * Simon Strandgaard -- neoneye(at)adslhome.dk
|
86
|
+
# * Dave Glasser -- glasser(at)mit.edu
|
87
|
+
# * Paul Duncan -- pabs(at)pablotron.org
|
88
|
+
# * Ville Aine -- vaine(at)cs.helsinki.fi
|
89
|
+
# * Eric Hodel -- drbrain(at)segment7.net
|
90
|
+
# * Daniel Berger -- djberg96(at)gmail.com
|
91
|
+
# * Phil Hagelberg -- technomancy(at)gmail.com
|
92
|
+
# * Ryan Davis -- ryand-ruby(at)zenspider.com
|
154
93
|
#
|
155
94
|
# (If your name is missing, PLEASE let us know!)
|
156
95
|
#
|
@@ -159,6 +98,20 @@ end
|
|
159
98
|
# -The RubyGems Team
|
160
99
|
|
161
100
|
module Gem
|
101
|
+
RubyGemsVersion = VERSION = '1.3.6'
|
102
|
+
|
103
|
+
##
|
104
|
+
# Raised when RubyGems is unable to load or activate a gem. Contains the
|
105
|
+
# name and version requirements of the gem that either conflicts with
|
106
|
+
# already activated gems or that RubyGems is otherwise unable to activate.
|
107
|
+
|
108
|
+
class LoadError < ::LoadError
|
109
|
+
# Name of gem
|
110
|
+
attr_accessor :name
|
111
|
+
|
112
|
+
# Version requirement of gem
|
113
|
+
attr_accessor :version_requirement
|
114
|
+
end
|
162
115
|
|
163
116
|
##
|
164
117
|
# Configuration settings from ::RbConfig
|
@@ -166,23 +119,20 @@ module Gem
|
|
166
119
|
ConfigMap = {} unless defined?(ConfigMap)
|
167
120
|
|
168
121
|
require 'rbconfig'
|
169
|
-
# :stopdoc:
|
170
|
-
RbConfig = Config unless defined? ::RbConfig
|
171
|
-
# :startdoc:
|
172
122
|
|
173
123
|
ConfigMap.merge!(
|
174
|
-
:EXEEXT
|
175
|
-
:RUBY_SO_NAME
|
176
|
-
:arch
|
177
|
-
:bindir
|
178
|
-
:datadir
|
179
|
-
:libdir
|
124
|
+
:EXEEXT => RbConfig::CONFIG["EXEEXT"],
|
125
|
+
:RUBY_SO_NAME => RbConfig::CONFIG["RUBY_SO_NAME"],
|
126
|
+
:arch => RbConfig::CONFIG["arch"],
|
127
|
+
:bindir => RbConfig::CONFIG["bindir"],
|
128
|
+
:datadir => RbConfig::CONFIG["datadir"],
|
129
|
+
:libdir => RbConfig::CONFIG["libdir"],
|
180
130
|
:ruby_install_name => RbConfig::CONFIG["ruby_install_name"],
|
181
|
-
:ruby_version
|
182
|
-
:sitedir
|
183
|
-
:sitelibdir
|
184
|
-
:vendordir
|
185
|
-
:vendorlibdir
|
131
|
+
:ruby_version => RbConfig::CONFIG["ruby_version"],
|
132
|
+
:sitedir => RbConfig::CONFIG["sitedir"],
|
133
|
+
:sitelibdir => RbConfig::CONFIG["sitelibdir"],
|
134
|
+
:vendordir => RbConfig::CONFIG["vendordir"] ,
|
135
|
+
:vendorlibdir => RbConfig::CONFIG["vendorlibdir"]
|
186
136
|
)
|
187
137
|
|
188
138
|
##
|
@@ -253,11 +203,11 @@ module Gem
|
|
253
203
|
end
|
254
204
|
|
255
205
|
unless gem.respond_to?(:name) and
|
256
|
-
gem.respond_to?(:
|
206
|
+
gem.respond_to?(:requirement) then
|
257
207
|
gem = Gem::Dependency.new(gem, version_requirements)
|
258
208
|
end
|
259
209
|
|
260
|
-
matches = Gem.source_index.find_name(gem.name, gem.
|
210
|
+
matches = Gem.source_index.find_name(gem.name, gem.requirement)
|
261
211
|
report_activate_error(gem) if matches.empty?
|
262
212
|
|
263
213
|
if @loaded_specs[gem.name] then
|
@@ -275,7 +225,7 @@ module Gem
|
|
275
225
|
|
276
226
|
e = Gem::LoadError.new msg
|
277
227
|
e.name = gem.name
|
278
|
-
e.version_requirement = gem.
|
228
|
+
e.version_requirement = gem.requirement
|
279
229
|
|
280
230
|
raise e
|
281
231
|
end
|
@@ -351,7 +301,7 @@ module Gem
|
|
351
301
|
requirements = Gem::Requirement.default if requirements.empty?
|
352
302
|
|
353
303
|
unless gem.respond_to?(:name) and
|
354
|
-
gem.respond_to?(:
|
304
|
+
gem.respond_to?(:requirement) then
|
355
305
|
gem = Gem::Dependency.new gem, requirements
|
356
306
|
end
|
357
307
|
|
@@ -546,22 +496,22 @@ module Gem
|
|
546
496
|
# least on Win32).
|
547
497
|
|
548
498
|
def self.find_home
|
549
|
-
|
550
|
-
|
551
|
-
|
499
|
+
unless RUBY_VERSION > '1.9' then
|
500
|
+
['HOME', 'USERPROFILE'].each do |homekey|
|
501
|
+
return ENV[homekey] if ENV[homekey]
|
502
|
+
end
|
552
503
|
|
553
|
-
|
554
|
-
|
504
|
+
if ENV['HOMEDRIVE'] && ENV['HOMEPATH'] then
|
505
|
+
return "#{ENV['HOMEDRIVE']}#{ENV['HOMEPATH']}"
|
506
|
+
end
|
555
507
|
end
|
556
508
|
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
"/"
|
564
|
-
end
|
509
|
+
File.expand_path "~"
|
510
|
+
rescue
|
511
|
+
if File::ALT_SEPARATOR then
|
512
|
+
"C:/"
|
513
|
+
else
|
514
|
+
"/"
|
565
515
|
end
|
566
516
|
end
|
567
517
|
|
@@ -815,15 +765,15 @@ module Gem
|
|
815
765
|
|
816
766
|
if matches.empty? then
|
817
767
|
error = Gem::LoadError.new(
|
818
|
-
"Could not find RubyGem #{gem.name} (#{gem.
|
768
|
+
"Could not find RubyGem #{gem.name} (#{gem.requirement})\n")
|
819
769
|
else
|
820
770
|
error = Gem::LoadError.new(
|
821
771
|
"RubyGem version error: " +
|
822
|
-
"#{gem.name}(#{matches.first.version} not #{gem.
|
772
|
+
"#{gem.name}(#{matches.first.version} not #{gem.requirement})\n")
|
823
773
|
end
|
824
774
|
|
825
775
|
error.name = gem.name
|
826
|
-
error.version_requirement = gem.
|
776
|
+
error.version_requirement = gem.requirement
|
827
777
|
raise error
|
828
778
|
end
|
829
779
|
|
@@ -894,9 +844,8 @@ module Gem
|
|
894
844
|
# Set the Gem home directory (as reported by Gem.dir).
|
895
845
|
|
896
846
|
def self.set_home(home)
|
897
|
-
home = home.gsub
|
847
|
+
home = home.gsub File::ALT_SEPARATOR, File::SEPARATOR if File::ALT_SEPARATOR
|
898
848
|
@gem_home = home
|
899
|
-
ensure_gem_subdirectories(@gem_home)
|
900
849
|
end
|
901
850
|
|
902
851
|
private_class_method :set_home
|
@@ -921,18 +870,6 @@ module Gem
|
|
921
870
|
end
|
922
871
|
|
923
872
|
@gem_path.uniq!
|
924
|
-
@gem_path.each do |path|
|
925
|
-
if 0 == File.expand_path(path).index(Gem.user_home)
|
926
|
-
next unless File.directory? Gem.user_home
|
927
|
-
unless win_platform? then
|
928
|
-
# only create by matching user
|
929
|
-
if Etc.getpwuid.nil? || Etc.getpwuid.uid != File::Stat.new(Gem.user_home).uid
|
930
|
-
next
|
931
|
-
end
|
932
|
-
end
|
933
|
-
end
|
934
|
-
ensure_gem_subdirectories path
|
935
|
-
end
|
936
873
|
end
|
937
874
|
|
938
875
|
private_class_method :set_paths
|
@@ -1085,19 +1022,53 @@ module Gem
|
|
1085
1022
|
|
1086
1023
|
end
|
1087
1024
|
|
1088
|
-
module
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1025
|
+
module Kernel
|
1026
|
+
|
1027
|
+
##
|
1028
|
+
# Use Kernel#gem to activate a specific version of +gem_name+.
|
1029
|
+
#
|
1030
|
+
# +version_requirements+ is a list of version requirements that the
|
1031
|
+
# specified gem must match, most commonly "= example.version.number". See
|
1032
|
+
# Gem::Requirement for how to specify a version requirement.
|
1033
|
+
#
|
1034
|
+
# If you will be activating the latest version of a gem, there is no need to
|
1035
|
+
# call Kernel#gem, Kernel#require will do the right thing for you.
|
1036
|
+
#
|
1037
|
+
# Kernel#gem returns true if the gem was activated, otherwise false. If the
|
1038
|
+
# gem could not be found, didn't match the version requirements, or a
|
1039
|
+
# different version was already activated, an exception will be raised.
|
1040
|
+
#
|
1041
|
+
# Kernel#gem should be called *before* any require statements (otherwise
|
1042
|
+
# RubyGems may load a conflicting library version).
|
1043
|
+
#
|
1044
|
+
# In older RubyGems versions, the environment variable GEM_SKIP could be
|
1045
|
+
# used to skip activation of specified gems, for example to test out changes
|
1046
|
+
# that haven't been installed yet. Now RubyGems defers to -I and the
|
1047
|
+
# RUBYLIB environment variable to skip activation of a gem.
|
1048
|
+
#
|
1049
|
+
# Example:
|
1050
|
+
#
|
1051
|
+
# GEM_SKIP=libA:libB ruby -I../libA -I../libB ./mycode.rb
|
1052
|
+
|
1053
|
+
def gem(gem_name, *version_requirements) # :doc:
|
1054
|
+
skip_list = (ENV['GEM_SKIP'] || "").split(/:/)
|
1055
|
+
raise Gem::LoadError, "skipping #{gem_name}" if skip_list.include? gem_name
|
1056
|
+
Gem.activate(gem_name, *version_requirements)
|
1099
1057
|
end
|
1100
|
-
|
1058
|
+
|
1059
|
+
private :gem
|
1060
|
+
|
1061
|
+
end
|
1062
|
+
|
1063
|
+
##
|
1064
|
+
# Return the path to the data directory associated with the named package. If
|
1065
|
+
# the package is loaded as a gem, return the gem specific data directory.
|
1066
|
+
# Otherwise return a path to the share area as define by
|
1067
|
+
# "#{ConfigMap[:datadir]}/#{package_name}".
|
1068
|
+
|
1069
|
+
def RbConfig.datadir(package_name)
|
1070
|
+
Gem.datadir(package_name) ||
|
1071
|
+
File.join(Gem::ConfigMap[:datadir], package_name)
|
1101
1072
|
end
|
1102
1073
|
|
1103
1074
|
require 'rubygems/exceptions'
|
@@ -1132,6 +1103,12 @@ Gem.clear_paths
|
|
1132
1103
|
plugins = Gem.find_files 'rubygems_plugin'
|
1133
1104
|
|
1134
1105
|
plugins.each do |plugin|
|
1106
|
+
|
1107
|
+
# Skip older versions of the GemCutter plugin: Its commands are in
|
1108
|
+
# RubyGems proper now.
|
1109
|
+
|
1110
|
+
next if plugin =~ /gemcutter-0\.[0-3]/
|
1111
|
+
|
1135
1112
|
begin
|
1136
1113
|
load plugin
|
1137
1114
|
rescue => e
|