Roodi [ Ruby Object Oriented Design Inferometer ]

ruby-design

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.

Very easy to install and use with your code.

# gem install roodi

We can check one or more files using the default configuration that comes with roodi.

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”

CUSTOM CONFIGURATION

To change the set of checks included, or to change the default values of the checks, you can 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 }

 

 

Total Page Visits: 2116 - Today Page Visits: 3

Leave a Reply