なるようになるブログ

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

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

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

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

activejob/CHANGELOG.md


[ci skip] Removed link to reSRC.io - site closed

rails guideのGetting Started with Railsの修正です。

閉鎖してしまったresrc.ioへのリンクを削除しています。


make constraints more functional

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

constraintsメソッド@conditions変数を直接操作していたのを、必要な値はメソッドの戻り値に含むようにし、メソッドの中でインスタンス変数の操作は行わないよう修正しています。


make split_constraints more functional.

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

split_constraintsメソッドインスタンス変数を直接操作していたのを、必要な値はメソッドの戻り値に含むようにし、メソッドの中でインスタンス変数の操作は行わないよう修正しています。


switch === to case / when

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

if/else + ===で処理分岐していたのを、case/whenを使用するよう修正しています。


remove side effects from normalize_format

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

normalize_formatメソッドインスタンス変数を直接操作していたのを、必要な値はメソッドの戻り値に含むようにし、メソッドの中でインスタンス変数の操作は行わないよう修正しています。


simplify split_constraints

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

split_constraintsメソッド内で行っていたverify_regexp_requirementメソッドの呼び出し処理を削除し、Mapperクラスのコンストラクタ内でrequirementのチェック処理行うよう修正しています。


pull via extraction up

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

Mapperクラスのコンストラクタで行っていたviaオプションの取得処理を、もっと早い段階(add_routeメソッド)で行うよう修正しています。


add a test for adding "via" using scope

actionpack/test/dispatch/mapper_test.rbの修正です。

Mapper.scopeメソッドに、viaオプションを指定した場合のテストを追加しています。


fix via handling when it's in a scope

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

scopeからのviaオプションの値の取得処理を誤って削除してしまったのを、戻しています。


pull via all the way out of add_route

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

add_routeメソッドで行っていたviaオプションにallが指定された場合の処理を、もっと早い段階(buildメソッド)で行うよう修正しています。


pull via checking up to via extraction

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

Match#add_request_methodメソッド内で行っていた、viaオプションのチェック処理を、クラスメソッド(check_viaメソッド)に切り出しています。


add a method to Scope for getting mapping options

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

Scopeクラスにmapping optionsを取得する為のmapping_optionを追加しています。

元々は[]経由でoptions hashを直接参照していたのですが、options hashはread onlyな為、readerメソッドがあれば良いだろう、という事でメソッドが追加されたようです。


add a regression test for adding arbitrary keys to scope

actionpack/test/dispatch/mapper_test.rbの修正です。

Mapper#scopeメソッドの引数に、任意のkeyのhashを指定した場合のテストを追加しています。今後のリファクタリングようですかねえ。


store :only and :except outside the normal options hash

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

:only:exceptオプションの値を、options hashとは別の変数(:action_options)に格納するよう修正しています。

マージ処理が他の変数とはやり方が異なる為、別で管理するようにしたようです。


don't mutate the caller's variables

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

Resourceクラスからoptions変数を削除し、必要な値は別途個別に変数で保持するよう修正しています。


store via outside the options hash

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

options hashでviaオプションを保持するのをやめて、Scopeクラスで値保持するよう修正しています。


Avoid unnecessary MatchData objects

actionpack/lib/action_dispatch/http/filter_redirect.rbの修正です。

FilterRedirect#location_filter_match?メソッドで、locationのマッチ処理に、matchメソッドを使用していたのを、=~を使用するよう修正しています。

不要なMatchData objectsが生成されないようにする為に、修正したようです。


Simplify code

actionpack/lib/action_dispatch/http/filter_redirect.rbの修正です。

filtered_locationメソッドから不要なfilterの空チェック処理を削除しています。

呼び出し元でArray#any?で存在チェックをしており、filterが空の事は無い為とのことです。


add a regression test for scoped format params

actionpack/test/dispatch/mapper_test.rbの修正です。

Mapper#scopeメソッドに、formatオプションを指定した場合のテストを追加しています。


pull formatted up the stack

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

