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_environment
actually 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::CachedEnvironment
and 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.@entries
is a Hash of directory keys which map to an Array of nested files/directories.@stats
is a Hash of all files and directories and theirFile::Stat
counterparts.@uris
is a Hash of file URIs and their matchingSprockets::Asset
objects.In the end this turns out not to be such a difficult change. We still have to drill into
Sprockets::CachedEnvironment
to manipulate its instance variables, but it's actually simpler than before.