なるようになるブログ

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

rails commit log流し読み(2014/09/03)

2014/09/03分のコミットです。

CHANGELOGへの追加はありませんでした。


Remove '*' which doesn't work

rails guideのConfiguring Rails Applicationsの修正です。

config.assets.raise_runtime_errorsの説明の箇所にあった、不要な"*"を削除しています。


Clarify Rails uses erubis not stdlin ERB. [ci skip]

actionview/lib/action_view/base.rbのdocの修正です。

railsではstdlinのERBではなく、erubisを使用している旨説明を追加しています。


Shorten ActionView::Base doc summary line. [ci skip]

actionview/lib/action_view/base.rbのdocの修正です。

先程追加した修正について、改行を追加しています。


Merge pull request #16762 from eileencodes/refactor-add_constraints-complex-loop-conditional

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

constraintの追加処理について、リファクタリングを行っています。


Add a quick straw-man Incompatibilities section

rails guideのRuby on Rails 4.2 Release Notesの修正です。

Incompatibilitiesセクションを追加しています。

  • respond_with/respond_toメソッドrespondersgemに移動
  • Productionのデフォルトのログレベルが:debugに変更されている
  • HTML Sanitizerに使用しているgemが変更になっている

上記事項について説明が行われています。


Remove 'if exists' from drop table statement then use table_exists?

ActiveRecordのテストの修正です。

テストでテーブルをdropする際、DROP TABLE IF EXISTS xxxしていたのを、table_exists?メソッドでテーブルの存在チェックを行うよう修正しています。

OracleだとDROP TABLE IF EXISTSが動作しないとの事です。へー。


Fix failing tests in ActiveJob Adapter

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

テスト用のクラスにdelegate :name, to: :classを追加しています。


use correct operator in query based on JSON document

rails guideのActive Record and PostgreSQLの修正です。

JSON documentを検索する際のサンプルに誤りがあったのを修正しています。

-Event.where("payload->'kind' = ?", "user_renamed")
+# The -> operator returns the original JSON type (which might be an object), whereas ->> returns text
+Event.where("payload->>'kind' = ?", "user_renamed")

PostgreSQLの仕様上、"->>"ですね。


Move column option handling to new_column_definition

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

カラムオプションの扱い処理をnew_column_definitionメソッドで行うよう修正しています。

元々、TableDefinition#columnで行っていたのですが、TableDefinition#columnadd_columnメソッドから呼ばれないので、new_column_definitionに移動したとの事です。


Dont mess with default order engines load

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

railties:install:migrationsを実行する際、各エンジンのrailties_orderの値に依存するよう修正しています。


Reset ActiveRecord::SchemaDumper.ignore_tables value after changed in tests

activerecord/test/cases/schema_dumper_test.rbの修正です。

テストの後処理で、ActiveRecord::SchemaDumper.ignore_tablesの値を元の値に戻すよう対応しています。


Merge pull request #16263 from zuhao/refactor_activerecord_serialized_attribute_test

activerecord/test/cases/serialized_attribute_test.rbの修正です。

test_serialize_does_not_eagerly_load_columnsで、reset_column_informationをテストの最初に行うよう修正しています。


Fix for double ActiveJob::DeserializationErorr

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

シリアライズエラーが起きた際、ActiveJob::DeserializationErorrが2回発生してしまっていたのを修正しています。

# enqueueing the Person object from the AJ testing wrapped in an array
RescueJob.enqueue [Person.new(404)]
# will raise

> puts e.inspect
#<ActiveJob::DeserializationError: Error while trying to deserialize arguments: Error while trying to deserialize arguments: Cannot find person with ID=404>

> puts e.class.name
ActiveJob::DeserializationError

> puts e.original_exception.class.name
ActiveJob::DeserializationError

[Active Job] Try to deserialize with GlobalID only strings and globalids

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

deserialize_argumentメソッドで、引数がStringクラスかGlobalIDクラスの場合のみGlobalIDのデシリアライズ処理を行うよ修正しています。