| /* |
| Copyright (c) 2012, Yahoo! Inc. All rights reserved. |
| Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. |
| */ |
| |
| var Factory = require('../util/factory'), |
| factory = new Factory('command', __dirname, true); |
| |
| function Command() {} |
| // add register, create, mix, loadAll, getCommandList, resolveCommandName to the Command object |
| factory.bindClassMethods(Command); |
| |
| Command.prototype = { |
| toolName: function () { |
| return require('../util/meta').NAME; |
| }, |
| |
| type: function () { |
| return this.constructor.TYPE; |
| }, |
| synopsis: /* istanbul ignore next: base method */ function () { |
| return "the developer has not written a one-line summary of the " + this.type() + " command"; |
| }, |
| usage: /* istanbul ignore next: base method */ function () { |
| console.error("the developer has not provided a usage for the " + this.type() + " command"); |
| }, |
| run: /* istanbul ignore next: abstract method */ function (args, callback) { |
| return callback(new Error("run: must be overridden for the " + this.type() + " command")); |
| } |
| }; |
| |
| module.exports = Command; |
| |