ezzy-config-setup
![Coverage Status](https://coveralls.io/repos/github/ezzygemini/ezzy-config-setup/badge.svg?branch=master)
Changes a number of arguments into a readable configuration object.
The arguments can have different organization, position, type, etc, which
turn into different properties.
configSetup(arguments, ["method:string"], ["config:object", "callback"]);
configSetup(
defaultConfig,
arguments,
["method:string"],
["config:object", "callback"]
);
Example Implementation
function MyClass() {
this.config = configSetup(
{
booleanProp: true,
arrayProp: [ 1, 2, 3 ],
objectProp: { a:null, b:null }
},
arguments,
['this:object'],
['arrayProp:array'],
['booleanProp:boolean'],
['booleanProp:boolean', 'arrayProp:array'],
['arrayProp:boolean', 'objectProp:object'],
['objectProp:object', 'arrayProp:array'],
['booleanProp:boolean', 'arrayProp:array', 'objectProp:object'],
['objectProp:object', 'booleanProp:boolean', 'arrayProp:array'],
['arrayProp:array', 'objectProp:object', 'booleanProp:boolean']
);
var myClass1 = new MyClass(false);
myClass1.config.booleanProp = false;
myClass1.config.arrayProp = [1,2,3];
var myClass2 = new MyClass([]);
myClass2.config.booleanProp = true;
myClass2.config.arrayProp = [];
var myClass3 = new MyClass({}, false, []);
myClass3.config.booleanProp = false;
myClass3.config.arrayProp = [];
myClass3.config.objectProp = {};
var myClass4 = new MyClass([], {}, false);
myClass4.config.booleanProp = false;
myClass4.config.arrayProp = [];
myClass4.config.objectProp = {};