readme.md in rubrowser-0.3.1 vs readme.md in rubrowser-2.0.0
- old
+ new
@@ -1,29 +1,44 @@
# Rubrowser
[![Gem Version](https://badge.fury.io/rb/rubrowser.svg)](https://badge.fury.io/rb/rubrowser)
-a visualizer for ruby code (rails or otherwise), it analyze your code and extract the modules definitions and used classes/modules and render all these information as a directed force graph using D3.
+
+a visualizer for ruby code (rails or otherwise), it analyze your code and
+extract the modules definitions and used classes/modules and render all these
+information as a directed force graph using D3.
+
+### Note:
+
+Starting from version 2.0.0 the project is no longer an http server, it
+generates one HTML file that is self-contained, data and script and html in one
+file, so you can generate it in your CI build and publish it as part of your
+documentation
+
this project is so small that the visualization looks like so
![rubrowser visualization](http://i.imgur.com/5mbshee.png)
-the idea is that the project opens every `.rb` file and parse it with `parser` gem then list all modules and classes definitions, and all constants that are listed inside this module/class and link them together.
+the idea is that the project opens every `.rb` file and parse it with `parser`
+gem then list all modules and classes definitions, and all constants that are
+listed inside this module/class and link them together.
Here are some output examples
-| Gem | Visualization |
-| ------------- |:-------------:|
-| rack-1.6.4/lib | ![rake](http://i.imgur.com/4UsCo0a.png) |
-| actioncable-5.0.0/lib | ![acioncable](http://i.imgur.com/Q0Xqjsz.png) |
-| railties-5.0.0/lib | ![railties](http://i.imgur.com/31g10a1.png) |
+| Gem | Visualization |
+| ------------- | :-------------: |
+| rack-1.6.4/lib | ![rake](http://i.imgur.com/4UsCo0a.png) |
+| actioncable-5.0.0/lib | ![acioncable](http://i.imgur.com/Q0Xqjsz.png) |
+| railties-5.0.0/lib | ![railties](http://i.imgur.com/31g10a1.png) |
there are couple things you need to keep in mind:
-* if your file doesn't have a valid ruby syntax it won't be parsed and will print warning.
-* if you reference a class that is not defined in your project it won't be in the graph, we only display the graph of classes/modules you defined
+* if your file doesn't have a valid ruby syntax it won't be parsed and will
+ print warning.
+* if you reference a class that is not defined in your project it won't be in
+ the graph, we only display the graph of classes/modules you defined
* it statically analyze the code so meta programming is out of question in here
* rails associations are meta programming so forget it :smile:
## Installation
@@ -35,36 +50,43 @@
## Usage
```
Usage: rubrowser [options] [file] ...
- -p, --port=PORT Specify port number for server, default = 9000
-v, --version Print Rubrowser version
-h, --help Prints this help
```
if you run it without any options
```
rubrowser
```
-it'll analyze the current directory and open port 9000, so you can access the graph from `localhost:9000`
+it'll analyze the current directory and print out an HTML file, so you can write it to a file, and open it in your browser
+```
+rubrowser > output.html
+```
+
## Features
* interactive graph, you can pull any node to fix it to some position
* to release node double click on it
* zoom and pan with mouse or touch pad
-* highlight node and all related nodes, it'll make it easier for you to see what depends and dependencies of certain class
+* highlight node and all related nodes, it'll make it easier for you to see what
+ depends and dependencies of certain class
* ignore node by name
* ignore nodes of certain type (modules/classes)
* hide namespaces
* hide relations
* change graph appearance (collision radius)
* stop animation immediately
-* Module/class circle size on the graph will be relative to module number of lines in your code
+* Module/class circle size on the graph will be relative to module number of
+ lines in your code
* cyclical dependencies are marked in red
## Why?
-Because i didn't find a good visualization tool to make me understand ruby projects when I join a new one.
+Because i didn't find a good visualization tool to make me understand ruby
+projects when I join a new one.
-it's great when you want to get into an open source project and visualize the structure to know where to work and the relations between modules/classes.
+it's great when you want to get into an open source project and visualize the
+structure to know where to work and the relations between modules/classes.