rubygems-update 2.7.6 → 2.7.7

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.

Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -23
  3. data/History.txt +53 -0
  4. data/Manifest.txt +1 -0
  5. data/bundler/CHANGELOG.md +50 -0
  6. data/bundler/README.md +4 -0
  7. data/bundler/lib/bundler.rb +2 -2
  8. data/bundler/lib/bundler/cli.rb +2 -0
  9. data/bundler/lib/bundler/cli/check.rb +1 -1
  10. data/bundler/lib/bundler/cli/exec.rb +3 -4
  11. data/bundler/lib/bundler/cli/gem.rb +5 -2
  12. data/bundler/lib/bundler/cli/init.rb +5 -0
  13. data/bundler/lib/bundler/cli/install.rb +2 -2
  14. data/bundler/lib/bundler/cli/outdated.rb +1 -1
  15. data/bundler/lib/bundler/compact_index_client/updater.rb +10 -1
  16. data/bundler/lib/bundler/definition.rb +16 -11
  17. data/bundler/lib/bundler/fetcher.rb +2 -2
  18. data/bundler/lib/bundler/fetcher/index.rb +2 -2
  19. data/bundler/lib/bundler/friendly_errors.rb +2 -0
  20. data/bundler/lib/bundler/injector.rb +4 -4
  21. data/bundler/lib/bundler/installer.rb +12 -4
  22. data/bundler/lib/bundler/installer/gem_installer.rb +6 -1
  23. data/bundler/lib/bundler/plugin/index.rb +6 -1
  24. data/bundler/lib/bundler/resolver/spec_group.rb +0 -1
  25. data/bundler/lib/bundler/rubygems_integration.rb +9 -3
  26. data/bundler/lib/bundler/runtime.rb +1 -1
  27. data/bundler/lib/bundler/source/git.rb +2 -1
  28. data/bundler/lib/bundler/source/git/git_proxy.rb +6 -1
  29. data/bundler/lib/bundler/source/rubygems.rb +6 -1
  30. data/bundler/lib/bundler/spec_set.rb +4 -1
  31. data/bundler/lib/bundler/templates/Executable +1 -1
  32. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +4 -2
  33. data/bundler/lib/bundler/ui/shell.rb +3 -1
  34. data/bundler/lib/bundler/version.rb +1 -1
  35. data/bundler/man/bundle-binstubs.ronn +3 -3
  36. data/bundler/man/bundle-check.ronn +3 -3
  37. data/bundler/man/bundle-config.ronn +13 -9
  38. data/bundler/man/bundle-doctor.ronn +33 -0
  39. data/bundler/man/bundle-exec.ronn +3 -3
  40. data/bundler/man/bundle-gem.ronn +1 -1
  41. data/bundler/man/bundle-init.ronn +15 -4
  42. data/bundler/man/bundle-inject.ronn +3 -3
  43. data/bundler/man/bundle-install.ronn +1 -1
  44. data/bundler/man/bundle-lock.ronn +1 -1
  45. data/bundler/man/bundle-outdated.ronn +1 -1
  46. data/bundler/man/bundle-package.ronn +3 -3
  47. data/bundler/man/bundle-show.ronn +2 -2
  48. data/bundler/man/bundle-update.ronn +8 -8
  49. data/bundler/man/bundle-viz.ronn +1 -1
  50. data/bundler/man/bundle.ronn +25 -25
  51. data/bundler/man/gemfile.5.ronn +3 -3
  52. data/lib/rubygems.rb +21 -3
  53. data/lib/rubygems/bundler_version_finder.rb +5 -1
  54. data/lib/rubygems/commands/push_command.rb +1 -1
  55. data/lib/rubygems/commands/setup_command.rb +3 -3
  56. data/lib/rubygems/commands/unpack_command.rb +1 -1
  57. data/lib/rubygems/dependency.rb +1 -0
  58. data/lib/rubygems/dependency_installer.rb +4 -2
  59. data/lib/rubygems/exceptions.rb +5 -1
  60. data/lib/rubygems/indexer.rb +1 -1
  61. data/lib/rubygems/installer.rb +5 -1
  62. data/lib/rubygems/package.rb +10 -2
  63. data/lib/rubygems/remote_fetcher.rb +1 -1
  64. data/lib/rubygems/request_set.rb +3 -1
  65. data/lib/rubygems/server.rb +3 -3
  66. data/lib/rubygems/source.rb +1 -1
  67. data/lib/rubygems/specification.rb +7 -10
  68. data/lib/rubygems/test_case.rb +21 -3
  69. data/lib/rubygems/test_utilities.rb +1 -1
  70. data/lib/rubygems/user_interaction.rb +4 -0
  71. data/lib/rubygems/version.rb +1 -0
  72. data/lib/ubygems.rb +3 -0
  73. data/test/rubygems/test_gem.rb +7 -7
  74. data/test/rubygems/test_gem_commands_setup_command.rb +6 -1
  75. data/test/rubygems/test_gem_package.rb +54 -5
  76. data/test/rubygems/test_gem_package_tar_header.rb +2 -1
  77. data/test/rubygems/test_gem_remote_fetcher.rb +1 -1
  78. data/test/rubygems/test_gem_security_policy.rb +3 -3
  79. data/test/rubygems/test_gem_server.rb +12 -12
  80. data/test/rubygems/test_gem_specification.rb +1 -1
  81. data/test/rubygems/test_gem_util.rb +4 -2
  82. data/test/rubygems/test_gem_version.rb +1 -0
  83. data/util/ci +1 -0
  84. metadata +6 -5
