reek 1.2.6 → 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. data/.yardopts +10 -0
  2. data/History.txt +62 -0
  3. data/README.md +74 -0
  4. data/bin/reek +2 -2
  5. data/config/defaults.reek +44 -5
  6. data/features/api.feature +20 -0
  7. data/features/masking_smells.feature +60 -42
  8. data/features/options.feature +7 -2
  9. data/features/rake_task.feature +29 -22
  10. data/features/reports.feature +9 -41
  11. data/features/samples.feature +184 -196
  12. data/features/stdin.feature +5 -8
  13. data/features/step_definitions/reek_steps.rb +8 -4
  14. data/features/support/env.rb +2 -3
  15. data/features/yaml.feature +85 -0
  16. data/lib/reek/cli/application.rb +46 -0
  17. data/lib/reek/cli/command_line.rb +108 -0
  18. data/lib/reek/cli/help_command.rb +18 -0
  19. data/lib/reek/cli/reek_command.rb +37 -0
  20. data/lib/reek/cli/report.rb +58 -0
  21. data/lib/reek/cli/version_command.rb +19 -0
  22. data/lib/reek/cli/yaml_command.rb +32 -0
  23. data/lib/reek/core/code_context.rb +64 -0
  24. data/lib/reek/core/code_parser.rb +166 -0
  25. data/lib/reek/core/method_context.rb +84 -0
  26. data/lib/reek/core/module_context.rb +20 -0
  27. data/lib/reek/core/object_refs.rb +51 -0
  28. data/lib/reek/core/singleton_method_context.rb +20 -0
  29. data/lib/reek/core/smell_configuration.rb +62 -0
  30. data/lib/reek/core/sniffer.rb +105 -0
  31. data/lib/reek/core/stop_context.rb +30 -0
  32. data/lib/reek/core/warning_collector.rb +27 -0
  33. data/lib/reek/examiner.rb +104 -0
  34. data/lib/reek/rake/task.rb +142 -0
  35. data/lib/reek/smell_warning.rb +73 -23
  36. data/lib/reek/smells/attribute.rb +26 -21
  37. data/lib/reek/smells/boolean_parameter.rb +38 -0
  38. data/lib/reek/smells/class_variable.rb +22 -9
  39. data/lib/reek/smells/control_couple.rb +40 -16
  40. data/lib/reek/smells/data_clump.rb +114 -23
  41. data/lib/reek/smells/duplication.rb +55 -15
  42. data/lib/reek/smells/feature_envy.rb +16 -7
  43. data/lib/reek/smells/irresponsible_module.rb +37 -0
  44. data/lib/reek/smells/large_class.rb +37 -19
  45. data/lib/reek/smells/long_method.rb +20 -9
  46. data/lib/reek/smells/long_parameter_list.rb +22 -10
  47. data/lib/reek/smells/long_yield_list.rb +43 -7
  48. data/lib/reek/smells/nested_iterators.rb +68 -8
  49. data/lib/reek/smells/simulated_polymorphism.rb +26 -15
  50. data/lib/reek/smells/smell_detector.rb +29 -51
  51. data/lib/reek/smells/uncommunicative_method_name.rb +74 -0
  52. data/lib/reek/smells/uncommunicative_module_name.rb +74 -0
  53. data/lib/reek/smells/uncommunicative_parameter_name.rb +79 -0
  54. data/lib/reek/smells/uncommunicative_variable_name.rb +89 -0
  55. data/lib/reek/smells/utility_function.rb +51 -12
  56. data/lib/reek/smells.rb +29 -0
  57. data/lib/reek/source/code_comment.rb +37 -0
  58. data/lib/reek/source/config_file.rb +72 -0
  59. data/lib/reek/source/core_extras.rb +46 -0
  60. data/lib/reek/source/reference_collector.rb +28 -0
  61. data/lib/reek/source/sexp_formatter.rb +17 -0
  62. data/lib/reek/source/source_code.rb +44 -0
  63. data/lib/reek/source/source_file.rb +32 -0
  64. data/lib/reek/source/source_locator.rb +42 -0
  65. data/lib/reek/source/tree_dresser.rb +204 -0
  66. data/lib/reek/source.rb +18 -0
  67. data/lib/reek/spec/should_reek.rb +31 -0
  68. data/lib/reek/spec/should_reek_of.rb +37 -0
  69. data/lib/reek/spec/should_reek_only_of.rb +37 -0
  70. data/lib/reek/spec.rb +51 -0
  71. data/lib/reek.rb +8 -4
  72. data/reek.gemspec +9 -7
  73. data/spec/matchers/smell_of_matcher.rb +58 -0
  74. data/spec/reek/{help_command_spec.rb → cli/help_command_spec.rb} +3 -4
  75. data/spec/reek/cli/reek_command_spec.rb +46 -0
  76. data/spec/reek/cli/report_spec.rb +30 -0
  77. data/spec/reek/{version_command_spec.rb → cli/version_command_spec.rb} +3 -3
  78. data/spec/reek/cli/yaml_command_spec.rb +47 -0
  79. data/spec/reek/core/code_context_spec.rb +145 -0
  80. data/spec/reek/{code_parser_spec.rb → core/code_parser_spec.rb} +7 -6
  81. data/spec/reek/{config_spec.rb → core/config_spec.rb} +2 -6
  82. data/spec/reek/{method_context_spec.rb → core/method_context_spec.rb} +16 -36
  83. data/spec/reek/core/module_context_spec.rb +27 -0
  84. data/spec/reek/{object_refs_spec.rb → core/object_refs_spec.rb} +5 -6
  85. data/spec/reek/core/singleton_method_context_spec.rb +9 -0
  86. data/spec/reek/core/smell_configuration_spec.rb +11 -0
  87. data/spec/reek/core/stop_context_spec.rb +17 -0
  88. data/spec/reek/core/warning_collector_spec.rb +27 -0
  89. data/spec/reek/examiner_spec.rb +103 -0
  90. data/spec/reek/smell_warning_spec.rb +74 -82
  91. data/spec/reek/smells/attribute_spec.rb +42 -23
  92. data/spec/reek/smells/behaves_like_variable_detector.rb +2 -2
  93. data/spec/reek/smells/boolean_parameter_spec.rb +66 -0
  94. data/spec/reek/smells/class_variable_spec.rb +60 -75
  95. data/spec/reek/smells/control_couple_spec.rb +37 -32
  96. data/spec/reek/smells/data_clump_spec.rb +63 -24
  97. data/spec/reek/smells/duplication_spec.rb +106 -57
  98. data/spec/reek/smells/feature_envy_spec.rb +113 -92
  99. data/spec/reek/smells/irresponsible_module_spec.rb +58 -0
  100. data/spec/reek/smells/large_class_spec.rb +67 -57
  101. data/spec/reek/smells/long_method_spec.rb +40 -10
  102. data/spec/reek/smells/long_parameter_list_spec.rb +50 -28
  103. data/spec/reek/smells/long_yield_list_spec.rb +57 -0
  104. data/spec/reek/smells/nested_iterators_spec.rb +115 -7
  105. data/spec/reek/smells/simulated_polymorphism_spec.rb +56 -20
  106. data/spec/reek/smells/smell_detector_shared.rb +42 -0
  107. data/spec/reek/smells/uncommunicative_method_name_spec.rb +42 -0
  108. data/spec/reek/smells/uncommunicative_module_name_spec.rb +66 -0
  109. data/spec/reek/smells/uncommunicative_parameter_name_spec.rb +71 -0
  110. data/spec/reek/smells/uncommunicative_variable_name_spec.rb +120 -0
  111. data/spec/reek/smells/utility_function_spec.rb +50 -4
  112. data/spec/reek/source/code_comment_spec.rb +82 -0
  113. data/spec/reek/source/object_source_spec.rb +20 -0
  114. data/spec/reek/source/reference_collector_spec.rb +53 -0
  115. data/spec/reek/{adapters/source_spec.rb → source/source_code_spec.rb} +7 -8
  116. data/spec/reek/source/tree_dresser_spec.rb +270 -0
  117. data/spec/reek/spec/should_reek_of_spec.rb +76 -0
  118. data/spec/reek/spec/should_reek_only_of_spec.rb +89 -0
  119. data/spec/reek/{adapters → spec}/should_reek_spec.rb +8 -32
  120. data/spec/samples/all_but_one_masked/clean_one.rb +1 -0
  121. data/spec/samples/all_but_one_masked/dirty.rb +1 -0
  122. data/spec/samples/all_but_one_masked/masked.reek +5 -1
  123. data/spec/samples/clean_due_to_masking/clean_one.rb +1 -0
  124. data/spec/samples/clean_due_to_masking/clean_three.rb +1 -0
  125. data/spec/samples/clean_due_to_masking/clean_two.rb +1 -0
  126. data/spec/samples/clean_due_to_masking/dirty_one.rb +1 -1
  127. data/spec/samples/clean_due_to_masking/dirty_two.rb +1 -1
  128. data/spec/samples/clean_due_to_masking/masked.reek +5 -1
  129. data/spec/samples/config/allow_duplication.reek +3 -0
  130. data/spec/samples/config/deeper_nested_iterators.reek +3 -0
  131. data/spec/samples/corrupt_config_file/dirty.rb +1 -1
  132. data/spec/samples/demo/demo.rb +8 -0
  133. data/spec/samples/empty_config_file/dirty.rb +2 -1
  134. data/spec/samples/exceptions.reek +1 -1
  135. data/spec/samples/inline_config/dirty.rb +16 -0
  136. data/spec/samples/inline_config/masked.reek +7 -0
  137. data/spec/samples/mask_some/dirty.rb +8 -0
  138. data/spec/samples/mask_some/some.reek +8 -0
  139. data/spec/samples/masked/dirty.rb +2 -1
  140. data/spec/samples/masked/masked.reek +3 -1
  141. data/spec/samples/mixed_results/clean_one.rb +1 -0
  142. data/spec/samples/mixed_results/clean_three.rb +1 -0
  143. data/spec/samples/mixed_results/clean_two.rb +1 -0
  144. data/spec/samples/mixed_results/dirty_one.rb +1 -0
  145. data/spec/samples/mixed_results/dirty_two.rb +1 -0
  146. data/spec/samples/not_quite_masked/dirty.rb +2 -1
  147. data/spec/samples/not_quite_masked/masked.reek +1 -1
  148. data/spec/samples/overrides/masked/dirty.rb +2 -1
  149. data/spec/samples/overrides/masked/lower.reek +3 -1
  150. data/spec/samples/three_clean_files/clean_one.rb +1 -0
  151. data/spec/samples/three_clean_files/clean_three.rb +1 -0
  152. data/spec/samples/three_clean_files/clean_two.rb +1 -0
  153. data/spec/samples/two_smelly_files/dirty_one.rb +2 -1
  154. data/spec/samples/two_smelly_files/dirty_two.rb +2 -1
  155. data/spec/spec_helper.rb +10 -2
  156. data/tasks/reek.rake +2 -2
  157. data/tasks/test.rake +12 -3
  158. metadata +121 -79
  159. data/README.rdoc +0 -84
  160. data/features/profile.feature +0 -34
  161. data/lib/reek/adapters/application.rb +0 -46
  162. data/lib/reek/adapters/command_line.rb +0 -77
  163. data/lib/reek/adapters/config_file.rb +0 -31
  164. data/lib/reek/adapters/core_extras.rb +0 -64
  165. data/lib/reek/adapters/rake_task.rb +0 -121
  166. data/lib/reek/adapters/report.rb +0 -86
  167. data/lib/reek/adapters/source.rb +0 -72
  168. data/lib/reek/adapters/spec.rb +0 -133
  169. data/lib/reek/block_context.rb +0 -62
  170. data/lib/reek/class_context.rb +0 -41
  171. data/lib/reek/code_context.rb +0 -68
  172. data/lib/reek/code_parser.rb +0 -203
  173. data/lib/reek/configuration.rb +0 -57
  174. data/lib/reek/detector_stack.rb +0 -37
  175. data/lib/reek/help_command.rb +0 -14
  176. data/lib/reek/if_context.rb +0 -18
  177. data/lib/reek/masking_collection.rb +0 -33
  178. data/lib/reek/method_context.rb +0 -138
  179. data/lib/reek/module_context.rb +0 -49
  180. data/lib/reek/name.rb +0 -57
  181. data/lib/reek/object_refs.rb +0 -49
  182. data/lib/reek/reek_command.rb +0 -28
  183. data/lib/reek/sexp_formatter.rb +0 -10
  184. data/lib/reek/singleton_method_context.rb +0 -26
  185. data/lib/reek/smells/uncommunicative_name.rb +0 -84
  186. data/lib/reek/sniffer.rb +0 -177
  187. data/lib/reek/stop_context.rb +0 -35
  188. data/lib/reek/tree_dresser.rb +0 -82
  189. data/lib/reek/version_command.rb +0 -14
  190. data/lib/reek/yield_call_context.rb +0 -12
  191. data/spec/reek/adapters/report_spec.rb +0 -31
  192. data/spec/reek/adapters/should_reek_of_spec.rb +0 -138
  193. data/spec/reek/adapters/should_reek_only_of_spec.rb +0 -87
  194. data/spec/reek/block_context_spec.rb +0 -65
  195. data/spec/reek/class_context_spec.rb +0 -161
  196. data/spec/reek/code_context_spec.rb +0 -182
  197. data/spec/reek/configuration_spec.rb +0 -12
  198. data/spec/reek/if_context_spec.rb +0 -17
  199. data/spec/reek/masking_collection_spec.rb +0 -236
  200. data/spec/reek/module_context_spec.rb +0 -46
  201. data/spec/reek/name_spec.rb +0 -37
  202. data/spec/reek/object_source_spec.rb +0 -23
  203. data/spec/reek/reek_command_spec.rb +0 -45
  204. data/spec/reek/singleton_method_context_spec.rb +0 -16
  205. data/spec/reek/smells/smell_detector_spec.rb +0 -36
  206. data/spec/reek/smells/uncommunicative_name_spec.rb +0 -146
  207. data/spec/reek/sniffer_spec.rb +0 -11
  208. data/spec/reek/stop_context_spec.rb +0 -33
  209. data/spec/reek/tree_dresser_spec.rb +0 -20
