なるようになるブログ

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

rails commit log流し読み(2019/08/29)

2019/08/29分のコミットです。

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

activerecord/CHANGELOG.md


This is no longer a fact in Rails 3+

rails guideのActive Support Core Extensionsの修正です。

parameterizeメソッドについて説明している箇所に、戻り値はActiveSupport::Multibyte::Charsにラップされた値になっている旨説明があったのですが、これは古い挙動で現状は違う為、該当部分の説明を削除しています。


Constantize a constant array in a method

activesupport/lib/active_support/inflector/transliterate.rbの修正です。

transliterateメソッドで処理出来るencodingの一覧を変数で保持していたのを、定数で保持するよう修正しています。


Fix docs to update ruby version in reference URLs [ci skip]

rails guideのActive Record and PostgreSQLの修正です。

Rubyのcoreライブラリについてのdocのリンクをhttps://ruby-doc.org/core-2.2.2からhttps://ruby-doc.org/stdlib-2.5.0に修正しています。Rails 6.0がサポートしているRubyのバージョンが2.5以上な為。


US_ASCII strings are always UTF_8 compatible

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

is_utf8?メソッドでencodingがEncoding::US_ASCIIの場合、不要なforce_encoding(Encoding::UTF_8)を実行しないよう修正しています。


Merge pull request #37065 from eileencodes/push-while_preventing_writes-into-connected_to

activerecord/lib/active_record/connection_handling.rbactiverecord/lib/active_record/middleware/database_selector/resolver.rbの修正です。

connected_toメソッドの中からwhile_preventing_writesを直接呼び出すよう修正しています。

while_preventing_writesメソッドに渡す引数もconnected_toメソッドから渡せるようになっており、これで書き込みの禁止 / 許可をミドルウェアではなくアプリで制御出来るようになっています。

ミドルウェアレベルだとアプリ側でconnected_toを使用された場合に競合状態になって正しく書き込み処理のハンドリングが出来ないケースがあった為。


Fix missing close code tick mark in AR changelog [ci skip]

activerecord/CHANGELOG.mdの修正です。

メソッド名に対するクォートが不足していたのを修正しています。


Remove mysql2 specific rescue in abstract adapter

activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rbactiverecord/lib/active_record/connection_adapters/mysql2_adapter.rbの修正です。

AbstractMysqlAdapter#translate_exceptionメソッドでmysql2固有のエラーに関する処理があったのを、mysql2固有のエラーについてはMysql2Adapterクラスで行うよう修正しています。