@@ -29,11 +29,11 @@ module Bundler
29
29
 
30
30
  uri = URI.parse("#{remote_uri}#{Gem::MARSHAL_SPEC_DIR}#{spec_file_name}.rz")
31
31
  if uri.scheme == "file"
32
- Bundler.load_marshal Gem.inflate(Gem.read_binary(uri.path))
32
+ Bundler.load_marshal Bundler.rubygems.inflate(Gem.read_binary(uri.path))
33
33
  elsif cached_spec_path = gemspec_cached_path(spec_file_name)
34
34
  Bundler.load_gemspec(cached_spec_path)
35
35
  else
36
- Bundler.load_marshal Gem.inflate(downloader.fetch(uri).body)
36
+ Bundler.load_marshal Bundler.rubygems.inflate(downloader.fetch(uri).body)
37
37
  end
38
38
  rescue MarshalError
39
39
  raise HTTPError, "Gemspec #{spec} contained invalid data.\n" \
@@ -45,6 +45,8 @@ module Bundler
45
45
  "Alternatively, you can increase the amount of memory the JVM is able to use by running Bundler with jruby -J-Xmx1024m -S bundle (JRuby defaults to 500MB)."
46
46
  else request_issue_report_for(error)
47
47
  end
48
+ rescue
49
+ raise error
48
50
  end
49
51
 
50
52
  def exit_status(error)
@@ -12,8 +12,11 @@ module Bundler
12
12
  @options = options
13
13
  end
14
14
 
15
+ # @param [Pathname] gemfile_path The Gemfile in which to inject the new dependency.
16
+ # @param [Pathname] lockfile_path The lockfile in which to inject the new dependency.
17
+ # @return [Array]
15
18
  def inject(gemfile_path, lockfile_path)
16
- if Bundler.frozen?
19
+ if Bundler.frozen_bundle?
17
20
  # ensure the lock and Gemfile are synced
18
21
  Bundler.definition.ensure_equivalent_gemfile_and_lockfile(true)
19
22
  end
@@ -84,9 +87,6 @@ module Bundler
84
87
  def append_to(gemfile_path, new_gem_lines)
85
88
  gemfile_path.open("a") do |f|
86
89
  f.puts
