A minimal finite state machine with a straightforward and intuitive syntax. Since FiniteMachine is an object in its own right it leaves integration with other systems up to you. In contrast to other Ruby libraries, it does not extend from models (i.e. ActiveRecord) to transform them into a state machine or require mixing into existing classes.