Ruby-Digest:: Digest está en desuso; Use Digest
warnings ruby-2.1 (3)
Recibo esta advertencia cada vez que ejecuto mis pruebas o inicio el servidor de rieles.
Cuando ejecuto grep desde la carpeta .rvm veo lo siguiente:
grep -R ''Digest::Digest'' .
./rubies/ruby-2.1.0/lib/ruby/2.1.0/openssl/digest.rb: warn(''Digest::Digest is deprecated; Use Digest'')
- additional references to openssl and ruby 2.1.0
Parece que es un error de Ruby 2.1.0. ¿Hay alguna solución? No hay parches disponibles aún por lo que puedo decir.
Si bien mi aplicación utiliza Niebla y un montón de otras gemas que tienen problemas relacionados con este mensaje, estoy usando versiones parcheadas que no tienen el error. Entonces creo que Ruby tiene la culpa aquí.
Si usas bundler, una buena forma de averiguar qué está causando el problema es grep a través de todas las gemas definidas en tu Gemfile
:
# grep (ack or ag) the problem code
bundle show --paths | xargs grep -r Digest::Digest
# here was my output
~/.gem/ruby/2.1.0/gems/fog-1.15.0/lib/fog/cloudstack.rb: @@digest = OpenSSL::Digest::Digest.new(''sha1'')
~/.gem/ruby/2.1.0/gems/fog-1.15.0/lib/fog/core/hmac.rb: @digest = OpenSSL::Digest::Digest.new(''sha1'')
~/.gem/ruby/2.1.0/gems/fog-1.15.0/lib/fog/core/hmac.rb: @digest = OpenSSL::Digest::Digest.new(''sha256'')
# update appropriate gems (in my case fog)
gem install fog
bundle update fog
También asegúrese de que no esté bloqueado en una versión gema en su Gemfile.
# change
gem ''fog'', ''~> 1.15.0''
# to
gem ''fog'', ''~> 1.0''
# or omit the version if you are a cowboy/girl
Tomando prestada la respuesta de este hilo
Se desaconsejó el uso de OpenSSL :: Digest :: Digest desde tiempos muy remotos, como Ruby 1.8, y finalmente fue desaprobado recientemente .
Si busca el mensaje de error, verá que muchas gemas, incluida la niebla , seguían usando la sintaxis en desuso.
Supongo que pasará un tiempo antes de que se actualicen todas las gemas. Si encontraste la desaprobación en una de las librerías que utilizas, te animo a que la informes al mantenedor.
Aquí hay algunos ejemplos
- https://github.com/fog/fog/pull/2473
- https://github.com/alexreisner/geocoder/pull/580
- https://github.com/ruby/ruby/pull/446
Es probable que su aplicación Rails dependa de una gema que esté usando esa sintaxis anterior.
Use OpenSSL::Digest
lugar de obsoleto OpenSSL::Digest::Digest