Sharing gem source paths #8
Open
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.
This shows how I'd like to reuse Bundler's
pathacross project-local gems.The structure
The application depends on blorgh and lorde, from Gemfile.lock:
A dependency tree (all arrows denote "depends on"):
The top-level subsystems are in
engines/lorde uses a gem internal to just lorde: yayaya. yayaya is in
engines/lorde/gems/The mechanics
Each level that is composed of internal gems (e.g. require_gemfile_example and lorde) has a sources.gemfile that is required (ala
require_gemfile) by the internal gems comprising the "level". Internal gems require this file to pull in gem source specifications for resolving external gems dependencies. What?So....
Each level that is composed of internal gems and is required by something else (i.e. lorde) defines a paths.gemfile which specifies
pathsources of where to find gem dependencies internal to the "level". What?So....
The benefits