2018/09/28分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
activejob/CHANGELOG.md
Remove Rails 5.0 workaround from ActionCable::Channel::TestCase
actioncable/lib/action_cable/channel/test_case.rb
の修正です。
ActionCable::Channel::TestCase#subscribe
メソッドにRails 5.0向けのワークアラウンドコードがあったのを削除しています。
gem(action-cable-testing
)からコードを持ってきた際に、消し忘れていたとの事です。
Merge pull request #33994 from gmcgibbon/rails_g_model_migrations_paths
activerecord/lib/rails/generators/active_record/model/model_generator.rb
の修正です。
model generatorにmigrationファイルを生成するpathを指定する為の--migrations_paths
オプションを追加しています。
Add migrations_paths option to migration generatorのmodel generator版。
Merge pull request #31604 from fatkodima/reverting-transaction
Active Recordの修正です。
migrationファイルでtransaction
メソッドを使用していた場合に、transaction
メソッド内の処理がreverting commandになっていなかったのを修正しています。
例。
class CreateTopics < ActiveRecord::Migration[6.0] def change transaction do create_table :topics do |t| t.string :title end end end end
上記のようなmigirationをdb:rollback
で実行した場合、元々はtransaction
内のcreate_table
がそのまま実行されていたのが、今回の修正でdrop_table
が実行されるようになっています。
activerecord/lib/active_record/relation.rb
、
activerecord/lib/arel/visitors/mysql.rb
の修正です。
update_all
で実行するSQLでprepared statementを使用するよう修正しています。
Fix optionally scoped root route unscoped access
actionpack/lib/action_dispatch/routing/mapper.rb
の修正です。
optionally scopedを複数定義 + その中でroot pathを定義した場合に、root pathが"/"ではなく空になってしまうバグがあったのを修正しています。
Merge pull request #33986 from matt17r/patch-1
activerecord/lib/active_record/associations.rb
のdocの修正です。
belongs_to
メソッドのdoc内のid
を等幅フォントで表示する為に+
で囲むよう修正しています。
Merge pull request #33995 from Edouard-chin/ec-active-job-subset-arg
activejob/lib/active_job/test_helper.rb
の修正です。
assert_enqueued_with
、assert_performed_with
メソッドのargs
引数にProcを使用出来るよう修正しています。
Procの引数にはjobに実際に渡された引数が渡されるようになっており、引数が期待通りの値になっているかどうかをチェックするのに使用する想定、との事です。
Make update_counters
preparable
Active Recordの修正です。
update_counters
で実行するSQLでprepared statementを使用するよう修正しています。
Remove visit_Fixnum
and visit_Bignum
activerecord/lib/arel/visitors/to_sql.rb
の修正です。
Visitors::ToSql
classから不要なvisit_Fixnum
、visit_Bignum
メソッドを削除しています。
Revert "record who created the node when $DEBUG is true"
activerecord/lib/arel/nodes/node.rb
の修正です。
Nodes::Node
classに、$DEBUG
が指定されている時だけcaller
を保持しておく、というデバッグ用の処理があったのを削除しています。
Extract Arel.arel_node?
helper method
Active Recordの修正です。
Arelのnodeかどうかのチェック処理をメソッド(Arel.arel_node?
)に切り出しています。
Fixing an edge case when using objects as constraints
actionpack/lib/action_dispatch/routing/mapper.rb
の修正です。
constraints用のclassにcall
メソッドを定義している場合に、contraintの引数チェック処理でエラーになってしまうバグがあったのを修正しています。
.github/autolabeler.yml
の修正です。
probot/autolabeler用の設定ファイルを追加しています。変更されたファイルから自動でlabelをつける為のbotだそうです。
Add configuration to no-response probot plugin
.github/no-response.yml
の修正です。
probot/no-response用の設定ファイルを追加しています。
こちらは、issue作成者にもっと情報を下さい、と伝えているのにレスポンスが無いissueを自動でcloseするようのbotです。
Handle more unsafe String methods (#33990)
activesupport/lib/active_support/core_ext/string/output_safety.rb
の修正です。
html safeなStringに対して、delete_prefix(!)
やdelete_suffix(!)
を呼び出した際の結果がhtml safeなままになっていたのを、他のメソッド同様、unsafeになるよう修正しています。
# before string = '<!--evil-->'.html_safe string.delete_prefix!('<!--') string.html_safe? # => true # after string = '<!--evil-->'.html_safe string.delete_prefix!('<!--') string.html_safe? # => false
合わせて、[]=
、replace
、insert
でStringを追加する際に、HTML特殊文字を適切にエスケープするよう修正しています。
Merge pull request #31441 from mrhead/rails-ujs-xhr-redirects
actionview/app/assets/javascripts/rails-ujs/features/disable.coffee
の修正です。
response headerにX-Xhr-Redirect
が含まれている場合に、disableになっているelementをenableにしないよう修正しています。
Turbolinksを使用している場合に、XHR redirects実行時にdisableになっていたelement(e.g.: submitボタン)がenableになってしまう、というバグがあり、その修正です。
なお、これが正常に動作するには、Turbolinks側でX-Xhr-Redirect
headerを返す対応が必要で、そちらはmasterには含まれていますがまだリリースはされていません。参考: Set X-XHR-Redirect header
[ci skip] Recommend testing information displayed over object stored
rails guideのTesting Rails Applications
の修正です。
What to include in your Functional Tests
の項にある、controllerのテストで確認すべき内容に、レスポンスで正しい情報が表示されている事、を追加しています。
Merge pull request #33880 from robbertbrak/master
rails guideのActive Record Callbacks
の修正です。
Transaction Callbacks
の項にある、after_commit
、after_rollback
callbacksの処理中に例外が発生した場合の挙動についての説明の言い回しを修正しています。
LoggerSilence doesn't require concurrent:
activesupport/lib/active_support/logger_silence.rb
、
activesupport/lib/active_support/logger_thread_safe_level.rb
の修正です。
activesupport/lib/active_support/logger_silence.rb
から使用していないconcurrent
のrequireを削除、及び、Concurrent::Map
を使用しているactivesupport/lib/active_support/logger_thread_safe_level.rb
でconcurrent
をrequireするよう修正しています。
Bugfix ActiveRecord::Relation#merge special case of from clause
activerecord/lib/active_record/relation/merger.rb
の修正です。
ActiveRecord::Relation#merge
に、merge
を呼び出したRelationとは違うbase classを使用しているRelationを指定した場合に、baseのtableが予想外に置き換わってしまう(引数に指定した方のRelationになってしまう)バグがあったのを修正しています。
例。
# before Comment.joins(:post).merge(Post.from("posts")).to_sql # => SELECT "comments".* FROM posts INNER JOIN "posts" ON "posts"."id" = "comments"."post_id" # after Comment.joins(:post).merge(Post.from("posts")).to_sql # => SELECT "comments".* FROM comments INNER JOIN "posts" ON "posts"."id" = "comments"."post_id"
Merge pull request #33570 from mohitnatoo/queue_adapter_name_doc
activejob/lib/active_job/queue_adapter.rb
のdocの修正です。
ActiveJob::ActiveJob
moduleのqueue_adapter_name
メソッドにdocを追加しています。
Merge pull request #33348 from ruralocity/update-validation-contexts-guide
rails guideのActive Record Validations
の修正です。
Common Validation Options
の項の、:on
オプションについて説明している箇所のexampleコードの処理が不足していたのを追加、及び、exampleコードについての説明を修正しています。