Method objects are created by Object#method
, and are associated with a particular object (not just with a class). They may be used to invoke the method within the object, and as a block associated with an iterator.
class Thing
def square(n)
n*n
end
end
aThing = Thing.new
aMethod = aThing.method("square")
aMethod.call(9) → 81
[ 1, 2, 3 ].collect(&aMethod) → [1, 4, 9]
Method.call
.
m = 12.method("+")
m.call(3) → 15
m.call(20) → 32
Proc
object corresponding to this method.Extracted from the book "Programming Ruby - The Pragmatic Programmer's Guide"
Copyright © 2001 by Addison Wesley Longman, Inc. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/).
Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder.
Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.