From: James Edward Gray II Date: 2006-10-26T22:39:12+09:00 Subject: Re: Pass block instead of here document? On Oct 25, 2006, at 10:32 PM, Tim Pease wrote: > On 10/25/06, James Edward Gray II wrote: >> >> I know people frown on the instance_eval() trick, but this seems to >> be less of a problem. You can just choose to use the variable when >> you need it. >> > > James, why do people frown upon instance_eval? I know you cannot speak > for all people, but what are the reasons to avoid it? I have literally seen code like this: must_save = self whatever do # use must_save in here, even though self changed... end This is a sign of instance_eval() gone wrong, and Ara showed other issues. Many take this as a sign that you should never instance_eval() a block like this, but I think that's going a bit far. It's very handy in creating DSLs, for example. James Edward Gray II