equal
deleted
inserted
replaced
|
1 (function(root) { |
|
2 |
|
3 "use strict"; |
|
4 |
|
5 var DataLoader = root.Rkns.DataLoader = { |
|
6 converters: { |
|
7 from1to2: function(data) { |
|
8 |
|
9 //TODO: implement |
|
10 |
|
11 return data; |
|
12 } |
|
13 } |
|
14 }; |
|
15 |
|
16 |
|
17 DataLoader.Loader = function(project, options) { |
|
18 this.project = project; |
|
19 this.dataConverters = _.defaults(options.converters || {}, DataLoader.converters); |
|
20 }; |
|
21 |
|
22 |
|
23 DataLoader.Loader.prototype.convert = function(data) { |
|
24 var schemaVersionFrom = this.project.getSchemaVersion(data); |
|
25 var schemaVersionTo = this.project.getSchemaVersion(); |
|
26 |
|
27 if (schemaVersionFrom !== schemaVersionTo) { |
|
28 var converterName = "from" + schemaVersionFrom + "to" + schemaVersionTo; |
|
29 if (typeof this.dataConverters[converterName] === 'function') { |
|
30 data = this.dataConverters[converterName](data); |
|
31 } |
|
32 } |
|
33 return data; |
|
34 }; |
|
35 |
|
36 DataLoader.Loader.prototype.load = function(data) { |
|
37 console.log(data); |
|
38 this.project.set(this.convert(data), { |
|
39 validate: true |
|
40 }); |
|
41 }; |
|
42 |
|
43 })(window); |