なるようになるブログ

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

rails commit log流し読み(2017/03/04)

2017/03/04分のコミットです。

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

activesupport/CHANGELOG.md

activerecord/CHANGELOG.md


Remove node parameter to join_constraints

activerecord/lib/active_record/associations/join_dependency.rbactiverecord/lib/active_record/associations/join_dependency/join_association.rbの修正です。

JoinAssociation#join_constraintsメソッドから使用されていないnode引数を削除しています。


Move join scopes on to the reflection object

activerecord/lib/active_record/associations/join_dependency/join_association.rbactiverecord/lib/active_record/reflection.rbの修正です。

JoinAssociation#join_constraintsメソッド内でおこなっていたscopeのjoin処理を、Reflectionクラス(AbstractReflectionPolymorphicReflection等)にjoin処理用のメソッド(#join_scopes)を追加し、そちらで処理を行うよう修正しています。


ask reflection for klass join reflection

activerecord/lib/active_record/associations/join_dependency/join_association.rbactiverecord/lib/active_record/reflection.rbの修正です。

JoinAssociation#join_constraintsメソッド内でおこなっていたklass scopeのjoin処理を、Reflectionクラスjoin処理用のメソッド(#klass_join_scope)を追加し、そちらで処理を行うよう修正しています。


Remove unnecessary system test code

railties/lib/rails/test_help.rbの修正です。

不要なaction_dispatch/system_test_caseのrequire、及び、ActionDispatch::SystemTestCasebefore_setupメソッドを削除しています。

実際にActionDispatch::SystemTestCaseを使用される際にクラスはautoloadされる、かつ、before_setupActionDispatch::SystemTestCaseの親クラスであるActionDispatch::IntegrationTestで同じ内容を定義済みであり、SystemTestCaseに別途定義する必要は無いため、削除したとの事です。


Fix spelling

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

includesincludeにタイポしている箇所があったのを修正しています。


Add ActiveSupport::TimeZone.iso8601 parsing method

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

ISO 8601形式の文字列をパースする為のiso8601メソッドをActiveSupport::TimeZoneに追加しています。

Time.zone = "Hawaii"
Time.zone.iso8601("1999-12-31T14:00:00Z")
# => Fri, 31 Dec 1999 04:00:00 HST -10:00

Time.zone.iso8601("1999-12-31")
# => Fri, 31 Dec 1999 00:00:00 HST -10:00

Add ActiveSupport::TimeZone.rfc3339 parsing method

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

RFC 3339形式の文字列をパースする為のrfc3339メソッドをActiveSupport::TimeZoneに追加しています。

Time.zone = "Hawaii"
Time.zone.rfc3339("1999-12-31T14:00:00Z")
# => Fri, 31 Dec 1999 04:00:00 HST -10:00

Add Time.rfc3339 parsing method

activesupport/lib/active_support/core_ext/time/calculations.rbの修正です。

RFC 3339形式の文字列をパースする為のrfc3339メソッドをこちらはTimeクラスに追加しています。

Time.rfc3339('1999-12-31T14:00:00-10:00')
# => 1999-12-31 14:00:00 -1000

戻り値は当然Timeクラスのインスタンスです。


Add rfc3339 aliases to xmlschema

activesupport/lib/active_support/core_ext/time/conversions.rbactivesupport/lib/active_support/time_with_zone.rbの修正です。

先に追加されたActiveSupport::TimeZone、及びTimerfc3339メソッドのaliasとして、xmlschemaメソッドを追加しています。


refactor so there is only one JoinKeys factory method

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

JoinKeysクラスを生成する為のfactoryメソッドが子クラス(BelongsToReflection)で別途定義されてしまっていたのを、親で定義されているfactoryメソッドを使えるようリファクタリングしています。


join_keys no longer needs a class passed to it

Active Recordの修正です。

Reflectionのjoin_keysメソッドにassociation classを渡していたのを、渡さないで済むようリファクタリングしています。join_keysメソッドでJoinKeysを生成する際は、それぞれのclassで保持している情報をしか使用しておらず、そもそも渡す必要は無かった為、余計な依存関係を無くすようにする為に、削除したようです。


remove unused parameters

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

last_chain_scopenext_chain_scopeadd_constraints各メソッドから使用されていないassociation_klass引数を削除しています。


Merge pull request #28265 from 0oneo/association_guide

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

The has_one Associationの項にあるmigrationでuniqueオプションの指定の仕方に誤りがあったのを修正しています。


A private method can’t be called with self.

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

filename_with_extensionsメソッドでデフォルト引数を指定する際に、privateメソッドをself.付きで呼ぼうとしてエラーになっていた為、self.を削除しています。


Escapes and edits to configuring guide [ci skip] (#28280)

rails guideのConfiguring Rails Applicationsの修正です。

各項目のフォーマット、グラマーの修正をまとめて行っています。


Don’t share options with a reference type column

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

polymorphic reference columnをmigrationで作成する際に、指定されたオプションをid column、type columnに両方に適応したのを、id columnにだけ適応するよう修正しています。

add_reference :posts, :taggable, type: :integer, limit: 2, polymorphic: true

上記のような migrationでpolymorphic columを作成した場合い、limit: 2オプションをがtaggable_typeにも適応されていました。しかし、idとtypeは型が違い、オプションをそのまま適応するのは予想外の振る舞いになる事が多い為、typeにはオプションを適応しないよう修正したようです。


Silence puma startup messages in system test

actionpack/lib/action_dispatch/system_testing/server.rbの修正です。

system testでpumaを起動する際に、pumaのスタートアップメッセージをstdoutに表示しないよう修正しています。


Fx system test example [ci skip]

rails guideのA Guide to Testing Rails Applicationsの修正です。

system_testをgenerateするexampleで、system test nameに不要なtestがあったのを削除、及び、生成されるファイルのexampleが実際生成されるファイルと異なっていたのを修正しています。


[ci skip] Add CHANGELOG entry for #28282

activerecord/CHANGELOG.mdの修正です。

先の polymorphic reference columnの対応について、CHANGELOGにエントリーを追加しています。


Fix rake db:migrate:status with subdirectories

activerecord/lib/active_record/migration.rbactiverecord/lib/active_record/railties/databases.rakeの修正です。

db:migrate:status タスクが、サブディレクトリにmigrationファイルがある場合にMigration Nameを正しく表示出来ないバグがあったのを修正しています。


Add a changelog entry for #28284 [ci skip]

actionpack/CHANGELOG.mdの修正です。

system testでpumaを起動する際にpumaのスタートアップメッセージをstdoutに表示しないよう修正した対応について、CHANGELOGにエントリーを追加しています。


Fix a wrong pull request reference [ci skip]

actionpack/CHANGELOG.mdの修正です。

先のエントリーを追加した際に、参照するPRのIDに誤りがあったのを修正しています。