87
- if @options["timestamp"] || @options["timestamp"].nil?
88
- f.puts "# Added at #{Time.now} by #{`whoami`.chomp}:"
89
- end
90
90
  f.puts new_gem_lines
91
91
  end
92
92
  end
@@ -70,7 +70,7 @@ module Bundler
70
70
  create_bundle_path
71
71
 
72
72
  ProcessLock.lock do
73
- if Bundler.frozen?
73
+ if Bundler.frozen_bundle?
74
74
  @definition.ensure_equivalent_gemfile_and_lockfile(options[:deployment])
75
75
  end
76
76
 
@@ -90,7 +90,7 @@ module Bundler
90
90
  end
91
91
  install(options)
92
92
 
93
- lock unless Bundler.frozen?
93
+ lock unless Bundler.frozen_bundle?
94
94
  Standalone.new(options[:standalone], @definition).generate if options[:standalone]
95
95
  end
96
96
  end
@@ -135,7 +135,11 @@ module Bundler
135
135
  end
136
136
 
137
137
  File.open(binstub_path, "w", 0o777 & ~File.umask) do |f|
138
- f.puts ERB.new(template, nil, "-").result(binding)
138
+ if RUBY_VERSION >= "2.6"
139
+ f.puts ERB.new(template, :trim_mode => "-").result(binding)
140
+ else
141
+ f.puts ERB.new(template, nil, "-").result(binding)
142
+ end
139
143
  end
140
144
  end
141
145
 
@@ -171,7 +175,11 @@ module Bundler
171
175
  executable_path = Pathname(spec.full_gem_path).join(spec.bindir, executable).relative_path_from(bin_path)
172
176
  executable_path = executable_path
173
177
  File.open "#{bin_path}/#{executable}", "w", 0o755 do |f|
174
- f.puts ERB.new(template, nil, "-").result(binding)
178
+ if RUBY_VERSION >= "2.6"
179
+ f.puts ERB.new(template, :trim_mode => "-").result(binding)
180
+ else
181
+ f.puts ERB.new(template, nil, "-").result(binding)
182
+ end
175
183
  end
176
184
  end
177
185
  end
@@ -44,7 +44,12 @@ module Bundler
44
44
  end
45
45
 
46
46
  def gem_install_message
47
- "Make sure that `gem install #{spec.name} -v '#{spec.version}'` succeeds before bundling."
47
+ remotes = spec.source.remotes
48
+ if remotes.size == 1
49
+ "Make sure that `gem install #{spec.name} -v '#{spec.version}' --source '#{remotes.first}'` succeeds before bundling."
50
+ else
51
+ "Make sure that `gem install #{spec.name} -v '#{spec.version}'` succeeds before bundling."
52
+ end
48
53
  end
49
54
 
50
55
  def spec_settings
@@ -29,7 +29,12 @@ module Bundler
29
29
  @hooks = {}
30
30
  @load_paths = {}
31
31
 
32
- load_index(global_index_file, true)
32
+ begin
33
+ load_index(global_index_file, true)
34
+ rescue GenericSystemCallError
35
+ # no need to fail when on a read-only FS, for example
36
+ nil
37
+ end
33
38
  load_index(local_index_file) if SharedHelpers.in_bundle?
34
39
  end
35
40
 
@@ -14,7 +14,6 @@ module Bundler
14
14
  @version = exemplary_spec.version
15
15
  @source = exemplary_spec.source
16
16
 
17
- @required_by = []
18
17
  @activated_platforms = []
19
18
  @dependencies = nil
20
19
  @specs = Hash.new do |specs, platform|
@@ -132,7 +132,11 @@ module Bundler
132
132
  end
133
133
 
134
134
  def inflate(obj)
135
- Gem.inflate(obj)
135
+ if defined?(Gem::Util)
136
+ Gem::Util.inflate(obj)
137
+ else
138
+ Gem.inflate(obj)
139
+ end
136
140
  end
137
141
 
