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.
4728 4729 4730 4731 4732 |
# File 'lib/source/ruby.rb', line 4728 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.
4740 4741 4742 |
# File 'lib/source/ruby.rb', line 4740 def ==(other) `this.__id__==other.__id__` end |
#[] ⇒ 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.
proc = Proc.new {|x| x * 100 }
proc[4] #=> 400
4757 4758 4759 |
# File 'lib/source/ruby.rb', line 4757 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
4779 4780 4781 |
# File 'lib/source/ruby.rb', line 4779 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.
4789 4790 4791 |
# File 'lib/source/ruby.rb', line 4789 def to_proc return self end |