rake 12.0.0.beta1 → 13.0.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/macos.yml +22 -0
  3. data/.github/workflows/ubuntu-rvm.yml +28 -0
  4. data/.github/workflows/ubuntu.yml +20 -0
  5. data/.github/workflows/windows.yml +20 -0
  6. data/CONTRIBUTING.rdoc +11 -4
  7. data/Gemfile +7 -0
  8. data/History.rdoc +124 -11
  9. data/README.rdoc +7 -8
  10. data/Rakefile +7 -4
  11. data/bin/bundle +105 -0
  12. data/bin/rake +29 -0
  13. data/bin/rdoc +29 -0
  14. data/bin/rubocop +29 -0
  15. data/doc/jamis.rb +1 -0
  16. data/doc/rakefile.rdoc +1 -1
  17. data/lib/rake.rb +1 -0
  18. data/lib/rake/application.rb +54 -15
  19. data/lib/rake/backtrace.rb +1 -0
  20. data/lib/rake/clean.rb +4 -3
  21. data/lib/rake/cloneable.rb +1 -0
  22. data/lib/rake/cpu_counter.rb +2 -1
  23. data/lib/rake/default_loader.rb +1 -0
  24. data/lib/rake/dsl_definition.rb +4 -3
  25. data/lib/rake/early_time.rb +1 -0
  26. data/lib/rake/ext/core.rb +1 -0
  27. data/lib/rake/ext/string.rb +2 -1
  28. data/lib/rake/file_creation_task.rb +2 -1
  29. data/lib/rake/file_list.rb +5 -4
  30. data/lib/rake/file_task.rb +11 -3
  31. data/lib/rake/file_utils.rb +10 -12
  32. data/lib/rake/file_utils_ext.rb +7 -17
  33. data/lib/rake/invocation_chain.rb +1 -0
  34. data/lib/rake/invocation_exception_mixin.rb +1 -0
  35. data/lib/rake/late_time.rb +1 -0
  36. data/lib/rake/linked_list.rb +1 -0
  37. data/lib/rake/loaders/makefile.rb +1 -0
  38. data/lib/rake/multi_task.rb +2 -37
  39. data/lib/rake/name_space.rb +1 -0
  40. data/lib/rake/packagetask.rb +18 -6
  41. data/lib/rake/phony.rb +1 -0
  42. data/lib/rake/private_reader.rb +1 -0
  43. data/lib/rake/promise.rb +3 -2
  44. data/lib/rake/pseudo_status.rb +1 -0
  45. data/lib/rake/rake_module.rb +29 -0
  46. data/lib/rake/rake_test_loader.rb +17 -11
  47. data/lib/rake/rule_recursion_overflow_error.rb +1 -0
  48. data/lib/rake/scope.rb +2 -1
  49. data/lib/rake/task.rb +59 -16
  50. data/lib/rake/task_argument_error.rb +1 -0
  51. data/lib/rake/task_arguments.rb +2 -0
  52. data/lib/rake/task_manager.rb +42 -17
  53. data/lib/rake/tasklib.rb +1 -0
  54. data/lib/rake/testtask.rb +3 -1
  55. data/lib/rake/thread_history_display.rb +1 -0
  56. data/lib/rake/thread_pool.rb +1 -0
  57. data/lib/rake/trace_output.rb +1 -0
  58. data/lib/rake/version.rb +2 -1
  59. data/lib/rake/win32.rb +1 -0
  60. data/rake.gemspec +4 -7
  61. metadata +13 -52
  62. data/.gitignore +0 -14
  63. data/.rubocop.yml +0 -57
  64. data/.travis.yml +0 -21
  65. data/appveyor.yml +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7a2ad30b1c047b07f92723581ef8569bc40463b7
4
- data.tar.gz: b92a7aee36f6319bd904831475bdc1fdbbd17a90
2
+ SHA256:
3
+ metadata.gz: '08497cc32815feb4389235e329280cc871478425a9269dc03975b101c6c7ddda'
4
+ data.tar.gz: 96f4f74705c9ca03e0816641b46a71d6b13573fae70ccd529dd199437a8fd1a3
5
5
  SHA512:
