bundler 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 bundler might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/.travis.yml +7 -3
- data/CHANGELOG.md +21 -0
- data/ISSUES.md +2 -2
- data/LICENSE.md +1 -1
- data/Rakefile +4 -3
- data/bin/bundle +6 -1
- data/bundler.gemspec +1 -1
- data/lib/bundler.rb +2 -4
- data/lib/bundler/cli.rb +13 -17
- data/lib/bundler/definition.rb +1 -1
- data/lib/bundler/deployment.rb +1 -1
- data/lib/bundler/dsl.rb +6 -5
- data/lib/bundler/fetcher.rb +6 -1
- data/lib/bundler/friendly_errors.rb +6 -0
- data/lib/bundler/gem_helper.rb +1 -2
- data/lib/bundler/installer.rb +1 -1
- data/lib/bundler/rubygems_ext.rb +1 -1
- data/lib/bundler/rubygems_integration.rb +23 -11
- data/lib/bundler/source/git.rb +3 -2
- data/lib/bundler/source/rubygems.rb +11 -1
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
- data/lib/bundler/ui.rb +4 -0
- data/lib/bundler/version.rb +1 -1
- data/man/bundle-exec.ronn +24 -6
- data/man/bundle-install.ronn +1 -1
- data/man/bundle.ronn +1 -1
- data/man/gemfile.5.ronn +1 -2
- data/spec/bundler/cli_rspec.rb +7 -2
- data/spec/bundler/dsl_spec.rb +4 -4
- data/spec/bundler/gem_helper_spec.rb +5 -6
- data/spec/install/gems/dependency_api_spec.rb +34 -0
- data/spec/install/gems/post_install_spec.rb +3 -3
- data/spec/install/gems/simple_case_spec.rb +16 -0
- data/spec/install/gems/win32_spec.rb +1 -1
- data/spec/install/git_spec.rb +1 -1
- data/spec/install/security_policy_spec.rb +10 -11
- data/spec/integration/inject.rb +1 -1
- data/spec/lock/git_spec.rb +0 -1
- data/spec/lock/lockfile_spec.rb +29 -5
- data/spec/other/binstubs_spec.rb +16 -3
- data/spec/other/bundle_ruby_spec.rb +1 -1
- data/spec/other/check_spec.rb +1 -1
- data/spec/other/clean_spec.rb +2 -2
- data/spec/other/exec_spec.rb +0 -1
- data/spec/other/init_spec.rb +0 -1
- data/spec/other/outdated_spec.rb +0 -2
- data/spec/other/platform_spec.rb +2 -2
- data/spec/quality_spec.rb +27 -2
- data/spec/realworld/dependency_api_spec.rb +0 -1
- data/spec/resolver/basic_spec.rb +1 -1
- data/spec/runtime/setup_spec.rb +4 -3
- data/spec/runtime/with_clean_env_spec.rb +0 -1
- data/spec/spec_helper.rb +1 -0
- data/spec/support/artifice/endpoint_host_redirect.rb +15 -0
- data/spec/support/builders.rb +4 -2
- data/spec/support/permissions.rb +11 -0
- data/spec/update/gems_spec.rb +3 -3
- data/spec/update/git_spec.rb +2 -2
- data/spec/update/source_spec.rb +0 -1
- metadata +11 -13
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7304a63f3f93180bfc448131ffa016885410d872
|
4
|
+
data.tar.gz: 24ef788f45ff1f976584b293fc207b413d82548e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c823ec338057eeda5c740b53a0981c7db020cbde644ec656c8aa55a75be5ff65a9a1c352450a3ecb4c3ea930e830021426f593860fa1c9c057d8e5f6b2f32836
|
7
|
+
data.tar.gz: 059bacb8d560f78ec5fa123dc806c5d458e96260b64993912b888f666bc8b4d2e03afba9cea68640146a3b6206eea571bfa664976845f8e9f4063211ee73385a
|
data/.travis.yml
CHANGED
@@ -10,8 +10,10 @@ branches:
|
|
10
10
|
- 1-0-stable
|
11
11
|
notifications:
|
12
12
|
email:
|
13
|
-
|
14
|
-
-
|
13
|
+
# andre
|
14
|
+
- secure: "bCcvqJT7YrBawtkXXwHhT+jOFth7r2Qv/30PkkbhQxk6Jb3xambjCOJ3U6vJ\ngYmiL50exi5lUp3oc3SEbHN5t2CrZqOZDQ6o7P8EAmB5c0oH2RrYaFOkI5Gt\nul/jGH/96A9sj0aMwG7JfdMSfhqj1DUKAm2PnnbXPL853VfmT24="
|
15
|
+
# terence
|
16
|
+
- secure: "MQ8eA5Jb8YzEpAo58DRGfVJklAPcEbAulpBZnTxp0am6ldneDtJHbQk21w6R\nj5GsDHlzr/lMp/GHIimtUZ7rLohfND8fj/W7fs1Dkd4eN02/ERt98x3pHlqv\nvZgSnZ39uVYv+OcphraE24QaRaGWLhWZAMYQTVe/Yz50NyG8g1U="
|
15
17
|
irc:
|
16
18
|
on_success: change
|
17
19
|
on_failure: always
|
@@ -31,12 +33,14 @@ env:
|
|
31
33
|
# we need to know if changes to rubygems will break bundler on release
|
32
34
|
- RGV=master
|
33
35
|
# test the latest rubygems release with all of our supported rubies
|
34
|
-
- RGV=v2.0.
|
36
|
+
- RGV=v2.0.6
|
37
|
+
- RGV=2.0
|
35
38
|
matrix:
|
36
39
|
allow_failures:
|
37
40
|
# we want to know how we're doing with head, but not fail the build
|
38
41
|
- rvm: ruby-head
|
39
42
|
- env: RGV=master
|
43
|
+
- env: RGV=2.0
|
40
44
|
# 1.9.2 is simply too slow. it sometimes exceeds the 25m hard limit.
|
41
45
|
- rvm: 1.9.2
|
42
46
|
include:
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,23 @@
|
|
1
|
+
## 1.3.6
|
2
|
+
|
3
|
+
Bugfixes:
|
4
|
+
|
5
|
+
- make gemspec path option preserve relative paths in lock file (@bwillis)
|
6
|
+
- use umask when creating binstubs (#1618, @v-yarotsky)
|
7
|
+
- warn if graphviz is not installed (#2435, @Agis-)
|
8
|
+
- show git errors while loading gemspecs
|
9
|
+
- don't mutate gem method options hash (#2447)
|
10
|
+
- print Thor errors (#2478, @pjvds)
|
11
|
+
- print Rubygems system exit errors (James Cook)
|
12
|
+
- more Pathnames into Strings for MacRuby (@kml)
|
13
|
+
- preserve original gemspec path (@bwillis)
|
14
|
+
- remove warning about deps with :git (#1651, @ixti)
|
15
|
+
- split git files on null (#2634, @jasonmp85)
|
16
|
+
- handle cross-host redirects without SSL (#2686, @grddev)
|
17
|
+
- handle Rubygems 2 security exception (@zzak)
|
18
|
+
- reinstall gems if they are missing with spec present
|
19
|
+
- set binstub permissions using umask (#1618, @v-yarotsky)
|
20
|
+
|
1
21
|
## 1.3.5 (3 April 2013)
|
2
22
|
|
3
23
|
Features:
|
@@ -111,6 +131,7 @@ Features:
|
|
111
131
|
- `binstubs` lists child gem bins if a gem has no binstubs
|
112
132
|
- `bundle gem --edit` will open the new gemspec (@ndbroadbent)
|
113
133
|
- `bundle gem --test rspec` now makes working tests (@tricknotes)
|
134
|
+
- `bundle env` prints info about bundler's environment (@peeja)
|
114
135
|
- add `BUNDLE_IGNORE_CONFIG` environment variable support (@richo)
|
115
136
|
|
116
137
|
Bugfixes:
|
data/ISSUES.md
CHANGED
@@ -6,7 +6,7 @@ So! You're having problems with Bundler. This file is here to help. If you're ru
|
|
6
6
|
|
7
7
|
Instructions for common Bundler uses can be found on the [Bundler documentation site](http://gembundler.com/).
|
8
8
|
|
9
|
-
Detailed information about each Bundler command, including help with common problems, can be found in the [Bundler man pages](http://gembundler.com/man/bundle.1.html).
|
9
|
+
Detailed information about each Bundler command, including help with common problems, can be found in the [Bundler man pages](http://gembundler.com/v1.3/man/bundle.1.html).
|
10
10
|
|
11
11
|
## Troubleshooting
|
12
12
|
|
@@ -76,7 +76,7 @@ If you are using Rails 2.3, please also include:
|
|
76
76
|
- Your environment.rb file
|
77
77
|
|
78
78
|
|
79
|
-
If you have either `rubygems-bundler` or `open_gem` installed, please try removing them and then following the
|
79
|
+
If you have either `rubygems-bundler` or `open_gem` installed, please try removing them and then following the troubleshooting steps above before opening a new ticket.
|
80
80
|
|
81
81
|
[Create a gist](https://gist.github.com) containing all of that information, then visit the [Bundler issue tracker](https://github.com/carlhuda/bundler/issues) and [create a ticket](https://github.com/carlhuda/bundler/issues/new) describing your problem and linking to your gist.
|
82
82
|
|
data/LICENSE.md
CHANGED
data/Rakefile
CHANGED
@@ -30,7 +30,7 @@ namespace :spec do
|
|
30
30
|
desc "Ensure spec dependencies are installed"
|
31
31
|
task :deps do
|
32
32
|
{"rdiscount" => "~> 1.6", "ronn" => "~> 0.7.3", "rspec" => "~> 2.13"}.each do |name, version|
|
33
|
-
sh "#{Gem.ruby} -S gem list #{name} -v '#{version}'
|
33
|
+
sh "#{Gem.ruby} -S gem list -i #{name} -v '#{version}' || " \
|
34
34
|
"#{Gem.ruby} -S gem install #{name} -v '#{version}' --no-ri --no-rdoc"
|
35
35
|
end
|
36
36
|
end
|
@@ -85,10 +85,11 @@ begin
|
|
85
85
|
system "sudo rm -rf #{File.expand_path('../tmp/sudo_gem_home', __FILE__)}"
|
86
86
|
end
|
87
87
|
|
88
|
+
# Rubygems specs by version
|
88
89
|
namespace :rubygems do
|
89
|
-
# Rubygems specs by version
|
90
90
|
rubyopt = ENV["RUBYOPT"]
|
91
|
-
|
91
|
+
# When editing this list, also edit .travis.yml!
|
92
|
+
%w(master 2.0 v1.3.6 v1.3.7 v1.4.2 v1.5.3 v1.6.2 v1.7.2 v1.8.25 v2.0.6).each do |rg|
|
92
93
|
desc "Run specs with Rubygems #{rg}"
|
93
94
|
RSpec::Core::RakeTask.new(rg) do |t|
|
94
95
|
t.rspec_opts = %w(-fs --color)
|
data/bin/bundle
CHANGED
@@ -17,4 +17,9 @@ end
|
|
17
17
|
|
18
18
|
require 'bundler/cli'
|
19
19
|
require 'bundler/friendly_errors'
|
20
|
-
Bundler.with_friendly_errors {
|
20
|
+
Bundler.with_friendly_errors {
|
21
|
+
# Set debug flag so we can rescue Thor::error's
|
22
|
+
# and set the correct exit code.
|
23
|
+
ENV["THOR_DEBUG"] = "1"
|
24
|
+
Bundler::CLI.start
|
25
|
+
}
|
data/bundler.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.add_development_dependency 'ronn', '~> 0.7.3'
|
20
20
|
spec.add_development_dependency 'rspec', '~> 2.11'
|
21
21
|
|
22
|
-
spec.files = `git ls-files`.split(
|
22
|
+
spec.files = `git ls-files -z`.split("\x0")
|
23
23
|
spec.files += Dir.glob('lib/bundler/man/**/*') # man/ is ignored by git
|
24
24
|
spec.test_files = spec.files.grep(%r{^spec/})
|
25
25
|
|
data/lib/bundler.rb
CHANGED
@@ -80,8 +80,7 @@ module Bundler
|
|
80
80
|
status_code(6)
|
81
81
|
end
|
82
82
|
|
83
|
-
class
|
84
|
-
class MarshalError < StandardError; end
|
83
|
+
class MarshalError < StandardError; end
|
85
84
|
|
86
85
|
class << self
|
87
86
|
attr_writer :ui, :bundle_path
|
@@ -262,7 +261,7 @@ module Bundler
|
|
262
261
|
bin_dir = bin_dir.parent until bin_dir.exist?
|
263
262
|
|
264
263
|
# if any directory is not writable, we need sudo
|
265
|
-
dirs = [path, bin_dir] | Dir[path.join('*')]
|
264
|
+
dirs = [path, bin_dir] | Dir[path.join('*').to_s]
|
266
265
|
sudo_needed = dirs.find{|d| !File.writable?(d) }
|
267
266
|
end
|
268
267
|
|
@@ -367,7 +366,6 @@ module Bundler
|
|
367
366
|
configure_gem_home
|
368
367
|
end
|
369
368
|
|
370
|
-
Bundler.rubygems.refresh
|
371
369
|
bundle_path
|
372
370
|
end
|
373
371
|
|
data/lib/bundler/cli.rb
CHANGED
@@ -492,7 +492,7 @@ module Bundler
|
|
492
492
|
long_desc <<-D
|
493
493
|
Exec runs a command, providing it access to the gems in the bundle. While using
|
494
494
|
bundle exec you can require and call the bundled gems as if they were installed
|
495
|
-
into the
|
495
|
+
into the system wide Rubygems repository.
|
496
496
|
D
|
497
497
|
def exec(*args)
|
498
498
|
Bundler.definition.validate_ruby!
|
@@ -651,23 +651,19 @@ module Bundler
|
|
651
651
|
method_option :format, :type => :string, :default => "png", :aliases => '-F', :banner => "This is output format option. Supported format is png, jpg, svg, dot ..."
|
652
652
|
def viz
|
653
653
|
require 'graphviz'
|
654
|
-
|
655
654
|
output_file = File.expand_path(options[:file])
|
656
655
|
graph = Graph.new(Bundler.load, output_file, options[:version], options[:requirements], options[:format])
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
else
|
669
|
-
raise
|
670
|
-
end
|
656
|
+
graph.viz
|
657
|
+
rescue LoadError => e
|
658
|
+
Bundler.ui.error e.inspect
|
659
|
+
Bundler.ui.warn "Make sure you have the graphviz ruby gem. You can install it with:"
|
660
|
+
Bundler.ui.warn "`gem install ruby-graphviz`"
|
661
|
+
rescue StandardError => e
|
662
|
+
if e.message =~ /GraphViz not installed or dot not in PATH/
|
663
|
+
Bundler.ui.error e.message
|
664
|
+
Bundler.ui.warn "Please install GraphViz. On a Mac with homebrew, you can run `brew install graphviz`."
|
665
|
+
else
|
666
|
+
raise
|
671
667
|
end
|
672
668
|
end
|
673
669
|
|
@@ -721,7 +717,7 @@ module Bundler
|
|
721
717
|
if options[:test]
|
722
718
|
template(File.join("newgem/.travis.yml.tt"), File.join(target, ".travis.yml"), opts)
|
723
719
|
end
|
724
|
-
Bundler.ui.info "
|
720
|
+
Bundler.ui.info "Initializing git repo in #{target}"
|
725
721
|
Dir.chdir(target) { `git init`; `git add .` }
|
726
722
|
|
727
723
|
if options[:edit]
|
data/lib/bundler/definition.rb
CHANGED
@@ -249,7 +249,7 @@ module Bundler
|
|
249
249
|
select { |s| s.source == source }.
|
250
250
|
# This needs to be sorted by full name so that
|
251
251
|
# gems with the same name, but different platform
|
252
|
-
# are ordered
|
252
|
+
# are ordered consistently
|
253
253
|
sort_by { |s| s.full_name }.
|
254
254
|
each do |spec|
|
255
255
|
next if spec.name == 'bundler'
|
data/lib/bundler/deployment.rb
CHANGED
@@ -20,7 +20,7 @@ module Bundler
|
|
20
20
|
installed to the shared/bundle path. Gems in the development and \
|
21
21
|
test group will not be installed. The install command is executed \
|
22
22
|
with the --deployment and --quiet flags. If the bundle cmd cannot \
|
23
|
-
be found then you can override the bundle_cmd variable to
|
23
|
+
be found then you can override the bundle_cmd variable to specify \
|
24
24
|
which one it should use. The base path to the app is fetched from \
|
25
25
|
the :latest_release variable. Set it for custom deploy layouts.
|
26
26
|
|
data/lib/bundler/dsl.rb
CHANGED
@@ -42,8 +42,9 @@ module Bundler
|
|
42
42
|
path = opts && opts[:path] || '.'
|
43
43
|
name = opts && opts[:name] || '{,*}'
|
44
44
|
development_group = opts && opts[:development_group] || :development
|
45
|
-
|
46
|
-
|
45
|
+
expanded_path = File.expand_path(path, Bundler.default_gemfile.dirname)
|
46
|
+
|
47
|
+
gemspecs = Dir[File.join(expanded_path, "#{name}.gemspec")]
|
47
48
|
|
48
49
|
case gemspecs.size
|
49
50
|
when 1
|
@@ -56,9 +57,9 @@ module Bundler
|
|
56
57
|
end
|
57
58
|
end
|
58
59
|
when 0
|
59
|
-
raise InvalidOption, "There are no gemspecs at #{
|
60
|
+
raise InvalidOption, "There are no gemspecs at #{expanded_path}."
|
60
61
|
else
|
61
|
-
raise InvalidOption, "There are multiple gemspecs at #{
|
62
|
+
raise InvalidOption, "There are multiple gemspecs at #{expanded_path}. Please use the :name option to specify which one."
|
62
63
|
end
|
63
64
|
end
|
64
65
|
|
@@ -67,7 +68,7 @@ module Bundler
|
|
67
68
|
raise GemfileError, %{You need to specify gem names as Strings. Use 'gem "#{name.to_s}"' instead.}
|
68
69
|
end
|
69
70
|
|
70
|
-
options = Hash === args.last ? args.pop : {}
|
71
|
+
options = Hash === args.last ? args.pop.dup : {}
|
71
72
|
version = args
|
72
73
|
|
73
74
|
_normalize_options(name, version, options)
|
data/lib/bundler/fetcher.rb
CHANGED
@@ -203,7 +203,12 @@ module Bundler
|
|
203
203
|
else
|
204
204
|
req = Net::HTTP::Get.new uri.request_uri
|
205
205
|
req.basic_auth(uri.user, uri.password) if uri.user && uri.password
|
206
|
-
|
206
|
+
if uri.host == @connection.address && uri.port == @connection.port
|
207
|
+
connection = @connection
|
208
|
+
else
|
209
|
+
connection = Net::HTTP.new(uri.host, uri.port)
|
210
|
+
end
|
211
|
+
response = connection.request(req)
|
207
212
|
end
|
208
213
|
rescue OpenSSL::SSL::SSLError
|
209
214
|
raise CertificateFailureError.new(@public_uri)
|
@@ -5,6 +5,12 @@ module Bundler
|
|
5
5
|
Bundler.ui.error e.message, :wrap => true
|
6
6
|
Bundler.ui.trace e
|
7
7
|
exit e.status_code
|
8
|
+
rescue Thor::UndefinedTaskError => e
|
9
|
+
Bundler.ui.error e.message
|
10
|
+
exit 15
|
11
|
+
rescue Thor::Error => e
|
12
|
+
Bundler.ui.error e.message
|
13
|
+
exit 1
|
8
14
|
rescue LoadError => e
|
9
15
|
raise e unless e.message =~ /cannot load such file -- openssl|openssl.so|libcrypto.so/
|
10
16
|
Bundler.ui.error "\nCould not load OpenSSL."
|
data/lib/bundler/gem_helper.rb
CHANGED
data/lib/bundler/installer.rb
CHANGED
data/lib/bundler/rubygems_ext.rb
CHANGED
@@ -51,7 +51,7 @@ module Gem
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def git_version
|
54
|
-
if
|
54
|
+
if loaded_from && File.exist?(File.join(full_gem_path, ".git"))
|
55
55
|
sha = Dir.chdir(full_gem_path){ `git rev-parse HEAD`.strip }
|
56
56
|
" #{sha[0..6]}"
|
57
57
|
end
|
@@ -32,6 +32,10 @@ module Bundler
|
|
32
32
|
|
33
33
|
def configuration
|
34
34
|
Gem.configuration
|
35
|
+
rescue Gem::SystemExitException => e
|
36
|
+
Bundler.ui.error "#{e.class}: #{e.message}"
|
37
|
+
Bundler.ui.trace e
|
38
|
+
raise Gem::SystemExitException
|
35
39
|
end
|
36
40
|
|
37
41
|
def ruby_engine
|
@@ -87,10 +91,6 @@ module Bundler
|
|
87
91
|
Gem.bin_path(gem, bin, ver)
|
88
92
|
end
|
89
93
|
|
90
|
-
def refresh
|
91
|
-
Gem.refresh
|
92
|
-
end
|
93
|
-
|
94
94
|
def preserve_paths
|
95
95
|
# this is a no-op outside of Rubygems 1.8
|
96
96
|
yield
|
@@ -153,7 +153,7 @@ module Bundler
|
|
153
153
|
end
|
154
154
|
end
|
155
155
|
|
156
|
-
def build(spec)
|
156
|
+
def build(spec, skip_validation = false)
|
157
157
|
require 'rubygems/builder'
|
158
158
|
Gem::Builder.new(spec).build
|
159
159
|
end
|
@@ -170,7 +170,7 @@ module Bundler
|
|
170
170
|
@security_policies ||= begin
|
171
171
|
require 'rubygems/security'
|
172
172
|
Gem::Security::Policies
|
173
|
-
rescue LoadError
|
173
|
+
rescue LoadError, NameError
|
174
174
|
{}
|
175
175
|
end
|
176
176
|
end
|
@@ -398,7 +398,7 @@ module Bundler
|
|
398
398
|
end
|
399
399
|
end
|
400
400
|
|
401
|
-
# Rubygems
|
401
|
+
# Rubygems 1.8.5-1.8.19
|
402
402
|
class Modern < RubygemsIntegration
|
403
403
|
def stub_rubygems(specs)
|
404
404
|
Gem::Specification.all = specs
|
@@ -431,14 +431,24 @@ module Bundler
|
|
431
431
|
end
|
432
432
|
end
|
433
433
|
|
434
|
+
# Rubygems 1.8.20+
|
435
|
+
class MoreModern < Modern
|
436
|
+
# Rubygems 1.8.20 and adds the skip_validation parameter, so that's
|
437
|
+
# when we start passing it through.
|
438
|
+
def build(spec, skip_validation = false)
|
439
|
+
require 'rubygems/builder'
|
440
|
+
Gem::Builder.new(spec).build(skip_validation)
|
441
|
+
end
|
442
|
+
end
|
443
|
+
|
434
444
|
# Rubygems 2.0
|
435
445
|
class Future < RubygemsIntegration
|
436
446
|
def stub_rubygems(specs)
|
437
447
|
Gem::Specification.all = specs
|
438
448
|
|
439
|
-
Gem.post_reset
|
449
|
+
Gem.post_reset do
|
440
450
|
Gem::Specification.all = specs
|
441
|
-
|
451
|
+
end
|
442
452
|
end
|
443
453
|
|
444
454
|
def all_specs
|
@@ -481,9 +491,9 @@ module Bundler
|
|
481
491
|
return p
|
482
492
|
end
|
483
493
|
|
484
|
-
def build(spec)
|
494
|
+
def build(spec, skip_validation = false)
|
485
495
|
require 'rubygems/package'
|
486
|
-
Gem::Package.build(spec)
|
496
|
+
Gem::Package.build(spec, skip_validation)
|
487
497
|
end
|
488
498
|
|
489
499
|
end
|
@@ -492,6 +502,8 @@ module Bundler
|
|
492
502
|
|
493
503
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.99.99')
|
494
504
|
@rubygems = RubygemsIntegration::Future.new
|
505
|
+
elsif Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.8.20')
|
506
|
+
@rubygems = RubygemsIntegration::MoreModern.new
|
495
507
|
elsif Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.8.5')
|
496
508
|
@rubygems = RubygemsIntegration::Modern.new
|
497
509
|
elsif Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.8.0')
|
data/lib/bundler/source/git.rb
CHANGED
@@ -173,8 +173,9 @@ module Bundler
|
|
173
173
|
|
174
174
|
def load_spec_files
|
175
175
|
super
|
176
|
-
rescue PathError
|
177
|
-
|
176
|
+
rescue PathError => e
|
177
|
+
Bundler.ui.trace e
|
178
|
+
raise GitError, "#{to_s} is not yet checked out. Run `bundle install` first."
|
178
179
|
end
|
179
180
|
|
180
181
|
# This is the path which is going to contain a cache
|
@@ -68,7 +68,7 @@ module Bundler
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def install(spec)
|
71
|
-
if installed_specs[spec].any?
|
71
|
+
if installed_specs[spec].any? && gem_dir_exists?(spec)
|
72
72
|
Bundler.ui.info "Using #{spec.name} (#{spec.version}) "
|
73
73
|
return
|
74
74
|
end
|
@@ -250,6 +250,16 @@ module Bundler
|
|
250
250
|
Bundler.rubygems.sources = old
|
251
251
|
end
|
252
252
|
end
|
253
|
+
|
254
|
+
def gem_dir_exists?(spec)
|
255
|
+
return true if spec.name == "bundler"
|
256
|
+
# Ruby 2 default gems
|
257
|
+
return true if spec.loaded_from.include?("specifications/default/")
|
258
|
+
# Ruby 1.9 default gems
|
259
|
+
return true if spec.summary =~ /is bundled with Ruby/
|
260
|
+
|
261
|
+
File.directory?(spec.full_gem_path)
|
262
|
+
end
|
253
263
|
end
|
254
264
|
|
255
265
|
end
|