なるようになるブログ

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

rails commit log流し読み(2016/09/26)

2016/09/26分のコミットです。

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


Require active_support/testing/autorun.

railties/lib/rails/commands/test.rbの修正です。

minitestのautorunを実行するのに、minitest/autorunを直接requireしていたのを、Active Supportにあるautorunのラッパー(active_support/testing/autorun)を使用するよう修正しています。


Revise setting of run_with_rails_extension.

activesupport/lib/active_support/testing/autorun.rbrailties/lib/rails/commands/test.rbrailties/lib/rails/test_unit/minitest_plugin.rbの修正です。

test runner内のrun_with_rails_extensionの設定の見直しを行っています。

bin/rails test経由でテストを実行した場合は問題なかったのですが、rubyコマンド経由でテストを実行した場合(ex: ruby -Itest test/models/post_test.rb)、テスト対象のファイルが複数回requireされてしまう問題があった為、rubyコマンド経由で実行されかどうかを判別出来るようにし、rubyコマンド経由でのテストの実行の場合test runner内でテスト対象のファイルのrequireを行わないよう修正しています(rubyコマンド経由の場合、最初にテスト対象のファイルは読み込まれている為)。


fffffff, Add code missing in 29f0fbd

activesupport/lib/active_support/testing/autorun.rbの修正です。

先の対応で設定変更の対応が漏れている箇所があったのを修正しています。


Use autorun when running via Rake.

railties/lib/rails/test_unit/minitest_plugin.rbの修正です。

rakeコマンド経由でテストを実行した場合にもMinitest.after_runが実行されるよう、autorunを使用してテストを実行するよう修正しています。


Add info about a502703 to Rails 5 release notes

rails guideのRuby on Rails 5.0 Release Notesの修正です。

ActiveRecord::ConnectionAdapters::Column::TRUE_VALUESを削除した対応(Change the behavior of boolean columns to be closer to Ruby's semantics. · rails/rails@a502703)について、entryを追加しています。


Merge pull request #26579 from y-yagi/remove_unnecessary_rails_env_setting

railties/lib/rails/generators/rails/app/templates/test/test_helper.rbrailties/lib/rails/generators/rails/plugin/templates/test/test_helper.rbの修正です。

test_helper.rb内でENV["RAILS_ENV"]を設定していたのを削除しています。ENV["RAILS_ENV"]はtest runner内でで設定され、test_helper.rbで個別に設定する必要は無い為。


[ci skip] Clarify Postgresql Documentation

activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rbのdocの修正です。

ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#executeメソッドのdoc内で、処理が成功した場合に返されるクラス名に誤りがあったのを修正、及びグラマー、フォーマットの修正等を行っています。


[ci skip] Update PG adapter documentation

activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rbのdocの修正です。

ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#executeメソッドのdoc内で、処理が失敗した場合に返されるクラス名に誤りがあったのを修正しています。


Use xor to avoid allocations in AR::Core#hash

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

AR::Core#hashメソッドでclass名とidのArrayのHashを返していたのを、xorした値のHashを返すよう修正しています。

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

Arrayのallocateが行われるのを防ぐ為との事です。