On Mon, 16 Jan 2006 22:27:37 +0100, Tom Allison <tallison / tacocat.net> wrote: > David Vallner wrote: > > [snip] > >> However, that is only a convention, and is not enforced. Some >> libraries, like "mathn", don't define any new modules or classes, but >> instead (ab)use the metaprogramming and reflective capacities of Ruby >> and modify existing modules / classes by defining new methods or >> changing the behaviour of existing ones. > > This should be discouraged or at least a consistent alternative. In any > event, if it were possible to identify methods that require more than > the stdlib or core.... > Good luck finding support for that. Of course, noone dabbles into this sort of voodoo without his metaprogramming helmet. Banging your head against the wall in frustration at stuff not working can result in severe head trauma. Ruby allows you to do this sort of magic, and do it definately more easily and cleanly than in other languages directly manipulating superclass lists and property dictionaries and all such foolishness. This is a very distinctive feature of Ruby, and no chance in hell it's getting nerfed or discouraged. It's runninf with scissors, but sometimes you need to cut something really quickly ;) That said, libraries that alter what is already present in other namespaces are VERY rare. Not actively discouraged in the least, but rare. And if you use HTML documentation, you can distinguish what was defined where, as was previously mentioned. >> Anyways, if you're still confused about something - or more confused >> than before - feel free to bug. > > Not so much anymore, just more cautious. > I like what I've seen so far but my lack of familiarity makes everything > seem so shockingly bizarre at times. I have to check myself to make > sure. > Takes getting used to, 's all. David Vallner