なるようになるブログ

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

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

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

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

railties/CHANGELOG.md


no more class methods for JoinDependency [ci skip]

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

AliasTrackerクラスのdocに記載されている追跡対象のクラス名に誤りがあったのを修正しています。


Inline Attribute#original_value

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

Attribute#original_valueメソッドを削除し、メソッドで行っていた処理はインラインで行うよう修正しています。


Separate dup from deep_dup in the attributes hash

Active Recordの修正です。

AttributeSet#deep_dupメソッド及びLazyAttributeHash#deep_dupメソッドを追加し、attributes hashの複製処理で、そちらのメソッドを使用するよう修正しています。

Object#deep_dupだとobject全体が複製されてしまうのですが、AttributeSet#deep_dupではattributesのみ複製するようにしています。性能改善の一環のようです。


remove useless method

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

使用していないhandle_conditional_get!メソッドを削除しています。


Update docs for formatted_offset

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

各クラスのformatted_offsetメソッドのdocに+HH:MMのフォーマットで値を返す、という説明が記載されていたのですが、実際は異なるフォーマットで値が返す事もあったので、その旨説明を修正しています。


Fix names of test cases

actionview/test/template/form_tag_helper_test.rbの修正です。

submit_tagメソッドに関する各テストのテスト名を、より適切な名前に変更しています。


Remove TestRouter#add_routes

actionpack/test/journey/router_test.rbの修正です。

使用していないTestRouter#add_routesメソッドを削除しています。

use the mapper to build the routing table でrouting tableを作成するのにmapper objectを使用するようになった為、不要になっています。


Merge pull request #21661 from akshay-vishnoi/submit_tag_tests

actionview/lib/action_view/helpers/form_tag_helper.rbの修正です。

submit_tagメソッドに意図的にdata-disable-withオプションを指定して場合に、生成されるHTMLにdata-disable-wit属性が2回生成されてしまうバグがあったのを修正しています。

make disable_with default in submit_tagdisable_withタグがデフォルトで生成されるようになったのですが、その際の対応漏れで発生してしまったようです。


Merge pull request #21430 from kaspth/test-runner-fail-fast

railties/lib/rails/test_unit/minitest_plugin.rbrailties/lib/rails/test_unit/reporter.rbの修正です。

rails test runnerに、fail fastオプション及び、defer outputオプションを追加しています。

# ./bin/rails t --help
Rails options:
    -e, --environment ENV            Run tests in the ENV environment
    -b, --backtrace                  Show the complete backtrace
    -d, --defer-output               Output test failures and errors after the test run
    -f, --fail-fast                  Abort test run on first failure

fail fastオプションは、指定した場合、テストが最初に失敗した時点でテストを終了します。

# $ ./bin/rails t -f
# Running:

.......F

failure test1

bin/rails test test/models/order_test.rb:4

Interrupted. Exiting...


Finished in 0.115011s, 69.5588 runs/s, 113.0331 assertions/s.

  1) Failure:
OrderTest#test_the_truth [/home/yaginuma/program/rails/master/test/models/order_test.rb:5]:
failure test1

defer outputオプションは、テスト失敗時に、直ぐ失敗した内容を表示します(テスト自体は継続して実行されます)。デフォルトでtrueになっているようです。

# $ ./bin/rails t
...............F

failure test1

bin/rails test test/models/order_test.rb:4

........F

the truth!!!

bin/rails test test/models/user_test.rb:4



Finished in 0.324976s, 76.9287 runs/s, 132.3173 assertions/s.

  1) Failure:
OrderTest#test_the_truth [/home/yaginuma/program/rails/master/test/models/order_test.rb:5]:
failure test1


  2) Failure:
UserTest#test_the_truth [/home/yaginuma/program/rails/master/test/models/user_test.rb:5]:
the truth!!!

-dオプションを指定した場合は、以下のように、テスト終了時にのみ失敗した内容が表示されます。

# $ ./bin/rails t -d
# Running:

..............F........F

Finished in 0.316907s, 78.8876 runs/s, 135.6867 assertions/s.

  1) Failure:
UserTest#test_the_truth [/home/yaginuma/program/rails/master/test/models/user_test.rb:5]:
the truth!!!


  2) Failure:
OrderTest#test_the_truth [/home/yaginuma/program/rails/master/test/models/order_test.rb:5]:
failure test1

25 runs, 43 assertions, 2 failures, 0 errors, 0 skips

Failed tests:

bin/rails test test/models/user_test.rb:4
bin/rails test test/models/order_test.rb:4

Improve readability of docs by using code tag [ci skip]

docの修正です。

各doc内のArgumentError等幅フォントで表示されるよう+で囲むよう修正しています。