1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* doc/syntax/methods.rdoc: [DOC] Added example for underscore

conventions in method names. Also added doc to clarify encoding
  character set support for Ruby programs and elaborated on defining
  predicate and bang methods. Based on a patch by @gaurish
  [Fixes GH-477] https://github.com/ruby/ruby/pull/477


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
zzak 2013-12-22 20:13:09 +00:00
parent cadd660689
commit 573762a7b7
2 changed files with 47 additions and 16 deletions

View file

@ -1,3 +1,11 @@
Mon Dec 23 05:01:55 2013 Zachary Scott <e@zzak.io>
* doc/syntax/methods.rdoc: [DOC] Added example for underscore
conventions in method names. Also added doc to clarify encoding
character set support for Ruby programs and elaborated on defining
predicate and bang methods. Based on a patch by @gaurish
[Fixes GH-477] https://github.com/ruby/ruby/pull/477
Mon Dec 23 03:18:09 2013 Zachary Scott <e@zzak.io> Mon Dec 23 03:18:09 2013 Zachary Scott <e@zzak.io>
* doc/ChangeLog-1.9.3: [DOC] Fix typos by @dvsuresh * doc/ChangeLog-1.9.3: [DOC] Fix typos by @dvsuresh

View file

@ -8,8 +8,8 @@ definition:
end end
A method definition consists of the +def+ keyword, a method name, the body of A method definition consists of the +def+ keyword, a method name, the body of
the method, then the +end+ keyword. When called the method will execute the the method, +return+ value and the +end+ keyword. When called the method will
body of the method. This method returns +2+. execute the body of the method. This method returns +2+.
This section only covers defining methods. See also the {syntax documentation This section only covers defining methods. See also the {syntax documentation
on calling methods}[rdoc-ref:syntax/calling_methods.rdoc]. on calling methods}[rdoc-ref:syntax/calling_methods.rdoc].
@ -17,27 +17,50 @@ on calling methods}[rdoc-ref:syntax/calling_methods.rdoc].
== Method Names == Method Names
Method names may be one of the operators or must start a letter or a character Method names may be one of the operators or must start a letter or a character
with the eight bit set. Typically method names are US-ASCII compatible since with the eight bit set. It may contain letters, numbers, an <code>_</code>
the keys to type them exist on all keyboards. (underscore or low line) or a character with the eight bit set. The convention
is to use underscores to separate words in a multiword method name:
(Ruby programs must be written in a US-ASCII-compatible character set. In def method_name
such character sets if the eight bit is set it indicates an extended puts "use underscores to separate words"
character. Ruby allows method names and other identifiers to contain such end
characters.)
Method names may contain letters, numbers, an <code>_</code> (underscore or Ruby programs must be written in a US-ASCII-compatible character set such as
low line) or a character with the eight bit set. UTF-8, ISO-8859-1 etc. In such character sets if the eight bit is set it
indicates an extended character. Ruby allows method names and other identifiers
to contain such characters. Ruby programs cannot contain some characters like
ASCII NUL (<code>\x00<code>).
The following are the examples of valid ruby methods:
def hello
"hello"
end
def こんにちは
puts "means hello in Japanese"
end
Typically method names are US-ASCII compatible since the keys to type them
exist on all keyboards.
Method names may end with a <code>!</code> (bang or exclamation mark), a Method names may end with a <code>!</code> (bang or exclamation mark), a
<code>?</code> (question mark) or <code>=</code> equals sign. <code>?</code> (question mark) or <code>=</code> equals sign.
In the ruby core library when a method ends with a bang it indicates there is The bang methods(<code>!</code> at the end of method name) are called and
a non-bang method that has does not modify the receiver. This is typically executed just like any other method. However, by convention, a method with an
true for the standard library but does not hold true for other ruby libraries. exclamation point or bang is considered dangerous. In ruby core library the
dangerous method implies that when a method ends with a bang(<code>!</code>),
it indicates that unlike its non-bang equivalent, permanently modifies its
receiver. Almost always, Ruby core library will have a non-bang
counterpart(method name which does NOT end with <code>!</code>) of every bang
method (method name which does end with <code>!</code>) that has does not
modify the receiver. This convention is typically true for ruby core libary but
may/may not hold true for other ruby libraries.
Methods that end with a question mark do not always return just +true+ or Methods that end with a question mark by convention return boolean. But they
+false+. Often they will may return an object to indicate a true value (or may not always return just +true+ or +false+. Often they will may return an
"truthy" value). object to indicate a true value (or "truthy" value).
Methods that end with an equals sign indicate an assignment method. For Methods that end with an equals sign indicate an assignment method. For
assignment methods the return value is ignored, the arguments are returned assignment methods the return value is ignored, the arguments are returned