UNPKG

gorillajs

Version:

A smart development environment designed to easily install and neatly manage web applications. Gorilla JS frees you from the repetitive daily tasks like apps installation, database management, creation of virtual environment, server configuration… And it

55 lines (45 loc) 1.59 kB
/** internal * class MutuallyExclusiveGroup * * Group arguments. * By default, ArgumentParser groups command-line arguments * into “positional arguments” and “optional arguments” * when displaying help messages. When there is a better * conceptual grouping of arguments than this default one, * appropriate groups can be created using the addArgumentGroup() method * * This class inherited from [[ArgumentContainer]] **/ 'use strict'; var util = require('util'); var ArgumentGroup = require('./group'); /** * new MutuallyExclusiveGroup(container, options) * - container (object): main container * - options (object): options.required -> true/false * * `required` could be an argument itself, but making it a property of * the options argument is more consistent with the JS adaptation of the Python) **/ var MutuallyExclusiveGroup = module.exports = function MutuallyExclusiveGroup(container, options) { var required; options = options || {}; required = options.required || false; ArgumentGroup.call(this, container); this.required = required; }; util.inherits(MutuallyExclusiveGroup, ArgumentGroup); MutuallyExclusiveGroup.prototype._addAction = function (action) { var msg; if (action.required) { msg = 'mutually exclusive arguments must be optional'; throw new Error(msg); } action = this._container._addAction(action); this._groupActions.push(action); return action; }; MutuallyExclusiveGroup.prototype._removeAction = function (action) { this._container._removeAction(action); this._groupActions.remove(action); };