Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

【Rubotyソムリエ】 tbpgr 2015/01 #ruboty #rubotyソムリエ

概要

Ruboty ソムリエ
報告者: tbpgr
2015年01月会報

Ruboty の Plugin や ツールなどを独断と偏見で紹介する企画です。
Ruboty ソムリエ企画への参加者募集中です。
Ruboty ソムリエの細則・目的などについては、下記のレギュレーションのリンクを参照ください。

レギュレーション

こちらを参照
Ruboty ソムリエ レギュレーション

実用編

ruboty-cron

Ruboty の作者である r7kamura さん の Plugin 。
chatops で ruboty を利用するなら、必ず出てきそうな
cron を使って定刻に処理を行う際に活躍します。

リンク先の記事は私が利用サンプルとして公開した記事です。

ruboty-gen

Ruboty Handler Plugin を作成する際に、ひな形を生成してくれる generator 。
私も pull request でお手伝いした gem 。
Ruboty Handler Plugin を作る際は、お決まりの記述が多いので、このツールを使うと
必要最小限の記述で済んで楽だし、タイポなどによる時間の浪費から解放されます。

ruboty-hatena_hotentry

「みんなが大好きなはてブホッテントリを表示するプラグイン」作者さん談

例えば、 Slack は外部システムの連携機能がありますが、無料範囲で利用したい場合に連携数に制限があります。
無料範囲を越えた場合、利用者数が多い場合は結構バカにならない金額になります。
無料範囲で、有益な情報を享受したい場合は Slack の 外部連携 相当の機能を自前で実装するのも良いですね。
そして、その実装内容を Ruboty コミュニティ全体で流用すれば無料で利用できる範囲がどんどん増えます。

おもしろ編

ruboty-lgtm

GitHub のコメントのやりとりなどでお馴染みの LGTM の画像を表示する Plugin 。
開発チームのコミュニケーション円滑化、楽しい雰囲気作りに役立ちそうですね。

例えばこんな出力になります。

$ ruboty lgtm dog
http://lgtm.herokuapp.com/http://media.tumblr.com/c8d0e3445ffcd9349697f78f303762
4e/tumblr_inline_naytlxTiTP1rnrgq3.gif

※実際の画像 => lgtm dog

ruboty-nullpo

何か特定の入力に対して特定の出力を・・・と考えた時に多くの方が思いつきそうな定番
ぬるぽ」「ガッ」
するアレです。
Rich Style まで用意されています。

  Λ_Λ    \\
( ・∀・)   | | ガッ
と    )   | |
  Y /ノ    人
   / )    <  >_Λ∩
_/し´ //. V`Д´)/
(_フ彡       / >>@mallowlabs

ruboty-calendar

cal コマンドの内容を Ruboty Plugin にしてみたもの。
この Plugin 自体というよりは、ブログも含めた Plugin 作成の過程が良かったので紹介します。

Ruboty の Plugin って、結局は何かの機能のラッパー的で、
その機能の出力を Ruboty の Plugin 形式で提供していることになります。
そのため、無理に Plugin に全機能を詰め込むとテストが難しかったり、
単体の機能として使いまわした時に使いにくかったりします。

そこで、 こちらの記事で作者さんが行っているように、まずは機能を gem に切り出してから
Plugin 化するのはとても良いやりたかだな、と思います。
私も同じような考え方で、 Ruby Advent Calendar 中に下記のような記事を作成しました。

Extract gem Pattern を用いて Ruboty Plugin 内で利用する一塊の機能を持つロジックを外部 gem 化する

2015/01/05 時点の Ruboty ダウンロードランキング

※検索条件は ruboty- です。

rank gem name author downloads
1 ruboty-slack Ryo Nakamura 1739
2 ruboty-ymcrawl mpk 1544
3 ruboty-weather Ryoichi SEKIGUCHI 1404
4 ruboty-hipchat Ryo Nakamura 1363
5 ruboty-rss Ryota Arai 1264
6 ruboty-redis Ryo Nakamura 1155
7 ruboty-alias Ryo Nakamura 1095
8 ruboty-lgtm negipo 1006
9 ruboty-gamification Yoshiori SHOJI 948
10 ruboty-cron Ryo Nakamura 946
11 ruboty-idobata Seiei Higa 935
12 ruboty-github Ryo Nakamura 886
13 ruboty-google_image Ryo Nakamura 839
14 ruboty-syoboi_calendar Ryo Nakamura 824
15 ruboty-megen tbpgr 712
16 ruboty-twitter Ryo Nakamura 698
17 ruboty-response kaihar4 695
18 ruboty-gen block_given? 676
19 ruboty-japan_weather Taiki ONO 652
20 ruboty-trust_me block_given? 634

Ruboty 定番情報

Ruboty ってなに?

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

Ruboty の基本構成図

Ruboty | 基本構成図解

Ruboty のリポジトリ

ruboty GitHub

Ruboty を Slack にデプロイしたい

Ruby製HubotクローンのRubotyをSlackで動かす

Ruboty の Plugin を楽して作成したい

Ruboty | 【怠惰は正義】ruboty-gen で Handlers と Actions のひな形を作成

Ruboty の Plugin の README を楽して作成したい

Ruboty | Ruboty Handler Plugin 作成時の README テンプレートジェネレータ ruboty-megen を作成した

Ruboty の Plugin を Qiita の記事にする時楽をしたい

Ruboty | Ruboty Handler Plugin 作成時に公開するための Markdown 形式の技術エントリ テンプレートジェネレータ ruboty-articlegen