From: Dan Doel Date: 2004-04-20T05:32:22+09:00 Subject: Re: convert yield to proc The original problem with the code was that he was instance_evaling the block in #mode. So if no block was passed, he'd end up with something like the following: instance_eval do yield end And you can't yield in a block given to instance eval (not sure I totally understand why, but I have a gut feeling that you shouldn't try it :)). Using an & parameter wraps the given block in a Proc. If no block is given, it's nil. If you call yield in a block, it will yield to the block given to the enclosing method. Hope this helps. - Dan