2017/11/26分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #31006 from rails/kamipo/ordinal_methods_should_respect_loaded_records
activerecord/lib/active_record/relation.rb
の修正です。
Active Recordのordinal methods(first
やsecond
等)で、recordsがロード済みの場合、ロード済みの値を使用するよう修正しています。
が、懸念がある(別のPRで進めている内容と矛盾しているらしい)為、後ほどrevertされています。
Merge pull request #30510 from yhirano55/add_nodoc_to_activerecord
Active Recordのdocの修正です。
Active Record内部でだけで使用するclass、moduleに:nodoc:
を指定しています。
Merge pull request #24510 from vipulnsward/make-variable_size_secure_compare-public
activesupport/lib/active_support/security_utils.rb
の修正です。
ActiveSupport::SecurityUtils.secure_compare
メソッドが、値の比較をする前にSHA256でハッシュ値に変換してから比較するよう修正しています。timing attacksにより値の長さが漏れてしまうのを防ぐ為。
ハッシュ値に変換せずに値を比較する処理としてActiveSupport::SecurityUtils.fixed_length_secure_compare
メソッドが追加されている為、元のsecure_compare
と同じ事をしたい場合は、左記メソッドを使用すればOKです。
Compare the actual string after comparing the HMAC proccessed strings
activesupport/lib/active_support/security_utils.rb
の修正です。
ActiveSupport::SecurityUtils.secure_compare
メソッドで、ハッシュ値に変換した値の比較処理の後に、元の値の比較処理を行うよう修正しています。
Merge pull request #30879 from toptal/add_better_logging_to_delayed_job
activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb
の修正です。
jobのadapterにDelayed::Jobを使用している場合に、ログにjob class、job id、jobの引数等の詳細な情報を出力するよう修正しています。
Merge pull request #29439 from npezza93/set-skip-default-ids
Action Viewの修正です。
form_with
配下のタグで、デフォルトでid
属性を生成するよう修正しています。
form_with
が最初に実装された時は、頻繁に重複したIDを生成してしまいそんなに使われる情報では無いだろう、という事でid
は生成しないようにしていた(form_with/fields: Don't output ids by default)のですが、Capybaraでテストをする際等にid
は必要だろう、という事で、デフォルトで生成する事になりました。
id
を生成したく無い場合(5.1と同じ挙動)はconfig.action_view.form_with_generates_ids
にfalseを指定すればOKです。
Provide arguments to RecordNotFound
Active Recordの修正です。
ActiveRecord::RecordNotFound
をraiseする際、引数にmodel名、primary key、及び、idを指定するよう修正しています(値が指定出来る場合のみ)。
元々RecordNotFound
クラスの引数に上記パラメータはあったのですが、コードによって引数を渡したり渡さなかったり、という状態になっていた為、可能な限り引数を渡すよう統一しています。
Use parentheses for multi-line method calls
railties/lib/rails/application.rb
、railties/lib/rails/generators/rails/credentials/credentials_generator.rb
の修正です。
複数行に渡るメソッド呼び出しを行う場合に、"/"で改行していたのを、中括弧を使用するよう修正しています。
- ActiveSupport::CachingKeyGenerator.new \ + ActiveSupport::CachingKeyGenerator.new( ActiveSupport::KeyGenerator.new(secret_key_base, iterations: 1000) + )
スタイルガイドに合わせる為。
Make sure that form_with_generates_ids only affects form_with
Action Viewの修正です。
config.form_with_generates_ids
の設定がform_with
、及び、fields
メソッドでのみ参照するようにし、他のタグ生成メソッドでは直接form_with_generates_ids
を参照しないよう修正しています。
Add test to make sure form_for is not affected by
actionview/test/template/form_helper_test.rb
の修正です。
ActionView::Helpers::FormHelper.form_with_generates_ids
にfalse
を指定した場合のテストを追加しています。
Renove duplicated and wrong test
activesupport/test/security_utils_test.rb
の修正です。
重複してあったvariable_size_secure_compare
メソッドのテストを削除しています。
Merge pull request #31181 from tenshilg/fix-api-guides
rails guideのUsing Rails for API-only Applications
の修正です。
Adding Other Modules
の項、basic
やdigest
等のauthenticationを使用したい場合に追加するmodule名が誤っていたのを修正しています。
Remove duplicated form_with_generates_remote_forms
setting
railties/lib/rails/application/configuration.rb
の修正です。
action_view.form_with_generates_remote_forms
への値の設定処理が複数回行われていたのを修正しています。
Flush idle database connections
Active Recordの修正です。
idle状態のコネクションを自動で切断するよう修正しています。デフォルトでは300秒以上使われていないコネクションが自動で切断されるようになっています。切断までの時間はconfig(idle_timeout
)で変更可能になっています。
Let rubygems handle our objection to mysql2 0.4.3
activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb
の修正です。
Mysql2::VERSION
が0.4.3だった場合にエラーをraiseしていたのを、gemロード時に0.4.3
をロードしないよう修正しています。
-gem "mysql2", ">= 0.3.18", "< 0.5" +gem "mysql2", ">= 0.3.18", "< 0.5", "!= 0.4.3" require "mysql2" -raise "mysql2 0.4.3 is not supported. Please upgrade to 0.4.4+" if Mysql2::VERSION == "0.4.3"
Merge pull request #31232 from weedySeaDragon/engines-guide-copyediting--neutral-copyediting-171126
rails guideのGetting Started with Engines
の修正です。
各項のグラマーの修正を行っています。
Revert "Remove stopgap_13632 entirely for now: it doesn't support 2.2.8"
Gemfile
の修正です。
Gemfile
にstopgap_13632
を追加しています。stopgap_13632
がRuby 2.2.8をサポートし、再度使用出来る状態になった為。