@@ -0,0 +1,8 @@
1
+ class Dirty
2
+ # This method smells of :reek:NestedIterators but ignores them
3
+ def awful(x, y, offset = 0, log = false)
4
+ puts @screen.title
5
+ @screen = widgets.map {|w| w.each {|key| key += 3}}
6
+ puts @screen.contents
7
+ end
8
+ end
@@ -1,7 +1,8 @@
1
+ # smelly class for testing purposes
1
2
  class Dirty
2
3
  def a
3
4
  puts @s.title
4
- @s.map {|x| x.each {|key| key += 3}}
5
+ @s = fred.map {|x| x.each {|key| key += 3}}
5
6
  puts @s.title
6
7
  end
7
8
  end
@@ -1,4 +1,4 @@
1
1
  ---
2
- UncommunicativeName:
2
+ UncommunicativeVariableName:
3
3
  accept:
4
4
  - md5
@@ -0,0 +1,16 @@
1
+ # :reek:Duplication: { allow_calls: [ puts ] }
2
+ # smells of :reek:NestedIterators but ignores them
3
+ class Dirty
4
+ def a
5
+ puts @s.title
6
+ @s = fred.map {|x| x.each {|key| key += 3}}
7
+ puts @s.title
8
+ end
9
+
10
+ # :reek:Duplication: { max_calls: 2 }
11
+ def b
12
+ puts @s.title
13
+ @s = fred.map {|x| x.each {|key| key += 3}}
14
+ puts @s.title
15
+ end
16
+ end
@@ -0,0 +1,7 @@
1
+ ---
2
+ IrresponsibleModule:
3
+ enabled: false
4
+ UncommunicativeVariableName:
5
+ enabled: false
6
+ UncommunicativeMethodName:
7
+ enabled: false
@@ -0,0 +1,8 @@
1
+ # smelly class for testing purposes
2
+ class Dirty
3
+ def a
4
+ puts @s.title
5
+ @s = fred.map {|x| x.each {|key| key += 3}}
6
+ puts @s.title
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ ---
2
+ Duplication:
3
+ allow_calls:
4
+ - puts\(@s.title\)
5
+ UncommunicativeVariableName:
6
+ enabled: false
7
+ UncommunicativeMethodName:
8
+ enabled: false
@@ -1,7 +1,8 @@
1
+ # smelly class for testing purposes
1
2
  class Dirty
