
This Ruby library adds support for creating state machines for attributes on any Ruby class.
State machines make it simple to manage the behavior of a class. Often, the state of an object is kept by creating multiple boolean attributes and deciding how to behave based on the values. This can become cumbersome and difficult to maintain when the complexity of the class starts to increase.
This library simplifies this design by introducing the various parts of a real state machine, including states, events, transitions, and callbacks. It also provides a YARD plugin to document state machines in Ruby.