- Inheritance
- < Object
Proc objects are blocks of code that have been bound to a set of local variables. Once bound, the code may be called in different contexts and still access those variables.
def gen_times(factor)
return Proc.new {|n| n*factor }
end
times3 = gen_times(3)
times5 = gen_times(5)
times3.call(12) #=> 36
times5.call(5) #=> 25
times3.call(times5.call(4)) #=> 60
Methods
Instance
| Visibility | Signature |
|---|---|
| public | == (p1) |
| public | [] (...) |
| public | arity () |
| public | call (...) |
| public | clone () |
| public | inspect () |
| public | name () |
| public | owner () |
| public | receiver () |
| public | to_proc () |
| public | to_s () |
| public | unbind () |
Instance Method Detail
meth == other_meth => true or false
Two method objects are equal if that are bound to the same object and contain the same body.
meth.call(args, ...) => obj
meth[args, ...] => obj
Invokes the meth with the specified arguments, returning the method‘s return value.
m = 12.method("+")
m.call(3) #=> 15
m.call(20) #=> 32
meth.arity => fixnum
Returns an indication of the number of arguments accepted by a method. Returns a nonnegative integer for methods that take a fixed number of arguments. For Ruby methods that take a variable number of arguments, returns -n-1, where n is the number of required arguments. For methods written in C, returns -1 if the call takes a variable number of arguments.
class C
def one; end
def two(a); end
def three(*a); end
def four(a, b); end
def five(a, b, *c); end
def six(a, b, *c, &d); end
end
c = C.new
c.method(:one).arity #=> 0
c.method(:two).arity #=> 1
c.method(:three).arity #=> -1
c.method(:four).arity #=> 2
c.method(:five).arity #=> -3
c.method(:six).arity #=> -3
"cat".method(:size).arity #=> 0
"cat".method(:replace).arity #=> 1
"cat".method(:squeeze).arity #=> -1
"cat".method(:count).arity #=> -1
meth.call(args, ...) => obj
meth[args, ...] => obj
Invokes the meth with the specified arguments, returning the method‘s return value.
m = 12.method("+")
m.call(3) #=> 15
m.call(20) #=> 32
clone()
MISSING: documentation
meth.to_s => string
meth.inspect => string
Show the name of the underlying method.
"cat".method(:count).inspect #=> "#<Method: String#count>"
meth.name => string
Returns the name of the method.
meth.owner => class_or_module
Returns the class or module that defines the method.
meth.receiver => object
Returns the bound receiver of the method object.
meth.to_proc => prc
Returns a Proc object corresponding to this method.
meth.to_s => string
meth.inspect => string
Show the name of the underlying method.
"cat".method(:count).inspect #=> "#<Method: String#count>"
meth.unbind => unbound_method
Dissociates meth from it‘s current receiver. The resulting UnboundMethod can subsequently be bound to a new object of the same class (see UnboundMethod).