6
- metadata.gz: f23ce6c0ac605c2e818b734df7f67ad7c0e34bdde880735723f18cefc79313b6df0ea178cb29cb09099a1fa0473a740a60624bf0d60954ae0161b64052855448
7
- data.tar.gz: 3aea3dffbfe317a004c2c51ca73aed5b2ffbf4c0bdf40673d56d72846679b5d6a87c3ab9ff0b2ba55f4204a9df2e13c7ef6ee494f71647135046869a3e724250
6
+ metadata.gz: 4ccd9ab5c4599602669669d449ed5c6398913545a4f445c465a13bce9a77aece4c52fd883eb21b3029e8c8e54940befd11d91e75568ed29115a0df73cd393e0e
7
+ data.tar.gz: a86e3a39f56b81c05c9c17e64f86b4b619739500b553271292955b48890bd409983a231a3d860235182a3c9030969ae6dbb84e6c4b359484683e0b51b6d8ff0b
@@ -0,0 +1,22 @@
1
+ name: macos
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: macos-latest
8
+ strategy:
9
+ matrix:
10
+ ruby: [ '2.6.x', '2.5.x', '2.4.x', '2.3.x' ]
11
+ steps:
12
+ - uses: actions/checkout@master
13
+ - name: Set up Ruby
14
+ uses: actions/setup-ruby@v1
15
+ with:
16
+ version: ${{ matrix.ruby }}
17
+ - name: Install dependencies
18
+ run: gem install minitest
19
+ - name: Run test
20
+ env:
21
+ COVERALLS: "yes"
22
+ run: ruby -Ilib exe/rake
@@ -0,0 +1,28 @@
1
+ name: ubuntu-rvm
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ ruby: [ 'jruby-head', 'jruby-9.2.8.0', 'ruby-head', '2.2.10' ]
11
+ steps:
12
+ - uses: actions/checkout@master
13
+ - name: Set up RVM
14
+ run: |
15
+ curl -sSL https://get.rvm.io | bash
16
+ - name: Set up Ruby
17
+ run: |
18
+ source $HOME/.rvm/scripts/rvm
19
+ rvm install ${{ matrix.ruby }} --binary
20
+ rvm --default use ${{ matrix.ruby }}
21
+ - name: Install dependencies
22
+ run: |
23
+ source $HOME/.rvm/scripts/rvm
24
+ gem install minitest
25
+ - name: Run test
26
+ run: |
27
+ source $HOME/.rvm/scripts/rvm
28
+ ruby -Ilib exe/rake
@@ -0,0 +1,20 @@
1
+ name: ubuntu
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ ruby: [ '2.6.x', '2.5.x', '2.4.x', '2.3.x' ]
11
+ steps:
12
+ - uses: actions/checkout@master
13
+ - name: Set up Ruby
14
+ uses: actions/setup-ruby@v1
15
+ with:
16
+ version: ${{ matrix.ruby }}
17
+ - name: Install dependencies
18
+ run: gem install minitest
19
+ - name: Run test
20
+ run: ruby -Ilib exe/rake
@@ -0,0 +1,20 @@
1
+ name: windows
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: windows-latest
8
+ strategy:
9
+ matrix:
10
+ ruby: [ '2.6.x', '2.5.x', '2.4.x' ]
11
+ steps:
12
+ - uses: actions/checkout@master
13
+ - name: Set up Ruby
14
+ uses: actions/setup-ruby@v1
15
+ with:
16
+ version: ${{ matrix.ruby }}
17
+ - name: Install dependencies
18
+ run: gem install minitest
19
+ - name: Run test
20
+ run: ruby -Ilib exe/rake
@@ -3,7 +3,7 @@
3
3
  Rake is currently hosted at github. The github web page is
4
4
  https://github.com/ruby/rake . The public git clone URL is
5
5
 
6
- git://github.com/ruby/rake.git
6
+ https://github.com/ruby/rake.git
7
7
 
8
8
  = Running the Rake Test Suite
9
9
 
@@ -12,11 +12,18 @@ If you wish to run the unit and functional tests that come with Rake:
12
12
  * +cd+ into the top project directory of rake.
13
13
  * Install gem dependency using bundler:
