/** * class Namespace * * Simple object for storing attributes. Implements equality by attribute names * and values, and provides a simple string representation. * * See also [original guide][1] * * [1]:http://docs.python.org/dev/library/argparse.html#the-namespace-object **/'use strict'; var $$ = require('./utils'); /** * new Namespace(options) * - options(object): predefined propertis for result object * **/var Namespace = module.exports = function Namespace(options) { $$.extend(this, options);}; /** * Namespace#isset(key) -> Boolean * - key (string|number): property name * * Tells whenever `namespace` contains given `key` or not. **/Namespace.prototype.isset = function (key) { return $$.has(this, key);}; /** * Namespace#set(key, value) -> self * -key (string|number|object): propery name * -value (mixed): new property value * * Set the property named key with value. * If key object then set all key properties to namespace object **/Namespace.prototype.set = function (key, value) { if (typeof (key) === 'object') { $$.extend(this, key); } else { this[key] = value; } return this;}; /** * Namespace#get(key, defaultValue) -> mixed * - key (string|number): property name * - defaultValue (mixed): default value * * Return the property key or defaulValue if not set **/Namespace.prototype.get = function (key, defaultValue) { return !this[key] ? defaultValue : this[key];}; /** * Namespace#unset(key, defaultValue) -> mixed * - key (string|number): property name * - defaultValue (mixed): default value * * Return data[key](and delete it) or defaultValue **/Namespace.prototype.unset = function (key, defaultValue) { var value = this[key]; if (value !== null) { delete this[key]; return value; } return defaultValue;};
/**
* class Namespace
*
* Simple object for storing attributes. Implements equality by attribute names
* and values, and provides a simple string representation.
*
* See also [original guide][1]
*
* [1]:http://docs.python.org/dev/library/argparse.html#the-namespace-object
**/
'use strict';
var $$ = require('./utils');
/**
* new Namespace(options)
* - options(object): predefined propertis for result object
*
**/
var Namespace = module.exports = function Namespace(options) {
$$.extend(this, options);
};
/**
* Namespace#isset(key) -> Boolean
* - key (string|number): property name
*
* Tells whenever `namespace` contains given `key` or not.
**/
Namespace.prototype.isset = function (key) {
return $$.has(this, key);
};
/**
* Namespace#set(key, value) -> self
* -key (string|number|object): propery name
* -value (mixed): new property value
*
* Set the property named key with value.
* If key object then set all key properties to namespace object
**/
Namespace.prototype.set = function (key, value) {
if (typeof (key) === 'object') {
$$.extend(this, key);
} else {
this[key] = value;
}
return this;
};
/**
* Namespace#get(key, defaultValue) -> mixed
* - key (string|number): property name
* - defaultValue (mixed): default value
*
* Return the property key or defaulValue if not set
**/
Namespace.prototype.get = function (key, defaultValue) {
return !this[key] ? defaultValue : this[key];
};
/**
* Namespace#unset(key, defaultValue) -> mixed
* - key (string|number): property name
* - defaultValue (mixed): default value
*
* Return data[key](and delete it) or defaultValue
**/
Namespace.prototype.unset = function (key, defaultValue) {
var value = this[key];
if (value !== null) {
delete this[key];
return value;
}
return defaultValue;
};