なるようになるブログ

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

rails commit log流し読み(2015/03/03)

2015/03/03分のコミットです。

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

actionpack/CHANGELOG.md


Do not output in the console

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

read_multiメソッドのテストで、デバッグ情報を標準出力に出していた箇所があったのを削除しています。


Rake restart task no longer loads entire Rails environment when run.

railties/lib/rails/tasks/restart.rakeの修正です。

restartタスクからenvironment定義を削除しています。touchを実行しているだけで、Rails environmentは不要な為との事。


Clarify that t.references and t.belongs_to are interchangeable. [ci skip]

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

polymorphicいての説明の箇所で、referencesbelongs_toオプションのついての説明を修正しています。


remove useless instance variable

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

update_attributes_from_transaction_stateメソッドから使用していない変数を削除しています。


call sync_with_transaction_state inside persisted? then check ivars

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

persisted?メソッドで、sync_with_transaction_stateメソッドを先に呼び出すよう修正しています。

-      !(new_record? || destroyed?)
+      sync_with_transaction_state
+      !(@new_record || @destroyed)

new_record?destroyedメソッドそれぞれの中で、sync_with_transaction_stateメソッドを呼び出しいるのですが、sync_with_transaction_stateメソッドは早く無い為、sync_with_transaction_stateメソッドの呼び出しが一度で済むよう、先に呼び出すようにしたとの事です。性能改善。


Test against the mail gem's edge

GemfileGemfile.lockの修正です。

最新のmail gemを使用するよう修正しています。

Use composition over inheritance for PartsListの対応がActionMailerで問題無いか確認する為との事です。


Remove !has_transactional_callbacks? check

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

update_attributes_from_transaction_stateメソッドから不要なhas_transactional_callbacks?呼び出しを削除しています。


Make private methods private

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

privateなメソッドの前にprivateメソッドを追加しています。


Avoid Ruby versions check on Rubinius

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

実行環境がRubiniusの場合に、Rubyのバージョンチェック処理を行わないよう修正しています。

今のRailsRuby 2.2.0以上を使用するようチェックしているのですが、Rubiniusは2.1.0へのコンパチをターゲットとしている為、2.2.0のバージョンチェックが行われるのは困る為、チェック処理を行わないようにしたようです。


[ci skip] Fix a typo for PostgreSQL text limit, GB instead of Gb.

activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rbのdocの修正です。

Gb -> GBにタイポを修正しています。


Wrap inline rescue with or-equal calls

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

inline rescueを呼び出している箇所を括弧で括るよう修正しています。

-        klass ||= klass_name.constantize rescue nil
+        klass ||= (klass_name.constantize rescue nil)

Rubiniusで問題がある為との事です。


Remove not needed .tap

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

read_multiメソッドのテストから、不要なtapの呼び出しを削除しています。


Merge pull request #19077 from robin850/unknown-attribute-error

activemodel/lib/active_model/attribute_assignment.rbactivemodel/lib/active_model/errors.rbの修正です。

UnknownAttributeErrorクラスをAttributeAssignment配下からErrors配下に移動しています。

ActiveModel::AttributeAssignment::UnknownAttributeErrorだと長いので、ActiveModel::UnknownAttributeErrorで使用出来るようにする為、との事です。


Skip the failing tests on Rubinius for now

現状rubinusで動作しないテストを、skipするよう対応しています。


Merge pull request #19105 from amatsuda/array_take

activerecord/lib/active_record/associations/collection_association.rbactiverecord/lib/active_record/associations/collection_proxy.rbの修正です。

CollectionProxy#takeCollectionAssociation#takeメソッドの引数に取り出す要素数を指定出来るよう対応しています。これは便利そう。


tests, favor drop_table and :if_exists over raw SQL.

ActiveRecordのテストの修正です。

SQLでtableをdropしていた箇所を、drop_tableメソッドを使用するよう修正しています。


Move Array#without from Grouping to Access concern and add dedicated test (relates to #19157)

activesupport/lib/active_support/core_ext/array/grouping.rbに定義してあったwithoutメソッドactivesupport/lib/active_support/core_ext/array/access.rbに移動しています。


Remove unneeded comment. [ci skip] https://github.com/rails/rails/commit/f5b192837a14bf01936eea82c16374b2e9278e60

actionpack/test/journey/routes_test.rbのdocの修正です。

test_first_name_winsメソッドから不要なコメントを削除しています。


change if! to unless

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

if !xxxunles xxxに修正しています。


ask the txn for it's state, not a state object

ActiveRecordの修正です。

Transactionクラスでstateを確認する為のメソッドを追加し、stateを参照/確認する際、TranactionStateクラスを直接参照するのではなく、Transactionクラスを経由するよう修正しています。


mutate the transaction object to reflect state

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

TranactionStateクラスでトランザクションの状態を保持していたのを、各状態を表すクラス(CommittedRolledBack)を作成し、そのクラスで状態を管理するよう修正しています。

が、recordがtransactionsへの参照を持つ必要は無いのでは、という事で、後ほどrevertされています。


delete unused method

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

使用していないtransaction_stateメソッドを削除しています。

が、実際は使っている箇所があったようで、こちらも後ほどrevertされています。


ask the routes objects for its Rack env key

SCRIPT_NAMEを取得する際、直接Rack envを参照するのではなく、RouteSet経由で値を取得するよう修正しています。


use arg size for parallel iteration

actionpack/lib/action_dispatch/routing/route_set.rbの修正です。

parameterize_argsメソッド内でparamsへの変換処理を行う際、arg sizeの値を元にループを回すよう修正しています。

-              @required_parts.zip(args.map(&:to_param)) { |k,v| params[k] = v }
+              @arg_size.times { |i| params[@required_parts[i]] = args[i].to_param }

不要なループを行わせない為に、ですかねえ…。


Revert "mutate the transaction object to reflect state"

先にコミットされたmutate the transaction object to reflect stateをrevertしています。


Merge pull request #19177 from gregmolnar/fixtures

activerecord/lib/active_record/fixtures.rbactiverecord/test/cases/fixtures_test.rbの修正です。

Use the correct connection for reset_pk_sequenceの対応についてのテストを追加しています。


Revert "delete unused method"

先にコミットされたdelete unused methodをrevertしています。


[ci skip] Add documentation for Helpers#all_helpers_from_path

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

Helpers#all_helpers_from_pathメソッドにdocを追加しています。


Merge pull request #15806 from tgxworld/partition_routes_during_setup

actionpack/lib/action_dispatch/journey/router.rbactionpack/lib/action_dispatch/journey/routes.rbの修正です。

最初のrequestが来た際に実行していたroutesの分割処理を、セットアップ時に実行するよう修正しています。


Merge pull request #19147 from gsamokovarov/work-around-ruby-10695 https://github.com/rails/rails/commit/f32b6e243a1b84312bd72618454f79c9878beb19

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

Ruby本体の、Segfault from keyword rest arg when coercing an object that defines to_hashのバグの影響で、セグフォルトしてまう可能性がある為、Response#initializeの引数にkeyword argsを使わないよう修正しています。


Remove unused line

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

setupメソッドから不要な行を削除しています。