rubygems-update 1.8.5 → 1.8.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/History.txt +23 -1
- data/lib/rubygems.rb +27 -16
- data/lib/rubygems/commands/server_command.rb +1 -1
- data/lib/rubygems/ext/builder.rb +1 -1
- data/lib/rubygems/installer.rb +1 -1
- data/lib/rubygems/package/tar_writer.rb +1 -1
- data/lib/rubygems/path_support.rb +7 -2
- data/lib/rubygems/requirement.rb +34 -0
- data/lib/rubygems/source_index.rb +4 -2
- data/lib/rubygems/spec_fetcher.rb +1 -1
- data/lib/rubygems/specification.rb +9 -3
- data/test/rubygems/test_gem.rb +24 -4
- data/test/rubygems/test_gem_installer.rb +18 -0
- data/test/rubygems/test_gem_path_support.rb +9 -0
- data/test/rubygems/test_gem_specification.rb +10 -0
- metadata +6 -8
data/History.txt
CHANGED
@@ -1,4 +1,26 @@
|
|
1
|
-
=== 1.8.
|
1
|
+
=== 1.8.6 / 2011-07-25
|
2
|
+
|
3
|
+
* 1 major enhancement:
|
4
|
+
|
5
|
+
* Restore behavior of Gem::Specification#loaded? Ruby Bug #5032
|
6
|
+
|
7
|
+
* 1 minor enhancement:
|
8
|
+
|
9
|
+
* Add autorequires and delay startup of RubyGems until require is called.
|
10
|
+
See Ruby bug #4962
|
11
|
+
|
12
|
+
* 1 bug fix:
|
13
|
+
|
14
|
+
* Clean up SourceIndex.add_specs to not be so damn noisy. (tadman)
|
15
|
+
* Added missing APPLE_GEM_HOME in paths.
|
16
|
+
* Extend YAML::Syck::DefaultKey fixing to `marshal_dump` as well.
|
17
|
+
* Fix #29216: check correct bin_dir in check_that_user_bin_dir_is_in_path.
|
18
|
+
* Revert Gem.latest_load_paths to working order (PathSupport revert).
|
19
|
+
* Restore normalization of GEM_HOME.
|
20
|
+
* Handle the Syck DefaultKey problem once and for all.
|
21
|
+
* Fix SystemStackError occurring with "gem list -r -a" on 1.9.
|
22
|
+
|
23
|
+
=== 1.8.5 / 2011-05-31
|
2
24
|
|
3
25
|
* 2 minor enhancement:
|
4
26
|
|
data/lib/rubygems.rb
CHANGED
@@ -26,8 +26,6 @@ if Gem::GEM_PRELUDE_SUCKAGE and defined?(Gem::QuickLoader) then
|
|
26
26
|
end
|
27
27
|
|
28
28
|
require 'rubygems/defaults'
|
29
|
-
require "rubygems/dependency_list"
|
30
|
-
require 'rubygems/path_support'
|
31
29
|
require 'rbconfig'
|
32
30
|
require "rubygems/deprecate"
|
33
31
|
|
@@ -120,7 +118,7 @@ require "rubygems/deprecate"
|
|
120
118
|
# -The RubyGems Team
|
121
119
|
|
122
120
|
module Gem
|
123
|
-
VERSION = '1.8.
|
121
|
+
VERSION = '1.8.6'
|
124
122
|
|
125
123
|
##
|
126
124
|
# Raised when RubyGems is unable to load or activate a gem. Contains the
|
@@ -422,15 +420,15 @@ module Gem
|
|
422
420
|
def self.each_load_path(partials)
|
423
421
|
partials.each do |gp|
|
424
422
|
base = File.basename gp
|
425
|
-
specfn =
|
426
|
-
if
|
427
|
-
spec = eval(
|
423
|
+
specfn = File.join(dir, "specifications", "#{base}.gemspec")
|
424
|
+
if File.exists? specfn
|
425
|
+
spec = eval(File.read(specfn))
|
428
426
|
spec.require_paths.each do |rp|
|
429
|
-
yield(gp
|
427
|
+
yield File.join(gp,rp)
|
430
428
|
end
|
431
429
|
else
|
432
|
-
filename =
|
433
|
-
yield(filename) if
|
430
|
+
filename = File.join(gp, 'lib')
|
431
|
+
yield(filename) if File.exists? filename
|
434
432
|
end
|
435
433
|
end
|
436
434
|
end
|
@@ -585,7 +583,7 @@ module Gem
|
|
585
583
|
|
586
584
|
Gem.path.each do |gemdir|
|
587
585
|
each_load_path(latest_partials(gemdir)) do |load_path|
|
588
|
-
result <<
|
586
|
+
result << load_path
|
589
587
|
end
|
590
588
|
end
|
591
589
|
|
@@ -640,10 +638,23 @@ module Gem
|
|
640
638
|
# Loads YAML, preferring Psych
|
641
639
|
|
642
640
|
def self.load_yaml
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
641
|
+
begin
|
642
|
+
require 'psych'
|
643
|
+
rescue ::LoadError
|
644
|
+
ensure
|
645
|
+
require 'yaml'
|
646
|
+
end
|
647
|
+
|
648
|
+
# Hack to handle syck's DefaultKey bug with psych.
|
649
|
+
# See the note at the top of lib/rubygems/requirement.rb for
|
650
|
+
# why we end up defining DefaultKey more than once.
|
651
|
+
if !defined? YAML::Syck
|
652
|
+
YAML.module_eval do
|
653
|
+
const_set 'Syck', Module.new {
|
654
|
+
const_set 'DefaultKey', Class.new
|
655
|
+
}
|
656
|
+
end
|
657
|
+
end
|
647
658
|
end
|
648
659
|
|
649
660
|
##
|
@@ -1136,11 +1147,13 @@ module Gem
|
|
1136
1147
|
autoload :Version, 'rubygems/version'
|
1137
1148
|
autoload :Requirement, 'rubygems/requirement'
|
1138
1149
|
autoload :Dependency, 'rubygems/dependency'
|
1150
|
+
autoload :DependencyList, 'rubygems/dependency_list'
|
1139
1151
|
autoload :GemPathSearcher, 'rubygems/gem_path_searcher'
|
1140
1152
|
autoload :SpecFetcher, 'rubygems/spec_fetcher'
|
1141
1153
|
autoload :Specification, 'rubygems/specification'
|
1142
1154
|
autoload :Cache, 'rubygems/source_index'
|
1143
1155
|
autoload :SourceIndex, 'rubygems/source_index'
|
1156
|
+
autoload :PathSupport, 'rubygems/path_support'
|
1144
1157
|
autoload :Platform, 'rubygems/platform'
|
1145
1158
|
autoload :Builder, 'rubygems/builder'
|
1146
1159
|
autoload :ConfigFile, 'rubygems/config_file'
|
@@ -1232,8 +1245,6 @@ end
|
|
1232
1245
|
|
1233
1246
|
require 'rubygems/custom_require'
|
1234
1247
|
|
1235
|
-
Gem.clear_paths
|
1236
|
-
|
1237
1248
|
module Gem
|
1238
1249
|
class << self
|
1239
1250
|
extend Deprecate
|
@@ -44,7 +44,7 @@ class Gem::Commands::ServerCommand < Gem::Command
|
|
44
44
|
options[:addresses].push(*address)
|
45
45
|
end
|
46
46
|
|
47
|
-
add_option '-l', '--launch[=COMMAND]',
|
47
|
+
add_option '-l', '--launch[=COMMAND]',
|
48
48
|
'launches a browser window',
|
49
49
|
"COMMAND defaults to 'start' on Windows",
|
50
50
|
"and 'open' on all other platforms" do |launch, options|
|
data/lib/rubygems/ext/builder.rb
CHANGED
@@ -13,7 +13,7 @@ class Gem::Ext::Builder
|
|
13
13
|
|
14
14
|
def self.make(dest_path, results)
|
15
15
|
unless File.exist? 'Makefile' then
|
16
|
-
raise Gem::InstallError, "Makefile not found:\n\n#{results.join "\n"}"
|
16
|
+
raise Gem::InstallError, "Makefile not found:\n\n#{results.join "\n"}"
|
17
17
|
end
|
18
18
|
|
19
19
|
mf = File.read('Makefile')
|
data/lib/rubygems/installer.rb
CHANGED
@@ -433,7 +433,7 @@ class Gem::Installer
|
|
433
433
|
end
|
434
434
|
|
435
435
|
def check_that_user_bin_dir_is_in_path
|
436
|
-
user_bin_dir =
|
436
|
+
user_bin_dir = @bin_dir || Gem.bindir(gem_home)
|
437
437
|
unless ENV['PATH'].split(File::PATH_SEPARATOR).include? user_bin_dir then
|
438
438
|
unless self.class.path_warning then
|
439
439
|
alert_warning "You don't have #{user_bin_dir} in your PATH,\n\t gem executables will not run."
|
@@ -22,6 +22,11 @@ class Gem::PathSupport
|
|
22
22
|
|
23
23
|
# note 'env' vs 'ENV'...
|
24
24
|
@home = env["GEM_HOME"] || ENV["GEM_HOME"] || Gem.default_dir
|
25
|
+
|
26
|
+
if File::ALT_SEPARATOR then
|
27
|
+
@home = @home.gsub(File::ALT_SEPARATOR, File::SEPARATOR)
|
28
|
+
end
|
29
|
+
|
25
30
|
self.path = env["GEM_PATH"] || ENV["GEM_PATH"]
|
26
31
|
end
|
27
32
|
|
@@ -62,8 +67,8 @@ class Gem::PathSupport
|
|
62
67
|
else
|
63
68
|
gem_path = Gem.default_path + [@home]
|
64
69
|
|
65
|
-
if defined?(
|
66
|
-
gem_path <<
|
70
|
+
if defined?(APPLE_GEM_HOME)
|
71
|
+
gem_path << APPLE_GEM_HOME
|
67
72
|
end
|
68
73
|
end
|
69
74
|
|
data/lib/rubygems/requirement.rb
CHANGED
@@ -1,5 +1,24 @@
|
|
1
1
|
require "rubygems/version"
|
2
2
|
|
3
|
+
# Hack to handle syck's DefaultKey bug with psych
|
4
|
+
#
|
5
|
+
# Quick note! If/when psych loads in 1.9, it will redefine
|
6
|
+
# YAML to point to Psych by removing the YAML constant.
|
7
|
+
# Thusly, over in Gem.load_yaml, we define DefaultKey again
|
8
|
+
# after proper yaml library has been loaded.
|
9
|
+
#
|
10
|
+
# All this is so that there is always a YAML::Syck::DefaultKey
|
11
|
+
# class no matter if the full yaml library has loaded or not.
|
12
|
+
#
|
13
|
+
module YAML
|
14
|
+
if !defined? Syck
|
15
|
+
module Syck
|
16
|
+
class DefaultKey
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
3
22
|
##
|
4
23
|
# A Requirement is a set of one or more version restrictions. It supports a
|
5
24
|
# few (<tt>=, !=, >, <, >=, <=, ~></tt>) different restriction operators.
|
@@ -110,11 +129,15 @@ class Gem::Requirement
|
|
110
129
|
end
|
111
130
|
|
112
131
|
def marshal_dump # :nodoc:
|
132
|
+
fix_syck_default_key_in_requirements
|
133
|
+
|
113
134
|
[@requirements]
|
114
135
|
end
|
115
136
|
|
116
137
|
def marshal_load array # :nodoc:
|
117
138
|
@requirements = array[0]
|
139
|
+
|
140
|
+
fix_syck_default_key_in_requirements
|
118
141
|
end
|
119
142
|
|
120
143
|
def prerelease?
|
@@ -154,6 +177,17 @@ class Gem::Requirement
|
|
154
177
|
def <=> other # :nodoc:
|
155
178
|
to_s <=> other.to_s
|
156
179
|
end
|
180
|
+
|
181
|
+
private
|
182
|
+
|
183
|
+
def fix_syck_default_key_in_requirements
|
184
|
+
# Fixup the Syck DefaultKey bug
|
185
|
+
@requirements.each do |r|
|
186
|
+
if r[0].kind_of? YAML::Syck::DefaultKey
|
187
|
+
r[0] = "="
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
157
191
|
end
|
158
192
|
|
159
193
|
# :stopdoc:
|
@@ -193,8 +193,10 @@ class Gem::SourceIndex
|
|
193
193
|
# Add gem specifications to the source index.
|
194
194
|
|
195
195
|
def add_specs(*gem_specs)
|
196
|
-
|
197
|
-
|
196
|
+
Deprecate.skip_during do
|
197
|
+
gem_specs.each do |spec|
|
198
|
+
add_spec spec
|
199
|
+
end
|
198
200
|
end
|
199
201
|
end
|
200
202
|
|
@@ -167,7 +167,7 @@ class Gem::SpecFetcher
|
|
167
167
|
|
168
168
|
found.each do |source_uri, specs|
|
169
169
|
uri_str = source_uri.to_s
|
170
|
-
specs_and_sources.
|
170
|
+
specs_and_sources.concat(specs.map { |spec| [spec, uri_str] })
|
171
171
|
end
|
172
172
|
|
173
173
|
[specs_and_sources, errors]
|
@@ -213,9 +213,9 @@ class Gem::Specification
|
|
213
213
|
##
|
214
214
|
# True when this gemspec has been activated. This attribute is not persisted.
|
215
215
|
|
216
|
-
attr_accessor :loaded
|
216
|
+
attr_accessor :loaded # :nodoc:
|
217
217
|
|
218
|
-
alias :loaded? :loaded
|
218
|
+
alias :loaded? :loaded # :nodoc:
|
219
219
|
|
220
220
|
##
|
221
221
|
# True when this gemspec has been activated. This attribute is not persisted.
|
@@ -683,6 +683,7 @@ class Gem::Specification
|
|
683
683
|
spec.instance_variable_set :@platform, array[16].to_s
|
684
684
|
spec.instance_variable_set :@license, array[17]
|
685
685
|
spec.instance_variable_set :@loaded, false
|
686
|
+
spec.instance_variable_set :@activated, false
|
686
687
|
|
687
688
|
spec
|
688
689
|
end
|
@@ -742,7 +743,8 @@ class Gem::Specification
|
|
742
743
|
add_self_to_load_path
|
743
744
|
|
744
745
|
Gem.loaded_specs[self.name] = self
|
745
|
-
|
746
|
+
@activated = true
|
747
|
+
@loaded = true
|
746
748
|
|
747
749
|
return true
|
748
750
|
end
|
@@ -1318,6 +1320,7 @@ class Gem::Specification
|
|
1318
1320
|
|
1319
1321
|
def initialize name = nil, version = nil
|
1320
1322
|
@loaded = false
|
1323
|
+
@activated = false
|
1321
1324
|
@loaded_from = nil
|
1322
1325
|
@original_platform = nil
|
1323
1326
|
|
@@ -2120,3 +2123,6 @@ class Gem::Specification
|
|
2120
2123
|
# deprecate :file_name, :cache_file, 2011, 10
|
2121
2124
|
# deprecate :full_gem_path, :cache_file, 2011, 10
|
2122
2125
|
end
|
2126
|
+
|
2127
|
+
Gem.clear_paths
|
2128
|
+
|
data/test/rubygems/test_gem.rb
CHANGED
@@ -712,7 +712,7 @@ class TestGem < Gem::TestCase
|
|
712
712
|
def test_self_path_default
|
713
713
|
util_path
|
714
714
|
|
715
|
-
if defined?
|
715
|
+
if defined?(APPLE_GEM_HOME)
|
716
716
|
orig_APPLE_GEM_HOME = APPLE_GEM_HOME
|
717
717
|
Object.send :remove_const, :APPLE_GEM_HOME
|
718
718
|
end
|
@@ -721,7 +721,7 @@ class TestGem < Gem::TestCase
|
|
721
721
|
|
722
722
|
assert_equal [Gem.default_path, Gem.dir].flatten.uniq, Gem.path
|
723
723
|
ensure
|
724
|
-
Object.const_set :APPLE_GEM_HOME, orig_APPLE_GEM_HOME
|
724
|
+
Object.const_set :APPLE_GEM_HOME, orig_APPLE_GEM_HOME if orig_APPLE_GEM_HOME
|
725
725
|
end
|
726
726
|
|
727
727
|
unless win_platform?
|
@@ -730,11 +730,14 @@ class TestGem < Gem::TestCase
|
|
730
730
|
|
731
731
|
Gem.clear_paths
|
732
732
|
apple_gem_home = File.join @tempdir, 'apple_gem_home'
|
733
|
-
|
733
|
+
|
734
|
+
old, $-w = $-w, nil
|
735
|
+
Object.const_set :APPLE_GEM_HOME, apple_gem_home
|
736
|
+
$-w = old
|
734
737
|
|
735
738
|
assert_includes Gem.path, apple_gem_home
|
736
739
|
ensure
|
737
|
-
|
740
|
+
Object.send :remove_const, :APPLE_GEM_HOME
|
738
741
|
end
|
739
742
|
|
740
743
|
def test_self_path_APPLE_GEM_HOME_GEM_PATH
|
@@ -1070,6 +1073,23 @@ class TestGem < Gem::TestCase
|
|
1070
1073
|
assert_equal :loaded, TEST_PLUGIN_EXCEPTION rescue nil
|
1071
1074
|
end
|
1072
1075
|
|
1076
|
+
def test_latest_load_paths
|
1077
|
+
spec = quick_spec 'a', '4' do |s|
|
1078
|
+
s.require_paths = ["lib"]
|
1079
|
+
end
|
1080
|
+
|
1081
|
+
install_gem spec
|
1082
|
+
|
1083
|
+
# @exec_path = File.join spec.full_gem_path, spec.bindir, 'exec'
|
1084
|
+
# @abin_path = File.join spec.full_gem_path, spec.bindir, 'abin'
|
1085
|
+
# FileUtils.mkdir_p File.join(stem, "gems", "test-3")
|
1086
|
+
|
1087
|
+
Deprecate.skip_during do
|
1088
|
+
expected = [File.join(@gemhome, "gems", "a-4", "lib")]
|
1089
|
+
assert_equal expected, Gem.latest_load_paths
|
1090
|
+
end
|
1091
|
+
end
|
1092
|
+
|
1073
1093
|
def with_plugin(path)
|
1074
1094
|
test_plugin_path = File.expand_path("test/rubygems/plugin/#{path}",
|
1075
1095
|
@@project_dir)
|
@@ -207,6 +207,24 @@ load Gem.bin_path('a', 'executable', version)
|
|
207
207
|
assert_match %r|generated by RubyGems|, wrapper
|
208
208
|
end
|
209
209
|
|
210
|
+
def test_generate_bin_bindir_with_user_install_warning
|
211
|
+
|
212
|
+
options = {
|
213
|
+
:bin_dir => "/usr/bin",
|
214
|
+
:install_dir => "/non/existant"
|
215
|
+
}
|
216
|
+
|
217
|
+
inst = Gem::Installer.new nil, options
|
218
|
+
|
219
|
+
Gem::Installer.path_warning = false
|
220
|
+
|
221
|
+
use_ui @ui do
|
222
|
+
inst.check_that_user_bin_dir_is_in_path
|
223
|
+
end
|
224
|
+
|
225
|
+
assert_equal "", @ui.error
|
226
|
+
end
|
227
|
+
|
210
228
|
def test_generate_bin_script
|
211
229
|
@installer.wrappers = true
|
212
230
|
util_make_exec
|
@@ -28,6 +28,15 @@ class TestGemPathSupport < Gem::TestCase
|
|
28
28
|
assert_equal expected, ps.path
|
29
29
|
end
|
30
30
|
|
31
|
+
if defined?(File::ALT_SEPARATOR) and File::ALT_SEPARATOR
|
32
|
+
def test_initialize_home_normalize
|
33
|
+
alternate = @tempdir.gsub(File::SEPARATOR, File::ALT_SEPARATOR)
|
34
|
+
ps = Gem::PathSupport.new "GEM_HOME" => alternate
|
35
|
+
|
36
|
+
assert_equal @tempdir, ps.home, "normalize values"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
31
40
|
def test_initialize_path
|
32
41
|
ps = Gem::PathSupport.new "GEM_PATH" => %W[#{@tempdir}/foo #{@tempdir}/bar]
|
33
42
|
|
@@ -319,6 +319,16 @@ end
|
|
319
319
|
assert_equal 'old_platform', same_spec.original_platform
|
320
320
|
end
|
321
321
|
|
322
|
+
def test_activate
|
323
|
+
@a2.activate
|
324
|
+
|
325
|
+
assert @a2.activated?
|
326
|
+
|
327
|
+
Deprecate.skip_during do
|
328
|
+
assert @a2.loaded?
|
329
|
+
end
|
330
|
+
end
|
331
|
+
|
322
332
|
def test_add_dependency_with_explicit_type
|
323
333
|
gem = quick_spec "awesome", "1.0" do |awesome|
|
324
334
|
awesome.add_development_dependency "monkey"
|
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:
|
4
|
+
hash: 59
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 1.8.
|
9
|
+
- 6
|
10
|
+
version: 1.8.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jim Weirich
|
@@ -17,8 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2011-
|
21
|
-
default_executable:
|
20
|
+
date: 2011-07-26 00:00:00 Z
|
22
21
|
dependencies:
|
23
22
|
- !ruby/object:Gem::Dependency
|
24
23
|
name: minitest
|
@@ -379,7 +378,6 @@ files:
|
|
379
378
|
- util/CL2notes
|
380
379
|
- util/gem_prelude.rb
|
381
380
|
- .gemtest
|
382
|
-
has_rdoc: true
|
383
381
|
homepage: http://rubygems.org
|
384
382
|
licenses: []
|
385
383
|
|
@@ -387,7 +385,7 @@ post_install_message:
|
|
387
385
|
rdoc_options:
|
388
386
|
- --main
|
389
387
|
- README.rdoc
|
390
|
-
- --title=RubyGems 1.8.
|
388
|
+
- --title=RubyGems 1.8.6 Documentation
|
391
389
|
require_paths:
|
392
390
|
- hide_lib_for_update
|
393
391
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -413,7 +411,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
413
411
|
requirements: []
|
414
412
|
|
415
413
|
rubyforge_project: rubygems
|
416
|
-
rubygems_version: 1.
|
414
|
+
rubygems_version: 1.8.5
|
417
415
|
signing_key:
|
418
416
|
specification_version: 3
|
419
417
|
summary: RubyGems is a package management framework for Ruby
|