reek 6.0.3 → 6.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (217) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -1
  3. data/CONTRIBUTING.md +3 -0
  4. data/Dockerfile +1 -1
  5. data/Gemfile +6 -6
  6. data/lib/reek/ast/ast_node_class_map.rb +1 -1
  7. data/lib/reek/report/code_climate/code_climate_formatter.rb +1 -3
  8. data/lib/reek/smell_detectors/base_detector.rb +1 -1
  9. data/lib/reek/smell_warning.rb +1 -1
  10. data/lib/reek/source/source_locator.rb +1 -3
  11. data/lib/reek/version.rb +1 -1
  12. data/reek.gemspec +4 -1
  13. metadata +3 -208
  14. data/docs/API.md +0 -174
  15. data/docs/Attribute.md +0 -39
  16. data/docs/Basic-Smell-Options.md +0 -85
  17. data/docs/Boolean-Parameter.md +0 -54
  18. data/docs/Class-Variable.md +0 -40
  19. data/docs/Code-Smells.md +0 -39
  20. data/docs/Command-Line-Options.md +0 -119
  21. data/docs/Control-Couple.md +0 -26
  22. data/docs/Control-Parameter.md +0 -32
  23. data/docs/Data-Clump.md +0 -46
  24. data/docs/Duplicate-Method-Call.md +0 -264
  25. data/docs/Feature-Envy.md +0 -93
  26. data/docs/How-To-Write-New-Detectors.md +0 -132
  27. data/docs/How-reek-works-internally.md +0 -114
  28. data/docs/Instance-Variable-Assumption.md +0 -163
  29. data/docs/Irresponsible-Module.md +0 -47
  30. data/docs/Large-Class.md +0 -16
  31. data/docs/Long-Parameter-List.md +0 -39
  32. data/docs/Long-Yield-List.md +0 -37
  33. data/docs/Manual-Dispatch.md +0 -30
  34. data/docs/Missing-Safe-Method.md +0 -92
  35. data/docs/Module-Initialize.md +0 -62
  36. data/docs/Nested-Iterators.md +0 -59
  37. data/docs/Nil-Check.md +0 -47
  38. data/docs/RSpec-matchers.md +0 -129
  39. data/docs/Rake-Task.md +0 -66
  40. data/docs/Reek-4-to-Reek-5-migration.md +0 -188
  41. data/docs/Reek-Driven-Development.md +0 -46
  42. data/docs/Repeated-Conditional.md +0 -47
  43. data/docs/Simulated-Polymorphism.md +0 -16
  44. data/docs/Smell-Suppression.md +0 -96
  45. data/docs/Style-Guide.md +0 -19
  46. data/docs/Subclassed-From-Core-Class.md +0 -79
  47. data/docs/Too-Many-Constants.md +0 -37
  48. data/docs/Too-Many-Instance-Variables.md +0 -43
  49. data/docs/Too-Many-Methods.md +0 -56
  50. data/docs/Too-Many-Statements.md +0 -54
  51. data/docs/Uncommunicative-Method-Name.md +0 -94
  52. data/docs/Uncommunicative-Module-Name.md +0 -92
  53. data/docs/Uncommunicative-Name.md +0 -18
  54. data/docs/Uncommunicative-Parameter-Name.md +0 -90
  55. data/docs/Uncommunicative-Variable-Name.md +0 -96
  56. data/docs/Unused-Parameters.md +0 -28
  57. data/docs/Unused-Private-Method.md +0 -101
  58. data/docs/Utility-Function.md +0 -56
  59. data/docs/Versioning-Policy.md +0 -7
  60. data/docs/YAML-Reports.md +0 -93
  61. data/docs/defaults.reek.yml +0 -129
  62. data/docs/templates/default/docstring/html/public_api_marker.erb +0 -3
  63. data/docs/templates/default/docstring/setup.rb +0 -35
  64. data/docs/templates/default/fulldoc/html/css/common.css +0 -1
  65. data/docs/yard_plugin.rb +0 -17
  66. data/features/command_line_interface/basic_usage.feature +0 -15
  67. data/features/command_line_interface/options.feature +0 -123
  68. data/features/command_line_interface/show_progress.feature +0 -33
  69. data/features/command_line_interface/smell_selection.feature +0 -15
  70. data/features/command_line_interface/smells_count.feature +0 -38
  71. data/features/command_line_interface/stdin.feature +0 -65
  72. data/features/configuration_files/accept_setting.feature +0 -87
  73. data/features/configuration_files/directory_specific_directives.feature +0 -274
  74. data/features/configuration_files/exclude_directives.feature +0 -35
  75. data/features/configuration_files/exclude_paths_directives.feature +0 -42
  76. data/features/configuration_files/masking_smells.feature +0 -94
  77. data/features/configuration_files/mix_accept_reject_setting.feature +0 -84
  78. data/features/configuration_files/reject_setting.feature +0 -89
  79. data/features/configuration_files/schema_validation.feature +0 -59
  80. data/features/configuration_files/show_configuration_file.feature +0 -44
  81. data/features/configuration_files/unused_private_method.feature +0 -68
  82. data/features/configuration_loading.feature +0 -91
  83. data/features/configuration_via_source_comments/erroneous_source_comments.feature +0 -68
  84. data/features/configuration_via_source_comments/well_formed_source_comments.feature +0 -116
  85. data/features/locales.feature +0 -32
  86. data/features/programmatic_access.feature +0 -41
  87. data/features/rake_task/rake_task.feature +0 -138
  88. data/features/reports/codeclimate.feature +0 -59
  89. data/features/reports/json.feature +0 -59
  90. data/features/reports/reports.feature +0 -219
  91. data/features/reports/yaml.feature +0 -52
  92. data/features/rspec_matcher.feature +0 -41
  93. data/features/samples.feature +0 -305
  94. data/features/step_definitions/.rubocop.yml +0 -5
  95. data/features/step_definitions/reek_steps.rb +0 -102
  96. data/features/step_definitions/sample_file_steps.rb +0 -63
  97. data/features/support/env.rb +0 -33
  98. data/features/todo_list.feature +0 -108
  99. data/samples/checkstyle.xml +0 -7
  100. data/samples/clean_source/clean.rb +0 -6
  101. data/samples/configuration/accepts_rejects_and_excludes_for_detectors.reek.yml +0 -29
  102. data/samples/configuration/accepts_rejects_and_excludes_for_directory_directives.reek.yml +0 -30
  103. data/samples/configuration/corrupt.reek +0 -1
  104. data/samples/configuration/empty.reek +0 -0
  105. data/samples/configuration/full_configuration.reek +0 -13
  106. data/samples/configuration/full_mask.reek +0 -6
  107. data/samples/configuration/home/home.reek.yml +0 -4
  108. data/samples/configuration/partial_mask.reek +0 -4
  109. data/samples/configuration/regular_configuration/.reek.yml +0 -4
  110. data/samples/configuration/regular_configuration/empty_sub_directory/.gitignore +0 -0
  111. data/samples/configuration/with_excluded_paths.reek +0 -5
  112. data/samples/no_config_file/.keep +0 -0
  113. data/samples/paths.rb +0 -5
  114. data/samples/smelly_source/inline.rb +0 -704
  115. data/samples/smelly_source/optparse.rb +0 -1788
  116. data/samples/smelly_source/redcloth.rb +0 -1130
  117. data/samples/smelly_source/ruby.rb +0 -368
  118. data/samples/smelly_source/smelly.rb +0 -7
  119. data/samples/source_with_exclude_paths/ignore_me/uncommunicative_method_name.rb +0 -5
  120. data/samples/source_with_exclude_paths/nested/ignore_me_as_well/irresponsible_module.rb +0 -2
  121. data/samples/source_with_exclude_paths/nested/uncommunicative_parameter_name.rb +0 -6
  122. data/samples/source_with_exclude_paths/nested/uncommunicative_variable_name.rb +0 -6
  123. data/samples/source_with_hidden_directories/.hidden/hidden.rb +0 -1
  124. data/samples/source_with_hidden_directories/not_hidden.rb +0 -1
  125. data/samples/source_with_non_ruby_files/gibberish +0 -1
  126. data/samples/source_with_non_ruby_files/python_source.py +0 -1
  127. data/samples/source_with_non_ruby_files/ruby.rb +0 -6
  128. data/spec/performance/reek/smell_detectors/runtime_speed_spec.rb +0 -15
  129. data/spec/quality/documentation_spec.rb +0 -41
  130. data/spec/quality/reek_source_spec.rb +0 -11
  131. data/spec/reek/ast/node_spec.rb +0 -211
  132. data/spec/reek/ast/object_refs_spec.rb +0 -83
  133. data/spec/reek/ast/reference_collector_spec.rb +0 -47
  134. data/spec/reek/ast/sexp_extensions_spec.rb +0 -498
  135. data/spec/reek/cli/application_spec.rb +0 -168
  136. data/spec/reek/cli/command/report_command_spec.rb +0 -44
  137. data/spec/reek/cli/command/todo_list_command_spec.rb +0 -86
  138. data/spec/reek/cli/options_spec.rb +0 -51
  139. data/spec/reek/cli/silencer_spec.rb +0 -28
  140. data/spec/reek/code_comment_spec.rb +0 -184
  141. data/spec/reek/configuration/app_configuration_spec.rb +0 -195
  142. data/spec/reek/configuration/configuration_file_finder_spec.rb +0 -230
  143. data/spec/reek/configuration/default_directive_spec.rb +0 -13
  144. data/spec/reek/configuration/directory_directives_spec.rb +0 -122
  145. data/spec/reek/configuration/excluded_paths_spec.rb +0 -25
  146. data/spec/reek/configuration/rake_task_converter_spec.rb +0 -33
  147. data/spec/reek/configuration/schema_validator_spec.rb +0 -165
  148. data/spec/reek/context/code_context_spec.rb +0 -192
  149. data/spec/reek/context/ghost_context_spec.rb +0 -60
  150. data/spec/reek/context/method_context_spec.rb +0 -72
  151. data/spec/reek/context/module_context_spec.rb +0 -55
  152. data/spec/reek/context/root_context_spec.rb +0 -12
  153. data/spec/reek/context/statement_counter_spec.rb +0 -24
  154. data/spec/reek/context_builder_spec.rb +0 -457
  155. data/spec/reek/detector_repository_spec.rb +0 -22
  156. data/spec/reek/documentation_link_spec.rb +0 -20
  157. data/spec/reek/errors/base_error_spec.rb +0 -13
  158. data/spec/reek/examiner_spec.rb +0 -309
  159. data/spec/reek/logging_error_handler_spec.rb +0 -24
  160. data/spec/reek/rake/task_spec.rb +0 -56
  161. data/spec/reek/report/code_climate/code_climate_configuration_spec.rb +0 -22
  162. data/spec/reek/report/code_climate/code_climate_fingerprint_spec.rb +0 -126
  163. data/spec/reek/report/code_climate/code_climate_formatter_spec.rb +0 -51
  164. data/spec/reek/report/code_climate/code_climate_report_spec.rb +0 -56
  165. data/spec/reek/report/html_report_spec.rb +0 -19
  166. data/spec/reek/report/json_report_spec.rb +0 -58
  167. data/spec/reek/report/location_formatter_spec.rb +0 -32
  168. data/spec/reek/report/progress_formatter_spec.rb +0 -68
  169. data/spec/reek/report/text_report_spec.rb +0 -89
  170. data/spec/reek/report/xml_report_spec.rb +0 -24
  171. data/spec/reek/report/yaml_report_spec.rb +0 -55
  172. data/spec/reek/report_spec.rb +0 -28
  173. data/spec/reek/smell_configuration_spec.rb +0 -56
  174. data/spec/reek/smell_detectors/attribute_spec.rb +0 -197
  175. data/spec/reek/smell_detectors/base_detector_spec.rb +0 -50
  176. data/spec/reek/smell_detectors/boolean_parameter_spec.rb +0 -93
  177. data/spec/reek/smell_detectors/class_variable_spec.rb +0 -106
  178. data/spec/reek/smell_detectors/control_parameter_spec.rb +0 -300
  179. data/spec/reek/smell_detectors/data_clump_spec.rb +0 -134
  180. data/spec/reek/smell_detectors/duplicate_method_call_spec.rb +0 -211
  181. data/spec/reek/smell_detectors/feature_envy_spec.rb +0 -295
  182. data/spec/reek/smell_detectors/instance_variable_assumption_spec.rb +0 -96
  183. data/spec/reek/smell_detectors/irresponsible_module_spec.rb +0 -226
  184. data/spec/reek/smell_detectors/long_parameter_list_spec.rb +0 -61
  185. data/spec/reek/smell_detectors/long_yield_list_spec.rb +0 -49
  186. data/spec/reek/smell_detectors/manual_dispatch_spec.rb +0 -75
  187. data/spec/reek/smell_detectors/missing_safe_method_spec.rb +0 -68
  188. data/spec/reek/smell_detectors/module_initialize_spec.rb +0 -77
  189. data/spec/reek/smell_detectors/nested_iterators_spec.rb +0 -333
  190. data/spec/reek/smell_detectors/nil_check_spec.rb +0 -100
  191. data/spec/reek/smell_detectors/repeated_conditional_spec.rb +0 -100
  192. data/spec/reek/smell_detectors/subclassed_from_core_class_spec.rb +0 -77
  193. data/spec/reek/smell_detectors/too_many_constants_spec.rb +0 -144
  194. data/spec/reek/smell_detectors/too_many_instance_variables_spec.rb +0 -132
  195. data/spec/reek/smell_detectors/too_many_methods_spec.rb +0 -54
  196. data/spec/reek/smell_detectors/too_many_statements_spec.rb +0 -90
  197. data/spec/reek/smell_detectors/uncommunicative_method_name_spec.rb +0 -78
  198. data/spec/reek/smell_detectors/uncommunicative_module_name_spec.rb +0 -78
  199. data/spec/reek/smell_detectors/uncommunicative_parameter_name_spec.rb +0 -147
  200. data/spec/reek/smell_detectors/uncommunicative_variable_name_spec.rb +0 -201
  201. data/spec/reek/smell_detectors/unused_parameters_spec.rb +0 -114
  202. data/spec/reek/smell_detectors/unused_private_method_spec.rb +0 -205
  203. data/spec/reek/smell_detectors/utility_function_spec.rb +0 -309
  204. data/spec/reek/smell_warning_spec.rb +0 -137
  205. data/spec/reek/source/source_code_spec.rb +0 -79
  206. data/spec/reek/source/source_locator_spec.rb +0 -166
  207. data/spec/reek/spec/should_reek_of_spec.rb +0 -153
  208. data/spec/reek/spec/should_reek_only_of_spec.rb +0 -91
  209. data/spec/reek/spec/should_reek_spec.rb +0 -52
  210. data/spec/reek/spec/smell_matcher_spec.rb +0 -87
  211. data/spec/reek/tree_dresser_spec.rb +0 -46
  212. data/spec/spec_helper.rb +0 -110
  213. data/tasks/configuration.rake +0 -18
  214. data/tasks/console.rake +0 -5
  215. data/tasks/reek.rake +0 -6
  216. data/tasks/rubocop.rake +0 -11
  217. data/tasks/test.rake +0 -32
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 967e95555fe823e1924a78ff2a8c94c40bdb4d16d031bacd51b885d1475bce30
4
- data.tar.gz: c9760389b64b3bb9f96f1896192a540a4de8b7f395808299b9a67e47238e8c42
3
+ metadata.gz: 2d0bbc58b8f9e593e64fd19b18b70cb63f776cbb69dba486b94ff7c53d449683
4
+ data.tar.gz: d7773c82aebfc8cf43cad4d6158fb977e3a84d1a02d87356b86f0b7abb017b8b
5
5
  SHA512:
