react / wstein / node_modules / jest-cli / node_modules / istanbul / node_modules / js-yaml / node_modules / argparse / lib / namespace.js
80713 views/**1* class Namespace2*3* Simple object for storing attributes. Implements equality by attribute names4* and values, and provides a simple string representation.5*6* See also [original guide][1]7*8* [1]:http://docs.python.org/dev/library/argparse.html#the-namespace-object9**/10'use strict';1112var _ = require('lodash');1314/**15* new Namespace(options)16* - options(object): predefined propertis for result object17*18**/19var Namespace = module.exports = function Namespace(options) {20_.extend(this, options);21};2223/**24* Namespace#isset(key) -> Boolean25* - key (string|number): property name26*27* Tells whenever `namespace` contains given `key` or not.28**/29Namespace.prototype.isset = function (key) {30return _.has(this, key);31};3233/**34* Namespace#set(key, value) -> self35* -key (string|number|object): propery name36* -value (mixed): new property value37*38* Set the property named key with value.39* If key object then set all key properties to namespace object40**/41Namespace.prototype.set = function (key, value) {42if (typeof (key) === 'object') {43_.extend(this, key);44} else {45this[key] = value;46}47return this;48};4950/**51* Namespace#get(key, defaultValue) -> mixed52* - key (string|number): property name53* - defaultValue (mixed): default value54*55* Return the property key or defaulValue if not set56**/57Namespace.prototype.get = function (key, defaultValue) {58return !this[key] ? defaultValue: this[key];59};6061/**62* Namespace#unset(key, defaultValue) -> mixed63* - key (string|number): property name64* - defaultValue (mixed): default value65*66* Return data[key](and delete it) or defaultValue67**/68Namespace.prototype.unset = function (key, defaultValue) {69var value = this[key];70if (value !== null) {71delete this[key];72return value;73} else {74return defaultValue;75}76};777879