heartcombo / devise

Flexible authentication solution for Rails with Warden.
http://blog.plataformatec.com.br/tag/devise/
MIT License
23.89k stars 5.54k forks source link

Refactor dirty tracking conditionals for different versions #5575

Closed carlosantoniodasilva closed 1 year ago

carlosantoniodasilva commented 1 year ago

We have an number of conditions due to how dirty tracking changed around Rails 5.1, that implement methods using one or another method call. I might need more of this for mongo upgrades based on an initial investigation, plus this makes the code really hard to reason about sometimes with these many conditionals.

While I want to drop support for older versions of Rails soon, this centralization of dirty methods that are used by devise conditionally simplifies the usage considerably across the board, moves the version condition to a single place, and will make it easier to refactor later once we drop older Rails version by simply removing the devise_* versions of the methods, alongside the prefix on the method calls for the most part, since those methods follow the naming of the newer Rails versions.