Ruby 3.4 Throws SyntaxError As Keyword Arguments Are No Longer Allowed In Index.

Passing keyword arguments in index to an array set methods throws SyntaxError.

Ruby 3.4 Throws SyntaxError While Passing Block As Argument In Index.

Passing a block as an argument in index to an array throws SyntaxError in Ruby 3.4 as it is no longer allowed.

Ruby 3.4, Range#size Now Raises TypeError If The Range Is Not Iterable

Range#size raises TypeError if the begin value of Range is a Float or Rational or Beginless.

Ruby 3.4, No More TypeError With **nil As It Is Treated As An Empty Hash.

When double splat ** operator used with nil, it is treated similarly to **{}, which passes no keywords and does not call any conversion methods.

A Quick Guide to Ruby's Time and DateTime Classes

Let's examine when to use the Time class and when to use the DateTime class

What is new in Ruby 3.3

Ruby 3.3 boasts performance boosts (faster YJIT, M:N threads), a pure-Ruby JIT compiler (RJIT), a new parser (Prism), developer-friendly features in IRB, and multiple bug fixes.

Performance Gains in Ruby 3.3- String.dup vs. String#+

Ruby 3.3 optimizes String.dup to match the speed of String#+, allowing developers to choose based on preference without sacrificing performance.

Rubygems introduced a file option to specify Ruby version in Gemfile

Rubygems introduced a :file option so that we can read the Ruby version from a file.

Ruby 3.3 Implements Range#reverse_each Method For Very Large or Beginless Ranges And Error Handling For Endless Ranges

Range#reverse_each can now process beginless ranges with an Integer endpoint and raises TypeError for endless ranges.

Ruby 3.3 fixes duplicate keyword argument warning bug

Ruby 3.3 fixes inconsistent warnings for duplicate keyword arguments