devise
devise copied to clipboard
Fix method redefined warnings
Environment
- Ruby ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [arm64-darwin21.2.0]
- Rails 7.0.1
- Devise 4.8.1
Current behavior
Hello. :wave: I've been seeing the following in my logs when running specs:
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:116: warning: method redefined; discarding old authenticate_user!
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:116: warning: previous definition of authenticate_user! was here
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:121: warning: method redefined; discarding old user_signed_in?
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:121: warning: previous definition of user_signed_in? was here
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:125: warning: method redefined; discarding old current_user
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:125: warning: previous definition of current_user was here
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:129: warning: method redefined; discarding old user_session
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:129: warning: previous definition of user_session was here
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:136: warning: method redefined; discarding old current_user
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:136: warning: previous definition of current_user was here
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:136: warning: method redefined; discarding old user_signed_in?
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:136: warning: previous definition of user_signed_in? was here
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:136: warning: method redefined; discarding old user_session
/Users/bkuhlmann/.cache/frum/versions/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/lib/devise/controllers/helpers.rb:136: warning: previous definition of user_session was here
Expected behavior
I would expect those warnings to not be there but seems like methods are being constantly redefined?
Steps to Recreate
You should be able to easily recreate this issue by launch your test suite with warnings enabled. For instance, in RSpec this looks like the following:
RSpec.configure do |config|
config.warnings = true
end