2
3
  def a
3
4
  puts @s.title
4
- @s.map {|x| x.each {|key| key += 3}}
5
+ @s = fred.map {|x| x.each {|key| key += 3}}
5
6
  puts @s.title
6
7
  end
7
8
  end
@@ -1,3 +1,5 @@
1
1
  ---
2
- UncommunicativeName:
2
+ UncommunicativeVariableName:
3
+ enabled: false
4
+ UncommunicativeMethodName:
3
5
  enabled: false
@@ -1,3 +1,4 @@
1
+ # clean class for testing purposes
1
2
  class Clean
2
3
  def assign
3
4
  puts @sub.title
@@ -1,3 +1,4 @@
1
+ # clean class for testing purposes
1
2
  class Clean
2
3
  def assign
3
4
  puts @sub.title
@@ -1,3 +1,4 @@
1
+ # clean class for testing purposes
1
2
  class Clean
2
3
  def assign
3
4
  puts @sub.title
@@ -1,3 +1,4 @@
1
+ # smelly class for testing purposes
1
2
  class Dirty
2
3
  def a
3
4
  puts @s.title
@@ -1,3 +1,4 @@
1
+ # smelly class for testing purposes
1
2
  class Dirty
2
3
  def a
3
4
  puts @s.title
@@ -1,9 +1,10 @@
1
+ # smelly class for testing purposes
1
2
  class Dirty
