Ok, I have a rails gem that I am working on and I want it to override a specific method in sprockets.
The method I want to override is: Sprockets::Base.digest so that I can base the fingerprint off my gem version when compiling the app's assets.
How would I go about doing that?
In my gem I create a file lib/sprockets/base.rb and place the following code:
class Sprockets::Base def digest @digest = digest_class.new.update(MyGem::VERSION) @digest.dup end end
When I run bundle exec rake assets:precompile
I get:
undefined method 'logger=' for #<Sprockets::Environment:0x1315b040>
So it almost seems to me like the entire class is getting overridden somehow (this losing that, and the other methods), instead of just overriding the one method.
If I include that snippet of code directly into the app's rakefile that's using both gems, things work perfectly.