なるようになるブログ

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

rails commit log流し読み(2014/04/20)

2014/04/20分のコミットです。

URLエスケープ処理で、エスケープ対象として"%"を追加する機能変更が入っています。元々エスケープされたデータがくるのを期待していた所が、アンエスケープデータをとるように変わっています。


Don't rely on Arel master in bug report template [ci skip]

バグ報告用のテンプレートファイルの修正です。読み込むgemからgem 'arel', github: 'rails/arel'を削除しています。

railsではバグ報告の際に使用するサンプル用のテンプレートが提供されており、そのうちActive Recordのmaster用の方のファイルを修正。

arelの方の仕様が変わっているらしく、masterブランチを使用するとテンプレートファイルがエラーになってしまうので、masterブランチを使用するのはやめるようにしています。


Remove statement assuming coffee shop/public space wifi is inherently insecure

rails guideの修正。securityのページから、不要な一行を削除。ちなみに、その1行は以下。

This is one more reason not to work from a coffee shop.

余計なお世話といえば、余計なお世話ですが。


Always escape string passed to url helper.

actionpack/lib/action_dispatch/journey/router/utils.rbの修正。

URIエスケープ用の処理で、エスケープ対象として"%"を追加しています。

"%"についてはエスケープされた事を前提としてたようですが、実際は"%"がエスケープされずに使われているようなので、"%"をエスケープに追加した、というようです。

動的にURLを生成するroutingを書いていた場合、

before:
  app.wiki_path('foo%bar') # /wiki/foo%bar

after:
  app.wiki_path('foo%bar') # /wiki/foo%25bar

このように生成されるroutingが異なります。


Optimize URI escaping

URIエスケープ処理の改善。

URI::Parser#escapeを呼び出して行っていたエスケープ処理を、自前で記述している、であっているのかな…。


Make URL escaping more consistent

URLエスケープ処理を、諸々修正。CHANGE LOGには以下のように記載されています。

1. URL'%'をエスケープ処理するから、URL helperには、'%'をエスケープしていないデータを渡すようにして下さい。

2. '/'をエスケープするための`escape_segment` helperを`Router::Utils`に追加

3. 最適化されたURLを作成するには、`escape_fragmen`よりも`escape_segment`を使用して下さい

4. URL生成には`escape_path`よりも`escape_segment`を使用して下さい

上記2つのコミットと併せて説明が追加されています。

外から使用する方としては'%'エスケープ処理の変更が影響あるかもしれません。


Grammar fix in Getting Started Guide

rails guideの修正。文法の修正のみです。