Hubotで実行したスクリプトの回数をカウントするスクリプト
qiitaに投稿した。
http://qiita.com/marshi@github/items/f8c370774d504158895c
実装
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を使っている。
同様に、カウントデータ一覧から指定されたスクリプトを検索して、削除・任意のカウントへの更新を行う。