Bug #854
Rake::FileList#egrep が動かない
| Status: | Closed | Start date: | 12/11/2008 | |
|---|---|---|---|---|
| Priority: | High | Due date: | 12/24/2008 | |
| Assignee: | - | % Done: | 0% |
|
| Category: | core | |||
| Target version: | 1.9.1 Release Candidate | |||
| ruby -v: |
Description
以下のような Rakefile を作って Ruby1.9.1 preview2 で動かすと動きません。 # Rakefile # coding: utf-8 desc 'aaa' task :a do p FileList['*.rb'].egrep(/require/) end カレントディレクトリに SJIS で書かれたファイルが存在する場合にこけました。
History
Updated by Yuki Sonoda about 3 years ago
- Target version set to 1.9.1 Release Candidate
Updated by Yuki Sonoda about 3 years ago
Yuguiです。 okkez _ さんは書きました: > 以下のような Rakefile を作って Ruby1.9.1 preview2 で動かすと動きません。 > > # Rakefile > # coding: utf-8 > desc 'aaa' > task :a do > p FileList['*.rb'].egrep(/require/) > end > > カレントディレクトリに SJIS で書かれたファイルが存在する場合にこけました。 これ、 *.rbをexternal_encoding指定無しで開いてeach_lineして、 各行に対して/require/.match(line) して、 マッチしたらその行を出力、ということをやっていて、 途中でdefault_externalとして壊れている行(cp932文字列リテラル)に出会って それでArgumentError(invalid byte sequence in UTF-8)になってます。 壊れている文字列とのマッチで例外というのはそれなりにreasonableだと思って いたんですが、このケースは確かに何か困りそうです。*.rbならまだしもmagic commentを読めとも言えますが、*.txtの場合だってあるわけです。 これの対応策としてはエンコーディングが不明ならASCII-8BITで開け、というこ とになりますでしょうか。 -- Yugui <yugui@yugui.jp> http://yugui.jp 私は私をDumpする
Updated by Yuki Sonoda about 3 years ago
- Due date set to 12/22/2008
- Category set to core
- Assignee set to Yukihiro Matsumoto
Updated by Yuki Sonoda about 3 years ago
- Priority changed from Normal to High
Updated by Yuki Sonoda about 3 years ago
- Due date changed from 12/22/2008 to 12/24/2008
- Assignee deleted (
Yukihiro Matsumoto)