reek 6.0.1 → 6.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +9 -0
- data/.github/workflows/ruby.yml +52 -0
- data/.rubocop.yml +2 -20
- data/.rubocop_todo.yml +27 -20
- data/CHANGELOG.md +22 -0
- data/CONTRIBUTING.md +3 -0
- data/Dockerfile +1 -1
- data/Gemfile +6 -6
- data/README.md +1 -1
- data/bin/code_climate_reek +2 -3
- data/lib/reek.rb +1 -0
- data/lib/reek/ast/ast_node_class_map.rb +1 -1
- data/lib/reek/ast/node.rb +1 -1
- data/lib/reek/cli/options.rb +1 -1
- data/lib/reek/configuration/app_configuration.rb +4 -3
- data/lib/reek/configuration/directory_directives.rb +2 -2
- data/lib/reek/configuration/excluded_paths.rb +2 -1
- data/lib/reek/context/code_context.rb +1 -1
- data/lib/reek/context/module_context.rb +3 -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_configuration.yml +1 -1
- 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_detectors/boolean_parameter.rb +3 -1
- data/lib/reek/smell_detectors/uncommunicative_variable_name.rb +1 -1
- data/lib/reek/smell_warning.rb +2 -3
- data/lib/reek/source/source_locator.rb +14 -13
- data/lib/reek/version.rb +1 -1
- data/reek.gemspec +14 -3
- metadata +29 -232
- data/.travis.yml +0 -36
- 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 -17
- data/spec/quality/documentation_spec.rb +0 -40
- 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 -19
- data/tasks/console.rake +0 -5
- data/tasks/reek.rake +0 -6
- data/tasks/rubocop.rake +0 -11
- 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
|
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
|
@@ -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
|
-
|
26
|
+
BOOLEAN_VALUES.include?(value.type)
|
25
27
|
end.map do |parameter, _value|
|
26
28
|
smell_warning(
|
27
29
|
lines: [source_line],
|
data/lib/reek/smell_warning.rb
CHANGED
@@ -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: '',
|
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 =
|
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
|
-
|
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
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
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
|
-
|
66
|
+
path_excluded?(path)
|
66
67
|
end
|
67
68
|
end
|
68
69
|
|
data/lib/reek/version.rb
CHANGED
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 =
|
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', '
|
24
|
-
s.add_runtime_dependency 'psych', '
|
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.
|
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:
|
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:
|
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:
|
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:
|
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:
|
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
|
-
|
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.
|
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: []
|