14
14
 
15
- bundle install # Install bundler, minitest and rdoc
15
+ $ bundle install # Install bundler, minitest and rdoc
16
16
 
17
- * Type one of the following:
17
+ * Run the test suite
18
18
 
19
- rake # If you have run rake's tests
19
+ $ rake
20
+
21
+ = Rubocop
22
+
23
+ Rake uses Rubocop to enforce a consistent style on new changes being
24
+ proposed. You can check your code with Rubocop using:
25
+
26
+ $ ./bin/rubocop
20
27
 
21
28
  = Issues and Bug Reports
22
29
 
data/Gemfile CHANGED
@@ -1,3 +1,10 @@
1
1
  source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
+
5
+ group :development do
6
+ gem "bundler"
7
+ gem "minitest"
8
+ gem "coveralls"
9
+ gem "rubocop"
10
+ end
@@ -1,15 +1,128 @@
1
- === 12.0.0(dev)
1
+ === 13.0.0.pre.1
2
+
3
+ ==== Enhancements
4
+
5
+ * Follows recent changes on keyword arguments in ruby 2.7.
6
+ Pull Request #326 by nobu
7
+ * Make `PackageTask` be able to omit parent directory while packing files
8
+ Pull Request #310 by tonytonyjan
9
+ * Add order only dependency
10
+ Pull Request #269 by take-cheeze
11
+
12
+ ==== Compatibility changes
13
+
14
+ * Drop old ruby versions(< 2.2)
15
+
16
+ === 12.3.3
17
+
18
+ ==== Bug fixes
19
+
20
+ * Use the application's name in error message if a task is not found.
21
+ Pull Request #303 by tmatilai
22
+
23
+ ==== Enhancements:
24
+
25
+ * Use File.open explicitly.
26
+
27
+ === 12.3.2
28
+
29
+ ==== Bug fixes
30
+
31
+ * Fixed test fails caused by 2.6 warnings.
32
+ Pull Request #297 by hsbt
33
+
34
+ ==== Enhancements:
35
+
36
+ * Rdoc improvements.
37
+ Pull Request #293 by colby-swandale
38
+ * Improve multitask performance.
39
+ Pull Request #273 by jsm
40
+ * Add alias `prereqs`.
41
+ Pull Request #268 by take-cheeze
42
+
43
+ === 12.3.1
44
+
45
+ ==== Bug fixes
46
+
47
+ * Support did_you_mean >= v1.2.0 which has a breaking change on formatters.
48
+ Pull request #262 by FUJI Goro.
49
+
50
+ ==== Enhancements:
51
+
52
+ * Don't run task if it depends on already invoked but failed task.
53
+ Pull request #252 by Gonzalo Rodriguez.
54
+ * Make space trimming consistent for all task arguments.
55
+ Pull request #259 by Gonzalo Rodriguez.
56
+ * Removes duplicated inclusion of Rake::DSL in tests.
57
+ Pull request #254 by Gonzalo Rodriguez.
58
+ * Re-raise a LoadError that didn't come from require in the test loader.
59
+ Pull request #250 by Dylan Thacker-Smith.
60
+
61
+ === 12.3.0
62
+
63
+ ==== Compatibility Changes
64
+
65
+ * Bump `required_ruby_version` to Ruby 2.0.0. Rake has already
66
+ removed support for Ruby 1.9.x.
67
+
68
+ ==== Enhancements:
69
+
70
+ * Support `test-bundled-gems` task on ruby core.
71
+
72
+ === 12.2.1
73
+
74
+ ==== Bug fixes
75
+
76
+ * Fixed to break Capistrano::Application on capistrano3.
77
+
78
+ === 12.2.0
79
+
80
+ ==== Enhancements:
81
+
82
+ * Make rake easier to use as a library
83
+ Pull request #211 by @drbrain
84
+ * Fix quadratic performance in FileTask#out_of_date?
85
+ Pull request #224 by @doudou
86
+ * Clarify output when printing nested exception traces
87
+ Pull request #232 by @urbanautomaton
88
+
89
+ ==== Bug fixes
90
+
91
+ * Account for a file that match 2 or more patterns.
92
+ Pull request #231 by @styd
93
+
94
+ === 12.1.0
95
+
96
+ ==== Enhancements:
97
+
98
+ * Added did_you_mean feature for invalid rake task.
99
+ Pull request #221 by @xtina-starr
100
+ * Enabled to dependency chained by extensions. Pull request #39 by Petr Skocik.
101
+ * Make all of string literals to frozen objects on Ruby 2.4 or later.
102
+
103
+ ==== Bug fixes
104
+
105
+ * Typo fixes in rakefile.rdoc. Pull request #180 by Yuta Kurotaki.
106
+ * Fix unexpected behavior of file task with dryrun option.
107
+ Pull request #183 by @aycabta.
108
+ * Make LoadError from running tests more obvious. Pull request #195
109
+ by Eric Hodel.
110
+ * Fix unexpected TypeError with hash style option. Pull request #202
111
+ by Kuniaki IGARASHI.
112
+
113
+ === 12.0.0
2
114
 
