Moving from Ruby on Rails 3.2 to 5.1
How I shot myself in the foot but kept walking
A couple of months ago I began trying to improve a Ruby on Rails system built on Rails 3.2
I began working on this system a couple of years ago, when I was just learning Ruby on Rails, and had no idea of how that was different than plain Ruby.
The state of the system has always been a testimony of the level of Rails Engineer that I am myself; and as a result it has been at times genius and at times chaotic.
The broad scope of the rework I’m doing for this system can be pointed at as two-fold:
Bringing the system into the current level of Ruby and Rails, and
Breaking the system into more manageable and replaceable microservices
Doing the first part: updating the system relatively quickly, by updating mostly the required gems and the controllers; of course, updating gems when you have limited code coverage is always easy. Is not until the sky begins to fall that you realize how much about the code is actually different under the new versions.
Is not until all the Gems finally agree with each other that the Frankencode monster shows its head.
Coming up with the second part was way more difficult as it required me to take more than just a few steps back and taking a deep good look at how the system worked and what it was supposed to do.