termtterでのつぶやきにフッターをつける

movatwitterその他のtwitterクライアントだと発言にフッター(スラドにおける署名であるとか, 参加してるコミュニティの宣伝とかが書いてあるあれ)がつけられるけど, ターミナルからつぶやけるクライアントであるtermtterではデフォルトではできないみたい(ちゃんと調べたわけではないので, もしできるなら教えてください)。
幸いtermtterは拡張が簡単なので, 設定できるようにしてみる. あっさりできて楽しい.

インストール先を調べる

まず, termtterがインストールされているディレクトリを見つける.ソースからインストールした人は問題ないですが, gemから入れた人はややこしいところに入ってます.
調べるには以下のコマンドで:

$ gem which termtter
(checking gem termtter-1.3.1 for termtter)
/usr/lib/ruby/gems/1.8/gems/termtter-1.3.1/lib/termtter.rb

termtter.rbと同じディレクトリにpluginsディレクトリがあるので, ここに作成したプラグインを格納するみたい.上記の場合だと/usr/lib/ruby/gems/1.8/gems/termtter-1.3.1/lib/pluginsになります.

hookをpluginsディレクトリに入れる

上記のpluginsディレクトリに, ftr.rbというファイルを作成して, 以下のような内容で保存します.

# -*- coding: utf-8 -*-

Termtter::Client.register_hook(
  :name => :add_footr,
  :points => [:pre_exec_update],
  :exec_proc => lambda {|cmd, arg|
    arg << " #{config.footer}"
  }
)

hookっていうのは割り込みみたいなものだと考えればいいのかなあ. svnにもあったはず...
cmdは割り込んだコマンドで, argが引数です. pointsが割り込みのタイミングで, :pre_exec_updateはアップデートの実行前を指定することになるらしい.
フッタの内容はconfigファイルから読み込んでいるので, これを設定すれば動きます.

設定の変更

2ヶ所変更の必要があります.

フッタ内容の設定

冒頭にconfig.user_nameやconfig.passwordが書いてあるので, その辺でconfig.footerを設定します.

config.user_name = 'tnzk'
config.password = 'shachihoko'
config.footer = '[10/21 18:30- つくらぐ#6 http://bit.ly/utlug6]'

こんな感じ.

ftr.rbの読み込み

プラグインの自動読み込みを以下の記述で設定します.

Termtter::Client.init do |t|
   t.plug 'ftr'
end

Termtter::Client.initのブロック自体はデフォルトで存在するはずなので, そこにt.plug 'ftr'を追記するだけでOKです.
自動読み込みが不要ならこっちは書かなくても大丈夫です. termtterを起動してからplug ftrコマンドを実行すれば, 同じように有効化されます.