reek 6.0.1 → 6.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (237) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +9 -0
  3. data/.github/workflows/ruby.yml +52 -0
  4. data/.rubocop.yml +2 -20
  5. data/.rubocop_todo.yml +27 -20
  6. data/CHANGELOG.md +22 -0
  7. data/CONTRIBUTING.md +3 -0
  8. data/Dockerfile +1 -1
  9. data/Gemfile +6 -6
  10. data/README.md +1 -1
  11. data/bin/code_climate_reek +2 -3
  12. data/lib/reek.rb +1 -0
  13. data/lib/reek/ast/ast_node_class_map.rb +1 -1
  14. data/lib/reek/ast/node.rb +1 -1
  15. data/lib/reek/cli/options.rb +1 -1
  16. data/lib/reek/configuration/app_configuration.rb +4 -3
  17. data/lib/reek/configuration/directory_directives.rb +2 -2
  18. data/lib/reek/configuration/excluded_paths.rb +2 -1
  19. data/lib/reek/context/code_context.rb +1 -1
  20. data/lib/reek/context/module_context.rb +3 -1
  21. data/lib/reek/context/refinement_context.rb +16 -0
  22. data/lib/reek/context_builder.rb +16 -2
  23. data/lib/reek/report/code_climate/code_climate_configuration.yml +1 -1
  24. data/lib/reek/report/code_climate/code_climate_formatter.rb +1 -3
  25. data/lib/reek/smell_detectors/base_detector.rb +1 -1
  26. data/lib/reek/smell_detectors/boolean_parameter.rb +3 -1
  27. data/lib/reek/smell_detectors/uncommunicative_variable_name.rb +1 -1
  28. data/lib/reek/smell_warning.rb +2 -3
  29. data/lib/reek/source/source_locator.rb +14 -13
  30. data/lib/reek/version.rb +1 -1
  31. data/reek.gemspec +14 -3
  32. metadata +29 -232
  33. data/.travis.yml +0 -36
  34. data/docs/API.md +0 -174
  35. data/docs/Attribute.md +0 -39
  36. data/docs/Basic-Smell-Options.md +0 -85
  37. data/docs/Boolean-Parameter.md +0 -54
  38. data/docs/Class-Variable.md +0 -40
  39. data/docs/Code-Smells.md +0 -39
  40. data/docs/Command-Line-Options.md +0 -119
  41. data/docs/Control-Couple.md +0 -26
  42. data/docs/Control-Parameter.md +0 -32
  43. data/docs/Data-Clump.md +0 -46
  44. data/docs/Duplicate-Method-Call.md +0 -264
  45. data/docs/Feature-Envy.md +0 -93
  46. data/docs/How-To-Write-New-Detectors.md +0 -132
  47. data/docs/How-reek-works-internally.md +0 -114
  48. data/docs/Instance-Variable-Assumption.md +0 -163
  49. data/docs/Irresponsible-Module.md +0 -47
  50. data/docs/Large-Class.md +0 -16
  51. data/docs/Long-Parameter-List.md +0 -39
  52. data/docs/Long-Yield-List.md +0 -37
  53. data/docs/Manual-Dispatch.md +0 -30
  54. data/docs/Missing-Safe-Method.md +0 -92
  55. data/docs/Module-Initialize.md +0 -62
  56. data/docs/Nested-Iterators.md +0 -59
  57. data/docs/Nil-Check.md +0 -47
  58. data/docs/RSpec-matchers.md +0 -129
  59. data/docs/Rake-Task.md +0 -66
  60. data/docs/Reek-4-to-Reek-5-migration.md +0 -188
  61. data/docs/Reek-Driven-Development.md +0 -46
  62. data/docs/Repeated-Conditional.md +0 -47
  63. data/docs/Simulated-Polymorphism.md +0 -16
  64. data/docs/Smell-Suppression.md +0 -96
  65. data/docs/Style-Guide.md +0 -19
  66. data/docs/Subclassed-From-Core-Class.md +0 -79
  67. data/docs/Too-Many-Constants.md +0 -37
  68. data/docs/Too-Many-Instance-Variables.md +0 -43
  69. data/docs/Too-Many-Methods.md +0 -56
  70. data/docs/Too-Many-Statements.md +0 -54
  71. data/docs/Uncommunicative-Method-Name.md +0 -94
  72. data/docs/Uncommunicative-Module-Name.md +0 -92
  73. data/docs/Uncommunicative-Name.md +0 -18
  74. data/docs/Uncommunicative-Parameter-Name.md +0 -90
  75. data/docs/Uncommunicative-Variable-Name.md +0 -96
  76. data/docs/Unused-Parameters.md +0 -28
  77. data/docs/Unused-Private-Method.md +0 -101
  78. data/docs/Utility-Function.md +0 -56
  79. data/docs/Versioning-Policy.md +0 -7
  80. data/docs/YAML-Reports.md +0 -93
  81. data/docs/defaults.reek.yml +0 -129
  82. data/docs/templates/default/docstring/html/public_api_marker.erb +0 -3
  83. data/docs/templates/default/docstring/setup.rb +0 -37
  84. data/docs/templates/default/fulldoc/html/css/common.css +0 -1
  85. data/docs/yard_plugin.rb +0 -17
  86. data/features/command_line_interface/basic_usage.feature +0 -15
  87. data/features/command_line_interface/options.feature +0 -123
  88. data/features/command_line_interface/show_progress.feature +0 -33
  89. data/features/command_line_interface/smell_selection.feature +0 -15
  90. data/features/command_line_interface/smells_count.feature +0 -38
  91. data/features/command_line_interface/stdin.feature +0 -65
  92. data/features/configuration_files/accept_setting.feature +0 -87
  93. data/features/configuration_files/directory_specific_directives.feature +0 -274
  94. data/features/configuration_files/exclude_directives.feature +0 -35
  95. data/features/configuration_files/exclude_paths_directives.feature +0 -42
  96. data/features/configuration_files/masking_smells.feature +0 -94
  97. data/features/configuration_files/mix_accept_reject_setting.feature +0 -84
  98. data/features/configuration_files/reject_setting.feature +0 -89
  99. data/features/configuration_files/schema_validation.feature +0 -59
  100. data/features/configuration_files/show_configuration_file.feature +0 -44
  101. data/features/configuration_files/unused_private_method.feature +0 -68
  102. data/features/configuration_loading.feature +0 -91
  103. data/features/configuration_via_source_comments/erroneous_source_comments.feature +0 -68
  104. data/features/configuration_via_source_comments/well_formed_source_comments.feature +0 -116
  105. data/features/locales.feature +0 -32
  106. data/features/programmatic_access.feature +0 -41
  107. data/features/rake_task/rake_task.feature +0 -138
  108. data/features/reports/codeclimate.feature +0 -59
  109. data/features/reports/json.feature +0 -59
  110. data/features/reports/reports.feature +0 -219
  111. data/features/reports/yaml.feature +0 -52
  112. data/features/rspec_matcher.feature +0 -41
  113. data/features/samples.feature +0 -305
  114. data/features/step_definitions/.rubocop.yml +0 -5
  115. data/features/step_definitions/reek_steps.rb +0 -102
  116. data/features/step_definitions/sample_file_steps.rb +0 -63
  117. data/features/support/env.rb +0 -33
  118. data/features/todo_list.feature +0 -108
  119. data/samples/checkstyle.xml +0 -7
  120. data/samples/clean_source/clean.rb +0 -6
  121. data/samples/configuration/accepts_rejects_and_excludes_for_detectors.reek.yml +0 -29
  122. data/samples/configuration/accepts_rejects_and_excludes_for_directory_directives.reek.yml +0 -30
  123. data/samples/configuration/corrupt.reek +0 -1
  124. data/samples/configuration/empty.reek +0 -0
  125. data/samples/configuration/full_configuration.reek +0 -13
  126. data/samples/configuration/full_mask.reek +0 -6
  127. data/samples/configuration/home/home.reek.yml +0 -4
  128. data/samples/configuration/partial_mask.reek +0 -4
  129. data/samples/configuration/regular_configuration/.reek.yml +0 -4
  130. data/samples/configuration/regular_configuration/empty_sub_directory/.gitignore +0 -0
  131. data/samples/configuration/with_excluded_paths.reek +0 -5
  132. data/samples/no_config_file/.keep +0 -0
  133. data/samples/paths.rb +0 -5
  134. data/samples/smelly_source/inline.rb +0 -704
  135. data/samples/smelly_source/optparse.rb +0 -1788
  136. data/samples/smelly_source/redcloth.rb +0 -1130
  137. data/samples/smelly_source/ruby.rb +0 -368
  138. data/samples/smelly_source/smelly.rb +0 -7
  139. data/samples/source_with_exclude_paths/ignore_me/uncommunicative_method_name.rb +0 -5
  140. data/samples/source_with_exclude_paths/nested/ignore_me_as_well/irresponsible_module.rb +0 -2
  141. data/samples/source_with_exclude_paths/nested/uncommunicative_parameter_name.rb +0 -6
  142. data/samples/source_with_exclude_paths/nested/uncommunicative_variable_name.rb +0 -6
  143. data/samples/source_with_hidden_directories/.hidden/hidden.rb +0 -1
  144. data/samples/source_with_hidden_directories/not_hidden.rb +0 -1
  145. data/samples/source_with_non_ruby_files/gibberish +0 -1
  146. data/samples/source_with_non_ruby_files/python_source.py +0 -1
  147. data/samples/source_with_non_ruby_files/ruby.rb +0 -6
  148. data/spec/performance/reek/smell_detectors/runtime_speed_spec.rb +0 -17
  149. data/spec/quality/documentation_spec.rb +0 -40
  150. data/spec/quality/reek_source_spec.rb +0 -11
  151. data/spec/reek/ast/node_spec.rb +0 -211
  152. data/spec/reek/ast/object_refs_spec.rb +0 -83
  153. data/spec/reek/ast/reference_collector_spec.rb +0 -47
  154. data/spec/reek/ast/sexp_extensions_spec.rb +0 -498
  155. data/spec/reek/cli/application_spec.rb +0 -168
  156. data/spec/reek/cli/command/report_command_spec.rb +0 -44
  157. data/spec/reek/cli/command/todo_list_command_spec.rb +0 -86
  158. data/spec/reek/cli/options_spec.rb +0 -51
  159. data/spec/reek/cli/silencer_spec.rb +0 -28
  160. data/spec/reek/code_comment_spec.rb +0 -184
  161. data/spec/reek/configuration/app_configuration_spec.rb +0 -195
  162. data/spec/reek/configuration/configuration_file_finder_spec.rb +0 -230
  163. data/spec/reek/configuration/default_directive_spec.rb +0 -13
  164. data/spec/reek/configuration/directory_directives_spec.rb +0 -122
  165. data/spec/reek/configuration/excluded_paths_spec.rb +0 -16
  166. data/spec/reek/configuration/rake_task_converter_spec.rb +0 -33
  167. data/spec/reek/configuration/schema_validator_spec.rb +0 -165
  168. data/spec/reek/context/code_context_spec.rb +0 -192
  169. data/spec/reek/context/ghost_context_spec.rb +0 -60
  170. data/spec/reek/context/method_context_spec.rb +0 -72
  171. data/spec/reek/context/module_context_spec.rb +0 -55
  172. data/spec/reek/context/root_context_spec.rb +0 -12
  173. data/spec/reek/context/statement_counter_spec.rb +0 -24
  174. data/spec/reek/context_builder_spec.rb +0 -457
  175. data/spec/reek/detector_repository_spec.rb +0 -22
  176. data/spec/reek/documentation_link_spec.rb +0 -20
  177. data/spec/reek/errors/base_error_spec.rb +0 -13
  178. data/spec/reek/examiner_spec.rb +0 -309
  179. data/spec/reek/logging_error_handler_spec.rb +0 -24
  180. data/spec/reek/rake/task_spec.rb +0 -56
  181. data/spec/reek/report/code_climate/code_climate_configuration_spec.rb +0 -22
  182. data/spec/reek/report/code_climate/code_climate_fingerprint_spec.rb +0 -126
  183. data/spec/reek/report/code_climate/code_climate_formatter_spec.rb +0 -51
  184. data/spec/reek/report/code_climate/code_climate_report_spec.rb +0 -56
  185. data/spec/reek/report/html_report_spec.rb +0 -19
  186. data/spec/reek/report/json_report_spec.rb +0 -58
  187. data/spec/reek/report/location_formatter_spec.rb +0 -32
  188. data/spec/reek/report/progress_formatter_spec.rb +0 -68
  189. data/spec/reek/report/text_report_spec.rb +0 -89
  190. data/spec/reek/report/xml_report_spec.rb +0 -24
  191. data/spec/reek/report/yaml_report_spec.rb +0 -55
  192. data/spec/reek/report_spec.rb +0 -28
  193. data/spec/reek/smell_configuration_spec.rb +0 -56
  194. data/spec/reek/smell_detectors/attribute_spec.rb +0 -197
  195. data/spec/reek/smell_detectors/base_detector_spec.rb +0 -50
  196. data/spec/reek/smell_detectors/boolean_parameter_spec.rb +0 -93
  197. data/spec/reek/smell_detectors/class_variable_spec.rb +0 -106
  198. data/spec/reek/smell_detectors/control_parameter_spec.rb +0 -300
  199. data/spec/reek/smell_detectors/data_clump_spec.rb +0 -134
  200. data/spec/reek/smell_detectors/duplicate_method_call_spec.rb +0 -211
  201. data/spec/reek/smell_detectors/feature_envy_spec.rb +0 -295
  202. data/spec/reek/smell_detectors/instance_variable_assumption_spec.rb +0 -96
  203. data/spec/reek/smell_detectors/irresponsible_module_spec.rb +0 -226
  204. data/spec/reek/smell_detectors/long_parameter_list_spec.rb +0 -61
  205. data/spec/reek/smell_detectors/long_yield_list_spec.rb +0 -49
  206. data/spec/reek/smell_detectors/manual_dispatch_spec.rb +0 -75
  207. data/spec/reek/smell_detectors/missing_safe_method_spec.rb +0 -68
  208. data/spec/reek/smell_detectors/module_initialize_spec.rb +0 -77
  209. data/spec/reek/smell_detectors/nested_iterators_spec.rb +0 -333
  210. data/spec/reek/smell_detectors/nil_check_spec.rb +0 -100
  211. data/spec/reek/smell_detectors/repeated_conditional_spec.rb +0 -100
  212. data/spec/reek/smell_detectors/subclassed_from_core_class_spec.rb +0 -77
  213. data/spec/reek/smell_detectors/too_many_constants_spec.rb +0 -144
  214. data/spec/reek/smell_detectors/too_many_instance_variables_spec.rb +0 -132
  215. data/spec/reek/smell_detectors/too_many_methods_spec.rb +0 -54
  216. data/spec/reek/smell_detectors/too_many_statements_spec.rb +0 -90
  217. data/spec/reek/smell_detectors/uncommunicative_method_name_spec.rb +0 -78
  218. data/spec/reek/smell_detectors/uncommunicative_module_name_spec.rb +0 -78
  219. data/spec/reek/smell_detectors/uncommunicative_parameter_name_spec.rb +0 -147
  220. data/spec/reek/smell_detectors/uncommunicative_variable_name_spec.rb +0 -201
  221. data/spec/reek/smell_detectors/unused_parameters_spec.rb +0 -114
  222. data/spec/reek/smell_detectors/unused_private_method_spec.rb +0 -205
  223. data/spec/reek/smell_detectors/utility_function_spec.rb +0 -293
  224. data/spec/reek/smell_warning_spec.rb +0 -137
  225. data/spec/reek/source/source_code_spec.rb +0 -79
  226. data/spec/reek/source/source_locator_spec.rb +0 -166
  227. data/spec/reek/spec/should_reek_of_spec.rb +0 -153
  228. data/spec/reek/spec/should_reek_only_of_spec.rb +0 -91
  229. data/spec/reek/spec/should_reek_spec.rb +0 -52
  230. data/spec/reek/spec/smell_matcher_spec.rb +0 -87
  231. data/spec/reek/tree_dresser_spec.rb +0 -46
  232. data/spec/spec_helper.rb +0 -110
  233. data/tasks/configuration.rake +0 -19
  234. data/tasks/console.rake +0 -5
  235. data/tasks/reek.rake +0 -6
  236. data/tasks/rubocop.rake +0 -11
  237. data/tasks/test.rake +0 -32
