All notable changes to this project will be documented in this file.
- Require at least Ruby version 2.3
- Set no upper bound on parser gem version.
- Require Forwardable.
- Use default temp directory.
- return keyword emits a terminal node in the context of a single methods. Side effects are unknown for methods returning back from a call into another method.
- Add parser options
unique_nodes
andonly_graphs
- Major improvements to tracing. Defaults to in-line method calls on self for better visuals.
- Block arguments are referenced on the edge instead of given separate node.
- Better handle more than one OR statement.
- Fixed bug where node id's were returning nil causing malformed graphs.
- Improved highlights execution path on flow chart. It using ruby code file or string to build the graph then a file or string of calling code.
- Better display blocks without arguments.
- Added DSL for graphing and tracing code.
- Highlights execution path on flow chart. It using ruby code file or string to build the graph then a file or string of calling code.
- Properly render Messy code, gilded Rose as example https://github.com/amckinnell/Gilded-Rose-Ruby/blob/master/lib/gilded_rose.rb
- Conditions with no else statement have an edge to an END node.
- All nodes have unique IDs based on source location. Nodes can be merged based on there label with VisualizeRuby::Graphviz(graphs, label, unique_nodes: false)
- Better handle conditions outside of if statements.
- Ruby types like Hash and Array causing error. Now render as code.
- Visualize Enumerable looping
- Display nodes for block arguments
- Change some visual display for flow charts.
- Add special parsing for case statements.
- Better handle variables assignment before control flow.
- Node text now parses ast back to Ruby code. Improve accurately displaying all type of ruby code.