Skip to content

Commit 5da8f72

Browse files
committed
Revert "Drop MRI 1.8.7-2.2 support (#158)"
This reverts commit 92d5134.
1 parent 602cdd9 commit 5da8f72

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+707
-420
lines changed

.rubocop.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
inherit_gem:
2+
rubocop-lts: config/rubygem_rspec.yml
3+
4+
RSpec/ExampleLength:
5+
Enabled: false
6+
7+
RSpec/MultipleExpectations:
8+
Enabled: false
9+
10+
RSpec/DescribeClass:
11+
Enabled: false
12+
13+
# TODO: We would need to implement Mutexes in order to make violations thread safe.
14+
# But even then they would still trigger the violation.
15+
# See: https://coderscat.com/ruby-change-current-working-directory/
16+
ThreadSafety/DirChdir:
17+
Enabled: false

.rubocop_gradual.lock

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
{
2+
"Gemfile:3311641552": [
3+
[19, 3, 4, "Security/Eval: The use of `eval` is a serious security risk.", 2087429787],
4+
[21, 3, 4, "Security/Eval: The use of `eval` is a serious security risk.", 2087429787],
5+
[23, 3, 4, "Security/Eval: The use of `eval` is a serious security risk.", 2087429787]
6+
],
7+
"bin/bundle:3123891436": [
8+
[66, 5, 20, "ThreadSafety/ClassInstanceVariable: Avoid class instance variables.", 2485198147]
9+
],
10+
"lib/appraisal/appraisal_file.rb:3486777149": [
11+
[13, 5, 52, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 946226050]
12+
],
13+
"lib/appraisal/cli.rb:435288507": [
14+
[116, 5, 410, "Style/MissingRespondToMissing: When using `method_missing`, define `respond_to_missing?`.", 1969529734]
15+
],
16+
"lib/appraisal/customize.rb:190316824": [
17+
[10, 5, 138, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 2682968747],
18+
[17, 5, 62, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 4082816720],
19+
[21, 5, 516, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 2780620929]
20+
],
21+
"lib/appraisal/utils.rb:2308689703": [
22+
[6, 5, 129, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 733338411],
23+
[13, 5, 354, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 119295155],
24+
[35, 5, 152, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 1306460482],
25+
[42, 5, 151, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 1120325158],
26+
[48, 5, 97, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 2744794681],
27+
[52, 5, 244, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 1461524090],
28+
[61, 5, 111, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 1909626476]
29+
],
30+
"spec/acceptance/cli/clean_spec.rb:1398207731": [
31+
[5, 23, 17, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 1606893221]
32+
],
33+
"spec/acceptance/cli/generate_spec.rb:1599585127": [
34+
[5, 23, 20, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 3905826443]
35+
],
36+
"spec/acceptance/cli/help_spec.rb:3832542771": [
37+
[5, 23, 16, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 2148351217]
38+
],
39+
"spec/acceptance/cli/install_spec.rb:2827187127": [
40+
[5, 23, 19, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 3284642881]
41+
],
42+
"spec/acceptance/cli/list_spec.rb:1943273700": [
43+
[5, 23, 16, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 2152687586]
44+
],
45+
"spec/acceptance/cli/update_spec.rb:2524405540": [
46+
[5, 23, 18, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 3752509585]
47+
],
48+
"spec/acceptance/cli/version_spec.rb:4076882072": [
49+
[5, 23, 19, "RSpec/DescribeMethod: The second argument to describe should be the method being tested. '#instance' or '.class'.", 316256858]
50+
],
51+
"spec/appraisal/appraisal_file_spec.rb:1896479557": [
52+
[28, 18, 7, "RSpec/NamedSubject: Name your test subject if you need to reference it explicitly.", 1892732441],
53+
[33, 7, 57, "RSpec/NestedGroups: Maximum example group nesting exceeded [4/3].", 511689843],
54+
[41, 20, 7, "RSpec/NamedSubject: Name your test subject if you need to reference it explicitly.", 1892732441],
55+
[41, 33, 39, "RSpec/ExpectChange: Prefer `change(Appraisal::Customize, :heading)`.", 513325635],
56+
[45, 7, 63, "RSpec/NestedGroups: Maximum example group nesting exceeded [4/3].", 1527582647],
57+
[53, 20, 7, "RSpec/NamedSubject: Name your test subject if you need to reference it explicitly.", 1892732441],
58+
[53, 33, 45, "RSpec/ExpectChange: Prefer `change(Appraisal::Customize, :single_quotes)`.", 627072007],
59+
[57, 7, 77, "RSpec/NestedGroups: Maximum example group nesting exceeded [4/3].", 1960750461],
60+
[65, 11, 7, "RSpec/NamedSubject: Name your test subject if you need to reference it explicitly.", 1892732441]
61+
],
62+
"spec/appraisal/appraisal_spec.rb:1242607413": [
63+
[33, 11, 23, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 2511581329],
64+
[90, 11, 23, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 1120511218],
65+
[95, 7, 83, "RSpec/ReceiveMessages: Use `receive_messages` instead of multiple stubs on lines [96].", 1453890366],
66+
[95, 13, 10, "RSpec/InstanceVariable: Avoid instance variables - use let, a method call, or a local variable (if possible).", 4097172192],
67+
[96, 7, 82, "RSpec/ReceiveMessages: Use `receive_messages` instead of multiple stubs on lines [95].", 1614459968],
68+
[96, 13, 10, "RSpec/InstanceVariable: Avoid instance variables - use let, a method call, or a local variable (if possible).", 4097172192],
69+
[97, 61, 20, "RSpec/VerifiedDoubles: Prefer using verifying doubles over normal doubles.", 2281802167],
70+
[104, 9, 10, "RSpec/InstanceVariable: Avoid instance variables - use let, a method call, or a local variable (if possible).", 4097172192],
71+
[114, 7, 10, "RSpec/InstanceVariable: Avoid instance variables - use let, a method call, or a local variable (if possible).", 4097172192],
72+
[120, 7, 10, "RSpec/InstanceVariable: Avoid instance variables - use let, a method call, or a local variable (if possible).", 4097172192],
73+
[126, 7, 10, "RSpec/InstanceVariable: Avoid instance variables - use let, a method call, or a local variable (if possible).", 4097172192]
74+
],
75+
"spec/appraisal/customize_spec.rb:1577209079": [
76+
[7, 1, 4439, "RSpec/MultipleMemoizedHelpers: Example group has too many memoized helpers [6/5]", 3030165271],
77+
[17, 3, 13, "RSpec/SubjectDeclaration: Use subject explicitly rather than using let", 3282510975],
78+
[25, 3, 564, "RSpec/MultipleMemoizedHelpers: Example group has too many memoized helpers [6/5]", 3336288078],
79+
[27, 7, 7, "RSpec/NamedSubject: Name your test subject if you need to reference it explicitly.", 1892732441],
80+
[43, 3, 286, "RSpec/MultipleMemoizedHelpers: Example group has too many memoized helpers [6/5]", 4222920637],
81+
[45, 7, 7, "RSpec/NamedSubject: Name your test subject if you need to reference it explicitly.", 1892732441],
82+
[55, 3, 2985, "RSpec/MultipleMemoizedHelpers: Example group has too many memoized helpers [13/5]", 1576524985],
83+
[65, 7, 62, "RSpec/ReceiveMessages: Use `receive_messages` instead of multiple stubs on lines [66, 67, 68].", 123979604],
84+
[66, 7, 72, "RSpec/ReceiveMessages: Use `receive_messages` instead of multiple stubs on lines [65, 67, 68].", 3240119264],
85+
[67, 7, 74, "RSpec/ReceiveMessages: Use `receive_messages` instead of multiple stubs on lines [65, 66, 68].", 3701550880],
86+
[68, 7, 85, "RSpec/ReceiveMessages: Use `receive_messages` instead of multiple stubs on lines [65, 66, 67].", 3874694796],
87+
[72, 7, 7, "RSpec/NamedSubject: Name your test subject if you need to reference it explicitly.", 1892732441]
88+
],
89+
"spec/appraisal/gemfile_spec.rb:3323881535": [
90+
[227, 11, 17, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 3608128140],
91+
[228, 13, 13, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 420381022],
92+
[235, 13, 15, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 3511037132],
93+
[245, 13, 12, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 3100155342],
94+
[255, 11, 24, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 3242693747],
95+
[258, 13, 17, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 105800534],
96+
[281, 13, 16, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 179066369],
97+
[312, 13, 15, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 3912615366],
98+
[356, 13, 14, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 2832187185],
99+
[414, 13, 22, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 772581599],
100+
[424, 11, 20, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 1076107314]
101+
],
102+
"spec/appraisal/utils_spec.rb:2286225770": [
103+
[62, 17, 58, "RSpec/VerifiedDoubles: Prefer using verifying doubles over normal doubles.", 1573223692]
104+
],
105+
"spec/support/acceptance_test_helpers.rb:1261310616": [
106+
[133, 5, 32, "Style/InvertibleUnlessCondition: Prefer `if $?.exitstatus == 0` over `unless $?.exitstatus != 0`.", 4187517264]
107+
],
108+
"spec/support/stream_helpers.rb:3273310040": [
109+
[9, 17, 4, "Security/Eval: The use of `eval` is a serious security risk.", 2087429787]
110+
]
111+
}

