15 min/d

ぼうずやのにっき

hubot-urlをつくった

hubot-urlをつくった。

目的は、HipChatにてURLを貼り付けたときに当該Webページのタイトルを表示してくれない問題を解決するため。

解決策として、Hubotを使うことにした。hubot-hipchatアダプターでHipChatとHubotとを連携させたうえで、Hubotスクリプトとして「発言からURLにマッチするものがあれば、自動でfetchし、そのタイトルとog:imageとを通知するもの」をつくった。

それがhubot-urlである。

今回のスクリプトをつくる過程でいくつかHubotスクリプトのテストについて学んだ。

Hubotスクリプトのテストコードを書く場合にHubotを動かしたいことがある。その場合の注意点。

HubotはCoffeeScriptで書かれているため、事前にrequire('coffee-script')しておく必要がある。npm install --save-dev hubotすればテスト用にHubotへの依存関係を設定できる。しかし、require('hubot');するだけではエラーになってしまう。HubotはCoffeeScriptで書かれているため、事前にrequire('coffee-script');しておき、require.coffeeを解釈できるようにする必要がある。

Hubotは何らかのアダプターを要求する。そこでモックオブジェクトを設定すると良い。具体的にはhubot-mock-adapterを使うと良い。使いかたはリンク先を参照。npm install --save-dev hubot-mock-adapterしておき、それを使って、テストコードを書く。正直なところ、機能が弱すぎて、アダプターの知識がないと使えないし、面倒くさい。もっと用途を限定して、楽に使えるものをつくるのも良いかもしれない。

2014年はJavaScriptの年になると思っていて、その一歩がHubotやHubotスクリプトにするつもりだ。

20 min.