なるようになるブログ

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

rails commit log流し読み(2014/12/17)

2014/12/17分のコミットです。

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

activesupport/CHANGELOG.md


Test to ensure content_tag works when fixing #17661

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

先日revertされたcontent_tag挙動の変更の対応について、テストを追加しています。


Merge pull request #18031 from claudiob/better-tests-for-callbacks-terminator

activesupport/test/callbacks_test.rbの修正です。

:skip_after_callbacks_if_terminatedオプションについてのテストを追加しています。


Merge pull request #18032 from claudiob/add-test-for-after-validate-callbacks

activemodel/test/cases/callbacks_test.rbactivemodel/test/cases/validations/callbacks_test.rbの修正です。

ActiveModelのafter_validationafter_xxxaround_xxxコールバックがfalseを返すときのテストを追加しています。


Merge pull request #18052 from timoschilling/reset_variants

actionpack/lib/action_dispatch/http/mime_negotiation.rbの修正です。

request.variantnilで初期化出来るよう修正しています。


Merge pull request #18049 from yuki3738/fix_rails_db_command_error

railties/lib/rails/commands/dbconsole.rbの修正です。

rails dbconsoleが実際のdbのコマンドを実行する際、その対象がディレクトリかどうかチェックを行うよう修正しています。実行しようとしているコマンドと同名のディレクトリがある場合に問題になっていたようです。


"backoffice" -> "back office", "lookup" -> "look up"

rails guideのConstant Autoloading and Reloadingの修正です。

コミットログの通りで、"backoffice" -> "back office", "lookup" -> "look up" に修正しています。


adding that assert_template with :layout will raise ArgumentError for unknown layout type

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

assert_templateメソッドlayoutオプションに不正な値(Numeric等)を指定した場合に、ArgumentErrorをおこすよう修正しています。


Improving Method Chaining section [ci skip]

rails guideのActive Record Query Interfaceの修正です。

Understanding The Method Chainingの項の説明の改善を行っています。メソッドチェーンのサンプルを記載している箇所に、実際生成されるSQLのサンプルを追加しています。


Merge pull request #17980 from gsamokovarov/rescuable-case-operator

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

ActiveSupport::Rescuableerror dispatcherのsupportを追加しています。

これにより、以下のような書き方が出来るようになります。

class BaseController < ApplicationController
  module ErrorDispatcher
    def self.===(other)
      Exception === other && other.respond_to?(:status)
    end
  end

  rescue_from ErrorDispatcher do |error|
    render status: error.status, json: { error: error.to_s }
  end
end

Rubyのrescue dispatchesのような書き方を出来るようにする為対応したとの事です。


update_column take ruby-land input, not database-land input

ActiveRecordの修正です。

serialized columnsを使用していた際に、シリアライズされてないデータをupdate_columnメソッド経由で設定しようとした場合にエラーになっていたのを修正しています。

"シリアライズされたデータ"を期待するようなロジックになってしまっていたようなのですが、update_columnに設定するのはシリアライズ前だろう、との事で修正しています。


fix link in autoloading guide [ci skip]

rails guideのConstant Autoloading and Reloadingの修正です。

ページ内リンクが壊れている箇所があったのを修正しています。


[ci skip] Change three backticks to just one

rails guideのThe Rails Command Lineの修正です。

コマンドのエスケープに何故かバッククォートを三つ使用している箇所があったので、一つに修正しています。何故三つ使ってたのだろう…。