なるようになるブログ

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

rails commit log流し読み(2019/02/01)

2019/02/01分のコミットです。

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

activesupport/CHANGELOG.md


Remove unused attr_writers visitor and indexes

activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rbactiverecord/lib/active_record/connection_adapters/abstract_adapter.rbの修正です。

https://github.com/rails/rails/commit/8056fe0d964a8d0add46d4b545e396e5fadfcbe3https://github.com/rails/rails/commit/f4bc364fdf808e58bd30ab44d111384a46615e1a でdeprecatedにした不要なattr_writersをdeprecateではなくて削除しています。

元々内部で使用する値だったのですが、API docに表示されてしまっていたので、まず削除じゃなくてdeprecateにするようにしていました。

ただ、Tighten up the AV::Base constructorの対応で同様にAPI docに誤って表示されてしまっていたattr_writerがdeprecateなしで削除されてしまっていたので、こちらも同様に削除で良いんじゃないかという事で削除しています。


add tests to make sure deprecated API is still supported

actionview/lib/action_view/base.rbactionview/test/template/render_test.rbの修正です。

Tighten up the AV::Base constructorの対応で、ActionView::Baseのコンストラクタのformatsオプションが未指定の場合の処理に誤りがあったのを修正、及び、ActionView::Baseのコンストラクタにdeprecatedになった引数を指定した場合のテストを追加しています。


Merge pull request #31253 from knu/backquote_returns_string

activesupport/lib/active_support/core_ext/kernel/agnostics.rbの修正です。

Kernel#`に存在しないコマンドを指定した場合に、Errno::ENOENTをsuppressしてexceptionをraiseしないようにする、という処理があったのを削除しています。

昔のRubyでは、Kernel#`に存在しないコマンドを指定した場合、unix系ではエラーメッセージが表示されるだけでErrno::ENOENTがraiseされず、WindowsではErrno::ENOENTがraiseされる、という挙動の違いがあり、その違いを吸収する為に上記処理を行っていました。

が、今のRubyではunix系でもErrno::ENOENTがraiseされるようになっており、結果これはRuby本来の挙動と異なる挙動になってしまい良くないのでは、という事で削除されています。なおバグと見なされたため、deprecateメッセージ無しで削除です。


Merge pull request #35116 from kamipo/fix_through_association_creation

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

Find inverse associations with plural namesの対応の影響で、has_many through association の生成処理で余分なthrough recordの生成が行われるようになりました。かつ、その余分な through recordは保存時にvalidになっている必要があるため、中間modelにassociation idに対するvalidationがるような場合に、生成処理がエラーになる、というリグレッションが発生してしまっていました。

そのため、Find inverse associations with plural namesをRevert + 上記ケースのテストを追加の対応を行っています。


Enable Lint/ErbNewArguments cop to avoid the deprecated arguments warning

.rubocop.ymlの修正です。

Lint/ErbNewArguments copを追加しています。


Fix doc of ActionDispatch::SystemTestCase [ci skip]

actionpack/lib/action_dispatch/system_test_case.rbのdocの修正です。

ActionDispatch::SystemTestCase classのdocについて、フォーマットが崩れていたり、exampleコードが動作しないものになっていたりしたのを修正しています。


Railities typo fixes.

railtiesの修正です。

テストメソッド名やdoc内のタイポをまとめて修正しています。


Merge pull request #35043 from simoleone/activestorage/s3/content-type

activestorage/lib/active_storage/service/s3_service.rbの修正です。

S3にファイルをアップロードする際に、content_typeを明示的に指定出来るよう修正しています。