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