Fetching contributors…
Cannot retrieve contributors at this time
263 lines (199 sloc) 8.98 KB
== 1.2.8 (2010-04-26)
=== Major Changes
* Smell detectors can be configured or disabled in code comments
** Comment with :reek:smell_name disables the named smell for a class, module or method
** Comment with :reek:smell_name:{...} for more detailed configuration
* Additional config file(s) can be specified:
** on the command-line using -c
** via Reek::Rake::Task in the rakefile
=== Minor Changes
* Duplication can be configured to ignore specific calls
* IrresponsibleModule now reports scoped module names correctly (#66)
* NestedIterators is now more configurable:
** Option to specify permitted nesting depth (#14)
** Option to ignore certain iterator methods
== (2010-03-29)
=== Minor Changes
* UtilityFunction no longer reported when local method called in param initializer (#60)
* Spaces removed from smell class names in report output
* Masked smells are no longer reported
** the -a command-line option has been removed
** some methods on Examiner are now deprecated
* DataClump no longer needs infinite memory for large classes (#57 again)
== (2010-03-05)
=== Minor Changes
* Number of masked smells is no longer shown in report headers
* Masked smells are no longer listed in --yaml reports
* DataClump no longer needs infinite memory for large classes (#57)
* DataClump reports the names of the offending methods in the YAML report
* UncommunicativeMethodName now accepts operator names (+, -, ...)
* Uncommunicative Name now warns about uppercase letters in method & var names
== (2010-02-03)
=== Minor Changes
* Fixed crash on a case statement with no condition (#58)
== 1.2.7 (2010-02-01)
=== Major Changes
* New option --yaml reports smells in YAML format
* Now require 'reek/rake/task' to use the rake task
* Now require 'reek/spec' to use the Rspec matchers
* Developer API completely revised and documented
=== Minor Changes
* New smell: Irresponsible Module (has no meaningful comment)
* ControlCouple no longer checks arguments yielded to blocks
* FeatureEnvy and UtilityFunction are now subclasses of a new smell: LowCohesion
* NestedIterators now reports the nesting depth
* Fixed problem checking for UtilityFunctions in Object
* Improved detection of invalid config files
* Invalid config files are now ignored
* Non-existent files are now ignored
See for further details.
== 1.2.6 (2009-11-28)
=== Minor Changes
* Corrected display of module methods to use # (#56)
== 1.2.5 (2009-11-19)
=== Minor Changes
* Ignores ruby_parser errors and pretends the offending file was empty
== 1.2.4 (2009-11-17)
=== Major Changes
* The -f, -c and -s options for formatting smell warnings have been removed
=== Minor Changes
* ControlCouple now warns about parameters defaulted to true/false
== 1.2.3 (2009-11-2)
=== Minor Changes
* New smell: Attribute (disabled by default)
* Expanded DataClump to check modules (#9)
* Fixed LargeClass to ignore inner classes and modules
* Fixed LargeClass to ignore singleton methods
* Removed support for MyClass.should_not reek due to ParseTree EOL
* Removed internal requiring of 'rubygems'
== 1.2.1 (2009-10-02)
=== Minor Changes
* New smell: Class Variable
See for details
== 1.2 2009-09-20
=== 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
* 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 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
== 1.1.3 2009-05-19
=== Minor Changes
* No longer depends directly on the sexp_processor gem
=== Fixes
* LargeClass now relies only on the given source code (fixed #26)
== 1.1.2 2009-05-18
=== Major Enhancements
* Switched from ParseTree to ruby_parser for source code parsing
* 'MyClass.should_not reek' now only possible if ParseTree gem installed
== 1.1.1 2009-05-08
=== Minor enhancements
* LargeClass now also warns about any class with > 9 instance variables (fixed #6)
* Now depends on ruby2ruby, to display code better
* Duplication notices more repeated method calls
* Smells within blocks are now reported better
== 1.1.0 2009-04-10
=== Minor enhancements
* Now possible to write 'MyClass.should_not reek' (fixed #33)
=== Fixes
* Now counts attr assignments ([]= etc) in feature envy calculations
* Doesn't attempt to find *.reek files when reading code from stdin
== 1.0.1 2009-04-06
=== Fixes
* Dir[...].to_source now creates a Report that can be browsed (fixed #36)
== 1.0.0 2009-04-05
=== Major enhancements
* Use *.reek files in source tree to configure Reek's behaviour
* Added -f option to configure report format
* --sort_order replaced by -f, -c and -s
* Matchers provided for rspec; eg. foo.should_not reek
=== Minor enhancements
* Smells in singleton methods are now analysed
* Uncommunicative parameter names in blocks now reported
* Modules and blocks now reflected in scope of smell reports
=== Fixes
* Corrected false reports of long arg lists to yield
* A method can now be a UtilityFunction only when it includes a call
== 0.3.1 2008-11-17
=== Minor enhancements
* Uncommunicative Name now checks instance variables more thoroughly
* Uncommunicative Name now warns about names of the form 'x2'
* Added check for duplicated calls within a method
* Reduced scope of Feature Envy warnings to cover only overuse of lvars
* Added rdoc comments explaining what each smell is about
* Chained iterators are no longer mis-reported as nested
== 0.3.0 2008-11-02
=== Minor enhancements
* New smell: first naive checks for Control Couple
* reek now only checks sources passed on the command line
* Code snippets can be supplied on the commandline
* Added headings and warnings count when smells in multiple files
* Added Reek::RakeTask to run reek from rakefiles
=== Fixes
* Fixed: Returns exit status 2 when smells are reported
* Fixed: no longer claims an empty method is a Utility Function
== 0.2.3 2008-09-22
* Minor enhancements:
* Only reports Feature Envy when the method isn't a Utility Function
* General improvements to assessing Feature Envy
* Tweaks:
* Fixed: coping with parameterless yield call
* Fixed: copes with :self as an expression
* Fixed: displaying the receiver of many more kinds of Feature Envy
* Fixed: Large Class calculation for Object
== 0.2.2 2008-09-15
* Tweaks:
* Fixed --version!
== 0.2.1 2008-09-14
* Tweaks:
* Now works from the source code, instead of requiring each named file
* Added integration tests that run reek on a couple of gems
== 0.2.0 2008-09-10
* Minor enhancements:
* Added --help, --version options
* Added --sort option to sort the report by smell or by code location
== 0.1.1 2008-09-09
* Some tweaks:
* Fixed report printing for Feature Envy when the receiver is a block
* Fixed: successive iterators reported as nested
* Fixed: Long Method now reports the total length of the method
* Fixed: each smell reported only once
== 0.1.0 2008-09-09
* 1 minor enhancement:
* Added a check for nested iterators within a method
* Some tweaks:
* Begun adding some rdoc
* Split some of the specs into more meaningful chunks
* Updated the rakefile so that rcov is no longer the default
== 0.0.1 2008-09-08
* 1 major enhancement:
* Initial release