.tool-versions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ruby 3.4.2

Gemfile

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,30 @@ source "https://rubygems.org"
22

33
gemspec
44

5+
platform :mri do
6+
# Debugging
7+
gem "byebug", ">= 11"
8+
9+
# Dev Console - Binding.pry - Irb replacement
10+
gem "pry", "~> 0.14" # ruby >= 2.0
11+
end
12+
513
# This here to make sure appraisal works with Rails 3.0.0.
614
gem "thor", "~> 0.14.0"
715

8-
group :development, :test do
9-
gem "activesupport", ">= 3.2.21"
10-
gem "rspec", "~> 3.0"
16+
# Ruby version specific dependencies
17+
ruby_version = Gem::Version.new(RUBY_VERSION)
18+
if ruby_version < Gem::Version.new("1.9")
19+
eval File.read("Gemfile-1.8")
20+
elsif ruby_version < Gem::Version.new("2.1")
21+
eval File.read("Gemfile-2.0")
22+
elsif ruby_version < Gem::Version.new("2.2")
23+
eval File.read("Gemfile-2.1")
24+
elsif ruby_version < Gem::Version.new("2.7")
25+
# Std Lib extractions
26+
gem "benchmark", "~> 0.4" # Removed from Std Lib in Ruby 3.5
27+
else
28+
# Ruby >= 2.7 we can run style / lint checks via rubocop-gradual with rubocop-lts rules for Ruby 1.8+.
29+
# This means we can develop on modern Ruby but remain compatible with ancient Ruby.
30+
eval_gemfile "gemfiles/modular/style.gemfile"
1131
end

