Ruby

Ruby 3.1 Adds Hash Value Omission

Ruby 3.1 adds the ability to use hash literals without having a value.

Ruby 3.1 Adds Integer.try_convert

Ruby 3.1 adds try_convert for Integer to convert objects via implicit to_int method, returning nil if undefined.

Ruby 3.1 Pin Operator for Pattern Matching Explained

Ruby 3.1 extends the pin operator (^) to support expressions and ranges in pattern matching. Learn variable pinning with examples.

Ruby 3.1 Adds Enumerable#compact

Ruby 3.1 adds Enumerable#compact and Enumerator::Lazy#compact to return a copy of `self` with all `nil` elements removed.

Ruby 3.1 Enumerable#tally Accepts Hash

Ruby 3.1 extends Enumerable#tally to accept an optional hash for accumulating counts across collections.

Ruby 3.1 adds Array#intersect? method

Ruby Array#intersect? method will return true or false based on common elements present in the two arrays.

Ruby 3.1 Left-to-Right Assignment Order

Ruby changes the evaluation order for multiple assignments from left to right making it consistent with single assignment evaluation order.

Ruby 3.0 adds `Hash#except` and `ENV.except`

Ruby 3.0 adds `Hash#except` to return a new hash that includes everything from the original hash except the given keys. `ENV` also gets support for `except`.

Ruby Adds Leading Arguments with Forwarding

... operator was limited to forwarding arguments. With Ruby 3.0, it can forward the arguments along with the leading arguments.

Ruby 3.0 Adds Symbol#name Method

Ruby has added `Symbol#name`, which returns the name of the symbol if it is named. The returned string can not be modified.