2015/12/31分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #22241 from kamipo/add_columns_for_distinct_for_mysql57
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rbの修正です。
MySQLのadapterに、引数のカラム名とORDER BY句からSELECT DISTINCTの為のカラムを生成する#columns_for_distinctメソッドを追加しています。
元々はORDER BY句の値に関係無く引数のcolumnsの値をそのまま返すだけだったのですが、MySQL 5.7.5から、ONLY_FULL_GROUP_BYがSELECT DISTINCTとORDER BY句にも影響を与えるようになり、ORDER BY句に指定したカラム名をSELECT DISTINCTに指定する必要が出来た為、ORDER BY句に指定したカラム名も返すようメソッドを追加したようです。
# before ActiveRecord::Base.connection.columns_for_distinct("posts.id", ["posts.created_at desc", "posts.position asc"]) #=> "posts.id" # after ActiveRecord::Base.connection.columns_for_distinct("posts.id, posts.name", ["posts.created_at desc", "posts.id"]) #=> "posts.id, posts.name, posts.created_at AS alias_0, posts.id AS alias_1"
参考:MySQL :: MySQL 5.7 Reference Manual :: 12.20.3 MySQL Handling of GROUP BY
Fix test for AC::Parameters#to_unsafe_h
actionpack/test/controller/parameters/parameters_permit_test.rbの修正です。
ActionController::Parameters#to_unsafe_hメソッドのテストで、ActionController::Parameters#to_hメソッドを使用してしまっていたのを、正しく#to_unsafe_hメソッドを使用するよう修正しています。
Avoid Time.parse for static date
actionpack/lib/action_controller/metal/conditional_get.rbの修正です。
固定の値からTimeインスタンスを生成するのに、Time.parseを使用していたのを、Time.newを使用するよう修正しています。
yield if stale?(etag: "#{version}-#{request.fullpath}", - last_modified: Time.parse('2011-01-01').utc, + last_modified: Time.new(2011, 1, 1).utc,
Time.newの方が早い為、との事です。コミットログに記載されてあったベンチマークは下記の通りです。
Benchmark.ips do |x| x.report('Time.parse') { Time.parse('2011-01-01') } x.report('Time.new') { Time.new(2011, 1, 1) } end
Calculating -------------------------------------
Time.parse 6.640k i/100ms
Time.new 15.082k i/100ms
-------------------------------------------------
Time.parse 71.915k (± 3.1%) i/s - 365.200k
Time.new 167.645k (± 3.3%) i/s - 844.592k
Add sass-rails back to the default Gemfile
railties/lib/rails/generators/app_base.rbの修正です。
デフォルトのGemfileにsass-railsが記載されるよう修正しています。
Use sprockets 3 in the Rails 5 release · rails/rails@877a411で誤って削除してしまい、それを戻したとの事です。
[ci skip] Update rails/all.rb reference.
rails guideのThe Rails Initialization Processの修正です。
railties/lib/rails/all.rbのコードを記載している箇所が、実際のコードの異なっていたのを、実際のコードと同じ内容に修正しています。
[ci skip] Space out framework names in USAGE
railties/lib/rails/generators/rails/model/USAGE、
railties/lib/rails/generators/rails/scaffold/USAGEの修正です。
Active ModelをActiveModelに、Active RecordをActiveRecordにそれぞれタイポしている箇所があったのを修正しています。
rails guideのA Guide to Testing Rails Applicationsの修正です。
What to Include in your Functional Testsの項で、scaffold_controllerの実行例を記載している箇所でbody:textをbody:testにタイポしていたのを修正しています。
Fix collection_radio_buttons' hidden_field name and make it appear before the radios
actionview/lib/action_view/helpers/tags/collection_check_boxes.rb、
actionview/lib/action_view/helpers/tags/collection_helpers.rbの修正です。
collection_radio_buttonsメソッドでhidden fieldのnameに不要な[]がついてしまったのを削除、及び実際のtagより先にhidden fieldを表示するよう修正しています。hidden fieldタグで実際の値の方を上書きしてしまうのを防ぐ為、のようです。
Merge pull request #12877 from aroben/extended-graphemes
activesupport/lib/active_support/multibyte/unicode.rbの修正です。
ActiveSupport::Multibyte::Unicode moduleに、拡張書記素クラスタ(extended grapheme cluster)とUnicode標準附属書29(UAX #29)のサポートを追加しています。
Add CHANGELOG entry for #12877 [ci skip]
先のunicodeの対応についてCHANGELOGに追記しています。
Merge pull request #22826 from timrogers/actiondispatch-ssl-config
actionpack/lib/action_dispatch/middleware/ssl.rbの修正です。
ActionDispatch::SSLクラスで、secure cookiesを使用するかどうかを#newメソッドのsecure_cookies引数で指定出来るよう対応、及び#newメソッドのredirect引数がnil / falseだった場合、httpからhttpsへの強制redirect処理は行わないよう対応しています。
Merge pull request #22105 from morgoth/fix-errors-details-on-autosave-associations
activerecord/lib/active_record/autosave_association.rbの修正です。
Autosave Associationを使用していエラーになった際に、Add ActiveModel::Errors#detailsにそのエラー情報の詳細が格納されないバグがあったのを修正しています。
Lets not put fullstop at the end of a migration pending command
activerecord/lib/active_record/migration.rbの修正です。
PendingMigrationErrorが発生した場合のエラーメッセージにの末尾からピリオドを削除しています。
- super("Migrations are pending. To resolve this issue, run:\n\n\tbin/rails db:migrate RAILS_ENV=#{::Rails.env}.") + super("Migrations are pending. To resolve this issue, run:\n\n\tbin/rails db:migrate RAILS_ENV=#{::Rails.env}")
表示されたメッセージを使用して再実行するのに、あると邪魔だから、という理由のようです。
Fix AC::Parameters#to_unsafe_h to return all unfiltered values
actionpack/lib/action_controller/metal/strong_parameters.rbの修正です。
ActionController::Parametersの値がnestしたActionController::Parametersだった場合に、ActionController::Parameters#to_unsafe_hがpermitしていない値をかえさないバグがあったのを修正しています。
foo = ActionController::Parameters.new("f"=>{"language_facet"=>["Tibetan"]}) foo['f'].class #=> ActionController::Parameters # before foo.to_unsafe_h #=> {"f"=>{}} # after foo.to_unsafe_h #=> {"f"=>{"language_facet"=>["Tibetan"]}}