3
115
  ==== Compatibility Changes
4
116
 
5
- * Remove arguments on clear #157 by Jesse Bowes
117
+ * Removed arguments on clear #157 by Jesse Bowes
6
118
  * Removed `rake/contrib` packages. These are extracted to `rake-contrib` gem.
7
- * Removed to deprecated warnings for `last\_comment`.
119
+ * Removed deprecated method named `last\_comment`.
8
120
 
9
121
  ==== Enhancements:
10
122
 
11
123
  * Re-use trace option on `cleanup` task. #164 by Brian Henderson
12
124
  * Actions adore keyword arguments #174 by Josh Cheek
125
+ * Rake::TaskArguments#key? alias of #has_key? #175 by Paul Annesley
13
126
 
14
127
  === 11.3.0 / 2016-09-20
15
128
 
@@ -384,7 +497,7 @@ we'll repeat the changes for versions 0.9.3 through 0.9.5 here.
384
497
  programatically add rake task libraries.
385
498
 
386
499
  * You can specific backtrace suppression patterns (see
387
- --supress-backtrace)
500
+ --suppress-backtrace)
388
501
 
389
502
  * Directory tasks can now take prerequisites and actions
390
503
 
@@ -632,7 +745,7 @@ we'll repeat the changes for version 0.9.3 here.
632
745
  programatically add rake task libraries.
633
746
 
634
747
  * You can specific backtrace suppression patterns (see
635
- --supress-backtrace)
748
+ --suppress-backtrace)
636
749
 
637
750
  * Directory tasks can now take prerequisites and actions
638
751
 
@@ -842,7 +955,7 @@ a number of bug fixes.
842
955
  programatically add rake task libraries.
843
956
 
844
957
  * You can specific backtrace suppression patterns (see
845
- --supress-backtrace)
958
+ --suppress-backtrace)
846
959
 
847
960
  * Directory tasks can now take prerequisites and actions
848
961
 
@@ -1414,7 +1527,7 @@ The first argument is still the name of the task (:name in this case).
1414
1527
  The next to argumements are the names of the parameters expected by
1415
1528
  :name (:first_name and :last_name in the example).
1416
1529
 
1417
- To access the values of the paramters, the block defining the task
1530
+ To access the values of the parameters, the block defining the task
1418
1531
  behaviour can now accept a second parameter:
1419
1532
 
1420
1533
  task :name, :first_name, :last_name do |t, args|
@@ -1517,7 +1630,7 @@ The first argument is still the name of the task (:name in this case).
1517
1630
  The next to argumements are the names of the parameters expected by
1518
1631
  :name (:first_name and :last_name in the example).
1519
1632
 
1520
- To access the values of the paramters, the block defining the task
1633
+ To access the values of the parameters, the block defining the task
1521
1634
  behaviour can now accept a second parameter:
1522
1635
 
1523
1636
  task :name, :first_name, :last_name do |t, args|
@@ -1737,7 +1850,7 @@ are, I hope you enjoy them.
1737
1850
  * RDoc defaults to internal (in-process) invocation. The old behavior
1738
1851
  is still available by setting the +external+ flag to true.
1739
1852
  * Rakefiles are now loaded with the expanded path to prevent
