bundler 1.11.2 → 1.12.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +24 -0
  3. data/.gitignore +2 -2
  4. data/.rubocop.yml +17 -2
  5. data/.rubocop_todo.yml +145 -18
  6. data/.travis.yml +9 -2
  7. data/CHANGELOG.md +42 -0
  8. data/Rakefile +20 -13
  9. data/bin/rake +5 -0
  10. data/bin/rspec +5 -0
  11. data/bin/rubocop +7 -1
  12. data/bundler.gemspec +2 -1
  13. data/exe/bundle +10 -2
  14. data/exe/bundle_ruby +2 -1
  15. data/exe/bundler +3 -1
  16. data/lib/bundler.rb +54 -51
  17. data/lib/bundler/capistrano.rb +1 -0
  18. data/lib/bundler/cli.rb +26 -4
  19. data/lib/bundler/cli/binstubs.rb +1 -0
  20. data/lib/bundler/cli/cache.rb +1 -0
  21. data/lib/bundler/cli/check.rb +4 -1
  22. data/lib/bundler/cli/clean.rb +1 -0
  23. data/lib/bundler/cli/common.rb +1 -0
  24. data/lib/bundler/cli/config.rb +5 -5
  25. data/lib/bundler/cli/console.rb +1 -0
  26. data/lib/bundler/cli/exec.rb +4 -9
  27. data/lib/bundler/cli/gem.rb +12 -9
  28. data/lib/bundler/cli/init.rb +1 -0
  29. data/lib/bundler/cli/inject.rb +1 -0
  30. data/lib/bundler/cli/install.rb +8 -5
  31. data/lib/bundler/cli/lock.rb +2 -0
  32. data/lib/bundler/cli/open.rb +1 -0
  33. data/lib/bundler/cli/outdated.rb +36 -9
  34. data/lib/bundler/cli/package.rb +1 -0
  35. data/lib/bundler/cli/platform.rb +4 -1
  36. data/lib/bundler/cli/show.rb +1 -0
  37. data/lib/bundler/cli/update.rb +6 -6
  38. data/lib/bundler/cli/viz.rb +4 -6
  39. data/lib/bundler/constants.rb +1 -0
  40. data/lib/bundler/current_ruby.rb +34 -168
  41. data/lib/bundler/definition.rb +41 -15
  42. data/lib/bundler/dep_proxy.rb +1 -0
  43. data/lib/bundler/dependency.rb +10 -0
  44. data/lib/bundler/deployment.rb +1 -0
  45. data/lib/bundler/deprecate.rb +1 -0
  46. data/lib/bundler/dsl.rb +19 -9
  47. data/lib/bundler/endpoint_specification.rb +37 -8
  48. data/lib/bundler/env.rb +4 -3
  49. data/lib/bundler/environment.rb +1 -0
  50. data/lib/bundler/errors.rb +51 -32
  51. data/lib/bundler/fetcher.rb +44 -30
  52. data/lib/bundler/fetcher/base.rb +3 -2
  53. data/lib/bundler/fetcher/compact_index.rb +98 -0
  54. data/lib/bundler/fetcher/dependency.rb +36 -36
  55. data/lib/bundler/fetcher/downloader.rb +14 -8
  56. data/lib/bundler/fetcher/index.rb +28 -5
  57. data/lib/bundler/friendly_errors.rb +93 -85
  58. data/lib/bundler/gem_helper.rb +20 -21
  59. data/lib/bundler/gem_helpers.rb +9 -2
  60. data/lib/bundler/gem_remote_fetcher.rb +1 -0
  61. data/lib/bundler/gem_tasks.rb +1 -0
  62. data/lib/bundler/graph.rb +16 -17
  63. data/lib/bundler/index.rb +4 -6
  64. data/lib/bundler/injector.rb +1 -0
  65. data/lib/bundler/inline.rb +8 -2
  66. data/lib/bundler/installer.rb +4 -4
  67. data/lib/bundler/installer/gem_installer.rb +1 -0
  68. data/lib/bundler/installer/parallel_installer.rb +3 -2
  69. data/lib/bundler/installer/standalone.rb +5 -1
  70. data/lib/bundler/lazy_specification.rb +5 -2
  71. data/lib/bundler/lockfile_parser.rb +22 -15
  72. data/lib/bundler/match_platform.rb +1 -0
  73. data/lib/bundler/mirror.rb +218 -0
  74. data/lib/bundler/path_preserver.rb +12 -0
  75. data/lib/bundler/psyched_yaml.rb +1 -0
  76. data/lib/bundler/remote_specification.rb +4 -1
  77. data/lib/bundler/resolver.rb +17 -16
  78. data/lib/bundler/retry.rb +1 -0
  79. data/lib/bundler/ruby_dsl.rb +8 -2
  80. data/lib/bundler/ruby_version.rb +58 -61
  81. data/lib/bundler/rubygems_ext.rb +4 -3
  82. data/lib/bundler/rubygems_gem_installer.rb +1 -0
  83. data/lib/bundler/rubygems_integration.rb +9 -14
  84. data/lib/bundler/runtime.rb +17 -22
  85. data/lib/bundler/settings.rb +17 -21
  86. data/lib/bundler/setup.rb +1 -0
  87. data/lib/bundler/shared_helpers.rb +47 -17
  88. data/lib/bundler/similarity_detector.rb +1 -0
  89. data/lib/bundler/source.rb +2 -1
  90. data/lib/bundler/source/git.rb +2 -1
  91. data/lib/bundler/source/git/git_proxy.rb +33 -7
  92. data/lib/bundler/source/path.rb +17 -10
  93. data/lib/bundler/source/path/installer.rb +1 -0
  94. data/lib/bundler/source/rubygems.rb +4 -3
  95. data/lib/bundler/source/rubygems/remote.rb +16 -0
  96. data/lib/bundler/source_list.rb +1 -0
  97. data/lib/bundler/spec_set.rb +1 -0
  98. data/lib/bundler/ssl_certs/certificate_manager.rb +1 -0
  99. data/lib/bundler/stub_specification.rb +1 -0
  100. data/lib/bundler/templates/Executable +1 -0
  101. data/lib/bundler/templates/Gemfile +1 -0
  102. data/lib/bundler/templates/newgem/.travis.yml.tt +1 -0
  103. data/lib/bundler/templates/newgem/newgem.gemspec.tt +2 -2
  104. data/lib/bundler/ui.rb +1 -0
  105. data/lib/bundler/ui/rg_proxy.rb +1 -0
  106. data/lib/bundler/ui/shell.rb +2 -1
  107. data/lib/bundler/ui/silent.rb +1 -0
  108. data/lib/bundler/vendor/compact_index_client/lib/compact_index_client.rb +78 -0
  109. data/lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb +97 -0
  110. data/lib/bundler/vendor/compact_index_client/lib/compact_index_client/updater.rb +55 -0
  111. data/lib/bundler/vendor/compact_index_client/lib/compact_index_client/version.rb +3 -0
  112. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +4 -0
  113. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +13 -0
  114. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +5 -0
  115. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  116. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +2 -1
  117. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +37 -14
  118. data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +2 -1
  119. data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +7 -7
  120. data/lib/bundler/vendored_molinillo.rb +1 -0
  121. data/lib/bundler/vendored_persistent.rb +1 -0
  122. data/lib/bundler/vendored_thor.rb +1 -0
  123. data/lib/bundler/version.rb +6 -1
  124. data/lib/bundler/vlad.rb +1 -0
  125. data/lib/bundler/worker.rb +12 -2
  126. data/man/bundle-config.ronn +6 -0
  127. data/man/bundle-gem.ronn +5 -5
  128. metadata +14 -6
  129. data/lib/bundler/gem_path_manipulation.rb +0 -8
