なるようになるブログ

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

rails commit log流し読み(2015/03/18)

2015/03/18分のコミットです。

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

activerecord/CHANGELOG.md


Add config.active_record.dump_schemas.

ActiveRecordの修正です。

db:structure:dump タスク実行時に参照する schema pathを指定する為のconfig.active_record.dump_schemasを追加しています。

config.active_record.dump_schemas:allを設定した場合、schema_search_pathの値に関わらず、全てのschema情報を出力します。

元々は、schema_search_pathが設定されていた場合、設定されているschemaの情報のみ出力するように、pg_dumpコマンドのschemaオプションを指定していました。

ただ、schemaオプションを指定した場合、pg_dumpは選択したスキーマ内のオブジェクトが依存する可能性があるその他のデータベースオブジェクトのダンプを行わない為、 出力されたダンプファイルを使用しても、初期状態のデータベースに正常にリストアできるかどうかの保証がありませんでした(実際復元出来ていなかった)。

その為、schema_search_pathの値に関わらず、全てのスキーマを出力出来るようにする為に、新たなconfigを追加したとの事です。

詳細は、issue(No extensions in structure.sql when schema_search_path is defined · Issue #17157 · rails/rails)、またはPostgreSQLのマニュアル(pg_dump)ご参照で。


Merge pull request #19347 from rywall/dump-schemas-config


Merge pull request #19296 from Wildebeest/fix-race-ttl

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

Cache::Store#fetchメソッドの引数のrace_condition_ttlオプションに0 又は nilが設定されていた場合に、race conditionに関する処理を行わないよう修正しています。


Merge pull request #19351 from reist/xml_document

actionpack/lib/action_dispatch/testing/assertions.rbの修正です。

Assertions#html_documentメソッドで、responseがXMLどうかのチェックでを正規表現で行っていたのをMime::XMLと比較するよう修正しています。

-      @html_document ||= if @response.content_type =~ /xml$/
+      @html_document ||= if @response.content_type === Mime::XML

Fix wrong model name for 'Articles', It should be 'Article' [ci skip]

rails guideのActive Record Basicsの修正です。

Schema Conventionsの項でcache counterについて説明している箇所で、exampleに使用しているmodel名をタイポ(Articles -> Article)していたのを修正しています。


Fix NullRelation.update_all and .exists? signature to match the same on Relation

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

NullRelation.update_allNullRelation.exists?メソッドの引数をRelation#update_allRelation#exists?と同じにするよう修正しています。


Update old link in pessimistic.rb comments

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

row lockについての参考URLをhttp://dev.mysql.com/doc/refman/5.1/en/innodb-locking-reads.html から、最新のバージョンの http://dev.mysql.com/doc/refman/5.6/en/innodb-locking-reads.htmlの修正です。


- Make example code consistent for better understanding. [ci skip]

rails guideのActive Record Basicsの修正です。

Overriding the Naming Conventionsの項のexampleで使用するテーブル名・クラス名を項全体で統一するよう修正しています。


Merge pull request #19348 from Empact/null-scope

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

レコード保存時に外部キーが使用出来る場合、CollectionAssociation#reader のキャッシュを再利用するよう修正しています。


Remove additional handling of boolean attributes on button to helper

actionview/lib/action_view/helpers/url_helper.rbの修正です。

convert_boolean_attributes!メソッドの削除、及びbutton_toメソッドからconvert_boolean_attributes!の呼び出しを削除しています。

convert_boolean_attributes!メソッドは名前の通りboolean属性の変換処理を行う為のメソッドなのですが、現状button_toメソッドtag/content_tagメソッドに依存しており、 tag/content_tagメソッドの方でboolean属性の変換処理を行っている為、こちらのメソッドは削除しています。


Merge pull request #19240 from yui-knk/refactor/guide_rb

guides/rails_guides.rbの修正です。

redcarpetnokogiriをrequire出来るかどうかのチェック処理を削除しています。

rails/Gemfileの方でredcarpetnokogiriをinstallするよう指定しており、チェックする必要は無い為削除したとの事です。


Add clear_association_scope_cache method

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

AssociationReflectionThroughReflectionクラスにReflectionのキャッシュを削除する為のclear_association_scope_cacheメソッドを追加しています。


Improve test for leaky scope chain

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

polymorphic associationのscopがleakしてないか確認する為のテストで、capture_sqlメソッドを使用し、生成されたSQLを比較するよう修正しています。より正確にleakが無い事の確認を行う為の改善との事です。