なるようになるブログ

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

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

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

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

activerecord/CHANGELOG.md

activesupport/CHANGELOG.md


Merge pull request #25775 from junaruga/hotfix/actionpack-depending-on-activerecord

actionpack/test/abstract_unit.rbの修正です。

Action Packのテストから、不要なactive_recordのrequireを削除しています。


Merge pull request #25815 from greysteil/add-newline-between-structure-versions

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

structure.sqlに出力するschema_migrationsversionをinsertする用のSQLの各データの間に改行を入れるよう修正しています。

# before
INSERT INTO schema_migrations (version) VALUES ('20150304132711'), ('20150306141924'), ('20150330084039')
# after
INSERT INTO schema_migrations (version) VALUES
('20150304132711'),
('20150306141924'),
('20150330084039');

元々は改行が入っており、Rails 5.0.0からmulti-row-insertを使用するようになり改行が入らなくなったのですが、改行があった方がdiffが見やすいという意見があり、再度改行が追加されるようになりました。


CHANGELOG for https://github.com/rails/rails/pull/25257 [ci skip]

railties/CHANGELOG.mdの修正です。

initializersタスクでinitializer名だけでなくクラス名も表示するよう修正した対応(Merge pull request #25257 from ta1kt0me/inspect_initializers · rails/rails@67d5783)について、CHANGELOGにエントリーを追加しています。


Fix CHANGELOG grammar [ci skip]

railties/CHANGELOG.mdの修正です。

先ほど追加されたinitializersタスクの対応についてのエントリーのグラマーの修正を行っています。


Fix failing requirement of duplicable in ParameterFilter

actionpack/lib/action_dispatch/http/parameter_filter.rbの修正です。

不足していたactive_support/core_ext/object/duplicableのrequireを追加しています。


Merge pull request #25850 from ojab/layout_doc_fix

ActionView::Layouts#layoutメソッドのdocに、layoutにProcを指定した場合の例を追加しています。


Merge pull request #25650 from prathamesh-sonpatki/add-note-about-changelog-at-the-top

.github/pull_request_template.mdの修正です。

PRのtemplateファイルに、CHANGELOGのエントリーはファイルの先頭に追加する旨説明を追加しています。


Enable a few more rubocop rules

.rubocop.ymlの修正です。

rubocopのルールを幾つか追加しています。


Merge pull request #25811 from oss92/to_sentence_fallback_string

activesupport/lib/active_support/core_ext/array/conversions.rbの修正です。

Array#to_sentenceメソッドに:fallback_stringオプションを追加しています。

空の配列でto_sentenceメソッドを呼び出した際、:fallback_stringオプションに指定した値が返されるようになっています。 配列が空で無い場合は使われません。

[].to_sentence(fallback_string: 'none')
# => "none"

['one', 'two'].to_sentence(fallback_string: 'none')
# => "one and two"

Merge pull request #20818 from jeremywadsack/use_transactional_fixtures_all_databases

Active Recordの修正です。

use_transactional_testsにtrueを設定している、かつ、複数のmodelで異なるDBに接続している場合に、テストのrollback時に一つの接続に対してしかrollback処理が行われない問題があったのを修正しています。

connection接続時にActiveSupport::Notificationsを使用してConnectionAdapters::ConnectionPoolの情報を保持し、後からその情報を利用してrollback処理が行われるよう修正しています。


Make sure the tests setup are made correctly

actionpack/test/controller/request_forgery_protection_test.rbの修正です。

ActionController::Base.request_forgery_protection_tokenにcustom tokenを設定するクラスが誤っていたのを修正しています。


Sort the mime types before comparing

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

mime typeについてのテストで、結果を確認する為に値をsortするよう修正しています。

-    assert_equal expect, parsed
+    assert_equal expect.map(&:to_s).sort!, parsed.map(&:to_s).sort!

ランダムにテストを実行した場合、テストの実行順によってmime typeに登録される順も変わってしまう為、順番を意識しないでよいようにする為にsortするよう修正したようです。


Make sure the time method is unstubed

activesupport/test/time_travel_test.rbの修正です。

travel / travel_toのテストで、ensureを使ってテスト終了後に必ずtravel_backが呼ばれるよう修正しています。元々はteardowntravel_backを呼ぶようになっていたのですが、minitest stubとtime travelのstubがコンフリしてしまって、teardownでは正しくtime travelの方のstubがunstubされない、という問題が合ったため、ensure内で処理を行うよう修正したとの事です。


Check if the logger exists before trying to use it

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

#cleanup_view_runtimeでloggerを使用する前に、loggerがnilじゃないかどうかチェックするよう修正しています。


Store the old logger before calling super

actionview/test/activerecord/controller_runtime_test.rbの修正です。

runtimeを取得する事を確認するテストのsetup処理で、superを呼び出す前に現在のActionController::Base.logger@old_loggerに保持するよう修正しています。

親クラスでActionController::Base.loggerをMockLoggerに差し替える処理がある為、super実行前に値を保持しないと意味が無い為、との事です。


No need public_send

activerecord/test/cases/relation/mutation_test.rbの修正です。

#_select!のテストで_select!メソッドを呼び出すのにpublic_sendを使用していたのですが、不要なので削除しています。