ruby-on-rails ruby debugging rake

ruby on rails - Cómo detectar qué causa una advertencia de desaprobación en Rake



ruby-on-rails debugging (5)

Como se describe en esta post , puede hacer:

# application.rb ActiveSupport::Deprecation.debug = true

Esto le dará un rastro de desaprobación de la pila completa.

Cuando hago bundle exec rake -T (o bundle exec rake ), recibo advertencias de depreciación:

Andrews-Air:nabu agrimm$ bundle exec rake --trace -T [DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. [DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. [DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. [DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. [DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. [DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. [DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. [DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. [DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. [DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead. rake about # List versions of all Rails frameworks and the environment [snip]

Aunque no es realmente relevante, aquí está el Gemfile:

source ''https://rubygems.org'' gem ''rails'', ''~> 3.2.22.2'' gem ''mysql2'' group :assets do gem ''coffee-rails'', ''~> 3.2.1'' gem ''compass-rails'' gem ''therubyracer'' gem ''libv8'' gem ''uglifier'', ''>= 1.0.3'' end gem ''jquery-rails'' gem ''haml-rails'' gem ''to-csv'', :require => ''to_csv'' gem ''kaminari'' gem ''oai'' gem ''analytical'' gem ''country-select'' gem ''activeadmin'' gem ''sass-rails'', ''~> 3.2.3'' gem ''meta_search'', ''>= 1.1.0.pre'' gem ''devise'', ''2.2.3'' gem ''cancancan'', ''~> 1.12.0'' gem ''squeel'' gem ''nilify_blanks'' gem ''sunspot_rails'' gem ''sunspot_solr'' gem ''unicorn'' gem ''ruby-filemagic'' gem ''capistrano'' gem ''capistrano-ext'' gem ''capistrano-unicorn'' gem ''rollbar'', ''~> 2.8.3'' gem ''newrelic_rpm'' gem ''progress_bar'' gem ''paper_trail'', ''~> 2'' gem ''quiet_assets'' gem ''roo'', ''~> 2.1.0'' gem ''roo-xls'', :github => ''roo-rb/roo-xls'', :ref => ''0a5ef88'' gem ''streamio-ffmpeg'' gem ''rake'' gem ''rmagick'' gem ''whenever'', :require => false group :development, :test do gem ''turn'', ''~> 0.8.3'', :require => false gem ''rspec-rails'', ''~> 2.0'' gem ''sextant'' gem ''thin'' gem ''spring'' gem ''spring-commands-rspec'' gem ''pry'' gem ''pry-rails'' gem ''letter_opener'' gem ''guard-bundler'' gem ''guard-rails'' gem ''guard-rspec'' gem ''guard-sunspot'' gem ''rb-inotify'', :require => RUBY_PLATFORM.include?(''linux'') ? ''rb-inotify'' : false gem ''rb-fsevent'', :require => RUBY_PLATFORM.include?(''darwin'') ? ''rb-fsevent'' : false end group :development do gem ''annotate'' gem ''binding_of_caller'' gem ''better_errors'' gem ''rubocop'' end group :test do gem ''capybara'' gem ''poltergeist'' gem ''factory_girl_rails'' gem ''database_cleaner'' gem ''email_spec'' gem ''launchy'' end

Hacer un git grep -i last_comment indica que no está en mi código, presumiblemente está en una gema de terceros.

¿Cómo puedo averiguar las causas de las advertencias de desaprobación?


Intente actualizar gem "rspec-rails", "~> 3.4.4" , que resolvió las advertencias de desactivación para mí.


Me resulta más fácil modificar la línea de warn para raise en rake-11.1.0/lib/rake/task_manager.rb:10 .

Para mí, las gemas ofensivas son rspec ( fijado en 3.4.4 ) y rubocop ( fijado en 0.38.0 ).


No es una falla rspec , el error proviene del rake, hubo un commit un par de semanas que agregó la advertencia, hubo un seguimiento here .

Parece que Rspec ya cumple con el uso de last_description sobre last_comment . Si es posible, intente actualizar a una versión más nueva de rspec-core Gem, como se sugirió @ chris-scott. Corrí para hacer el truco

bundle update rspec-core


Puedes grep recursivamente tus gemas, con:

grep -r last_comment /path/to/gems