Gemfile-1.8

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# These gems are locked for Ruby 1.8.7 compatibility
2+
gem "i18n", "~> 0.6.0"
3+
gem "activesupport", "~> 3.2.21"
4+
gem "rake", "~> 10.5"
5+
gem "rack", "~> 1.6.5"
6+
gem "benchmark", "~> 0.3" # Removed from Std Lib in Ruby 3.5

Gemfile-2.0

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# These gems are locked for Ruby 1.9 & 2.0 compatibility
2+
gem "activesupport", "~> 4.2.7"
3+
gem "rack", "~> 1.6.5"
4+
gem "benchmark", "~> 0.3" # Removed from Std Lib in Ruby 3.5

Gemfile-2.1

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# These gems are locked for Ruby 2.1 compatibility
2+
gem "activesupport", "~> 4.2.7"
3+
gem "rack", "~> 1.6.5"
4+
gem "benchmark", "~> 0.4" # Removed from Std Lib in Ruby 3.5

README.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -122,31 +122,31 @@ To do this, use the `remove_gem` declaration within the necessary `appraise` blo
122122

123123
**Gemfile**
124124
```ruby
125-
gem 'rails', '~> 4.2'
125+
gem "rails", "~> 4.2"
126126

127127
group :test do
128-
gem 'rspec', '~> 4.0'
129-
gem 'test_after_commit'
128+
gem "rspec", "~> 4.0"
129+
gem "test_after_commit"
130130
end
131131
```
132132

