LoginSignup
96
94

More than 5 years have passed since last update.

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

Posted at

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 の記事の生成

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

96
94
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
96
94