なるようになるブログ

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

rails commit log流し読み(2018/11/06)

2018/11/06分のコミットです。

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


Merge pull request #34131 from lsylvester/defend-against-unmarshable-exceptions

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

parallel testsでExceptionが発生した場合、かつ、Exceptionがmarshal出来ない場合(Procを使用している場合等)に、エラーをDRb::DRbRemoteErrorでラップしてデータを受け渡し出来るよう修正しています。


Fix inspect with non-primary key id attribute

activerecord/lib/active_record/attribute_methods.rbactiverecord/lib/active_record/core.rbの修正です。

primary keyでないid attributeを使用している場合に、inspectメソッドでそのid attributeが表示されないバグがあったのを修正しています。

rails commit log流し読み(2018/11/04)

2018/11/04分のコミットです。

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


Keep new line after the last dependency

railties/lib/rails/generators/rails/app/templates/package.json.ttの修正です。

rails newで生成するpackage.jsonで、dependenciesの項の最後に改行が無かったのを、改行を入れるよう修正しています。yarnを実行した際のフォーマットと合わせる為。

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

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

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


Merge pull request #34177 from rmacklin/convert-actioncable-to-es2015

Action Cableの修正です。

Action CableのソースコードCoffeeScriptで書かれていたのを、CoffeeScriptをやめてES2015を使用するよう修正しています。

circular dependencyに関するwarnings出ている状態で、まだ対応は続いている状態です。続きはこちら


Checking boundable not only IN clause but also NOT IN clause

Active Recordの修正です。

boundableかどうかのチェックをIN句でだけ行っていたのを、NOT INについても行うよう修正しています。


Don't pass unused connection to FixtureSet.new

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

ActiveRecord::FixtureSet.newの引数から使用していないconnection引数を削除しています。


Don't pass useless table_name to ModelMetadata.new

activerecord/lib/active_record/fixture_set/model_metadata.rbactiverecord/lib/active_record/fixture_set/table_rows.rbactiverecord/lib/active_record/fixtures.rbの修正です。

ActiveRecord::FixtureSet::ModelMetadata.newの引数から不要なtable_name引数を削除しています。

table_namemodel_class引数が指定された場合のみ使用されているのですが、model_classが渡された場合、table_namemodel_classから取得出来る(model_class.table_name)為。


Move resolve_sti_reflections which is table row related code into TableRow

activerecord/lib/active_record/fixture_set/table_row.rbactiverecord/lib/active_record/fixture_set/table_rows.rbの修正です。

resolve_sti_reflectionsメソッドをActiveRecord::FixtureSet::TableRowsからActiveRecord::FixtureSet::TableRowに移動しています。rowsではなく、rowに関する処理の為。

rails commit log流し読み(2018/11/02)

2018/11/02分のコミットです。

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

activesupport/CHANGELOG.md


Make #to_options an alias for #symbolize_keys

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

HashWithIndifferentAccessに、symbolize_keysのaliasとしてto_optionsメソッドを定義しています。

Rails 5.1まではHashWithIndifferentAccess#to_optionssymbolize_keysのaliasとして動作していたのですが、5.2でHashWithIndifferentAccesssymbolize_keysメソッドを独自に定義した影響で、同じ振る舞いになっていませんでした。

で、5.1までの挙動と合わせる為、symbolize_keysのaliasとして明示的にto_optionsメソッドを定義するようにしています。

rails commit log流し読み(2018/11/01)

2018/11/01分のコミットです。

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


Make i18n locale setting docs use around_action

rails guideのRails Internationalization (I18n) APIの修正です。

localeをcontrollerで変更するexampleがbefore_actionI18n.locale=を使うexampleになっていたのを、around_action + I18n.with_localeを使うexampleに修正しています。

元々はI18n.locale=はスレッドセーフではないので、と理由で修正が始まったのですが、それは誤り(I18n.locale=スレッドセーフ)でした。ただ、それを抜きにしても、処理が終わったら元のlocaleに戻した方が良いのでは、という意見があり、around_action + I18n.with_localeを使う形(actionの処理後に元のlocaleに戻る形)に修正しています。


Updating sample code on ActiveRecord#before_destroy callback [ci skip]

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

ActiveRecord::Callbacks moduleのdoc内、before_destroyのexampleでdelete_allの引数の指定の仕方が誤っていたのを修正しています。

rails commit log流し読み(2018/10/31)

2018/10/31分のコミットです。

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

activerecord/CHANGELOG.md

activejob/CHANGELOG.md


Merge pull request #34314 from bf4/patch-2

actionpack/lib/action_controller/api.rbのdocの修正です。

ActionController::API classのdocに、API Controllerはcookies, sessionsが使用出来る旨説明があったのですが、実際は使用出来ないので該当部分を削除しています。


update_columns raises if the column is unknown

activemodel/lib/active_model/attribute.rbactiverecord/lib/active_record/persistence.rbの修正です。

update_columnsに存在しないカラムを指定した場合に、ActiveModel::MissingAttributeErrorをraiseするよう修正しています。

元々はRubyレベルではチェック出来ておらず、存在しないカラムを指定した場合、query実行時にエラー(no such columnでエラー)になっていました。

が、これだとignored_columnsに指定しているカラムも更新出来てしまう為、Rubyレベルで正しくチェックするよう修正しています。これにより、元々update_columnsignored_columnsに指定していたカラムも更新出来てしまっていたのが、更新出来なくなっています。


Fix failing test

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

先のupdate_columnsの修正で、updateクエリ実行前にattributeの割当を行うようになったのですが、それだと更新時に使用するidも変わってしまう可能性がある為、元のidを処理前に保持して、更新処理は同じidが使用されるよう修正しています。


Merge pull request #33972 from bogdanvlviv/follow-up-33897

activejob/lib/active_job/logging.rbの修正です。

enqueue_retry.active_jobで表示するエラーメッセージで、original exceptionが取得出来ない場合、original exceptionに関するメッセージを表示しないよう修正しています。


Update authorization.rb

actioncable/lib/action_cable/connection/authorization.rbのdocの修正です。

Authorization#reject_unauthorized_connectionメソッドのdocから不要なエスケープを削除しています。


Fix example for database-specific locking clause

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

ActiveRecord::Locking::Pessimistic moduleのdoc内、lockメソッドのexampleにDB固有のロック処理(FOR UPDATE NOWAIT)を使用するよう修正しています。

直前の説明でlockにはDB固有のロック処理を使用出来る旨説明しており、その説明と合わせる為。


Restore HWIA support to AJ::Arguments.deserialize

activejob/lib/active_job/arguments.rbの修正です。

ActiveJob::Arguments.deserializeメソッドにkeyがSymbolになっているHashWithIndifferentAccessを指定した場合に、keyが全てStringになってしまっていたのを、元の状態(keyがSymbolの場合はSymbol)を維持するよう修正しています。


Fix "warning: shadowing outer local variable - role"

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

warning: shadowing outer local variableのwarningが出ていたのを修正しています。