data/bin/rake CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require "rubygems"
4
5
 
@@ -11,4 +12,8 @@ bundler_spec.dependencies.each do |dep|
11
12
  end
12
13
  end
13
14
 
15
+ Gem::Specification.unresolved_deps.each do |_name, dep|
16
+ gem dep.name, *dep.requirement
17
+ end
18
+
14
19
  load Gem.bin_path("rake", "rake")
data/bin/rspec CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require "rubygems"
4
5
 
@@ -7,4 +8,8 @@ bundler_spec.dependencies.each do |dep|
7
8
  gem dep.name, dep.requirement.to_s
8
9
  end
9
10
 
11
+ Gem::Specification.unresolved_deps.each do |_name, dep|
12
+ gem dep.name, *dep.requirement
13
+ end
14
+
10
15
  load Gem.bin_path("rspec-core", "rspec")
data/bin/rubocop CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require "rubygems"
4
5
 
@@ -7,5 +8,10 @@ bundler_spec.dependencies.each do |dep|
7
8
  gem dep.name, dep.requirement.to_s
8
9
  end
9
10
 
10
- gem "rubocop", "= 0.35.1"
11
+ gem "rubocop", "= 0.37.0"
12
+
13
+ Gem::Specification.unresolved_deps.each do |_name, dep|
14
+ gem dep.name, *dep.requirement
15
+ end
16
+
11
17
  load Gem.bin_path("rubocop", "rubocop")
