なるようになるブログ

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

rails commit log流し読み(2019/07/17)

2019/07/17分のコミットです。

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

activerecord/CHANGELOG.md


Merge pull request #36667 from gmcgibbon/clarify_logger_set_in_log_subscriber_docs

activesupport/lib/active_support/log_subscriber.rbのdocの修正です。

ActiveSupport::LogSubscriberクラスのdocに、ActiveSupport::LogSubscriberを使用するにはActiveRecord::LogSubscriber.logger=の設定が必要(Rails内で使用する場合は自動で設定される)である旨説明を追加しています。


Merge pull request #36648 from louim/patch-1

activesupport/lib/active_support/message_verifier.rbのdocの修正です。

ActiveSupport::MessageVerifier#generateメソッドのdoc内の戻り値についての説明を、実際の内容と合うよう修正しています。


Raise specific exception on Mysql2::Error::TimeoutError

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

timeoutが発生した時に使用する為のActiveRecord::AdapterTimeoutクラスを追加ています。元々MySQLでtimeoutが発生した場合、Mysql2::Error::TimeoutErrorがraiseされていたのですが、今後はActiveRecord::AdapterTimeoutがraiseされるようになります。


Add missing period [ci skip]

activerecord/lib/active_record/errors.rbのdocの修正です。

ActiveRecord::AdapterTimeoutクラスのdocの末尾にピリオドを追加しています。


[ActiveRecord] Superclass for aborted queries

activerecord/lib/active_record/errors.rbの修正です。

queryが中断された事を意味するエラークラス(QueryAborted)を追加し、timeout等でqueryが中断された場合に使用されるStatementTimeoutQueryCanceledAdapterTimeoutの親クラスをQueryAborted`に変更しています。queryが中断された場合のエラーハンドリングをしやすくる為。


Merge pull request #36635 from abhaynikam/36332-fix-engine-documentation-to-remove-js-directory-mention

rails guideのGetting Started with Enginesの修正です。

engineが生成するディレクトリについて説明している箇所に、既に生成しないようになっているディレクトリ(app/assets/javascripts)が含まれていたのを削除しています。


Support beginless ranges in hash conditions.

activerecord/lib/arel/predications.rbの修正です。

Active RecordにRuby 2.7で追加されたbeginless rangesのサポートを追加しています。

User.where(created_at: ..1.year.ago)
# User Load (0.3ms)  SELECT "users".* FROM "users" WHERE "users"."created_at" <= ? LIMIT ?  [["created_at", "2018-07-17 08:49:18.150570"], ["LIMIT", 11]]

みたいに書けるようになっています。


Merge pull request #36690 from cpruitt/make-parameterize-requires-utf-8-explicit

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

ActiveSupport::Inflector.transliterateメソッドの先頭で引数に指定されたStringがUTF-8じゃない場合、ArgumentErrorをraiseするよう修正しています。

元々transliterateUTF-8以外のStringを指定した場合にエラーになる(Encoding::CompatibilityErrorがraiseされる)ようになっており、UTF-8以外はサポートしていない事が明示的にわかるようする為にArgumentErrorをraiseするように修正したとの事です。

が、UTF-8以外のStringを指定した場合にエラーになる、に勘違いあったようで、後ほどRevertされています。