RubyBreaker is a dynamic type documentation tool written in pure Ruby. It provides the framework for dynamically instrumenting a Ruby program to monitor objects during the execution and document the observed type information. In addition, it can perform early dynamic type checking. In other words, RubyBreaker helps Ruby programs "break" out of obscurities and convolutions by documenting the type information. The type documentation generated by RubyBreaker is also an executable Ruby code that can be used as an input to subsequent analyses.

The primary goal of RubyBreaker is to assign a type signature to every method in selected modules and classes. A type signature is written in the RubyBreaker Type Annotation Language which resembles the documentation style used in Ruby Core Library Doc. No manual code change is required. Overall, this tool should help Ruby programmers document their code more rigorously and effectively.

Currently, RubyBreaker does not

  • Auto-document block arguments (inherent)
  • Support parametric polymorphic types
  • Support RDoc or YARD output format

To contribute to the project, visit RubyBreaker's GitHub page and RubyGems page. The web version of this document and the tutorial can be found here.


Ruby 1.9.x and TreeTop 1.x

If the most recent Ruby 1.9 is installed on the computer, it will probably work. If TreeTop is not installed, use RubyGems or download from the following URL: TreeTop


It is as simple as running the following command:

$ gem install rubybreaker