なるようになるブログ

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

rails commit log流し読み(2015/08/26)

2015/08/26分のコミットです。

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

activejob/CHANGELOG.md


Merge pull request #21345 from aditya-kapoor/trim-ap

actionpack/test/abstract_unit.rbactionpack/test/controller/resources_test.rbの修正です。

resourcesのテストで、不要なテスト用クラスを削除しています。


Make assert_index private

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

assert_indexメソッドのアクセス制御をprotectedからprivateに修正しています。

protectedになっているものの、別にどのレシーバーからも呼び出されておらず、おそらく昔のprotectedの設定が残ったままなだけなのでは、という事でprivateに変更したとの事です。


Remove unused requires

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

使用していないクラスのrequireを削除しています。


Removed mocha from Active Record Part 1

Active Recordのテストの修正です。

mock処理にmochaを使用していたのを、rails内部のヘルパーメソッドを使用するよう修正しています。Part 1なので、まだ続きます。


Remove more unused block arguments

actionpack/test/controller/resources_test.rbactionpack/test/dispatch/live_response_test.rbの修正です。

使用していないブロック変数を削除しています。


Merge pull request #21324 from Gaurav2728/gaurav-xml_serialization_doc_fix

activemodel/lib/active_model/serialization.rbのdocの修正です。

シリアライズ処理について説明している箇所で、デフォルトでJSONXMLのSerialization classがある旨説明されていたのですが、 Remove XML Serialization from core. · rails/rails@f7ebdb1XMLのSerialization classはrails本体から削除されてしまったので、その旨説明を修正しています。


Initial implementation of ActiveJob AsyncAdapter.

Active Jobの修正です。

非同期にジョブ処理を行うAsyncJobクラス、及びそのadapterを新規に追加しています。 active_job.queue_adapter:asyncを指定する事で使用可能です。

処理的にはconcurrent-rubyのthread poolを使ってjobのキューイングを行っています。

ちなみにこのadapterは、実際のキューイング処理で使う用、というよりは、テストの為に使う用、という事のようです。実際の本番環境ではもっとちゃんとしたバックエンドシステムを使用する事が推奨されています。


Merge pull request #21281 from ronakjangir47/added_docs

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

TimeWithZoneクラスの各メソッドに、docを追加しています。


Merge pull request #21368 from rodzyn/remove_mocha

ActionPackのテストの修正です。

mock処理にminitestのmockクラスを使用していたのを、rails内部のヘルパーメソッドを使用するよう修正しています。Part 2。minitest/mockのrequireが削除されたので、これで対応完了のようです。


always return a controller class from the controller_class method

actionpack/lib/action_dispatch/http/request.rbactionpack/lib/action_dispatch/routing/route_set.rbの修正です。

Request#controller_classメソッドが、必ずcontroller classを返すよう修正しています。

元々は、controllerが見つからなかった場合、呼び出し元のRouteSet#serveメソッドで404を返すようにしていたのですが、 Request#controller_classメソッドの方で、controllerが見つからなかった場合に404を返すエラー用のcontroller classを返すようにし、呼び出し元でエラー時の処理を意識しないで良いようにしています。


always dispatch to controllers the same way

ActionPackの修正です。

controllerのdispatch処理を行う場合、同じ処理(StaticDispatcherクラス経由)で処理を行うよう処理を整理しています。


adding a direct dispatch method to controller classes

ActionPackの修正です。

controllerのdispatchを行う際、action経由ではなく、controllerから直接dispatch行えるよう、AcitonController::Metalクラスに、dispatchメソッドを追加しています。


move response allocation to the class level

actionpack/lib/action_controller/metal/live.rbactionpack/lib/action_controller/metal/rack_delegation.rbの修正です。

Live::ResponseActionDispatch::Responseクラスで行っているresponse objectの生成処理を、各クラスのクラスメソッドに移動しています。

response objectの生成処理を行うのに上記クラスのインスタンスは不要な為、移動したとの事です。


rack SPEC doesn't allow first on the body

actionpack/test/controller/new_base/bare_metal_test.rbの修正です。

headメソッドのテストで、bodyがcallした結果の先頭にある事を想定したテストが書いてあったのですが、rakcの使用上、bodyが結果の先頭に格納される事は無いため、適切な箇所から値を取得するよう修正しています。


Fix another rack SPEC violation

actionpack/test/controller/new_base/middleware_test.rbの修正です。

rackをcallした際の、bodyの値のとり方がおかしい箇所があったのを修正しています。


:snip: whitespace

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

不要な空白を削除しています。


provide a request and response to all controllers

Action Packの修正です。

controllerが応答処理を行う際、必ずrequest、responseオブジェクトのデータを保持するよう修正しています。

元々は、条件によりrequest、responseオブジェクトを保持していたりしていなかったり、という状態で、値を見る際にresponseオブジェクトなのかrackのresponseなのかをチェックする必要があったのですが、そのチェックをしなくて済むよう、修正したようです。


Fixed to_datetime docs [ci skip]

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

to_datetimeメソッドのdocに、UTC timezoneのDateTimeインスタンスを返す、と記載してあったのですが、 実際は使用しているtimezoneのUTCとのoffsetを返す、という挙動の為、適切にdocを修正しています。


Fix the unused variable warning

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

migrateをrevertするテストで、使用していない変数を削除しています。


Removed duplicate requiring minitest/mock as it is already required in method_call_assertions

各テストファイルで、不要なminitest/mockのrequireを削除しています。