Подтвердить что ты не робот

Ruby-Digest:: Дайджест устарел; Использование дайджеста

Я получаю это предупреждение всякий раз, когда запускаю свои тесты или запускаю сервер рельсов.

Когда я запускаю grep из папки .rvm, я вижу следующее:

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

Итак, похоже, что это ошибка Ruby 2.1.0. Есть ли какие-либо исправления? Насколько я могу судить, пока нет патчей.

В то время как мое приложение использует Fog и множество других драгоценных камней, которые имеют проблемы, связанные с этим сообщением, я использую исправленные версии, которые не имеют ошибки. Поэтому я считаю, что Ruby здесь виноват.

4b9b3361

Ответ 1

Заимствование ответа этого потока

OpenSSL:: Digest:: Digest не рекомендуется использовать с очень древней эры, такой как Ruby 1.8 и, наконец, недавно устарели.

Если вы ищете сообщение об ошибке, вы увидите, что много драгоценных камней, включая туман, все еще используют устаревший синтаксис.

Я предполагаю, что потребуется некоторое время, прежде чем все драгоценные камни будут обновлены. Если вы столкнулись с устаревшим в одном из используемых вами библиотек, я рекомендую вам сообщить об этом сопровождающему.

Вот несколько примеров

Вероятно, ваше приложение Rails зависит от жемчуга, который использует этот старый синтаксис.

Ответ 2

Если вы используете bundler, хороший способ узнать, что вызывает проблему, - это grep через все драгоценные камни, определенные в вашем 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

Также убедитесь, что вы не заблокировали версию gem в своем Gemfile.

# change
gem 'fog', '~> 1.15.0'
# to
gem 'fog', '~> 1.0'
# or omit the version if you are a cowboy/girl

Ответ 3

Используйте OpenSSL::Digest вместо устаревших OpenSSL::Digest::Digest