module.exports = class AbstractTaskHelper
constructor: (grunt, config, eac) -> @_ = require('../util/lodash_extensions') @g = grunt @c = config @eac = eac buildConfig: -> @g.fail.fatal 'Implement buildConfig method.' run: -> return unless @isEnabled() @g.config.set("#{@getGruntTask()}.#{@getGruntTaskTarget()}", @buildConfig()) @g.task.run "#{@getGruntTask()}:#{@getGruntTaskTarget()}" isEnabled: -> true getCacheKey: -> "#{@eac.env_name}-#{@eac.app_name}" getGruntTaskTarget: -> "#{@eac.env_name}-#{@eac.app_name}" getGruntTask: -> @g.fail.fatal 'Implement getGruntTask method.' getFileCache: -> @fileChangeTracker or= require('../util/file_change_tracker')(@g, @eac) getConfig: -> @eac.appConfig getAppConfig: -> @getConfig().config fileCacheHasChanged: (path) -> @getFileCache().hasChanged(path, @getCacheKey()) fileCacheUpdate: (path) -> @getFileCache().update(path, @getCacheKey()) fileCacheClean: -> @getFileCache().clean(@getCacheKey())