1740
- accidental polution from the Ruby load path.
1853
+ accidental pollution from the Ruby load path.
1741
1854
  * Task objects my now be used in prerequisite lists directly.
1742
1855
  * Task objects (in addition to task names) may now be included in the
1743
1856
  prerequisite list of a task.
@@ -1750,7 +1863,7 @@ are, I hope you enjoy them.
1750
1863
  ===== Namespaces
1751
1864
 
1752
1865
  Tasks can now be nested inside their own namespaces. Tasks within one
1753
- namespace will not accidently interfer with tasks named in a different
1866
+ namespace will not accidentally interfer with tasks named in a different
1754
1867
  namespace.
1755
1868
 
1756
1869
  For example:
@@ -1808,7 +1921,7 @@ As usual, it was input from users that drove a alot of these changes.
1808
1921
  The following people either contributed patches, made suggestions or
1809
1922
  made otherwise helpful comments. Thanks to ...
1810
1923
 
1811
- * Doug Young (inspriation for the parallel task)
1924
+ * Doug Young (inspiration for the parallel task)
1812
1925
  * David Heinemeier Hansson (for --trace message enhancement and for
1813
1926
  pushing for namespace support).
1814
1927
  * Ludvig Omholt (for the openAFS fix)
@@ -3,7 +3,6 @@
3
3
  home :: https://github.com/ruby/rake
4
4
  bugs :: https://github.com/ruby/rake/issues
5
5
  docs :: https://ruby.github.io/rake
6
- build status :: {<img src="https://travis-ci.org/ruby/rake.svg?branch=master" alt="travis-ci">}[https://travis-ci.org/ruby/rake] {<img src="https://ci.appveyor.com/api/projects/status/github/ruby/rake?branch=master&svg=true" alt="appveyor">}[https://ci.appveyor.com/project/ruby/rake]
7
6
 
8
7
  == Description
9
8
 
@@ -25,8 +24,8 @@ Rake has the following features:
25
24
 
26
25
  * A library of prepackaged tasks to make building rakefiles easier. For example,
27
26
  tasks for building tarballs. (Formerly
28
- tasks for building RDoc, Gems and publishing to FTP were included in rake but they're now
29
- available in RDoc, RubyGems and respectively.)
27
+ tasks for building RDoc, Gems, and publishing to FTP were included in rake but they're now
28
+ available in RDoc, RubyGems, and rake-contrib respectively.)
30
29
 
31
30
  * Supports parallel execution of tasks.
32
31
 
@@ -75,10 +74,10 @@ Type "rake --help" for all available options.
75
74
 
76
75
  === Rake Information
77
76
 
78
- * {Rake command-line}[rdoc-ref:doc/command_line_usage.rdoc]
79
- * {Writing Rakefiles}[rdoc-ref:doc/rakefile.rdoc]
80
- * The original {Rake announcement}[rdoc-ref:doc/rational.rdoc]
81
- * Rake {glossary}[rdoc-ref:doc/glossary.rdoc]
77
+ * {Rake command-line}[link:doc/command_line_usage.rdoc]
78
+ * {Writing Rakefiles}[link:doc/rakefile.rdoc]
79
+ * The original {Rake announcement}[link:doc/rational.rdoc]
80
+ * Rake {glossary}[link:doc/glossary.rdoc]
82
81
 
83
82
  === Presentations and Articles about Rake
84
83
 
@@ -130,7 +129,7 @@ Rake is available under an MIT-style license.
130
129
  = Other stuff
131
130
 
132
131
  Author:: Jim Weirich <jim.weirich@gmail.com>
133
- Requires:: Ruby 1.9.3 or later
132
+ Requires:: Ruby 2.0.0 or later
134
133
  License:: Copyright Jim Weirich.
135
134
  Released under an MIT-style license. See the MIT-LICENSE
136
135
  file included in the distribution.
data/Rakefile CHANGED
@@ -9,16 +9,19 @@
9
9
  lib = File.expand_path("../lib", __FILE__)
10
10
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
11
11
 
12
- require "bundler/gem_tasks"
13
- require "rake/testtask"
14
- require "rdoc/task"
12
+ begin
13
+ require "bundler/gem_tasks"
14
+ rescue LoadError
15
+ end
15
16
 
