Everything in Ruby is an object. Each function returns something; if an explicit return is not specified, the function will return the value of the last processed expression (in the function) \cite[\S2.3, pp. 35]{Tate2010}.
Ruby supports functional programming; it allows functions to be passed to other functions as parameters \cite[\S2.3, pp. 36]{Tate2010}.
When an out-of-bounds array index is accessed, nil is returned by Ruby \cite[\S2.3, pp. 36]{Tate2010}.
array_name[-n] returns the n^{th} element from the end \cite[\S2.3, pp. 36]{Tate2010}.
Arrays are not required to be homogeneous \cite[\S2.3, pp. 37]{Tate2010}.
"Multidimensional arrays are ... arrays of arrays" \cite[\S2.3, pp. 37]{Tate2010}.
"A code block is a function without a name"; it can be passed as a parameter to a function or a method; "code blocks can take one or more parameters" \cite[\S2.3, pp. 39]{Tate2010}.
"Metaprogramming means writing programs that write programs" \cite[\S2.4, pp. 48]{Tate2010}.
Open classes in Ruby can redefine String and Nil \cite[\S2.4, pp. 49]{Tate2010}: - Also, Ruby can be disabled by redefining Class.new. - Ruby gives us the freedom to redefine classes or objects at any time.
When "a method is missing", Ruby calls "a special debugging method," method_missing, "to print some diagnostic information"; this method method_missing can be overridden \cite[\S2.4, pp. 49]{Tate2010}.
Citations/References that use the LaTeX/BibTeX notation are taken from my BibTeX database (set of BibTeX entries).
The MIT License (MIT)
Copyright (c) <2017> Zhiyang Ong
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Email address: echo "cukj -wb- 23wU4X5M589 TROJANS cqkH wiuz2y 0f Mw Stanford" | awk '{ sub("23wU4X5M589","F.d_c_b. ") sub("Stanford","d0mA1n"); print $5, $2, $8; for (i=1; i<=1; i++) print "6\b"; print $9, $7, $6 }' | sed y/kqcbuHwM62z/gnotrzadqmC/ | tr 'q' ' ' | tr -d [:cntrl:] | tr -d 'ir' | tr y "\n" Don't compromise my computing accounts. You have been warned.