All Projects → pwlmaciejewski → backbone-fsm

pwlmaciejewski / backbone-fsm

Licence: MIT license
Finite-State Machine for Backbone views and models

Programming Languages

javascript
184084 projects - #8 most used programming language
coffeescript
4710 projects
CSS
56736 projects

Backbone-FSM Build Status

Finite-State Machine for Backbone views and models. Browser and Node.js compatible.

Installation

Bower

bower install backbone-fsm

Old school

Include lib/backbone-fsm.js into your page.

Node.js

npm install backbone-fsm

Usage

Initialization

FSM comes with mixin method. You have to extend this during initialization.

var Foo = Backbone.View.extend({
	initialize: function () {
		FSM.mixin(this);
	}
});

Transitions

You can define transitions and defaultState:

var Foo = Backbone.View.extend({
	initialize: function () {
		FSM.mixin(this);
	},

	defaultState: 'firstState',

	transitions: {
		'transitionName': {
			from: 'firstState',
			to: 'secondState'
		}
	},

	onTransitionName: function (callback) {
		callback();
	}
});

To make a transition run transitionTo("secondState"). During transition:

  1. transition:start event is emited
  2. onTransitionName callback is called (if defined).
  3. transition:stop event is emited

Example

Backbone-FSM live example: http://jsfiddle.net/fragphace/Zc6Gx/

Tests

For server-side tests:

npm test

Browser tests can be found in test/browser.html. Tested under:

  • IE 7+
  • FF 15+
  • Chrome 22+

Development

  • Generate JS files - make coffee
  • Watch mode - make watch
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].