Mapper.buildで行っていたformatオプションの取得処理を、もっと早い段階(matchメソッド)で行うよう修正しています。

options hashの値を変化させる回数を減らす為との事。


pull format out of the options hash

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

options hashでformatオプションを保持するのをやめて、Scopeクラスで値保持するよう修正しています。


remove unnecessary deletes

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

Mapping.buildメソッドから、不要なoptions hashからの値の除去処理を削除しています。


remove side effects in normalize_defaults

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

Mapper#normalize_defaults!メソッド内で、インスタンス変数の@defaultsの値の書き換えを行っていたのを、必要な値はメソッドの戻り値で返すよう修正しています。


Skip statement cache on through association reader

ActiveRecordのassociationの修正です。

through association + association先のmodelでdefault_scopeを使用している場合に、statement cacheを使用しないよう修正しています。

cacheを使用してしまい、default scopeの処理が正しく呼ばれない問題があった為、使用しないよう修正したようです。Rails 4.2系からのリグレッションのようです。


remove the add_request_method method

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

Mapperクラスからadd_request_methodメソッドを削除しています。行っていた処理は同じ内容をそのままコンストラクタに記載しています。

add_request_methodメソッドは引数に指定したconditions変数を直接書き換えてしまっているのが良くない、かつ、処理的にも短い(2行)ので、削除したとの事です。


Merge pull request #21217 from myrridin/myrridin-documentation-updates

activesupport/lib/active_support/core_ext/string/inflections.rbactivesupport/lib/active_support/inflector/methods.rbのdocの修正です。

String#classifyString#tableizeメソッドのexampleを使用する値を、より一般的なフレーズの単語を使用するよう修正しています。

-  #   'egg_and_ham'.tableize     # => "egg_and_hams"
+  #   'ham_and_egg'.tableize     # => "ham_and_eggs"

-  #   'egg_and_hams'.classify # => "EggAndHam"
+  #   'ham_and_eggs'.classify # => "HamAndEgg"

正直、どっちでも良いのでは、という気もしますが…。


Assert that the :prefix option of number_to_human_size is deprecated

activesupport/test/core_ext/numeric_ext_test.rbの修正です。

deprecatedになったnumber_to_human_sizeメソッドprefixオプションを使用しているテストを、assert_deprecatedメソッドで囲むよう修正しています。


Merge pull request #21021 from sgrif/sg-no-routes-comment

railties/lib/rails/generators/rails/app/templates/config/routes.rbの修正です。

デフォルトで生成されるroutes.rbから、大量にあったexampleのコードを削除し、代わりにrails guideへのリンクを追加しています。

# routes.rb
Rails.application.routes.draw do
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end

Railsに慣れている人は使わないし、Railsを始める人にとっても有益な情報では無いだろう、という事で削除に至ったようです。詳細はPR参照。


Added helper methods to stub any instance

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

生成されるインスタンスに対してstubを定義するためのヘルパーメソッド(stub_any_instance)を追加しています。


use assert_not instead of refute as mentioned in our guides.

コンポーネントのテストの修正です。

テストの中でrefute_xxxメソッドを使用していた箇所を、assert_not_xxxを使用するよう修正しています。

railsのテストでは、assert_not_xxxの方を使うよう推奨している為、修正したようです。

ちなみに、 Contributing to Ruby on Rails — Ruby on Rails Guides で、Use assert_not methods instead of refuteと明言されています。


implement provider_job_id for queue_classic.

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

queue_classic adapterでも、provider_job_idを取得出来るよう修正しています。

QueueClassic側で、job idを返すよう対応されたので、ActiveJobも合わせて対応したようです。


[ci skip] Clarified asset pipeline guide

rails guideのThe Asset Pipelineの修正です。

CSS and Sassの項、sass-rails gemが提供しているヘルパーメソッドについて説明している箇所の、言い回しを修正しています。


[ci skip] How to pass arguments to ActiveJob Jobs

rails guidenのActive Job Basicsの修正です。

Jobクラスへの引数の設定方法についての説明を追加しています。