In OOP there is the Open/Closed principle that states that
"software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification".
Taking in consideration that in Ruby it is to possible to reopen a class, don't you think that this breaks the Open/Closed principle?
When do you think we should favor reopening classes instead of just extending them?
What do you think that are pitfalls in reopening classes?