reek 6.0.3 → 6.0.4

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 (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.