faradayライブラリのwarning

Rubyの1.9にてfaradayライブラリを使うとwarningが出て気持ち悪い件の対処方法について。

現象

使うたびにwarningが出て、大変なことになる。
実際に出てくるwarningメッセージ

/opt/lib/ruby/gems/1.9.1/gems/faraday-0.7.4/lib/faraday/utils.rb:128: warning: rto UTF-8 string

対処方法

「faraday/utils.rb」のとある1行を書き換える。

変更前

    def escape(s)
      s.to_s.gsub(/([^a-zA-Z0-9_.-]+)/n) do
        '%' << $1.unpack('H2'*bytesize($1)).join('%').tap { |c| c.upcase! }
      end
    end

対応後

    def escape(s)                    #↓ここを修正
      s.to_s.gsub(/([^a-zA-Z0-9_.-]+)/u) do
        '%' << $1.unpack('H2'*bytesize($1)).join('%').tap { |c| c.upcase! }
      end
    end

gsubの正規表現にて使用している「n」を「u」に変えるだけ。
これでwarningは出なくなる。
対応方法が正しいかはメンドイのでまったく考えていない・・・