なるようになるブログ

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

rails commit log流し読み(2015/10/15)

2015/10/15分のコミットです。

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

activerecord/CHANGELOG.md


fix RDoc markup in ConnectionPool. [ci skip]

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

メソッドのdoc内の等幅フォントの表示、に""を使用していたのを+を使用するよう修正、途中スペースが入る文に+を使用していたのを`を使用するようまとめて修正しています。


applies new doc guidelines to Active Record.

Active Recordのdocの修正です。

各doc内の他のメソッドについて言及している箇所で、その言及しているメソッドにリンクをはるようまとめて修正しています。


migrations Class methods have nodoc, fix it for API [ci skip]

railties/lib/rails/generators/migration.rbのdocの修正です。

Migration::ClassMethods module配下の各メソッド:nodoc:を設定していたのを、module自体に:nodoc:を設定するよう修正しています。


freeze the column name to drop string allocations in dirty checks

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

ActiveRecord::ConnectionAdapters::Column#initializeメソッドnamefreezeするよう修正しています。

dirty checkで不要なStringのインスタンスを生成しないようにする為に、対応したとの事です。


Add deprecation warning to ActiveRecord::Relation#update

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

ActiveRecord::Relation#updateの引数に、idではなくActiveRecord::Baseインスタンスを渡した場合に、deprecation warningを表示するよう修正しています。

user = User.first
User.update(user, nickname: "Tenderlove")
# =>  DEPRECATION WARNING: You are passing an instance of ActiveRecord::Base to `update`. Please pass the id of the object by calling `.id`.

元々は、updateの内部でfindメソッドを呼び出している為に、findメソッドに関する`deprecation warningが出てしまっていました。

user = User.first
User.update(user, nickname: "Tenderlove")
# => DEPRECATION WARNING: You are passing an instance of ActiveRecord::Base to `find`. Please pass the id of the object by calling `.id`.

ただ、updateメソッドを使用しているのに、findメソッドに関するメッセージが表示されるのはわかりずらいだろう、という事で、updateでdeprecation warningを表示するよう対応しています。