limeapps / ember-share

Ember persistence and collaboration

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EmberShare

EmberShare is an Ember persistence library that utilizes ShareJS, a robust Operational Transforms backend server. It takes care of keeping models consistent, in addition to providing collaborative editing capabilities.

Building:

grunt build-release

How to use:

  • Include the the version of the library most suitable for your project from the /dist forlder
  • Inject the store into the application
App.initializer({
  name: 'injectStore',
  initialize: function(container, application) {
	application.register('store:main',EmberShare.Store);
    application.inject('controller', 'store', 'store:main');
    application.inject('route', 'store', 'store:main');
  }
});
  • For your models you can extend either ShareProxy or ShareArray.
var ItemModel = EmberShare.ShareProxy.extend({
	id: null	// only add id or any non-persistant properties
});

Testing:

grunt test         # headless testing

Contribution:

  • Have a look at the issues, we post any challenges/todo items there.
  • Help us identify shortcomings via submitting issues.
  • We think there is a need for a node module/library to go along with ShareJS in the backend to allow for aspects like Access Control that are needed and are not part of ShareJS.

Dependencies:

  • ShareJS
  • BrowserChannel or Primus

About

Ember persistence and collaboration

License:MIT License


Languages

Language:JavaScript 99.4%Language:PHP 0.5%Language:Shell 0.1%