2
3
  attr_reader :property
3
4
 
4
5
  def a
5
6
  puts @s.title
6
- @s.map {|x| x.each {|key| key += 3}}
7
+ @s = fred.map {|x| x.each {|key| key += 3}}
7
8
  puts @s.title
8
9
  end
9
10
  end
@@ -1,5 +1,5 @@
1
1
  ---
2
- UncommunicativeName:
2
+ UncommunicativeVariableName:
3
3
  accept:
4
4
  - x
5
5
 
@@ -1,7 +1,8 @@
1
+ # smelly class for testing purposes
1
2
  class Dirty
2
3
  def a
3
4
  puts @s.title
4
- @s.map {|x| x.each {|key| key += 3}}
5
+ @s = fred.map {|x| x.each {|key| key += 3}}
5
6
  puts @s.title
6
7
  end
7
8
  end
@@ -1,5 +1,7 @@
1
1
  ---
2
2
  Duplication:
3
3
  enabled: true
4
- UncommunicativeName:
4
+ UncommunicativeVariableName:
5
+ enabled: false
6
+ UncommunicativeMethodName:
5
7
  enabled: false
@@ -1,3 +1,4 @@
1
+ # clean class for testing purposes
1
2
  class Clean
2
3
  def assign
3
4
  puts @sub.title
