master
1class Stronglifters.Timer
2 constructor: (options) ->
3 @databag = options['databag']
4 @format = options['format'] || (timer) ->
5 moment.utc(timer).format('mm:ss')
6 @interval = 1000
7 @key = options['key'] || 'clock'
8 @maxMilliseconds = options['maxMilliseconds'] || 600000
9 @success = options['success'] || -> { }
10
11 start: (options) ->
12 @stop()
13
14 @databag.set('timer', 0)
15 @intervalId = setInterval @refreshTimer, @interval
16
17 refreshTimer: =>
18 @databag.add('timer', @interval)
19 formattedValue = @format(@databag.get('timer'))
20 @databag.set(@key, formattedValue)
21 if @databag.get('timer') >= @maxMilliseconds
22 @stop()
23 @success()
24
25 stop: =>
26 if @running()
27 clearTimeout @intervalId
28 @intervalId = null
29
30 running: ->
31 @intervalId?