6
- metadata.gz: ea4c588166903c10bed44c2a459e43e4db479943f8f489ca1eaefbb6db375605e06ff678f5411def292e19ef8c2754245bca78eb24373532474091b0ab8eadbe
7
- data.tar.gz: 9e0804841d54d4278149422d66c7e379597e3f99275ba8b9ab4aef6e7041bde6c928db5f3c62a3b5c3d1d6fc4da0216ba5d13aa5562f9e0b565ec31bb115d0fe
6
+ metadata.gz: 36f145207e147be9793009f9db478086267298aff71b3ef35235c80235c3f2d1d9d66737bfb6b2f91b254cb20319ddec63c19012744f654ebe3f492a4c728019
7
+ data.tar.gz: 00a48adb00260ae7b48e8616b96c2ec1f08e20fe34594922213aa668cc3eabce37a0814eb53a5abb41546e6877c1baa1d1245b695306d8dbd81851ddb4655761
data/CHANGELOG.md CHANGED
@@ -1,11 +1,16 @@
1
1
  # Change log
2
2
 
3
+ ## 6.0.4 (2021-04-27)
4
+
5
+ * (Nicolas Ferrari) Add build-base to Dockerfile
6
+ * (Masataka Pocke Kuwabara and Daniel Santos Dantas) Reduce gem package size
7
+
3
8
  ## 6.0.3 (2021-01-11)
