Ruboty を使ってみた
Ruboty 作者の r7kamura さんのエントリを読んで使ってみました。
動かしてみる
gem install ruboty ruboty --generate cd ruboty bundle install
ここまでで Ruboty が動作する状態になります。
bundle exec ruboty
を実行することで、シェル上で動作確認ができます。
bundle exec ruboty Type `exit` or `quit` to end the session. >
ruboty help
を実行すると コマンド一覧が出てくるので、試しに ruboty ping
を実行してみます。
> ruboty help ruboty /help( me)?(?: (?<filter>.+))?\z/i - Show this help message ruboty /ping\z/i - Return PONG to PING ruboty /who am i\?/i - Answer who you are > ruboty ping pong >
pong
が返ってくることが確認できました。
拡張してみる
以下のように、ruboty hello
を実行すると world!!!
が返ってくるように拡張してみます。
Type `exit` or `quit` to end the session. > ruboty hello world!!! >
クラスの追加
Ruboty::Handlers::Base を継承したクラスを作ることで拡張していくことができます。
# ruboty/test.rb module Ruboty module Handlers class Test < Base on( /hello/, # トリガー name: 'say_world', # 実行するメソッド description: 'return "world" to "hello"' # ruboty help で表示される説明文 ) # world!!! を返すメソッド def say_world(message) message.reply('world!!!') end end end end
動作確認
-l ファイル名
をつけることで指定したファイルを読み込ませることができます。
ruboty help
を実行してみると、先ほどのコマンドが追加されていることが確認できます。
bundle exec ruboty -l test.rb Type `exit` or `quit` to end the session. > ruboty help ruboty /hello/ - return "world" to "hello" ruboty /help( me)?(?: (?<filter>.+))?\z/i - Show this help message ruboty /ping\z/i - Return PONG to PING ruboty /who am i\?/i - Answer who you are >
ruboty hello
を実行すると world!!!
が返ってきます。
> ruboty hello world!!! >