data/bundler.gemspec CHANGED
@@ -1,4 +1,5 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
  lib = File.expand_path("../lib/", __FILE__)
3
4
  $:.unshift lib unless $:.include?(lib)
4
5
  require "bundler/version"
@@ -19,7 +20,7 @@ Gem::Specification.new do |s|
19
20
  s.add_development_dependency "automatiek", "~> 0.1.0"
20
21
  s.add_development_dependency "mustache", "0.99.6"
21
22
  s.add_development_dependency "rake", "~> 10.0"
22
- s.add_development_dependency "rdiscount", "~> 1.6"
23
+ s.add_development_dependency "rdiscount", "~> 2.1.8"
23
24
  s.add_development_dependency "ronn", "~> 0.7.3"
24
25
  s.add_development_dependency "rspec", "~> 3.0"
25
26
 
data/exe/bundle CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  # Exit cleanly from an early interrupt
4
5
  Signal.trap("INT") { exit 1 }
@@ -7,7 +8,8 @@ require "bundler"
7
8
  # Check if an older version of bundler is installed
8
9
  $LOAD_PATH.each do |path|
9
10
  next unless path =~ %r{/bundler-0\.(\d+)} && $1.to_i < 9
10
- err = "Looks like you have a version of bundler that's older than 0.9.\n"
11
+ err = String.new
12
+ err << "Looks like you have a version of bundler that's older than 0.9.\n"
11
13
  err << "Please remove your old versions.\n"
12
14
  err << "An easy way to do this is by running `gem cleanup bundler`."
13
15
  abort(err)
@@ -16,5 +18,11 @@ end
16
18
  require "bundler/friendly_errors"
17
19
  Bundler.with_friendly_errors do
18
20
  require "bundler/cli"
19
- Bundler::CLI.start(ARGV, :debug => true)
21
+
22
+ # Allow any command to use --help flag to show help for that command
23
+ help_flags = %w(--help -h)
24
+ help_flag_used = ARGV.any? {|a| help_flags.include? a }
25
+ args = help_flag_used ? Bundler::CLI.reformatted_help_args(ARGV) : ARGV
26
+
27
+ Bundler::CLI.start(args, :debug => true)
20
28
  end
data/exe/bundle_ruby CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  Signal.trap("INT") { exit 1 }
4
5
 
@@ -38,7 +39,7 @@ module Bundler
38
39
  def gem(name, *args)
39
40
  end
40
41
 
41
- def group(*args, &blk)
42
+ def group(*args)
42
43
  end
43
44
  end
44
45
  end
data/exe/bundler CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  # Exit cleanly from an early interrupt
4
5
  Signal.trap("INT") { exit 1 }
@@ -7,7 +8,8 @@ require "bundler"
7
8
  # Check if an older version of bundler is installed
