Wrap hash literal in braces if last in array

This page is not yet available in Spanish. We are working on its translation.
If you have any questions or feedback about our current translation project, feel free to reach out to us!

Metadata

ID: ruby-best-practices/hash-literal-as-last-array-item

Language: Ruby

Severity: Notice

Category: Best Practices

Description

In Ruby, hash literals can sometimes be ambiguous, especially when they are the last element in an array without being explicitly wrapped in braces. This rule enforces the use of braces around hash literals when they are the last element in an array.

The importance of this rule lies in maintaining the clarity and readability of your code. It can be confusing for others (or even for yourself at a later date) to understand the intention of your code when a hash literal is not clearly defined within an array. Furthermore, not wrapping a hash literal in braces may lead to unexpected behavior, as Ruby might not interpret it as you intended.

To adhere to this rule and ensure good coding practices, always wrap hash literals in braces {} when they are the last element in an array. For example, instead of writing [1, 42, foo: 99, bar: 96], you should write [1, 42, { foo: 99, bar: 96 }]. This makes it clear that the last element is a hash, improving the readability and predictability of your code.

Non-Compliant Code Examples

[1, 42, foo: 99, bar: 96]

Compliant Code Examples

[1, 42, { foo: 99, bar: 96 }]
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis

PREVIEWING: rtrieu/product-analytics-ui-changes