Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prefer require_relative #658

Merged
merged 1 commit into from
Sep 14, 2020
Merged

Conversation

marcandre
Copy link
Member

Small but free speed gain by using require_relative instead of require

@aycabta
Copy link
Member

aycabta commented Jun 11, 2019

@marcandre I'm considering this but I need a performance report. I'll reject any optimizations without a performance report.

@aycabta
Copy link
Member

aycabta commented Jun 11, 2019

And please add the report to the commit comment.

Example: 818ee97

@marcandre
Copy link
Member Author

marcandre commented Jun 11, 2019

@aycabta I'm considering your request but I need a single example or argument whereby require_relative would not be faster and safer than require. I'll reject your request without that.

@nobu
Copy link
Member

nobu commented Jun 11, 2019

I agree that require_relative will be faster (never slower at least) than require.
And curious how it get faster depending on the length of $:.

@ioquatix
Copy link
Member

ioquatix commented Apr 7, 2020

We don't need performance report for this. It's simply better to prefer require_relative. So, if you update the PR, I will merge it.

@marcandre
Copy link
Member Author

@ioquatix PR rebased

@hsbt
Copy link
Member

hsbt commented Jun 28, 2020

It's totally maintainers who are @aycabta 's convenience.

@marcandre
Copy link
Member Author

Ping @aycabta

@marcandre marcandre merged commit bfafa52 into ruby:master Sep 14, 2020
@marcandre marcandre deleted the require_relative branch September 14, 2020 16:54
tagliala added a commit to tagliala/arbre that referenced this pull request Sep 19, 2024
`require_relative` is preferred over `require` for files within the same
project  because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- panorama-ed/memo_wise#e349
- rubocop/rubocop#8748
tagliala added a commit to tagliala/arbre that referenced this pull request Sep 19, 2024
`require_relative` is preferred over `require` for files within the same
project  because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- panorama-ed/memo_wise#349
- rubocop/rubocop#8748
tagliala added a commit to tagliala/arbre that referenced this pull request Sep 19, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- panorama-ed/memo_wise#349
- rubocop/rubocop#8748
tagliala added a commit to activeadmin/arbre that referenced this pull request Sep 19, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- panorama-ed/memo_wise#349
- rubocop/rubocop#8748
tagliala added a commit to tagliala/memo_wise that referenced this pull request Sep 19, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- panorama-ed#349
- rubocop/rubocop#8748
tagliala added a commit to tagliala/memo_wise that referenced this pull request Sep 19, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- panorama-ed#349
- rubocop/rubocop#8748
tagliala added a commit to tagliala/premailer that referenced this pull request Sep 22, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- rubocop/rubocop#8748
tagliala added a commit to tagliala/haml that referenced this pull request Sep 22, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- rubocop/rubocop#8748
tagliala added a commit to tagliala/haml that referenced this pull request Sep 22, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

require_relative was introduced in Ruby 1.9.2, and since the minimum
supported Ruby version is 2.1.0, this change is fully compatible.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- rubocop/rubocop#8748
tagliala added a commit to tagliala/haml that referenced this pull request Sep 22, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

`require_relative` was introduced in Ruby 1.9.2, and since the minimum
supported Ruby version is 2.1.0, this change is fully compatible.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- rubocop/rubocop#8748
tagliala added a commit to tagliala/memo_wise that referenced this pull request Sep 25, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- panorama-ed#349
- rubocop/rubocop#8748
tagliala added a commit to tagliala/inline_svg that referenced this pull request Sep 27, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- rubocop/rubocop#8748
tagliala added a commit to tagliala/inline_svg that referenced this pull request Sep 27, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- rubocop/rubocop#8748
tagliala added a commit to tagliala/inline_svg that referenced this pull request Oct 8, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- rubocop/rubocop#8748
tagliala added a commit to tagliala/inline_svg that referenced this pull request Oct 9, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- rubocop/rubocop#8748
tagliala added a commit to tagliala/inline_svg that referenced this pull request Oct 9, 2024
`require_relative` is preferred over `require` for files within the same
project because it uses paths relative to the current file, making code
more portable and less dependent on the load path.

This change updates internal requires to use `require_relative` for
consistency, performance, and improved portability.

However, the test directory makes an exception and there `require` is
preferred

Fix `Packaging/RequireRelativeHardcodingLib` safe offense

Ref:
- ruby/psych#522
- ruby/logger#20
- ruby/rdoc#658
- rubocop/rubocop#8748
- https://docs.rubocop.org/rubocop-packaging/cops_packaging.html#packagingrequirerelativehardcodinglib
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

5 participants