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
|
(function(module, ns) {
var Base = {
name: 'base',
tagField: 'local',
/**
* Creates a new object with base as its prototype.
* Adds ._super to object as convenience prop to access
* the parents functions.
*
* @param {Object} obj function overrides.
* @return {Object} new object.
*/
create: function(obj) {
var key;
var child = Object.create(this);
child._super = this;
for (key in obj) {
if (Object.hasOwnProperty.call(obj, key)) {
child[key] = obj[key];
}
}
return child;
},
onopentag: function(data, handler) {
var current = this.current;
var name = data[handler.tagField];
this.stack.push(this.current);
if (name in current) {
var next = {};
if (!(current[name] instanceof Array)) {
current[name] = [current[name]];
}
current[name].push(next);
this.current = next;
} else {
this.current = current[name] = {};
}
},
ontext: function(data) {
this.current.value = data;
},
onclosetag: function() {
this.current = this.stack.pop();
},
onend: function() {
this.emit('complete', this.root);
}
};
module.exports = Base;
}.apply(
this,
(this.Caldav) ?
[Caldav('sax/base'), Caldav] :
[module, require('../caldav')]
));
|