4
9
 
5
10
  * (mvz) Require parser 3.0
6
11
  * (mvz) In a refinement, assign smells to the refined module or class
7
12
 
8
- ## 6.0.3 (2020-10-17)
13
+ ## 6.0.2 (2020-10-17)
9
14
 
10
15
  * (mvz) Loosen dependency on psych. This should resolve installation problems on
11
16
  mingw32
data/CONTRIBUTING.md CHANGED
@@ -27,6 +27,9 @@ version, Ruby platform (MRI, JRuby, etc.), operating system.
27
27
  Try to provide a minimal example that reproduces the issue.
28
28
  Extra kudos if you can write it as a failing test. :)
29
29
 
30
+ Make sure any code examples and output are properly formatted
31
+ using [code blocks](https://github.github.com/gfm/#fenced-code-blocks).
32
+
30
33
  ## Contributing features, bugfixes, documentation
31
34
 
32
35
  ### Getting started
data/Dockerfile CHANGED
@@ -11,7 +11,7 @@ ENV code_dir /code
11
11
  ENV app_dir /usr/src/app
12
12
  ENV user app
13
13
 
14
- RUN apk --update add git
14
+ RUN apk --update add git build-base
15
15
  ADD . ${app_dir}
16
16
 
17
17
  RUN adduser -u 9000 -D ${user}
data/Gemfile CHANGED
@@ -7,16 +7,16 @@ ruby RUBY_VERSION
7
7
  group :development do
8
8
  gem 'aruba', '~> 1.0'
9
9
  gem 'codeclimate-engine-rb', '~> 0.4.0'
10
- gem 'cucumber', ['>= 4.0', '< 6.0']
10
+ gem 'cucumber', ['>= 4.0', '< 7.0']
11
11
  gem 'kramdown', '~> 2.1'
12
12
  gem 'kramdown-parser-gfm', '~> 1.0'
13
13
  gem 'rake', '~> 13.0'
14
14
  gem 'rspec', '~> 3.0'
15
15
  gem 'rspec-benchmark', '~> 0.6.0'
16
- gem 'rubocop', '~> 1.7.0'
17
- gem 'rubocop-performance', '~> 1.9.1'
18
- gem 'rubocop-rspec', '~> 2.1.0'
19
- gem 'simplecov', ['>= 0.18.0', '< 0.21.0']
16
+ gem 'rubocop', '~> 1.12.0'
17
+ gem 'rubocop-performance', '~> 1.10.1'
18
+ gem 'rubocop-rspec', '~> 2.2.0'
19
+ gem 'simplecov', ['>= 0.18.0', '< 0.22.0']
20
20
  gem 'yard', '~> 0.9.5'
21
21
 
22
22
  platforms :mri do
@@ -25,5 +25,5 @@ group :development do
25
25
  end
26
26
 
27
27
  group :debugging do
28
- gem 'pry', '~> 0.13.0'
28
+ gem 'pry', '~> 0.14.0'
29
29
  end
@@ -30,7 +30,7 @@ module Reek
30
30
  SexpExtensions.const_get(const)
31
31
  ]
