SimpleTimeKeeperにURLでタイマーの時間を指定出来る機能を追加してpull requestおくったった
SimpleTimeKeeperという便利なタイマーがあります。
fluxflex.com
シンプルで見やすくてとってもべんり。プレゼンの時に重宝します。
その、SimpleTimeKeeperに、タイマーの時間をURLで設定出来る機能を付け加えてみた。
URLの末尾に#10:20や?10:30や#10-20や#10m20sとつけるだけで設定出来るよ!
実装
location.searchかlocation.hashを数字ごとに区切って、前から3つとってくる感じになってます。
最後にreverseしてるのは、10:20みたいに、hours, minutes, secondsを全部指定してないときに都合がいいからです。
time = (location.search || location.hash).split(/[^0-9]/).filter(function (x) { return x !== ""; }).slice(0, 3).map(function (x) { return parseInt(x, 10); }).reverse(); // Set Timer $('#hours').val(time[2] || 0); $('#minutes').val(time[1] || 0); $('#seconds').val(time[0] || 10);
まとめ
- SimpleTimeKeeperはシンプルだから機能を追加するのもらくちん。
- もっと追加したい機能があるけど、追加するにしても、なるべくシンプルにいきたい。
- 僕はforEachやfilterやmap等、enumerateするメソッドを続けて書く事が好きだということに気づきました。
こないだもこんなの書いてたし。
urls = tweets.select{|t| not t.attrs["entities"].empty? }.select{|t| t.attrs["entities"]["urls"] }.map{|t| t.attrs["entities"]["urls"].map{|u| u["expanded_url"]} }.inject([]) {|result, urls| result + urls }.select{|u| DB[:urls].where(:url => u).count.zero? }.uniq