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は出なくなる。
対応方法が正しいかはメンドイのでまったく考えていない・・・