なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2018/06/19)

2018/06/19分のコミットです。

CHANGELOGへの追加はありませんでした。


Add test case for the | token in Journey scanner

actionpack/test/journey/route/definition/scanner_test.rbの修正です。

Journey scannerで| tokenを指定した場合のテストを追加しています。


Fix Ruby version in .ruby-version

railties/lib/rails/generators/rails/app/templates/ruby-version.ttの修正です。

ruby-versionRubyのバージョンを指定する際に、ENV["RBENV_VERSION"]、及び、ENV["rvm_ruby_string"]の値を参照するよう修正しています。

-<%= "#{RUBY_ENGINE}-#{RUBY_ENGINE_VERSION}" -%>
+<%= ENV["RBENV_VERSION"] || ENV["rvm_ruby_string"] || "#{RUBY_ENGINE}-#{RUBY_ENGINE_VERSION}" -%>

"#{RUBY_ENGINE}-#{RUBY_ENGINE_VERSION}"だと、stable version以外のversion(2.5.0.rc1jruby-9.2.0.0-SNAPSHOT)と一致しない為。


Removed useless utility classes inside HABTM association builder

activerecord/lib/active_record/associations/builder/has_and_belongs_to_many.rbの修正です。

HasAndBelongsToMany associationのbuild処理で、build処理用のユーティリティクラスを削除するようリファクタリングしています。


Merge pull request #33134 from dasch/dasch/extra-cache-controls

actionpack/lib/action_controller/metal/conditional_get.rbactionpack/lib/action_dispatch/http/cache.rbの修正です。

expires_inメソッドに、stale-while-revalidate、及び、stale-if-error Extensionのサポートを追加しています。

オプションにstale_while_revalidatestale_if_errorオプションが指定出来るようになっており、指定した値がそのままCache-Control ヘッダーに含まれるようになっています。

参考:RFC 5861 - HTTP Cache-Control Extensions for Stale Content


Ensure to calculate column aliases after all table aliases are constructed

Active Recordの修正です。

すべてのtable aliases の構築が終わった後にcolumn aliasesの生成を行うよう修正しています。

元々は、FROM句ですべてのtable aliasesの作成する前に、eager loadingに使用されるcolumn aliasesの生成が行われていました。

ただそれだと、joinとeager loadingの両方に同じテーブルのassociatonが指定された場合に、column aliasesとtable aliasesでaliasの値が一致しなくなるケースが発生してしまっていました。

で、その問題に対応する為、column aliasesの生成をすべてのtable aliasesの構築後に行うようにしています。