rubygems-update 1.2.0 → 1.3.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.
- data.tar.gz.sig +2 -4
- data/ChangeLog +155 -0
- data/Rakefile +20 -5
- data/doc/release_notes/rel_1_3_0.rdoc +125 -0
- data/lib/rubygems.rb +107 -15
- data/lib/rubygems/commands/contents_command.rb +1 -1
- data/lib/rubygems/commands/environment_command.rb +40 -0
- data/lib/rubygems/commands/help_command.rb +2 -2
- data/lib/rubygems/commands/install_command.rb +15 -0
- data/lib/rubygems/commands/lock_command.rb +15 -6
- data/lib/rubygems/commands/outdated_command.rb +1 -1
- data/lib/rubygems/commands/pristine_command.rb +1 -1
- data/lib/rubygems/commands/query_command.rb +14 -9
- data/lib/rubygems/commands/rdoc_command.rb +5 -1
- data/lib/rubygems/commands/specification_command.rb +2 -2
- data/lib/rubygems/commands/unpack_command.rb +1 -1
- data/lib/rubygems/commands/update_command.rb +23 -14
- data/lib/rubygems/commands/which_command.rb +4 -3
- data/lib/rubygems/config_file.rb +25 -3
- data/lib/rubygems/defaults.rb +42 -11
- data/lib/rubygems/dependency_installer.rb +19 -15
- data/lib/rubygems/doc_manager.rb +162 -115
- data/lib/rubygems/ext/builder.rb +2 -2
- data/lib/rubygems/ext/rake_builder.rb +1 -1
- data/lib/rubygems/gem_path_searcher.rb +35 -19
- data/lib/rubygems/indexer.rb +15 -6
- data/lib/rubygems/install_update_options.rb +7 -0
- data/lib/rubygems/installer.rb +85 -9
- data/lib/rubygems/local_remote_options.rb +7 -0
- data/lib/rubygems/package/tar_reader.rb +7 -7
- data/lib/rubygems/platform.rb +1 -18
- data/lib/rubygems/remote_fetcher.rb +45 -54
- data/lib/rubygems/rubygems_version.rb +1 -1
- data/lib/rubygems/source_index.rb +22 -7
- data/lib/rubygems/source_info_cache.rb +9 -0
- data/lib/rubygems/spec_fetcher.rb +18 -20
- data/lib/rubygems/specification.rb +502 -293
- data/lib/rubygems/test_utilities.rb +19 -8
- data/lib/rubygems/uninstaller.rb +60 -26
- data/setup.rb +15 -7
- data/test/gemutilities.rb +84 -0
- data/test/mockgemui.rb +22 -2
- data/test/test_gem.rb +118 -13
- data/test/test_gem_commands_dependency_command.rb +1 -1
- data/test/test_gem_commands_list_command.rb +37 -0
- data/test/test_gem_commands_lock_command.rb +69 -0
- data/test/test_gem_commands_query_command.rb +40 -1
- data/test/test_gem_commands_uninstall_command.rb +60 -0
- data/test/test_gem_config_file.rb +51 -17
- data/test/test_gem_ext_configure_builder.rb +9 -9
- data/test/test_gem_ext_rake_builder.rb +21 -12
- data/test/test_gem_gem_path_searcher.rb +15 -7
- data/test/test_gem_indexer.rb +35 -1
- data/test/test_gem_install_update_options.rb +26 -5
- data/test/test_gem_installer.rb +93 -21
- data/test/test_gem_local_remote_options.rb +12 -0
- data/test/test_gem_platform.rb +6 -13
- data/test/test_gem_remote_fetcher.rb +121 -31
- data/test/test_gem_source_index.rb +74 -21
- data/test/test_gem_source_info_cache.rb +2 -1
- data/test/test_gem_spec_fetcher.rb +13 -3
- data/test/test_gem_specification.rb +13 -7
- data/test/test_gem_uninstaller.rb +25 -2
- metadata +6 -2
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
@@ -1,4 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
��Xh�*�dj��j������=�fm.v���M+�T�x��g��]]P_���ڦ�
|
4
|
-
,��Ecl�b�4��(�Si���yn'���G��0
|
1
|
+
s�����/��A�M��=��?]?Z-�Ң{�_C�u$��Q�`�U`�E��r��Z�o=��4@���\+��p�P�%�N�8`�wV���[]r܃���S�դ�r����M�ikL��0`���m
|
2
|
+
��wFw캋�C��M''�7��j���2Dy�H9ƒ��I+�� �*�q�-���or�EH=�ȋhWF$�<�@P�Q4Ӽ-5 {Y��ÿ�;��E���H��
|
data/ChangeLog
CHANGED
@@ -1,3 +1,158 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
2008-09-24 Eric Hodel <drbrain@segment7.net>
|
4
|
+
|
5
|
+
* doc/release_notes/rel_1_3_0.rdoc: Final release notes for 1.3.0.
|
6
|
+
* lib/rubygems/rubygems_version.rb: 1.3.0.
|
7
|
+
* lib/rubygems/builder.rb: Examine process status correctly. Patch
|
8
|
+
by Nobu.
|
9
|
+
* test/test_gem_ext_rake_builder.rb: Override Gem.ruby and
|
10
|
+
ENV['rake'] for 1.9 integration. Patch by Nobu.
|
11
|
+
|
12
|
+
2008-09-16 Eric Hodel <drbrain@segment7.net>
|
13
|
+
|
14
|
+
* lib/rubygems.rb: Only create ~/.gem by user owning ~. Bug #21561
|
15
|
+
by Neil Wilson.
|
16
|
+
|
17
|
+
2008-09-15 Eric Hodel <drbrain@segment7.net>
|
18
|
+
|
19
|
+
* lib/rubygems/source_index.rb: Autoload SpecFetcher to improve load
|
20
|
+
time. Patch #21577 by Simon Chiang.
|
21
|
+
* lib/rubygems/commands/lock_command.rb: Modernize. Fix --strict.
|
22
|
+
Patch #21814 by Sven Engelhardt.
|
23
|
+
* lib/rubygems/platform.rb: Fix for solaris platform. Patch #21911
|
24
|
+
by Bob Remeika.
|
25
|
+
|
26
|
+
2008-09-10 Eric Hodel <drbrain@segment7.net>
|
27
|
+
|
28
|
+
* lib/rubygems/commands/install_command.rb: Describe _version_ in `gem
|
29
|
+
help install`.
|
30
|
+
* lib/rubygems/commands/environment_command.rb: Describe environment
|
31
|
+
variables and gemrc in `gem help env`.
|
32
|
+
* lib/rubygems.rb: Warn when executing Gem::manage_gems.
|
33
|
+
* lib/rubygems/doc_manager.rb: Have RubyGems update the ri cache.
|
34
|
+
* lib/rubygems/source_index.rb: Ensure specs are read as UTF-8.
|
35
|
+
* lib/rubygems/specification.rb: Add magic comment to .gemspec files
|
36
|
+
so they are read in as UTF-8.
|
37
|
+
|
38
|
+
2008-08-22 Luis Lavena <luislavena@gmail.com>
|
39
|
+
|
40
|
+
* lib/rubygems.rb: Corrected usage of HOMEDRIVE and HOMEPATH on Windows.
|
41
|
+
Escape Gem.ruby if spaces in the path are present. Solves bug related to
|
42
|
+
extensions compile process.
|
43
|
+
* test/test_gem.rb: Added test to verify both conditions.
|
44
|
+
|
45
|
+
2008-08-17 Eric Hodel <drbrain@segment7.net>
|
46
|
+
|
47
|
+
* doc/release_notes/rel_1_3_0.rdoc: Initial release notes for 1.3.0.
|
48
|
+
* util/CL2notes: Release note creation helper script.
|
49
|
+
|
50
|
+
2008-08-16 Eric Hodel <drbrain@segment7.net>
|
51
|
+
|
52
|
+
* lib/rubygems/local_remote_options.rb: Added #both? to complement
|
53
|
+
#local? and #remote?.
|
54
|
+
* lib/rubygems/commands/query_command.rb: Print out LOCAL/REMOTE with
|
55
|
+
--both, even without a TTY.
|
56
|
+
* lib/rubygems.rb: Add Gem.find_files, allows a gem to discover
|
57
|
+
features provided by other gems.
|
58
|
+
|
59
|
+
2008-08-14 Wilson Bilkovich <wilson@supremetyrant.com>
|
60
|
+
|
61
|
+
* lib/rubygems/source_index.rb: Deprecate options to 'search' other than
|
62
|
+
Gem::Dependency instances and issue warning until November 2008.
|
63
|
+
* lib/rubygems/platform.rb: Remove deprecated constant warnings
|
64
|
+
and really deprecate them.
|
65
|
+
* Rakefile: If the SETUP_OPTIONS environment variable is set, pass its
|
66
|
+
contents as arguments to setup.rb
|
67
|
+
* test/test_gem_commands_uninstall_command.rb: Added
|
68
|
+
|
69
|
+
2008-08-13 Wilson Bilkovich <wilson@supremetyrant.com>
|
70
|
+
|
71
|
+
* lib/rubygems/uninstaller.rb: Fix binary script uninstallation.
|
72
|
+
Bug #21234 by Neil Wilson.
|
73
|
+
* test/test_gem_commands_uninstall_command.rb: Added
|
74
|
+
|
75
|
+
2008-08-12 Eric Hodel <drbrain@segment7.net>
|
76
|
+
|
77
|
+
* lib/rubygems/installer.rb: Try to create directory before diverting
|
78
|
+
to ~/.gems.
|
79
|
+
* lib/rubygems/uninstaller.rb: Fix uninstallation with -i. Bug
|
80
|
+
#20812 by John Clayton. Have #remove_all call #uninstall_gem so hooks
|
81
|
+
get called. Bug #21242 by Neil Wilson.
|
82
|
+
* lib/rubygems/commands/update_command.rb: Fix updating RubyGems when
|
83
|
+
no previous rubygems-update is installed. Bug #20775 by Hemant Kumar.
|
84
|
+
|
85
|
+
2008-08-11 Eric Hodel <drbrain@segment7.net>
|
86
|
+
|
87
|
+
* lib/rubygems/remote_fetcher.rb: Fix HTTPS support. Patch #21072 by
|
88
|
+
Alex Arnell. Fix Not Modified handling. Bug #21310 by Gordon
|
89
|
+
Thiesfeld.
|
90
|
+
|
91
|
+
2008-07-11 Luis Lavena <luislavena@gmail.com>
|
92
|
+
|
93
|
+
* setup.rb: Properly build --destdir folder structure using Pathname.
|
94
|
+
* test/mockgemui.rb: Fix warnings about instance variables in a module.
|
95
|
+
|
96
|
+
2008-07-02 Phil Hagelberg <technomancy@gmail.com>
|
97
|
+
|
98
|
+
* lib/rubygems/defaults.rb: Add Gem.user_dir to use paths like
|
99
|
+
~/.gem/ruby/1.8/gems and the like instead of just ~/.gem. Update
|
100
|
+
remote fetcher and installer to use it.
|
101
|
+
|
102
|
+
2008-07-01 Eric Hodel <drbrain@segment7.net>
|
103
|
+
|
104
|
+
* lib/rubygems/installer.rb: Add #gem_home, #bin_dir for hooks. Use
|
105
|
+
DependencyInstaller's source_index so reinstallation via -i does not
|
106
|
+
fail.
|
107
|
+
* lib/rubygems/uninstaller.rb: Add #gem_home, #bin_dir for hooks.
|
108
|
+
* lib/rubygems/commands/query_command.rb: Don't print LOCAL/REMOTE
|
109
|
+
gems if stdout is not a TTY.
|
110
|
+
* lib/rubygems/commands/query_command.rb: Use the regexp we already
|
111
|
+
have for `gem list --installed`. Bug #20876 by Nick Hoffman.
|
112
|
+
* lib/rubygems/commands/which_command.rb: Clarify what `gem which` is
|
113
|
+
for.
|
114
|
+
|
115
|
+
2008-06-30 Eric Hodel <drbrain@segment7.net>
|
116
|
+
|
117
|
+
* test/test_ext_configure_builder.rb: Locale-free patch by Yusuke
|
118
|
+
Endoh [ruby-core:17444].
|
119
|
+
* lib/rubygems.rb: Add pre/post (un)install hooks.
|
120
|
+
* lib/rubygems/installer.rb: Call pre/post install hooks as
|
121
|
+
appropriate.
|
122
|
+
* lib/rubygems/uninstaller.rb: Call pre/post uninstall hooks as
|
123
|
+
appropriate. Minor refactoring of #uninstall.
|
124
|
+
* lib/rubygems/package/tar_reader.rb: Some OSs raise EINVAL on seek.
|
125
|
+
Based on patch in bug #20791 by Neil Wilson.
|
126
|
+
* lib/rubygems/specification.rb: Correctly check for support of
|
127
|
+
development dependencies for #to_ruby. Bug #20778 by Evan Weaver.
|
128
|
+
* lib/rubygems/spec_fetcher.rb: Correctly load all cache file even if
|
129
|
+
latest has been loaded. Bug #20776 by Uwe Kubosch.
|
130
|
+
|
131
|
+
2008-06-25 Eric Hodel <drbrain@segment7.net>
|
132
|
+
|
133
|
+
* lib/rubygems/config_file.rb: Add Gem::ConfigFile constants for
|
134
|
+
packagers and implementors to override defaults.
|
135
|
+
* test/*: Fixes to run tests when under test/rubygems/. Patch by
|
136
|
+
Yusuke ENDOH [ruby-core:17353].
|
137
|
+
|
138
|
+
2008-06-24 Eric Hodel <drbrain@segment7.net>
|
139
|
+
|
140
|
+
* lib/rubygems/remote_fetcher.rb: Cleanup to support
|
141
|
+
if-modified-since requests. pair: Ryan Davis
|
142
|
+
* lib/rubygems/indexer: Force platform to Gem::Platform::RUBY when
|
143
|
+
nil or blank. Fixes various uninstallable gems.
|
144
|
+
|
145
|
+
2008-06-24 Phil Hagelberg <technomancy@gmail.com>
|
146
|
+
|
147
|
+
* lib/rubygems/installer.rb: Fall back on ~/.gem if GEM_HOME is
|
148
|
+
not writable.
|
149
|
+
* lib/rubygems/install_update_options.rb: Allow --user-install or
|
150
|
+
--no-user-install command-line switch to explicitly force whether
|
151
|
+
or not ~/.gem should be used.
|
152
|
+
* lib/rubygems/remote_fetcher.rb: Use ~/.gem/cache if cache dir is
|
153
|
+
not writable.
|
154
|
+
* test/gemutilities.rb: Use MockGemUi for all tests.
|
155
|
+
|
1
156
|
2008-06-21 Eric Hodel <drbrain@segment7.net>
|
2
157
|
|
3
158
|
* lib/rubygems/specification.rb: Load specifications from the future.
|
data/Rakefile
CHANGED
@@ -298,6 +298,8 @@ Rake::PackageTask.new("package") do |p|
|
|
298
298
|
p.package_files = PKG_FILES
|
299
299
|
end
|
300
300
|
|
301
|
+
warn_unsigned = true
|
302
|
+
|
301
303
|
Spec = Gem::Specification.new do |s|
|
302
304
|
s.name = PKG_NAME + "-update"
|
303
305
|
s.version = PKG_VERSION
|
@@ -316,15 +318,27 @@ installation of RubyGems before this update can be applied.
|
|
316
318
|
s.bindir = "bin" # Use these for applications.
|
317
319
|
s.executables = ["update_rubygems"]
|
318
320
|
certdir = ENV['CERT_DIR']
|
319
|
-
if certdir
|
320
|
-
|
321
|
-
|
321
|
+
if certdir then
|
322
|
+
key = File.join certdir, 'gem-private_key.pem'
|
323
|
+
cert = File.join certdir, 'gem-public_cert.pem'
|
324
|
+
|
325
|
+
if File.exist? key and File.exist? cert then
|
326
|
+
s.signing_key = File.join(certdir, 'gem-private_key.pem')
|
327
|
+
s.cert_chain = [File.join(certdir, 'gem-public_cert.pem')]
|
328
|
+
warn_unsigned = false
|
329
|
+
else
|
330
|
+
warn_unsigned = true
|
331
|
+
end
|
322
332
|
end
|
323
333
|
end
|
324
334
|
|
325
335
|
# Add console output about signing the Gem
|
326
336
|
file "pkg/#{Spec.full_name}.gem" do
|
327
|
-
|
337
|
+
if warn_unsigned then
|
338
|
+
warn "WARNING: gem will not be signed, no key or certificate found in #{ENV['CERT_DIR']}"
|
339
|
+
else
|
340
|
+
puts "Signed with certificates in '#{ENV['CERT_DIR']}'"
|
341
|
+
end
|
328
342
|
end
|
329
343
|
|
330
344
|
Rake::GemPackageTask.new(Spec) do |p| end
|
@@ -337,7 +351,8 @@ end
|
|
337
351
|
|
338
352
|
desc "Install RubyGems"
|
339
353
|
task :install do
|
340
|
-
|
354
|
+
opts = ENV['SETUP_OPTIONS']
|
355
|
+
ruby "setup.rb #{opts}".strip
|
341
356
|
|
342
357
|
svnversion = `svnversion`.split(':').last.sub(/[^\d]/, '').strip
|
343
358
|
|
@@ -0,0 +1,125 @@
|
|
1
|
+
= Announce: RubyGems Release 1.3.0
|
2
|
+
|
3
|
+
Release 1.3.0 adds new features and fixes some bugs.
|
4
|
+
|
5
|
+
New features:
|
6
|
+
|
7
|
+
* RubyGems doesn't print LOCAL/REMOTE titles for `gem query` and friends if
|
8
|
+
stdout is not a TTY, except with --both.
|
9
|
+
* Added Gem.find_files, allows a gem to discover features provided by other
|
10
|
+
gems.
|
11
|
+
* Added pre/post (un)install hooks for packagers of RubyGems. (Not for gems
|
12
|
+
themselves).
|
13
|
+
* RubyGems now installs gems into ~/.gem if GEM_HOME is not writable. Use
|
14
|
+
--no-user-install command-line switch to disable this behavior.
|
15
|
+
* Fetching specs for update now uses If-Modified-Since requests.
|
16
|
+
* RubyGems now updates the ri cache when the rdoc gem is installed and
|
17
|
+
documentation is generated.
|
18
|
+
|
19
|
+
Deprecation Notices:
|
20
|
+
|
21
|
+
* Gem::manage_gems now warns when called. It will be removed on or after March
|
22
|
+
2009.
|
23
|
+
|
24
|
+
Bugs Fixed:
|
25
|
+
|
26
|
+
* RubyGems 1.3.0+ now updates when no previous rubygems-update is installed.
|
27
|
+
Bug #20775 by Hemant Kumar.
|
28
|
+
* RubyGems now uses the regexp we already have for `gem list --installed`. Bug
|
29
|
+
#20876 by Nick Hoffman.
|
30
|
+
* Platform is now forced to Gem::Platform::RUBY when nil or blank in the
|
31
|
+
indexer. Fixes various uninstallable gems.
|
32
|
+
* Handle EINVAL on seek. Based on patch in bug #20791 by Neil Wilson.
|
33
|
+
* Fix HTTPS support. Patch #21072 by Alex Arnell.
|
34
|
+
* RubyGems now loads all cache files even if latest has been loaded. Bug
|
35
|
+
#20776 by Uwe Kubosch.
|
36
|
+
* RubyGems checks for support of development dependencies for #to_ruby. Bug
|
37
|
+
#20778 by Evan Weaver.
|
38
|
+
* Now specifications from the future can be loaded.
|
39
|
+
* Binary script uninstallation fixed. Bug #21234 by Neil Wilson.
|
40
|
+
* Uninstallation with -i fixed. Bug #20812 by John Clayton.
|
41
|
+
* Gem::Uninstaller#remove_all now calls Gem::Uninstaller#uninstall_gem so hooks
|
42
|
+
get called. Bug #21242 by Neil Wilson.
|
43
|
+
* Gem.ruby now properly escaped on windows. Fixes problem with extension
|
44
|
+
compilation.
|
45
|
+
* `gem lock --strict` works again. Patch #21814 by Sven Engelhardt.
|
46
|
+
* Platform detection for Solaris was improved. Patch #21911 by Bob Remeika.
|
47
|
+
|
48
|
+
Other Changes Include:
|
49
|
+
|
50
|
+
* `gem help install` now describes _version_ argument to executable stubs
|
51
|
+
* `gem help environment` describes environment variables and ~/.gemrc and
|
52
|
+
/etc/gemrc
|
53
|
+
* On-disk gemspecs are now read in UTF-8 and written with a UTF-8 magic comment
|
54
|
+
* Rakefile
|
55
|
+
* If the SETUP_OPTIONS environment variable is set, pass its contents as
|
56
|
+
arguments to setup.rb
|
57
|
+
* lib/rubygems/platform.rb
|
58
|
+
* Remove deprecated constant warnings and really deprecate them. (WIN32,
|
59
|
+
etc).
|
60
|
+
* lib/rubygems/remote_fetcher.rb
|
61
|
+
* Now uses ~/.gem/cache if the cache dir in GEM_HOME is not writable.
|
62
|
+
* lib/rubygems/source_index.rb
|
63
|
+
* Deprecate options to 'search' other than Gem::Dependency instances and
|
64
|
+
issue warning until November 2008.
|
65
|
+
* setup.rb
|
66
|
+
* --destdir folder structure now built using Pathname, so it works for
|
67
|
+
Windows platforms.
|
68
|
+
* test/*
|
69
|
+
* Fixes to run tests when under test/rubygems/. Patch by Yusuke ENDOH
|
70
|
+
[ruby-core:17353].
|
71
|
+
* test/test_ext_configure_builder.rb
|
72
|
+
* Locale-free patch by Yusuke Endoh [ruby-core:17444].
|
73
|
+
|
74
|
+
For a full list of changes to RubyGems and the contributor for each change, see
|
75
|
+
the ChangeLog file.
|
76
|
+
|
77
|
+
Special thanks to Chad Wooley for backwards compatibility testing and Luis
|
78
|
+
Lavena for continuing windows support.
|
79
|
+
|
80
|
+
== How can I get RubyGems?
|
81
|
+
|
82
|
+
NOTE: If you have installed RubyGems using a package system you may want to
|
83
|
+
install a new RubyGems through the same packaging system.
|
84
|
+
|
85
|
+
If you have a recent version of RubyGems (0.8.5 or later), then all
|
86
|
+
you need to do is:
|
87
|
+
|
88
|
+
$ gem update --system (you might need to be admin/root)
|
89
|
+
|
90
|
+
NOTE: RubyGems 1.1 and 1.2 have problems upgrading when there is no
|
91
|
+
rubygems-update installed. You will need to follow the second set of update
|
92
|
+
instructions if you see "Nothing to update".
|
93
|
+
|
94
|
+
NOTE: You may have to run the command twice if you have any previosly
|
95
|
+
installed rubygems-update gems.
|
96
|
+
|
97
|
+
If you have an older version of RubyGems installed, then you can still
|
98
|
+
do it in two steps:
|
99
|
+
|
100
|
+
$ gem install rubygems-update (again, might need to be admin/root)
|
101
|
+
$ update_rubygems (... here too)
|
102
|
+
|
103
|
+
If you don't have any gems install, there is still the pre-gem
|
104
|
+
approach to getting software ... doing it manually:
|
105
|
+
|
106
|
+
1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
|
107
|
+
2. UNPACK INTO A DIRECTORY AND CD THERE
|
108
|
+
3. INSTALL WITH: ruby setup.rb (you may need admin/root privilege)
|
109
|
+
|
110
|
+
== To File Bugs
|
111
|
+
|
112
|
+
The RubyGems bug tracker can be found on RubyForge at:
|
113
|
+
http://rubyforge.org/tracker/?func=add&group_id=126&atid=575
|
114
|
+
|
115
|
+
When filing a bug, `gem env` output will be helpful in diagnosing the issue.
|
116
|
+
|
117
|
+
If you find a bug where RubyGems crashes, please provide debug output. You can
|
118
|
+
do that with `gem --debug the_command`.
|
119
|
+
|
120
|
+
== Thanks
|
121
|
+
|
122
|
+
Keep those gems coming!
|
123
|
+
|
124
|
+
-- Jim & Chad & Eric (for the RubyGems team)
|
125
|
+
|
data/lib/rubygems.rb
CHANGED
@@ -104,6 +104,11 @@ module Gem
|
|
104
104
|
@ruby = nil
|
105
105
|
@sources = []
|
106
106
|
|
107
|
+
@post_install_hooks = []
|
108
|
+
@post_uninstall_hooks = []
|
109
|
+
@pre_uninstall_hooks = []
|
110
|
+
@pre_install_hooks = []
|
111
|
+
|
107
112
|
##
|
108
113
|
# Activates an installed gem matching +gem+. The gem must satisfy
|
109
114
|
# +version_requirements+.
|
@@ -244,7 +249,10 @@ module Gem
|
|
244
249
|
def self.clear_paths
|
245
250
|
@gem_home = nil
|
246
251
|
@gem_path = nil
|
252
|
+
@user_home = nil
|
253
|
+
|
247
254
|
@@source_index = nil
|
255
|
+
|
248
256
|
MUTEX.synchronize do
|
249
257
|
@searcher = nil
|
250
258
|
end
|
@@ -261,9 +269,7 @@ module Gem
|
|
261
269
|
# The standard configuration object for gems.
|
262
270
|
|
263
271
|
def self.configuration
|
264
|
-
|
265
|
-
require 'rubygems/config_file'
|
266
|
-
@configuration = Gem::ConfigFile.new []
|
272
|
+
@configuration ||= Gem::ConfigFile.new []
|
267
273
|
end
|
268
274
|
|
269
275
|
##
|
@@ -336,6 +342,22 @@ module Gem
|
|
336
342
|
end
|
337
343
|
end
|
338
344
|
|
345
|
+
##
|
346
|
+
# Returns a list of paths matching +file+ that can be used by a gem to pick
|
347
|
+
# up features from other gems. For example:
|
348
|
+
#
|
349
|
+
# Gem.find_files('rdoc/discover').each do |path| load path end
|
350
|
+
#
|
351
|
+
# find_files does not search $LOAD_PATH for files, only gems.
|
352
|
+
|
353
|
+
def self.find_files(path)
|
354
|
+
specs = searcher.find_all path
|
355
|
+
|
356
|
+
specs.map do |spec|
|
357
|
+
searcher.matching_files spec, path
|
358
|
+
end.flatten
|
359
|
+
end
|
360
|
+
|
339
361
|
##
|
340
362
|
# Finds the user's home directory.
|
341
363
|
#--
|
@@ -353,7 +375,7 @@ module Gem
|
|
353
375
|
end
|
354
376
|
|
355
377
|
if ENV['HOMEDRIVE'] && ENV['HOMEPATH'] then
|
356
|
-
return "#{ENV['HOMEDRIVE']}
|
378
|
+
return "#{ENV['HOMEDRIVE']}#{ENV['HOMEPATH']}"
|
357
379
|
end
|
358
380
|
|
359
381
|
begin
|
@@ -466,13 +488,11 @@ module Gem
|
|
466
488
|
|
467
489
|
##
|
468
490
|
# manage_gems is useless and deprecated. Don't call it anymore.
|
469
|
-
#--
|
470
|
-
# TODO warn w/ RubyGems 1.2.x release.
|
471
491
|
|
472
|
-
def self.manage_gems
|
473
|
-
|
492
|
+
def self.manage_gems # :nodoc:
|
493
|
+
file, lineno = location_of_caller
|
474
494
|
|
475
|
-
|
495
|
+
warn "#{file}:#{lineno}:Warning: Gem::manage_gems is deprecated and will be removed on or after March 2009."
|
476
496
|
end
|
477
497
|
|
478
498
|
##
|
@@ -489,11 +509,7 @@ module Gem
|
|
489
509
|
@gem_path ||= nil
|
490
510
|
|
491
511
|
unless @gem_path then
|
492
|
-
paths =
|
493
|
-
[ENV['GEM_PATH']]
|
494
|
-
else
|
495
|
-
[default_path]
|
496
|
-
end
|
512
|
+
paths = [ENV['GEM_PATH'] || Gem.configuration.path || default_path]
|
497
513
|
|
498
514
|
if defined?(APPLE_GEM_HOME) and not ENV['GEM_PATH'] then
|
499
515
|
paths << APPLE_GEM_HOME
|
@@ -523,6 +539,40 @@ module Gem
|
|
523
539
|
@platforms
|
524
540
|
end
|
525
541
|
|
542
|
+
##
|
543
|
+
# Adds a post-install hook that will be passed an Gem::Installer instance
|
544
|
+
# when Gem::Installer#install is called
|
545
|
+
|
546
|
+
def self.post_install(&hook)
|
547
|
+
@post_install_hooks << hook
|
548
|
+
end
|
549
|
+
|
550
|
+
##
|
551
|
+
# Adds a post-uninstall hook that will be passed a Gem::Uninstaller instance
|
552
|
+
# and the spec that was uninstalled when Gem::Uninstaller#uninstall is
|
553
|
+
# called
|
554
|
+
|
555
|
+
def self.post_uninstall(&hook)
|
556
|
+
@post_uninstall_hooks << hook
|
557
|
+
end
|
558
|
+
|
559
|
+
##
|
560
|
+
# Adds a pre-install hook that will be passed an Gem::Installer instance
|
561
|
+
# when Gem::Installer#install is called
|
562
|
+
|
563
|
+
def self.pre_install(&hook)
|
564
|
+
@pre_install_hooks << hook
|
565
|
+
end
|
566
|
+
|
567
|
+
##
|
568
|
+
# Adds a pre-uninstall hook that will be passed an Gem::Uninstaller instance
|
569
|
+
# and the spec that will be uninstalled when Gem::Uninstaller#uninstall is
|
570
|
+
# called
|
571
|
+
|
572
|
+
def self.pre_uninstall(&hook)
|
573
|
+
@pre_uninstall_hooks << hook
|
574
|
+
end
|
575
|
+
|
526
576
|
##
|
527
577
|
# The directory prefix this RubyGems was installed at.
|
528
578
|
|
@@ -600,6 +650,9 @@ module Gem
|
|
600
650
|
@ruby = File.join(ConfigMap[:bindir],
|
601
651
|
ConfigMap[:ruby_install_name])
|
602
652
|
@ruby << ConfigMap[:EXEEXT]
|
653
|
+
|
654
|
+
# escape string in case path to ruby executable contain spaces.
|
655
|
+
@ruby.sub!(/.*\s.*/m, '"\&"')
|
603
656
|
end
|
604
657
|
|
605
658
|
@ruby
|
@@ -650,11 +703,18 @@ module Gem
|
|
650
703
|
|
651
704
|
@gem_path << Gem.dir
|
652
705
|
else
|
706
|
+
# TODO: should this be Gem.default_path instead?
|
653
707
|
@gem_path = [Gem.dir]
|
654
708
|
end
|
655
709
|
|
656
710
|
@gem_path.uniq!
|
657
|
-
@gem_path.each do |
|
711
|
+
@gem_path.each do |path|
|
712
|
+
if 0 == File.expand_path(path).index(Gem.user_home) and
|
713
|
+
Etc.getpwuid.uid != File::Stat.new(Gem.user_home).uid then
|
714
|
+
next # only create by matching user
|
715
|
+
end
|
716
|
+
ensure_gem_subdirectories path
|
717
|
+
end
|
658
718
|
end
|
659
719
|
|
660
720
|
private_class_method :set_paths
|
@@ -684,6 +744,14 @@ module Gem
|
|
684
744
|
@sources
|
685
745
|
end
|
686
746
|
|
747
|
+
##
|
748
|
+
# Need to be able to set the sources without calling
|
749
|
+
# Gem.sources.replace since that would cause an infinite loop.
|
750
|
+
|
751
|
+
def self.sources=(new_sources)
|
752
|
+
@sources = new_sources
|
753
|
+
end
|
754
|
+
|
687
755
|
##
|
688
756
|
# Glob pattern for require-able path suffixes.
|
689
757
|
|
@@ -730,6 +798,27 @@ module Gem
|
|
730
798
|
|
731
799
|
attr_reader :loaded_specs
|
732
800
|
|
801
|
+
##
|
802
|
+
# The list of hooks to be run before Gem::Install#install does any work
|
803
|
+
|
804
|
+
attr_reader :post_install_hooks
|
805
|
+
|
806
|
+
##
|
807
|
+
# The list of hooks to be run before Gem::Uninstall#uninstall does any
|
808
|
+
# work
|
809
|
+
|
810
|
+
attr_reader :post_uninstall_hooks
|
811
|
+
|
812
|
+
##
|
813
|
+
# The list of hooks to be run after Gem::Install#install is finished
|
814
|
+
|
815
|
+
attr_reader :pre_install_hooks
|
816
|
+
|
817
|
+
##
|
818
|
+
# The list of hooks to be run after Gem::Uninstall#uninstall is finished
|
819
|
+
|
820
|
+
attr_reader :pre_uninstall_hooks
|
821
|
+
|
733
822
|
# :stopdoc:
|
734
823
|
|
735
824
|
alias cache source_index # an alias for the old name
|
@@ -780,7 +869,10 @@ if defined?(RUBY_ENGINE) then
|
|
780
869
|
end
|
781
870
|
end
|
782
871
|
|
872
|
+
require 'rubygems/config_file'
|
873
|
+
|
783
874
|
if RUBY_VERSION < '1.9' then
|
784
875
|
require 'rubygems/custom_require'
|
785
876
|
end
|
786
877
|
|
878
|
+
Gem.clear_paths
|