SocketReaderPatchの応用例として、IRCで流れるメッセージを、QuartzComposerに表示させてみました。
ScreenCast (QuickTime)
qc.rb
これで、QuartzComposerにIRCのログが表示されるようになります。
たったこれだけ。
require 'kconv' class QCPlugin < Plugin PORT = 12345 def initialize super @sock = TCPSocket.new('localhost', PORT) end def listen(m) return unless m.kind_of?(PrivMessage) @sock.print Kconv.toutf8(m.message) end def help(plugin, topic="") "QuartzCompositor from IRC log" end def privmsg(m) #puts m.message end end plugin = QCPlugin.new plugin.register("qc")
元々は、Ruby会議2日目に思いついたネタだったので、かれこれ1週間たってしまいました。長かった。 RubyCococaでやろうとか、dRubyだとか何かと野心的にアプローチをとってみたのですが、けっきょくはSocketでごりごり書くというオーソドックスなスタイルに。
それにしても、SocketReaderPatchをつくるときにもqc.rbのときにも、オブジェクト指向の生産性の高さを実感しました。 既存の振舞いをほんの少しカスタマイズしたいときの継承の威力というか。
Name (required)
Mail (will not be published) (required)
Website