なるようになるブログ

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

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

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

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


Merge pull request #11352 from xaviershay/dispatcher-api

ActionPackの修正です。

routing dispatcherがRouting::RouteSet::Dispatcher固定だったのを、任意のカスタムdispatcherが指定出来るよう修正しています。

ライブラリでデフォルトのroutingの挙動をいじりたい場合は等は便利そうかも。


Refactor route assertion methods in resources test

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

resourcesのテストで、routeのオプションをoptions変数に全てまとめ保持していたのを、route_optionsという別の変数に保持するよう修正しています。コードを見やすくする為のリファクタリングとの事です。


replace each with each_key when only the key is needed

actionpack/lib/action_dispatch/routing/route_set.rbactivesupport/lib/active_support/multibyte/unicode.rbの修正です。

keyのみが必要なイテレーション処理で、eachメソッドを使用していたのをeach_keyを使用するよう修正しています。

each_keyの方がちょっと早いとの事です。ベンチ結果。

Calculating -------------------------------------
                each    31.378k i/100ms
            each_key    33.790k i/100ms
-------------------------------------------------
                each    450.225k (± 7.0%) i/s -      2.259M
            each_key    494.459k (± 6.3%) i/s -      2.467M

Comparison:
            each_key:   494459.4 i/s
                each:   450225.1 i/s - 1.10x slower

[ci skip] Fix the AS::Callbacks terminator docs

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

define_callbacksメソッドのexampleで、第二引数の扱い方に誤りがあったのを修正しています。


[ci skip] Adding a note to Action Mailer Basics documentation that Google increased its

rails guideのAction Mailer Basicsの修正です。

Action Mailer Configuration for Gmailの項に、its security measuresへのリンク及び、安全性の低いアプリがgmailにアクセスするには別途設定が必要な旨説明を追加しています。


[ci skip] Give in-depth explanation of migrations vs. seeds.rb

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

Migrations and Seed Dataの項にmigrationsとseeds.rb、それぞれについてもう少し詳細な説明を追加しています。


Reference actual classes

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

middleware の指定に文字列を使用していた箇所をクラス名を指定するよう修正しています。

先日の、Using strings or symbols for middleware class names is deprecated. によりdeprecationメッセージが出るようになってしまった為、対応しています。


remove the setter from Scope

actionpack/lib/action_dispatch/routing/mapper.rbの修正です。

使用していないScope#[]=メソッドを削除しています。


whitespace

actionpack/lib/action_dispatch/routing/redirection.rbの修正です。

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


eliminate runtime conditional

actionpack/lib/action_dispatch/routing/mapper.rbの修正です。

Constraintsクラスのコンストラクタを第三引数をtrue/falseからProcクラスに変更し、引数の値によって実行する処理を分岐していたのを、引数に指定されたProcを実行するだけに修正しています。

ランタイムコンディションのチェックを削除するために、strategyパターンを使用するように修正したようです。


Remove defaults hash from Dispatcher

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

Dispatcherクラスからdefaults hashを削除しています。

Dispatcherクラスで必要なのはNameErrorが起きた際にraiseするかどうかの情報だけだったので、その情報のみ指定して渡すように修正しています。


eliminate assignment in conditional

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

Dispatcher#serveメソッドから不要な処理分岐を削除しています。


remove useless conditional

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

controllerメソッドから不要なparamsnilチェック処理を削除しています。

先にprepare_params!メソッドparamsが初期化されてない場合にexceptionがraiseするよう対応しているおり、controllerメソッドで使用する時点で初期化されてない事は無い為とのことです。


stop calling scope internally

actionpack/lib/action_dispatch/routing/mapper.rbの修正です。

scopeメソッドを直接呼び出していたのを、ラッパーメソッド経由(controller_scopepath_scope)でscopeの値取得するよう修正しています。

scopeメソッドで行っている処理を整理するためのようなのですが…。よくわからなかった…。


remove useless hash

actionpack/lib/action_dispatch/routing/mapper.rbの修正です。

resource_scopeメソッドの戻り値をHashを使わないよう修正しています。

Hashを使っていたものの、設定する値は一つしかなく、Hashである必要性が無いため修正したようです。