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?