VoidMeter is mainly used to generate the result artifacts for Tabs versus Spaces. The program is written for JRuby and uses two external dependencies: the JSON gem and the JFreeChart library for charting. The source code is released under the terms of the GNU General Public License version 2. The whole thing was only tested under a recent GNU/Linux distribution.
Example
In the following example, VoidMeter is used to inspect its own source code:
$ export JAVA_HOME=/opt/jdk-1.6.0
$ export PATH=$JAVA_HOME/bin:$PATH
$ export JRUBY_HOME=/opt/jruby-1.6
$ export PATH=$JRUBY_HOME/bin:$PATH
$ java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Server VM (build 19.1-b02, mixed mode)
$ jruby --1.9 --version
jruby 1.6.0 (ruby 1.9.2 patchlevel 136) (2011-03-15 f3b6154) (Java HotSpot(TM) Client VM 1.6.0_24) [linux-i386-java]
$ jruby --1.9 -S gem install json
Successfully installed json-1.5.1-java
1 gem installed
$ cd /tmp
$ wget http://www.vakuumverpackt.de/voidmeter/VoidMeter-r0.tar.gz
$ tar -zxvf VoidMeter-r0.tar.gz
VoidMeter-r0/
...
VoidMeter-r0/README
$ cd VoidMeter-r0
$ jruby --1.9 -J-cp 'jfreechart/*' test/test.rb
...
7 tests, 59 assertions, 0 failures, 0 errors, 0 skips
...
$ vim VoidMeter.rb
...
$ cat VoidMeter.rb
# encoding: utf-8
require_relative 'lib/Projects'
files = VoidMeter::Files.new
files.add_file(extension: '.rb', block_comment: { open: '=begin', close: '=end' })
files.add_file(extension: '.html')
project = VoidMeter::Project.new(name: 'VoidMeter', files: files, encoding: 'utf-8')
project.add_release(version: 'r0', path: '/tmp/VoidMeter-r0')
projects = VoidMeter::Projects.new
projects.add_project(project)
projects.meter
projects.render
$ jruby --1.9 -J-cp 'jfreechart/*' VoidMeter.rb
VoidMeter::Meter#meter!: project.name == VoidMeter
VoidMeter::Meter#meter!: release.version == r0
VoidMeter::ChartRenderer#render: project.name == VoidMeter
VoidMeter::ChartRenderer#render: release.version == r0
VoidMeter::HtmlRenderer#render: project.name == VoidMeter
$ ls -1 results
./
../
charts/
VoidMeter.html
VoidMeter.json
VoidMeterProjectPanel.html
The generated result artifacts:
| Lines indented by | ||||||||
|---|---|---|---|---|---|---|---|---|
| Version | Files | Lines | Not | Tabs | Spaces | Both | Block comment | Trailing |
| r0 | 13 | 1082 | 401 | 681 | 0 | 0 | 0 | 0 |