Roodi [ Ruby Object Oriented Design Inferometer ]
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 }
No comments:
Post a Comment