All Versions
26
Latest Version
Avg Release Cycle
104 days
Latest Release
753 days ago

Changelog History
Page 1

  • v0.14.0 Changes

    September 12, 2020

    ➕ Added

    • ➕ Add ability to declare alias target inside definition
    • Add #respond_to_missing? to DSL to check if a given method is supported
    • ➕ Add current state attribute to StateMachine#inspect
  • v0.13.0 Changes

    January 04, 2020

    ➕ Added

    • ➕ Add sync as a dependency
    • ➕ Add metadata to gemspec

    🔄 Changed

    • Change StateMachine#final_state to #terminal_states by Brad Gessler(@bradgessler)
    • 🔄 Change to remove artefacts like tests & tasks from gemspec

    🛠 Fixed

    • 🛠 Fix Ruby 2.7 keyword arguments warnings
    • 🛠 Fix MessageQueue deadlock by Pavel Rosický(@ahorek)
  • v0.12.1 Changes

    July 12, 2019

    🔄 Changed

    • 🔄 Change to relax dev dependencies versions

    🛠 Fixed

    • 🛠 Fix FiniteMachine.new to stop coercing object target that responds to to_hash into options
  • v0.12.0 Changes

    November 11, 2018

    ➕ Added

    • ➕ Add concurrent-ruby as dependency
    • ➕ Add FiniteMachine#new for declaring state machines
    • ➕ Add Observer#cancel_event for cancelling event transitions in callbacks, instead of using callback return value
    • ➕ Add Const for declaring unique machine constants
    • ➕ Add :auto_methods configuration option for disabling automatic conversion of event names into methods

    🔄 Changed

    • 🔄 Change gemspec to require Ruby >= 2.0
    • 🔄 Change FiniteMachine#define to create machine class instances
    • 🔄 Change EventsChain to EventsMap and use Concurrent::Map for holding event transitions
    • 🔄 Change Hooks to use Concurrent::Map for storing callbacks
    • 🔄 Change MessageQueue to use mutex to synchronize access
    • 🔄 Change StateParser to remove internal state and use class methods instead
    • 🔄 Change Observer to create callbacks queue on demand
    • Change :any key to be a unique constant ANY_EVENT and ANY_STATE
    • 🔄 Change #event_names to #events for retrieving all events
    • ✂ Remove thread synchronization from AsyncCall, TransitinEvent, HookEvent, DSL, Hooks, TransitionBuilder, ChoiceMerger objects
    • ✂ Remove #async call from StateMachine
    • ✂ Remove #target, #alias_target, #callbacks, #events and #handlers calls from DSL

    🛠 Fixed

    • 🛠 Fix StateParser to raise error without nil
    • 🛠 Fix to rollback to current state when an error occurs
  • v0.11.3 Changes

    March 04, 2016

    ➕ Added

    • ➕ Add performance tests & memory usage benchmarks

    🔄 Changed

    • 🔄 Change EventQueue to MessageQueue for handling generic asynchronous messages
    • Split async behaviour to use CallbackQueue for observed callbacks and EventQueue for async event triggers.
    • 🔄 Change AsyncProxy and Observer to lazy load message queue

    🛠 Fixed

    • 🛠 Fix memory leak - issue #42 with help from @craiglittle
  • v0.11.2 Changes

    December 30, 2015

    ➕ Added

    • ➕ Add infering of state or event name based off hook type

    🔄 Changed

    • ✂ Remove ThreadContext for global queue synchronization
    • 🔄 Change EventQueue to use Threadable module to sync access

    🛠 Fixed

    • 🛠 Fix bug with two state machines locking up on callback events due to race condition with help from @domokos
  • v0.11.1 Changes

    December 17, 2015

    🛠 Fixed

    • 🛠 Fix cancelling callbacks for halted transition by craiglittle
  • v0.11.0 Changes

    October 11, 2015

    ➕ 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
  • v0.10.2 Changes

    July 05, 2015

    🔄 Changed

    • 🔄 Change StateParser #parse method
    • 🔄 Change EventBuilder to EventDefinition and invert dependencies
    • 🔄 Change Event#call to #trigger
    • 🔄 Change Transition#call to #execute

    🛠 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 Changes

    May 24, 2015

    ➕ 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