tfpt review “/shelveset:SymToProc;REDMOND\tomat”
Comment :
Implements Symbol#to_proc
Tomas
tfpt review “/shelveset:SymToProc;REDMOND\tomat”
Comment :
Implements Symbol#to_proc
Tomas
So we’re going to have sym#to_proc available in the core 1.8
implementation? Other than that question, this looks good.
Now I have to go remove some hacks
JD
Probably no eval magic, unless you are thinking of a more advanced
version of Sym#to_proc than I have been using.
I define it with:
Class Symbol
Def to_proc
Lambda {|x| x.send(self)}
End
End
Sure, it doesn’t cover everything, but it hits the 90% cases.
Yep, we already have other methods from 1.8.7, like instance_exec. The
advantage of having these in 1.8.6 is that it will work in apps that
check if to_proc method is present. I guess they might do some eval
magic if the method is not implemented which slows things down.
Tomas
Yes, something like this might be quite accurate:
class Symbol
def to_proc
Proc.new do |*args|
raise ArgumentError if args.size == 0
target = args.delete_at(0)
target.send(self, *args)
end
end
end
instance_exec on the other hand is also 1.8.7 method and is usually
emulated by string eval.
Tomas
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs