なるようになるブログ

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

rails commit log流し読み(2018/03/23)

2018/03/23分のコミットです。

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


Merge pull request #32319 from yahonda/no_monkeypatch_for_ruby260

activesupport/lib/active_support/core_ext/uri.rbの修正です。

URI::Parser#unescapeのモンキーパッチをRuby 2.6.0未満でだけ適応するよう修正しています。

Ruby本体のunescapeメソッドで、元の文字列のEncodingがUS-ASCIIだったらpackした結果をUTF-8に変換する対応が含まれ、Ruby 2.6ではモンキーパッチが不要になった為。

参考:set UTF-8 if given URI string is ASCII


Remove unused variable

activesupport/lib/active_support/core_ext/uri.rbの修正です。

使用していない変数を削除しています。


Merge pull request #32316 from rails/fix-non-ascii-static-file-serving

actionpack/lib/action_dispatch/middleware/static.rbの修正です。

ActionDispatch::StaticクラスでpathをASCII-8BITエンコーディングで扱うよう修正しています。

rackではそもそもPATH_INFOをASCII-8BITエンコーディングのStringとして扱うのですが、FileHandler#match?メソッドでRack::Utils.escape_pathを使う事により、エンコーディングがUS-ASCIIになってしまっていました(escape_pathはUS-ASCIIエンコーディングのStringを返す為)。

その影響でエンコーディングが混在した状態になってしまっており、Encoding::CompatibilityErrorが発生する状態になってしまっていた為、ActionDispatch::Static内部ではString#bで変換し、pathはASCII-8BITエンコーディングで扱うよう統一しています。


Merge pull request #32315 from huacnlee/fix/local-cache-read-multi-entry-return

activesupport/lib/active_support/cache/strategy/local_cache.rbの修正です。

with_local_cacheメソッドのブロック内でread_multiメソッドを使用していた場合に、メソッドの返り値がraw valueではなくActiveSupport::Cache::Entryインスタンスになってしまうバグがあったのを修正しています。


Fix that touch(:updated_at) causes multiple assignments on the column

activerecord/lib/active_record/persistence.rbの修正です。

touchメソッドにSymbolでカラム名を指定した場合にエラーになってしまうバグがあったのを修正しています。