Hi -- ` On Tue, 6 Jun 2006, Dean Wampler wrote: > I use both, judiciously, especially modifications of library classes. > Adding additional behavior is less risky than changing existing > behavior. That's all I ever do, in practical terms. As always, > different solutions are valid for different contexts. The problem is that once you add behavior, it is existing, and someone else might therefore change it. In other words, you might end up with two versions of a method with the same name. Precisely because of its openness, the language doesn't know that something's been added at a particular time or in the expectation of non-conflict. > Changing existing behavior may break other code that uses the same > classes, of course, so I would never do these changes without thorough > testing. I also wouldn't expect others to use any of my code that made > risky modifications. It's interesting that there are numerous libraries available that make it possible to do block-scoped changes to core behavior, but no one ever seems to use them. This makes me wonder whether the demand for selector namespaces, or some other language-level solution, is really all that great. David -- David A. Black (dblack / wobblini.net) * Ruby Power and Light, LLC (http://www.rubypowerandlight.com) > Ruby and Rails consultancy and training * Author of "Ruby for Rails" from Manning Publications! > http://www.manning.com/black