なるようになるブログ

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

rails commit log流し読み(2016/01/20)

2016/01/20分のコミットです。

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

activerecord/CHANGELOG.md


run type column through attribtues API type casting.

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

STItypeカラムの値を、attribtues APIのtype cast処理を経由して取得するよう修正しています。

サブクラスのインスタンス生成処理より前にtype cast処理を経由する為、attribtues APItypeの値を操作する事により、STIで任意のクラスへのマッピングが出来るようになっています。


Fix test failure on PostgreSQL by sorting the result before comparison

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

先のSTIの対応で追加されたテストがPostgreSQLでコケていたので対応しています。

DBから取得した値の比較処理を行っている箇所で、取得するデータのsort処理が無かった為、DBによってデータの順番が変わってしまっていたのが問題だったようです。sort処理を追加して対応しています。


- Remove dead links and take users to just the home page instead

guides/source/layout.html.erbの修正です。

Rails guideのヘッダーから、既に存在しないリンク先へのリンクを削除し、Ruby on Railsへのリンクだけにするよう修正しています。


[close #23084] Deprecated StrongParameters

actionpack/lib/action_controller/metal/strong_parameters.rbの修正です。

Make AC::Parameters not inherited from Hash · rails/rails@14a3bd5ActionController::ParametersがHashを継承しなくなったのですが、それにより使用出来なくなるメソッドが増えたり、挙動が変わったりするメソッドが発生していたりしていました。

元々の対応では何のエラーもでずメソッドを使えなくなってしまっていたのですが、それはアップグレードが大変だろう、という事で使用出来なくなってしまったメソッドがdeprecateメッセージを表示し、Rails 5.0では元々の通り使用出来るよう対応しています。


Add methods to StrongParameters

actionpack/lib/action_controller/metal/strong_parameters.rbの修正です。

:values, :has_value?, :value?@parametersdelegateするよう修正しています。


use bin/rails default instead of rake commands [ci skip]

rails guideの修正です。

rakeコマンドをを使用している箇所をまとめてrailsコマンドをを使用するよう修正しています。


Its ideal to set Vary: Accept-Encoding, irrespective of whether gzipped version exists or not. This is helpful for CDN's to later distinguish assets, based on previous, current copies and introduced gzip version if any.

actionpack/lib/action_dispatch/middleware/static.rbの修正です。

gzip済みのファイルがあるかどうかに関わらず、必ずVary: Accept-Encodingを送信するよう修正しています。

-      headers['Vary'] = 'Accept-Encoding' if gzip_path
+      headers['Vary'] = 'Accept-Encoding'

CDNでassetsの判別をするのに便利では、という事で修正されたようですが、PNGのようにAccept-Encodingによって振る舞いが変わらないファイルについてはVaryヘッダーを送信すべきでは無いだろう、という事で、後ほどrevertされています。


Link to docs instead of listing methods

actionpack/lib/action_controller/metal/strong_parameters.rbの修正です。

ActionController::ParametersがHashを継承しなくなった事によりdeprecateになったメソッドを使用した場合に表示されるエラーメッセージにメソッドの一覧を出力していたのを、API docへのリンクを出力するよう修正しています。


- Changed from bin/rake to bin/rails at more application places.

rails guideの修正です。

rakeコマンドをを使用している箇所をまとめてrailsコマンドをを使用するよう修正した対応で漏れていた箇所があったので、追加で対応しています。


[ci skip] update guide for Puma web server instead of Webrick

rails guideの修正です。

デフォルトのAPサーバがWEBrickからPumaに変更になったのに合わせて、各ガイドの説明も修正しています。


Add ModelSchema::type_for_attribute to the public API

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

ActiveRecord::ModelSchema::type_for_attributeメソッドがprivate APIだったのを、public APIに変更しています。

modelに関するtype metadata を取得するのに便利な為変更したようです。


Revert "Its ideal to set Vary: Accept-Encoding, irrespective of whether gzipped version exists or not. This is helpful for CDN's to later distinguish assets, based on previous, current copies and introduced gzip version if any."

gzip済みのファイルがあるかどうかに関わらず必ずVary: Accept-Encodingを送信するよう修正した対応をrevertしています。理由は先述。


Update CHANEGLOG for https://github.com/rails/rails/pull/20005 [ci skip]

activerecord/CHANGELOG.mdの修正です。

schemadefaultオプションに式を指定出来るよう対応した、Merge pull request #20005 from kamipo/default_expression_supportのentryについて、詳細な説明を記載するよう修正しています。


Merge pull request #22950 from maclover7/adapterize-storage-actioncable

Action Cableの修正です。

Action Cableのpubsubの連携部分がRedisを使用するよう固定になっていたのを、処理を切り出して、pubsubにPostgreSQLも指定出来るよう対応しています。


Pluralize counter_cache column name in example [ci skip]

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

counter cacheのexampleを記載している箇所で、カラム名が単数形になっていたのを複数形に修正しています。


html_safe is not supposed to be public API for AV. This change removes usage of html_safe in favour of raw() in AV helpers.

Action Viewの修正です。

Action Viewでhtml_safeメソッドを使用していた箇所を、まとめてrawメソッドを使用するよう修正しています。

html_safeはAction Viewのpublicメソッドでは無い為、代わりにAction Viewのpublicメソッドであるrawを使うようにしたようです。