diff --git a/ChangeLog b/ChangeLog index bb65b00fbc..2bc35d547e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Feb 12 10:46:14 2015 Eric Hodel + + * proc.c (proc_call): Improve Proc#call documentation. Patch by + Hsing-Hui Hsu. [fix GH-761] + Thu Feb 12 04:33:02 2015 Benoit Daloze * compar.c (cmp_equal): no more error hiding for Comparable#==. diff --git a/proc.c b/proc.c index 48d7dcb490..d5ac0e8998 100644 --- a/proc.c +++ b/proc.c @@ -683,20 +683,23 @@ rb_block_clear_env_self(VALUE proc) * params using something close to method calling semantics. * Generates a warning if multiple values are passed to a proc that * expects just one (previously this silently converted the parameters - * to an array). Note that prc.() invokes prc.call() with the parameters - * given. It's a syntax sugar to hide "call". + * to an array). Note that prc.() invokes + * prc.call() with the parameters given. It's a syntax sugar to + * hide "call". + * + * Returns the value of the last expression evaluated in the block. See + * also Proc#yield. + * + * a_proc = Proc.new { |scalar, *values| values.collect { |value| value*scalar } } + * a_proc.call(9, 1, 2, 3) #=> [9, 18, 27] + * a_proc[9, 1, 2, 3] #=> [9, 18, 27] + * a_proc.(9, 1, 2, 3) #=> [9, 18, 27] * * For procs created using lambda or ->() an error * is generated if the wrong number of parameters are passed to a Proc with * multiple parameters. For procs created using Proc.new or * Kernel.proc, extra parameters are silently discarded. * - * Returns the value of the last expression evaluated in the block. See - * also Proc#yield. - * - * a_proc = Proc.new {|a, *b| b.collect {|i| i*a }} - * a_proc.call(9, 1, 2, 3) #=> [9, 18, 27] - * a_proc[9, 1, 2, 3] #=> [9, 18, 27] * a_proc = lambda {|a,b| a} * a_proc.call(1,2,3) *