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
data/features/todo_list.feature
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
Feature: Auto-generate a todo file
|
|
2
|
-
Write a Reek configuration as a kind of todo list that will prevent Reek
|
|
3
|
-
from reporting smells on the current code. This can then be worked on later on.
|
|
4
|
-
The main goal here would be to ease the Reek adoption by allowing developers to
|
|
5
|
-
introduce Reek right away (e.g. for CI), exclude the "old" smells from getting reported
|
|
6
|
-
and then fix them step by step.
|
|
7
|
-
|
|
8
|
-
Scenario: Generate the default configuration file that disables all found smells
|
|
9
|
-
Given the smelly file 'smelly.rb'
|
|
10
|
-
When I run reek smelly.rb
|
|
11
|
-
Then the exit status indicates smells
|
|
12
|
-
And it reports:
|
|
13
|
-
"""
|
|
14
|
-
smelly.rb -- 2 warnings:
|
|
15
|
-
[4]:UncommunicativeMethodName: Smelly#x has the name 'x'
|
|
16
|
-
[5]:UncommunicativeVariableName: Smelly#x has the variable name 'y'
|
|
17
|
-
"""
|
|
18
|
-
When I run reek --todo smelly.rb
|
|
19
|
-
Then it succeeds
|
|
20
|
-
And it reports:
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
|
-
'.reek.yml' generated! You can now use this as a starting point.
|
|
24
|
-
"""
|
|
25
|
-
And a file named ".reek.yml" should exist
|
|
26
|
-
And the file ".reek.yml" should contain:
|
|
27
|
-
"""
|
|
28
|
-
---
|
|
29
|
-
detectors:
|
|
30
|
-
UncommunicativeMethodName:
|
|
31
|
-
exclude:
|
|
32
|
-
- Smelly#x
|
|
33
|
-
UncommunicativeVariableName:
|
|
34
|
-
exclude:
|
|
35
|
-
- Smelly#x
|
|
36
|
-
"""
|
|
37
|
-
When I run reek smelly.rb
|
|
38
|
-
Then it succeeds
|
|
39
|
-
|
|
40
|
-
Scenario: Reacts appropiately when there are no smells
|
|
41
|
-
Given the clean file "clean.rb"
|
|
42
|
-
When I run reek --todo clean.rb
|
|
43
|
-
Then a file named ".reek.yml" should not exist
|
|
44
|
-
And it reports:
|
|
45
|
-
"""
|
|
46
|
-
|
|
47
|
-
No smells found - nothing to do, exiting.
|
|
48
|
-
"""
|
|
49
|
-
|
|
50
|
-
Scenario: Don't overwrite existing .reek.yml files
|
|
51
|
-
Given the smelly file 'smelly.rb'
|
|
52
|
-
And a file named ".reek.yml" with:
|
|
53
|
-
"""
|
|
54
|
-
---
|
|
55
|
-
detectors:
|
|
56
|
-
UncommunicativeMethodName:
|
|
57
|
-
enabled: false
|
|
58
|
-
"""
|
|
59
|
-
When I run reek smelly.rb
|
|
60
|
-
Then it reports:
|
|
61
|
-
"""
|
|
62
|
-
smelly.rb -- 1 warning:
|
|
63
|
-
[5]:UncommunicativeVariableName: Smelly#x has the variable name 'y'
|
|
64
|
-
"""
|
|
65
|
-
When I run reek --todo smelly.rb
|
|
66
|
-
Then it reports:
|
|
67
|
-
"""
|
|
68
|
-
|
|
69
|
-
Existing '.reek.yml' detected - aborting.
|
|
70
|
-
"""
|
|
71
|
-
When I run reek smelly.rb
|
|
72
|
-
Then it reports:
|
|
73
|
-
"""
|
|
74
|
-
smelly.rb -- 1 warning:
|
|
75
|
-
[5]:UncommunicativeVariableName: Smelly#x has the variable name 'y'
|
|
76
|
-
"""
|
|
77
|
-
|
|
78
|
-
Scenario: Ignore existing other configuration files that are passed explicitly
|
|
79
|
-
Given the smelly file 'smelly.rb'
|
|
80
|
-
And a file named "config.reek" with:
|
|
81
|
-
"""
|
|
82
|
-
---
|
|
83
|
-
detectors:
|
|
84
|
-
UncommunicativeMethodName:
|
|
85
|
-
enabled: false
|
|
86
|
-
"""
|
|
87
|
-
When I run reek -c config.reek smelly.rb
|
|
88
|
-
Then it reports:
|
|
89
|
-
"""
|
|
90
|
-
smelly.rb -- 1 warning:
|
|
91
|
-
[5]:UncommunicativeVariableName: Smelly#x has the variable name 'y'
|
|
92
|
-
"""
|
|
93
|
-
When I run reek -c config.reek --todo smelly.rb
|
|
94
|
-
Then it succeeds
|
|
95
|
-
And a file named ".reek.yml" should exist
|
|
96
|
-
And the file ".reek.yml" should contain:
|
|
97
|
-
"""
|
|
98
|
-
---
|
|
99
|
-
detectors:
|
|
100
|
-
UncommunicativeMethodName:
|
|
101
|
-
exclude:
|
|
102
|
-
- Smelly#x
|
|
103
|
-
UncommunicativeVariableName:
|
|
104
|
-
exclude:
|
|
105
|
-
- Smelly#x
|
|
106
|
-
"""
|
|
107
|
-
When I run reek smelly.rb
|
|
108
|
-
Then it reports nothing
|
data/samples/checkstyle.xml
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<?xml version='1.0'?>
|
|
2
|
-
<checkstyle>
|
|
3
|
-
<file name='samples/smelly_source/smelly.rb'>
|
|
4
|
-
<error column='0' line='4' message='has the name 'x'' severity='warning' source='UncommunicativeMethodName'/>
|
|
5
|
-
<error column='0' line='5' message='has the variable name 'y'' severity='warning' source='UncommunicativeVariableName'/>
|
|
6
|
-
</file>
|
|
7
|
-
</checkstyle>
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
detectors:
|
|
3
|
-
UnusedPrivateMethod:
|
|
4
|
-
exclude:
|
|
5
|
-
- "/exclude regexp/"
|
|
6
|
-
UncommunicativeMethodName:
|
|
7
|
-
reject:
|
|
8
|
-
- "reject name"
|
|
9
|
-
accept:
|
|
10
|
-
- "accept name"
|
|
11
|
-
UncommunicativeModuleName:
|
|
12
|
-
reject:
|
|
13
|
-
- "reject name 1"
|
|
14
|
-
- "reject name 2"
|
|
15
|
-
accept:
|
|
16
|
-
- "accept name 1"
|
|
17
|
-
- "accept name 2"
|
|
18
|
-
UncommunicativeParameterName:
|
|
19
|
-
reject:
|
|
20
|
-
- "reject name"
|
|
21
|
-
- "/reject regexp/"
|
|
22
|
-
accept:
|
|
23
|
-
- "accept name"
|
|
24
|
-
- "/accept regexp/"
|
|
25
|
-
UncommunicativeVariableName:
|
|
26
|
-
reject:
|
|
27
|
-
- "/^reject regexp$/"
|
|
28
|
-
accept:
|
|
29
|
-
- "/accept(.*)regexp/"
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
directories:
|
|
3
|
-
"app/controllers":
|
|
4
|
-
UnusedPrivateMethod:
|
|
5
|
-
exclude:
|
|
6
|
-
- "/exclude regexp/"
|
|
7
|
-
UncommunicativeMethodName:
|
|
8
|
-
reject:
|
|
9
|
-
- "reject name"
|
|
10
|
-
accept:
|
|
11
|
-
- "accept name"
|
|
12
|
-
UncommunicativeModuleName:
|
|
13
|
-
reject:
|
|
14
|
-
- "reject name 1"
|
|
15
|
-
- "reject name 2"
|
|
16
|
-
accept:
|
|
17
|
-
- "accept name 1"
|
|
18
|
-
- "accept name 2"
|
|
19
|
-
UncommunicativeParameterName:
|
|
20
|
-
reject:
|
|
21
|
-
- "reject name"
|
|
22
|
-
- "/reject regexp/"
|
|
23
|
-
accept:
|
|
24
|
-
- "accept name"
|
|
25
|
-
- "/accept regexp/"
|
|
26
|
-
UncommunicativeVariableName:
|
|
27
|
-
reject:
|
|
28
|
-
- "/^reject regexp$/"
|
|
29
|
-
accept:
|
|
30
|
-
- "/accept(.*)regexp/"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Not a valid configuration file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/samples/paths.rb
DELETED