133133
**Appraisals**
134134
```ruby
135-
appraise 'rails-5' do
136-
gem 'rails', '~> 5.2'
135+
appraise "rails-5" do
136+
gem "rails", "~> 5.2"
137137

138138
group :test do
139-
remove_gem 'test_after_commit'
139+
remove_gem "test_after_commit"
140140
end
141141
end
142142
```
143143

144144
Using the `Appraisals` file defined above, this is what the resulting `Gemfile` will look like:
145145
```ruby
146-
gem 'rails', '~> 5.2'
146+
gem "rails", "~> 5.2"
147147

148148
group :test do
149-
gem 'rspec', '~> 4.0'
149+
gem "rspec", "~> 4.0"
150150
end
151151
```
152152

@@ -174,12 +174,12 @@ You can also provide variables for substitution in the heading, based on each ap
174174
```ruby
175175
customize_gemfiles do
176176
{
177-
single_quotes: true,
178-
heading: <<~HEADING
179-
frozen_string_literal: true
177+
:single_quotes => true,
178+
:heading => <<-HEADING,
179+
frozen_string_literal: true
180180
181-
`%{gemfile}` has been generated by Appraisal, do NOT modify it or `%{lockfile}` directly!
182-
Make the changes to the "%{appraisal}" block in `Appraisals` instead. See the conventions at https://example.com/
181+
`%{gemfile}` has been generated by Appraisal, do NOT modify it or `%{lockfile}` directly!
182+
Make the changes to the "%{appraisal}" block in `Appraisals` instead. See the conventions at https://example.com/
183183
HEADING
184184
}
185185
end
@@ -196,7 +196,7 @@ Using the `Appraisals` file defined above, this is what the resulting `Gemfile`
196196
# `rails-3.gemfile` has been generated by Appraisal, do NOT modify it or `rails-3.gemfile.lock` directly!
197197
# Make the changes to the "rails-3" block in `Appraisals` instead. See the conventions at https://example.com/
198198

199-
gem 'rails', '3.2.14'
199+
gem "rails", "3.2.14"
200200
```
201201

202202
Version Control

Rakefile

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,14 @@ RSpec::Core::RakeTask.new do |t|
1010
t.verbose = false
1111
end
1212

13-
desc "Default: run the rspec examples"
14-
task default: [:spec]
13+
begin
14+
require "rubocop/lts"
15+
Rubocop::Lts.install_tasks
16+
rescue LoadError
17+
task(:rubocop_gradual) do
18+
warn("RuboCop (Gradual) is disabled")
19+
end
20+
end
21+
22+
desc "Default: rubocop_gradual's autocorrect and run the rspec examples"
23+
task :default => ["rubocop_gradual:autocorrect", :spec]

appraisal.gemspec

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,51 @@
11
# frozen_string_literal: true
22

3-
require_relative "lib/appraisal/version"
3+
# TODO: Switch to require_relative once support for Ruby < 2 is dropped.
4+
# require_relative "lib/appraisal/version"
5+
6+
$:.push(File.expand_path("lib", __dir__))
7+
require "appraisal/version"
48

