Sha256: b8a67a6abf6043d22a2a7976d1ff8476af62ee413349eb330e4798de8d798afc

Contents?: true

Size: 1.78 KB

Versions: 105

Compression:

Stored size: 1.78 KB

Contents

/**
 * 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;
};

Version data entries

105 entries across 104 versions & 18 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/argparse/lib/namespace.js
disco_app-0.18.0 test/dummy/node_modules/argparse/lib/namespace.js
disco_app-0.18.2 test/dummy/node_modules/argparse/lib/namespace.js
appmap-0.72.2 ./node_modules/argparse/lib/namespace.js
appmap-0.72.1 ./node_modules/argparse/lib/namespace.js
appmap-0.72.0 ./node_modules/argparse/lib/namespace.js
appmap-0.71.0 ./node_modules/argparse/lib/namespace.js
disco_app-0.16.1 test/dummy/node_modules/argparse/lib/namespace.js
appmap-0.70.2 ./node_modules/argparse/lib/namespace.js
appmap-0.70.1 ./node_modules/argparse/lib/namespace.js
appmap-0.70.0 ./node_modules/argparse/lib/namespace.js
appmap-0.69.0 ./node_modules/argparse/lib/namespace.js
appmap-0.68.2 ./node_modules/argparse/lib/namespace.js
appmap-0.68.1 ./node_modules/argparse/lib/namespace.js
disco_app-0.15.2 test/dummy/node_modules/argparse/lib/namespace.js
appmap-0.68.0 ./node_modules/argparse/lib/namespace.js
appmap-0.67.1 ./node_modules/argparse/lib/namespace.js
appmap-0.67.0 ./node_modules/argparse/lib/namespace.js
disco_app-0.18.4 test/dummy/node_modules/argparse/lib/namespace.js
disco_app-0.18.1 test/dummy/node_modules/argparse/lib/namespace.js