@@ -1,3 +1,4 @@
1
+ # clean class for testing purposes
1
2
  class Clean
2
3
  def assign
3
4
  puts @sub.title
@@ -1,3 +1,4 @@
1
+ # clean class for testing purposes
1
2
  class Clean
2
3
  def assign
3
4
  puts @sub.title
@@ -1,7 +1,8 @@
1
+ # smelly class for testing purposes
1
2
  class Dirty
2
3
  def a
3
4
  puts @s.title
4
- @s.map {|x| x.each {|key| key += 3}}
5
+ @s = puts.map {|x| x.each {|key| key += 3}}
5
6
  puts @s.title
6
7
  end
7
8
  end
@@ -1,7 +1,8 @@
1
+ # smelly class for testing purposes
1
2
  class Dirty
2
3
  def a
3
4
  puts @s.title
4
- @s.map {|x| x.each {|key| key += 3}}
5
+ @s = p.map {|x| x.each {|key| key += 3}}
5
6
  puts @s.title
6
7
  end
7
8
  end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,3 @@
1
- $:.unshift File.dirname(__FILE__) + '/../lib'
2
1
 
3
2
  require 'rubygems'
4
3
  begin
@@ -10,6 +9,15 @@ end
10
9
 
11
10
  require 'spec/autorun'
12
11
 
13
- require 'reek/adapters/spec'
12
+ require File.join((File.dirname(File.dirname(File.expand_path(__FILE__)))), 'lib', 'reek', 'spec')
13
+ require File.join((File.dirname(File.dirname(File.expand_path(__FILE__)))), 'lib', 'reek', 'source', 'tree_dresser')
14
+
15
+ require File.join(File.dirname(File.expand_path(__FILE__)), 'matchers', 'smell_of_matcher')
14
16
 
15
17
  SAMPLES_DIR = 'spec/samples' unless Object.const_defined?('SAMPLES_DIR')
18
+
19
+ def ast(*args)
20
+ result = Reek::Source::TreeDresser.new.dress(s(*args))
21
+ result.line = 1
22
+ result
23
+ end
data/tasks/reek.rake CHANGED
@@ -1,7 +1,7 @@
1
1
  begin
2
- require 'reek/adapters/rake_task'
2
+ require 'reek/rake/task'
3
3
 
4
- Reek::RakeTask.new do |t|
4
+ Reek::Rake::Task.new do |t|
5
5
  t.fail_on_error = true
6
6
  t.verbose = false
7
7
  t.reek_opts = '--quiet'
data/tasks/test.rake CHANGED
@@ -14,6 +14,13 @@ namespace 'test' do
14
14
  t.rcov = false
15
15
  end
16
16
 
17
+ desc 'Tests various release attributes of the gem'
18
+ Spec::Rake::SpecTask.new('gem') do |t|
19
+ t.spec_files = FileList['spec/gem/**/*_spec.rb']
20
+ t.rcov = false
21
+ end
22
+
23
+ desc 'Tests code quality'
17
24
  Spec::Rake::SpecTask.new('quality') do |t|
18
25
  t.spec_files = FileList['quality/**/*_spec.rb']
19
26
  t.spec_opts = ['--color']
@@ -37,14 +44,16 @@ namespace 'test' do
37
44
  t.cucumber_opts = "features --format progress --color"
38
45
  end
39
46
 
40
- desc 'Runs all unit tests, acceptance tests and quality checks'
47
+ desc 'Runs all unit tests and acceptance tests'
41
48
  task 'all' => ['test:spec', 'test:features', 'test:multiruby']
49
+
50
+ task 'release' => ['test:gem', 'test:all']
42
51
  end
43
52
 
44
53
  task 'clobber_rcov' => 'test:clobber_rcov'
45
54
 
46
- desc 'synonym for test:spec'
55
+ desc 'Synonym for test:spec'
47
56
  task 'spec' => 'test:spec'
48
57
 
49
- desc 'synonym for test:all'
58
+ desc 'Synonym for test:all'
50
59
  task 'test' => 'test:all'
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reek
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.6
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 2
8
+ - 8
9
+ version: 1.2.8
5
10
  platform: ruby
