Node.jsとブラウザどちらでも動くように作ってあります。
作った理由
Google Chrome拡張で使いたかった。探してもURLだけを作ってくれるライブラリがありませんでした。
URLは作ってくれるだけど、ボタンを作る機能は不要でした。
仕様メモ
作るにあたって公式仕様を調べたのですが、見つけられませんでした。 ぐぐって分かった情報を残しておきます。
終日予定(allday event)を作る方法を調べるのに苦労しました。
action(必須)
例
action=TEMPLATE
TEMPLATE
固定です。
text
例
text=Garden%20Waste%20Collection
予定のタイトルです。 URLエンコードします。
空文字を指定すると(日本語の場合)無題の予定
になります。
dates
例
dates=20090621T063000Z/20090621T080000Z
予定の開始と終了時刻です。 ISO日付フォーマットでUTCを指定します。 付けないと現在時刻から設定されます。
終日予定の場合は日付のみを指定します。
dates=20131208/20131209
ユーザーのタイムゾーンを使う場合はZをつけません
dates=20131208T160000/20131208T180000
location
例
location=Home
予定の場所です。 URLエンコードします。
details
例
details=Happy
予定の詳細です。 URLエンコードします。
参考リンク
stackoverflowです。
- Google Calendar render action Template parameter documentation - Stack Overflow
- php - How do I create a link to add an entry to an calender? - Stack Overflow
TDDについて
このライブラリはTDDで作りました。 TDDを採用した理由
- Google Chrome拡張での動作確認はテンポが悪い
- Google Chrome拡張を読み直す
- ブラウザのタブを切り替える
- 対象サイトを読み直す
- ロード待ち
- 結果を確認
- 入力データが限定されていた。作るGoogle Chrome拡張の仕様も大体決まっていた
- 出力仕様が明快だった。迷ったらGoogleカレンダーが期待通りに動くURLにすれば良かった
- コードのイメージはあった。詳細設計するのは面倒くさかった。三角測量したかった
ライブラリを作る時はTDDがいいですね。
power-assertについて
テストコードを書くのにt_wadaさん作の twada/power-assert · GitHub を使いました。
実に良いです。テストに失敗した時だけ、詳細な値を表示してくれるのはとても自然で、そして便利でした。 まるで、気の利いた執事とテストをしているようです。
power-assertは良いものです。次も使います。