[ruby/syntax_suggest] Introduce binstubs to set RUBYOPT for development

Because `syntax_suggest` is a default gem you can get conflicts when working on this project with Ruby 3.2+. To fix conflicts you can disable loading `syntax_suggest` as a default gem by using then environment variable `RUBYOPT` with the value `--disable=syntax_suggest`. The `RUBYOPT` environment variable works the same as if we had entered those flags directly in the ruby cli (i.e. `ruby --disable=syntax_suggest` is the same as `RUBYOPT="--disable=syntax_suggest" ruby`). It's needed because we don't always directly execute Ruby and RUBYOPT will be picked up when other commands load ruby (`rspec`, `rake`, or `bundle` etc.).

There are some binstubs that already have this done for you. Instead of running `bundle exec rake` you can run `bin/rake`. Binstubs provided:

- `bin/rake`
- `bin/rspec`

https://github.com/ruby/syntax_suggest/commit/342093706d
This commit is contained in:
schneems 2023-03-16 20:45:18 -05:00 committed by Hiroshi SHIBATA
parent d511e6960f
commit d2eef4b786
2 changed files with 12 additions and 0 deletions

6
bin/rake Executable file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail
# Make sure syntax_suggest default gem is not loaded first
RUBYOPT="${RUBYOPT-} --disable=syntax_suggest"
RUBYOPT="$RUBYOPT" bundle exec rake "$@"

6
bin/rspec Executable file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail
# Make sure syntax_suggest default gem is not loaded first
RUBYOPT="${RUBYOPT-} --disable=syntax_suggest"
RUBYOPT="$RUBYOPT" bundle exec rspec "$@"