Mark:
> Lovely stuff!  Thanks.  The block_given? line gives me a 
> "stack level too deep"

Odd. Maybe the your version of Ruby is not up to date. Or maybe it's too
much up to date :). Try iterator?.

> Is there anyplace where things like method_missing are documented?

http://dev.rubycentral.com/ref/index.html

particularly:

http://dev.rubycentral.com/ref/ref_c_object.html#method_missing
http://dev.rubycentral.com/ref/ref_m_kernel.html#method_missing

	- Aleksi