@@ -59,7 +59,7 @@ BooleanParameter:
59
59
 
60
60
  ## Getting rid of the smell
61
61
 
62
- This is highly dependant on your exact architecture, but looking at the example above what you could do is:
62
+ This is highly dependent on your exact architecture, but looking at the example above what you could do is:
63
63
 
64
64
  * Move everything in the `if` branch into a separate method
65
65
  * Move everything in the `else` branch into a separate method
@@ -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
@@ -14,6 +14,8 @@ module Reek
14
14
  #
15
15
  # See {file:docs/Boolean-Parameter.md} for details.
16
16
  class BooleanParameter < BaseDetector
17
+ BOOLEAN_VALUES = [:true, :false].freeze
18
+
17
19
  #
18
20
  # Checks whether the given method has any Boolean parameters.
19
21
  #
@@ -21,7 +23,7 @@ module Reek
21
23
  #
22
24
  def sniff
23
25
  context.default_assignments.select do |_parameter, value|
24
- [:true, :false].include?(value.type)
26
+ BOOLEAN_VALUES.include?(value.type)
25
27
  end.map do |parameter, _value|
26
28
  smell_warning(
27
29
  lines: [source_line],
@@ -74,7 +74,7 @@ module Reek
74
74
  end
75
75
 
76
76
  def uncommunicative_variable_name?(name)
77
- sanitized_name = name.to_s.gsub(/^[@\*\&]*/, '')
77
+ sanitized_name = name.to_s.gsub(/^[@*&]*/, '')
78
78
  !acceptable_name?(sanitized_name)
79
79
  end
80
80
 
@@ -31,8 +31,7 @@ module Reek
31
31
  # public API.
32
32
  #
33
33
  # @quality :reek:LongParameterList { max_params: 6 }
34
- def initialize(smell_type, context: '', lines:, message:,
35
- source:, parameters: {})
34
+ def initialize(smell_type, lines:, message:, source:, context: '', parameters: {})
36
35
  @smell_type = smell_type
37
36
  @source = source
38
37
  @context = context.to_s
@@ -60,7 +59,7 @@ module Reek
60
59
 
61
60
  # @public
62
61
  def to_hash
63
- stringified_params = Hash[parameters.map { |key, val| [key.to_s, val] }]
62
+ stringified_params = parameters.map { |key, val| [key.to_s, val] }.to_h
64
63
  base_hash.merge(stringified_params)
65
64
  end
66
65
 
@@ -33,23 +33,26 @@ module Reek
33
33
 
34
34
  attr_reader :configuration, :paths, :options
35
35
 
36
- # @quality :reek:TooManyStatements { max_statements: 7 }
37
- # @quality :reek:NestedIterators { max_allowed_nesting: 2 }
38
36
  def source_paths
39
37
  paths.each_with_object([]) do |given_path, relevant_paths|
40
- unless given_path.exist?
38
+ if given_path.exist?
39
+ relevant_paths.concat source_files_from_path(given_path)
40
+ else
41
41
  print_no_such_file_error(given_path)
42
- next
43
42
  end
43
+ end
44
+ end
44
45
 
45
- given_path.find do |path|
46
- if path.directory?
47
- ignore_path?(path) ? Find.prune : next
48
- elsif ruby_file?(path)
49
- relevant_paths << path unless ignore_file?(path)
50
- end
46
+ def source_files_from_path(given_path)
47
+ relevant_paths = []
48
+ given_path.find do |path|
49
+ if path.directory?
50
+ Find.prune if ignore_path?(path)
51
+ elsif ruby_file?(path)
52
+ relevant_paths << path unless ignore_file?(path)
51
53
  end
52
54
  end
55
+ relevant_paths
53
56
  end
54
57
 
55
58
  def ignore_file?(path)
@@ -59,10 +62,8 @@ module Reek
59
62
 
60
63
  false
61
64
  end
62
- elsif path_excluded?(path)
63
- true
64
65
  else
65
- false
66
+ path_excluded?(path)
66
67
  end
67
68
  end
68
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.1'
11
+ STRING = '6.0.5'
12
12
  end
13
13
  end
data/reek.gemspec CHANGED
@@ -12,15 +12,26 @@ 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/)
19
22
  s.required_ruby_version = '>= 2.4.0'
