2018/05/22分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
ctivestorage/CHANGELOG.md
Merge pull request #32523 from kaspth/enumerable-index-with-extension
activesupport/lib/active_support/core_ext/enumerable.rb
の修正です。
Enumerable
moduleにindex_with
メソッドを追加しています。
index_with
はenumerableの値をkeyとしたHashを生成する事が出来ます。Hashのkeyはblockで指定、又は、メソッドの引数で指定出来ます。
post = Post.new(title: "hey there", body: "what's up?") %i( title body ).index_with { |attr_name| post.public_send(attr_name) } # => { title: "hey there", body: "what's up?" } %i( title body ).index_with(nil) # => { title: nil, body: nil }
Merge pull request #32936 from jacobsmith/image-variant-allow-disabling-options
activestorage/app/models/active_storage/variation.rb
の修正です。
variant
に渡す引数にfalse
、または、nil
を指定した場合、そのオプションをprocessorに渡さないよう修正しています。
例えば、avatar.variant(monochrome: false)
とした場合、monochrome
オプションは渡されなくなります。
Disable foreign keys during alter_table
for sqlite3 adapter
activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
の修正です。
sqlite3 adapterでalter_table
を実行する際に外部キー制約を無効化するよう修正しています。
sqlite3ではalter_table
を実行する際、変更後のschema及び元のデータをコピーし一時テーブルを作成、そして元のテーブルを削除し、最後に一時テーブルを元のテーブルにリネーム、というような流れで処理が行われます。
で、外部キー制約が設定されたままだと、そのテーブルの削除処理でエラーになってしまう為、処理中は外部キー制約を無効化するよう修正しています。
Allow Range#=== and Range#cover? on Range
Active Supportの修正です。
元々Range#===
はRange#include?メソッドを使ってチェックを行っていたのですが、これを
cover?`を使うようRuby側で変更が行われました(コミット)。
で、この影響でRuby 2.6でRange#===
の挙動が変わってしまっていたのを修正しています(Range#cover?
を追加して対応しています)。
参考:Feature #14575: Switch Range#=== to use cover? instead of include?
activesupport/CHANGELOG.md
、及び、Rails guideのActive Support Core Extensions
の修正です。
先のRange
の対応についてCHANGELOGにエントリーを追加、及び、guideに説明を追加しています。