Sometimes you want to use a vanilla Ruby method like a block. You can use
Object#method
Show archive.org snapshot
to obtain a method reference that responds to #call
:
foo_plus = "foo".method(:+)
foo_plus.call("bar") # => "foobar"
The method reference also understands #to_proc
so you can feed it to block-taking methods by prefixing it with &
:
printer = method(:puts)
[1, 2, 3].each(&printer) # will print one line per number
Posted by Henning Koch to makandra dev (2011-09-27 09:25)