Skip to content

Commit bc6adfc

Browse files
committed
Updating the readme and using the empty function
1 parent 47d0cf2 commit bc6adfc

File tree

2 files changed

+38
-11
lines changed

2 files changed

+38
-11
lines changed

README.md

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,50 @@ buffer.get('firstName'); // => 'stefan'
2323
buffer.set('firstName', 'Kris');
2424

2525
buffer.get('firstName'); // => 'Kris'
26-
buffer.get('firstName.content'); // => 'stefan'
26+
buffer.get('content.firstName'); // => 'stefan'
2727

2828
buffer.applyBufferedChanges();
2929

3030
buffer.get('firstName'); // => 'Kris'
31-
buffer.get('firstName.content'); // => 'Kris'
31+
buffer.get('content.firstName'); // => 'Kris'
3232

3333
buffer.set('firstName', 'Luke');
3434
buffer.get('firstName'); // => 'Luke'
35-
buffer.get('firstName.content'); // => 'Kris'
35+
buffer.get('content.firstName'); // => 'Kris'
3636

3737
buffer.discardBufferedChanges();
3838

3939
buffer.get('firstName'); // => 'Kris'
40-
buffer.get('firstName.content'); // => 'Kris'
40+
buffer.get('content.firstName'); // => 'Kris'
41+
42+
// Below demonstrates that applyBufferedChanges and discardBufferedChanges
43+
// can take an optional array of keys.
44+
45+
buffer.set('email', 'example@example.com');
46+
buffer.get('email'); // => 'example@example.com'
47+
buffer.get('content.email'); // => undefined
48+
49+
buffer.set('address', '123 paradise road');
50+
buffer.get('address'); // => '123 paradise road'
51+
buffer.get('content.address'); // => undefined
52+
53+
buffer.applyBufferedChanges(['email']); // Only apply the email from the buffer
54+
55+
buffer.get('email'); // => 'example@example.com'
56+
buffer.get('address'); // => '123 paradise road'
57+
buffer.get('content.email'); // => 'example@example.com'
58+
buffer.get('content.address'); // => undefined
59+
60+
buffer.setProperties({
61+
'email', 'sample@sample.com',
62+
'address', '1717 rose street'
63+
});
64+
65+
buffer.discardBufferedChanges(['address']); // Discard only the address property from the buffer
66+
67+
buffer.get('email'); // => example@example.com
68+
buffer.get('address'); // => 1717 rose street
69+
4170
```
4271

4372
Or you can grab the mixin directly

addon/mixin.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,9 @@ export default Ember.Mixin.create({
2222
},
2323

2424
initializeBuffer: function(onlyTheseKeys) {
25-
if(isArray(onlyTheseKeys) && onlyTheseKeys.length > 0) {
26-
keys(this.buffer).forEach(function(key) {
27-
if(onlyTheseKeys.contains(key)) {
28-
delete this.buffer[key];
29-
}
25+
if(isArray(onlyTheseKeys) && !empty(onlyTheseKeys)) {
26+
onlyTheseKeys.forEach(function(key) {
27+
delete this.buffer[key];
3028
}, this);
3129
}
3230
else {
@@ -90,7 +88,7 @@ export default Ember.Mixin.create({
9088

9189
this.initializeBuffer(onlyTheseKeys);
9290

93-
if (keys(this.buffer).length === 0) {
91+
if (empty(this.buffer)) {
9492
this.set('hasBufferedChanges', false);
9593
}
9694
},
@@ -109,7 +107,7 @@ export default Ember.Mixin.create({
109107
this.propertyDidChange(key);
110108
}, this);
111109

112-
if (keys(this.buffer).length === 0) {
110+
if (empty(this.buffer)) {
113111
this.set('hasBufferedChanges', false);
114112
}
115113
}

0 commit comments

Comments
 (0)