object-mappr
Map, alias, and flatten object values to other object values.
This project was created as part of doubleshot, perfoming the value mapping, aliasing, and flattening duties.
Getting Started
Install the module with: npm install object-mappr
Below is an example of what goes on under the hood of doubleshot.
// Map over test contentvar objectMapper = mappedObj = ; // Result looks likemappedObj;/*{ '1 + 2': [ function () { this.sum = 1; }, function () { this.sum += 2; } ], 'One': function () { this.sum = 1; }, 'plus two': function () { this.sum += 2; }, '= 3': function () { assert.strictEqual(this.sum, 3); }, 'equals three': function () { assert.strictEqual(this.sum, 3); }}*/
Documentation
object-mappr
provides a function to process aliasing, mapping, and flattening on.
/** * Map, alias, and flatten object values to other object values. * @param * @param * @param * @param * @param * @param * @returns */
Examples
Here is an example using map
, alias
, and flatten
// A complex mappingvar mappedObj = ; // when mapped looks likemappedObj;/*{ 'A fruit': function () { this.color = 'yellow'; this.fruit = new Banana(); }, 'A banana': function () { this.color = 'yellow'; this.fruit = new Banana(); }, 'is yellow': [ function () { assert(this.fruit.color); }, function () { assert.strictEqual(this.fruit.color, this.color); } ], 'when peeled is white': [ function () { this.color = 'white'; this.fruit = this.fruit.peel(); }, function () { assert(this.fruit.color); }, function () { assert.strictEqual(this.fruit.color, this.color); } ], 'when peeled': function () { this.color = 'white'; this.fruit = this.fruit.peel(); }, 'is white': [ function () { assert(this.fruit.color); }, function () { assert.strictEqual(this.fruit.color, this.color); } ], 'hasColor': function () { assert(this.fruit.color); }, 'assertColor': function () { assert.strictEqual(this.fruit.color, this.color); }}*/
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint via grunt and test via npm test
.
License
Copyright (c) 2013 Todd Wolfson
Licensed under the MIT license.