forked from troessner/reek
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
284 lines (211 loc) · 9.51 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
== 1.2.13 (2012-12-07)
* (mvz) Update to rspec2.
* (petrjanda) Fix undefined method `chr' on an instance of String on Rubinius
== 1.2.12 (2012-06-09)
* (mvz) Use ripper_ruby_parser on Ruby 1.9.3 and up (thus making reek able
to parse the new 1.9 hash syntax).
== 1.2.11 (2012-06-08)
* (mvz) Make Bundler a development dependency.
== 1.2.10 (2012-06-05)
* (troessner) Use bundler rake tasks.
== 1.2.9 (2012-06-05)
* (marktabler) Allow single underscore as a variable assignment without triggering UncommunicativeVariableName.
== 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
== 1.2.7.3 (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)
== 1.2.7.2 (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
== 1.2.7.1 (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 http://wiki.github.com/kevinrutherford/reek 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 http://wiki.github.com/kevinrutherford/reek 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 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
== 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