20
23
  s.summary = 'Code smell detector for Ruby'
21
24
 
25
+ s.metadata = {
26
+ 'homepage_uri' => 'https://github.com/troessner/reek',
27
+ 'source_code_uri' => 'https://github.com/troessner/reek',
28
+ 'bug_tracker_uri' => 'https://github.com/troessner/reek/issues',
29
+ 'changelog_uri' => 'https://github.com/troessner/reek/CHANGELOG.md',
30
+ 'documentation_uri' => 'https://www.rubydoc.info/gems/reek'
31
+ }
32
+
22
33
  s.add_runtime_dependency 'kwalify', '~> 0.7.0'
23
- s.add_runtime_dependency 'parser', '< 2.8', '>= 2.5.0.0', '!= 2.5.1.1'
24
- s.add_runtime_dependency 'psych', '~> 3.1.0'
34
+ s.add_runtime_dependency 'parser', '~> 3.0.0'
35
+ s.add_runtime_dependency 'psych', '>= 3.1', '< 5.0'
25
36
  s.add_runtime_dependency 'rainbow', '>= 2.0', '< 4.0'
26
37
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reek
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.1
4
+ version: 6.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Rutherford
8
8
  - Timo Roessner
9
9
  - Matijs van Zuijlen
10
10
  - Piotr Szotkowski
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-05-26 00:00:00.000000000 Z
14
+ date: 2021-08-01 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: kwalify
@@ -31,42 +31,36 @@ dependencies:
31
31
  name: parser
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: 2.5.0.0
37
- - - "!="
38
- - !ruby/object:Gem::Version
39
- version: 2.5.1.1
40
- - - "<"
34
+ - - "~>"
41
35
  - !ruby/object:Gem::Version
