<i>The irritating problem with this is when two different pieces of code--such as two separate gems--both attempt to add the same method to the same class. Classes are global in Ruby, so we end up with a race condition in our code.</i><p>Obviously not the point of the article, but it's still important to get your jargon right.  This isn't a race condition.  It could be, if you were trying to modify the same class from separate threads.  But the mere attempt to share access to a global variable is not a synchronization bug, and you shouldn't be using synchronization terms for it.  This is usually just called a "namespace collision".