Idiomatic way to convert class method to proc in ruby

Would method be what you're looking for? It can let you save a method to a variable.

2.1.0 :003 > m = Kernel.method(:puts)
 => #<Method: Kernel.puts>
2.1.0 :004 > m.call('hi')
hi

You can pass the receiver object as first parameter, and actual argument as subsequent parameters.

:puts.to_proc.call(Kernel, "Hi")
#=> Hi

I found this article - RUBY: SYMBOL#TO_PROC IS A LAMBADASS - to be quite informative on behavior of lambdas returned by Symbol#to_proc


I think you just want Object#method:

meth = Kernel.method(:puts)
meth["hello"]
# => hello

Tags:

Ruby