Ruby Issue Tracking System: Issues
https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2012-11-05T09:45:28Z
Ruby Issue Tracking System
Redmine
Backport193 - Backport #7278 (Closed): 'warning: regexp match /.../n against to UTF-8 string' in ...
https://bugs.ruby-lang.org/issues/7278
2012-11-05T09:45:28Z
kakutani (Shintaro KAKUTANI)
<p>かくたにです。<br>
UTF-8のメールをRails 3.2.8 のActionMailerから出そうとすると、<br>
'warning: regexp match /.../n against to UTF-8 string' の警告が出ます。<br>
添付のパッチではASCII-8BITにforce_encodingする方法にしてみました。</p>
<p>過去1ヶ月の間にもモンキーパッチでしのいでる方を複数見かけたので、対応いただければと思っております。<br>
<a href="http://dev.ywesee.com/Yasu/20121012-create-fachinfo-chapter-exporter-job" class="external">http://dev.ywesee.com/Yasu/20121012-create-fachinfo-chapter-exporter-job</a><br>
<a href="http://d.hatena.ne.jp/benikujyaku/20111002/1317536555" class="external">http://d.hatena.ne.jp/benikujyaku/20111002/1317536555</a></p>
<p>よろしくお願いします。</p>
Ruby master - Bug #1297 (Closed): Pathname#subの挙動について
https://bugs.ruby-lang.org/issues/1297
2009-03-17T13:44:55Z
kakutani (Shintaro KAKUTANI)
<p>=begin<br>
かくたにです。</p>
<p>Pathname#subを使って、ファイルパスからファイル名っぽいものを<br>
抜きだそうとしたらうまくいきませんでした。</p>
<p><a href="http://gist.github.com/80263" class="external">http://gist.github.com/80263</a><br>
$ ruby191 -rpathname -ve '<br>
path = "/Users/home/moro/work/xxx/spec/fixtures/me.png"<br>
re = /^.*#{File::SEPARATOR}([^#{File::SEPARATOR}]+)$/<br>
p Pathname.new(path).sub(re){ $1 } # => #<a href="Pathname:" class="external">Pathname:</a><br>
p Pathname.new( Pathname.new(path).instance_variable_get("@path").dup.sub(re){ $1 } ) # => #<a href="Pathname:me.png" class="external">Pathname:me.png</a>'<br>
ruby 1.9.1p0 (2009-01-30) [i386-darwin9.6.0]<br>
#<a href="Pathname:" class="external">Pathname:</a><br>
#<a href="Pathname:me.png" class="external">Pathname:me.png</a></p>
<p>1.8.7でも同様です(というか最初は1.8.7で遭遇)。</p>
<p>$ ruby187 -rpathname -ve '<br>
path = "/Users/home/moro/work/xxx/spec/fixtures/me.png"<br>
re = /^.*#{File::SEPARATOR}([^#{File::SEPARATOR}]+)$/<br>
p Pathname.new(path).sub(re){ $1 } # => #<a href="Pathname:" class="external">Pathname:</a><br>
p Pathname.new( Pathname.new(path).instance_variable_get("@path").dup.sub(re){ $1 } ) # => #<a href="Pathname:me.png" class="external">Pathname:me.png</a>'<br>
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9]<br>
#<a href="Pathname:" class="external">Pathname:</a><br>
#<a href="Pathname:me.png" class="external">Pathname:me.png</a></p>
<p>これは、Rails2.3を使ったアプリケーションでファイルアップロードのテストを書いていて、<br>
<a href="http://github.com/rails/rails/blob/18eb80ccc7e932f9a6c00462ceaeea648631b120/actionpack/lib/action_controller/test_process.rb" class="external">http://github.com/rails/rails/blob/18eb80ccc7e932f9a6c00462ceaeea648631b120/actionpack/lib/action_controller/test_process.rb</a><br>
の、368行目で遭遇しました。</p>
<p>@original_filename = path.sub(/^.*#{File::SEPARATOR}([^#{File::SEPARATOR}]+)$/) { $1 }</p>
<p>ここのpathがPathnameのインスタンスだとマッチしません(Stringだとマッチする)。</p>
<p>使う側の気持ちとしては、Pathname#subではファイルパスの文字列へのsubと同じ挙動であって欲しいと思いました。</p>
<p>余談:<br>
Rails.rootがRails 2.3からPathnameを返すようになっていて(以前はStringだった)、<br>
うっかりRails.root.join("spec", "fixtures", "vacation.jpg") と書いて失敗しました。<br>
そんなの聞いてなかったよ……。<br>
=end</p>