08/05/09 に 1002bs<100...@gmail.com> さんは書きました:
>
> 影舞0.8.8をFreeBSD 6.2-RELEASEに入れてみたのですが、うまく動いてくれません。apacheのエラーログ次のように記録され
> ています。
>
> [error] mod_ruby: error in ruby
> [error] mod_ruby: /usr/local/www/apache22/data/dev/kagemai/lib/kagemai/
> bts.rb:26:in `require': /usr/local/www/apache22/data/dev/kagemai/li
> b/kagemai/project.rb:299: too short multibyte code string: /[\\xA1-\
> \xFE][\\xA1-\\xFE]/ (SyntaxError)
現象を手元で再現できないのですが、該当の部分はメッセージに
日本語が含まれているかどうかを判定するコードですね。
日本語が含まれていなければ、スパムとみなすといういい加減な
コードのところなので、とりあえず、外部に公開しないのであれば、
以下のパッチでいいかもしれません。spam_filter メソッドの中身を
ざっくり消して return Proc.new{|strings| false} だけを入れた感じです。
Index: project.rb
===================================================================
--- project.rb (579)
+++ project.rb
@@ -286,23 +286,7 @@
end
def spam_filter()
- return Proc.new{|strings| false} unless @use_filter
-
- # TODO: * 外部からフィルタを読み込めるように
- # * ja/en で分けれるように
- return Proc.new{|strings| false} if @lang != 'ja'
-
- Proc.new{|strings|
- use_japanese = false
- strings.each do |string|
- # 日本語が含まれてるかのチェック
- if string =~ /[\xA1-\xFE][\xA1-\xFE]/ then
- use_japanese = true
- break
- end
- end
- use_japanese == false
- }
+ return Proc.new{|strings| false}
end
def store_report(report)
--
FUKUOKA Tomoyuki
# あまり情報無くすみません。
私も、FreeBSDで影舞を使用していますが、特に問題無いです。
ruby+oniguruma-1.8.6,1 An object-oriented interpreted scripting language
環境の違いだと、mod_rubyを使用していないことと、rubyに鬼車を適用してな
いことのような気がします。
正規表現の部分だし、エラーメッセージ的に鬼車がエラーって言っているよう
ですね。
rubyを鬼車無しでインストールし直しとか難しいですかね?
以上です。
----from-----
zege
At Mon, 12 May 2008 23:55:47 +0900,
zegeです。
# FreeBSDの話になってしまいますが。。
At Tue, 13 May 2008 00:15:34 -0700 (PDT),
1002bs wrote:
>
> 鬼車を外すのってどうやればいいのでしょうか?Rubyのインストールは、単に、
>
> /usr/ports/lang/ruby18
>
> で、make; make installしただけなのですが。明示的に鬼車を指定した覚えはありません。
> なので、外すと言ってもどうやればいいのか、、、
>
> お手数ですが、ご教示いただけると助かります。
portsでのrubyインストール時に、オプションが選択できます。
その中で、鬼車(oniguruma)もオプションの1つになっています。
インストール時の設定は、/var/db/ports/ruby ディレクトリに保存されてい
るので、確認してみてください。
鬼車を外すにはportsの再インストールが良いかと思います。
portsの再インストール時には前回のディレクトリの設定が再利用されますの
で、一度ディレクトリを削除して、
make ;make deinstall; make reinstall
で、ports(ruby)を再インストール可能だと思います。
では。