SSブログ

bogofilter-nihongo.rb の ruby 2.0 対応 (1) [自作ソフト]

N宮さんから、ruby 2.0 がリリースされていて、bogofilter-nihongo が動かないよと連絡を受けました。一寸調べたら、kconv 関連が削除されてる。string::encode を使いなさいという事らしい。

で調べていたら、それだけでは無かった。問題はこういう事。
 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

nice!(0)  コメント(0)  トラックバック(2) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 2

冷蔵庫の修理(2)bogofilter-nihongo.r.. ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。