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

77 lines (70 loc) • 1.82 kB
/** * 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; };