Kwala is a build tool that contains a number of actions to check the "quality" of your ruby source code. Some of the included actions are checks for code duplication, cyclomatic complexity, lines of code, unit tests, various formatting checks, and require cycles. In addition, kwala is designed to allow users to add and create new actions to check against the code. It generates both a summary page and detail pages for the various actions.
License
Kwala is under the BSD license
Example output
The following are a few simple examples of Kwala output when run on various Ruby projects.
Usage
Kwala is a command line tool that allows you to specify which actions to run on your project. Because Kwala is a command line tool it is easy to setup as cron job to perform periodic checks against your code base.
An example for hourly builds:
kwala -p MyProject -d projects/MyProject -o builds -a syntax_check -a formatting -a unit_test -a cyclomatic -a cycles
For more details on how to use it, please see the usage notes by running
kwala -?
Dependencies
Kwala uses Amrita 1 to generate the HTML results pages. You can get it from here: http://amrita.sourceforge.jp/
At the moment Amrita 1 is not available as a RubyGem.
External Tools Used
Some actions use external tools to perform the actual check or present the results. If an action cannot find its required tools, that action will simply not generate any output. For your convenience, we already bundled a few jar files (see in the ext directory) that some actions use. Here is a complete list of the projects from which those tools originate:
- PMD's CPD for code duplication. http://pmd.sourceforge.net/
- Prefuse for require graph visualization. http://www.prefuse.org/
- Saikuro for cyclomatic complexity checks http://saikuro.rubyforge.org/
- rcov for code coverage http://eigenclass.org/hiki.rb?rcov
Authors and Contributors
- Zev Blut
- Pierre Baumard
- Michael Reinsch
- Elbert Corpuz for CSS and HTML page layout
Finally, thanks to Ubit for allowing this software to go open source.
Other Build Tools
If Kwala is not what you are looking for then here is a list of some other build tools.