Jump To …

interval.coffee

TimeString = require './time_string'

class Interval
  _setInterval: ->
    if @milliseconds? and @callback?
      func = if @condition?
        =>
          if @condition()
            clearInterval @interval
          else
            @callback()
      else
        @callback
      @interval = setInterval(func, @milliseconds)
    @
  constructor: (params) ->
    @milliseconds = new TimeString(params.timeString).toMilliseconds() if params.timeString
    @condition = params.condition if params.condition
  every: (timeString) ->
    @milliseconds = new TimeString(timeString).toMilliseconds()
    @_setInterval()
  do: (callback) ->
    @callback = callback
    @_setInterval()

module.exports = Interval