なるようになるブログ

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

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

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

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

activejob/CHANGELOG.md

actionmailer/CHANGELOG.md


Fix count on a separate connection (fixes #18359)

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

column_name_for_operationメソッドでデフォルトのArel::Table.engine(AR::Base) コネクションを使用していたのを、現在のmodelが保持しているコネクションを使用するよう修正しています。

modelの中で、デフォルトとは異なるDBにコネクションを接続していた場合に、count等のメソッドを呼び出した際にActiveRecord::ConnectionNotEstablished: No connection pool for ActiveRecord::Baseのエラーが発生してしまっていた為、対応したとの事です。 複数DB…。


Merge pull request #16640 from mfazekas/fix_loop_in_changed_for_autosave

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

dirtyになっているattributeがひとつも無い時に、changed_for_autosave?メソッドが無限ループになってしまうバグがあったのを修正しています。


Add :only option to assert_enqueued_jobs

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

assert_enqueued_jobsメソッドonlyオプションを追加しています。

onlyオプションには、Jobクラス名を指定出来、特定のJobクラスのみが実行された事の確認の為に使えるようです。

サンプル。

def test_logging_job
  assert_enqueued_jobs 2, only: LoggingJob do
    LoggingJob.perform_later
    HelloJob.perform_later('jeremy')
  end
end

Fix Active Job changelog formatting and reword a bit [ci skip]

activejob/CHANGELOG.mdの修正です。

フォーマットの修正と、言い回しの修正を行っています。


Add :only option to assert_no_enqueued_jobs

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

assert_no_enqueued_jobsメソッドに、assert_enqueued_jobs同様にonlyオプションを追加しています。


Add assert_enqueued_emails and assert_no_enqueued_emails

actionmailer/lib/action_mailer/test_helper.rbの修正です。

テスト用のヘルパーメソッドとしてassert_enqueued_emailsassert_no_enqueued_emailsメソッドを追加しています。

assert_enqueued_jobsassert_no_enqueued_emailsメソッドのemailクラス版です。

実装は以下の通り。

def assert_enqueued_emails(number, &block)
  assert_enqueued_jobs number, only: ActionMailer::DeliveryJob, &block
end