32
32
  end
33
- Hash[assoc]
33
+ assoc.to_h
34
34
  end
35
35
  end
36
36
 
@@ -57,9 +57,7 @@ module Reek
57
57
  end
58
58
 
59
59
  def configuration
60
- @configuration ||= begin
61
- CodeClimateConfiguration.load
62
- end
60
+ @configuration ||= CodeClimateConfiguration.load
63
61
  end
64
62
  end
65
63
  end
@@ -90,7 +90,7 @@ module Reek
90
90
 
91
91
  class << self
92
92
  def smell_type
93
- @smell_type ||= name.split(/::/).last
93
+ @smell_type ||= name.split('::').last
94
94
  end
95
95
 
96
96
  def contexts
@@ -59,7 +59,7 @@ module Reek
59
59
 
60
60
  # @public
61
61
  def to_hash
62
- stringified_params = Hash[parameters.map { |key, val| [key.to_s, val] }]
62
+ stringified_params = parameters.map { |key, val| [key.to_s, val] }.to_h
63
63
  base_hash.merge(stringified_params)
64
64
  end
65
65
 
@@ -62,10 +62,8 @@ module Reek
62
62
 
63
63
  false
64
64
  end
65
- elsif path_excluded?(path)
66
- true
67
65
  else
68
- false
66
+ path_excluded?(path)
69
67
  end
70
68
  end
71
69
 
data/lib/reek/version.rb CHANGED
@@ -8,6 +8,6 @@ module Reek
8
8
  # @public
9
9
  module Version
10
10
  # @public
11
- STRING = '6.0.3'
11
+ STRING = '6.0.4'
12
12
  end
13
13
  end
data/reek.gemspec CHANGED
@@ -12,7 +12,10 @@ Gem::Specification.new do |s|
12
12
  s.license = 'MIT'
13
13
  s.email = ['timo.roessner@googlemail.com']
14
14
  s.extra_rdoc_files = ['CHANGELOG.md', 'License.txt']
15
- s.files = `git ls-files -z`.split("\0")
15
+ s.files = Dir.chdir(File.expand_path(__dir__)) do
16
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|samples|docs|tasks)/}) }
17
+ end
18
+
16
19
  s.executables = s.files.grep(%r{^bin/}).map { |path| File.basename(path) }
17
20
  s.homepage = 'https://github.com/troessner/reek'
18
21
  s.rdoc_options = %w(--main README.md -x assets/|bin/|config/|features/|spec/|tasks/)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reek
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.3
4
+ version: 6.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Rutherford
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2021-01-11 00:00:00.000000000 Z
14
+ date: 2021-04-27 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: kwalify
@@ -105,92 +105,7 @@ files:
105
105
  - Rakefile
106
106
  - bin/code_climate_reek
107
107
  - bin/reek
108
- - docs/API.md
109
- - docs/Attribute.md
110
- - docs/Basic-Smell-Options.md
111
- - docs/Boolean-Parameter.md
112
- - docs/Class-Variable.md
113
- - docs/Code-Smells.md
114
- - docs/Command-Line-Options.md
115
- - docs/Control-Couple.md
116
- - docs/Control-Parameter.md
117
- - docs/Data-Clump.md
118
- - docs/Duplicate-Method-Call.md
119
- - docs/Feature-Envy.md
120
- - docs/How-To-Write-New-Detectors.md
121
- - docs/How-reek-works-internally.md
122
- - docs/Instance-Variable-Assumption.md
123
- - docs/Irresponsible-Module.md
124
- - docs/Large-Class.md
125
- - docs/Long-Parameter-List.md
126
- - docs/Long-Yield-List.md
127
- - docs/Manual-Dispatch.md
128
- - docs/Missing-Safe-Method.md
129
- - docs/Module-Initialize.md
130
- - docs/Nested-Iterators.md
131
- - docs/Nil-Check.md
132
- - docs/RSpec-matchers.md
133
- - docs/Rake-Task.md
134
- - docs/Reek-4-to-Reek-5-migration.md
135
- - docs/Reek-Driven-Development.md
136
- - docs/Repeated-Conditional.md
137
- - docs/Simulated-Polymorphism.md
138
- - docs/Smell-Suppression.md
139
- - docs/Style-Guide.md
140
- - docs/Subclassed-From-Core-Class.md
141
- - docs/Too-Many-Constants.md
142
- - docs/Too-Many-Instance-Variables.md
143
- - docs/Too-Many-Methods.md
144
- - docs/Too-Many-Statements.md
145
- - docs/Uncommunicative-Method-Name.md
146
- - docs/Uncommunicative-Module-Name.md
147
- - docs/Uncommunicative-Name.md
148
- - docs/Uncommunicative-Parameter-Name.md
149
- - docs/Uncommunicative-Variable-Name.md
150
- - docs/Unused-Parameters.md
151
- - docs/Unused-Private-Method.md
152
- - docs/Utility-Function.md
153
- - docs/Versioning-Policy.md
154
- - docs/YAML-Reports.md
155
- - docs/defaults.reek.yml
156
- - docs/templates/default/docstring/html/public_api_marker.erb
157
- - docs/templates/default/docstring/setup.rb
158
- - docs/templates/default/fulldoc/html/css/common.css
159
- - docs/yard_plugin.rb
160
108
  - engine.json
