bundler 1.7.15 → 1.8.0.pre
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 +4 -4
- data/.gitignore +5 -14
- data/.rspec +1 -0
- data/.travis.yml +22 -15
- data/CHANGELOG.md +43 -13
- data/CODE_OF_CONDUCT.md +40 -0
- data/CONTRIBUTING.md +14 -12
- data/DEVELOPMENT.md +4 -2
- data/ISSUES.md +1 -1
- data/README.md +10 -14
- data/Rakefile +10 -10
- data/bin/bundle +1 -1
- data/bundler.gemspec +5 -4
- data/lib/bundler.rb +22 -3
- data/lib/bundler/anonymizable_uri.rb +24 -8
- data/lib/bundler/cli.rb +103 -66
- data/lib/bundler/cli/cache.rb +1 -0
- data/lib/bundler/cli/clean.rb +11 -4
- data/lib/bundler/cli/common.rb +2 -0
- data/lib/bundler/cli/console.rb +22 -26
- data/lib/bundler/cli/exec.rb +29 -22
- data/lib/bundler/cli/gem.rb +125 -37
- data/lib/bundler/cli/install.rb +22 -9
- data/lib/bundler/cli/outdated.rb +1 -1
- data/lib/bundler/cli/package.rb +8 -1
- data/lib/bundler/cli/show.rb +29 -3
- data/lib/bundler/cli/update.rb +2 -2
- data/lib/bundler/cli/viz.rb +1 -1
- data/lib/bundler/definition.rb +14 -22
- data/lib/bundler/dependency.rb +8 -1
- data/lib/bundler/dsl.rb +17 -4
- data/lib/bundler/endpoint_specification.rb +1 -1
- data/lib/bundler/env.rb +44 -25
- data/lib/bundler/fetcher.rb +33 -25
- data/lib/bundler/friendly_errors.rb +38 -5
- data/lib/bundler/gem_helper.rb +16 -10
- data/lib/bundler/gem_helpers.rb +1 -0
- data/lib/bundler/graph.rb +4 -1
- data/lib/bundler/index.rb +15 -25
- data/lib/bundler/installer.rb +6 -6
- data/lib/bundler/lockfile_parser.rb +7 -7
- data/lib/bundler/resolver.rb +2 -1
- data/lib/bundler/ruby_version.rb +1 -1
- data/lib/bundler/rubygems_ext.rb +1 -0
- data/lib/bundler/rubygems_integration.rb +1 -1
- data/lib/bundler/runtime.rb +22 -40
- data/lib/bundler/settings.rb +14 -5
- data/lib/bundler/setup.rb +2 -1
- data/lib/bundler/shared_helpers.rb +56 -4
- data/lib/bundler/source.rb +8 -9
- data/lib/bundler/source/git.rb +5 -1
- data/lib/bundler/source/git/git_proxy.rb +4 -0
- data/lib/bundler/source/path.rb +8 -11
- data/lib/bundler/source/path/installer.rb +0 -2
- data/lib/bundler/source/rubygems.rb +58 -72
- data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +13 -0
- data/lib/bundler/templates/newgem/LICENSE.txt.tt +17 -18
- data/lib/bundler/templates/newgem/README.md.tt +9 -1
- data/lib/bundler/templates/newgem/Rakefile.tt +2 -0
- data/lib/bundler/templates/newgem/bin/console.tt +14 -0
- data/lib/bundler/templates/newgem/bin/setup.tt +7 -0
- data/lib/bundler/templates/newgem/exe/newgem.tt +3 -0
- data/lib/bundler/templates/newgem/gitignore.tt +2 -0
- data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +1 -1
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +17 -13
- data/lib/bundler/templates/newgem/test/test_newgem.rb.tt +1 -1
- data/lib/bundler/ui/shell.rb +1 -1
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler/worker.rb +73 -0
- data/man/bundle-config.ronn +17 -15
- data/man/bundle-install.ronn +102 -93
- data/man/bundle-update.ronn +39 -30
- data/man/bundle.ronn +6 -0
- data/man/gemfile.5.ronn +74 -13
- metadata +10 -231
- data/lib/bundler/parallel_workers.rb +0 -18
- data/lib/bundler/parallel_workers/thread_worker.rb +0 -30
- data/lib/bundler/parallel_workers/unix_worker.rb +0 -101
- data/lib/bundler/parallel_workers/worker.rb +0 -69
- data/lib/bundler/templates/newgem/bin/newgem.tt +0 -3
- data/spec/bundler/anonymizable_uri_spec.rb +0 -32
- data/spec/bundler/bundler_spec.rb +0 -72
- data/spec/bundler/cli_spec.rb +0 -16
- data/spec/bundler/definition_spec.rb +0 -22
- data/spec/bundler/dsl_spec.rb +0 -82
- data/spec/bundler/friendly_errors_spec.rb +0 -13
- data/spec/bundler/gem_helper_spec.rb +0 -226
- data/spec/bundler/psyched_yaml_spec.rb +0 -8
- data/spec/bundler/retry_spec.rb +0 -59
- data/spec/bundler/settings_spec.rb +0 -13
- data/spec/bundler/source/rubygems_spec.rb +0 -25
- data/spec/bundler/source_list_spec.rb +0 -361
- data/spec/cache/gems_spec.rb +0 -284
- data/spec/cache/git_spec.rb +0 -188
- data/spec/cache/path_spec.rb +0 -121
- data/spec/cache/platform_spec.rb +0 -57
- data/spec/commands/binstubs_spec.rb +0 -219
- data/spec/commands/check_spec.rb +0 -278
- data/spec/commands/clean_spec.rb +0 -592
- data/spec/commands/config_spec.rb +0 -263
- data/spec/commands/console_spec.rb +0 -76
- data/spec/commands/exec_spec.rb +0 -309
- data/spec/commands/help_spec.rb +0 -39
- data/spec/commands/init_spec.rb +0 -39
- data/spec/commands/inject_spec.rb +0 -78
- data/spec/commands/licenses_spec.rb +0 -18
- data/spec/commands/newgem_spec.rb +0 -428
- data/spec/commands/open_spec.rb +0 -68
- data/spec/commands/outdated_spec.rb +0 -156
- data/spec/commands/package_spec.rb +0 -114
- data/spec/commands/show_spec.rb +0 -125
- data/spec/install/binstubs_spec.rb +0 -24
- data/spec/install/bundler_spec.rb +0 -146
- data/spec/install/deploy_spec.rb +0 -250
- data/spec/install/gemfile/gemspec_spec.rb +0 -170
- data/spec/install/gemfile/git_spec.rb +0 -967
- data/spec/install/gemfile/path_spec.rb +0 -500
- data/spec/install/gemfile_spec.rb +0 -44
- data/spec/install/gems/c_ext_spec.rb +0 -48
- data/spec/install/gems/dependency_api_spec.rb +0 -652
- data/spec/install/gems/env_spec.rb +0 -107
- data/spec/install/gems/flex_spec.rb +0 -314
- data/spec/install/gems/groups_spec.rb +0 -308
- data/spec/install/gems/mirror_spec.rb +0 -39
- data/spec/install/gems/platform_spec.rb +0 -195
- data/spec/install/gems/post_install_spec.rb +0 -121
- data/spec/install/gems/resolving_spec.rb +0 -124
- data/spec/install/gems/simple_case_spec.rb +0 -377
- data/spec/install/gems/sources_spec.rb +0 -386
- data/spec/install/gems/standalone_spec.rb +0 -260
- data/spec/install/gems/sudo_spec.rb +0 -136
- data/spec/install/gems/win32_spec.rb +0 -26
- data/spec/install/gemspecs_spec.rb +0 -50
- data/spec/install/path_spec.rb +0 -150
- data/spec/install/post_bundle_message_spec.rb +0 -142
- data/spec/install/prereleases_spec.rb +0 -43
- data/spec/install/security_policy_spec.rb +0 -77
- data/spec/install/upgrade_spec.rb +0 -26
- data/spec/lock/git_spec.rb +0 -34
- data/spec/lock/lockfile_spec.rb +0 -924
- data/spec/other/bundle_ruby_spec.rb +0 -142
- data/spec/other/cli_dispatch_spec.rb +0 -21
- data/spec/other/ext_spec.rb +0 -60
- data/spec/other/platform_spec.rb +0 -1285
- data/spec/other/ssl_cert_spec.rb +0 -23
- data/spec/quality_spec.rb +0 -88
- data/spec/realworld/dependency_api_spec.rb +0 -60
- data/spec/realworld/edgecases_spec.rb +0 -212
- data/spec/realworld/parallel_spec.rb +0 -71
- data/spec/resolver/basic_spec.rb +0 -66
- data/spec/resolver/platform_spec.rb +0 -88
- data/spec/runtime/executable_spec.rb +0 -149
- data/spec/runtime/load_spec.rb +0 -107
- data/spec/runtime/platform_spec.rb +0 -90
- data/spec/runtime/require_spec.rb +0 -332
- data/spec/runtime/setup_spec.rb +0 -853
- data/spec/runtime/with_clean_env_spec.rb +0 -91
- data/spec/spec_helper.rb +0 -123
- data/spec/support/artifice/endopint_marshal_fail_basic_authentication.rb +0 -13
- data/spec/support/artifice/endpoint.rb +0 -71
- data/spec/support/artifice/endpoint_500.rb +0 -37
- data/spec/support/artifice/endpoint_api_forbidden.rb +0 -11
- data/spec/support/artifice/endpoint_api_missing.rb +0 -16
- data/spec/support/artifice/endpoint_basic_authentication.rb +0 -13
- data/spec/support/artifice/endpoint_creds_diff_host.rb +0 -38
- data/spec/support/artifice/endpoint_extra.rb +0 -31
- data/spec/support/artifice/endpoint_extra_api.rb +0 -32
- data/spec/support/artifice/endpoint_extra_missing.rb +0 -15
- data/spec/support/artifice/endpoint_fallback.rb +0 -17
- data/spec/support/artifice/endpoint_host_redirect.rb +0 -15
- data/spec/support/artifice/endpoint_marshal_fail.rb +0 -11
- data/spec/support/artifice/endpoint_redirect.rb +0 -15
- data/spec/support/artifice/endpoint_strict_basic_authentication.rb +0 -18
- data/spec/support/artifice/endpoint_timeout.rb +0 -13
- data/spec/support/builders.rb +0 -693
- data/spec/support/fakeweb/rack-1.0.0.marshal +0 -2
- data/spec/support/fakeweb/windows.rb +0 -23
- data/spec/support/hax.rb +0 -22
- data/spec/support/helpers.rb +0 -361
- data/spec/support/indexes.rb +0 -280
- data/spec/support/matchers.rb +0 -77
- data/spec/support/path.rb +0 -85
- data/spec/support/permissions.rb +0 -10
- data/spec/support/platforms.rb +0 -94
- data/spec/support/ruby_ext.rb +0 -20
- data/spec/support/rubygems_ext.rb +0 -39
- data/spec/support/streams.rb +0 -13
- data/spec/support/sudo.rb +0 -16
- data/spec/update/gems_spec.rb +0 -201
- data/spec/update/git_spec.rb +0 -283
- data/spec/update/path_spec.rb +0 -18
data/spec/support/matchers.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Matchers
|
3
|
-
RSpec::Matchers.define :have_dep do |*args|
|
4
|
-
dep = Bundler::Dependency.new(*args)
|
5
|
-
|
6
|
-
match do |actual|
|
7
|
-
actual.length == 1 && actual.all? { |d| d == dep }
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
RSpec::Matchers.define :have_gem do |*args|
|
12
|
-
match do |actual|
|
13
|
-
actual.length == args.length && actual.all? { |a| args.include?(a.full_name) }
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
RSpec::Matchers.define :have_rubyopts do |*args|
|
18
|
-
args = args.flatten
|
19
|
-
args = args.first.split(/\s+/) if args.size == 1
|
20
|
-
|
21
|
-
#failure_message_for_should "Expected RUBYOPT to have options #{args.join(" ")}. It was #{ENV["RUBYOPT"]}"
|
22
|
-
|
23
|
-
match do |actual|
|
24
|
-
actual = actual.split(/\s+/) if actual.is_a?(String)
|
25
|
-
args.all? {|arg| actual.include?(arg) } && actual.uniq.size == actual.size
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def should_be_installed(*names)
|
30
|
-
opts = names.last.is_a?(Hash) ? names.pop : {}
|
31
|
-
groups = Array(opts[:groups])
|
32
|
-
groups << opts
|
33
|
-
names.each do |name|
|
34
|
-
name, version, platform = name.split(/\s+/)
|
35
|
-
version_const = name == 'bundler' ? 'Bundler::VERSION' : Spec::Builders.constantize(name)
|
36
|
-
run "require '#{name}.rb'; puts #{version_const}", *groups
|
37
|
-
actual_version, actual_platform = out.split(/\s+/)
|
38
|
-
expect(Gem::Version.new(actual_version)).to eq(Gem::Version.new(version))
|
39
|
-
expect(actual_platform).to eq(platform)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
alias should_be_available should_be_installed
|
44
|
-
|
45
|
-
def should_not_be_installed(*names)
|
46
|
-
opts = names.last.is_a?(Hash) ? names.pop : {}
|
47
|
-
groups = Array(opts[:groups]) || []
|
48
|
-
names.each do |name|
|
49
|
-
name, version = name.split(/\s+/)
|
50
|
-
run <<-R, *(groups + [opts])
|
51
|
-
begin
|
52
|
-
require '#{name}'
|
53
|
-
puts #{Spec::Builders.constantize(name)}
|
54
|
-
rescue LoadError, NameError
|
55
|
-
puts "WIN"
|
56
|
-
end
|
57
|
-
R
|
58
|
-
if version.nil? || out == "WIN"
|
59
|
-
expect(out).to eq("WIN")
|
60
|
-
else
|
61
|
-
expect(Gem::Version.new(out)).not_to eq(Gem::Version.new(version))
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
def should_be_locked
|
67
|
-
expect(bundled_app("Gemfile.lock")).to exist
|
68
|
-
end
|
69
|
-
|
70
|
-
def lockfile_should_be(expected)
|
71
|
-
should_be_locked
|
72
|
-
spaces = expected[/\A\s+/, 0] || ""
|
73
|
-
expected.gsub!(/^#{spaces}/, '')
|
74
|
-
expect(bundled_app("Gemfile.lock").read).to eq(expected)
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
data/spec/support/path.rb
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
require 'pathname'
|
2
|
-
|
3
|
-
module Spec
|
4
|
-
module Path
|
5
|
-
def root
|
6
|
-
@root ||= Pathname.new(File.expand_path("../../..", __FILE__))
|
7
|
-
end
|
8
|
-
|
9
|
-
def tmp(*path)
|
10
|
-
root.join("tmp", *path)
|
11
|
-
end
|
12
|
-
|
13
|
-
def home(*path)
|
14
|
-
tmp.join("home", *path)
|
15
|
-
end
|
16
|
-
|
17
|
-
def default_bundle_path(*path)
|
18
|
-
system_gem_path(*path)
|
19
|
-
end
|
20
|
-
|
21
|
-
def bundled_app(*path)
|
22
|
-
root = tmp.join("bundled_app")
|
23
|
-
FileUtils.mkdir_p(root)
|
24
|
-
root.join(*path)
|
25
|
-
end
|
26
|
-
|
27
|
-
alias bundled_app1 bundled_app
|
28
|
-
|
29
|
-
def bundled_app2(*path)
|
30
|
-
root = tmp.join("bundled_app2")
|
31
|
-
FileUtils.mkdir_p(root)
|
32
|
-
root.join(*path)
|
33
|
-
end
|
34
|
-
|
35
|
-
def vendored_gems(path = nil)
|
36
|
-
bundled_app(*["vendor/bundle", Gem.ruby_engine, Gem::ConfigMap[:ruby_version], path].compact)
|
37
|
-
end
|
38
|
-
|
39
|
-
def cached_gem(path)
|
40
|
-
bundled_app("vendor/cache/#{path}.gem")
|
41
|
-
end
|
42
|
-
|
43
|
-
def base_system_gems
|
44
|
-
tmp.join("gems/base")
|
45
|
-
end
|
46
|
-
|
47
|
-
def gem_repo1(*args)
|
48
|
-
tmp("gems/remote1", *args)
|
49
|
-
end
|
50
|
-
|
51
|
-
def gem_repo_missing(*args)
|
52
|
-
tmp("gems/missing", *args)
|
53
|
-
end
|
54
|
-
|
55
|
-
def gem_repo2(*args)
|
56
|
-
tmp("gems/remote2", *args)
|
57
|
-
end
|
58
|
-
|
59
|
-
def gem_repo3(*args)
|
60
|
-
tmp("gems/remote3", *args)
|
61
|
-
end
|
62
|
-
|
63
|
-
def gem_repo4(*args)
|
64
|
-
tmp("gems/remote4", *args)
|
65
|
-
end
|
66
|
-
|
67
|
-
def security_repo(*args)
|
68
|
-
tmp("gems/security_repo", *args)
|
69
|
-
end
|
70
|
-
|
71
|
-
def system_gem_path(*path)
|
72
|
-
tmp("gems/system", *path)
|
73
|
-
end
|
74
|
-
|
75
|
-
def lib_path(*args)
|
76
|
-
tmp("libs", *args)
|
77
|
-
end
|
78
|
-
|
79
|
-
def bundler_path
|
80
|
-
Pathname.new(File.expand_path('../../../lib', __FILE__))
|
81
|
-
end
|
82
|
-
|
83
|
-
extend self
|
84
|
-
end
|
85
|
-
end
|
data/spec/support/permissions.rb
DELETED
data/spec/support/platforms.rb
DELETED
@@ -1,94 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Platforms
|
3
|
-
include Bundler::GemHelpers
|
4
|
-
|
5
|
-
def rb
|
6
|
-
Gem::Platform::RUBY
|
7
|
-
end
|
8
|
-
|
9
|
-
def mac
|
10
|
-
Gem::Platform.new('x86-darwin-10')
|
11
|
-
end
|
12
|
-
|
13
|
-
def java
|
14
|
-
Gem::Platform.new([nil, "java", nil])
|
15
|
-
end
|
16
|
-
|
17
|
-
def linux
|
18
|
-
Gem::Platform.new(['x86', 'linux', nil])
|
19
|
-
end
|
20
|
-
|
21
|
-
def mswin
|
22
|
-
Gem::Platform.new(['x86', 'mswin32', nil])
|
23
|
-
end
|
24
|
-
|
25
|
-
def mingw
|
26
|
-
Gem::Platform.new(['x86', 'mingw32', nil])
|
27
|
-
end
|
28
|
-
|
29
|
-
def x64_mingw
|
30
|
-
Gem::Platform.new(['x64', 'mingw32', nil])
|
31
|
-
end
|
32
|
-
|
33
|
-
def all_platforms
|
34
|
-
[rb, java, linux, mswin, mingw, x64_mingw]
|
35
|
-
end
|
36
|
-
|
37
|
-
def local
|
38
|
-
generic(Gem::Platform.local)
|
39
|
-
end
|
40
|
-
|
41
|
-
def not_local
|
42
|
-
all_platforms.find { |p| p != generic(Gem::Platform.local) }
|
43
|
-
end
|
44
|
-
|
45
|
-
def local_tag
|
46
|
-
if RUBY_PLATFORM == "java"
|
47
|
-
:jruby
|
48
|
-
else
|
49
|
-
:ruby
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def not_local_tag
|
54
|
-
[:ruby, :jruby].find { |tag| tag != local_tag }
|
55
|
-
end
|
56
|
-
|
57
|
-
def local_ruby_engine
|
58
|
-
ENV["BUNDLER_SPEC_RUBY_ENGINE"] || (defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby")
|
59
|
-
end
|
60
|
-
|
61
|
-
def local_engine_version
|
62
|
-
return ENV["BUNDLER_SPEC_RUBY_ENGINE_VERSION"] if ENV["BUNDLER_SPEC_RUBY_ENGINE_VERSION"]
|
63
|
-
|
64
|
-
case local_ruby_engine
|
65
|
-
when "ruby"
|
66
|
-
RUBY_VERSION
|
67
|
-
when "rbx"
|
68
|
-
Rubinius::VERSION
|
69
|
-
when "jruby"
|
70
|
-
JRUBY_VERSION
|
71
|
-
else
|
72
|
-
raise BundlerError, "That RUBY_ENGINE is not recognized"
|
73
|
-
nil
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
def not_local_engine_version
|
78
|
-
case not_local_tag
|
79
|
-
when :ruby
|
80
|
-
not_local_ruby_version
|
81
|
-
when :jruby
|
82
|
-
"1.6.1"
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
def not_local_ruby_version
|
87
|
-
"1.12"
|
88
|
-
end
|
89
|
-
|
90
|
-
def not_local_patchlevel
|
91
|
-
9999
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
data/spec/support/ruby_ext.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
class IO
|
2
|
-
def read_available_bytes(chunk_size = 16384, select_timeout = 0.02)
|
3
|
-
buffer = []
|
4
|
-
|
5
|
-
return "" if closed? || eof?
|
6
|
-
# IO.select cannot be used here due to the fact that it
|
7
|
-
# just does not work on windows
|
8
|
-
while true
|
9
|
-
begin
|
10
|
-
IO.select([self], nil, nil, select_timeout)
|
11
|
-
break if eof? # stop raising :-(
|
12
|
-
buffer << self.readpartial(chunk_size)
|
13
|
-
rescue(EOFError)
|
14
|
-
break
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
return buffer.join
|
19
|
-
end
|
20
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require 'rubygems/user_interaction'
|
2
|
-
require 'support/path'
|
3
|
-
|
4
|
-
module Spec
|
5
|
-
module Rubygems
|
6
|
-
def self.setup
|
7
|
-
Gem.clear_paths
|
8
|
-
|
9
|
-
ENV['BUNDLE_PATH'] = nil
|
10
|
-
ENV['GEM_HOME'] = ENV['GEM_PATH'] = Path.base_system_gems.to_s
|
11
|
-
ENV['PATH'] = ["#{Path.root}/bin", "#{Path.system_gem_path}/bin", ENV['PATH']].join(File::PATH_SEPARATOR)
|
12
|
-
|
13
|
-
unless File.exist?("#{Path.base_system_gems}")
|
14
|
-
FileUtils.mkdir_p(Path.base_system_gems)
|
15
|
-
puts "fetching fakeweb, artifice, sinatra, rake, rack, and builder for the tests to use..."
|
16
|
-
`gem install fakeweb artifice --no-rdoc --no-ri`
|
17
|
-
`gem install sinatra --version 1.2.7 --no-rdoc --no-ri`
|
18
|
-
# Rake version has to be consistent for tests to pass
|
19
|
-
`gem install rake --version 10.0.2 --no-rdoc --no-ri`
|
20
|
-
# 3.0.0 breaks 1.9.2 specs
|
21
|
-
`gem install builder --version 2.1.2 --no-rdoc --no-ri`
|
22
|
-
`gem install rack --no-rdoc --no-ri`
|
23
|
-
end
|
24
|
-
|
25
|
-
ENV['HOME'] = Path.home.to_s
|
26
|
-
|
27
|
-
Gem::DefaultUserInteraction.ui = Gem::SilentUI.new
|
28
|
-
end
|
29
|
-
|
30
|
-
def gem_command(command, args = "", options = {})
|
31
|
-
if command == :exec && !options[:no_quote]
|
32
|
-
args = args.gsub(/(?=")/, "\\")
|
33
|
-
args = %["#{args}"]
|
34
|
-
end
|
35
|
-
lib = File.join(File.dirname(__FILE__), '..', '..', 'lib')
|
36
|
-
%x{#{Gem.ruby} -I#{lib} -rubygems -S gem --backtrace #{command} #{args}}.strip
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
data/spec/support/streams.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'stringio'
|
2
|
-
|
3
|
-
def capture(*streams)
|
4
|
-
streams.map! { |stream| stream.to_s }
|
5
|
-
begin
|
6
|
-
result = StringIO.new
|
7
|
-
streams.each { |stream| eval "$#{stream} = result" }
|
8
|
-
yield
|
9
|
-
ensure
|
10
|
-
streams.each { |stream| eval("$#{stream} = #{stream.upcase}") }
|
11
|
-
end
|
12
|
-
result.string
|
13
|
-
end
|
data/spec/support/sudo.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Sudo
|
3
|
-
def self.present?
|
4
|
-
@which_sudo ||= Bundler.which("sudo")
|
5
|
-
end
|
6
|
-
|
7
|
-
def sudo(cmd)
|
8
|
-
raise "sudo not present" unless Sudo.present?
|
9
|
-
sys_exec("sudo #{cmd}")
|
10
|
-
end
|
11
|
-
|
12
|
-
def chown_system_gems_to_root
|
13
|
-
sudo "chown -R root #{system_gem_path}"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
data/spec/update/gems_spec.rb
DELETED
@@ -1,201 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "bundle update" do
|
4
|
-
before :each do
|
5
|
-
build_repo2
|
6
|
-
|
7
|
-
install_gemfile <<-G
|
8
|
-
source "file://#{gem_repo2}"
|
9
|
-
gem "activesupport"
|
10
|
-
gem "rack-obama"
|
11
|
-
G
|
12
|
-
end
|
13
|
-
|
14
|
-
describe "with no arguments" do
|
15
|
-
it "updates the entire bundle" do
|
16
|
-
update_repo2 do
|
17
|
-
build_gem "activesupport", "3.0"
|
18
|
-
end
|
19
|
-
|
20
|
-
bundle "update"
|
21
|
-
should_be_installed "rack 1.2", "rack-obama 1.0", "activesupport 3.0"
|
22
|
-
end
|
23
|
-
|
24
|
-
it "doesn't delete the Gemfile.lock file if something goes wrong" do
|
25
|
-
gemfile <<-G
|
26
|
-
source "file://#{gem_repo2}"
|
27
|
-
gem "activesupport"
|
28
|
-
gem "rack-obama"
|
29
|
-
exit!
|
30
|
-
G
|
31
|
-
bundle "update"
|
32
|
-
expect(bundled_app("Gemfile.lock")).to exist
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe "--quiet argument" do
|
37
|
-
it "shows UI messages without --quiet argument" do
|
38
|
-
bundle "update"
|
39
|
-
expect(out).to include("Fetching source")
|
40
|
-
end
|
41
|
-
|
42
|
-
it "does not show UI messages with --quiet argument" do
|
43
|
-
bundle "update --quiet"
|
44
|
-
expect(out).not_to include("Fetching source")
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
describe "with a top level dependency" do
|
49
|
-
it "unlocks all child dependencies that are unrelated to other locked dependencies" do
|
50
|
-
update_repo2 do
|
51
|
-
build_gem "activesupport", "3.0"
|
52
|
-
end
|
53
|
-
|
54
|
-
bundle "update rack-obama"
|
55
|
-
should_be_installed "rack 1.2", "rack-obama 1.0", "activesupport 2.3.5"
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
describe "with an unknown dependency" do
|
60
|
-
it "should inform the user" do
|
61
|
-
bundle "update halting-problem-solver", :expect_err=>true
|
62
|
-
expect(out).to include "Could not find gem 'halting-problem-solver'"
|
63
|
-
end
|
64
|
-
it "should suggest alternatives" do
|
65
|
-
bundle "update active-support", :expect_err=>true
|
66
|
-
expect(out).to include "Did you mean activesupport?"
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
describe "with a child dependency" do
|
71
|
-
it "should update the child dependency" do
|
72
|
-
update_repo2
|
73
|
-
bundle "update rack"
|
74
|
-
should_be_installed "rack 1.2"
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
describe "with --local option" do
|
79
|
-
it "doesn't hit repo2" do
|
80
|
-
FileUtils.rm_rf(gem_repo2)
|
81
|
-
|
82
|
-
bundle "update --local"
|
83
|
-
expect(out).not_to match(/Fetching source index/)
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
describe "with --group option" do
|
88
|
-
it "should update only specifed group gems" do
|
89
|
-
install_gemfile <<-G
|
90
|
-
source "file://#{gem_repo2}"
|
91
|
-
gem "activesupport", :group => :development
|
92
|
-
gem "rack"
|
93
|
-
G
|
94
|
-
update_repo2 do
|
95
|
-
build_gem "activesupport", "3.0"
|
96
|
-
end
|
97
|
-
bundle "update --group development"
|
98
|
-
should_be_installed "activesupport 3.0"
|
99
|
-
should_not_be_installed "rack 1.2"
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
describe "bundle update in more complicated situations" do
|
105
|
-
before :each do
|
106
|
-
build_repo2
|
107
|
-
end
|
108
|
-
|
109
|
-
it "will eagerly unlock dependencies of a specified gem" do
|
110
|
-
install_gemfile <<-G
|
111
|
-
source "file://#{gem_repo2}"
|
112
|
-
|
113
|
-
gem "thin"
|
114
|
-
gem "rack-obama"
|
115
|
-
G
|
116
|
-
|
117
|
-
update_repo2 do
|
118
|
-
build_gem "thin" , '2.0' do |s|
|
119
|
-
s.add_dependency "rack"
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
bundle "update thin"
|
124
|
-
should_be_installed "thin 2.0", "rack 1.2", "rack-obama 1.0"
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
describe "bundle update without a Gemfile.lock" do
|
129
|
-
it "should not explode" do
|
130
|
-
build_repo2
|
131
|
-
|
132
|
-
gemfile <<-G
|
133
|
-
source "file://#{gem_repo2}"
|
134
|
-
|
135
|
-
gem "rack", "1.0"
|
136
|
-
G
|
137
|
-
|
138
|
-
bundle "update"
|
139
|
-
|
140
|
-
should_be_installed "rack 1.0.0"
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
describe "bundle update when a gem depends on a newer version of bundler" do
|
145
|
-
before(:each) do
|
146
|
-
build_repo2 do
|
147
|
-
build_gem "rails", "3.0.1" do |s|
|
148
|
-
s.add_dependency "bundler", Bundler::VERSION.succ
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
152
|
-
gemfile <<-G
|
153
|
-
source "file://#{gem_repo2}"
|
154
|
-
gem "rails", "3.0.1"
|
155
|
-
G
|
156
|
-
end
|
157
|
-
|
158
|
-
it "should not explode" do
|
159
|
-
bundle "update"
|
160
|
-
expect(err).to be_empty
|
161
|
-
end
|
162
|
-
|
163
|
-
it "should explain that bundler conflicted" do
|
164
|
-
bundle "update"
|
165
|
-
expect(out).not_to match(/in snapshot/i)
|
166
|
-
expect(out).to match(/current Bundler version/i)
|
167
|
-
expect(out).to match(/perhaps you need to update bundler/i)
|
168
|
-
end
|
169
|
-
end
|
170
|
-
|
171
|
-
describe "bundle update" do
|
172
|
-
it "shows the previous version of the gem when updated from rubygems source" do
|
173
|
-
build_repo2
|
174
|
-
|
175
|
-
install_gemfile <<-G
|
176
|
-
source "file://#{gem_repo2}"
|
177
|
-
gem "activesupport"
|
178
|
-
G
|
179
|
-
|
180
|
-
bundle "update"
|
181
|
-
expect(out).to include("Using activesupport 2.3.5")
|
182
|
-
|
183
|
-
update_repo2 do
|
184
|
-
build_gem "activesupport", "3.0"
|
185
|
-
end
|
186
|
-
|
187
|
-
bundle "update"
|
188
|
-
expect(out).to include("Installing activesupport 3.0 (was 2.3.5)")
|
189
|
-
end
|
190
|
-
|
191
|
-
it "shows error message when Gemfile.lock is not preset and gem is specified" do
|
192
|
-
install_gemfile <<-G
|
193
|
-
source "file://#{gem_repo2}"
|
194
|
-
gem "activesupport"
|
195
|
-
G
|
196
|
-
|
197
|
-
bundle "update nonexisting", :exitstatus => true
|
198
|
-
expect(out).to include("This Bundle hasn't been installed yet. Run `bundle install` to update and install the bundled gems.")
|
199
|
-
expect(@exitstatus).to eq(22)
|
200
|
-
end
|
201
|
-
end
|