Citrus

net-irc を使った IRC BOT フレームワーク

(chokan だったもの)

特徴

  • 動的ロードプラギン
  • 全部 UTF-8 (文字コード変換は Tiarra などで)
  • チャンネルごとのプラグインのオンオフ
  • テストいっぱい ( coverage: http://lab.lowreal.net/test/citrus/ )

リポジトリ

svn co http://svn.coderepos.org/share/lang/ruby/citrus/trunk/ citrus

動かすだけなら

ruby citrus.rb -c config.yaml.sample

プラグイン

  • Citrus::Plugin を継承してください (必須ではないけど)
  • ファイル名とクラス名は特に関係なくなりました

API

datafile("foobar")
Pathname でデータファイルへのパスをかえす。 (plugins/plusplus.rb を参考にしてください)
post COMMAND, param, param
サーバへコマンドをおくる post NOTICE, "#channel", "foobar"
notice channel, mesg
privmsg channel, mesg
post をよぶさらに簡単なメソッド 詳しくはスーパークラスを参照: lib/citrus/plugin.rb

http://coderepos.org/share/browser/lang/ruby/citrus/trunk/plugins/simple_reply.rb (最も簡単なサンプル)

Rake タスク

rake
rake spec と同じ
rake spec
全てのプラグイン・コアのテストを実行して coverage を吐く (すこし時間かかる)
rake core:spec
コアのテストを実行して coverage を吐く
rake plugins:spec
プラグインのテストを実行
rake plugins:spce file=simple_reply.rb
指定プラグインのテストを実行

chokan からの変更点 (config.yaml とかに影響する)

  • Core プラグインの名前が System に変更
  • UriInformation がなくなり、HTTP プラグインに
  • チャンネルごとのオンオフがコアに実装された。