| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | 
							- /**
 
-  * 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('underscore');
 
- /**
 
-  * 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;
 
-   } else {
 
-     return defaultValue;
 
-   }
 
- };
 
 
  |