Lint your Ruby code, identify similar methods, and calculate complexity & churn.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
bin
lib
src
test
.editorconfig
.gitattributes
.gitignore
.vile.yml
CHANGELOG.md
CODE_OF_CONDUCT.md
LICENSE
README.md
appveyor.yml
coffeelint.json
package-lock.json
package.json
tsconfig.json
tslint.json

README.md

vile-rubycritic Circle CI Build status score-badge coverage-badge dependency-badge

A Vile plugin for linting your Ruby code, identifying similar methods, and calculating code churn (via RubyCritic).

Requirements

Installation

Currently, you need to have rubycritic installed manually.

Example:

npm i -D vile vile-rubycritic
gem install rubycritic

Note: A good strategy is to use Bundler.

Config

Example:

rubycritic:
  allow:
    - app
    - spec
  config:
    rating: "A"

Any source control related properites like churn will be ignored if you are not using anything like Git.

Ignore

Since rubycritic honours your .reek configuration, you should be able to use that to ignore files.

However, it appears that ignoring files is not wholistically supported, so a solution for now is to specify whitelist paths:

rubycritic:
  allow:
    - app
    - lib

Gotchas

If you see something like this:

error worker Error: ENOENT: no such file or directory, open './tmp/rubycritic/report.json'

...and you are using the slim-lint plugin, see here for some workarounds.

If nothing helps, feel free to open an issue!

Vile Types Generated

  • vile.DUPE
  • vile.CHURN
  • vile.COMP
  • vile.MAIN

Versioning

This project uses Semver.

Licensing

This project is licensed under the MPL-2.0 license.

Any contributions made to this project are made under the current license.

Contributions

Current list of Contributors.

Any contributions are welcome and appreciated!

All you need to do is submit a Pull Request.

  1. Please consider tests and code quality before submitting.
  2. Please try to keep commits clean, atomic and well explained (for others).

Issues

Current issue tracker is on GitHub.

Even if you are uncomfortable with code, an issue or question is welcome.

Code Of Conduct

By participating in this project you agree to our Code of Conduct.

Maintainers

Architecture

This project is currently written in TypeScript.

RubyCritic provides a JSON CLI output that is currently used until a more ideal IPC option is implemented.

  • bin houses any shell based scripts
  • src typescript src
  • lib generated js library

Developing

cd vile-rubycritic
npm install
gem install rubycritic
npm run dev
npm test