blob: 7bfe23326698a117fe5717776e8e186a031d2bb9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
var QPID;
if (!QPID) {
QPID = {};
}
(function () {
'use strict';
if (typeof QPID.times !== 'function') {
QPID.times = function (multiplicity, template, timeIndexName)
{
var retVal = new Array();
for (var i = 0; i < multiplicity; i++)
{
var templateName = template._name;
var teamplateAsString = JSON.stringify(template);
if (timeIndexName)
{
teamplateAsString = teamplateAsString.replace(new RegExp(timeIndexName, "g"), i);
}
var expandedObject = JSON.parse(teamplateAsString);
if (!(timeIndexName))
{
expandedObject._name = templateName + "_" + i;
}
retVal[i] = expandedObject;
}
return retVal;
}
}
if (typeof QPID.iterations !== 'function') {
QPID.iterations = function (values, template)
{
var retVal = new Array()
var iterationNumber = 0;
for (variableName in values)
{
var variableValues = values[variableName]
for (i in variableValues)
{
var variableValue = variableValues[i]
var templateTestString = JSON.stringify(template)
var actualString = templateTestString.replace(new RegExp(variableName, "g"), variableValue)
var iteration = JSON.parse(actualString)
iteration._iterationNumber = iterationNumber
retVal[iterationNumber] = iteration
iterationNumber++
}
}
return retVal
}
}
if (typeof QPID.transform !== 'function') {
/**
* Function to transform JSON using specified transformation function.
* Any number of transformation function could be passed after the template argument.
* Each function should return a transformed JSON object.
* Example
* var json = transform({"name": "Test1"}, function(json){json.name="Test"; return json;});
*/
QPID.transform = function (template)
{
var json = template;
for (var i=1, len=arguments.length; i<len; i++)
{
json = arguments[i](json);
}
return json;
}
}
if (typeof QPID.cloneJSON !== 'function') {
QPID.cloneJSON = function (json)
{
return JSON.parse( JSON.stringify( json ));
}
}
}());
|