UNPKG

4.19 kBMarkdownView Raw
1###v0.3.7
2* Underscore.js is no longer a dependency - it has been replaced with Lodash.
3* Fixed issue where instances sharing a derived machina constructor that *did not* specify instance level state objects were sharing the prototype's `states` object from the parent Fsm constructor. The `states` object and `initialState` property are now built/blended together from the prototype chain and deep-clone-extended over the instance itself, so that they will always be instance level.
4* Added Alex Robson (@arobson) to contributors list in package.json - he was instrumental in helping me track down and squash the above-mentioned bug.
5* Added Dominic Barnes to the contributors list.
6* Inverted the changelog to show most recent first - you know...b/c...too lazy to scroll. :-)
7* Source in this version also has new jsbeautify settings applied - whitespace-laden commits, FML, but it was necessary going forward.
8* Removed failing LiveReload setup in the gulpfile. I plan to fix that in the v0.4 release.
9
10### v0.3.5
11
12* Fixed issue in `deferUntilNextHandler` where deferred inputs were being queued as `NEXT_TRANSITION` instead of `NEXT_HANDLER`.
13* Moved invocation of `on_Exit` to occur just *before* the state property is updated, instead of just after.
14
15### v0.3.4
16
17* Underscore is no longer required to be passed into the factory function for node usage. It will be required behind the scenes if not provided.
18
19### v0.3.3
20
21* State handlers can optionally return a string value of the state to which you want to transition.
22* Transition events now include an `action` member which contains the "state.handler" value (string) indicating the current action which caused the transition.
23* Updated license info (still MIT, GPL >= 2.0)
24* Removed deprecated anvil dependency references
25
26### v0.3.2
27
28* Fixed a bug in the internal deepExtend method (see [this issue](https://github.com/ifandelse/machina.js/pull/12)).
29* The `initialize` call will now receive the arguments passed to the constructor (see [this issue](https://github.com/ifandelse/machina.js/issues/11)).
30* **The commonjs/node.s wrapper now returns a factory, to which you must pass dependencies (underscore, in this case). This is a breaking API change**
31* The build process now outputs one module that can be used as a commonjs, AMD or standard client lib.
32
33### v0.3.1
34
35* All internal events have been refactored to emit single argument payloads. **This is a breaking API change.**
36
37### v0.3.0
38
39* FSM constructor function supports inheritance via an `extend` function - working mostly identical to backbone.js objects.
40* FSMs can have a top-level 'catch-all' ("*") handler defined, which would apply to any state, unless the state overrides it with a state-specific catch-all handler.
41* FSM states now have an `_onExit` handler.
42* **The `fireEvent` has been removed. Use `emit` or the `trigger` alias. This is a breaking API change.**
43* State input handlers can now be a string value (indicating that a transition should occur to a state matching that string value) in addition to a function.
44
45### v0.2.2
46
47* event names are now all lower case
48* FSM constructor only handles an eventListeners object (not the old array of strings to pre-populate event names)
49* bug fixed where event queue would still be replayed on a state that transitioned during its entry action
50* transitioned and transitioning events are now just a single "transition" event
51
52### v0.2.1
53
54* build bits updated to latest anvil.js (0.8.9)
55* added beginnings of connectivity example
56* updated ext dependencies (postal, etc.)
57* added bower component.json
58
59### v0.2.0
60
61* Message bus integration has been removed from machina core, and now exists as plugins. For integration with [postal.js](https://github.com/ifandelse/postal.js), see [machina.postal](https://github.com/ifandelse/machina.postal)
62* Due to the above change, the only "messaging-related" metadata on an FSM now is the "namespace" value that can be passed as the FSM is created. This value is optional, and will be given a default if none is provided. Messaging plugins can utilize this value as a channel/namespace name and/or topic prefix.
63* A "priorState" member has been added to the Fsm.
\No newline at end of file