0.5.2 • Published 10 years ago
ember-buffered-proxy-modified v0.5.2
Ember-buffered-proxy 
An Ember Object Proxy (and mixin) the enables change buffering. Ever need to "hold back" property changes before they propogate? If so this may be the project for you.
Usage
npm install --save-dev ember-buffered-proxyimport BufferedProxy from 'ember-buffered-proxy/proxy';
var content = {
firstName: 'stefan'
};
var buffer = BufferedProxy.create({
content: content
});
buffer.get('firstName'); // => 'stefan'
buffer.set('firstName', 'Kris');
buffer.get('firstName'); // => 'Kris'
buffer.get('content.firstName'); // => 'stefan'
buffer.get('hasChanges'); // => true
buffer.buffer; // => (get an object describing changed keys) -- {"firstName": "Kris"}
buffer.applyBufferedChanges();
buffer.get('firstName'); // => 'Kris'
buffer.get('content.firstName'); // => 'Kris'
buffer.get('hasChanges'); // => false
buffer.set('firstName', 'Luke');
buffer.get('firstName'); // => 'Luke'
buffer.get('content.firstName'); // => 'Kris'
buffer.discardBufferedChanges();
buffer.get('firstName'); // => 'Kris'
buffer.get('content.firstName'); // => 'Kris'
// Below demonstrates that applyBufferedChanges and discardBufferedChanges
// can take an optional array of keys.
buffer.set('email', 'example@example.com');
buffer.get('email'); // => 'example@example.com'
buffer.get('content.email'); // => undefined
buffer.set('address', '123 paradise road');
buffer.get('address'); // => '123 paradise road'
buffer.get('content.address'); // => undefined
buffer.applyBufferedChanges(['email']); // Only apply the email from the buffer
buffer.get('email'); // => 'example@example.com'
buffer.get('address'); // => '123 paradise road'
buffer.get('content.email'); // => 'example@example.com'
buffer.get('content.address'); // => undefined
buffer.setProperties({
email: 'sample@sample.com',
address: '1717 rose street'
});
buffer.discardBufferedChanges(['address']); // Discard only the address property from the buffer
buffer.get('email'); // => sample@sample.com
buffer.get('address'); // => undefinedYou can also use these shorter method names
buffer.discardChanges(); // equivalent to buffer.discardBufferedChanges()
buffer.applyChanges(); // equivalent to buffer.applyBufferedChanges()Or you can grab the mixin directly
import BufferedMixin from 'ember-buffered-proxy/mixin';
var content = {
firstName: 'stefan'
};
var buffer = ObjectProxy.extend(BufferedMixin).create({
content: content
});
// same as abovedevelopment
Installation
git clonethis repositorynpm installbower install
Running
ember server- Visit your app at http://localhost:4200.
Running Tests
ember testember test --server
Building
ember build
For more information on using ember-cli, visit http://www.ember-cli.com/.