なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2021/02/06)

2021/02/06分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activesupport/CHANGELOG.md

railties/CHANGELOG.md

activejob/CHANGELOG.md


Enumerable#in_order_of (#41333)

activesupport/lib/active_support/core_ext/enumerable.rbの修正です。

指定されたkeyによってorderしたArrayを返すEnumerable#in_order_ofメソッドを追加しています。

[ Person.find(5), Person.find(3), Person.find(1) ].in_order_of(:id, [ 1, 5, 3 ])
# => [ Person.find(1), Person.find(5), Person.find(3) ]

Merge pull request #41343 from lordon/remove-parts-of-js-confirm-guide

rails guideのWorking with JavaScript in Railsの修正です。

default confirmation についての説明で、実際の挙動と異なった説明が行われていた箇所があったのを削除しています。


Merge pull request #40254 from prateekkish/default-main

railties/lib/rails/generators/rails/app/app_generator.rbrailties/lib/rails/generators/rails/plugin/plugin_generator.rbの修正です。

新規に作成したRails application及びpluginのデフォルトのブランチがmainになるよう修正しています。


Merge pull request #41339 from gmcgibbon/break_up_abstract_connection_pool

Active Recordの修正です。

connection handler、及び、connection pool用の各クラスを個別ファイルに切り出すよう修正しています。


Communicate enqueue failures to callers of perform_later

activejob/lib/active_job/core.rbactivejob/lib/active_job/enqueuing.rbの修正です。

perform_laterで、enqueueに失敗した場合に、失敗した場合のエラーの情報を呼び出し元で取得出来るよう修正しています。エラーになったかどうかは、successfully_enqueued?メソッドでチェック出来るようになっています。

MyJob.perform_later do |job|
  unless job.successfully_enqueued?
    if job.enqueue_error&.message == "Redis was unavailable"
      # ...
    end
  end
end

Merge pull request #41347 from ricardotk002/use-string-grapheme-clusters

activesupport/lib/active_support/core_ext/string/filters.rbactivesupport/lib/active_support/multibyte/chars.rbの修正です。

String#scan(/\X/)を使用していた箇所を、String#grapheme_clustersString#each_grapheme_clusterを使用するよう修正しています。