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