17
+ require "rake/testtask"
16
18
  Rake::TestTask.new(:test) do |t|
17
19
  t.libs << "test"
18
20
  t.verbose = true
19
21
  t.test_files = FileList["test/**/test_*.rb"]
20
22
  end
21
23
 
24
+ require "rdoc/task"
22
25
  RDoc::Task.new do |doc|
23
26
  doc.main = "README.rdoc"
24
27
  doc.title = "Rake -- Ruby Make"
@@ -27,7 +30,7 @@ RDoc::Task.new do |doc|
27
30
  end
28
31
 
29
32
  task ghpages: :rdoc do
30
- `git checkout gh-pages`
33
+ %x[git checkout gh-pages]
31
34
  require "fileutils"
32
35
  FileUtils.rm_rf "/tmp/html"
33
36
  FileUtils.mv "html", "/tmp"
@@ -0,0 +1,105 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'bundle' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "rubygems"
12
+
13
+ m = Module.new do
14
+ module_function
15
+
16
+ def invoked_as_script?
17
+ File.expand_path($0) == File.expand_path(__FILE__)
18
+ end
19
+
20
+ def env_var_version
21
+ ENV["BUNDLER_VERSION"]
22
+ end
23
+
24
+ def cli_arg_version
25
+ return unless invoked_as_script? # don't want to hijack other binstubs
26
+ return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update`
27
+ bundler_version = nil
28
+ update_index = nil
29
+ ARGV.each_with_index do |a, i|
30
+ if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN
31
+ bundler_version = a
32
+ end
33
+ next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/
34
+ bundler_version = $1 || ">= 0.a"
35
+ update_index = i
36
+ end
37
+ bundler_version
38
+ end
39
+
40
+ def gemfile
41
+ gemfile = ENV["BUNDLE_GEMFILE"]
42
+ return gemfile if gemfile && !gemfile.empty?
43
+
44
+ File.expand_path("../../Gemfile", __FILE__)
45
+ end
46
+
47
+ def lockfile
48
+ lockfile =
49
+ case File.basename(gemfile)
50
+ when "gems.rb" then gemfile.sub(/\.rb$/, gemfile)
51
+ else "#{gemfile}.lock"
52
+ end
53
+ File.expand_path(lockfile)
54
+ end
55
+
56
+ def lockfile_version
57
+ return unless File.file?(lockfile)
58
+ lockfile_contents = File.read(lockfile)
59
+ return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/
60
+ Regexp.last_match(1)
61
+ end
62
+
63
+ def bundler_version
64
+ @bundler_version ||= begin
65
+ env_var_version || cli_arg_version ||
66
+ lockfile_version || "#{Gem::Requirement.default}.a"
67
+ end
68
+ end
69
+
70
+ def load_bundler!
71
+ ENV["BUNDLE_GEMFILE"] ||= gemfile
72
+
73
+ # must dup string for RG < 1.8 compatibility
74
+ activate_bundler(bundler_version.dup)
75
+ end
76
+
77
+ def activate_bundler(bundler_version)
78
+ if Gem::Version.correct?(bundler_version) && Gem::Version.new(bundler_version).release < Gem::Version.new("2.0")
79
+ bundler_version = "< 2"
80
+ end
81
+ gem_error = activation_error_handling do
82
+ gem "bundler", bundler_version
83
+ end
84
+ return if gem_error.nil?
85
+ require_error = activation_error_handling do
86
+ require "bundler/version"
87
+ end
88
+ return if require_error.nil? && Gem::Requirement.new(bundler_version).satisfied_by?(Gem::Version.new(Bundler::VERSION))
89
+ warn "Activating bundler (#{bundler_version}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_version}'`"
90
+ exit 42
91
+ end
92
+
93
+ def activation_error_handling
94
+ yield
95
+ nil
96
+ rescue StandardError, LoadError => e
97
+ e
98
+ end
99
+ end
100
+
101
+ m.load_bundler!
102
+
103
+ if m.invoked_as_script?
104
+ load Gem.bin_path("bundler", "bundle")
105
+ end