Pass the require path to find_by_path - #1343
Open
apiology wants to merge 1 commit into
Open
Conversation
Gem::Specification.find_by_path matches a requirable path, the same
string that appears in a require statement. resolve_require was handing
it "lib/#{require}.rb" instead, which it can never match, so the lookup
always returned nil and resolution fell through to guessing the gem name
from the path and then scanning every bundled gemspec.
Pass the require path itself, and move the lib-relative filename down to
the manual spec.files scan that is the only remaining reader of it.
apiology
marked this pull request as ready for review
September 6, 2026 18:20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem:
Gem::Specification.find_by_pathmatches a requirable path — the same string that appears in arequirestatement.resolve_requirewas handing it a lib-relative filename instead, which it can never match, so that lookup always returned nil.Resolution then fell through to guessing the gem name from the require path and, failing that, scanning every bundled gemspec and reading its file list.
Solution: Pass the require path itself, and move the lib-relative filename down to the manual
spec.filesscan, which is the only remaining reader of it.🤖 Generated with Claude Code