2018/03/05分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Fix actionview tests execution
actionview/test/actionpack/controller/render_test.rb
の修正です。
テスト内で使用しているcontrollerの親クラスをActionController::Base
に統一しています。
元々はテスト内で定義していたApplicationController
を親クラスにしていました(ApplicationController
の親クラスがActionController::Base
になっていた)。
が、他のテスト内で定義されているcontrollerではActionController::Base
が親になっており、合わせないとbin/test
でテストを実行した際にTypeError(superclass mismatch for class TestController (TypeError)
)になってしまう為、合わせるよう修正しています。
Fixnum / Bignumについて参照している箇所をIntegerに修正しています。
Fix routes command tests broken in e137831726.
railties/test/commands/routes_test.rb
の修正です。
Merge Previews/Variants controller into one Representations controller.の対応の影響でroutesのテストがエラーになっていたのを修正しています。
Merge pull request #32058 from gsamokovarov/rails-server-x-option
railtiesの修正です。
rails server
コマンドにRack server nameをオプションなしで渡すのがdeprecateになりました。今後は-u
オプションを指定する必要があります。
$ ./bin/rails s puma DEPRECATION WARNING: Passing the Rack server name as a regular argument is deprecated and will be removed in the next Rails version. Please, use the -u option instead. (called from new at /home/yaginuma/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor.rb:383)
オプション無しの場合、Rack serverではなくenvironmentを渡せる、と勘違いしてエラーになってしまう事があったらしく、紛らわしいのでオプション指定を必須にしよう、という事で修正されました。
合わせて、Rack server nameをタイポした場合にサジェストがされるようになりました。
$ ./bin/rails s -u pum Could not find server "pum". Maybe you meant "puma" or "cgi"? Run `rails server --help` for more options.
[ci skip] Fix grammar in delegate, private: true docs.
activesupport/lib/active_support/core_ext/module/delegation.rb
のdocの修正です。
delegate
メソッド内のprivate
オプションについて説明している箇所のグラマーの修正、及び、不要なexampleの削除等を行っています。
Avoid purging attached blob when replacing it with itself
activestorage/lib/active_storage/attached/one.rb
の修正です。
blobのreplace処理で、replaceするアタッチメントが元々保持していたblobと同じだった場合に、そのblobのpurge処理が行われないよう修正しています。
Fix "NameError: undefined local variable or method `host'"
railties/lib/rails/commands/server/server_command.rb
の修正です。
Rails::Server#served_url
メソッドで存在しないメソッドを参照していたのを修正しています。
Handle another case where a blob might be erroneously purged
activestorage/lib/active_storage/attached/one.rb
の修正です。
blobのreplace処理で、アタッチメントをblobに変換してから元のblobと同じか比較するよう修正しています。アタッチメントがStringの場合等に正しくreplace処理が行われるようにする為。
id_in_database
should be respected as primary key value for persisted records
activerecord/lib/active_record/locking/optimistic.rb
、
activerecord/lib/active_record/persistence.rb
の修正です。
Locking::Optimistic
moduleのrecord更新処理で使用するprimary keyの値に、オブジェクトで保持していた値を使用していたのを、DBで保持している値を使用するよう修正しています。primary keyの値を意図的に書き換えた場合に、オブジェクトで保持している値を使用すると意図しない動作になるため。
Refactor _substitute_values
to be passed attribute names and values
Active Recordの修正です。
_substitute_values
メソッドにattributeのnameとvalueを渡せるようリファクタリングしていいます。後々のコミットで必要な為、のようです。
Prefer _update_record
than update_all
for updating a record
activerecord/lib/active_record/locking/optimistic.rb
、
activerecord/lib/active_record/persistence.rb
の修正です。
recordの更新処理にupdate_all
メソッドを使っている箇所があったのを、_update_record
メソッドを使用するよう修正しています。
Introduce _delete_record
and use it for deleting a record
activerecord/lib/active_record/locking/optimistic.rb
、
activerecord/lib/active_record/persistence.rb
の修正です。
際にrecordの削除処理を行う為の_delete_record
メソッドを追加し、各moduleで左記メソッドを使うよう修正しています
Introduce _update_row
to decouple optimistic locking concern from Persistence
module
activerecord/lib/active_record/locking/optimistic.rb
、
activerecord/lib/active_record/persistence.rb
の修正です。
レコード更新の為の_update_row
メソッドを追加し、各moduleで左記メソッドを使うよう修正しています。
元々Persistence
moduleの更新処理でOptimistic Lockingが使用されている場合の考慮まで行っていたのですが、メソッドを切り出す事により、Optimistic Lockingを使用している場合の処理をLocking
moduleで定義出来るようにしています。
Deprecate safe_level of ERB.new
in Ruby 2.6
railties/lib/rails/generators/migration.rb
、
tasks/release.rb
の修正です。
ERB.new
の引数に非キーワード引数を使用するのがRuby 2.6でdeprecateになった為、Ruby 2.6以上ではERB.new
の引数にキーワード引数を使用するよう修正しています。
参考:ruby/NEWS
Merge pull request #32170 from koic/deprecate_safe_level_of_erb_new_in_ruby_2_6
Remove extra arg passed to Rails::Command::RoutesTest#run_routes_command
railties/test/commands/routes_test.rb
の修正です。
routes
コマンドのテストでコマンドに不要な引数を渡していた箇所があったのを修正しています。