42
- version: '2.8'
36
+ version: 3.0.0
43
37
  type: :runtime
44
38
  prerelease: false
45
39
  version_requirements: !ruby/object:Gem::Requirement
46
40
  requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 2.5.0.0
50
- - - "!="
51
- - !ruby/object:Gem::Version
52
- version: 2.5.1.1
53
- - - "<"
41
+ - - "~>"
54
42
  - !ruby/object:Gem::Version
55
- version: '2.8'
43
+ version: 3.0.0
56
44
  - !ruby/object:Gem::Dependency
57
45
  name: psych
58
46
  requirement: !ruby/object:Gem::Requirement
59
47
  requirements:
60
- - - "~>"
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '3.1'
51
+ - - "<"
61
52
  - !ruby/object:Gem::Version
62
- version: 3.1.0
53
+ version: '5.0'
63
54
  type: :runtime
64
55
  prerelease: false
65
56
  version_requirements: !ruby/object:Gem::Requirement
66
57
  requirements:
67
- - - "~>"
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '3.1'
61
+ - - "<"
68
62
  - !ruby/object:Gem::Version
69
- version: 3.1.0
63
+ version: '5.0'
70
64
  - !ruby/object:Gem::Dependency
71
65
  name: rainbow
72
66
  requirement: !ruby/object:Gem::Requirement
