Reek is a code smell detector for Ruby. Rather than concentrating on syntax errors or enforcing a particular formatting style, it examines classes, modules and methods for structural characteristics that can make code harder to understand, maintain or extend.
Its warnings are deliberately higher-level than those generated by many conventional linters. A reported smell is therefore something to investigate rather than necessarily a defect that can be fixed mechanically. This makes Reek particularly useful when reviewing design decisions or identifying areas of a codebase that may benefit from refactoring.
This is free and open source software.
Key Features
- Detects a broad range of code smells including Feature Envy, Data Clumps, Large Classes, Long Parameter Lists, Too Many Statements, Uncommunicative Names, unused parameters, and other maintainability issues.
- Accepts individual Ruby files, directories, the current working directory, or Ruby source supplied through standard input.
- Provides YAML-based configuration for enabling, disabling, and adjusting individual smell detectors.
- Supports source-code comments for suppressing selected warnings where a particular design choice is intentional.
- Can generate a todo configuration containing existing warnings, making it easier to introduce Reek gradually to established projects.
- Offers multiple output formats for use interactively or with other development and reporting tools.
- Works with Ruby on Rails projects and can be incorporated into automated code-quality workflows.
- Supports editor integrations and other development tools that surface Reek warnings while working on Ruby code.
- Runs on the principal Ruby implementations, including CRuby and JRuby.
Website: github.com/troessner/reek
Support:
Developer: Kevin Rutherford
License: MIT License
Reek is written in Ruby. Learn Ruby with our recommended free books and free tutorials.
Related Software
| Ruby Linters | |
|---|---|
| RuboCop | Ruby static code analyzer and formatter |
| Reek | Examines Ruby classes, modules, and methods |
| Standard Ruby | Provides an opinionated, unconfigurable ruleset |
| HAML-Lint | Ruby-based linter for HAML templates |
| Slim-Lint | Configurable tool for analyzing Slim templates |
| ERB Lint | Lint your ERB or HTML files |
| YARD-Lint | For Ruby and Ruby on Rails projects that lint YARD documentation |
| oxicop | Fast Ruby linter |
Read our verdict in the software roundup.
Explore our carefully curated directory of recommended free and open source software, covering every major software category.The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more. Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form. |


Please read our Comment Policy before commenting.