なるようになるブログ

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

rails commit log流し読み(2018/02/17)

2018/02/17分のコミットです。

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

railties/CHANGELOG.md


Merge pull request #32015 from JPrevost/activestorage_integration_test_cleanup_docs

rails guideのActive Storage Overviewの修正です。

Discarding Files Stored During Integration Testsの項を追加し、Integration testの後処理でActive Storageでuploadしたファイルを削除する方法についての説明を追加しています。


Merge pull request #32016 from SamSaffron/visitors

actionpack/lib/action_dispatch/journey/nodes/node.rbの修正です。

Journey::Nodes::Node#name、及び、Symbol#initializeメソッドでString#-@メソッドを使用するよう修正しています。

先日の改善と同様に、不要なObjectの生成を減らせるようにする為。


Remove support to Ruby 2.2

Rails 6ではRuby 2.2系のサポートをしなくなる為、CIから2.2系を削除し、各gemspecのrequired_ruby_version>= 2.3.0に修正しています。

先日から行われている性能改善対応でString#-@が使われているのですが、このメソッドはRuby 2.3で追加されたメソッドであり、その影響で2.2系でのテストがエラーになってしまっていました。

そのため、buildが通るようにする為にとりあえず2.2系のサポートを落としています。Rails 6でサポートするバージョンの最終決定では無いです(今の所2.4系以上をサポートになりそうな感じ)。


Write the code in a more natural way.

actionpack/lib/action_dispatch/journey/nodes/node.rbの修正です。

先ほどの、Journey::Nodes::Node#name、及び、Symbol#initializeメソッドでString#-@メソッドを使用するよう修正のリファクタリングです。既存のコードに合わせる書き方に修正しています。


Remove usage of strip_heredoc in the framework in favor of <<~

strip_heredocメソッドを使っていた箇所を、Ruby標準のsquiggly heredoc(<<~)を使用するよう修正しています。


Fix array routing constraints

actionpack/lib/action_dispatch/journey/path/pattern.rbの修正です。

constraintsにArrayを指定した場合にconstraintsが正しく適応されないバグがあったのを修正しています。


Remove needless print

railties/test/application/test_runner_test.rbの修正です。

Parallel Testingのテストでデバッグコードと思われるprintがあったのを削除しています。


Fix frozen string concatenation by indicating that it's mutable

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

visit_ForeignKeyDefinitionメソッド内、squiggly heredocを使用している箇所で、+@でfreezeしない値を取得するよう修正しています。

strip_heredocを使っていた場合は結果がfreezeされていないので問題なかったのですが、squiggly heredocを使うと結果がfreezeされており、そのまま使用するとFrozenErrorが発生してしまう為。


Remove needless requiring 'active_support/core_ext/string/strip'

railties/lib/rails/generators/rails/encrypted_file/encrypted_file_generator.rbの修正です。

不要なactive_support/core_ext/string/stripのrequireを削除しています。


Define transform_keys! in HashWithIndifferentAccess

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

HashWithIndifferentAccesstransform_keys!メソッドを定義しています。

元々はRuby本体のtransform_keys!がそのまま呼ばれるようになっていたのですが、それだと処理の中でkeyをSymbolに変換したような場合に、正しく値が設定されてない、という問題がある為、独自にメソッドを追加しています。


Merge pull request #31901 from Kevinrob/patch-1

railties/lib/minitest/rails_plugin.rbの修正です。

minitest用のtest reporterを、minitestのpluginロード時に必ず設定するようになっていたのを、reporterが空の場合は設定しないよう修正しています。

minitest-reportersを使用している場合等、Railsが提供しているreporterを使いたくない場合がある為、とりあえず空の場合は何もしないように対応しています。


Fix frozen string concatenation by indicating that it's mutable

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

squiggly heredocを使用している箇所で、+@でfreezeしない値を取得するよう修正しています。理由はFix frozen string concatenation by indicating that it's mutableと同様。


Add chop removed in 89bcca5

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

Remove usage of strip_heredoc in the framework in favor of <<~の対応の際に誤ってchopを削除していまっていたのを、戻しています。


Fix changelog entry [ci skip]

railties/CHANGELOG.mdの修正です。

エントリーのフォーマットの修正を行っています。


Merge pull request #32002 from y-yagi/fix_set_serializer

activejob/lib/active_job/railtie.rbの修正です。

Merge pull request #30941 from toptal/introduce-custom-serializers-to-activejob-argumentsで追加されたActive Jobのserializerの追加処理が正しく動作していないバグがあったのを修正しています。