Code Review: SymToProc

tfpt review “/shelveset:SymToProc;REDMOND\tomat”
Comment :
Implements Symbol#to_proc


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 :wink:


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)}

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.


Yes, something like this might be quite accurate:

class Symbol
def to_proc do |*args|
raise ArgumentError if args.size == 0
target = args.delete_at(0)
target.send(self, *args)

instance_exec on the other hand is also 1.8.7 method and is usually
emulated by string eval.


This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs