reek 6.0.2 → 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.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +9 -0
- data/.github/workflows/ruby.yml +52 -0
- data/.rubocop_todo.yml +6 -4
- data/CHANGELOG.md +10 -0
- data/CONTRIBUTING.md +3 -0
- data/Dockerfile +1 -1
- data/Gemfile +6 -6
- data/lib/reek/ast/ast_node_class_map.rb +1 -1
- data/lib/reek/ast/node.rb +1 -1
- data/lib/reek/configuration/excluded_paths.rb +2 -1
- data/lib/reek/context/code_context.rb +1 -1
- data/lib/reek/context/refinement_context.rb +16 -0
- data/lib/reek/context_builder.rb +16 -2
- data/lib/reek/report/code_climate/code_climate_formatter.rb +1 -3
- data/lib/reek/smell_detectors/base_detector.rb +1 -1
- data/lib/reek/smell_warning.rb +1 -1
- data/lib/reek/source/source_locator.rb +1 -3
- data/lib/reek/version.rb +1 -1
- data/reek.gemspec +5 -2
- metadata +13 -227
- data/.travis.yml +0 -40
- data/docs/API.md +0 -174
- data/docs/Attribute.md +0 -39
- data/docs/Basic-Smell-Options.md +0 -85
- data/docs/Boolean-Parameter.md +0 -54
- data/docs/Class-Variable.md +0 -40
- data/docs/Code-Smells.md +0 -39
- data/docs/Command-Line-Options.md +0 -119
- data/docs/Control-Couple.md +0 -26
- data/docs/Control-Parameter.md +0 -32
- data/docs/Data-Clump.md +0 -46
- data/docs/Duplicate-Method-Call.md +0 -264
- data/docs/Feature-Envy.md +0 -93
- data/docs/How-To-Write-New-Detectors.md +0 -132
- data/docs/How-reek-works-internally.md +0 -114
- data/docs/Instance-Variable-Assumption.md +0 -163
- data/docs/Irresponsible-Module.md +0 -47
- data/docs/Large-Class.md +0 -16
- data/docs/Long-Parameter-List.md +0 -39
- data/docs/Long-Yield-List.md +0 -37
- data/docs/Manual-Dispatch.md +0 -30
- data/docs/Missing-Safe-Method.md +0 -92
- data/docs/Module-Initialize.md +0 -62
- data/docs/Nested-Iterators.md +0 -59
- data/docs/Nil-Check.md +0 -47
- data/docs/RSpec-matchers.md +0 -129
- data/docs/Rake-Task.md +0 -66
- data/docs/Reek-4-to-Reek-5-migration.md +0 -188
- data/docs/Reek-Driven-Development.md +0 -46
- data/docs/Repeated-Conditional.md +0 -47
- data/docs/Simulated-Polymorphism.md +0 -16
- data/docs/Smell-Suppression.md +0 -96
- data/docs/Style-Guide.md +0 -19
- data/docs/Subclassed-From-Core-Class.md +0 -79
- data/docs/Too-Many-Constants.md +0 -37
- data/docs/Too-Many-Instance-Variables.md +0 -43
- data/docs/Too-Many-Methods.md +0 -56
- data/docs/Too-Many-Statements.md +0 -54
- data/docs/Uncommunicative-Method-Name.md +0 -94
- data/docs/Uncommunicative-Module-Name.md +0 -92
- data/docs/Uncommunicative-Name.md +0 -18
- data/docs/Uncommunicative-Parameter-Name.md +0 -90
- data/docs/Uncommunicative-Variable-Name.md +0 -96
- data/docs/Unused-Parameters.md +0 -28
- data/docs/Unused-Private-Method.md +0 -101
- data/docs/Utility-Function.md +0 -56
- data/docs/Versioning-Policy.md +0 -7
- data/docs/YAML-Reports.md +0 -93
- data/docs/defaults.reek.yml +0 -129
- data/docs/templates/default/docstring/html/public_api_marker.erb +0 -3
- data/docs/templates/default/docstring/setup.rb +0 -37
- data/docs/templates/default/fulldoc/html/css/common.css +0 -1
- data/docs/yard_plugin.rb +0 -17
- data/features/command_line_interface/basic_usage.feature +0 -15
- data/features/command_line_interface/options.feature +0 -123
- data/features/command_line_interface/show_progress.feature +0 -33
- data/features/command_line_interface/smell_selection.feature +0 -15
- data/features/command_line_interface/smells_count.feature +0 -38
- data/features/command_line_interface/stdin.feature +0 -65
- data/features/configuration_files/accept_setting.feature +0 -87
- data/features/configuration_files/directory_specific_directives.feature +0 -274
- data/features/configuration_files/exclude_directives.feature +0 -35
- data/features/configuration_files/exclude_paths_directives.feature +0 -42
- data/features/configuration_files/masking_smells.feature +0 -94
- data/features/configuration_files/mix_accept_reject_setting.feature +0 -84
- data/features/configuration_files/reject_setting.feature +0 -89
- data/features/configuration_files/schema_validation.feature +0 -59
- data/features/configuration_files/show_configuration_file.feature +0 -44
- data/features/configuration_files/unused_private_method.feature +0 -68
- data/features/configuration_loading.feature +0 -91
- data/features/configuration_via_source_comments/erroneous_source_comments.feature +0 -68
- data/features/configuration_via_source_comments/well_formed_source_comments.feature +0 -116
- data/features/locales.feature +0 -32
- data/features/programmatic_access.feature +0 -41
- data/features/rake_task/rake_task.feature +0 -138
- data/features/reports/codeclimate.feature +0 -59
- data/features/reports/json.feature +0 -59
- data/features/reports/reports.feature +0 -219
- data/features/reports/yaml.feature +0 -52
- data/features/rspec_matcher.feature +0 -41
- data/features/samples.feature +0 -305
- data/features/step_definitions/.rubocop.yml +0 -5
- data/features/step_definitions/reek_steps.rb +0 -102
- data/features/step_definitions/sample_file_steps.rb +0 -63
- data/features/support/env.rb +0 -33
- data/features/todo_list.feature +0 -108
- data/samples/checkstyle.xml +0 -7
- data/samples/clean_source/clean.rb +0 -6
- data/samples/configuration/accepts_rejects_and_excludes_for_detectors.reek.yml +0 -29
- data/samples/configuration/accepts_rejects_and_excludes_for_directory_directives.reek.yml +0 -30
- data/samples/configuration/corrupt.reek +0 -1
- data/samples/configuration/empty.reek +0 -0
- data/samples/configuration/full_configuration.reek +0 -13
- data/samples/configuration/full_mask.reek +0 -6
- data/samples/configuration/home/home.reek.yml +0 -4
- data/samples/configuration/partial_mask.reek +0 -4
- data/samples/configuration/regular_configuration/.reek.yml +0 -4
- data/samples/configuration/regular_configuration/empty_sub_directory/.gitignore +0 -0
- data/samples/configuration/with_excluded_paths.reek +0 -5
- data/samples/no_config_file/.keep +0 -0
- data/samples/paths.rb +0 -5
- data/samples/smelly_source/inline.rb +0 -704
- data/samples/smelly_source/optparse.rb +0 -1788
- data/samples/smelly_source/redcloth.rb +0 -1130
- data/samples/smelly_source/ruby.rb +0 -368
- data/samples/smelly_source/smelly.rb +0 -7
- data/samples/source_with_exclude_paths/ignore_me/uncommunicative_method_name.rb +0 -5
- data/samples/source_with_exclude_paths/nested/ignore_me_as_well/irresponsible_module.rb +0 -2
- data/samples/source_with_exclude_paths/nested/uncommunicative_parameter_name.rb +0 -6
- data/samples/source_with_exclude_paths/nested/uncommunicative_variable_name.rb +0 -6
- data/samples/source_with_hidden_directories/.hidden/hidden.rb +0 -1
- data/samples/source_with_hidden_directories/not_hidden.rb +0 -1
- data/samples/source_with_non_ruby_files/gibberish +0 -1
- data/samples/source_with_non_ruby_files/python_source.py +0 -1
- data/samples/source_with_non_ruby_files/ruby.rb +0 -6
- data/spec/performance/reek/smell_detectors/runtime_speed_spec.rb +0 -15
- data/spec/quality/documentation_spec.rb +0 -41
- data/spec/quality/reek_source_spec.rb +0 -11
- data/spec/reek/ast/node_spec.rb +0 -211
- data/spec/reek/ast/object_refs_spec.rb +0 -83
- data/spec/reek/ast/reference_collector_spec.rb +0 -47
- data/spec/reek/ast/sexp_extensions_spec.rb +0 -498
- data/spec/reek/cli/application_spec.rb +0 -168
- data/spec/reek/cli/command/report_command_spec.rb +0 -44
- data/spec/reek/cli/command/todo_list_command_spec.rb +0 -86
- data/spec/reek/cli/options_spec.rb +0 -51
- data/spec/reek/cli/silencer_spec.rb +0 -28
- data/spec/reek/code_comment_spec.rb +0 -184
- data/spec/reek/configuration/app_configuration_spec.rb +0 -195
- data/spec/reek/configuration/configuration_file_finder_spec.rb +0 -230
- data/spec/reek/configuration/default_directive_spec.rb +0 -13
- data/spec/reek/configuration/directory_directives_spec.rb +0 -122
- data/spec/reek/configuration/excluded_paths_spec.rb +0 -16
- data/spec/reek/configuration/rake_task_converter_spec.rb +0 -33
- data/spec/reek/configuration/schema_validator_spec.rb +0 -165
- data/spec/reek/context/code_context_spec.rb +0 -192
- data/spec/reek/context/ghost_context_spec.rb +0 -60
- data/spec/reek/context/method_context_spec.rb +0 -72
- data/spec/reek/context/module_context_spec.rb +0 -55
- data/spec/reek/context/root_context_spec.rb +0 -12
- data/spec/reek/context/statement_counter_spec.rb +0 -24
- data/spec/reek/context_builder_spec.rb +0 -457
- data/spec/reek/detector_repository_spec.rb +0 -22
- data/spec/reek/documentation_link_spec.rb +0 -20
- data/spec/reek/errors/base_error_spec.rb +0 -13
- data/spec/reek/examiner_spec.rb +0 -309
- data/spec/reek/logging_error_handler_spec.rb +0 -24
- data/spec/reek/rake/task_spec.rb +0 -56
- data/spec/reek/report/code_climate/code_climate_configuration_spec.rb +0 -22
- data/spec/reek/report/code_climate/code_climate_fingerprint_spec.rb +0 -126
- data/spec/reek/report/code_climate/code_climate_formatter_spec.rb +0 -51
- data/spec/reek/report/code_climate/code_climate_report_spec.rb +0 -56
- data/spec/reek/report/html_report_spec.rb +0 -19
- data/spec/reek/report/json_report_spec.rb +0 -58
- data/spec/reek/report/location_formatter_spec.rb +0 -32
- data/spec/reek/report/progress_formatter_spec.rb +0 -68
- data/spec/reek/report/text_report_spec.rb +0 -89
- data/spec/reek/report/xml_report_spec.rb +0 -24
- data/spec/reek/report/yaml_report_spec.rb +0 -55
- data/spec/reek/report_spec.rb +0 -28
- data/spec/reek/smell_configuration_spec.rb +0 -56
- data/spec/reek/smell_detectors/attribute_spec.rb +0 -197
- data/spec/reek/smell_detectors/base_detector_spec.rb +0 -50
- data/spec/reek/smell_detectors/boolean_parameter_spec.rb +0 -93
- data/spec/reek/smell_detectors/class_variable_spec.rb +0 -106
- data/spec/reek/smell_detectors/control_parameter_spec.rb +0 -300
- data/spec/reek/smell_detectors/data_clump_spec.rb +0 -134
- data/spec/reek/smell_detectors/duplicate_method_call_spec.rb +0 -211
- data/spec/reek/smell_detectors/feature_envy_spec.rb +0 -295
- data/spec/reek/smell_detectors/instance_variable_assumption_spec.rb +0 -96
- data/spec/reek/smell_detectors/irresponsible_module_spec.rb +0 -226
- data/spec/reek/smell_detectors/long_parameter_list_spec.rb +0 -61
- data/spec/reek/smell_detectors/long_yield_list_spec.rb +0 -49
- data/spec/reek/smell_detectors/manual_dispatch_spec.rb +0 -75
- data/spec/reek/smell_detectors/missing_safe_method_spec.rb +0 -68
- data/spec/reek/smell_detectors/module_initialize_spec.rb +0 -77
- data/spec/reek/smell_detectors/nested_iterators_spec.rb +0 -333
- data/spec/reek/smell_detectors/nil_check_spec.rb +0 -100
- data/spec/reek/smell_detectors/repeated_conditional_spec.rb +0 -100
- data/spec/reek/smell_detectors/subclassed_from_core_class_spec.rb +0 -77
- data/spec/reek/smell_detectors/too_many_constants_spec.rb +0 -144
- data/spec/reek/smell_detectors/too_many_instance_variables_spec.rb +0 -132
- data/spec/reek/smell_detectors/too_many_methods_spec.rb +0 -54
- data/spec/reek/smell_detectors/too_many_statements_spec.rb +0 -90
- data/spec/reek/smell_detectors/uncommunicative_method_name_spec.rb +0 -78
- data/spec/reek/smell_detectors/uncommunicative_module_name_spec.rb +0 -78
- data/spec/reek/smell_detectors/uncommunicative_parameter_name_spec.rb +0 -147
- data/spec/reek/smell_detectors/uncommunicative_variable_name_spec.rb +0 -201
- data/spec/reek/smell_detectors/unused_parameters_spec.rb +0 -114
- data/spec/reek/smell_detectors/unused_private_method_spec.rb +0 -205
- data/spec/reek/smell_detectors/utility_function_spec.rb +0 -293
- data/spec/reek/smell_warning_spec.rb +0 -137
- data/spec/reek/source/source_code_spec.rb +0 -79
- data/spec/reek/source/source_locator_spec.rb +0 -166
- data/spec/reek/spec/should_reek_of_spec.rb +0 -153
- data/spec/reek/spec/should_reek_only_of_spec.rb +0 -91
- data/spec/reek/spec/should_reek_spec.rb +0 -52
- data/spec/reek/spec/smell_matcher_spec.rb +0 -87
- data/spec/reek/tree_dresser_spec.rb +0 -46
- data/spec/spec_helper.rb +0 -110
- data/tasks/configuration.rake +0 -18
- data/tasks/console.rake +0 -5
- data/tasks/reek.rake +0 -6
- data/tasks/rubocop.rake +0 -11
- data/tasks/test.rake +0 -32
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.
|
|
4
|
+
version: 6.0.4
|
|
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:
|
|
14
|
+
date: 2021-04-27 00:00:00.000000000 Z
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
17
|
name: kwalify
|
|
@@ -31,28 +31,16 @@ dependencies:
|
|
|
31
31
|
name: parser
|
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
|
33
33
|
requirements:
|
|
34
|
-
- - "
|
|
35
|
-
- !ruby/object:Gem::Version
|
|
36
|
-
version: '2.8'
|
|
37
|
-
- - ">="
|
|
38
|
-
- !ruby/object:Gem::Version
|
|
39
|
-
version: 2.5.0.0
|
|
40
|
-
- - "!="
|
|
34
|
+
- - "~>"
|
|
41
35
|
- !ruby/object:Gem::Version
|
|
42
|
-
version:
|
|
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.8'
|
|
50
|
-
- - ">="
|
|
51
|
-
- !ruby/object:Gem::Version
|
|
52
|
-
version: 2.5.0.0
|
|
53
|
-
- - "!="
|
|
41
|
+
- - "~>"
|
|
54
42
|
- !ruby/object:Gem::Version
|
|
55
|
-
version:
|
|
43
|
+
version: 3.0.0
|
|
56
44
|
- !ruby/object:Gem::Dependency
|
|
57
45
|
name: psych
|
|
58
46
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -100,12 +88,13 @@ extra_rdoc_files:
|
|
|
100
88
|
- License.txt
|
|
101
89
|
files:
|
|
102
90
|
- ".dockerignore"
|
|
91
|
+
- ".github/dependabot.yml"
|
|
92
|
+
- ".github/workflows/ruby.yml"
|
|
103
93
|
- ".gitignore"
|
|
104
94
|
- ".reek.yml"
|
|
105
95
|
- ".rubocop.yml"
|
|
106
96
|
- ".rubocop_todo.yml"
|
|
107
97
|
- ".simplecov"
|
|
108
|
-
- ".travis.yml"
|
|
109
98
|
- ".yardopts"
|
|
110
99
|
- CHANGELOG.md
|
|
111
100
|
- CONTRIBUTING.md
|
|
@@ -116,92 +105,7 @@ files:
|
|
|
116
105
|
- Rakefile
|
|
117
106
|
- bin/code_climate_reek
|
|
118
107
|
- 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
108
|
- 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
109
|
- lib/reek.rb
|
|
206
110
|
- lib/reek/ast/ast_node_class_map.rb
|
|
207
111
|
- lib/reek/ast/builder.rb
|
|
@@ -251,6 +155,7 @@ files:
|
|
|
251
155
|
- lib/reek/context/ghost_context.rb
|
|
252
156
|
- lib/reek/context/method_context.rb
|
|
253
157
|
- lib/reek/context/module_context.rb
|
|
158
|
+
- lib/reek/context/refinement_context.rb
|
|
254
159
|
- lib/reek/context/root_context.rb
|
|
255
160
|
- lib/reek/context/send_context.rb
|
|
256
161
|
- lib/reek/context/singleton_attribute_context.rb
|
|
@@ -343,125 +248,6 @@ files:
|
|
|
343
248
|
- logo/reek.text.png
|
|
344
249
|
- logo/reek.text.svg
|
|
345
250
|
- 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
251
|
homepage: https://github.com/troessner/reek
|
|
466
252
|
licenses:
|
|
467
253
|
- MIT
|
|
@@ -471,7 +257,7 @@ metadata:
|
|
|
471
257
|
bug_tracker_uri: https://github.com/troessner/reek/issues
|
|
472
258
|
changelog_uri: https://github.com/troessner/reek/CHANGELOG.md
|
|
473
259
|
documentation_uri: https://www.rubydoc.info/gems/reek
|
|
474
|
-
post_install_message:
|
|
260
|
+
post_install_message:
|
|
475
261
|
rdoc_options:
|
|
476
262
|
- "--main"
|
|
477
263
|
- README.md
|
|
@@ -490,8 +276,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
490
276
|
- !ruby/object:Gem::Version
|
|
491
277
|
version: '0'
|
|
492
278
|
requirements: []
|
|
493
|
-
rubygems_version: 3.
|
|
494
|
-
signing_key:
|
|
279
|
+
rubygems_version: 3.2.3
|
|
280
|
+
signing_key:
|
|
495
281
|
specification_version: 4
|
|
496
282
|
summary: Code smell detector for Ruby
|
|
497
283
|
test_files: []
|
data/.travis.yml
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
language: ruby
|
|
2
|
-
|
|
3
|
-
dist: xenial
|
|
4
|
-
|
|
5
|
-
cache:
|
|
6
|
-
bundler: true
|
|
7
|
-
|
|
8
|
-
bundler_args: --without debugging
|
|
9
|
-
|
|
10
|
-
script: bundle exec rake ci
|
|
11
|
-
|
|
12
|
-
rvm:
|
|
13
|
-
- 2.4
|
|
14
|
-
- 2.5
|
|
15
|
-
- 2.6
|
|
16
|
-
- 2.7
|
|
17
|
-
- jruby-9.2
|
|
18
|
-
- jruby-head
|
|
19
|
-
- ruby-head
|
|
20
|
-
|
|
21
|
-
matrix:
|
|
22
|
-
allow_failures:
|
|
23
|
-
- rvm: jruby-head
|
|
24
|
-
- rvm: ruby-head
|
|
25
|
-
fast_finish: true
|
|
26
|
-
|
|
27
|
-
notifications:
|
|
28
|
-
email:
|
|
29
|
-
- timo.roessner@googlemail.com
|
|
30
|
-
- matijs@matijs.net
|
|
31
|
-
- chastell@chastell.net
|
|
32
|
-
irc: irc.freenode.org#reek
|
|
33
|
-
|
|
34
|
-
branches:
|
|
35
|
-
only:
|
|
36
|
-
- master
|
|
37
|
-
|
|
38
|
-
env:
|
|
39
|
-
global:
|
|
40
|
-
- JRUBY_OPTS="--dev"
|
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.
|
data/docs/Attribute.md
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# Attribute
|
|
2
|
-
|
|
3
|
-
## Introduction
|
|
4
|
-
|
|
5
|
-
A class that publishes a setter for an instance variable invites
|
|
6
|
-
client classes to become too intimate with its inner workings, and in
|
|
7
|
-
particular with its representation of state.
|
|
8
|
-
|
|
9
|
-
The same holds to a lesser extent for getters, but Reek doesn't flag those.
|
|
10
|
-
|
|
11
|
-
## Example
|
|
12
|
-
|
|
13
|
-
Given:
|
|
14
|
-
|
|
15
|
-
```Ruby
|
|
16
|
-
class Klass
|
|
17
|
-
attr_accessor :dummy
|
|
18
|
-
end
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Reek would emit the following warning:
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
reek test.rb
|
|
25
|
-
|
|
26
|
-
test.rb -- 1 warning:
|
|
27
|
-
[2]:Attribute: Klass#dummy is a writable attribute
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Support in Reek
|
|
31
|
-
|
|
32
|
-
This detector raises a warning for every public `attr_writer`,
|
|
33
|
-
`attr_accessor`, and `attr` with the writable flag set to `true`.
|
|
34
|
-
|
|
35
|
-
Reek does not raise warnings for read-only attributes.
|
|
36
|
-
|
|
37
|
-
## Configuration
|
|
38
|
-
|
|
39
|
-
_Attribute_ supports only the [Basic Smell Options](Basic-Smell-Options.md).
|
data/docs/Basic-Smell-Options.md
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# Basic Smell Options
|
|
2
|
-
|
|
3
|
-
## Introduction
|
|
4
|
-
|
|
5
|
-
Every smell detector in Reek offers at least the following configuration options:
|
|
6
|
-
|
|
7
|
-
| Option | Value | Effect |
|
|
8
|
-
| ---------------|-------------|---------|
|
|
9
|
-
| `enabled` | Boolean | Determines whether the smell detector is active. Defaults to `true` |
|
|
10
|
-
| `exclude` | an array of strings that will be converted into regular expressions | Ignores any context whose full description matches any element of this array. |
|
|
11
|
-
|
|
12
|
-
The file `docs/defaults.reek.yml` (shipped with the Reek gem) lists any default
|
|
13
|
-
exclusions for each smell.
|
|
14
|
-
|
|
15
|
-
## Examples
|
|
16
|
-
|
|
17
|
-
**An easy one:**
|
|
18
|
-
|
|
19
|
-
To stop Reek reporting smells in any method called `write` you might create a configuration file containing this:
|
|
20
|
-
|
|
21
|
-
```yaml
|
|
22
|
-
DuplicateMethodCall:
|
|
23
|
-
exclude:
|
|
24
|
-
- write
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Internally Reek will convert this to the Regexp /write/.
|
|
28
|
-
|
|
29
|
-
**A more sophisticated one:**
|
|
30
|
-
|
|
31
|
-
```yaml
|
|
32
|
-
FeatureEnvy:
|
|
33
|
-
exclude:
|
|
34
|
-
- "MyModel#do_things"
|
|
35
|
-
- "MyHelper"
|
|
36
|
-
- "ApplicationController#respond"
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
This would not report FeatureEnvy for the instance method `MyModel#do_things`, the whole module `MyHelper` and the `respond` instance method of `ApplicationController`
|
|
40
|
-
|
|
41
|
-
## Advanced configuration
|
|
42
|
-
|
|
43
|
-
Sometimes just strings are not enough for configuration. E.g. consider this code sample:
|
|
44
|
-
|
|
45
|
-
```Ruby
|
|
46
|
-
class Klass
|
|
47
|
-
def foo1; end
|
|
48
|
-
def foo1bar; end
|
|
49
|
-
end
|
|
50
|
-
```
|
|
51
|
-
Both "Klass#foo1" and "Klass#foo1bar" will smell of UncommunicativeMethodName. Now let's assume
|
|
52
|
-
you are ok with "Klass#foo1" but not "Klass#foo1bar".
|
|
53
|
-
Just having this configuration
|
|
54
|
-
|
|
55
|
-
```yaml
|
|
56
|
-
UncommunicativeMethodName:
|
|
57
|
-
exclude:
|
|
58
|
-
- "Klass#foo1"
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
wouldn't work because now "Klass#foo1bar" wouldn't smell as well.
|
|
62
|
-
|
|
63
|
-
For this reason Reek has a special syntax that allows you to use regexes by using a forward slash at the beginning and the end of the string.
|
|
64
|
-
Everything within the forward slashes will be loaded as a regex.
|
|
65
|
-
|
|
66
|
-
A possible configuration that hat excludes "Klass#foo1" from this scan but not "Klass#foo1bar" could look like this:
|
|
67
|
-
|
|
68
|
-
```yaml
|
|
69
|
-
UncommunicativeMethodName:
|
|
70
|
-
exclude:
|
|
71
|
-
- "/Klass#foo1$/"
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## Reek 4
|
|
75
|
-
|
|
76
|
-
In Reek 4 you could also pass regexes to `exclude`, meaning this was perfectly valid as well:
|
|
77
|
-
|
|
78
|
-
```yaml
|
|
79
|
-
DuplicateMethodCall:
|
|
80
|
-
exclude:
|
|
81
|
-
- !ruby/regexp /write/
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
Support for this has been scrapped with Reek 5 to make the Reek configuration more yaml standard compliant.
|
|
85
|
-
You can still pass in regexes, you just have to wrap them into a string. Please see "Advanced configuration" above.
|