6
11
  authors:
7
12
  - Kevin Rutherford
@@ -9,39 +14,48 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2009-11-28 00:00:00 +00:00
17
+ date: 2010-04-26 00:00:00 +01:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: ruby_parser
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ~>
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 2
29
+ - 0
23
30
  version: "2.0"
24
- version:
31
+ type: :runtime
32
+ version_requirements: *id001
25
33
  - !ruby/object:Gem::Dependency
26
34
  name: ruby2ruby
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
30
37
  requirements:
31
38
  - - ~>
32
39
  - !ruby/object:Gem::Version
40
+ segments:
41
+ - 1
42
+ - 2
33
43
  version: "1.2"
34
- version:
44
+ type: :runtime
45
+ version_requirements: *id002
35
46
  - !ruby/object:Gem::Dependency
36
47
  name: sexp_processor
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
48
+ prerelease: false
49
+ requirement: &id003 !ruby/object:Gem::Requirement
40
50
  requirements:
41
51
  - - ~>
42
52
  - !ruby/object:Gem::Version
53
+ segments:
54
+ - 3
55
+ - 0
43
56
  version: "3.0"
44
- version:
57
+ type: :runtime
58
+ version_requirements: *id003
45
59
  description: |
46
60
  Reek is a tool that examines Ruby classes, modules and methods
47
61
  and reports any code smells it finds.
@@ -55,55 +69,54 @@ extensions: []
55
69
  extra_rdoc_files:
56
70
  - History.txt
57
71
  - License.txt
58
- - README.rdoc
59
72
  files:
73
+ - .yardopts
60
74
  - History.txt
61
75
  - License.txt
62
- - README.rdoc
76
+ - README.md
63
77
  - Rakefile
64
78
  - bin/reek
65
79
  - config/defaults.reek
80
+ - features/api.feature
66
81
  - features/masking_smells.feature
67
82
  - features/options.feature
68
- - features/profile.feature
69
83
  - features/rake_task.feature
70
84
  - features/reports.feature
71
85
  - features/samples.feature
72
86
  - features/stdin.feature
73
87
  - features/step_definitions/reek_steps.rb
74
88
  - features/support/env.rb
89
+ - features/yaml.feature
75
90
  - lib/reek.rb
76
- - lib/reek/adapters/application.rb
77
- - lib/reek/adapters/command_line.rb
78
- - lib/reek/adapters/config_file.rb
79
- - lib/reek/adapters/core_extras.rb
80
- - lib/reek/adapters/rake_task.rb
81
- - lib/reek/adapters/report.rb
82
- - lib/reek/adapters/source.rb
83
- - lib/reek/adapters/spec.rb
84
- - lib/reek/block_context.rb
85
- - lib/reek/class_context.rb
86
- - lib/reek/code_context.rb
87
- - lib/reek/code_parser.rb
88
- - lib/reek/configuration.rb
89
- - lib/reek/detector_stack.rb
90
- - lib/reek/help_command.rb
91
- - lib/reek/if_context.rb
92
- - lib/reek/masking_collection.rb
93
- - lib/reek/method_context.rb
94
- - lib/reek/module_context.rb
95
- - lib/reek/name.rb
96
- - lib/reek/object_refs.rb
97
- - lib/reek/reek_command.rb
98
- - lib/reek/sexp_formatter.rb
99
- - lib/reek/singleton_method_context.rb
91
+ - lib/reek/cli/application.rb
92
+ - lib/reek/cli/command_line.rb
93
+ - lib/reek/cli/help_command.rb
94
+ - lib/reek/cli/reek_command.rb
95
+ - lib/reek/cli/report.rb
96
+ - lib/reek/cli/version_command.rb
97
+ - lib/reek/cli/yaml_command.rb
98
+ - lib/reek/core/code_context.rb
99
+ - lib/reek/core/code_parser.rb
100
+ - lib/reek/core/method_context.rb
101
+ - lib/reek/core/module_context.rb
102
+ - lib/reek/core/object_refs.rb
103
+ - lib/reek/core/singleton_method_context.rb
104
+ - lib/reek/core/smell_configuration.rb
105
+ - lib/reek/core/sniffer.rb
106
+ - lib/reek/core/stop_context.rb
107
+ - lib/reek/core/warning_collector.rb
108
+ - lib/reek/examiner.rb
109
+ - lib/reek/rake/task.rb
100
110
  - lib/reek/smell_warning.rb
111
+ - lib/reek/smells.rb
101
112
  - lib/reek/smells/attribute.rb
113
+ - lib/reek/smells/boolean_parameter.rb
102
114
  - lib/reek/smells/class_variable.rb