59
Gem::Specification.new do |s|
6-
s.name = "appraisal"
7-
s.version = Appraisal::VERSION.dup
8-
s.platform = Gem::Platform::RUBY
9-
s.authors = ["Joe Ferris", "Prem Sichanugrist"]
10-
11-
s.homepage = "http://github.com/thoughtbot/appraisal"
12-
s.summary = "Find out what your Ruby gems are worth"
10+
s.name = "appraisal"
11+
s.version = Appraisal::VERSION.dup
12+
s.platform = Gem::Platform::RUBY
13+
s.authors = ["Joe Ferris", "Prem Sichanugrist"]
14+
15+
s.homepage = "http://github.com/thoughtbot/appraisal"
16+
s.summary = "Find out what your Ruby gems are worth"
1317
s.description = 'Appraisal integrates with bundler and rake to test your library against different versions of dependencies in repeatable scenarios called "appraisals."'
14-
s.license = "MIT"
18+
s.license = "MIT"
19+
20+
# specify which files should be added to the gem when it is released.
21+
s.files = Dir[
22+
# Splats (keep alphabetical)
23+
"lib/**/*.rb",
24+
]
25+
26+
# automatically included with gem package, no need to list twice (i.e. do not list in files above).
27+
s.extra_rdoc_files = Dir[
28+
# Files (keep alphabetical)
29+
"CONTRIBUTING.md",
30+
"MIT-LICENSE",
31+
"README.md",
32+
"SECURITY.md",
33+
]
34+
35+
# bin/ is scripts, in any available language, for development of this specific gem
36+
# exe/ is for ruby scripts that will ship with this gem to be used by other tools
37+
s.bindir = "exe"
38+
# files listed are relative paths from bindir above.
39+
s.executables = [
40+
"appraisal",
41+
]
1542

16-
s.files = `git ls-files`.split("\n")
17-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18-
s.executables = `git ls-files -- exe/*`.split("\n").map { |f| File.basename(f) }
19-
s.bindir = "exe"
43+
s.required_ruby_version = ">= 1.8.7"
2044

21-
s.required_ruby_version = ">= 2.3.0"
45+
s.add_runtime_dependency("bundler", ">= 1.17.3") # Last version supporting Ruby 1.8.7
46+
s.add_runtime_dependency("rake", ">= 10") # Last version supporting Ruby 1.8.7
47+
s.add_runtime_dependency("thor", ">= 0.14.0")
2248

23-
s.add_dependency("rake")
24-
s.add_dependency("bundler")
25-
s.add_dependency("thor", ">= 0.14.0")
49+
s.add_development_dependency("activesupport", ">= 3.2.21")
50+
s.add_development_dependency("rspec", "~> 3.0")
2651
end

bin/bundle

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ m = Module.new do
2424
def cli_arg_version
2525
return unless invoked_as_script? # don't want to hijack other binstubs
2626
return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update`
27+
2728
bundler_version = nil
2829
update_index = nil
2930
ARGV.each_with_index do |a, i|
30-
if update_index && update_index.succ == i && a.match?(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
31+
bundler_version = a if update_index && update_index.succ == i && a.match?(Gem::Version::ANCHORED_VERSION_PATTERN)
32+
next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/o
33+
34+
bundler_version = Regexp.last_match(1)
3535
update_index = i
3636
end
3737
bundler_version
@@ -55,8 +55,10 @@ m = Module.new do
5555

5656
def lockfile_version
5757
return unless File.file?(lockfile)
58+
5859
lockfile_contents = File.read(lockfile)
59-
return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/
60+
return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/o
61+
6062
Regexp.last_match(1)
6163
end
6264

@@ -83,15 +85,19 @@ m = Module.new do
8385

8486
def activate_bundler
8587
gem_error = activation_error_handling do
86-
gem "bundler", bundler_requirement
88+
gem("bundler", bundler_requirement)
8789
end
8890
return if gem_error.nil?
91+
8992
require_error = activation_error_handling do
9093
require "bundler/version"
9194
end
92-
return if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION))
93-
warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`"
94-
exit 42
95+
if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION))
96+
return
97+
end
98+
99+
warn("Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`")
100+
exit(42)
95101
end
96102

97103
def activation_error_handling
@@ -104,6 +110,4 @@ end
104110

105111
m.load_bundler!
106112

107-
if m.invoked_as_script?
108-
load Gem.bin_path("bundler", "bundle")
109-
end
113+
load Gem.bin_path("bundler", "bundle") if m.invoked_as_script?

0 commit comments

Comments
 (0)