CHANGELOG.md in finite_machine-0.11.0 vs CHANGELOG.md in finite_machine-0.11.1

- old
+ new

@@ -1,162 +1,245 @@ -0.11.0 (Oct 11, 2015) +# Change Log +## [v0.11.1] - 2015-12-17 + +### Fixed +* Fix cancelling callbacks for halted transition by craiglittle + +## [v0.11.0] - 2015-10-11 + +### Added * Add UndefinedTransition to mark self transition(e.i. no transition found) * Add StateDefinition for state query methods * Add #trigger and #trigger! to StateMachine to allow manual firing of events and split between dangerous and non-dangerous versions of api. + +### Changed * Change ThreadContext to require per thread setup * Change Transition to stop relying on global transitions * Change EventChain to manage all internal transitions * Change Subscribers to remove unnecessary parameter dependency * Change StateMachine public interface to clarify available methods * Change HookEvent to accept event name and from state * Remove Event class as duplicate of Transition * Remove unnecessary checks for StateMachine#can? + +### Fixed * Fix bug in Transition with current transition matching * Fix bug in Observer with cancelling inside event callback -0.10.2 (July 5, 2015) +## [v0.10.2] - 2015-07-05 -* Fix to run 'on_after' callbacks even when event cancalled by @craiglittle -* Fix to cancel transition when no matching choice is found by @craiglittle +### Changed * Change StateParser #parse method * Change EventBuilder to EventDefinition and invert dependencies * Change Event#call to #trigger * Change Transition#call to #execute -0.10.1 (May 24, 2015) +### Fixed +* Fix to run 'on_after' callbacks even when event cancalled by @craiglittle +* Fix to cancel transition when no matching choice is found by @craiglittle +## [v0.10.1] - 2015-05-24 + +### Added * Add ability to inherit state machine definitions * Add Env class for holiding machine envionment references + +### Changed * Change DSL to delegate calls to machine instance * Change ChoiceMerger to use machine directly -0.10.0 (November 16, 2014) +## [v0.10.0] - 2014-11-16 +### Added * Add #alias_target to allow renaming of target object by @reggieb -* Fix issue with async calls passing wrong arguments to conditionals -* Change TransitionEvent, AsyncCall to be immutable * Add :log_transitions option for easy transition debugging + +### Changed +* Change TransitionEvent, AsyncCall to be immutable * Increase test coverage to 99% -0.9.2 (September 27, 2014) +### Fixed +* Fix issue with async calls passing wrong arguments to conditionals +## [v0.9.2] - 2014-09-27 + +### Changed * Removes use of class variable to share Sync by @reggieb + +### Fixed * Fix observer to differentiate between any state and any event * [#23] Fix transition to correctly set :from and :to parameters for :any state * [#25] Fix passing parameters to choice events with same named events * Fix choice pseudostate to work with :any state -0.9.1 (August 10, 2014) +## [v0.9.1] - 2014-08-10 +### Added * Add TransitionBuilder to internally build transitions from states -* Fix #choice to allow for multiple from states * Add #current? to Transition to determine if matches from state * Add #select_choice_transition to EventsChain to determine matching choice transition + +### Fixed +* Fix #choice to allow for multiple from states * Fix #choice to work with same named events -0.9.0 (August 3, 2014) +## [v0.9.0] 2014-08-03 +### Added * Add Definition class to allow to define standalone state machine -* Upgrade RSpec dependency and refactor specs +* Add #build method to HookEvent + +### Changed * Change initial helper to simply state name with options * Change HookEvent to be immutable and extend comparison * Change Event to be immutable and extend comparison -* Add #build method to HookEvent * Change finished? to terminated? and allow for multiple terminal states * Change to require explicit context to call target methods +* Upgrade RSpec dependency and refactor specs -0.8.1 (July 5, 2014) +## [v0.8.1] - 2014-07-05 +### Added * Add EventsChain to handle internal events logic * Add EventBuilder to handle events construction -0.8.0 (June 22, 2014) +## [v0.8.0] - 2014-06-22 +### Added * Add silent option for state machine events to allow turning on/off selectively callbacks * Ensure that can? & cannot? take into account conditionl logic applied to transitions * Add restore! method to allow to set the state directly without callbacks * Add ability to do dynamic conditional branching using the choice DSL or grouped events with different outgoing transitions [solves #13 and #6 issue] -0.7.1 (June 8, 2014) +## [v0.7.1] - 2014-06-08 +### Changed * Change to relax callback name checks to allow for duplicate state and event names * Change so that transition to initial state triggers callbacks -0.7.0 (May 26, 2014) +## [v0.7.0] - 2014-05-26 -* Change Event to EventHook for callback events +### Added * Add Event to hold the logic for event specification -* Fix issue #8 to preserve conditionals between event specifications +* Add string inspection to hooks +* Add check for callback name conflicts + +### Changed +* Change Event to EventHook for callback events * Change to allow for self-transition - fixes issue #9 * Change to detect attempt to overwrite already defined method - fixes issue #10 -* Fix #respond_to on state machine to include observer -* Add string inspection to hooks -* Fix observer missing methods resolution * Change to separate state and event callbacks. Introduced on_enter, on_before, once_on_enter, once_on_before new event callbacks. * Change generic callbacks to default to any state for on_enter, on_transition, on_exit and any event for on_before and on_after -* Add check for callback name conflicts -* Ensure proper callback lifecycle +* Change to ensure proper callback lifecycle -0.6.1 (May 10, 2014) +### Fixed +* Fix issue #8 to preserve conditionals between event specifications +* Fix #respond_to on state machine to include observer +* Fix observer missing methods resolution +### [v0.6.1] - 2014-05-10 + +### Fixed * Fix stdlib requirement -0.6.0 (May 10, 2014) +### [v0.6.0] - 2014-05-10 +### Added * Add StateParser to allow for grouping transition under same event name -* Change Transition to store a map of transition for a given event * Add abilility to correctly extract :to state for Transition instance + +### Changed +* Change Transition to store a map of transition for a given event + +### Fixed * Fix bug #6 with incorrect TransitionEvent payload information -0.5.0 (April 28, 2014) +## [v0.5.0] - 2014-04-28 +### Added +* Add generic Listener interface +* Add ability to fire callbacks asynchronously +* Add initial state storage + +### Changed * Change to allow for machine to be constructed as plain object * Allow for :initial, :terminal and :target to be machine parameters -* Add generic Listener interface * Change EventQueue to allow for subscription * Increase test coverage to 98% * Change to allow access to target inside machine dsl -* Add ability to fire callbacks asynchronously -* Add initial state storage -0.4.0 (April 13, 2014) +## [v0.4.0] - 2014-04-13 -* Change initial state to stop firing event notification -* Fix initial to accept any state object +### Added * Add logger * Add ability to cancel transitions inside callbacks -* Fix proc conditions to accept aditional arguments -* Increase test coverage to 97% * Add ability to force transitions -0.3.0 (March 30, 2014) +### Changed +* Change initial state to stop firing event notification +* Increase test coverage to 97% -* Move development dependencies to Gemfile -* Increase test coverage to 95% -* Fix bug with event methods dynamic redefinition -* Change attr_threadsafe to accept default values -* Fix observer respond_to +### Fixed +* Fix initial to accept any state object +* Fix proc conditions to accept aditional arguments + +## [v0.3.0] - 2014-03-30 + +### Added * Add ability to specify callbacks on machine instance * Add once_on type of callback * Add off method for removing callbacks * Add async method to state_machine for asynchronous events firing -* Fix Callable to correctly forward arguments * Add state helpers fsm.green? to allow easily check current state -0.2.0 (March 01, 2014) +### Changed +* Change attr_threadsafe to accept default values +* Move development dependencies to Gemfile +* Increase test coverage to 95% -* Ensure correct transition object state -* Add methods synchronization for thread safety -* Fix bug - callback event object returns correct from state -* Add ability to define custom initial event -* Add hooks class for callbacks registration -* Extend threadable accessors +### Fixed +* Fix bug with event methods dynamic redefinition +* Fix observer respond_to +* Fix Callable to correctly forward arguments + +## [v0.2.0] - 2014-03-01 + +### Added * Add generic state and event listeners * Add target to allow integration with external objects, and allow easy method lookup through callback context * Add ability to specify custom handlers for error conditions +* Add methods synchronization for thread safety +* Add ability to define custom initial event +* Add hooks class for callbacks registration + +### Changed +* Change to ensure correct transition object state +* Extend threadable accessors + +### Fixed +* Fix bug - callback event object returns correct from state + +[v0.11.1]: https://github.com/peter-murach/finite_machine/compare/v0.11.0...v0.11.1 +[v0.11.0]: https://github.com/peter-murach/finite_machine/compare/v0.10.2...v0.11.0 +[v0.10.2]: https://github.com/peter-murach/finite_machine/compare/v0.10.1...v0.10.2 +[v0.10.1]: https://github.com/peter-murach/finite_machine/compare/v0.10.0...v0.10.1 +[v0.10.0]: https://github.com/peter-murach/finite_machine/compare/v0.9.2...v0.10.0 +[v0.9.2]: https://github.com/peter-murach/finite_machine/compare/v0.9.1...v0.9.2 +[v0.9.1]: https://github.com/peter-murach/finite_machine/compare/v0.9.0...v0.9.1 +[v0.9.0]: https://github.com/peter-murach/finite_machine/compare/v0.8.1...v0.9.0 +[v0.8.1]: https://github.com/peter-murach/finite_machine/compare/v0.8.0...v0.8.1 +[v0.8.0]: https://github.com/peter-murach/finite_machine/compare/v0.7.1...v0.8.0 +[v0.7.1]: https://github.com/peter-murach/finite_machine/compare/v0.7.0...v0.7.1 +[v0.7.0]: https://github.com/peter-murach/finite_machine/compare/v0.6.1...v0.7.0 +[v0.6.1]: https://github.com/peter-murach/finite_machine/compare/v0.6.0...v0.6.1 +[v0.6.0]: https://github.com/peter-murach/finite_machine/compare/v0.5.0...v0.6.0 +[v0.5.0]: https://github.com/peter-murach/finite_machine/compare/v0.4.0...v0.5.0 +[v0.4.0]: https://github.com/peter-murach/finite_machine/compare/v0.3.0...v0.4.0 +[v0.3.0]: https://github.com/peter-murach/finite_machine/compare/v0.2.0...v0.3.0 +[v0.2.0]: https://github.com/peter-murach/finite_machine/compare/v0.1.0...v0.2.0