161
- - features/command_line_interface/basic_usage.feature
162
- - features/command_line_interface/options.feature
163
- - features/command_line_interface/show_progress.feature
164
- - features/command_line_interface/smell_selection.feature
165
- - features/command_line_interface/smells_count.feature
166
- - features/command_line_interface/stdin.feature
167
- - features/configuration_files/accept_setting.feature
168
- - features/configuration_files/directory_specific_directives.feature
169
- - features/configuration_files/exclude_directives.feature
170
- - features/configuration_files/exclude_paths_directives.feature
171
- - features/configuration_files/masking_smells.feature
172
- - features/configuration_files/mix_accept_reject_setting.feature
173
- - features/configuration_files/reject_setting.feature
174
- - features/configuration_files/schema_validation.feature
175
- - features/configuration_files/show_configuration_file.feature
176
- - features/configuration_files/unused_private_method.feature
177
- - features/configuration_loading.feature
178
- - features/configuration_via_source_comments/erroneous_source_comments.feature
179
- - features/configuration_via_source_comments/well_formed_source_comments.feature
180
- - features/locales.feature
181
- - features/programmatic_access.feature
182
- - features/rake_task/rake_task.feature
183
- - features/reports/codeclimate.feature
184
- - features/reports/json.feature
185
- - features/reports/reports.feature
186
- - features/reports/yaml.feature
187
- - features/rspec_matcher.feature
188
- - features/samples.feature
189
- - features/step_definitions/.rubocop.yml
190
- - features/step_definitions/reek_steps.rb
191
- - features/step_definitions/sample_file_steps.rb
192
- - features/support/env.rb
193
- - features/todo_list.feature
194
109
  - lib/reek.rb
195
110
  - lib/reek/ast/ast_node_class_map.rb
196
111
  - lib/reek/ast/builder.rb
@@ -333,125 +248,6 @@ files:
333
248
  - logo/reek.text.png
334
249
  - logo/reek.text.svg
335
250
  - reek.gemspec
