I am getting the following error
Digest::Digest is deprecated; use Digest
when i try to boot my rails server. I tried to search my source code for Digest::Digest
but i am not using it anywhere. any idea how to solve that?
Only place i am using is
<% digest = OpenSSL::Digest.new('sha1') %>
@alias = Digest::MD5.hexdigest(phone)
It is most likely used by one of the gems your app is dependent on.
install (unless already installed) ack tool and run the following command:
# of course, the path to your gems will be different
ack Digest::Digest /Users/username/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.1/gems/
It will show you whether any of the gems use it, and if yes - will show you the source code lines.
But basically there is not much you can do:
- Check, whether this gem has a newer version, which solves the deprecation warning
- Write a patch to the gem, which solves the warning and use patched verions (not cool idea IMO)
- Live with warning until gem maintainers work on that
You can silence the depreciation warnings altogether with ActiveSupport::Deprecation.silenced = true
(not cool idea as well IMO). There is also a way to silence specific warning, as @max says in comments):
silenced = [
/Digest::Digest is deprecated; use Digest/,
/some other warning/,
]
silenced_expr = Regexp.new(silenced.join('|'))
ActiveSupport::Deprecation.behavior = lambda do |msg, stack|
unless msg =~ silenced_expr
ActiveSupport::Deprecation::DEFAULT_BEHAVIORS[:stderr].call(msg, stack)
end
end
Do not use this gem