8
9
  $LOAD_PATH.each do |path|
9
10
  next unless path =~ %r{/bundler-0\.(\d+)} && $1.to_i < 9
10
- err = "Looks like you have a version of bundler that's older than 0.9.\n"
11
+ err = String.new
12
+ err << "Looks like you have a version of bundler that's older than 0.9.\n"
11
13
  err << "Please remove your old versions.\n"
12
14
  err << "An easy way to do this is by running `gem cleanup bundler`."
13
15
  abort(err)
data/lib/bundler.rb CHANGED
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  require "fileutils"
2
3
  require "pathname"
3
4
  require "rbconfig"
4
5
  require "thread"
5
- require "bundler/gem_path_manipulation"
6
+ require "bundler/path_preserver"
6
7
  require "bundler/gem_remote_fetcher"
7
8
  require "bundler/rubygems_ext"
8
9
  require "bundler/rubygems_integration"
@@ -12,43 +13,45 @@ require "bundler/current_ruby"
12
13
  require "bundler/errors"
13
14
 
14
15
  module Bundler
15
- preserve_gem_path
16
+ PathPreserver.preserve_path_in_environment("PATH", ENV)
17
+ PathPreserver.preserve_path_in_environment("GEM_PATH", ENV)
16
18
  ORIGINAL_ENV = ENV.to_hash
17
19
  SUDO_MUTEX = Mutex.new
18
20
 
19
- autoload :Definition, "bundler/definition"
20
- autoload :Dependency, "bundler/dependency"
21
- autoload :DepProxy, "bundler/dep_proxy"
22
- autoload :Deprecate, "bundler/deprecate"
23
- autoload :Dsl, "bundler/dsl"
24
- autoload :EndpointSpecification, "bundler/endpoint_specification"
25
- autoload :Environment, "bundler/environment"
26
- autoload :Env, "bundler/env"
27
- autoload :Fetcher, "bundler/fetcher"
28
- autoload :GemHelper, "bundler/gem_helper"
29
- autoload :GemHelpers, "bundler/gem_helpers"
30
- autoload :RubyGemsGemInstaller, "bundler/rubygems_gem_installer"
31
- autoload :Graph, "bundler/graph"
32
- autoload :Index, "bundler/index"
33
- autoload :Installer, "bundler/installer"
34
- autoload :Injector, "bundler/injector"
35
- autoload :LazySpecification, "bundler/lazy_specification"
36
- autoload :LockfileParser, "bundler/lockfile_parser"
37
- autoload :MatchPlatform, "bundler/match_platform"
38
- autoload :RemoteSpecification, "bundler/remote_specification"
39
- autoload :Resolver, "bundler/resolver"
40
- autoload :Retry, "bundler/retry"
41
- autoload :RubyVersion, "bundler/ruby_version"
42
- autoload :RubyDsl, "bundler/ruby_dsl"
43
- autoload :Runtime, "bundler/runtime"
44
- autoload :Settings, "bundler/settings"
45
- autoload :SharedHelpers, "bundler/shared_helpers"
46
- autoload :SpecSet, "bundler/spec_set"
47
- autoload :StubSpecification, "bundler/stub_specification"
48
- autoload :Source, "bundler/source"
49
- autoload :SourceList, "bundler/source_list"
50
- autoload :SystemRubyVersion, "bundler/ruby_version"
51
- autoload :UI, "bundler/ui"
21
+ autoload :Definition, "bundler/definition"
22
+ autoload :Dependency, "bundler/dependency"
23
+ autoload :DepProxy, "bundler/dep_proxy"
24
+ autoload :Deprecate, "bundler/deprecate"
25
+ autoload :Dsl, "bundler/dsl"
26
+ autoload :EndpointSpecification, "bundler/endpoint_specification"
27
+ autoload :Environment, "bundler/environment"
28
+ autoload :Env, "bundler/env"
29
+ autoload :Fetcher, "bundler/fetcher"
30
+ autoload :GemHelper, "bundler/gem_helper"
31
+ autoload :GemHelpers, "bundler/gem_helpers"
32
+ autoload :Graph, "bundler/graph"
33
+ autoload :Index, "bundler/index"
34
+ autoload :Installer, "bundler/installer"
35
+ autoload :Injector, "bundler/injector"
36
+ autoload :LazySpecification, "bundler/lazy_specification"
37
+ autoload :LockfileParser, "bundler/lockfile_parser"
38
+ autoload :MatchPlatform, "bundler/match_platform"
39
+ autoload :Mirror, "bundler/mirror"
40
+ autoload :Mirrors, "bundler/mirror"
41
+ autoload :RemoteSpecification, "bundler/remote_specification"
42
+ autoload :Resolver, "bundler/resolver"
43
+ autoload :Retry, "bundler/retry"
44
+ autoload :RubyVersion, "bundler/ruby_version"
45
+ autoload :RubyDsl, "bundler/ruby_dsl"
46
+ autoload :Runtime, "bundler/runtime"
47
+ autoload :Settings, "bundler/settings"
48
+ autoload :SharedHelpers, "bundler/shared_helpers"
49
+ autoload :SpecSet, "bundler/spec_set"
50
+ autoload :StubSpecification, "bundler/stub_specification"
51
+ autoload :Source, "bundler/source"
52
+ autoload :SourceList, "bundler/source_list"
53
+ autoload :RubyGemsGemInstaller, "bundler/rubygems_gem_installer"
54
+ autoload :UI, "bundler/ui"
52
55
 
