Class: Proc
Overview
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
Instance Method Summary collapse
-
#==(other) ⇒ Object
call-seq: prc == other => true or false.
-
#[] ⇒ Object
call-seq: prc.call(params, …) -> obj prc[params, …] -> obj.
-
#arity ⇒ Object
FIX: Incomplete.
-
#call ⇒ Object
call-seq: prc.call(params, …) -> obj prc[params, …] -> obj.
-
#initialize(func) ⇒ Proc
constructor
call-seq: Proc.new {|…| block } -> proc.
-
#to_proc ⇒ Object
call-seq: proc.to_proc -> proc.
Constructor Details
#initialize(func) ⇒ Proc
call-seq:
Proc.new {|...| block } -> proc
Creates a new Proc
object, bound to the current context.
4729 4730 4731 4732 4733 |
# File 'lib/source/ruby.rb', line 4729 def initialize(func) `this.__block__=func` `this.__block__.__id__=func.__id__||Red.id++` `this.__id__=this.__block__.__id__` end |
Instance Method Details
#==(other) ⇒ Object
call-seq:
prc == other => true or false
Returns true
if prc and other are the same object, false
otherwise.
4741 4742 4743 |
# File 'lib/source/ruby.rb', line 4741 def ==(other) `this.__id__==other.__id__` end |
#[] ⇒ Object
4758 4759 4760 |
# File 'lib/source/ruby.rb', line 4758 def []() `this.__block__.apply(this,arguments)` end |
#call ⇒ Object
call-seq:
prc.call(params, ...) -> obj
prc[params, ...] -> obj
Invokes the block, setting the block’s parameters to the values in params using something close to method calling semantics.
Returns the value of the last expression evaluated in the block. See also Proc#yield
.
proc = Proc.new {|x| x * 100 }
proc.call(4) #=> 400
4780 4781 4782 |
# File 'lib/source/ruby.rb', line 4780 def call `this.__block__.apply(this,arguments)` end |
#to_proc ⇒ Object
call-seq:
proc.to_proc -> proc
Part of the protocol for converting objects to Proc
objects. Instances of class Proc
simply return themselves.
4790 4791 4792 |
# File 'lib/source/ruby.rb', line 4790 def to_proc return self end |