@@ -100,12 +94,13 @@ extra_rdoc_files:
100
94
  - License.txt
101
95
  files:
102
96
  - ".dockerignore"
97
+ - ".github/dependabot.yml"
98
+ - ".github/workflows/ruby.yml"
103
99
  - ".gitignore"
104
100
  - ".reek.yml"
105
101
  - ".rubocop.yml"
106
102
  - ".rubocop_todo.yml"
107
103
  - ".simplecov"
108
- - ".travis.yml"
109
104
  - ".yardopts"
110
105
  - CHANGELOG.md
111
106
  - CONTRIBUTING.md
@@ -116,92 +111,7 @@ files:
116
111
  - Rakefile
117
112
  - bin/code_climate_reek
118
113
  - bin/reek
119
- - docs/API.md
120
- - docs/Attribute.md
121
- - docs/Basic-Smell-Options.md
122
- - docs/Boolean-Parameter.md
123
- - docs/Class-Variable.md
124
- - docs/Code-Smells.md
125
- - docs/Command-Line-Options.md
126
- - docs/Control-Couple.md
127
- - docs/Control-Parameter.md
128
- - docs/Data-Clump.md
129
- - docs/Duplicate-Method-Call.md
130
- - docs/Feature-Envy.md
131
- - docs/How-To-Write-New-Detectors.md
132
- - docs/How-reek-works-internally.md
133
- - docs/Instance-Variable-Assumption.md
134
- - docs/Irresponsible-Module.md
135
- - docs/Large-Class.md
136
- - docs/Long-Parameter-List.md
137
- - docs/Long-Yield-List.md
138
- - docs/Manual-Dispatch.md
139
- - docs/Missing-Safe-Method.md
140
- - docs/Module-Initialize.md
141
- - docs/Nested-Iterators.md
142
- - docs/Nil-Check.md
143
- - docs/RSpec-matchers.md
144
- - docs/Rake-Task.md
145
- - docs/Reek-4-to-Reek-5-migration.md
146
- - docs/Reek-Driven-Development.md
147
- - docs/Repeated-Conditional.md
148
- - docs/Simulated-Polymorphism.md
149
- - docs/Smell-Suppression.md
150
- - docs/Style-Guide.md
151
- - docs/Subclassed-From-Core-Class.md
152
- - docs/Too-Many-Constants.md
153
- - docs/Too-Many-Instance-Variables.md
154
- - docs/Too-Many-Methods.md
155
- - docs/Too-Many-Statements.md
156
- - docs/Uncommunicative-Method-Name.md
157
- - docs/Uncommunicative-Module-Name.md
158
- - docs/Uncommunicative-Name.md
159
- - docs/Uncommunicative-Parameter-Name.md
160
- - docs/Uncommunicative-Variable-Name.md
161
- - docs/Unused-Parameters.md
162
- - docs/Unused-Private-Method.md
163
- - docs/Utility-Function.md
164
- - docs/Versioning-Policy.md
165
- - docs/YAML-Reports.md
166
- - docs/defaults.reek.yml
167
- - docs/templates/default/docstring/html/public_api_marker.erb
168
- - docs/templates/default/docstring/setup.rb
169
- - docs/templates/default/fulldoc/html/css/common.css
170
- - docs/yard_plugin.rb
171
114
  - engine.json
