Society
Society analyzes and presents social graphs of relationships between classes in a Ruby or Rails project. It displays relationships that are either explicitly declared (e.g. in an ActiveRecord relation) or defined by calls between classes (e.g. in the source of ClassA there is a call to ClassB).
Please note that Society requires Ruby 2.1 or later.
Sample output
Network graph
Heatmap
Installation
Add this line to your application's Gemfile:
gem 'society'
And then execute:
$ bundle
Or install it yourself as:
$ gem install society
Usage
From your terminal:
$ society from path/to/models [more/paths/if/applicable]
and then open doc/society/index.htm
or doc/society/society.csv
in your browser.
For more complex applications, society also supports file globbing:
society from ../path/to/models/*user*
The default format is HTML and CSV; you can skip the HTML interface and just get the
JSON by passing --format json
Note that all JSON data is timestamped (regardless of output format) to store snapshots of your project over time.
Recognition
Society was inspired by an original idea by Kerri Miller (@kerrizor).
Contributing
Please note that this project is released with a [Contributor Code of Conduct] (http://contributor-covenant.org/version/1/0/0/). By participating in this project you agree to abide by its terms.
- Fork it ( https://github.com/CoralineAda/society/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request