53
56
  class << self
54
57
  attr_writer :bundle_path
@@ -136,7 +139,7 @@ module Bundler
136
139
  end
137
140
 
138
141
  def user_bundle_path
139
- Pathname.new(Bundler.rubygems.user_home).join(".bundler")
142
+ Pathname.new(Bundler.rubygems.user_home).join(".bundle")
140
143
  end
141
144
 
142
145
  def home
@@ -155,6 +158,10 @@ module Bundler
155
158
  bundle_path.join("cache/bundler")
156
159
  end
157
160
 
161
+ def user_cache
162
+ user_bundle_path.join("cache")
163
+ end
164
+
158
165
  def root
159
166
  @root ||= begin
160
167
  default_gemfile.dirname.expand_path
@@ -286,12 +293,12 @@ module Bundler
286
293
  def which(executable)
287
294
  if File.file?(executable) && File.executable?(executable)
288
295
  executable
289
- elsif ENV["PATH"]
290
- path = ENV["PATH"].split(File::PATH_SEPARATOR).find do |p|
296
+ elsif path = ENV["PATH"]
297
+ executable_path = path.split(File::PATH_SEPARATOR).find do |p|
291
298
  abs_path = File.join(p, executable)
292
299
  File.file?(abs_path) && File.executable?(abs_path)
293
300
  end
294
- path && File.expand_path(executable, path)
301
+ executable_path && File.expand_path(executable, executable_path)
295
302
  end
296
303
  end
297
304
 
@@ -347,9 +354,9 @@ module Bundler
347
354
  spec
348
355
  end
349
356
  rescue Gem::InvalidSpecificationException => e
350
- UI::Shell.new.warn "The gemspec at #{file} is not valid. " \
351
- "The validation error was '#{e.message}'"
352
- nil
357
+ error_message = "The gemspec at #{file} is not valid. Please fix this gemspec.\n" \
358
+ "The validation error was '#{e.message}'\n"
359
+ raise Gem::InvalidSpecificationException.new(error_message)
353
360
  end
354
361
 
355
362
  def clear_gemspec_cache
@@ -361,10 +368,6 @@ module Bundler
361
368
  @git_present = Bundler.which("git") || Bundler.which("git.exe")
362
369
  end
363
370
 
364
- def ruby_version
365
- @ruby_version ||= SystemRubyVersion.new
366
- end
367
-
368
371
  def reset!
369
372
  @definition = nil
370
373
  end
