2017/03/28分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
activemodel/CHANGELOG.md
Merge pull request #28367 from ptoomey3/ignore-disabled-buttons
actionview/app/assets/javascripts/features/disable.coffee
、
actionview/app/assets/javascripts/rails-ujs.coffee
の修正です。
elementにdisabled
が設定されている場合に、rail-ujsのeventを実行しないよう修正しています。
通常、対象となるelementにdisabled
が設定されていれば当然eventは発火しないのですが、
<button type="submit" disabled="disabled" data-confirm="Confirm"><strong>Click me</strong></button>
上記のようなhtmlがあった場合に、strong
タグのテキストをクリックした場合の挙動はブラウザによって異なる為、上記のような場合にもeventが発生しないようujs側でガード処理を入れた、との事です。へー。
Add probot/stale configuration
Integrations - probot-staleの設定をrails/rails
リポジトリに追加しています。
.github/stale.yml
の修正です。
probotが設定するlabelをstale
に修正しています。
activerecord/lib/active_record/connection_adapters/postgresql/referential_integrity.rb
、
activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
の修正です。
fixturesのインサート処理等のように、一時的に外部キー制約を無効にしたい場合、PostgreSQLではDISABLE TRIGGER ALL
を使用するようになっていたのを、SET CONSTRAINTS ALL DEFERRED
が使用出来る場合(9.4.2以上)の場合、そちらを使用するよう修正しています。
SET CONSTRAINTS ALL DEFERRED
はDISABLE TRIGGER ALL
と異なりsuperuser権限は不要です。
Merge pull request #28488 from kamipo/preprocess_association_query_handling
activerecord/lib/active_record/relation/predicate_builder.rb
の修正です。
predicate builderでassociation queryの処理が後処理で行われていたのを、処理の最初に行うよう修正しています。
これにより、不要なskip処理やガード句を減らせる為、との事です。
Merge pull request #28050 from namusyaka/avoid-converting-int-into-float
activemodel/lib/active_model/validations/numericality.rb
の修正です。
Numericality Validatorが、validateする値にStringを指定された場合、validation処理実行時に値をFloatに変更して処理を行っていたのを、値がIntegerと思われる場合Integerとして処理を実行するよう修正しています。
Floatに変換してしまうと、less_than_or_equal_to
等のチェックが正しく行われない為。
railties/lib/rails/application/configuration.rb
の修正です。
log_level
のデフォルトを全ての環境で:debug
になるよう修正しています。
元々Rails 5.0で:debug
にするよう、deprecateメッセージも出していた(Remove deprecation warning when log_level is not explicit set on prod…)のですが、値の変更が漏れていた為、こんかい対応したとの事です。
Merge pull request #28546 from claudiob/drop-j-option
railties/lib/rails/generators/app_base.rb
の修正です。
rails new
コマンドから-j (--javascript)
オプションを削除しています。
元々prototype-rails
やjquery-rails
のようにJSをラップしたgemを指定する為のオプションだったのですが、prototype
はもう使われなくなり、jquery
ももうデフォルトでは無くなった為、オプション自体もう不要だろうという事で削除されています。
railtiesの修正です。
API-only Applicationsでapp:update
タスクを実行した場合に、API-only Applicationsに不要なファイル(config/initializers/assets.rb
、bin/yarn
等)が生成されてしまっていたのを、削除するよう修正しています。
Make sure that ActionController::Api can include helpers
actionpack/test/controller/api/with_helpers_test.rb
の修正です。
ActionController::API
がhelpersをinclude出来る事を確認するテストを追加しています。
Fix the tests to test what they should be testing
railties/test/application/middleware/cache_test.rb
の修正です。
cacheのテストで、headerの指定方法に誤りがあったのを修正しています。 Rack::Test
を使用している場合、HTTP_
にマッチするフォーマットを指定する必要があるんですねえ。
No need to duplicate 5-1-stable CHANGELOG. [ci skip]
railties/CHANGELOG.md
の修正です。
scaffoldで生成するform用のhtmlで、field idを出力するよう修正した対応(Use short-form for the scaffold render calls and drop the needless test)のエントリーを削除しています。
Rails 5.1にバックポートされた対応であり、Rails 5.2の新機能では無い為。
Return unmapped timezones from country_zones
activesupport/lib/active_support/values/time_zone.rb
の修正です。
ActiveSupport::TimeZone.country_zones
メソッドに、ActiveSupport::TimeZone::MAPPING
に定義されていないコードを指定した場合、空配列が返されていたのを、正しいtime zoneの値を返すよう修正しています。
# before ActiveSupport::TimeZone.country_zones('GT') # => [#<ActiveSupport::TimeZone:0x007ff9f0c61c08 @name="Central America", @utc_offset=nil, @tzinfo=#<TZInfo::DataTimezone: America/Guatemala>>] ActiveSupport::TimeZone.country_zones('SV') # => [] # after ActiveSupport::TimeZone.country_zones('GT') # => [#<ActiveSupport::TimeZone:0x007ff9f0c61c08 @name="Central America", @utc_offset=nil, @tzinfo=#<TZInfo::DataTimezone: America/Guatemala>>] ActiveSupport::TimeZone.country_zones('SV') # => [#<ActiveSupport::TimeZone:0x00555b99229288 @name="America/El_Salvador", @utc_offset=nil, @tzinfo=#<TZInfo::DataTimezone: America/El_Salvador>>]
MAPPING
に定義されていない値については、TZInfo::Country#zone_identifiers
から値を取得するようになっています。