On Wed, Jun 4, 2008 at 3:20 PM, Leslie Viljoen <leslieviljoen / gmail.com> wrote:
> Perhaps people don't have this problem very often, but I once spent
> three days puzzling over a Rails app that worked fine on my computer,
> but not at the web host. A library had been installed by the host that
> created a class that was require'd somewhere down the line. That class
> had the same name as one of my models, and it totally killed my app.
>
> Having a dynamic base environment works fine until there's a clash. As
> the code base grows, so do the chances of a clash and also the
> difficulty in finding it.

I had a similar experience a while back wherein I inadvertently
overrode a method defined by ActiveRecord somewhere. At the time, I
wondered if it might be a good idea to have the ruby interpreter warn
when a method was overridden, unless either the original method was
flagged as silently over-ridable (e..g Object.to_s) or the overriding
method was flagged as intentional (e.g. overriding
ActiveRecord::Base.find). It's almost certainly not worth the hassle
even if the approach is sound, but after spending some hours digging
through the darker corners of the ActiveRecord code, it seemed like an
awfully attractive notion.

- donald