なるようになるブログ

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

rails commit log流し読み(2016/02/16)

2016/02/16分のコミットです。

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

actionmailer/CHANGELOG.md

activerecord/CHANGELOG.md


fixing the build take II. :sweat:

test runner, relay minitest information about the error location.の対応によりテストの修正が必要な箇所があり、その対応が漏れていたのを対応しています。


Use a URL instead of an URL everywhere

Action Packの修正です。

an URLとなっていた箇所を、まとめてa URLに修正しています。


fix more failing tests due to 07e422f ... :pray:

test runner, relay minitest information about the error location.の対応によりテストの修正が必要な箇所がまだ残っており、その対応が漏れていたのを対応しています。


Move test for #22828 into it's own test https://github.com/rails/rails/commit/7a0f784af01421161593994d4c5ec3ff6e818cc2

actionpack/test/controller/test_case_test.rbの修正です。

cookieの値がescapeされる事を確認するテストが別のテスト内でまとめて行われていたのを、そのテストだけ単体で行うようテストを切り出しています。


Add require and move escape to private method

actionpack/lib/action_dispatch/middleware/cookies.rbの修正です。

不足していたrequireの追加(rack/utils)及び、cookieのescape処理をメソッドに切り出しています。実際のescape処理はRack::Utils.escapeで行っています。


Join values using '; ' as per RFC spec

actionpack/lib/action_dispatch/middleware/cookies.rbの修正です。

cookieのvalueのセパレーターに;ではなく;を使用するよう修正しています。

-        @cookies.map { |k,v| "#{escape(k)}=#{escape(v)}" }.join ';'
+        @cookies.map { |k,v| "#{escape(k)}=#{escape(v)}" }.join '; '

RFCによると、;が正しいとの事です。

参考;RFC 6265 - HTTP State Management Mechanism


Remove unused test controller action

actionpack/test/controller/test_case_test.rbの修正です。

使用してないテストcontroller用のアクションを削除しています。


Add missing CHANGELOG for regression fix in #18155 which fixes #13387

activerecord/CHANGELOG.mdの修正です。

model作成処理のコールバックで、associationのロード処理を行った場合にassociationのインスタンスが2回追加されてしまうバグがあったのを修正した、Merge pull request #18155 from bogdan/collection_association_double_element_fixについて、CHANGELOGにentryを追加しています。


reset ActionMailer::Base.deliveries in ActionDispatch::IntegrationTest.

Action Mailerの修正です。

ActionDispatch::IntegrationTestの後処理で、自動でActionMailer::Base.deliveriesの値をclearするよう修正しています。

元々はテストを実行する側でActionMailer::Base.deliveriesを呼び出す必要があったのですが、それを行わなくてすむようになるので、ちょっと手間が減りますねえ。


Merge pull request #23614 from georgemillo/foreign_key

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

一つのテーブル定義の中で、同じテーブルに対して複数外部キーを設定しようとした場合に、最後に指定した外部キーのみしか設定されないバグがあったのを修正しています。

PRより。

def change
  create_table :flights do |t|
    t.integer :from_id, index: true, null: false
    t.integer :to_id,   index: true, null: false

    t.foreign_key :airports, column: :from_id
    t.foreign_key :airports, column: :to_id
  end
end

上記の例の場合、最後のto_idの外部キーしか設定されない、という状態になっていました。外部キーの情報の持ち方に問題があった為、Arrayとして値を保持するよう修正しています。


fix class name typo.

actionmailer/lib/action_mailer/railtie.rbactionmailer/lib/action_mailer/test_case.rbの修正です。

クラス名をタイポ(ClearTestDeliviers -> ClearTestDeliveries)していたのを修正しています。


Merge pull request #23630 from akshaymohite/correct-test-name-api-only

railties/test/application/configuration_test.rbの修正です。

api_onlyを設定するテストのテスト名でapi_onlyonly_apiにタイポしていたのを修正しています。