On Jun 17, 2009, at 11:36 PM, apeiros wrote:

> Am 17.06.2009 um 00:01 schrieb Florian Gilcher:
>> On Jun 16, 2009, at 10:47 PM, apeiros wrote:
>>
>> There are instance_exec-Implementations in 1.8.x, for example the  
>> one from facets:
>>
>> http://facets.rubyforge.org/doc/api/core/classes/Object.html#M000242
>>
>> So usually, I do something like this:
>>
>> unless Object.respond_to? :instance_exec
>>   require 'instance_exec'
>> end
>>
>> Regards,
>> Florian
>
> Thank you for the sugestion.
> I'm aware of the instance_exec solutions for 1.8, but they are hacks  
> IMO.

They are for sure.

> Defining a new method on every call and remove afterwards?
> I don't see that as a viable alternative.

Well, the only problem would be speed - I haven't found it to be tooo  
slow.

> Maybe when ruby 1.8 phases out to be a far minority (<5% or so).

The only problem is Ruby 1.8.6. Everything >= 1.8.7 implements  
instance_exec, JRuby does
have it in 1.8-mode. So I have no issues with hacking for backwards  
compatibility. Maybe
one can convince the 1.8.6-Maintainers to backport it, but I guess  
they won't allow an
API change.

And frankly: a lot of projects most likely already contain that  
implementation,
it's pretty viral ;).

Regards,
Florian

--
Florian Gilcher

smtp:   flo / andersground.net
jabber: Skade / jabber.ccc.de
gpg:    533148E2