class Method

Method Objekte werden durch Object#method erstellt und sind mit einem bestimmten Objekt (nicht nur einer Klasse) verbunden. Sie können verwendet werden, um die Methode innerhalb des Objekts aufzurufen, und als Block, der mit einem Iterator verbunden ist. Sie können auch von einem Objekt gelöst werden (wodurch ein UnboundMethod erstellt wird) und an ein anderes gebunden werden.

class Thing
  def square(n)
    n*n
  end
end
thing = Thing.new
meth  = thing.method(:square)

meth.call(9)                 #=> 81
[ 1, 2, 3 ].collect(&meth)   #=> [1, 4, 9]

[ 1, 2, 3 ].each(&method(:puts)) #=> prints 1, 2, 3

require 'date'
%w[2017-03-01 2017-03-02].collect(&Date.method(:parse))
#=> [#<Date: 2017-03-01 ((2457814j,0s,0n),+0s,2299161j)>, #<Date: 2017-03-02 ((2457815j,0s,0n),+0s,2299161j)>]