rubygems-update 1.3.5 → 1.3.6
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.
- 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
|