# Reek, a code smells detector for ruby

**URL:** <https://www.ruby-forum.com/t/reek-a-code-smells-detector-for-ruby/149449>\
**Category:** Ruby\
**Created:** [September 24, 2008, 11:58pm UTC](https://www.ruby-forum.com/t/reek-a-code-smells-detector-for-ruby/149449 "2008-09-24T23:58:58Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kevin\_Rutherford](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/c4cdca/32.png) [@Kevin\_Rutherford](https://www.ruby-forum.com/u/Kevin_Rutherford)\
**Post date:** [September 24, 2008, 11:58pm UTC](https://www.ruby-forum.com/t/reek-a-code-smells-detector-for-ruby/149449/1 "2008-09-24T23:58:58Z")

</div>

Hi,  
I’ve been working on a little software tool called ‘reek’. Reek scans  
ruby code — either source files or in-memory Class objects — looking  
for some of the code smells discussed in the book. Right now it can  
detect (certain forms of):

```
* Long Method
* Large Class
* Feature Envy
* Uncommunicative Name
* Long Parameter List
* Utility Function
* Nested Iterators

```

As time goes by I’ll be adding checks for more smells, and I hope to  
make the current checks a bit more sophisticated. But in the agile  
spirit of going ugly early, the current very early version is  
available for you to experiment with. To get the tool:

gem install reek

To run it:

reek file1.rb file2.rb …

If you try it, please let me know what you think and what you’d like  
the next version to do!

You can browse the reek project’s code repository at  
[GitHub - kevinrutherford/reek: Code smell detector for Ruby](http://github.com/kevinrutherford/reek/tree/master) or  
[http://rubyforge.org/projects/reek/](http://rubyforge.org/projects/reek/).  
Cheers,  
Kevin
