なるようになるブログ

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

rails commit log流し読み(2016/03/12)

2016/03/12分のコミットです。

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

actionpack/CHANGELOG.md


Merge pull request #22854 from jcoyne/missing_template

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

respond_toメソッドの引数にblockを指定した場合に、そのblock内で返せるresponseが無かった場合、:no_contentを最終的に返すよう修正しています。


Fix test failures caused by #23958

activerecord/test/cases/adapters/postgresql/serial_test.rbの修正です。

Fix bigserial appears with limit 8 for schema dumper by kamipo · Pull Request #23958 · rails/railsの対応の際、テストの修正が漏れていた箇所があったのを修正しています。


Use the most highest priority exception handler when cause is set

actionpack/lib/action_controller/metal/rescue.rbactivesupport/lib/active_support/rescuable.rbの修正です。

Deprecate exception#original_exception in favor of exception#cause by yuki24 · Pull Request #18774 · rails/railsで、exception#original_exceptionの代わりにRuby本体の#causeを使用するようになりました。が、#causeはエラーが起きた際にRubyで自動的に設定される為、複数回エラーをraise(一度エラーをrescueして再度raiseのような場合)した際に、rescue_fromで期待通りにexceptionをrescue出来なくなってしまう問題があったのを修正しています。


Ping the resque version while we can't investigate the failure

Gemfileの修正です。

Active Jobのテストで使用するrescueのバージョンを1.26未満に固定しています。1.26以上だとActive Jobのintegrationテストがコケてしまう為、との事です。


Clarify has_many :dependent option docs [ci skip]

rails guideのActive Record Associationsの修正です。

:dependentオプションに指定する値について説明している箇所の言い回しを修正しています。


Break up a circular require between AP/AV

Action Pack / Action Viewの修正です。

actionpack/lib/abstract_controller/base.rbファイル内で定義されていたAbstractController::Errorクラスを、別ファイル(actionpack/lib/abstract_controller/error.rb)に切り出しています。 rails-controller-testing gemで、Rails::Controller::Testing::TemplateAssertionsActionView::TestCaseクラスへのincludeをaction_viewをload時に行うようにしている(Merge pull request #18 from tgxworld/fix_gem_rails_5 · rails/rails-controller-testing@ce370fe)のですが、そのaction_viewのloadの際にAction Packのファイルのloadが発生し、更にそのファイルの中でAction Viewのファイルのloadが発生する、のように読み込み処理が循環してしまっていました。

で、Action Viewのload処理の延長で必要なエラークラス(AbstractController::Error)をファイルに切り出してい、必要な箇所でそのファイルのみ明示的に読みようにし、修正したようです。


Merge pull request #23797 from kamipo/case_sensitive_comparison_for_non_string_column

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

値の比較処理で、string以外のtypeの場合にもbinary演算子を使用してしまっていたのを、stringの場合のみ使用するよう修正しています。恐らく。大分不安。


AC: skip PG adapter tests if the db isn't available

actioncable/test/subscription_adapter/postgresql_test.rbの修正です。

PostgreSQLに接続出来ない場合に、PG adapterのテストをskipするよう修正しています。


Merge pull request #24161 from Sen-Zhang/restore_application_mailer

Action Mailerの修正です。

mailerをgenerateする際、app/mailers/application_mailer.rbが存在しない場合、app/mailers/application_mailer.rbを生成するよう修正しています。

Rails 5では、新規にRailsアプリを作成した際に、app/mailers/application_mailer.rbを生成するようになっており、移行generatorで生成されるmailerクラスはApplicationMailerを継承するようになっているのですが、古いバージョンのRailsを更新して使用する場合、app/mailers/application_mailer.rbが存在しない場合がある為、その場合の事を考慮し、生成するようになっています。


Fix Gemfile.lock

Gemfile.lockの修正です。

Ping the resque version while we can't investigate the failure でGemfileを更新した際、Gemfile.lockの更新が漏れていたのd,え追加で対応しています。


Fix warning: method redefined; discarding old female

activerecord/test/models/cat.rbの修正です。

テスト用modelで、メソッドを再定義する事によるワーニング(warning: method redefined; discarding old female)が出ていた為、不要なscopeを削除し対応しています。