/**
 * Helper to define task.
 * @module task.helpers.TaskDefineHelper.
 * @author "ci.worker.generateTaskDefineHelper"
 *
 */

var workerPath = 'ci/worker';


/**
 * Task definition to debug.
 * @function task.helpers.TaskDefineHelper._debugTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports._debug = function (config) {
    return {
        worker: {
            path: workerPath,
            key: '_debug'
        },
        config: config
    };
};

/**
 * Task definition to evaluate,data.
 * @function task.helpers.TaskDefineHelper._evaluateDataTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports._evaluateData = function (config) {
    return {
        worker: {
            path: workerPath,
            key: '_evaluateData'
        },
        config: config
    };
};

/**
 * Task definition to expand,glob,unless,ignored.
 * @function task.helpers.TaskDefineHelper._expandGlobUnlessIgnoredTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports._expandGlobUnlessIgnored = function (config) {
    return {
        worker: {
            path: workerPath,
            key: '_expandGlobUnlessIgnored'
        },
        config: config
    };
};

/**
 * Task definition to inherit,prototype,files.
 * @function task.helpers.TaskDefineHelper._inheritPrototypeFilesTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports._inheritPrototypeFiles = function (config) {
    return {
        worker: {
            path: workerPath,
            key: '_inheritPrototypeFiles'
        },
        config: config
    };
};

/**
 * Task definition to load,local,tmpl.
 * @function task.helpers.TaskDefineHelper._loadLocalTmplTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports._loadLocalTmpl = function (config) {
    return {
        worker: {
            path: workerPath,
            key: '_loadLocalTmpl'
        },
        config: config
    };
};

/**
 * Task definition to new,render,data.
 * @function task.helpers.TaskDefineHelper._newRenderDataTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports._newRenderData = function (config) {
    return {
        worker: {
            path: workerPath,
            key: '_newRenderData'
        },
        config: config
    };
};

/**
 * Task definition to run,test.
 * @function task.helpers.TaskDefineHelper._runTestTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports._runTest = function (config) {
    return {
        worker: {
            path: workerPath,
            key: '_runTest'
        },
        config: config
    };
};

/**
 * Task definition to worker,name.
 * @function task.helpers.TaskDefineHelper._workerNameTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports._workerName = function (config) {
    return {
        worker: {
            path: workerPath,
            key: '_workerName'
        },
        config: config
    };
};

/**
 * Task definition to write,unit,test,file.
 * @function task.helpers.TaskDefineHelper._writeUnitTestFileTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports._writeUnitTestFile = function (config) {
    return {
        worker: {
            path: workerPath,
            key: '_writeUnitTestFile'
        },
        config: config
    };
};

/**
 * Task definition to change,mode.
 * @function task.helpers.TaskDefineHelper.changeModeTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.changeMode = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'changeMode'
        },
        config: config
    };
};

/**
 * Task definition to clean,dead,symlinks.
 * @function task.helpers.TaskDefineHelper.cleanDeadSymlinksTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.cleanDeadSymlinks = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'cleanDeadSymlinks'
        },
        config: config
    };
};

/**
 * Task definition to clean,directory.
 * @function task.helpers.TaskDefineHelper.cleanDirectoryTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.cleanDirectory = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'cleanDirectory'
        },
        config: config
    };
};

/**
 * Task definition to copy,prototype,files.
 * @function task.helpers.TaskDefineHelper.copyPrototypeFilesTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.copyPrototypeFiles = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'copyPrototypeFiles'
        },
        config: config
    };
};

/**
 * Task definition to cut,and,replace,links.
 * @function task.helpers.TaskDefineHelper.cutAndReplaceLinksTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.cutAndReplaceLinks = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'cutAndReplaceLinks'
        },
        config: config
    };
};

/**
 * Task definition to exec,command.
 * @function task.helpers.TaskDefineHelper.execCommandTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.execCommand = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'execCommand'
        },
        config: config
    };
};

/**
 * Task definition to generate,apiguide.
 * @function task.helpers.TaskDefineHelper.generateApiguideTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateApiguide = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateApiguide'
        },
        config: config
    };
};

/**
 * Task definition to generate,ci,tasks,index.
 * @function task.helpers.TaskDefineHelper.generateCiTasksIndexTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateCiTasksIndex = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateCiTasksIndex'
        },
        config: config
    };
};

/**
 * Task definition to generate,config,data,json.
 * @function task.helpers.TaskDefineHelper.generateConfigDataJsonTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateConfigDataJson = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateConfigDataJson'
        },
        config: config
    };
};

/**
 * Task definition to generate,data,json.
 * @function task.helpers.TaskDefineHelper.generateDataJsonTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateDataJson = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateDataJson'
        },
        config: config
    };
};

/**
 * Task definition to generate,file,config,helper.
 * @function task.helpers.TaskDefineHelper.generateFileConfigHelperTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateFileConfigHelper = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateFileConfigHelper'
        },
        config: config
    };
};

/**
 * Task definition to generate,index.
 * @function task.helpers.TaskDefineHelper.generateIndexTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateIndex = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateIndex'
        },
        config: config
    };
};

/**
 * Task definition to generate,index,files.
 * @function task.helpers.TaskDefineHelper.generateIndexFilesTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateIndexFiles = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateIndexFiles'
        },
        config: config
    };
};

/**
 * Task definition to generate,index,test.
 * @function task.helpers.TaskDefineHelper.generateIndexTestTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateIndexTest = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateIndexTest'
        },
        config: config
    };
};

/**
 * Task definition to generate,instruments.
 * @function task.helpers.TaskDefineHelper.generateInstrumentsTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateInstruments = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateInstruments'
        },
        config: config
    };
};

/**
 * Task definition to generate,package,json.
 * @function task.helpers.TaskDefineHelper.generatePackageJsonTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generatePackageJson = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generatePackageJson'
        },
        config: config
    };
};

/**
 * Task definition to generate,scaffold,files.
 * @function task.helpers.TaskDefineHelper.generateScaffoldFilesTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateScaffoldFiles = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateScaffoldFiles'
        },
        config: config
    };
};

/**
 * Task definition to generate,structure.
 * @function task.helpers.TaskDefineHelper.generateStructureTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateStructure = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateStructure'
        },
        config: config
    };
};

/**
 * Task definition to generate,task,define,helper.
 * @function task.helpers.TaskDefineHelper.generateTaskDefineHelperTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateTaskDefineHelper = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateTaskDefineHelper'
        },
        config: config
    };
};

/**
 * Task definition to generate,test,files.
 * @function task.helpers.TaskDefineHelper.generateTestFilesTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateTestFiles = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateTestFiles'
        },
        config: config
    };
};

/**
 * Task definition to generate,unit,test,files.
 * @function task.helpers.TaskDefineHelper.generateUnitTestFilesTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateUnitTestFiles = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateUnitTestFiles'
        },
        config: config
    };
};

/**
 * Task definition to generate,visualize,json,files.
 * @function task.helpers.TaskDefineHelper.generateVisualizeJsonFilesTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.generateVisualizeJsonFiles = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'generateVisualizeJsonFiles'
        },
        config: config
    };
};

/**
 * Task definition to install,node,modules.
 * @function task.helpers.TaskDefineHelper.installNodeModulesTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.installNodeModules = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'installNodeModules'
        },
        config: config
    };
};

/**
 * Task definition to link,npm,package.
 * @function task.helpers.TaskDefineHelper.linkNpmPackageTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.linkNpmPackage = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'linkNpmPackage'
        },
        config: config
    };
};

/**
 * Task definition to link,prototype,files.
 * @function task.helpers.TaskDefineHelper.linkPrototypeFilesTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.linkPrototypeFiles = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'linkPrototypeFiles'
        },
        config: config
    };
};

/**
 * Task definition to pack,npm,package.
 * @function task.helpers.TaskDefineHelper.packNpmPackageTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.packNpmPackage = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'packNpmPackage'
        },
        config: config
    };
};

/**
 * Task definition to report,to,coveralls.
 * @function task.helpers.TaskDefineHelper.reportToCoverallsTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.reportToCoveralls = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'reportToCoveralls'
        },
        config: config
    };
};

/**
 * Task definition to run,mocha.
 * @function task.helpers.TaskDefineHelper.runMochaTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.runMocha = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'runMocha'
        },
        config: config
    };
};

/**
 * Task definition to run,nodeunit.
 * @function task.helpers.TaskDefineHelper.runNodeunitTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.runNodeunit = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'runNodeunit'
        },
        config: config
    };
};

/**
 * Task definition to tag,on,git.
 * @function task.helpers.TaskDefineHelper.tagOnGitTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.tagOnGit = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'tagOnGit'
        },
        config: config
    };
};

/**
 * Task definition to version,up.
 * @function task.helpers.TaskDefineHelper.versionUpTask
 * @param {object} config - Task configuration.
 * @returns {object} - Task definition object.
 */
exports.versionUp = function (config) {
    return {
        worker: {
            path: workerPath,
            key: 'versionUp'
        },
        config: config
    };
};

