hogepiyoエンジニアリング

トラブルシューティングからノウハウ、作ってみた系まで扱う情報系ブログ

Hubotで実行したスクリプトの回数をカウントするスクリプト

qiitaに投稿した。
http://qiita.com/marshi@github/items/f8c370774d504158895c

ソースコード


marshi/hubot_script_counter · GitHub

実装

hubot-scriptのエイリアス - Qiita を参考にしてreceiveメソッドをフックして、いずれかのスクリプトが実行されるたびに実行回数のカウントアップを行う。
カウントにはrobot.brainの下記メソッドを使っている。

robot.brain.get
robot.brain.remove
robot.brain.set

これらのメソッドはrobot.brain.data["_private"]とのデータのやり取りを行う。
カウントの増加を行うために、robot.brain.data["_private"]に保存されているカウントデータ("script_#{script_name}"がkey、実行回数がvalue)の一覧から実行されたスクリプトに該当するデータを検索し、カウントを1上げている。この際、JSON.parseを使うとsyntax errorが出るためevalを使っている。
同様に、カウントデータ一覧から指定されたスクリプトを検索して、削除・任意のカウントへの更新を行う。