@@ -383,7 +386,8 @@ module Bundler
383
386
  eval(contents, TOPLEVEL_BINDING, path.expand_path.to_s)
384
387
  rescue ScriptError, StandardError => e
385
388
  original_line = e.backtrace.find {|line| line.include?(path.to_s) }
386
- msg = "There was a #{e.class} while loading #{path.basename}: \n#{e.message}"
389
+ msg = String.new
390
+ msg << "There was a #{e.class} while loading #{path.basename}: \n#{e.message}"
387
391
  msg << " from\n #{original_line}" if original_line
388
392
  msg << "\n"
389
393
 
@@ -422,10 +426,9 @@ module Bundler
422
426
 
423
427
  def upgrade_lockfile
424
428
  lockfile = default_lockfile
425
- if lockfile.exist? && lockfile.read(3) == "---"
426
- Bundler.ui.warn "Detected Gemfile.lock generated by 0.9, deleting..."
427
- lockfile.rmtree
428
- end
429
+ return unless lockfile.exist? && lockfile.read(3) == "---"
430
+ Bundler.ui.warn "Detected Gemfile.lock generated by 0.9, deleting..."
431
+ lockfile.rmtree
429
432
  end
430
433
  end
431
434
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Capistrano task for Bundler.
2
3
  #
3
4
  # Just add "require 'bundler/capistrano'" in your Capistrano deploy.rb, and
data/lib/bundler/cli.rb CHANGED
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
1
2
  require "bundler"
2
3
  require "bundler/vendored_thor"
3
4
 
4
5
  module Bundler
5
6
  class CLI < Thor
6
7
  include Thor::Actions
7
- AUTO_INSTALL_CMDS = %w(show binstubs outdated exec open console licenses clean)
8
+ AUTO_INSTALL_CMDS = %w(show binstubs outdated exec open console licenses clean).freeze
8
9
 
9
10
  def self.start(*)
10
11
  super
@@ -136,7 +137,7 @@ module Bundler
136
137
  method_option "frozen", :type => :boolean, :banner =>
137
138
  "Do not allow the Gemfile.lock to be updated after this install"
138
139
  method_option "full-index", :type => :boolean, :banner =>
139
- "Use the rubygems modern index instead of the API endpoint"
140
+ "Fall back to using the single-file index of all gems"
140
141
  method_option "gemfile", :type => :string, :banner =>
141
142
  "Use the specified gemfile instead of Gemfile"
142
143
  method_option "jobs", :aliases => "-j", :type => :numeric, :banner =>
@@ -179,7 +180,7 @@ module Bundler
179
180
  possible versions of the gems in the bundle.
180
181
  D
181
182
  method_option "full-index", :type => :boolean, :banner =>
182
- "Use the rubygems modern index instead of the API endpoint"
183
+ "Fall back to using the single-file index of all gems"
183
184
  method_option "group", :aliases => "-g", :type => :array, :banner =>
184
185
  "Update a specific group"
185
186
  method_option "jobs", :aliases => "-j", :type => :numeric, :banner =>
@@ -192,6 +193,8 @@ module Bundler
192
193
  "Update a specific source (and all gems associated with it)"
193
194
  method_option "force", :type => :boolean, :banner =>
194
195
  "Force downloading every gem."
196
+ method_option "ruby", :type => :boolean, :banner =>
197
+ "Update ruby specified in Gemfile.lock"
195
198
  def update(*gems)
196
199
  require "bundler/cli/update"
197
200
  Update.new(options, gems).run
@@ -240,6 +243,10 @@ module Bundler
240
243
  method_option "source", :type => :array, :banner => "Check against a specific source"
241
244
  method_option "strict", :type => :boolean, :banner =>
242
245
  "Only list newer versions allowed by your Gemfile requirements"
246
+ method_option "major", :type => :boolean, :banner => "Only list major newer versions"
247
+ method_option "minor", :type => :boolean, :banner => "Only list at least minor newer versions"
248
+ method_option "parseable", :aliases => "--porcelain", :type => :boolean, :banner =>
249
+ "Use minimal formatting for more parseable output"
243
250
  def outdated(*gems)