138
142
  def sources=(val)
@@ -570,8 +574,10 @@ module Bundler
570
574
  @replaced_methods.each do |(sym, klass), method|
571
575
  redefine_method(klass, sym, method)
572
576
  end
573
- post_reset_hooks.reject! do |proc|
574
- proc.binding.eval("__FILE__") == __FILE__
577
+ if Binding.public_method_defined?(:source_location)
578
+ post_reset_hooks.reject! {|proc| proc.binding.source_location[0] == __FILE__ }
579
+ else
580
+ post_reset_hooks.reject! {|proc| proc.binding.eval("__FILE__") == __FILE__ }
575
581
  end
576
582
  @replaced_methods.clear
577
583
  end
@@ -10,7 +10,7 @@ module Bundler
10
10
  end
11
11
 
12
12
  def setup(*groups)
13
- @definition.ensure_equivalent_gemfile_and_lockfile if Bundler.frozen?
13
+ @definition.ensure_equivalent_gemfile_and_lockfile if Bundler.frozen_bundle?
14
14
 
15
15
  groups.map!(&:to_sym)
16
16
 
@@ -21,6 +21,7 @@ module Bundler
21
21
  %w[ref branch tag revision].each {|k| options[k] = options[k].to_s if options[k] }
22
22
 
23
23
  @uri = options["uri"] || ""
24
+ @safe_uri = URICredentialsFilter.credential_filtered_uri(@uri)
24
25
  @branch = options["branch"]
25
26
  @ref = options["ref"] || options["branch"] || options["tag"] || "master"
26
27
  @submodules = options["submodules"]
@@ -77,7 +78,7 @@ module Bundler
77
78
  nil
78
79
  end
79
80
 
80
- "#{uri} (at #{at}#{rev})"
81
+ "#{@safe_uri} (at #{at}#{rev})"
81
82
  end
82
83
 
83
84
  def name
@@ -131,7 +131,12 @@ module Bundler
131
131
  # method 2
132
132
  SharedHelpers.chdir(destination) do
133
133
  git_retry %(fetch --force --quiet --tags "#{path}")
134
- git "reset --hard #{@revision}"
134
+
135
+ begin
136
+ git "reset --hard #{@revision}"
137
+ rescue GitCommandError
138
+ raise MissingGitRevisionError.new(@revision, URICredentialsFilter.credential_filtered_uri(uri))
139
+ end
135
140
 
136
141
  if submodules
137
142
  git_retry "submodule update --init --recursive"
@@ -138,6 +138,8 @@ module Bundler
138
138
  bin_path = Bundler.system_bindir
139
139
  end
140
140
 
141
+ Bundler.mkdir_p bin_path unless spec.executables.empty? || Bundler.rubygems.provides?(">= 2.7.5")
142
+
141
143
  installed_spec = nil
142
144
  Bundler.rubygems.preserve_paths do
