-
Notifications
You must be signed in to change notification settings - Fork 69
/
Copy pathMemoryProperties.gs
62 lines (55 loc) · 1.81 KB
/
MemoryProperties.gs
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
/**
* Creates a new MemoryProperties, an implementation of the Properties
* interface that stores values in memory.
* @constructor
*/
var MemoryProperties = function() {
this.properties = {};
};
/**
* @see {@link https://developers.google.com/apps-script/reference/properties/properties#deleteallproperties}
*/
MemoryProperties.prototype.deleteAllProperties = function() {
this.properties = {};
};
/**
* @see {@link https://developers.google.com/apps-script/reference/properties/properties#deletepropertykey}
*/
MemoryProperties.prototype.deleteProperty = function(key) {
delete this.properties[key];
};
/**
* @see {@link https://developers.google.com/apps-script/reference/properties/properties#getkeys}
*/
MemoryProperties.prototype.getKeys = function() {
return Object.keys(this.properties);
};
/**
* @see {@link https://developers.google.com/apps-script/reference/properties/properties#getproperties}
*/
MemoryProperties.prototype.getProperties = function() {
return extend_({}, this.properties);
};
/**
* @see {@link https://developers.google.com/apps-script/reference/properties/properties#getproperty}
*/
MemoryProperties.prototype.getProperty = function(key) {
return this.properties[key];
};
/**
* @see {@link https://developers.google.com/apps-script/reference/properties/properties#setpropertiesproperties-deleteallothers}
*/
MemoryProperties.prototype.setProperties = function(properties, opt_deleteAllOthers) {
if (opt_deleteAllOthers) {
this.deleteAllProperties();
}
Object.keys(properties).forEach(function(key) {
this.setProperty(key, properties[key]);
});
};
/**
* @see {@link https://developers.google.com/apps-script/reference/properties/properties#setpropertykey-value}
*/
MemoryProperties.prototype.setProperty = function(key, value) {
this.properties[key] = String(value);
};