172
- - features/command_line_interface/basic_usage.feature
173
- - features/command_line_interface/options.feature
174
- - features/command_line_interface/show_progress.feature
175
- - features/command_line_interface/smell_selection.feature
176
- - features/command_line_interface/smells_count.feature
177
- - features/command_line_interface/stdin.feature
178
- - features/configuration_files/accept_setting.feature
179
- - features/configuration_files/directory_specific_directives.feature
180
- - features/configuration_files/exclude_directives.feature
181
- - features/configuration_files/exclude_paths_directives.feature
182
- - features/configuration_files/masking_smells.feature
183
- - features/configuration_files/mix_accept_reject_setting.feature
184
- - features/configuration_files/reject_setting.feature
185
- - features/configuration_files/schema_validation.feature
186
- - features/configuration_files/show_configuration_file.feature
187
- - features/configuration_files/unused_private_method.feature
188
- - features/configuration_loading.feature
189
- - features/configuration_via_source_comments/erroneous_source_comments.feature
190
- - features/configuration_via_source_comments/well_formed_source_comments.feature
191
- - features/locales.feature
192
- - features/programmatic_access.feature
193
- - features/rake_task/rake_task.feature
194
- - features/reports/codeclimate.feature
195
- - features/reports/json.feature
196
- - features/reports/reports.feature
197
- - features/reports/yaml.feature
198
- - features/rspec_matcher.feature
199
- - features/samples.feature
200
- - features/step_definitions/.rubocop.yml
201
- - features/step_definitions/reek_steps.rb
202
- - features/step_definitions/sample_file_steps.rb
203
- - features/support/env.rb
204
- - features/todo_list.feature
205
115
  - lib/reek.rb
