なるようになるブログ

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

rails commit log流し読み(2018/03/07)

2018/03/07分のコミットです。

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


Remove blank Content-Type from GCS direct upload headers

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

GCSにdirect uploadする際に、Content-Type headerに空を明示的に指定していたのを、指定しないよう修正しています。

JS側で不要なContent-Type headerを送信しないよう、Clear Blob's type before sending itで修正済みで、サーバ側で対応する必要はなくなった為。


Allow selectively purging attached blobs

activestorage/lib/active_storage/attached/macros.rbactivestorage/lib/active_storage/attached/many.rbの修正です。

blobを複数attachしている際に、一つblobをpurgeすると他のblobもまとめてpurgeされてしまっていたのを、選択したblobのみpurgeするよう修正しています。


Update test to reflect GCS direct upload header change

activestorage/test/controllers/direct_uploads_controller_test.rbの修正です。

先のContent Type headerの修正の際にテストの修正が漏れていたのを対応しています。


Provide an alternative PDF previewer based on Poppler

Active Storageの修正です。

PDFのpreviewに使用出来るライブラリがmupdfだけだったのを、Popplerも使用出来るようサポートを追加しています。

mutoolはライセンスがAGPLになっており、使えない環境もある為、ライセンスがGPLのPopplerも使用出来るようにしたとの事です。PR、Herokuの中の人からきていたので、HerokuだとライセンスがAGPLのライブラリが使えないとかですかねえ。


Revert "PERF: Recover changes_applied performance (#31698)"

changesメソッドは使用せず、mutation trackerによって管理されている値を使用するよう修正した、PERF: Recover `changes_applied` performanceをRevertしています。

性能改善の対応だったのですが、次のコミットで違うアプローチで対応されています。


Don't call changes in changes_applied unless required

activemodel/lib/active_model/dirty.rbの修正です。

Dirty#changes_appliedメソッドで@attributesが定義されていない場合はchangesメソッドを使用しいないよう修正しています。

元々、changesメソッドが遅いことによりsaveの性能が劣化してしまっていた為、不要な際にchangeを呼ばないようにすれば十分だろう、という事で修正されています。


[ci skip] Hide internal docs from root AS module

activesupport/lib/active_support/core_ext/object/json.rbのdocの修正です。

api docのActiveSupport moduleのトップページにlib/active_support/core_ext/object/json.rbに記載されているdocが誤って表示されてしまっていたのを、表示されないよう修正しています。