Rack is used for practically every framework that runs on Ruby yet many Rails developers don't really understand what it is or how it works. Understanding rack can make these frameworks feel less daunting. It's surprisingly easy to understand when you take a look at it.
When you work with a system developed over the years, you will ultimately encounter a challenge - how to solve dependencies between the pieces you put together. Sometimes you need to use two gems but they depend on different versions of another gem, so you will see in the console e.g. foo -> requires bar ~> 1.0.0, baz -> requires ~> bar 2.1.0. In this post I will propose a solution to this problem, allowing us to use two versions of a gem in our project.