244
251
  require "bundler/cli/outdated"
245
252
  Outdated.new(options, gems).run
@@ -356,7 +363,7 @@ module Bundler
356
363
  end
357
364
 
358
365
  desc "gem GEM [OPTIONS]", "Creates a skeleton for creating a rubygem"
359
- method_option :bin, :type => :boolean, :default => false, :aliases => "-b", :desc => "Generate a binary for your library."
366
+ method_option :exe, :type => :boolean, :default => false, :aliases => ["--bin", "-b"], :desc => "Generate a binary executable for your library."
360
367
  method_option :coc, :type => :boolean, :desc => "Generate a code of conduct file. Set a default with `bundle config gem.coc true`."
361
368
  method_option :edit, :type => :string, :aliases => "-e", :required => false, :banner => "EDITOR",
362
369
  :lazy_default => [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? },
@@ -407,6 +414,8 @@ module Bundler
407
414
  "print the lockfile to STDOUT instead of writing to the file system"
408
415
  method_option "lockfile", :type => :string, :default => nil, :banner =>
409
416
  "the path the lockfile should be written to"
417
+ method_option "full-index", :type => :boolean, :default => false, :banner =>
418
+ "Fall back to using the single-file index of all gems"
410
419
  def lock
411
420
  require "bundler/cli/lock"
412
421
  Lock.new(options).run
@@ -417,6 +426,19 @@ module Bundler
417
426
  Env.new.write($stdout)
418
427
  end
419
428
 
429
+ # Reformat the arguments passed to bundle that include a --help flag
430
+ # into the corresponding `bundle help #{command}` call
431
+ def self.reformatted_help_args(args)
432
+ bundler_commands = all_commands.keys
433
+ command = args.select {|a| bundler_commands.include? a }
434
+ if command.empty?
435
+ abort("Could not find command \"#{args.join(" ")}\".")
436
+ else
437
+ command = command.first
438
+ end
439
+ ["help", command]
440
+ end
441
+
420
442
  private
421
443
 
422
444
  # Automatically invoke `bundle install` and resume if
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "bundler/cli/common"
2
3
 
3
4
  module Bundler
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Bundler
2
3
  class CLI::Cache
3
4
  attr_reader :options
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
1
2
  module Bundler
2
3
  class CLI::Check
3
4
  attr_reader :options
5
+
4
6
  def initialize(options)
5
7
  @options = options
6
8
  end
@@ -8,8 +10,9 @@ module Bundler
8
10
  def run
9
11
  if options[:path]
10
12
  Bundler.settings[:path] = File.expand_path(options[:path])
11
- Bundler.settings[:disable_shared_gems] = "1"
13
+ Bundler.settings[:disable_shared_gems] = true
12
14
  end
15
+
13
16
  begin
14
17
  definition = Bundler.definition
15
18
  definition.validate_ruby!
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Bundler
2
3
  class CLI::Clean
3
4
  attr_reader :options
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Bundler
2
3
  module CLI::Common
3
4
  def self.without_groups_message
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Bundler
2
3
  class CLI::Config
3
4
  attr_reader :name, :options, :scope, :thor
@@ -9,10 +10,9 @@ module Bundler
9
10
  @thor = thor
10
11
  @name = peek = args.shift
11
12
  @scope = "global"
12
- if peek && peek =~ /^\-\-/
13
- @name = args.shift
14
- @scope = $'
15
- end
13
+ return unless peek && peek.start_with?("--")
14
+ @name = args.shift
15
+ @scope = peek[2..-1]
16
16
  end
17
17
 
18
18
  def run
@@ -59,7 +59,7 @@ module Bundler
59
59
 
60
60
  def new_value
61
61
  pathname = Pathname.new(args.join(" "))
62
- if name.match(/\Alocal\./) && pathname.directory?
62
+ if name.start_with?("local.") && pathname.directory?
63
63
  pathname.expand_path.to_s
64
64
  else
65
65
  args.join(" ")