2016/08/08分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Fix Accept header overridden when "xhr: true" in integration test
- Show cache hits and misses when rendering partials.
Defer requiring Rake until it's needed.
railties/lib/rails/commands/rake_proxy.rb
の修正です。
ファイルの先頭でrequire "rake"
をしていたのを、実際にrake
が必要になってからrake
のrequireを行うよう修正しています。
rake
のrequire処理は大変遅く、rails help
のようなrake
が不要な処理の実行が遅くなってしまうのを防ぐ為、との事です。
Merge pull request #24260 from y-yagi/show_error_message_when_error_raised_in_rails_runner
railties/lib/rails/commands/runner.rb
の修正です。
rails runner
実行時にSyntaxError
、NameError
が発生した場合に、Rails 5.0.0でエラーの詳細が表示されなくなっていたのを、再度詳細が表示されるよう修正しています。
Merge pull request #26076 from yui-knk/privatize_expand
activerecord/lib/active_record/relation/predicate_builder.rb
の修正です。
内部用のメソッドであるActiveRecord::PredicateBuilder#expand
の可視性をprivate
に変更しています。
Fix Accept header overridden when "xhr: true" in integration test
actionpack/lib/action_dispatch/testing/integration.rb
の修正です。
integration testのHTTP処理用メソッドにxhr: true
オプションを指定した場合に、Accept
headerに指定した値がRails側で強制的に上書きされてしまうバグがあったのを修正しています。
get '/page', headers: { 'Accept' => 'application/json' }, xhr: true request.accept # => `application/json`になるはずが、`text/javascript, text/html, application/xml, text/xml, */*`になってしまっていた
Modify LogSubscriber for single partial's cache message.
Action Pack、Action Viewの修正です。
cache
を使用しているpartial templateのrenderを行う際に、ログにcache hitかcache missかを表示するよう修正しています。
Rendered messages/_message.html.erb in 1.2 ms [cache hit] Rendered recordings/threads/_thread.html.erb in 1.5 ms [cache miss]
合わせて、元々表示していたfragment cacheのログはデフォルトでは表示しないようになりました。fragment cacheのログを表示したい場合は、config.action_controller.enable_fragment_cache_logging
にtrueを設定すれば表示されるようになります。
Add back unintentionally removed newline.
actionpack/lib/action_controller/log_subscriber.rb
の修正です。
メソッド定義の前に空行を追加しています。
Move CHANGELOG entry to the top.
actionview/CHANGELOG.md
の修正です。
先ほどコミットされたpartialsのrender時のログの修正の対応のエントリーを、ファイルの先頭に移動しています。
Add changelog entry to Action Pack as well.
actionpack/CHANGELOG.md
の修正です。
先ほどコミットされたpartialsのrender時のログの修正の対応について、CHANGELOGにエントリーを追加しています。
Action View、Action Controller両方に関係ある対応である為、Action Packの方にもエントリーを追加しています。
Extract common view cache dependency setup.
actionview/test/template/log_subscriber_test.rb
の修正です。
各テストそれぞれで行われていた view cache dependencyのセットアップ処理をメソッドに切り出していいます。
Assign config on base instead of on @controller
.
actionpack/test/controller/log_subscriber_test.rb
の修正です。
enable_fragment_cache_logging
の設定を@controller
インスタンス経由で行っていたのを、ActionController::Base
を直接参照するよう修正しています。
- @controller.enable_fragment_cache_logging = true + ActionController::Base.enable_fragment_cache_logging = true
テストの実行順によっては、@controller
とActionController::Base
が一致しないケースがある為。
copy-edits an exception message
actioncable/lib/action_cable/subscription_adapter/postgresql.rb
の修正です。
Action CableのadapterにPostgreSQLを使用、かつ、Active Recordの接続先がPostgreSQLじゃなかった場合のエラーメッセージの、Postgres
-> PostgreSQL
に修正、及びRailsのコンポーネント名の区切りにスペースを追加しています。
adds missing comma in assert call
actionpack/test/controller/resources_test.rb
の修正です。
assert
メソッドの引数指定にカンマが不足している箇所があったのを修正しています。
applies project convention for string literals
railties/test/application/runner_test.rb
の修正です。
Stringを作成するのにシングルクォートを使用していたのを、ダブルクォートを使用するよう修正しています。
revises most Lint/EndAlignment offenses
コード全体でEndAlignment
のスペースの調整を行っています。
例。
dependent = if dependent dependent - elsif options[:dependent] == :destroy - :delete_all - else - options[:dependent] - end + elsif options[:dependent] == :destroy + :delete_all + else + options[:dependent] + end
上記のような場合に、else
の位置をどこに合わせるかなのですが、元々はif
の位置に揃えてあったのを、左端に揃えるよう修正しています。
code gardening: removes redundant selfs
コード全体から不要なself
を削除しています。
explain why aliasing uses explicit selfs [ci skip]
activesupport/lib/active_support/core_ext/module/aliasing.rb
のdocの修正です。
Module#alias_attribute
メソッド内のdocに、何故self
を使用しているのかについての説明を追加しています。
activesupport/lib/active_support/core_ext/module/aliasing.rb
のdocの修正です。
order
をotder
にタイポしていたのを修正しています。
Merge pull request #25681 from willnet/fix-thread_mattr_accessor
activesupport/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb
の修正です。
thread_mattr_accessor
を定義しているクラスのサブクラスで値を設定した場合に、親クラスの値も更新してしまうバグがあったのを修正しています。
class Account thread_mattr_accessor :user end class Customer < Account end Account.user = "DHH" Customer.user = "Rafael"
# before Account.user # => "Rafael" # after Account.user # => "DHH"
let instance thread_mattr_* methods delegate to the class-level ones
activesupport/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb
の修正です。
インスタンスのthread_mattr_*
メソッドの処理をclassのthread_mattr_*
メソッドにdelegateするよう修正しています。
class_eval(<<-EOS, __FILE__, __LINE__ + 1) def #{sym} - Thread.current["attr_"+ self.class.name + "_#{sym}"] + self.class.#{sym} end EOS
クラスメソッドとインスタンスメソッドで同じ内容を行っている為、との事です。
Use FETCH FIRST
for Oracle12 database and Arel Oracle12 visitor
activerecord/test/cases/finder_test.rb
、
activerecord/test/cases/scoping/relation_scoping_test.rb
の修正です。
limitを使用した場合に生成されるSQLを確認するテストで、生成されるSQLの一覧にFETCH FIRST
を追加しています。
- assert_sql(/LIMIT|ROWNUM <=/) { Topic.take(3).entries } - assert_sql(/LIMIT|ROWNUM <=/) { Topic.first(2).entries } - assert_sql(/LIMIT|ROWNUM <=/) { Topic.last(5).entries } + assert_sql(/LIMIT|ROWNUM <=|FETCH FIRST/) { Topic.take(3).entries } + assert_sql(/LIMIT|ROWNUM <=|FETCH FIRST/) { Topic.first(2).entries } + assert_sql(/LIMIT|ROWNUM <=|FETCH FIRST/) { Topic.last(5).entries }
Oracle12 ではFETCH FIRST
が使われる為、との事です。へー。