bogofilter-nihongo.rb の ruby 2.0 対応 (1) [自作ソフト]
N宮さんから、ruby 2.0 がリリースされていて、bogofilter-nihongo が動かないよと連絡を受けました。一寸調べたら、kconv 関連が削除されてる。string::encode を使いなさいという事らしい。
で調べていたら、それだけでは無かった。問題はこういう事。
ruby 環境制御には、rbenv を使っている。
2.0.0-devがインストールできそう。
次は、mecab
0.993 なので、
rmail を require すると、エラーに成る。調べてみると、対処法が載っていた。
僕の場合、rbenv なので、ファイルは
/home/hoge/.rbenv/versions/2.0.0-dev/lib/ruby/gems/2.1.0/gems/rmail-1.0.0/lib/rmail
以下に有る。これを、直接編集した。
長くなったので、続きは此方
で調べていたら、それだけでは無かった。問題はこういう事。
1.rmail(ruby mail) を rquire すると、エラーに成る 2.kconv から string::encode への移行 3.日本語文字にはエンコード情報が付加されるのだが、それが正確ではない 4.外部関数を通すと、折角付けたエンコード情報が、削除されてしまい、 不正確な情報が付加される 5.エンコードが厳密過ぎて、曖昧な変換を許さない 6.特にスパム系のメールにはいい加減な文字が使われていることもあり、 上記理由からEUC変換がエラーに成る
1. ruby 2.0 のインストール
ruby 環境制御には、rbenv を使っている。
#rbenv install >rbenv.txt 2>&1 #cat rbenv.txt
2.0.0-devがインストールできそう。
#rbenv install 2.0.0-dev #rbenv global 2.0.0-dev #rbenv rehash #gem install rmail #gem install popen4
次は、mecab
#mecab --version mecab of 0.993
0.993 なので、
#cd mecab-ruby-0.993 #ruby ./extconf.rb #make #sudo make install
2. rmail (ruby mail) の ruby 2.0 対応
rmail を require すると、エラーに成る。調べてみると、対処法が載っていた。
[Fix encoding of regexps for Ruby 2.0 by strzibny · Pull Request #2 · matta/rubymail · GitHub] https://github.com/matta/rubymail/pull/2/files
lib/rmail/address.rb @@ -703,7 +703,7 @@ def get_tokenize @sym = SYM_DOMAIN_LITERAL @lexeme = $1.gsub(/(^|[^\\])[\r\n\t ]+/, '\1').gsub(/\\(.)/, '\1') break - when /\A[\200-\377\w!$%&\'*+\/=?^_\`{\}|~#-]+/m + when /\A[\200-\377\w!$%&\'*+\/=?^_\`{\}|~#-]+/nm # This is just like SYM_ATOM, but includes all characters # with high bits. This is so we can allow such tokens in # the display name portion of an address even though it
lib/rmail/header.rb @@ -73,7 +73,7 @@ class Header class Field # :nodoc: # fixme, document methadology for this (RFC2822) - EXTRACT_FIELD_NAME_RE = /\A([^\x00-\x1f\x7f-\xff :]+):\s*/o + EXTRACT_FIELD_NAME_RE = /\A([^\x00-\x1f\x7f-\xff :]+):\s*/no class << self def parse(field)
僕の場合、rbenv なので、ファイルは
/home/hoge/.rbenv/versions/2.0.0-dev/lib/ruby/gems/2.1.0/gems/rmail-1.0.0/lib/rmail
以下に有る。これを、直接編集した。
長くなったので、続きは此方
[bogofilter-nihongo.rb の ruby 2.0 対応 (2):matsuan の器用貧乏日記:So-netブログ] http://kiyoubinbou-matsuan.blog.so-net.ne.jp/2013-06-08-1
2013-06-08 17:44
nice!(0)
コメント(0)
トラックバック(2)
コメント 0