SimpleTimeKeeperという便利なタイマーがあります。
シンプルで見やすくてとってもべんり。プレゼンの時に重宝します。
その、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
0 件のコメント:
コメントを投稿