Visualize State Machines using GraphViz
Stateoscope depends on GraphViz for generating the graphs. You need to make sure that GraphViz is properly installed on your system before you will be able to generate graphs. If you are on a Mac, you can install GraphViz via Homebrew
$ brew install graphviz
Add this line to your application's Gemfile:
gem 'stateoscope', '~> 0.1.3', group: :development
And then execute:
Using the rake task
To generate a state machine visualization for your
If you have multiple state machines defined on your model, you can pass the name of the state machine as second parameter
If you want to highlight a specific state of your state machine, add the name as a third argument.
In any case, a PDF file containing the graph visualization will be saved to the current directory.
Using Stateoscope directly
Stateoscope exposes a
visualize method that allows for a more fine-grained and dynamic usage.
filename = Stateoscope.visualize( Order, state_machine_name: "order_state", current_state: "delivered", dir: Rails.root.join("public"), # default current directory format: "png" # default "pdf", possible are all formats that GraphViz supports ) # filename will be for example RAILS_ROOT/public/order_state-20191201145422.png
Stateoscope ships with adapters for the following state machine gems:
After checking out the repo, run
bin/setup to install dependencies. Then, run
rake spec to run the tests. You can also run
bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run
bundle exec rake install.
To release a new version, perform the following steps:
- update changelog
- update version in
- update version in the installation instructions in
bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the
.gemfile to rubygems.org
- create a release for the new version on github.com
Bug reports and pull requests are welcome on GitHub at https://github.com/padde/stateoscope.