StateMachine Gem

Graphs

Generating graphs

  • You can generate di-graphs based on the events, states, and transitions defined for a state machine using GraphViz
  • This requires that both the ruby-graphviz gem and graphviz library be installed on the system
  • For examples of actual images generated, see those under the examples folder

Usage

To generate a graph for a specific file / class:

rake state_machine:draw FILE=vehicle.rb CLASS=Vehicle

To save files to a specific path:

rake state_machine:draw FILE=vehicle.rb CLASS=Vehicle TARGET=files

To customize the image format / orientation:

rake state_machine:draw FILE=vehicle.rb CLASS=Vehicle FORMAT=jpg ORIENTATION=landscape

See http://rdoc.info/github/glejeune/Ruby-Graphviz/Constants for the list of supported image formats. If resolution is an issue, svg may offer better results.

To generate multiple state machine graphs:

rake state_machine:draw FILE=vehicle.rb,car.rb CLASS=Vehicle,Car

To use human state / event names:

rake state_machine:draw FILE=vehicle.rb CLASS=Vehicle HUMAN_NAMES=true

Note that this will generate a different file for every state machine defined in the class. The generated files will use an output filename of the format #{class_name}_#{machine_name}.#{format}.

Interactive graphs

Jean Bovet's Visual Automata Simulator is a great tool for "simulating, visualizing and transforming finite state automata and Turing Machines". It can help in the creation of states and events for your models. It is cross-platform, written in Java.

results matching ""

    No results matching ""