5 Ruby Tips You Probably Don’t Know
In this article we’re going to explore the following topics:
- assigning the rest of an
Arrayto a variable
- array destructuring in block arguments
Hash#default_procas default value
HEREDOCand method chaining
- unary operators for non-numeric objects
Assigning the rest of an
Array to a variable
When destructuring an
array, you can unpack and assign the remaining part of it to a variable using the rest pattern
Array destructuring in block arguments
It’s possible to use the
Array Destructuring mechanism in ruby blocks
Here, each sub-array is destructured and the first and second entry values are assigned to the
value block arguments.
Hash#default_proc as default value
Hash.new can take a block that will be used to set the default value of a key
But what if we want to propagate this default value through all the entries and subentries of a hash ?
It’s possible to propagate the default block passed as argument of the
Hash.new method to all the sub-entries of the freshly returned hash.
To do so we can use the
Hash#default_proc method that contains the block passed as argument of the
Here, a new hash that takes a block as argument — which is used to define the default value of a new entry — is assigned to the
layers[:layer_1] is called without an explicit assignment, then the block passed as argument of the
layers hash is executed.
This block is executed as following
In effect, the
default_proc executes the block passed as parameter of the
It’s same for the
And then the
layers[:layer_1][:layer_2][:layer_3] contains an assigned value. So the
default_proc method is not called.
default_proc method of the
layers hash is propagated as default value of any new entries and sub-entries of this hash.
HEREDOC and method chaining
HEREDOC is a multi-line string syntactic sugar, then it’s possible to chain methods on it.
In this example, we remove the trailing spaces and
\n of an SQL query
Note that the
squishmethod is defined within the Rails framework.
Unary operators for non-numeric objects
It’s possible to implement unary operators to an object by defining the
+@ methods within the class declaration
May I have your attention please 🎤🎤
Feel free to subscribe here: www.rubycademy.com
Thank you for taking the time to read this post :-)
Feel free to 👏 and share this article if it has been useful for you. 🚀
Here is a link to my last article:
The Singleton module in Ruby: part II.