Happy Friday! This is Greg, bringing you the latest changes from the Rails codebase.
The 2025 Rails Luminary nominations are open.
If you know of someone who has consistently gone above and beyond to contribute to the framework, triaging bugs, improving performance, adding helpful features or documentation, creating or maintaining gems, etc. please nominate them for the 2025 Rails Luminary Award by Dec 3.
Remove explicit –config from RuboCop binstub templates
By removing the explicit config flag from the RuboCop binstub templates, this
change allows RuboCop’s cascading config feature to work properly, enabling
subdirectory-specific configurations.
Enhance rate limiting to support dynamic to: and within: options
This pull request changes the to and within options of the rate limiter to
accept static values(as before), instance method names as symbols, and
callables(lambdas/procs) that are evaluated in the controller context.
Optimize String#strip_heredoc
This pull request speeds up String#strip_heredoc by 1.5x to 5x when yjit is enabled.
The new version doesn’t allocate any strings to find the minimum_indent to be stripped. Instead uses StringScanner#skip per each line to count whitespace char length.
Reset parallel test tables by deleting
With this change, on MySQL parallel test database table reset will use DELETE instead of TRUNCATE. Truncating on MySQL is very slow even on empty or nearly empty tables.
As a result of this change auto increment counters are now no longer reset between test runs on MySQL and the SKIP_TEST_DATABASE_TRUNCATE environment variable no longer has any effect.
You can view the whole list of changes here.
We had 22 contributors to the Rails codebase this past week!
Until next time!
Subscribe to get these updates mailed to you.