Imitation of Ircv. English
IIrcv.app は Ircv の Mac OS X における劣化バージョンです。 「Irc」という名称は入っていますが、これ本体に Irc クライアント機能はありません。 じゃあどうやって表示をするんだ?というと、IIrcv.app はdRuby サーバとして動いているので、 それを通じて外部アプリケーションから表示を行います。
初期状態では自動 URI モードのポート 9876 を listen します。 この状態の IIrcv.app への表示要求を行う Ruby スクリプトを示します。
require 'drb/drb'
o = DRbObject.new_with_uri("druby://localhost:9876")
o.call("Hello!\n")
上記スクリプトを実行すると、IIrcv.app のウィンドウがフェイドインし、「Hello!」 が印字されます。
以下のような機能があります。
URL を開く機能は本家にはありますが、IIrcv には今のところありません。
永遠の開発版です。一切の保証はありません。 rev510 以降は Universal Binary としてコンパイルしていますが、 Intel でしか動作確認をしていないため動かないかもしれません。
Ruby/Cocoa がインストールされていない場合はインストールが必要です。 ダウンロード してインストールしてください。
あとは IIrcv.app をどっかにコピーすれば恐らく動きます。
クライアントのサンプルとして client/ircv.rb があります。適当に編集して起動すれば IRC の発言を IIrcv に表示させることができます。
irc.rb 以外にもいくつかのサンプルがあります。
設定ファイルは $HOME/.iircv.yaml を読み込みます。一部の項目を除けば、起動してからでも ステータスアイコンをクリックしてでるメニューから再読み込みができます。
設定のサンプル
:uri: druby://:9876 # DRb URI
:min_alpha: 0 # どこまで透明にするか
:max_alpha: 1 # アクティブなときに維持する透明度
:fadein_speed: 0.05 # フェイドインするときのディレイ
:fadeout_speed: 0.05 # フェイドアウトするときのディレイ
:font_size: 13 # フォントサイズ
#:font_name: BitstreamVeraSansMono-Bold # フォント名
:line_height: 1.3 # 一行の高さの割合 font_size * line_height が実際の高さ
:fadeout_time: 10 # この秒数後に自動でフェイドアウトする
:ignore_mouse: true # マウスイベントを透過する
:width: 600 # Window の幅
:lines: 15 # 表示する最大行数
:keys: # ショートカットキーステータスメニューのそれぞれの項目に該当
:toggle_hide: Command+Shift+H
# :toggle_timeout: Command+Shift+T
# :ignore_mouse_event: Command+Shift+I
# :reload: Command+Shift+R
:keywords: # キーワードハイライトの設定
# - [正規表現, 色, 行全体をハイライトするか]
- ["cho45", "#ffcc00", true]
何が設定できるかの詳細は、IIrcv.app を右クリックし「パッケージの内容を表示」 Contents -> Resources -> iircv.rb の load_config メソッドあたりを見てください。
提供される DRb フロントオブジェクトは IO#write と互換があるため、IO を継承して write メソッドをフロントオブジェクトに委譲することで書き込み専用 IO として利用できます。
require 'drb/drb'
class OutIO < IO
def initialize(write_proc)
@proc = write_proc
end
def write(arg)
@proc.call(arg)
end
end
o = DRbObject.new_with_uri("druby://localhost:9876")
$stdout = OutIO.new(o)
puts "Hello!"
上のスクリプトは IO のサブクラスを作り、write メソッドをオーバーライドして $stdout に代入している例です。
$stdout に代入することで、これ以降の標準出力の内容は 全て IIrcv.app に流れるようになります。 ($stdout には write メソッドのあるオブジェクトならなんでも入れられます。 すなわち別に IO のサブクラスである必要はありません。)
Creative-Commons by