336
- - samples/checkstyle.xml
337
- - samples/clean_source/clean.rb
338
- - samples/configuration/accepts_rejects_and_excludes_for_detectors.reek.yml
339
- - samples/configuration/accepts_rejects_and_excludes_for_directory_directives.reek.yml
340
- - samples/configuration/corrupt.reek
341
- - samples/configuration/empty.reek
342
- - samples/configuration/full_configuration.reek
343
- - samples/configuration/full_mask.reek
344
- - samples/configuration/home/home.reek.yml
345
- - samples/configuration/partial_mask.reek
346
- - samples/configuration/regular_configuration/.reek.yml
347
- - samples/configuration/regular_configuration/empty_sub_directory/.gitignore
348
- - samples/configuration/with_excluded_paths.reek
349
- - samples/no_config_file/.keep
350
- - samples/paths.rb
351
- - samples/smelly_source/inline.rb
352
- - samples/smelly_source/optparse.rb
353
- - samples/smelly_source/redcloth.rb
354
- - samples/smelly_source/ruby.rb
355
- - samples/smelly_source/smelly.rb
356
- - samples/source_with_exclude_paths/ignore_me/uncommunicative_method_name.rb
357
- - samples/source_with_exclude_paths/nested/ignore_me_as_well/irresponsible_module.rb
358
- - samples/source_with_exclude_paths/nested/uncommunicative_parameter_name.rb
359
- - samples/source_with_exclude_paths/nested/uncommunicative_variable_name.rb
360
- - samples/source_with_hidden_directories/.hidden/hidden.rb
361
- - samples/source_with_hidden_directories/not_hidden.rb
362
- - samples/source_with_non_ruby_files/gibberish
363
- - samples/source_with_non_ruby_files/python_source.py
364
- - samples/source_with_non_ruby_files/ruby.rb
365
- - spec/performance/reek/smell_detectors/runtime_speed_spec.rb
366
- - spec/quality/documentation_spec.rb
367
- - spec/quality/reek_source_spec.rb
368
- - spec/reek/ast/node_spec.rb
369
- - spec/reek/ast/object_refs_spec.rb
370
- - spec/reek/ast/reference_collector_spec.rb
371
- - spec/reek/ast/sexp_extensions_spec.rb
372
- - spec/reek/cli/application_spec.rb
373
- - spec/reek/cli/command/report_command_spec.rb
374
- - spec/reek/cli/command/todo_list_command_spec.rb
375
- - spec/reek/cli/options_spec.rb
376
- - spec/reek/cli/silencer_spec.rb
377
- - spec/reek/code_comment_spec.rb
378
- - spec/reek/configuration/app_configuration_spec.rb
379
- - spec/reek/configuration/configuration_file_finder_spec.rb
380
- - spec/reek/configuration/default_directive_spec.rb
381
- - spec/reek/configuration/directory_directives_spec.rb
382
- - spec/reek/configuration/excluded_paths_spec.rb
383
- - spec/reek/configuration/rake_task_converter_spec.rb
384
- - spec/reek/configuration/schema_validator_spec.rb
385
- - spec/reek/context/code_context_spec.rb
386
- - spec/reek/context/ghost_context_spec.rb
387
- - spec/reek/context/method_context_spec.rb
388
- - spec/reek/context/module_context_spec.rb
389
- - spec/reek/context/root_context_spec.rb
390
- - spec/reek/context/statement_counter_spec.rb
391
- - spec/reek/context_builder_spec.rb
392
- - spec/reek/detector_repository_spec.rb
393
- - spec/reek/documentation_link_spec.rb
394
- - spec/reek/errors/base_error_spec.rb
395
- - spec/reek/examiner_spec.rb
396
- - spec/reek/logging_error_handler_spec.rb
397
- - spec/reek/rake/task_spec.rb
398
- - spec/reek/report/code_climate/code_climate_configuration_spec.rb
399
- - spec/reek/report/code_climate/code_climate_fingerprint_spec.rb
400
- - spec/reek/report/code_climate/code_climate_formatter_spec.rb
401
- - spec/reek/report/code_climate/code_climate_report_spec.rb
402
- - spec/reek/report/html_report_spec.rb
403
- - spec/reek/report/json_report_spec.rb
404
- - spec/reek/report/location_formatter_spec.rb
405
- - spec/reek/report/progress_formatter_spec.rb
406
- - spec/reek/report/text_report_spec.rb
407
- - spec/reek/report/xml_report_spec.rb
408
- - spec/reek/report/yaml_report_spec.rb
409
- - spec/reek/report_spec.rb
410
- - spec/reek/smell_configuration_spec.rb
411
- - spec/reek/smell_detectors/attribute_spec.rb
412
- - spec/reek/smell_detectors/base_detector_spec.rb
413
- - spec/reek/smell_detectors/boolean_parameter_spec.rb
414
- - spec/reek/smell_detectors/class_variable_spec.rb
415
- - spec/reek/smell_detectors/control_parameter_spec.rb
416
- - spec/reek/smell_detectors/data_clump_spec.rb
417
- - spec/reek/smell_detectors/duplicate_method_call_spec.rb
418
- - spec/reek/smell_detectors/feature_envy_spec.rb
419
- - spec/reek/smell_detectors/instance_variable_assumption_spec.rb
420
- - spec/reek/smell_detectors/irresponsible_module_spec.rb
421
- - spec/reek/smell_detectors/long_parameter_list_spec.rb
422
- - spec/reek/smell_detectors/long_yield_list_spec.rb
423
- - spec/reek/smell_detectors/manual_dispatch_spec.rb
424
- - spec/reek/smell_detectors/missing_safe_method_spec.rb
425
- - spec/reek/smell_detectors/module_initialize_spec.rb
426
- - spec/reek/smell_detectors/nested_iterators_spec.rb
427
- - spec/reek/smell_detectors/nil_check_spec.rb
428
- - spec/reek/smell_detectors/repeated_conditional_spec.rb
429
- - spec/reek/smell_detectors/subclassed_from_core_class_spec.rb
430
- - spec/reek/smell_detectors/too_many_constants_spec.rb
431
- - spec/reek/smell_detectors/too_many_instance_variables_spec.rb
432
- - spec/reek/smell_detectors/too_many_methods_spec.rb
433
- - spec/reek/smell_detectors/too_many_statements_spec.rb
434
- - spec/reek/smell_detectors/uncommunicative_method_name_spec.rb
435
- - spec/reek/smell_detectors/uncommunicative_module_name_spec.rb
436
- - spec/reek/smell_detectors/uncommunicative_parameter_name_spec.rb
437
- - spec/reek/smell_detectors/uncommunicative_variable_name_spec.rb
438
- - spec/reek/smell_detectors/unused_parameters_spec.rb
439
- - spec/reek/smell_detectors/unused_private_method_spec.rb
440
- - spec/reek/smell_detectors/utility_function_spec.rb
441
- - spec/reek/smell_warning_spec.rb
442
- - spec/reek/source/source_code_spec.rb
443
- - spec/reek/source/source_locator_spec.rb
444
- - spec/reek/spec/should_reek_of_spec.rb
445
- - spec/reek/spec/should_reek_only_of_spec.rb
446
- - spec/reek/spec/should_reek_spec.rb
447
- - spec/reek/spec/smell_matcher_spec.rb
448
- - spec/reek/tree_dresser_spec.rb
449
- - spec/spec_helper.rb
450
- - tasks/configuration.rake
451
- - tasks/console.rake
452
- - tasks/reek.rake
453
- - tasks/rubocop.rake
454
- - tasks/test.rake
455
251
  homepage: https://github.com/troessner/reek
456
252
  licenses:
457
253
  - MIT
@@ -480,8 +276,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
480
276
  - !ruby/object:Gem::Version
481
277
  version: '0'
482
278
  requirements: []
483
- rubyforge_project:
484
- rubygems_version: 2.7.7
279
+ rubygems_version: 3.2.3
485
280
  signing_key:
486
281
  specification_version: 4
487
282
  summary: Code smell detector for Ruby
