Ruboty って何?どうやって動かすの? Hubot と何が違うの?どっちを使えばいいの? #ruboty #chatops

  • 88
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

Ruboty って何?どうやって動かすの? Hubot と何が違うの?どっちを使えばいいの?

概要

Ruboty って何?どうやって動かすの? Hubot と何が違うの? という方に向けた記事です

目次

  • Ruboty って何?
  • Ruboty の基本構成
  • Ruboty 登場の経緯
  • Ruboty の特徴
  • コマンドライン環境の疎通確認手順
  • ステップアップのための資料紹介

Ruboty って何?

Ruboty は Ruby 製のチャットボットフレームワークです。
要は Hubot の Ruby 版。

Ruboty のソースコードは GitHub で確認可能です。
ruboty github

Hubot は Plugin を CoffeeScript で書く必要があります。
(最終的に JavaScript になれば良いので他の AltJS や生の JavaScript でも良い)
RubotyRuby で Plugin を書く必要があります。
機能的な違いはほとんどありません。
( 大きな差は Ruboty には HTTP 待ち受けがないことくらい?
Ruboty は OSS プロダクトなので 需要があれば誰か プルリクエスト を送るのでは。 )

機能に大きな違いがないなら、 Ruboty は誰におすすめなのか?
Hubot は便利だけど CoffeeScript より Ruby で書きたい、という人に Ruboty をおすすめできます。

こういう話をすると 某 Hubot 職人 さんから
「Rubyist は Ruboty か Lita あたりを使え。振り返るな」
と背中を 強めに 押してもらえます。どちらかというと 尻を蹴飛ばされているかもしれません

何の話か気になる方は Twitter で、 「 Hubot 便利だけど Ruby で書けたらなぁ・・・ 」 とつぶやいてみてください。
何かが起こるはずです。

Ruboty 登場の経緯

Ruboty の作者は Qiita の @r7kamura さんです。

  • Ruby を使って bot を使いたい人向けに
  • Ruby の bot フレームワークには Lita があるがより自分好みの設計にしたい

などの理由によって、 Hubot の Ruby 実装代替ツールとして作成されました。
詳しくはご本人の口で rebuild.fm ( 宮川達彦さんの podcast 。チェックしていない方はこれを機にぜひ )で語っておられます。

rebuild.fm | 66: It Is Always :sushi: (r7kamura)

また下記の Episode 10 にも出演しておられます。 Ruboty の作者さんの思考が気になる方はこちらも。

rebuild.fm | 10: RailsConf, Ruby 2.0, Rails 4 (mrkn, r7kamura)

※ rebuild.rm については、こちらの記事( Rebuild.fm のススメ )もまとめてあります。

Ruboty の基本構成

私が以前まとめた記事をご確認ください。

Ruboty の基本構成

Ruboty の特徴

  • Ruby 製。 Ruby で Plugin を書ける
  • Ruby の gem で Plugin を管理可能。 Ruby 使いが慣れ親しんだ方法で管理できる。
  • Ruboty 本体のコードが非常に綺麗。本体を読む際の敷居が低い。
  • 日本人が作者
    • 一次情報を日本語で得ることができる
  • Lita があることを知った上で、Ruboty を開発した => Lita のプロダクトをより改良した内容になっているのでは?
    • ※この部分は、 rebuild.rm をきいた上での私の想像なのででたらめかもしれません
  • 作者の @r7kamura さんが自動化厨(褒め言葉)っぽい
    • ラリーウォールの三大美徳 (:angry::weary::triumph:) 的なものを持ち合わせていそうな感じ
    • Plugin の提供 , Heroku への簡易デプロイなど便利な仕組みが提供される
  • Qiita の中の人が作者なので Qiita で情報を公開してもらえる

コマンドライン環境の疎通確認手順

前提

Ruby, Bundler をインストール済み

ruboty をインストール

$ gem install ruboty

ruboty 用のディレクトリテンプレートを生成します

$ ruboty --generate
$ tree
.
┗ ruboty
    ┗ Gemfile
$ cd ruboty

Gemfile を編集して plugin を追加します

source "https://rubygems.org"

gem "ruboty"
gem "ruboty-qiita_scouter"

※ Windows 環境の方は rb-readline gem も追加

bundle で plugin をインストールします

$ bundle install

ruboty を実行します

※ ruboty-qiita_scouter の実行は少々時間がかかります

$ bundle exec ruboty
> ruboty ping
pong
> ruboty help
ruboty /qiita scouter (?<id>.+?)\z/ - analyze qiita power
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 qiita scouter tbpgr
ユーザー名: tbpgr 戦闘力: 450120 攻撃力: 74250 知力: 360525 すばやさ: 15345

ステップアップのための資料紹介

Slack + Heroku Deployment

@r7kamura さんの下記記事の手順で, Ruboty を Heroku にデプロイし、 Slack と連携するまでの環境を簡単に構築できます。

開発支援ツール

開発支援ツール に関する情報は以下のエントリにあります

プロジェクトテンプレート、コード生成

README の生成

Qiita の記事の生成

上記の全ツールをまとめて紹介

この投稿は Ruboty Advent Calendar 201421日目の記事です。