なるようになるブログ

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

rails commit log流し読み(2016/06/01)

2016/06/01分のコミットです。

CHANGELOGへの追加はありませんでした。


More Action Pack abstract_unit cleanup (#25211)

Action Packのテストの修正です。

使用していないコードを削除、テスト用のクラスを実際に使用している箇所に移動、等を行っています。


ActiveRecord::Base#hash should differ between classes

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

ActiveRecord::Base#hashがidだけではなく、classの値も返すよう修正しています。

    def hash
       if id
-        id.hash
+        [self.class, id].hash
       else
         super
       end

idだけだと、違うクラスのインスタンスだけどhashが一致してしまう、という事がある為、それを避ける為のようです。


Respect options passed to foreign_key when reverting add_reference

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

add_referencesメソッドのforeign_keyオプションにHashを指定した場合に、rollback処理でエラーになってしまうバグがあったのを修正しています。

:to_table when adding a fk through add_reference.foreign_keyオプションに外部キーを追加するテーブルをHashで指定出来るようになったのですが、rollback処理で呼ばれる#remove_referenceメソッドの方でforeign_keyオプションにHashが渡ってくる可能性がある前提のコードになっていなかった為、エラーになってしまっていたようです。


Add configuration for WebSocket and logger

Action Cableのクライアントサイド修正です。

ActionCableでWebSocketLoggerをconfigで指定出来るよう修正しています。

WebSocketはテストの際にmockを指定出来るようにする為に、configで指定出来るようにしたようです。


Reorganize MockWebSocket

actioncable/test/javascript/src/test_helpers/mock_websocket.coffeeactioncable/test/javascript/src/unit/consumer_test.coffeeの修正です。

mockのWebSocketを使用したテストを一つのmoduleにまとめています。


Add helper for testing against a mock WebSocket and server

Action Cableのテストの修正です。

mockのWebSocketを使用する為のhelperクラスを追加しています。


Remove unused require and unused model stub

activemodel/test/cases/helper.rbactivemodel/test/models/project.rbの修正です。

使用していないrequire及びテスト用のクラスを削除しています。


Make Active Record emit significantly smaller YAML

Active Recordの修正です。

Active Recordのインスタンスyamlに変換した際に、yamlに保持してなくても問題無いデータは含まないよう修正しています。

attributes APIをリライトした影響で、5.0ではyamlのサイズが4.2と比べ大変大きくなってしまった(issue報告者のケースでは、約8倍程度大きくなってしまっていた)ので、その対応として行っています。

参考:AR objects serialized are much larger in Rails 5 · Issue #25145 · rails/rails


Clean up the test request/response even after an exception

actionpack/lib/action_controller/test_case.rbactionpack/test/controller/test_case_test.rbの修正です。

test用のrequest / responseでexceptionが発生した際も後処理を行えるよう、request / responseの処理をbeginで囲み、ensureで後処理を行うよう修正しています。


Collapse all new default initializers into a single file

railtiesの修正です。

アプリのデフォルトの挙動を変えるinitalizers(belong_toをdefault trueにする、form毎に異なるcsrf tokenを生成する、など)を個別のファイルではなく、一つのファイル(config/initializers/new_framework_defaults.rb)にまとめて定義するよう修正しています。

デフォルトの挙動を変えるinitializersは下位互換の為に追加されたもので、ユーザが直接いじくる事はそんなに無いだろうという事で、一つのファイルにまとめるようにしたようです。


fix typo

actionpack/test/dispatch/prefix_generation_test.rbの修正です。

prioritypriotityにタイポしている箇所があったのを修正しています。