Reek 1.2 released

Hi,
Reek version 1.2.0 has been released!

Reek detects smells in Ruby code. It can be used as a stand-alone
command, or as a Rake task, or as an expectation in Rspec examples.

Changes in this release:

Major Changes

  • Reek passes all its tests under ruby 1.8.6, 1.8.7 and 1.9.1 (fixed
    #16)
  • New smell – Data Clump:
    ** Looks within a class for 3 or more methods taking the same 2 or
    more parameters
  • New smell – Simulated Polymorphism:
    ** Currently only performs basic check for multiple tests of same value
  • Reek’s output reports are now formatted differently:
    ** Reek is no longer silent about smell-free source code
    ** Output now reports on all files examined, even if they have no smells
    ** Smell warnings are indented in the report; file summary headers are
    not
    ** Reports for multiple sources are run together; no more blank lines
    ** Reports in spec matcher failures are quiet (fixed #38)
  • The smells masked by *.reek config files can now be seen:
    ** The header for each source file now counts masked smells
    ** The --show-all (-a) option shows masked warnings in the report
  • The spec matchers are now accessed by requiring ‘reek/adapters/spec’

Minor Changes

  • Reek’s RDoc is now hosted at
    http://rdoc.info/projects/kevinrutherford/reek
  • If a dir is passed on the command-line all **/*.rb files below it
    are examined (fixed #41)
  • Duplication warnings now report the number of identical calls
  • FeatureEnvy no longer ignores :self when passed as a method parameter
  • LargeClass is disabled when checking in-memory classes (fixed #28)
  • LongParameterList accepts upto 5 parameters for #initialize methods
  • Several changes to the LongMethod counting algorithm:
    ** LongMethod now counts statements deeper into each method (fixed #25)
    ** LongMethod no longer counts control structures, only their contained
    stmts
    ** See http://wiki.github.com/kevinrutherford/reek/long-method for
    details
  • UncommunicativeName warns about any name ending in a number (fixed
    #18)
  • UtilityFunction has been relaxed somewhat:
    ** no longer reports methods that call ‘super’ (fixed #39)
    ** no longer reports simple helper methods
    ** can be configured based on number of calls out
  • Now reports an error for corrupt config files
  • Empty config files are ignored
  • Smells can be configured with scope-specific overrides for any config
    item

More information:

Cheers,
Kevin