Support Sprockets 3.0#6
Merged
Merged
Conversation
|
👍 looks good to me! |
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.
A lot changed between version 2 and 3, specifically Hike was dropped entirely as a dependency. That of course means that
sprockets_environment.send(:trail)doesn't exist anymore, so the entirereset_sprockets_caches!was going to fail in some spectacular fashion.Dropping into a pry session to determine what
sprockets_environmentactually is at withinreset_sprockets_caches!point revealed that it was aSprockets::CachedEnvironment. Eventually, after following all of the code paths withinCachedEnvironment,Environment,Base, and the various mixed in modules, you end up coming back toSprockets::CachedEnvironmentand a few instance variables within it,@stats,@entries, and@uris.These are very similar to the instance variables used in our original
reset_sprockets_caches!monkey-patch.@entriesis a Hash of directory keys which map to an Array of nested files/directories.@statsis a Hash of all files and directories and theirFile::Statcounterparts.@urisis a Hash of file URIs and their matchingSprockets::Assetobjects.In the end this turns out not to be such a difficult change. We still have to drill into
Sprockets::CachedEnvironmentto manipulate its instance variables, but it's actually simpler than before.