RubotyというHubotのRuby版クローンのチャットBOTがあります。
大学でSlackと連携して使っているのですが、自分でプラグインを作って拡張できるということで、Rubyの勉強ついでに作ってみることにしました。
しかし、開発の前にセットアップでいろいろと躓いたので、正常にセットアップできる手順をここにメモしておこうと思います。Rubyのインストールも含みます。
環境
- OS: CentOS 6.6
- Ruby 2.2.0
- gem 2.4.5
- rbenv 0.4.0-129-g7e0e85b
- git 1.7.1
- bundler 1.7.12
- ruboty 1.1.4
- ruboty-gen 1.2.0
OS以外はこれからインストールします。
Windowsだと全然うまく動かなかったのでCentOSにしました。VagrantとVirtualBoxで仮想で動かしています(こっちもいろいろ躓いた)。
必要なパッケージのインストール
rbenvのインストールや、rubyのビルドに必要なパッケージをインストールします。
# yum -y install git # yum -y install readline-devel openssl-devel zlib-devel libffi-devel
rbenvとruby-buildのインストール
Rubyのインストールに使うrbenvと、rbenvに使うruby-buildをインストールします。
# git clone https://github.com/sstephenson/rbenv.git ~/.rbenv # git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build # echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile # echo 'eval "$(rbenv init -)"' >> ~/.bash_profile # source ~/.bash_profile
Rubyのインストール
rbenvでバージョンを指定してRubyをインストールします。
2行目では使用するRubyバージョンを指定しています[ref]rbenvではいくつものRubyバージョンを管理することができます[/ref]。
gemもここでインストールされます。
# rbenv install 2.2.0 # rbenv global 2.2.0
ruboty等のインストール
bundlerは、PHPのComposerとか、JavaScriptのbrewとかの、Ruby版です。
ruboty-gen、ruboty-megenはrubotyプラグインのテンプレートを作るためのツールです。
# gem install bundler # gem install ruboty ruboty-gen ruboty-megen
動作テスト
作業用ディレクトリに移動して、テスト用rubotyのGemfileを作ります。
# cd /my-workspace/ # ruboty -g
ruboty-genでテスト用プラグインのテンプレートを生成します。
# ruboty-gen g hoge
テスト用rubotyで、テスト用プラグインを有効にします
# echo "gem 'ruboty-hoge', :path => '`pwd`/ruboty-hoge'" >> ruboty/Gemfile
rubotyをインストールします。
# cd ruboty # bundle install
rubotyを起動して動作確認します。
# bundle exec ruboty > ruboty help ruboty /hoge hoge/ - TODO: write your description ruboty /help( me)?\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 > ruboty hoge hoge TODO: write a message.
テスト用に作ったプラグインを何も弄っていなければ、”TODO: ~” が出力されます。
参考
- Ruboty って何?どうやって動かすの? Hubot と何が違うの?どっちを使えばいいの? #ruboty #chatops – Qiita
- Ruboty の Plugin のつくりかた #ruboty – Qiita
- Ruboty | Ruboty Plugin を RubyGems に公開せずに利用する #ruboty – Qiita
- Ruboty | 【怠惰は正義】ruboty-gen で Handlers と Actions のひな形を作成 #ruboty #chatops – Qiita
- rbenv を利用した Ruby 環境の構築 | Developers.IO
- CentOS 6.3 にrbenv + ruby をインストール – Qiita