143
145
  installed_spec = Bundler::RubyGemsGemInstaller.at(
@@ -477,7 +479,10 @@ module Bundler
477
479
  else
478
480
  uri = spec.remote.uri
479
481
  Bundler.ui.confirm("Fetching #{version_message(spec)}")
480
- Bundler.rubygems.download_gem(spec, uri, download_path)
482
+ rubygems_local_path = Bundler.rubygems.download_gem(spec, uri, download_path)
483
+ if rubygems_local_path != local_path
484
+ FileUtils.mv(rubygems_local_path, local_path)
485
+ end
481
486
  cache_globally(spec, local_path)
482
487
  end
483
488
  end
@@ -37,7 +37,10 @@ module Bundler
37
37
  elsif check
38
38
  return false
39
39
  elsif raise_on_missing
40
- raise "Unable to find a spec satisfying #{dep} in the set. Perhaps the lockfile is corrupted?"
40
+ others = lookup[dep.name] if match_current_platform
41
+ message = "Unable to find a spec satisfying #{dep} in the set. Perhaps the lockfile is corrupted?"
42
+ message += " Found #{others.join(", ")} that did not match the current platform." if others && !others.empty?
43
+ raise GemNotFound, message
41
44
  end
42
45
  end
43
46
 
@@ -15,7 +15,7 @@ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../<%= relative_gemfile_path %>",
15
15
  bundle_binstub = File.expand_path("../bundle", __FILE__)
16
16
 
17
17
  if File.file?(bundle_binstub)
18
- if File.read(bundle_binstub, 150) =~ /This file was generated by Bundler/
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
19
  load(bundle_binstub)
20
20
  else
21
21
  abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
@@ -28,8 +28,10 @@ Gem::Specification.new do |spec|
28
28
  "public gem pushes."
29
29
  end
30
30
 
31
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
32
- f.match(%r{^(test|spec|features)/})
31
+ # Specify which files should be added to the gem when it is released.
32
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
33
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
34
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
33
35
  end
34
36
  spec.bindir = "exe"
35
37
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
@@ -109,7 +109,9 @@ module Bundler
109
109
  end
110
110
 
111
111
  def tell_err(message, color = nil, newline = nil)
112
- newline = message.to_s !~ /( |\t)\Z/ unless newline
112
+ return if @shell.send(:stderr).closed?
113
+
114
+ newline ||= message.to_s !~ /( |\t)\Z/
113
115
  message = word_wrap(message) if newline.is_a?(Hash) && newline[:wrap]
114
116
 
115
117
  color = nil if color && !$stderr.tty?
@@ -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.1" unless defined?(::Bundler::VERSION)
10
+ VERSION = "1.16.2" unless defined?(::Bundler::VERSION)
11
11
 
12
12
  def self.overwrite_loaded_gem_version
13
13
  begin
@@ -7,7 +7,7 @@ bundle-binstubs(1) -- Install the binstubs of the listed gems
7
7
 
8
8
  ## DESCRIPTION
9
9
 
10
- Binstubs are scripts that wrap aroung executables. Bundler creates a
10
+ Binstubs are scripts that wrap around executables. Bundler creates a
11
11
  small Ruby file (a binstub) that loads Bundler, runs the command,
12
12
  and puts it into `bin/`. Binstubs are a shortcut-or alternative-
13
13
  to always using `bundle exec`. This gives you a file that can by run
@@ -34,10 +34,10 @@ Calling binstubs with [GEM [GEM]] will create binstubs for all given gems.
34
34
  Makes binstubs that can work without depending on Rubygems or Bundler at
35
35
  runtime.
36
36
 
37
- * `--sheband`:
37
+ * `--shebang`:
38
38
  Specify a different shebang executable name than the default (default 'ruby')
39
39
 
40
40
  ## BUNDLE INSTALL --BINSTUBS
41
41
 
42
42
  To create binstubs for all the gems in the bundle you can use the `--binstubs`
43
- flag in [bundle install(1)][bundle-install].
43
+ flag in [bundle install(1)][bundle-install(1)].
@@ -18,9 +18,9 @@ If not, the first missing gem is listed and Bundler exits status 1.
18
18
  ## OPTIONS
19
19
 
20
20
  * `--dry-run`:
21
- Locks the `Gemfile(5)` before running the command.
21
+ Locks the [`Gemfile(5)`][Gemfile(5)] before running the command.
22
22
  * `--gemfile`:
23
- Use the specified gemfile instead of the `Gemfile(5)`
23
+ Use the specified gemfile instead of the [`Gemfile(5)`][Gemfile(5)].
24
24
  * `--path`:
25
- Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME).
25
+ Specify a different path than the system default (`$BUNDLE_PATH` or `$GEM_HOME`).
26
26
  Bundler will remember this value for future installs on this machine.
@@ -7,10 +7,14 @@ bundle-config(1) -- Set bundler configuration options
7
7
 
8
8
  ## DESCRIPTION
9
9
 
