なるようになるブログ

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

rails commit log流し読み(2016/03/24)

2016/03/24分のコミットです。

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

activerecord/CHANGELOG.md


Merge pull request #24167 from kamipo/append_sql_mode_instead_of_overwriting_in_strict_mode

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

MySQL adapterで、configにstrictオプションを設定した場合に、他のSQL modesの設定を上書きしてしまっていたのを、他のSQL modeの設定はそのまま必要な設定の追加 / 削除を行うよう修正しています。

strictオプションがtrueの場合は、STRICT_ALL_TABLESsql_modeに追加され、strictオプションがfalseの場合は、STRICT_TRANS_TABLESSTRICT_ALL_TABLESTRADITIONALsql_modeから削除される、という挙動になっています。


Merge pull request #24259 from jeremy/cable/disconnected-client-errors

Action Cableの修正です。

client側から強制的に切断された場合に、exceptionをraiseするようになっていたのを、正常にclose処理を行うよう修正しています。


Merge pull request #24037 from jeremy/implicit-render-raises-on-browser-GET-requests-only

actionpack/lib/action_controller/metal/implicit_render.rbの修正です。

Lock down new ImplicitRender behavior for 5.0 RC で変更になったrenderの挙動について、テンプレートが見つからなかった場合のエラーメッセージを修正、及び、browserからのリクエストかどうかのチェック処理に、requestがGETがどうかのチェック処理を追加しています。


Merge pull request #24285 from tbraun89/patch-1

activesupport/lib/active_support/core_ext/module/attribute_accessors.rbのdocの修正です。

mattr_readerメソッドのdocで誤ってmattr_writerを使ってしまっていたのを修正、及びmattr_readercattr_readerにタイポしている箇所があったのを修正しています。


Merge pull request #24164 from prathamesh-sonpatki/fix-application-mailer

Action Mailerの修正です。

Merge pull request #24161 from Sen-Zhang/restore_application_mailerで、mailerをgenerateする際、app/mailers/application_mailer.rbが存在しない場合はapp/mailers/application_mailer.rbを生成するよう修正したのですが、mountable engineで正しくapplication_mailer.rbのチェックが行えてなかった(namespaceの考慮が足りてなかった)ので、mountable engineでも正しく処理が動作するよう修正しています。


Add edge cases to Time/Date/DateTime inclusion validation tests

activemodel/test/cases/validations/inclusion_validation_test.rbの修正です。

inclusion validatorのテストに、境界値のテストを追加しています。


Use Range#cover? for Date inclusion validator

activemodel/lib/active_model/validations/clusivity.rbの修正です。

data型のattributeにinclusion validatorを指定した場合に、値のチェックにRange#coverメソッドを使用するよう修正しています。

      def inclusion_method(enumerable)
         if enumerable.is_a? Range
           case enumerable.first
-          when Numeric, Time, DateTime
+          when Numeric, Time, DateTime, Date
             :cover?
           else
             :include?

Change for ActiveRecord::Migration.[] to raise ArgumentError instead of RuntimeError

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

ActiveRecord::Migration.[]メソッドに不正な値を指定した場合、RuntimeErrorがraiseされていたのをArgumentErrorをraiseするよう修正しています。

ActiveRecord::Migration.[]メソッドに不正な値 = migrationファイルのバージョンに不正な値を指定(いまだと4.25.0以外の値)した場合にraiseされるエラーなので、ArgumentErrorが適切だろう、という事で修正されたようです。


[ci skip] Added missing custom context validation

rails guideのActive Record Validationsの修正です。

Common Validation Optionsの項の:onオプションについて説明している箇所に、custom context validationの使い方についての説明を追加しています。