なるようになるブログ

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

rails commit log流し読み(2018/12/12)

2018/12/12分のコミットです。

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

railties/CHANGELOG.md


Remove redundant suffixes on generated system tests.

railties/lib/rails/generators/test_unit/system/system_generator.rbの修正です。

system test 生成時に、test名にtestが含まれていた場合に、生成させるファイル名から重複したtestを除外するよう修正しています。

before

$ ./bin/rails g system_test users_test
      invoke  test_unit
      create    test/system/users_tests_test.rb

after

$ ./bin/rails g system_test users_test
      invoke  test_unit
      create    test/system/users_test.rb

Merge pull request #34648 from y-yagi/fixes_34646

activesupport/lib/active_support/deprecation/method_wrappers.rbの修正です。

まだ定義されていないメソッドに対してdeprecateを使用した場合に、エラーになってしまうバグがあったのを修正しています。


Merge pull request #34680 from jhawthorn/connected_to_question

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

現在接続しているroleが何かをチェックする為のconnected_to?メソッドを追加しています。

ActiveRecord::Base.connected_to(role: :writing) do
  ActiveRecord::Base.connected_to?(role: :writing) #=> true
  ActiveRecord::Base.connected_to?(role: :reading) #=> false
end

Add Missing ActiveSupport::Rescuable to ActionCable::Channel

actioncable/lib/action_cable/channel/base.rbの修正です。

ActionCable::Channel::Baseのサブクラスで、controller同様にrescue_fromを使用出来るよう修正しています。

例。

class Channel < ActionCable::Channel::Base
  rescue_from ActiveRecord::RecordInvalid, with: :show_errors

  protected
    def show_errors(exception)
      exception.record.new_record? ? # ...
    end
end

Ensure that preventing writes is invoked before materialize_transactions consistently

activerecord/lib/active_record/connection_adapters/abstract/savepoints.rbの修正です。

exec_queryメソッドとexec_deleteメソッドで、materialize_transactionsメソッドを呼び出す前にpreventing writesのチェック処理を行うよう修正しています。

他のadapterでは既に同様にmaterialize_transactionsメソッドの前にpreventing writesのチェック処理を行うようになっており、処理を統一するためのようです。