diff options
author | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-10-23 16:53:41 +0000 |
---|---|---|
committer | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-10-23 16:53:41 +0000 |
commit | 1b5dce5a4e7e202f00ddc8bc82ae644ca119106d (patch) | |
tree | c7de133562839f75481b2cf02a2f90b25cab3464 | |
parent | 4daa1cf730acbf2838dcd69210f4beafabe83843 (diff) | |
download | ruby-1b5dce5a4e7e202f00ddc8bc82ae644ca119106d.tar.gz |
* NEWS: [DOC] In the new safe call syntax, arguments are evaluated
only if a call is made.
* doc/syntax/calling_methods.rdoc: Fix a typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | doc/syntax/calling_methods.rdoc | 2 |
3 files changed, 12 insertions, 2 deletions
@@ -1,3 +1,10 @@ +Sat Oct 24 01:51:01 2015 Akinori MUSHA <knu@iDaemons.org> + + * NEWS: [DOC] In the new safe call syntax, arguments are evaluated + only if a call is made. + + * doc/syntax/calling_methods.rdoc: Fix a typo. + Sat Oct 24 00:38:34 2015 Shugo Maeda <shugo@ruby-lang.org> * lib/forwardable (def_instance_delegator, def_single_delegator): @@ -22,10 +22,13 @@ with all sufficient information, see the ChangeLog file. * new method call syntax, `object.?foo', method #foo is called on `object' if it is not nil. - this is similar to `try!' in Active Support, except for: + this is similar to `try!' in Active Support, except: * method name is syntactically required obj.try! {} # valid obj.? {} # syntax error + * arguments are evaluated only if a call is made: + obj.try!(:foo, bar()) # bar() is always evaluated + obj.?foo(bar()) # bar() is conditionally evaluated * attribute assignment is valid obj.?attr += 1 diff --git a/doc/syntax/calling_methods.rdoc b/doc/syntax/calling_methods.rdoc index db0217cfef..99ec48af40 100644 --- a/doc/syntax/calling_methods.rdoc +++ b/doc/syntax/calling_methods.rdoc @@ -29,7 +29,7 @@ NoMethodError. You may use <code>.?</code> to designate a receiver, then +my_method+ is not invoked and the result is +nil+ when the receiver is +nil+. In that case, the -argument of +my_method+ are not evaluated. +arguments of +my_method+ are not evaluated. You may also use <code>::</code> to designate a receiver, but this is rarely used due to the potential for confusion with <code>::</code> for namespaces. |