103
115
  - lib/reek/smells/control_couple.rb
104
116
  - lib/reek/smells/data_clump.rb
105
117
  - lib/reek/smells/duplication.rb
106
118
  - lib/reek/smells/feature_envy.rb
119
+ - lib/reek/smells/irresponsible_module.rb
107
120
  - lib/reek/smells/large_class.rb
108
121
  - lib/reek/smells/long_method.rb
109
122
  - lib/reek/smells/long_parameter_list.rb
@@ -111,55 +124,73 @@ files:
111
124
  - lib/reek/smells/nested_iterators.rb
112
125
  - lib/reek/smells/simulated_polymorphism.rb
113
126
  - lib/reek/smells/smell_detector.rb
114
- - lib/reek/smells/uncommunicative_name.rb
127
+ - lib/reek/smells/uncommunicative_method_name.rb
128
+ - lib/reek/smells/uncommunicative_module_name.rb
129
+ - lib/reek/smells/uncommunicative_parameter_name.rb
130
+ - lib/reek/smells/uncommunicative_variable_name.rb
115
131
  - lib/reek/smells/utility_function.rb
116
- - lib/reek/sniffer.rb
117
- - lib/reek/stop_context.rb
118
- - lib/reek/tree_dresser.rb
119
- - lib/reek/version_command.rb
120
- - lib/reek/yield_call_context.rb
132
+ - lib/reek/source.rb
133
+ - lib/reek/source/code_comment.rb
134
+ - lib/reek/source/config_file.rb
135
+ - lib/reek/source/core_extras.rb
136
+ - lib/reek/source/reference_collector.rb
137
+ - lib/reek/source/sexp_formatter.rb
138
+ - lib/reek/source/source_code.rb
139
+ - lib/reek/source/source_file.rb
140
+ - lib/reek/source/source_locator.rb
141
+ - lib/reek/source/tree_dresser.rb
142
+ - lib/reek/spec.rb
143
+ - lib/reek/spec/should_reek.rb
144
+ - lib/reek/spec/should_reek_of.rb
145
+ - lib/reek/spec/should_reek_only_of.rb
121
146
  - reek.gemspec
122
- - spec/reek/adapters/report_spec.rb
123
- - spec/reek/adapters/should_reek_of_spec.rb
124
- - spec/reek/adapters/should_reek_only_of_spec.rb
125
- - spec/reek/adapters/should_reek_spec.rb
126
- - spec/reek/adapters/source_spec.rb
127
- - spec/reek/block_context_spec.rb
128
- - spec/reek/class_context_spec.rb
129
- - spec/reek/code_context_spec.rb
130
- - spec/reek/code_parser_spec.rb
131
- - spec/reek/config_spec.rb
132
- - spec/reek/configuration_spec.rb
133
- - spec/reek/help_command_spec.rb
134
- - spec/reek/if_context_spec.rb
135
- - spec/reek/masking_collection_spec.rb
136
- - spec/reek/method_context_spec.rb
137
- - spec/reek/module_context_spec.rb
138
- - spec/reek/name_spec.rb
139
- - spec/reek/object_refs_spec.rb
140
- - spec/reek/object_source_spec.rb
141
- - spec/reek/reek_command_spec.rb
142
- - spec/reek/singleton_method_context_spec.rb
147
+ - spec/matchers/smell_of_matcher.rb
148
+ - spec/reek/cli/help_command_spec.rb
149
+ - spec/reek/cli/reek_command_spec.rb
150
+ - spec/reek/cli/report_spec.rb
151
+ - spec/reek/cli/version_command_spec.rb
152
+ - spec/reek/cli/yaml_command_spec.rb
153
+ - spec/reek/core/code_context_spec.rb
154
+ - spec/reek/core/code_parser_spec.rb
155
+ - spec/reek/core/config_spec.rb
156
+ - spec/reek/core/method_context_spec.rb
157
+ - spec/reek/core/module_context_spec.rb
158
+ - spec/reek/core/object_refs_spec.rb
159
+ - spec/reek/core/singleton_method_context_spec.rb
160
+ - spec/reek/core/smell_configuration_spec.rb
161
+ - spec/reek/core/stop_context_spec.rb
162
+ - spec/reek/core/warning_collector_spec.rb
163
+ - spec/reek/examiner_spec.rb
143
164
  - spec/reek/smell_warning_spec.rb
144
165
  - spec/reek/smells/attribute_spec.rb
145
166
  - spec/reek/smells/behaves_like_variable_detector.rb
167
+ - spec/reek/smells/boolean_parameter_spec.rb
146
168
  - spec/reek/smells/class_variable_spec.rb
147
169
  - spec/reek/smells/control_couple_spec.rb
