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でWebSocket
、Logger
をconfigで指定出来るよう修正しています。
WebSocket
はテストの際にmockを指定出来るようにする為に、configで指定出来るようにしたようです。
actioncable/test/javascript/src/test_helpers/mock_websocket.coffee
、
actioncable/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.rb
、
activemodel/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.rb
、
actionpack/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は下位互換の為に追加されたもので、ユーザが直接いじくる事はそんなに無いだろうという事で、一つのファイルにまとめるようにしたようです。
actionpack/test/dispatch/prefix_generation_test.rb
の修正です。
priority
をpriotity
にタイポしている箇所があったのを修正しています。