2016/05/07分のコミットです。
CHANGELOGへの追加はありませんでした。
Fix link in 'Configuring Rails Applications' [ci skip]
rails guideのConfiguring Rails Applications
の修正です。
Passenger manual へのリンクが壊れてしまっていたのを修正しています。
Array#split refactoring for case with block
activesupport/lib/active_support/core_ext/array/grouping.rb
の修正です。
Array#split
のリファクタリングを行っています。
def split(value = nil) + arr = self.dup + result = [] if block_given? - inject([[]]) do |results, element| - if yield(element) - results << [] - else - results.last << element - end - - results + while (idx = arr.index { |i| yield i }) + result << arr.shift(idx) + arr.shift end else - arr = self.dup - result = [] while (idx = arr.index(value)) result << arr.shift(idx) arr.shift end - result << arr end + result << arr end
性能測定の結果は下記の通り。ちょっと早くなっています。
arr = (1..12).to_a Benchmark.ips do |x| x.report('before') { arr.split { |i| i % 3 == 0 } } x.report('after') { arr.split2 { |i| i % 3 == 0 } } x.compare! end
Calculating ------------------------------------- before 26.319k i/100ms after 29.414k i/100ms ------------------------------------------------- before 350.623k (± 1.6%) i/s - 1.763M after 416.227k (± 1.4%) i/s - 2.088M Comparison: after: 416226.8 i/s before: 350622.8 i/s - 1.19x slower
Fix broken links in 'Ruby on Rails 2.3 Release Notes' [ci skip]
rails guideのRuby on Rails 2.3 Release Notes
の修正です。
各外部ページへのリンクが壊れてしまっていたのを、まとめて修正しています。
Allow the connection adapters to determine the order of bind params
activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
、
activerecord/lib/active_record/relation/query_methods.rb
の修正です。
bind parametersを設定する順番をconnection adapters毎に設定出来るよう対応しています。
Rails 5からlimit
とoffset
でもbind parametersを使用するようになったのですが、limit
/ offset
を指定するシンタックスがDB毎に多少異なる(limit
が先かoffset
が先かが微妙に違う)為、connection adapter毎に指定出来るよう、bind parametersを設定する処理をメソッド(#combine_bind_parameters
)に切り出しています。
参考:bound_attributes needs support to change limit and offset orders · Issue #24775 · rails/rails
activerecord/test/cases/tasks/database_tasks_test.rb
の修正です。
migration taskのテストで、transactionを無効化するよう修正しています。
テスト内でDDLの変更を行っているのですが、MySQLはtransaction内でのDDLの変更を許容していない為。
rails guideのRuby on Rails 5.0 Release Notes
の修正です。
use_transactional_fixtures
がuse_transactional_tests
に変更になった対応についてentryを追加しています。
Merge pull request #24029 from rthbound/dont-call-each-when-calling-body-on-response
Action Packの修正です。
controllerの中で、response.body
の値を読み込んだ後にresponse.headers
の値を設定しようとした場合に、エラーになってしまっていたのを修正しています。
BoomerAPI is not used anywhere, so removed it!
actionpack/test/dispatch/debug_exceptions_test.rb
の修正です。
使用していないBoomerAPI
クラスを削除しています。
Make flash messages cookie compatible with Rails 4
actionpack/lib/action_dispatch/middleware/flash.rb
の修正です。
#to_session_value
が返すHashにdiscard
を追加しています。
- {'flashes' => flashes_to_keep} + { 'discard' => [], 'flashes' => flashes_to_keep }
Rails 4へのコンパチ(Rails 5のアプリで作成したflashをRails 4のアプリで表示する際に必要)の為との事です。
Merge pull request #24844 from arthurnn/arthurnn/conn
Active Recordの修正です。
connection handlerのリファクタリングを行っています。
元々は、connection handler内でActive Recordのmodelの情報を保持するようになっていたのですが、それはやめて、specの情報だけ保持するようにしています。
また、spec名はクラス毎に指定出来るようになっています。
issueより。
# database.yml production: database: ... readonly: database: ...
class User < ApplicationRecord self.connection_specification_name = "readonly" end
または
class User < ApplicationRecord def self.connection_specification_name @in_readonly_mode ? "readonly" : "primary" end end
Upgrade all gems to make sure Rails works with rack 2.0.0.rc1
Gemfile.lock
の修正です。
各Railsで使用しているgemのバージョンをあげています。Rack 2.0.0.rc1を使用する為との事です。
tasks/release.rb
の修正です。
tagを作成する際に署名付きのタグを作成するよう、git tag
コマンドのオプションに-s
オプションを追加しています。
Fix etag expectation to work with the SHA256
railties/test/application/middleware_test.rb
の修正です。
etagの値をMD5からSHA256の値に変更しています。Rack側でetagを生成する際にSHA256を使用するよう変更になった為。参考:use sha256 for ETag generation · rack/rack@7b66d2c
各docの修正です。