mikutterをついーとさーばに

mikutterとMessagePack::RPCを利用して,りもーとからツイートする方法について
書いてみたいと思う.

Server

まず,gem install msgpack-rpcとしてMessagePack::RPCをインストールします.
インストールしたら,以下の簡単なPluginをつくります.

require 'msgpack/rpc'
Plugin.create(:tweet_server) do
  class Remote
    def tweet(str)
      Post.primary_service.update(:message => str)
      true
    end
  end

  on_boot do
    start_server
  end

  def start_server
    @server=MessagePack::RPC::Server.new
    UserConfig[:tw_port] ||= 5000
    @server.listen '0.0.0.0', UserConfig[:tw_port], Remote.new
    Thread.new do
      @server.run
    end
  end

  settings "ついーとさーば" do
    adjustment "port", :tw_port, 1024, 65535
  end
end

このPluginは簡単なMessagePack::RPC::Serverとなっており,クライアントから
Remote.tweetを呼び出すと,strの内容をついーとしてくれます.さーばの設定と
して,ポート番号の指定のみをします.初回起動時,ポート番号は5000で起動します.
それ以降は指定したポートが利用されますがポート番号を変更したあとはmikutter
を再起動してMessagePack::RPC::Serverも再起動してください.

Client

つぎにクライアントから呼び出し,ついーとするためのコードを以下に示します.

require 'msgpack-rpc'
cli = MessagePack::RPC::Client.new("mikutter_server", 5000)
cli.call(:tweet, "( ゚∀゚)お彡°おっぱい!おっぱい!")
cli.close

このコードを実行することにより,( ゚∀゚)o彡°おっぱい!おっぱい!とついーとされます.

まとめ

夜中に思いついたので簡単ですがまとめてみましたが,いかがでしょうか?
これを用いれば,mikutterでもりもーとから簡単についーとできるようになりますよ.