rubygems-update 2.7.4 → 2.7.5
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.
- checksums.yaml +4 -4
- data/.travis.yml +5 -8
- data/Manifest.txt +2 -1
- data/Rakefile +7 -0
- data/bundler/CHANGELOG.md +13 -0
- data/bundler/bundler.gemspec +2 -0
- data/bundler/lib/bundler/cli/gem.rb +1 -1
- data/bundler/lib/bundler/cli/init.rb +1 -5
- data/bundler/lib/bundler/cli/update.rb +3 -1
- data/bundler/lib/bundler/definition.rb +1 -1
- data/bundler/lib/bundler/resolver.rb +4 -1
- data/bundler/lib/bundler/source/rubygems.rb +2 -4
- data/bundler/lib/bundler/templates/.document +1 -0
- data/bundler/lib/bundler/templates/Executable +11 -3
- data/bundler/lib/bundler/templates/newgem/{.travis.yml.tt → travis.yml.tt} +0 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/lib/rubygems.rb +5 -5
- data/lib/rubygems/commands/generate_index_command.rb +1 -1
- data/lib/rubygems/commands/setup_command.rb +12 -6
- data/lib/rubygems/commands/unpack_command.rb +2 -2
- data/lib/rubygems/config_file.rb +1 -1
- data/lib/rubygems/ext/builder.rb +1 -1
- data/lib/rubygems/indexer.rb +5 -4
- data/lib/rubygems/installer.rb +9 -4
- data/lib/rubygems/package.rb +2 -2
- data/lib/rubygems/package/file_source.rb +2 -2
- data/lib/rubygems/package/old.rb +1 -1
- data/lib/rubygems/request_set/lockfile.rb +1 -1
- data/lib/rubygems/security.rb +1 -1
- data/lib/rubygems/security/trust_dir.rb +1 -1
- data/lib/rubygems/source.rb +1 -1
- data/lib/rubygems/specification.rb +4 -0
- data/lib/rubygems/stub_specification.rb +2 -0
- data/lib/rubygems/test_case.rb +14 -8
- data/lib/rubygems/test_utilities.rb +1 -1
- data/lib/rubygems/util.rb +2 -1
- data/lib/rubygems/validator.rb +3 -3
- data/test/rubygems/test_gem.rb +17 -14
- data/test/rubygems/test_gem_commands_cleanup_command.rb +1 -1
- data/test/rubygems/test_gem_commands_install_command.rb +1 -0
- data/test/rubygems/test_gem_commands_push_command.rb +5 -5
- data/test/rubygems/test_gem_commands_setup_command.rb +20 -20
- data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -2
- data/test/rubygems/test_gem_dependency_installer.rb +1 -1
- data/test/rubygems/test_gem_doctor.rb +2 -2
- data/test/rubygems/test_gem_ext_builder.rb +6 -6
- data/test/rubygems/test_gem_gemcutter_utilities.rb +4 -4
- data/test/rubygems/test_gem_indexer.rb +1 -2
- data/test/rubygems/test_gem_install_update_options.rb +2 -0
- data/test/rubygems/test_gem_installer.rb +5 -1
- data/test/rubygems/test_gem_package.rb +15 -15
- data/test/rubygems/test_gem_package_old.rb +1 -1
- data/test/rubygems/test_gem_rdoc.rb +2 -0
- data/test/rubygems/test_gem_remote_fetcher.rb +1 -1
- data/test/rubygems/test_gem_request_connection_pools.rb +6 -7
- data/test/rubygems/test_gem_request_set.rb +7 -7
- data/test/rubygems/test_gem_request_set_lockfile.rb +4 -4
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +1 -1
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
- data/test/rubygems/test_gem_resolver_git_specification.rb +1 -1
- data/test/rubygems/test_gem_server.rb +4 -4
- data/test/rubygems/test_gem_source.rb +3 -3
- data/test/rubygems/test_gem_source_git.rb +1 -1
- data/test/rubygems/test_gem_specification.rb +21 -17
- data/test/rubygems/test_gem_stub_specification.rb +7 -7
- data/test/rubygems/test_gem_util.rb +23 -0
- data/test/rubygems/test_gem_version.rb +11 -0
- data/test/rubygems/test_require.rb +15 -21
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95086df533cd20a4f5f170842e369a7a883a80653b84ff3398adffc7514299c5
|
4
|
+
data.tar.gz: c21e484af79d93bb72757b37903e990081436482f00cd63bd4b941699ba5eb88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a5b15531e1362e6f141956de530d446fc9c013b59e67573a6d3ada5630e67f90c8d6b732d1895ec0bc4233a292fc1316028049dee4dc1fe947034fe531ebf9b
|
7
|
+
data.tar.gz: 82ee7c7338628277e6127faeac9043b19bae6b57dee39dd48c8137f1c954866a6a6e43f6e44fbfa2428f86efe1d0d24ba724fa4f188ae4383117a3388beae171
|
data/.travis.yml
CHANGED
@@ -21,6 +21,7 @@ rvm:
|
|
21
21
|
- 2.2.9
|
22
22
|
- 2.3.6
|
23
23
|
- 2.4.3
|
24
|
+
- 2.5.0
|
24
25
|
- ruby-head
|
25
26
|
env:
|
26
27
|
- "TEST_TOOL=rubygems YAML=syck"
|
@@ -44,15 +45,11 @@ matrix:
|
|
44
45
|
env: "TEST_TOOL=rubygems YAML=syck"
|
45
46
|
- rvm: 2.4.3
|
46
47
|
env: "TEST_TOOL=rubygems YAML=syck"
|
48
|
+
- rvm: 2.5.0
|
49
|
+
env: "TEST_TOOL=rubygems YAML=syck"
|
47
50
|
- rvm: ruby-head
|
48
51
|
env: "TEST_TOOL=rubygems YAML=syck"
|
49
52
|
allow_failures:
|
50
|
-
- rvm: 1.8.7
|
51
|
-
env: "TEST_TOOL=bundler RGV=master"
|
52
|
-
- rvm: 1.9.3
|
53
|
-
env: "TEST_TOOL=bundler RGV=master"
|
54
|
-
- rvm: 2.0.0
|
55
|
-
env: "TEST_TOOL=bundler RGV=master"
|
56
|
-
- rvm: 2.1.10
|
57
|
-
env: "TEST_TOOL=bundler RGV=master"
|
58
53
|
- rvm: ruby-head
|
54
|
+
- rvm: 2.5.0
|
55
|
+
env: "TEST_TOOL=rubygems YAML=psych"
|
data/Manifest.txt
CHANGED
@@ -144,12 +144,12 @@ bundler/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem
|
|
144
144
|
bundler/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem
|
145
145
|
bundler/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem
|
146
146
|
bundler/lib/bundler/stub_specification.rb
|
147
|
+
bundler/lib/bundler/templates/.document
|
147
148
|
bundler/lib/bundler/templates/Executable
|
148
149
|
bundler/lib/bundler/templates/Executable.bundler
|
149
150
|
bundler/lib/bundler/templates/Executable.standalone
|
150
151
|
bundler/lib/bundler/templates/Gemfile
|
151
152
|
bundler/lib/bundler/templates/gems.rb
|
152
|
-
bundler/lib/bundler/templates/newgem/.travis.yml.tt
|
153
153
|
bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
|
154
154
|
bundler/lib/bundler/templates/newgem/Gemfile.tt
|
155
155
|
bundler/lib/bundler/templates/newgem/LICENSE.txt.tt
|
@@ -170,6 +170,7 @@ bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt
|
|
170
170
|
bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt
|
171
171
|
bundler/lib/bundler/templates/newgem/test/newgem_test.rb.tt
|
172
172
|
bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt
|
173
|
+
bundler/lib/bundler/templates/newgem/travis.yml.tt
|
173
174
|
bundler/lib/bundler/ui.rb
|
174
175
|
bundler/lib/bundler/ui/rg_proxy.rb
|
175
176
|
bundler/lib/bundler/ui/shell.rb
|
data/Rakefile
CHANGED
@@ -103,6 +103,13 @@ hoe.testlib = :minitest
|
|
103
103
|
hoe.test_prelude = <<-RUBY.gsub("\n", ";")
|
104
104
|
gem "minitest", "~> 4.0"
|
105
105
|
$:.unshift #{File.expand_path("../bundler/lib", __FILE__).dump}
|
106
|
+
if "1.8" < RUBY_VERSION && RUBY_VERSION < "2.2"
|
107
|
+
module Gem
|
108
|
+
@path_to_default_spec_map.delete_if do |_path, spec|
|
109
|
+
spec.name == "bundler"
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
106
113
|
RUBY
|
107
114
|
|
108
115
|
Rake::Task['docs'].clear
|
data/bundler/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
## 1.16.1 (2017-12-12)
|
2
|
+
|
3
|
+
Bugfixes:
|
4
|
+
|
5
|
+
- avoid hanging on complex resolver errors ([#6114](https://github.com/bundler/bundler/issues/6114), @halfbyte)
|
6
|
+
- avoid an error when running `bundle update --group` ([#6156](https://github.com/bundler/bundler/issues/6156), @mattbrictson)
|
7
|
+
- ensure the resolver prefers non-pre-release gems when possible ([#6181](https://github.com/bundler/bundler/issues/6181), @greysteil)
|
8
|
+
- include bundler's gemspec in the built gem ([#6165](https://github.com/bundler/bundler/issues/6165), @dr-itz)
|
9
|
+
- ensure locally installed specs are not overriden by those in remote sources during dependency resolution ([#6072](https://github.com/bundler/bundler/issues/6072), @indirect)
|
10
|
+
- ensure custom gemfiles are respected in generated binstubs (@pftg)
|
11
|
+
- fail gracefully when loading a bundler-generated binstub when `bin/bundle` was not generated by bundler ([#6149](https://github.com/bundler/bundler/issues/6149), @hsbt)
|
12
|
+
- allow `bundle init` to be run even when a parent directory contains a gemfile ([#6205](https://github.com/bundler/bundler/issues/6205), @colby-swandale)
|
13
|
+
|
1
14
|
## 1.16.0 (2017-10-31)
|
2
15
|
|
3
16
|
Bugfixes:
|
data/bundler/bundler.gemspec
CHANGED
@@ -48,6 +48,8 @@ Gem::Specification.new do |s|
|
|
48
48
|
s.files += Dir.glob("man/**/*")
|
49
49
|
# Include the CHANGELOG.md, LICENSE.md, README.md manually
|
50
50
|
s.files += %w[CHANGELOG.md LICENSE.md README.md]
|
51
|
+
# include the gemspec itself because warbler breaks w/o it
|
52
|
+
s.files += %w[bundler.gemspec]
|
51
53
|
|
52
54
|
s.bindir = "exe"
|
53
55
|
s.executables = %w[bundle bundler]
|
@@ -83,7 +83,7 @@ module Bundler
|
|
83
83
|
config[:test] = test_framework
|
84
84
|
config[:test_framework_version] = TEST_FRAMEWORK_VERSIONS[test_framework]
|
85
85
|
|
86
|
-
templates.merge!("
|
86
|
+
templates.merge!("travis.yml.tt" => ".travis.yml")
|
87
87
|
|
88
88
|
case test_framework
|
89
89
|
when "rspec"
|
@@ -36,11 +36,7 @@ module Bundler
|
|
36
36
|
private
|
37
37
|
|
38
38
|
def gemfile
|
39
|
-
@gemfile ||=
|
40
|
-
Bundler.default_gemfile
|
41
|
-
rescue GemfileNotFound
|
42
|
-
Bundler.feature_flag.init_gems_rb? ? "gems.rb" : "Gemfile"
|
43
|
-
end
|
39
|
+
@gemfile ||= Bundler.feature_flag.init_gems_rb? ? "gems.rb" : "Gemfile"
|
44
40
|
end
|
45
41
|
end
|
46
42
|
end
|
@@ -68,7 +68,9 @@ module Bundler
|
|
68
68
|
|
69
69
|
if locked_gems = Bundler.definition.locked_gems
|
70
70
|
gems.each do |name|
|
71
|
-
locked_version = locked_gems.specs.find {|s| s.name == name }
|
71
|
+
locked_version = locked_gems.specs.find {|s| s.name == name }
|
72
|
+
locked_version &&= locked_version.version
|
73
|
+
next unless locked_version
|
72
74
|
new_version = Bundler.definition.specs[name].first
|
73
75
|
new_version &&= new_version.version
|
74
76
|
if !new_version
|
@@ -245,7 +245,8 @@ module Bundler
|
|
245
245
|
if all <= 1
|
246
246
|
all - 1_000_000
|
247
247
|
else
|
248
|
-
search = search_for(dependency)
|
248
|
+
search = search_for(dependency)
|
249
|
+
search = @prerelease_specified[dependency.name] ? search.count : search.count {|s| !s.version.prerelease? }
|
249
250
|
search - all
|
250
251
|
end
|
251
252
|
end
|
@@ -305,6 +306,8 @@ module Bundler
|
|
305
306
|
:solver_name => "Bundler",
|
306
307
|
:possibility_type => "gem",
|
307
308
|
:reduce_trees => lambda do |trees|
|
309
|
+
# bail out if tree size is too big for Array#combination to make any sense
|
310
|
+
return trees if trees.size > 15
|
308
311
|
maximal = 1.upto(trees.size).map do |size|
|
309
312
|
trees.map(&:last).flatten(1).combination(size).to_a
|
310
313
|
end.flatten(1).select do |deps|
|
@@ -252,10 +252,8 @@ module Bundler
|
|
252
252
|
end
|
253
253
|
end
|
254
254
|
|
255
|
-
def double_check_for(unmet_dependency_names
|
255
|
+
def double_check_for(unmet_dependency_names)
|
256
256
|
return unless @allow_remote
|
257
|
-
raise ArgumentError, "missing index" unless index
|
258
|
-
|
259
257
|
return unless api_fetchers.any?
|
260
258
|
|
261
259
|
unmet_dependency_names = unmet_dependency_names.call
|
@@ -270,7 +268,7 @@ module Bundler
|
|
270
268
|
|
271
269
|
Bundler.ui.debug "Double checking for #{unmet_dependency_names || "all specs (due to the size of the request)"} in #{self}"
|
272
270
|
|
273
|
-
fetch_names(api_fetchers, unmet_dependency_names,
|
271
|
+
fetch_names(api_fetchers, unmet_dependency_names, specs, false)
|
274
272
|
end
|
275
273
|
|
276
274
|
def dependency_names_to_double_check
|
@@ -0,0 +1 @@
|
|
1
|
+
# Ignore all files in this directory
|
@@ -8,13 +8,21 @@
|
|
8
8
|
# this file is here to facilitate running it.
|
9
9
|
#
|
10
10
|
|
11
|
-
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
12
|
-
load(bundle_binstub) if File.file?(bundle_binstub)
|
13
|
-
|
14
11
|
require "pathname"
|
15
12
|
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../<%= relative_gemfile_path %>",
|
16
13
|
Pathname.new(__FILE__).realpath)
|
17
14
|
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 150) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
18
26
|
require "rubygems"
|
19
27
|
require "bundler/setup"
|
20
28
|
|
File without changes
|
@@ -7,7 +7,7 @@ module Bundler
|
|
7
7
|
# We're doing this because we might write tests that deal
|
8
8
|
# with other versions of bundler and we are unsure how to
|
9
9
|
# handle this better.
|
10
|
-
VERSION = "1.16.
|
10
|
+
VERSION = "1.16.1" unless defined?(::Bundler::VERSION)
|
11
11
|
|
12
12
|
def self.overwrite_loaded_gem_version
|
13
13
|
begin
|
data/lib/rubygems.rb
CHANGED
@@ -10,7 +10,7 @@ require 'rbconfig'
|
|
10
10
|
require 'thread'
|
11
11
|
|
12
12
|
module Gem
|
13
|
-
VERSION = "2.7.
|
13
|
+
VERSION = "2.7.5"
|
14
14
|
end
|
15
15
|
|
16
16
|
# Must be first since it unloads the prelude from 1.9.2
|
@@ -176,7 +176,7 @@ module Gem
|
|
176
176
|
write_binary_errors
|
177
177
|
end.freeze
|
178
178
|
|
179
|
-
USE_BUNDLER_FOR_GEMDEPS =
|
179
|
+
USE_BUNDLER_FOR_GEMDEPS = !ENV['DONT_USE_BUNDLER_FOR_GEMDEPS'] # :nodoc:
|
180
180
|
|
181
181
|
@@win_platform = nil
|
182
182
|
|
@@ -871,19 +871,19 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
871
871
|
# Safely read a file in binary mode on all platforms.
|
872
872
|
|
873
873
|
def self.read_binary(path)
|
874
|
-
open path, 'rb+' do |f|
|
874
|
+
File.open path, 'rb+' do |f|
|
875
875
|
f.flock(File::LOCK_EX)
|
876
876
|
f.read
|
877
877
|
end
|
878
878
|
rescue *READ_BINARY_ERRORS
|
879
|
-
open path, 'rb' do |f|
|
879
|
+
File.open path, 'rb' do |f|
|
880
880
|
f.read
|
881
881
|
end
|
882
882
|
rescue Errno::ENOLCK # NFS
|
883
883
|
if Thread.main != Thread.current
|
884
884
|
raise
|
885
885
|
else
|
886
|
-
open path, 'rb' do |f|
|
886
|
+
File.open path, 'rb' do |f|
|
887
887
|
f.read
|
888
888
|
end
|
889
889
|
end
|
@@ -68,7 +68,7 @@ Marshal::MINOR_VERSION constants. It is used to ensure compatibility.
|
|
68
68
|
|
69
69
|
if not File.exist?(options[:directory]) or
|
70
70
|
not File.directory?(options[:directory]) then
|
71
|
-
alert_error "unknown directory name #{directory}."
|
71
|
+
alert_error "unknown directory name #{options[:directory]}."
|
72
72
|
terminate_interaction 1
|
73
73
|
else
|
74
74
|
indexer = Gem::Indexer.new options.delete(:directory), options
|
@@ -350,7 +350,9 @@ By default, this RubyGems will install gem as:
|
|
350
350
|
def install_default_bundler_gem
|
351
351
|
return unless Gem::USE_BUNDLER_FOR_GEMDEPS
|
352
352
|
|
353
|
-
|
353
|
+
specs_dir = Gem::Specification.default_specifications_dir
|
354
|
+
File.join(options[:destdir], specs_dir) unless Gem.win_platform?
|
355
|
+
mkdir_p specs_dir
|
354
356
|
|
355
357
|
# Workaround for non-git environment.
|
356
358
|
gemspec = File.open('bundler/bundler.gemspec', 'rb'){|f| f.read.gsub(/`git ls-files -z`/, "''") }
|
@@ -361,11 +363,11 @@ By default, this RubyGems will install gem as:
|
|
361
363
|
bundler_spec.executables -= %w[bundler bundle_ruby]
|
362
364
|
|
363
365
|
# Remove bundler-*.gemspec in default specification directory.
|
364
|
-
Dir.entries(
|
366
|
+
Dir.entries(specs_dir).
|
365
367
|
select {|gs| gs.start_with?("bundler-") }.
|
366
|
-
each {|gs| File.delete(File.join(
|
368
|
+
each {|gs| File.delete(File.join(specs_dir, gs)) }
|
367
369
|
|
368
|
-
default_spec_path = File.join(
|
370
|
+
default_spec_path = File.join(specs_dir, "#{bundler_spec.full_name}.gemspec")
|
369
371
|
Gem.write_binary(default_spec_path, bundler_spec.to_ruby)
|
370
372
|
|
371
373
|
bundler_spec = Gem::Specification.load(default_spec_path)
|
@@ -383,8 +385,12 @@ By default, this RubyGems will install gem as:
|
|
383
385
|
each {|default_gem| rm_r File.join(bundler_spec.gems_dir, default_gem) }
|
384
386
|
end
|
385
387
|
|
386
|
-
|
387
|
-
|
388
|
+
bundler_bin_dir = File.join(Gem.default_dir, 'gems', bundler_spec.full_name, bundler_spec.bindir)
|
389
|
+
File.join(options[:destdir], bundler_bin_dir) unless Gem.win_platform?
|
390
|
+
mkdir_p bundler_bin_dir
|
391
|
+
bundler_spec.executables.each do |e|
|
392
|
+
cp File.join("bundler", bundler_spec.bindir, e), File.join(bundler_bin_dir, e)
|
393
|
+
end
|
388
394
|
|
389
395
|
if Gem.win_platform?
|
390
396
|
require 'rubygems/installer'
|
@@ -94,7 +94,7 @@ command help for an example.
|
|
94
94
|
|
95
95
|
spec_file = File.basename spec.spec_file
|
96
96
|
|
97
|
-
open spec_file, 'w' do |io|
|
97
|
+
File.open spec_file, 'w' do |io|
|
98
98
|
io.write metadata
|
99
99
|
end
|
100
100
|
else
|
@@ -176,7 +176,7 @@ command help for an example.
|
|
176
176
|
|
177
177
|
metadata = nil
|
178
178
|
|
179
|
-
open path, Gem.binary_mode do |io|
|
179
|
+
File.open path, Gem.binary_mode do |io|
|
180
180
|
tar = Gem::Package::TarReader.new io
|
181
181
|
tar.each_entry do |entry|
|
182
182
|
case entry.full_name
|
data/lib/rubygems/config_file.rb
CHANGED
data/lib/rubygems/ext/builder.rb
CHANGED
data/lib/rubygems/indexer.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
require 'rubygems'
|
3
3
|
require 'rubygems/package'
|
4
4
|
require 'time'
|
5
|
+
require 'tmpdir'
|
5
6
|
|
6
7
|
begin
|
7
8
|
gem 'builder'
|
@@ -64,7 +65,7 @@ class Gem::Indexer
|
|
64
65
|
@build_modern = options[:build_modern]
|
65
66
|
|
66
67
|
@dest_directory = directory
|
67
|
-
@directory =
|
68
|
+
@directory = Dir.mktmpdir 'gem_generate_index'
|
68
69
|
|
69
70
|
marshal_name = "Marshal.#{Gem.marshal_version}"
|
70
71
|
|
@@ -123,7 +124,7 @@ class Gem::Indexer
|
|
123
124
|
marshal_name = File.join @quick_marshal_dir, spec_file_name
|
124
125
|
|
125
126
|
marshal_zipped = Gem.deflate Marshal.dump(spec)
|
126
|
-
open marshal_name, 'wb' do |io| io.write marshal_zipped end
|
127
|
+
File.open marshal_name, 'wb' do |io| io.write marshal_zipped end
|
127
128
|
|
128
129
|
files << marshal_name
|
129
130
|
|
@@ -261,7 +262,7 @@ class Gem::Indexer
|
|
261
262
|
|
262
263
|
zipped = Gem.deflate data
|
263
264
|
|
264
|
-
open "#{filename}.#{extension}", 'wb' do |io|
|
265
|
+
File.open "#{filename}.#{extension}", 'wb' do |io|
|
265
266
|
io.write zipped
|
266
267
|
end
|
267
268
|
end
|
@@ -427,7 +428,7 @@ class Gem::Indexer
|
|
427
428
|
|
428
429
|
specs_index = compact_specs specs_index.uniq.sort
|
429
430
|
|
430
|
-
open dest, 'wb' do |io|
|
431
|
+
File.open dest, 'wb' do |io|
|
431
432
|
Marshal.dump specs_index, io
|
432
433
|
end
|
433
434
|
end
|
data/lib/rubygems/installer.rb
CHANGED
@@ -206,7 +206,7 @@ class Gem::Installer
|
|
206
206
|
ruby_executable = false
|
207
207
|
existing = nil
|
208
208
|
|
209
|
-
open generated_bin, 'rb' do |io|
|
209
|
+
File.open generated_bin, 'rb' do |io|
|
210
210
|
next unless io.gets =~ /^#!/ # shebang
|
211
211
|
io.gets # blankline
|
212
212
|
|
@@ -427,7 +427,7 @@ class Gem::Installer
|
|
427
427
|
# specifications directory.
|
428
428
|
|
429
429
|
def write_spec
|
430
|
-
open spec_file, 'w' do |file|
|
430
|
+
File.open spec_file, 'w' do |file|
|
431
431
|
spec.installed_by_version = Gem.rubygems_version
|
432
432
|
|
433
433
|
file.puts spec.to_ruby_for_cache
|
@@ -464,7 +464,12 @@ class Gem::Installer
|
|
464
464
|
def generate_bin # :nodoc:
|
465
465
|
return if spec.executables.nil? or spec.executables.empty?
|
466
466
|
|
467
|
-
|
467
|
+
begin
|
468
|
+
Dir.mkdir @bin_dir
|
469
|
+
rescue SystemCallError
|
470
|
+
raise unless File.directory? @bin_dir
|
471
|
+
end
|
472
|
+
|
468
473
|
raise Gem::FilePermissionError.new(@bin_dir) unless File.writable? @bin_dir
|
469
474
|
|
470
475
|
spec.executables.each do |filename|
|
@@ -863,7 +868,7 @@ TEXT
|
|
863
868
|
|
864
869
|
build_info_file = File.join build_info_dir, "#{spec.full_name}.info"
|
865
870
|
|
866
|
-
open build_info_file, 'w' do |io|
|
871
|
+
File.open build_info_file, 'w' do |io|
|
867
872
|
@build_args.each do |arg|
|
868
873
|
io.puts arg
|
869
874
|
end
|