roodi - Roodi stands for Ruby Object Oriented Design Inferometer.
Contents
Description
Roodi stands for Ruby Object Oriented Design Inferometer. It parses your Ruby code and warns you about
design issues you have based on the checks that is has configured.
Example Usage
Check all ruby files in a rails app:
roodi "rails_app/**/*.rb"
Check one controller and one model file in a rails app:
roodi app/controller/sample_controller.rb app/models/sample.rb
Check one controller and all model files in a rails app:
roodi app/controller/sample_controller.rb "app/models/*.rb"
Check all ruby files in a rails app with a custom configuration file:
roodi -config=my_roodi_config.yml "rails_app/**/*.rb"
If you're writing a check, it is useful to see the structure of a file the way that Roodi tokenizes it
(via ruby_parser). Use:
roodi-describe [filename]
Files
/etc/roodi.yml
Roodi default config-file.
Name
roodi - Roodi stands for Ruby Object Oriented Design Inferometer.
Options
-config=config-file
Provide your own config-file. The config-file is a YAML file that lists the checks to be
included. Each check can optionally include a hash of options that are passed to the check to
configure it. For example, the default config file looks like this:
AssignmentInConditionalCheck: { }
CaseMissingElseCheck: { }
ClassLineCountCheck: { line_count: 300 }
ClassNameCheck: { pattern: !ruby/regexp /^[A-Z][a-zA-Z0-9]*$/ }
CyclomaticComplexityBlockCheck: { complexity: 4 }
CyclomaticComplexityMethodCheck: { complexity: 8 }
EmptyRescueBodyCheck: { }
ForLoopCheck: { }
MethodLineCountCheck: { line_count: 20 }
MethodNameCheck: { pattern: !ruby/regexp /^[_a-z<>=\[\]|+-\*`]+[_a-
z0-9_<>=~@\[\]]*[=!\?]?$/ }
ModuleLineCountCheck: { line_count: 300 }
ModuleNameCheck: { pattern: !ruby/regexp /^[A-Z][a-zA-Z0-9]*$/ }
ParameterNumberCheck: { parameter_count: 5 }
See Also
roodi-describe(1) http://roodi.rubyforge.org
Synopsis
roodi [options] [pattern ...]
Version
Roodi, version 2.2.0
ROODI(1)