206
116
  - lib/reek/ast/ast_node_class_map.rb
207
117
  - lib/reek/ast/builder.rb
@@ -251,6 +161,7 @@ files:
251
161
  - lib/reek/context/ghost_context.rb
252
162
  - lib/reek/context/method_context.rb
253
163
  - lib/reek/context/module_context.rb
164
+ - lib/reek/context/refinement_context.rb
254
165
  - lib/reek/context/root_context.rb
255
166
  - lib/reek/context/send_context.rb
256
167
  - lib/reek/context/singleton_attribute_context.rb
@@ -343,130 +254,16 @@ files:
343
254
  - logo/reek.text.png
344
255
  - logo/reek.text.svg
345
256
  - reek.gemspec
346
- - samples/checkstyle.xml
347
- - samples/clean_source/clean.rb
348
- - samples/configuration/accepts_rejects_and_excludes_for_detectors.reek.yml
349
- - samples/configuration/accepts_rejects_and_excludes_for_directory_directives.reek.yml
350
- - samples/configuration/corrupt.reek
351
- - samples/configuration/empty.reek
352
- - samples/configuration/full_configuration.reek
353
- - samples/configuration/full_mask.reek
354
- - samples/configuration/home/home.reek.yml
355
- - samples/configuration/partial_mask.reek
356
- - samples/configuration/regular_configuration/.reek.yml
357
- - samples/configuration/regular_configuration/empty_sub_directory/.gitignore
358
- - samples/configuration/with_excluded_paths.reek
359
- - samples/no_config_file/.keep
360
- - samples/paths.rb
361
- - samples/smelly_source/inline.rb
362
- - samples/smelly_source/optparse.rb
363
- - samples/smelly_source/redcloth.rb
364
- - samples/smelly_source/ruby.rb
365
- - samples/smelly_source/smelly.rb
366
- - samples/source_with_exclude_paths/ignore_me/uncommunicative_method_name.rb
367
- - samples/source_with_exclude_paths/nested/ignore_me_as_well/irresponsible_module.rb
368
- - samples/source_with_exclude_paths/nested/uncommunicative_parameter_name.rb
369
- - samples/source_with_exclude_paths/nested/uncommunicative_variable_name.rb
370
- - samples/source_with_hidden_directories/.hidden/hidden.rb
371
- - samples/source_with_hidden_directories/not_hidden.rb
372
- - samples/source_with_non_ruby_files/gibberish
373
- - samples/source_with_non_ruby_files/python_source.py
374
- - samples/source_with_non_ruby_files/ruby.rb
375
- - spec/performance/reek/smell_detectors/runtime_speed_spec.rb
376
- - spec/quality/documentation_spec.rb
377
- - spec/quality/reek_source_spec.rb
378
- - spec/reek/ast/node_spec.rb
379
- - spec/reek/ast/object_refs_spec.rb
380
- - spec/reek/ast/reference_collector_spec.rb
381
- - spec/reek/ast/sexp_extensions_spec.rb
382
- - spec/reek/cli/application_spec.rb
383
- - spec/reek/cli/command/report_command_spec.rb
384
- - spec/reek/cli/command/todo_list_command_spec.rb
385
- - spec/reek/cli/options_spec.rb
386
- - spec/reek/cli/silencer_spec.rb
387
- - spec/reek/code_comment_spec.rb
388
- - spec/reek/configuration/app_configuration_spec.rb
389
- - spec/reek/configuration/configuration_file_finder_spec.rb
390
- - spec/reek/configuration/default_directive_spec.rb
391
- - spec/reek/configuration/directory_directives_spec.rb
392
- - spec/reek/configuration/excluded_paths_spec.rb
393
- - spec/reek/configuration/rake_task_converter_spec.rb
394
- - spec/reek/configuration/schema_validator_spec.rb
395
- - spec/reek/context/code_context_spec.rb
396
- - spec/reek/context/ghost_context_spec.rb
397
- - spec/reek/context/method_context_spec.rb
398
- - spec/reek/context/module_context_spec.rb
399
- - spec/reek/context/root_context_spec.rb
400
- - spec/reek/context/statement_counter_spec.rb
401
- - spec/reek/context_builder_spec.rb
402
- - spec/reek/detector_repository_spec.rb
403
- - spec/reek/documentation_link_spec.rb
404
- - spec/reek/errors/base_error_spec.rb
405
- - spec/reek/examiner_spec.rb
406
- - spec/reek/logging_error_handler_spec.rb
407
- - spec/reek/rake/task_spec.rb
408
- - spec/reek/report/code_climate/code_climate_configuration_spec.rb
409
- - spec/reek/report/code_climate/code_climate_fingerprint_spec.rb
410
- - spec/reek/report/code_climate/code_climate_formatter_spec.rb
411
- - spec/reek/report/code_climate/code_climate_report_spec.rb
412
- - spec/reek/report/html_report_spec.rb
413
- - spec/reek/report/json_report_spec.rb
414
- - spec/reek/report/location_formatter_spec.rb
415
- - spec/reek/report/progress_formatter_spec.rb
416
- - spec/reek/report/text_report_spec.rb
417
- - spec/reek/report/xml_report_spec.rb
418
- - spec/reek/report/yaml_report_spec.rb
419
- - spec/reek/report_spec.rb
420
- - spec/reek/smell_configuration_spec.rb
421
- - spec/reek/smell_detectors/attribute_spec.rb
422
- - spec/reek/smell_detectors/base_detector_spec.rb
423
- - spec/reek/smell_detectors/boolean_parameter_spec.rb
424
- - spec/reek/smell_detectors/class_variable_spec.rb
425
- - spec/reek/smell_detectors/control_parameter_spec.rb
426
- - spec/reek/smell_detectors/data_clump_spec.rb
427
- - spec/reek/smell_detectors/duplicate_method_call_spec.rb
428
- - spec/reek/smell_detectors/feature_envy_spec.rb
429
- - spec/reek/smell_detectors/instance_variable_assumption_spec.rb
430
- - spec/reek/smell_detectors/irresponsible_module_spec.rb
431
- - spec/reek/smell_detectors/long_parameter_list_spec.rb
432
- - spec/reek/smell_detectors/long_yield_list_spec.rb
433
- - spec/reek/smell_detectors/manual_dispatch_spec.rb
434
- - spec/reek/smell_detectors/missing_safe_method_spec.rb
435
- - spec/reek/smell_detectors/module_initialize_spec.rb
436
- - spec/reek/smell_detectors/nested_iterators_spec.rb
437
- - spec/reek/smell_detectors/nil_check_spec.rb
438
- - spec/reek/smell_detectors/repeated_conditional_spec.rb
439
- - spec/reek/smell_detectors/subclassed_from_core_class_spec.rb
440
- - spec/reek/smell_detectors/too_many_constants_spec.rb
441
- - spec/reek/smell_detectors/too_many_instance_variables_spec.rb
442
- - spec/reek/smell_detectors/too_many_methods_spec.rb
443
- - spec/reek/smell_detectors/too_many_statements_spec.rb
444
- - spec/reek/smell_detectors/uncommunicative_method_name_spec.rb
445
- - spec/reek/smell_detectors/uncommunicative_module_name_spec.rb
446
- - spec/reek/smell_detectors/uncommunicative_parameter_name_spec.rb
447
- - spec/reek/smell_detectors/uncommunicative_variable_name_spec.rb
448
- - spec/reek/smell_detectors/unused_parameters_spec.rb
449
- - spec/reek/smell_detectors/unused_private_method_spec.rb
450
- - spec/reek/smell_detectors/utility_function_spec.rb
451
- - spec/reek/smell_warning_spec.rb
452
- - spec/reek/source/source_code_spec.rb
453
- - spec/reek/source/source_locator_spec.rb
454
- - spec/reek/spec/should_reek_of_spec.rb
455
- - spec/reek/spec/should_reek_only_of_spec.rb
456
- - spec/reek/spec/should_reek_spec.rb
457
- - spec/reek/spec/smell_matcher_spec.rb
458
- - spec/reek/tree_dresser_spec.rb
459
- - spec/spec_helper.rb
460
- - tasks/configuration.rake
461
- - tasks/console.rake
462
- - tasks/reek.rake
463
- - tasks/rubocop.rake
464
- - tasks/test.rake
465
257
  homepage: https://github.com/troessner/reek
466
258
  licenses:
467
259
  - MIT
468
- metadata: {}
469
- post_install_message:
260
+ metadata:
261
+ homepage_uri: https://github.com/troessner/reek
262
+ source_code_uri: https://github.com/troessner/reek
263
+ bug_tracker_uri: https://github.com/troessner/reek/issues
264
+ changelog_uri: https://github.com/troessner/reek/CHANGELOG.md
265
+ documentation_uri: https://www.rubydoc.info/gems/reek
266
+ post_install_message:
470
267
  rdoc_options:
471
268
  - "--main"
472
269
  - README.md
@@ -485,8 +282,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
485
282
  - !ruby/object:Gem::Version
486
283
  version: '0'
487
284
  requirements: []
488
- rubygems_version: 3.0.3
489
- signing_key:
285
+ rubygems_version: 3.2.22
286
+ signing_key:
490
287
  specification_version: 4
491
288
  summary: Code smell detector for Ruby
492
289
  test_files: []