10
- This command allows you to interact with bundler's configuration system.
11
- Bundler retrieves its configuration from the local application (`app/.bundle/config`),
12
- environment variables, and the user's home directory (`~/.bundle/config`),
13
- in that order of priority.
10
+ This command allows you to interact with Bundler's configuration system.
11
+
12
+ Bundler loads configuration settings in this order:
13
+
14
+ 1. Local config (`app/.bundle/config`)
15
+ 2. Environmental variables (`ENV`)
16
+ 3. Global config (`~/.bundle/config`)
17
+ 4. Bundler default config
14
18
 
15
19
  Executing `bundle config` with no parameters will print a list of all
16
20
  bundler configuration for the current bundle, and where that configuration
@@ -76,7 +80,7 @@ The options that can be configured are:
76
80
 
77
81
  ## BUILD OPTIONS
78
82
 
79
- You can use `bundle config` to give bundler the flags to pass to the gem
83
+ You can use `bundle config` to give Bundler the flags to pass to the gem
80
84
  installer every time bundler tries to install a particular gem.
81
85
 
82
86
  A very common example, the `mysql` gem, requires Snow Leopard users to
@@ -98,11 +102,11 @@ After running this command, every time bundler needs to install the
98
102
  Configuration keys in bundler have two forms: the canonical form and the
99
103
  environment variable form.
100
104
 
101
- For instance, passing the `--without` flag to [bundle install(1)][bundle-install]
105
+ For instance, passing the `--without` flag to [bundle install(1)][bundle-install(1)]
102
106
  prevents Bundler from installing certain groups specified in the Gemfile(5). Bundler
103
107
  persists this value in `app/.bundle/config` so that calls to `Bundler.setup`
104
108
  do not try to find gems from the `Gemfile` that you didn't install. Additionally,
105
- subsequent calls to [bundle install(1)][bundle-install] remember this setting
109
+ subsequent calls to [bundle install(1)][bundle-install(1)] remember this setting
106
110
  and skip those groups.
107
111
 
108
112
  The canonical form of this configuration is `"without"`. To convert the canonical
@@ -116,7 +120,7 @@ the environment variable `BUNDLE_LOCAL__RACK`.
116
120
  ## LIST OF AVAILABLE KEYS
117
121
 
118
122
  The following is a list of all configuration keys and their purpose. You can
119
- learn more about their operation in [bundle install(1)][bundle-install].
123
+ learn more about their operation in [bundle install(1)][bundle-install(1)].
120
124
 
121
125
  * `allow_bundler_dependency_conflicts` (`BUNDLE_ALLOW_BUNDLER_DEPENDENCY_CONFLICTS`):
122
126
  Allow resolving to specifications that have dependencies on `bundler` that
@@ -277,7 +281,7 @@ learn more about their operation in [bundle install(1)][bundle-install].
277
281
  A `:`-separated list of groups whose gems bundler should not install.
278
282
 
279
283
  In general, you should set these settings per-application by using the applicable
280
- flag to the [bundle install(1)][bundle-install] or [bundle package(1)][bundle-package] command.
284
+ flag to the [bundle install(1)][bundle-install(1)] or [bundle package(1)][bundle-package(1)] command.
281
285
 
282
286
  You can set them globally either via environment variables or `bundle config`,
283
287
  whichever is preferable for your setup. If you use both, environment variables
