なるようになるブログ

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

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

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

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

activesupport/CHANGELOG.md

actioncable/CHANGELOG.md

activejob/CHANGELOG.md

activerecord/CHANGELOG.md


Publish AS::Executor and AS::Reloader APIs

ActiveSupportの修正です。

Rails application 実行 / reload処理時に任意のコードを実行出来るようにする為のActiveSupport::Executor及びActiveSupport::Reloader APIを追加しています。


Use AS::Executor / AS::Reloader to support reloading in ActionCable

Action Cableの修正です。

Action Cableのreload処理で、先に追加されたActiveSupport::ExecutorActiveSupport::Reloader APIを使用するよう修正しています。


Use AS::Reloader to support reloading in ActiveJob

Active Jobの修正です。

Active Jobで、先に追加されたActiveSupport::Reloader APIを使用出来るよう修正しています。


Don't reference Rails.application from inside a component

actionpack/lib/action_dispatch/middleware/reloader.rbactionpack/lib/action_dispatch/railtie.rbの修正です。

reloaderを参照するのにRails.application経由で行っていたのをやめて、ActionDispatch::Reloaderを必ず参照出来るよう修正しています。


Merge pull request #22170 from samphilipd/sam/properly_deallocate_prepared_statements_outside_of_transaction

Active Recordの修正です。

PostgreSQL adapterで、transaction処理が失敗した際に、transaction内で作成したprepared statementsをDEALLOCATEするよう修正しています。


Merge pull request #23598 from brchristian/activerecord_second_to_last

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

#second_to_last#third_to_lastメソッドへのテストを追加、及びそもそも処理が正しく動いてなかったのを修正しています。


Delete CTRL-C message as is duplicates Puma

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

APサーバにPumaを使用した場合に、Ctrl-Cを使用するとサーバが停止出来る旨のメッセージが2回出てしまっていたので、Rails側で出しているメッセージを削除しています。


Merge pull request #23417 from sgringwe/master

Active Recordの修正です。

batch処理用メソッド(#find_each#find_in_batches)のrelationにorderlimitが指定されていた場合、元々はwarningメッセージ(Scoped order and limit are ignored, it's forced to be batch order and batch size)が出るようになっていたのですが、これをwarningメッセージではなく、ArgumentErrorをraiseするようにする為のオプション(error_on_ignore)を各メソッドに追加しています。

デフォルトnilで、trueを設定した場合、warningメッセージの代わりにArgumentErrorがraiseするようになります。また、config(config.active_record.timestamped_migrations)でアプリ全体に対してデフォルト値を設定する事も出来ます。


Merge pull request #23935 from y-yagi/convert_cable_coffee_to_javascript

Action Cable / railtiesの修正です。

Railsアプリ生成時に作成するAction Cable用のJSのファイルをCoffeeScriptからJavaScriptに変換しています。CoffeeScriptだとデフォルトでCoffeeScriptへの依存が発生してしまい、それを避ける為に変換しています。


Revert "Merge pull request #23927 from gaurish/jruby_ci_actionpack"

JRuby + Action PackのテストをTravis CIで動作するよう設定を変更した、Merge pull request #23927 from gaurish/jruby_ci_actionpackをrevertしています。

テスト実行の度にJRuby 9.0.5.0のbuildが発生し、そのせいでテストがtimeoutしてしまう事が多発した為、との事です。


Merge pull request #23954 from kamipo/fix_undefined_method_fields

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

Mysql2Adapter#exec_queryINSERTのような結果を返さないqueryを指定した際にNoMethodErrorが発生してしまうバグがあったのを修正しています。


Merge pull request #23953 from kamipo/fix_tests_failure_with_prepared_statements_false

Active Recordの修正です。

prepared_statementsにfalseを指定した場合に、動作しないテストが幾つかあったのを、prepared statementsが使用しているテストについては、ActiveRecord::Base.connection.prepared_statementsprepared_statementsの設定を確認するよう修正しています。


Merge pull request #23961 from kamipo/exclude_name_and_type_from_prepare_column_options

Active Recordの修正です。

prepare_column_optionsから:name:typeを除外しています。


Merge pull request #23959 from kamipo/add_test_primary_key_should_be_not_null

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

primary keyのテストで、primary keyがnullで無い事を確認するテストを追加しています。


Remove duplicated test_ prefix [ci skip]

activerecord/test/cases/associations/belongs_to_associations_test.rbactivesupport/test/core_ext/module_test.rbの修正です。

テスト名にtest_が重複していたのを削除しています。


Merge pull request #23932 from arthurnn/arthurnn/remove_load_paths

全体から、require File.expand_path("../../../load_paths", __FILE__)していたのを削除しています。

今はもうload_pathsは使用していない為、との事です。


Fix ActiveSupport::Reloader.check!

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

class attributeの定義にattr_accessorを使用していたのを、class_attributeを使用するよう修正しています。


Remove not needed exec_insert in mysql2 adapter

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

Mysql2Adapter#exec_insertメソッドを削除しています。親クラス(AbstractMysqlAdapter)で定義されている#exec_insertを使えば良い為、との事です。


Deprecate {insert|update|delete}_sql in DatabaseStatements

Active Recordの修正です。

DatabaseStatements moduleのinsert_sqlupdate_sqldelete_sqlメソッドがdeprecateになりました。今後はpublic methodであるinsertupdatedeleteメソッドを使用して下さい、との事です。


Remove requiring load_paths from tools/test.rb

tools/test.rbの修正です。

不要なload_pathsファイルのrequireを削除しています。


Merge pull request #23976 from danielrhodes/enhancement/ac-ping-to-message-type

Action Cableの修正です。

message typeにwelcomepingを追加しています。

pingは元々identifierの方に定義されていたのですが、protocolを統一する為に、message typeを使用するよう修正しています。welcomeはconnection接続確認用に使うようのようです。


Fix description in cookies_serializer.rb being corrupted when updating

railties/lib/rails/generators/rails/app/app_generator.rbの修正です。

rails:update実行時に、cookies_serializer.rbcookies_serializer:jsonが定義されていた場合、:marshalに置換する、という処理を行っているのですが、その際にコメント部分まで置き換えてしまっており、コメントについては置き換えを行わないよう修正しています。


Fix typo in implicit_render

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

アクション名と一致するテンプレートはあったがformatやvariantが一致しなかった場合に出力するエラーメッセージにスペースが足りてない箇所があったのを、修正しています。


Fix typo in app_generator_test.rb

railties/test/generators/app_generator_test.rbの修正です。

テスト名でmarshalmarchalにタイポしている箇所があったのを修正しています。


[ci skip] Use rails routes instead of rake routes in inspector test description

actionpack/test/dispatch/routing/inspector_test.rbの修正です。

routes inspectorのテストのテスト名を、test_rake_routes_xxxからtest_rails_routes_xxxにまとめて修正しています。


Accept JSON with no backslashes/escaping

Action Cableの修正です。

channel identifiersにescape処理が行われていない状態の値も指定出来るよう修正しています。

元々はescape処理が行われた状態の値(ex: {"command":"subscribe","identifier":"{\"channel\":\"CommentsChannel\"}"})のみが渡される想定になっていたのですが、Rails以外(JSのフレームワーク等)からデータを受け取る場合ん事を考慮して、エスケープ処理がされてない状態の値も受け入れるようにした、との事です。