Gem Reek adalah sebuah gem yang dibuat oleh Kevin Rutherford untuk menganalisa atau melakukan code smell kode Ruby yang dibuat. Setelah melakukan code smell detection, Reek akan memberikan report yang sangat mudah untuk dimerngerti seperti di bawah ini.

Msg#hello calls puts("-------------------------------------") twice (Duplication)
Scanner#Scanning has the variable name 's' (Uncommunicative Name)

Ada beberapa aspek yang digunakan oleh reek untuk melakukan code smell, diantaranya adalah sebagai berikut.

  • Control Couple
  • Data Clump
  • Feature Envy
  • Large Class
  • Long Method
  • Long Parameter List
  • Simulated Polymorphism
  • Uncommunicative Name

Dengan banyaknya aspek yang digunakan, akan membuat evaluasi kode menjadi lebih baik dan akan membuat programmer membuat kode lebih baik pula. Selain itu, Reek juga kompatibel dengan Ruby 1.8.6, 1.8.7, dan 1.9.1. Untuk informasi lebih detail, dapat dilihat wiki dari reek tersebut.