@@ -0,0 +1,33 @@
1
+ bundle-doctor(1) -- Checks the bundle for common problems
2
+ =========================================================
3
+
4
+ ## SYNOPSIS
5
+
6
+ `bundle doctor` [--quiet]
7
+ [--gemfile=GEMFILE]
8
+
9
+ ## DESCRIPTION
10
+
11
+ Checks your Gemfile and gem environment for common problems. If issues
12
+ are detected, Bundler prints them and exits status 1. Otherwise,
13
+ Bundler prints a success message and exits status 0.
14
+
15
+ Examples of common problems caught by bundle-doctor include:
16
+
17
+ * Invalid Bundler settings
18
+ * Mismatched Ruby versions
19
+ * Mismatched platforms
20
+ * Uninstalled gems
21
+ * Missing dependencies
22
+
23
+ ## OPTIONS
24
+
25
+ * `--quiet`:
26
+ Only output warnings and errors.
27
+
28
+ * `--gemfile=<gemfile>`:
29
+ The location of the Gemfile(5) which Bundler should use. This defaults
30
+ to a Gemfile(5) in the current working directory. In general, Bundler
31
+ will assume that the location of the Gemfile(5) is also the project's
32
+ root and will try to find `Gemfile.lock` and `vendor/cache` relative
33
+ to this location.
@@ -8,11 +8,11 @@ bundle-exec(1) -- Execute a command in the context of the bundle
8
8
  ## DESCRIPTION
9
9
 
10
10
  This command executes the command, making all gems specified in the
11
- `Gemfile(5)` available to `require` in Ruby programs.
11
+ [`Gemfile(5)`][Gemfile(5)] available to `require` in Ruby programs.
12
12
 
13
13
  Essentially, if you would normally have run something like
14
14
  `rspec spec/my_spec.rb`, and you want to use the gems specified
15
- in the `Gemfile(5)` and installed via [bundle install(1)][bundle-install], you
15
+ in the [`Gemfile(5)`][Gemfile(5)] and installed via [bundle install(1)][bundle-install(1)], you
16
16
  should run `bundle exec rspec spec/my_spec.rb`.
17
17
 
18
18
  Note that `bundle exec` does not require that an executable is
@@ -27,7 +27,7 @@ available on your shell's `$PATH`.
27
27
 
28
28
  ## BUNDLE INSTALL --BINSTUBS
29
29
 
30
- If you use the `--binstubs` flag in [bundle install(1)][bundle-install], Bundler will
30
+ If you use the `--binstubs` flag in [bundle install(1)][bundle-install(1)], Bundler will
31
31
  automatically create a directory (which defaults to `app_root/bin`)
32
32
  containing all of the executables available from gems in the bundle.
33
33
 
@@ -75,4 +75,4 @@ configuration file using the following names:
75
75
 
76
76
  ## SEE ALSO
77
77
 
78
- * [bundle-config](http://bundler.io/v1.14/bundle_config.html)
78
+ * [bundle config(1)][bundle-config(1)]
@@ -7,12 +7,23 @@ bundle-init(1) -- Generates a Gemfile into the current working directory
7
7
 
8
8
  ## DESCRIPTION
9
9
 
10
- Init generates a default `Gemfile(5)` in the current working directory. When
11
- adding a `Gemfile(5)` to a gem with a gemspec, the `--gemspec` option will
10
+ Init generates a default [`Gemfile(5)`][Gemfile(5)] in the current working directory. When
11
+ adding a [`Gemfile(5)`][Gemfile(5)] to a gem with a gemspec, the `--gemspec` option will
12
12
  automatically add each dependency listed in the gemspec file to the newly
13
- created `Gemfile(5)`.
13
+ created [`Gemfile(5)`][Gemfile(5)].
14
14
 
15
15
  ## OPTIONS
16
16
 
17
17
  * `--gemspec`:
18
- Use the specified .gemspec to create the `Gemfile(5)`
18
+ Use the specified .gemspec to create the [`Gemfile(5)`][Gemfile(5)]
19
+
20
+ ## FILES
21
+
22
+ Included in the default [`Gemfile(5)`][Gemfile(5)]
23
+ generated is the line `# frozen_string_literal: true`. This is a magic comment
24
+ supported for the first time in Ruby 2.3. The presence of this line
25
+ results in all string literals in the file being implicitly frozen.
26
+
27
+ ## SEE ALSO
28
+
29
+ [Gemfile(5)](http://bundler.io/man/gemfile.5.html)