data/docs/API.md DELETED
@@ -1,174 +0,0 @@
1
- # Using Reek inside your Ruby application
2
-
3
- ## Installation
4
-
5
- Either standalone via
6
-
7
- ```bash
8
- gem install reek
9
- ```
10
-
11
- or by adding
12
-
13
- ```
14
- gem 'reek'
15
- ```
16
-
17
- to your Gemfile.
18
-
19
- ## Quick start
20
-
21
- Code says more than a thousand words:
22
-
23
- ```ruby
24
- require 'reek'
25
-
26
- source = <<-RUBY
27
- class Dirty
28
- def m(a,b,c)
29
- puts a,b
30
- end
31
- end
32
- RUBY
33
-
34
- reporter = Reek::Report::TextReport.new
35
- examiner = Reek::Examiner.new source
36
- reporter.add_examiner examiner
37
- reporter.show
38
- ```
39
-
40
- This would output the following on STDOUT:
41
-
42
- ```
43
- string -- 5 warnings:
44
- Dirty has no descriptive comment (IrresponsibleModule)
45
- Dirty#m has the name 'm' (UncommunicativeMethodName)
46
- Dirty#m has the parameter name 'a' (UncommunicativeParameterName)
47
- Dirty#m has the parameter name 'b' (UncommunicativeParameterName)
48
- Dirty#m has unused parameter 'c' (UnusedParameters)
49
- ```
50
-
51
- Note that `Reek::Examiner.new` can take `source` as `String`, `Pathname`, `File` or `IO`.
52
-
53
- ## API stability
54
-
55
- Everything that is mentioned in this document can be considered stable in the
56
- sense that it will only change across major versions.
57
-
58
- There is one thing in this API documentation you can't and shouldn't rely on:
59
- The `SmellWarning` messages itself.
60
-
61
- Something like this
62
-
63
- ```
64
- Dirty#m has the parameter name 'a' (UncommunicativeParameterName)
65
- ```
66
-
67
- might change even across minor versions.
68
-
69
- You should not need to be specific about those messages anyways.
70
- In case you'd like to be specific about `SmellWarnings` please have a look at
71
- [accessing the smell warnings directly](#accessing-the-smell-warnings-directly).
72
-
73
- Additionally you can use one of our structured [outputs formats](#choosing-your-output-format)
74
- like JSON or YAML if you need a more fine-grained access to our
75
- `SmellWarnings`.
76
-
77
- ## Choosing your output format
78
-
79
- Besides normal text output, Reek can generate output in YAML,
80
- JSON, HTML and XML by using the following Report types:
81
-
82
- ```
83
- TextReport
84
- YAMLReport
85
- JSONReport
86
- HTMLReport
87
- XMLReport
88
- ```
89
-
90
- ## Configuration
91
-
92
- Given you have the following configuration file called `.reek.yml` in your root directory:
93
-
94
- ```Yaml
95
- ---
96
- IrresponsibleModule:
97
- enabled: false
98
- ```
99
-
100
- Reek will load this file automatically by default. If you want to load the
101
- configuration explicitely, you can use one of the methods below.
102
-
103
- You can now use either
104
-
105
- ```Ruby
106
- Reek::Configuration::AppConfiguration.from_path Pathname.new('config.reek')
107
- ```
108
-
109
- but you can also pass a hash with the contents of the `.reek.yml` YAML file
110
- to `Reek::Configuration::AppConfiguration.from_hash`.
111
-
112
- Given the example above you would load that as follows:
113
-
114
- ```Ruby
115
- require 'reek'
116
-
117
- config_hash = { 'IrresponsibleModule' => { 'enabled' => false } }
118
- configuration = Reek::Configuration::AppConfiguration.from_hash config_hash
119
-
120
- source = <<-RUBY
121
- class Dirty
122
- def call_me(a,b)
123
- puts a,b
124
- end
125
- end
126
- RUBY
127
-
128
- reporter = Reek::Report::TextReport.new
129
- examiner = Reek::Examiner.new(source, configuration: configuration); nil
130
- reporter.add_examiner examiner; nil
131
- reporter.show
132
- ```
133
-
134
- This would now only report `UncommunicativeParameterName` but not
135
- `IrresponsibleModule` for the `Dirty` class:
136
-
137
- ```
138
- string -- 2 warnings:
139
- Dirty#call_me has the parameter name 'a' (UncommunicativeParameterName)
140
- Dirty#call_me has the parameter name 'b' (UncommunicativeParameterName)
141
- ```
142
-
143
- Of course, directory specific configuration and excluded paths are supported as
144
- well:
145
-
146
- ```
147
- config_hash = {
148
- 'IrresponsibleModule' => { 'enabled' => false }
149
- 'spec/samples/three_clean_files/' =>
150
- { 'UtilityFunction' => { "enabled" => false } }
151
- 'exclude_paths' =>
152
- [ 'spec/samples/two_smelly_files' ]
153
- }
154
- ```
155
-
156
- ## Accessing the smell warnings directly
157
-
158
- You can also access the smells detected by an examiner directly:
159
-
160
- ```ruby
161
- require 'reek'
162
-
163
- source = <<-END
164
- class C
165
- end
166
- END
167
-
168
- examiner = Reek::Examiner.new source
169
- examiner.smells.each do |smell|
170
- puts smell.message
171
- end
172
- ```
173
-
174
- `Examiner#smells` returns a list of `SmellWarning` objects.