148
170
  - spec/reek/smells/data_clump_spec.rb
149
171
  - spec/reek/smells/duplication_spec.rb
150
172
  - spec/reek/smells/feature_envy_spec.rb
173
+ - spec/reek/smells/irresponsible_module_spec.rb
151
174
  - spec/reek/smells/large_class_spec.rb
152
175
  - spec/reek/smells/long_method_spec.rb
153
176
  - spec/reek/smells/long_parameter_list_spec.rb
177
+ - spec/reek/smells/long_yield_list_spec.rb
154
178
  - spec/reek/smells/nested_iterators_spec.rb
155
179
  - spec/reek/smells/simulated_polymorphism_spec.rb
156
- - spec/reek/smells/smell_detector_spec.rb
157
- - spec/reek/smells/uncommunicative_name_spec.rb
180
+ - spec/reek/smells/smell_detector_shared.rb
181
+ - spec/reek/smells/uncommunicative_method_name_spec.rb
182
+ - spec/reek/smells/uncommunicative_module_name_spec.rb
183
+ - spec/reek/smells/uncommunicative_parameter_name_spec.rb
184
+ - spec/reek/smells/uncommunicative_variable_name_spec.rb
158
185
  - spec/reek/smells/utility_function_spec.rb
159
- - spec/reek/sniffer_spec.rb
160
- - spec/reek/stop_context_spec.rb
161
- - spec/reek/tree_dresser_spec.rb
162
- - spec/reek/version_command_spec.rb
186
+ - spec/reek/source/code_comment_spec.rb
187
+ - spec/reek/source/object_source_spec.rb
188
+ - spec/reek/source/reference_collector_spec.rb
189
+ - spec/reek/source/source_code_spec.rb
190
+ - spec/reek/source/tree_dresser_spec.rb
191
+ - spec/reek/spec/should_reek_of_spec.rb
192
+ - spec/reek/spec/should_reek_only_of_spec.rb
193
+ - spec/reek/spec/should_reek_spec.rb
163
194
  - spec/samples/all_but_one_masked/clean_one.rb
164
195
  - spec/samples/all_but_one_masked/dirty.rb
165
196
  - spec/samples/all_but_one_masked/masked.reek
@@ -169,12 +200,19 @@ files:
169
200
  - spec/samples/clean_due_to_masking/dirty_one.rb
170
201
  - spec/samples/clean_due_to_masking/dirty_two.rb
171
202
  - spec/samples/clean_due_to_masking/masked.reek
203
+ - spec/samples/config/allow_duplication.reek
204
+ - spec/samples/config/deeper_nested_iterators.reek
172
205
  - spec/samples/corrupt_config_file/corrupt.reek
173
206
  - spec/samples/corrupt_config_file/dirty.rb
207
+ - spec/samples/demo/demo.rb
174
208
  - spec/samples/empty_config_file/dirty.rb
175
209
  - spec/samples/empty_config_file/empty.reek
176
210
  - spec/samples/exceptions.reek
211
+ - spec/samples/inline_config/dirty.rb
212
+ - spec/samples/inline_config/masked.reek
177
213
  - spec/samples/inline.rb
214
+ - spec/samples/mask_some/dirty.rb
215
+ - spec/samples/mask_some/some.reek
178
216
  - spec/samples/masked/dirty.rb
179
217
  - spec/samples/masked/masked.reek
180
218
  - spec/samples/mixed_results/clean_one.rb
@@ -204,29 +242,33 @@ licenses: []
204
242
 
205
243
  post_install_message: |
206
244
 
207
- For more information on reek, see http://wiki.github.com/kevinrutherford/reek
245
+ Thank you for downloading Reek. For info:
246
+ - see the reek wiki http://wiki.github.com/kevinrutherford/reek
247
+ - follow @rubyreek on twitter
208
248
 
209
249
  rdoc_options:
210
250
  - --main
211
- - README.rdoc
251
+ - README.md
212
252
  require_paths:
213
253
  - lib
214
254
  required_ruby_version: !ruby/object:Gem::Requirement
215
255
  requirements:
216
256
  - - ">="
217
257
  - !ruby/object:Gem::Version
258
+ segments:
259
+ - 0
218
260
  version: "0"
219
- version:
220
261
  required_rubygems_version: !ruby/object:Gem::Requirement
221
262
  requirements:
222
263
  - - ">="
223
264
  - !ruby/object:Gem::Version
265
+ segments:
266
+ - 0
224
267
  version: "0"
225
- version:
226
268
  requirements: []
227
269
 
228
270
  rubyforge_project: reek
229
- rubygems_version: 1.3.5
271
+ rubygems_version: 1.3.6
230
272
  signing_key:
231
273
  specification_version: 3
232
274
  summary: Code smell detector for Ruby