reek 6.0.2 → 6.5.0
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 +13 -0
- data/.github/workflows/ruby.yml +58 -0
- data/.gitignore +0 -1
- data/.rubocop.yml +7 -20
- data/.rubocop_todo.yml +6 -4
- data/.simplecov +2 -0
- data/CHANGELOG.md +114 -0
- data/CONTRIBUTING.md +10 -10
- data/Dockerfile +1 -1
- data/Gemfile +17 -24
- data/README.md +38 -40
- data/Rakefile +2 -0
- data/bin/code_climate_reek +56 -8
- data/docs/yard_plugin.rb +3 -1
- data/lib/reek/ast/ast_node_class_map.rb +1 -1
- data/lib/reek/ast/node.rb +16 -10
- data/lib/reek/ast/sexp_extensions/arguments.rb +20 -0
- data/lib/reek/ast/sexp_extensions/case.rb +1 -1
- data/lib/reek/ast/sexp_extensions/if.rb +1 -1
- data/lib/reek/ast/sexp_extensions/send.rb +22 -7
- data/lib/reek/cli/command/todo_list_command.rb +3 -3
- data/lib/reek/cli/options.rb +8 -8
- data/lib/reek/{report/code_climate → code_climate}/code_climate_configuration.rb +1 -1
- data/lib/reek/{report/code_climate → code_climate}/code_climate_configuration.yml +41 -41
- data/lib/reek/{report/code_climate → code_climate}/code_climate_fingerprint.rb +2 -2
- data/lib/reek/{report/code_climate → code_climate}/code_climate_formatter.rb +2 -4
- data/lib/reek/{report/code_climate → code_climate}/code_climate_report.rb +3 -3
- data/lib/reek/code_comment.rb +25 -20
- data/lib/reek/configuration/app_configuration.rb +5 -5
- data/lib/reek/configuration/configuration_converter.rb +1 -1
- data/lib/reek/configuration/configuration_file_finder.rb +5 -4
- data/lib/reek/configuration/default_directive.rb +1 -1
- data/lib/reek/configuration/directory_directives.rb +1 -1
- data/lib/reek/configuration/excluded_paths.rb +3 -2
- data/lib/reek/configuration/schema.rb +177 -0
- data/lib/reek/configuration/schema_validator.rb +12 -13
- data/lib/reek/context/attribute_context.rb +1 -1
- data/lib/reek/context/code_context.rb +3 -3
- data/lib/reek/context/method_context.rb +1 -1
- data/lib/reek/context/module_context.rb +4 -0
- data/lib/reek/context/refinement_context.rb +16 -0
- data/lib/reek/context/send_context.rb +7 -1
- data/lib/reek/context_builder.rb +17 -3
- data/lib/reek/documentation_link.rb +3 -5
- data/lib/reek/errors/bad_detector_configuration_key_in_comment_error.rb +2 -2
- data/lib/reek/errors/bad_detector_in_comment_error.rb +2 -2
- data/lib/reek/errors/encoding_error.rb +1 -1
- data/lib/reek/errors/garbage_detector_configuration_in_comment_error.rb +2 -2
- data/lib/reek/errors/incomprehensible_source_error.rb +1 -1
- data/lib/reek/errors/legacy_comment_separator_error.rb +2 -2
- data/lib/reek/errors/syntax_error.rb +1 -1
- data/lib/reek/rake/task.rb +5 -5
- data/lib/reek/report/github_report.rb +55 -0
- data/lib/reek/report/text_report.rb +1 -1
- data/lib/reek/report.rb +7 -5
- data/lib/reek/smell_detectors/base_detector.rb +1 -1
- data/lib/reek/smell_detectors/class_variable.rb +2 -2
- data/lib/reek/smell_detectors/control_parameter_helpers/candidate.rb +6 -6
- data/lib/reek/smell_detectors/control_parameter_helpers/control_parameter_finder.rb +1 -1
- data/lib/reek/smell_detectors/data_clump.rb +1 -1
- data/lib/reek/smell_detectors/duplicate_method_call.rb +5 -5
- data/lib/reek/smell_detectors/instance_variable_assumption.rb +8 -8
- data/lib/reek/smell_detectors/nested_iterators.rb +4 -3
- data/lib/reek/smell_detectors/uncommunicative_module_name.rb +1 -1
- data/lib/reek/smell_detectors/unused_private_method.rb +3 -2
- data/lib/reek/smell_warning.rb +1 -1
- data/lib/reek/source/source_code.rb +11 -5
- data/lib/reek/source/source_locator.rb +1 -3
- data/lib/reek/spec/should_reek_of.rb +11 -9
- data/lib/reek/spec.rb +1 -1
- data/lib/reek/version.rb +2 -2
- data/reek.gemspec +33 -25
- metadata +41 -238
- 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/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/lib/reek/configuration/schema.yml +0 -210
- 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/lib/reek/{report/code_climate.rb → code_climate.rb} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3cd53c902c108773156429c3aacbb8aaa12f7e0c8f22966f833e4ade893ad5ce
|
|
4
|
+
data.tar.gz: 765ece4c34e29251afb173e37616b3be740e8f8035394958d7df5d3d6b4f1473
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: db05cf1c8d8186cd2c1a36e68afe5a628458332e275ef87b0681903f05dbaad1f0d6228aaaa6257cf706d3d07e3efbfaab0f2c9f1c37ebc9284312be942ff182
|
|
7
|
+
data.tar.gz: 4826674e1ac0dffa73f6856403b7254f52f3a066ba75cb4968e5a836d58995229fa3a31d66beece59afa80648506ef310fa15476a97e5283a84303ba710ffa53
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Documentation for all configuration options:
|
|
2
|
+
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
|
3
|
+
|
|
4
|
+
version: 2
|
|
5
|
+
updates:
|
|
6
|
+
- package-ecosystem: "bundler"
|
|
7
|
+
directory: "/"
|
|
8
|
+
schedule:
|
|
9
|
+
interval: "daily"
|
|
10
|
+
- package-ecosystem: "github-actions"
|
|
11
|
+
directory: "/"
|
|
12
|
+
schedule:
|
|
13
|
+
interval: "monthly"
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and
|
|
2
|
+
# run tests with Rake
|
|
3
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
|
4
|
+
|
|
5
|
+
name: CI
|
|
6
|
+
|
|
7
|
+
"on":
|
|
8
|
+
push:
|
|
9
|
+
branches: [master]
|
|
10
|
+
pull_request:
|
|
11
|
+
branches: [master]
|
|
12
|
+
schedule:
|
|
13
|
+
- cron: '16 4 12 * *'
|
|
14
|
+
workflow_dispatch:
|
|
15
|
+
|
|
16
|
+
env:
|
|
17
|
+
CUCUMBER_PUBLISH_QUIET: true
|
|
18
|
+
RUBYOPTS: "--disable-did-you-mean"
|
|
19
|
+
jobs:
|
|
20
|
+
test:
|
|
21
|
+
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
|
|
24
|
+
strategy:
|
|
25
|
+
matrix:
|
|
26
|
+
ruby: ["3.1", "3.2", "jruby-9.4", "3.3", "3.4"]
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v4
|
|
30
|
+
- name: Set up Ruby
|
|
31
|
+
uses: ruby/setup-ruby@v1
|
|
32
|
+
with:
|
|
33
|
+
ruby-version: ${{ matrix.ruby }}
|
|
34
|
+
bundler-cache: true
|
|
35
|
+
- name: Run specs
|
|
36
|
+
run: bundle exec rake test:spec
|
|
37
|
+
- name: Run performance tests
|
|
38
|
+
run: bundle exec rake test:performance
|
|
39
|
+
- name: Update default configuration
|
|
40
|
+
run: bundle exec rake configuration:update_default_configuration
|
|
41
|
+
- name: Run cucumber features
|
|
42
|
+
run: bundle exec rake test:features
|
|
43
|
+
- name: Run code quality specs
|
|
44
|
+
run: bundle exec rake test:quality
|
|
45
|
+
|
|
46
|
+
rubocop:
|
|
47
|
+
|
|
48
|
+
runs-on: ubuntu-latest
|
|
49
|
+
|
|
50
|
+
steps:
|
|
51
|
+
- uses: actions/checkout@v4
|
|
52
|
+
- name: Set up Ruby
|
|
53
|
+
uses: ruby/setup-ruby@v1
|
|
54
|
+
with:
|
|
55
|
+
ruby-version: "3.3"
|
|
56
|
+
bundler-cache: true
|
|
57
|
+
- name: Run RuboCop
|
|
58
|
+
run: bundle exec rubocop -P
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
inherit_from: .rubocop_todo.yml
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
inherit_mode:
|
|
4
|
+
merge:
|
|
5
|
+
- Exclude
|
|
6
|
+
|
|
7
|
+
plugins:
|
|
4
8
|
- rubocop-rspec
|
|
5
9
|
- rubocop-performance
|
|
6
10
|
|
|
7
11
|
AllCops:
|
|
8
12
|
Exclude:
|
|
9
13
|
- 'samples/**/*'
|
|
10
|
-
- 'tmp/**/*'
|
|
11
|
-
- 'vendor/**/*'
|
|
12
14
|
NewCops: enable
|
|
13
|
-
TargetRubyVersion:
|
|
15
|
+
TargetRubyVersion: 3.1
|
|
14
16
|
|
|
15
17
|
# Tables are nice
|
|
16
18
|
Layout/HashAlignment:
|
|
@@ -46,7 +48,7 @@ Layout/MultilineOperationIndentation:
|
|
|
46
48
|
Lint/AmbiguousBlockAssociation:
|
|
47
49
|
Enabled: false
|
|
48
50
|
|
|
49
|
-
# Some of our source examples include interpolation
|
|
51
|
+
# Some of our source examples include interpolation explicitly.
|
|
50
52
|
Lint/InterpolationCheck:
|
|
51
53
|
Exclude:
|
|
52
54
|
- 'spec/**/*'
|
|
@@ -78,25 +80,10 @@ RSpec/DescribeClass:
|
|
|
78
80
|
RSpec/ExampleLength:
|
|
79
81
|
Enabled: false
|
|
80
82
|
|
|
81
|
-
# rubocop-rspec expects a CodeClimate namespace to go with the code_climate directory.
|
|
82
|
-
RSpec/FilePath:
|
|
83
|
-
Exclude:
|
|
84
|
-
- 'spec/reek/report/code_climate/code_climate_configuration_spec.rb'
|
|
85
|
-
- 'spec/reek/report/code_climate/code_climate_fingerprint_spec.rb'
|
|
86
|
-
- 'spec/reek/report/code_climate/code_climate_formatter_spec.rb'
|
|
87
|
-
- 'spec/reek/report/code_climate/code_climate_report_spec.rb'
|
|
88
|
-
|
|
89
83
|
# Allow and/or for control flow only
|
|
90
84
|
Style/AndOr:
|
|
91
85
|
EnforcedStyle: conditionals
|
|
92
86
|
|
|
93
|
-
# Require comment for files in lib and bin
|
|
94
|
-
Style/FrozenStringLiteralComment:
|
|
95
|
-
Include:
|
|
96
|
-
- 'bin/*'
|
|
97
|
-
- 'lib/**/*'
|
|
98
|
-
EnforcedStyle: always
|
|
99
|
-
|
|
100
87
|
# Allow multiline block chains
|
|
101
88
|
Style/MultilineBlockChain:
|
|
102
89
|
Enabled: false
|
data/.rubocop_todo.yml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
2
|
# `rubocop --auto-gen-config`
|
|
3
|
-
# on
|
|
3
|
+
# on 2021-01-03 18:17:11 UTC using RuboCop version 1.7.0.
|
|
4
4
|
# The point is for the user to remove these configuration records
|
|
5
5
|
# one by one as the offenses are removed from the code base.
|
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
|
@@ -13,22 +13,24 @@ Lint/MissingSuper:
|
|
|
13
13
|
- 'lib/reek/smell_detectors/base_detector.rb'
|
|
14
14
|
|
|
15
15
|
# Offense count: 2
|
|
16
|
+
# Configuration parameters: IgnoredPatterns.
|
|
17
|
+
# IgnoredPatterns: (?-mix:(exactly|at_least|at_most)\(\d+\)\.times)
|
|
16
18
|
Lint/UnreachableLoop:
|
|
17
19
|
Exclude:
|
|
18
20
|
- 'spec/reek/ast/node_spec.rb'
|
|
19
21
|
|
|
20
22
|
# Offense count: 2
|
|
21
|
-
# Configuration parameters: IgnoredMethods.
|
|
23
|
+
# Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
|
|
22
24
|
Metrics/AbcSize:
|
|
23
25
|
Max: 21
|
|
24
26
|
|
|
25
27
|
# Offense count: 1
|
|
26
28
|
# Configuration parameters: CountComments, CountAsOne.
|
|
27
29
|
Metrics/ClassLength:
|
|
28
|
-
Max:
|
|
30
|
+
Max: 170
|
|
29
31
|
|
|
30
32
|
# Offense count: 13
|
|
31
|
-
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods.
|
|
33
|
+
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
|
32
34
|
Metrics/MethodLength:
|
|
33
35
|
Max: 16
|
|
34
36
|
|
data/.simplecov
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,119 @@
|
|
|
1
|
+
|
|
1
2
|
# Change log
|
|
2
3
|
|
|
4
|
+
## 6.5.0 (2025-03-24)
|
|
5
|
+
|
|
6
|
+
### Features and bugfixes
|
|
7
|
+
|
|
8
|
+
* Loosen up Gemfile dependencies by [mvz])
|
|
9
|
+
|
|
10
|
+
## 6.4.0 (2025-01-12)
|
|
11
|
+
|
|
12
|
+
### Features and bugfixes
|
|
13
|
+
|
|
14
|
+
* Fix DataClump smell in Reek::AST::Node class ([#1799] by [le-santos])
|
|
15
|
+
|
|
16
|
+
## 6.3.0 (2024-01-28)
|
|
17
|
+
|
|
18
|
+
### Features and bugfixes
|
|
19
|
+
|
|
20
|
+
* Update parser dependency to the 3.3.x series([#1761] by [mvz])
|
|
21
|
+
|
|
22
|
+
## 6.2.0 (2023-12-31)
|
|
23
|
+
|
|
24
|
+
### Features and bugfixes
|
|
25
|
+
|
|
26
|
+
* Code Climate: add config `target_ruby_version` to support different versions
|
|
27
|
+
of Ruby syntax ([#1694] by [dantevvp])
|
|
28
|
+
* Treat `Data.define` as a class definition ([#1725] by [mvz])
|
|
29
|
+
* Fix Instance Variable Assumption false positive ([#1737] by [JuanVqz])
|
|
30
|
+
* Add `Tempfile.create` to ignored iterators list ([#1747] by [mateusdeap])
|
|
31
|
+
* Improve configuration schema validation. This also replaces the kwalify
|
|
32
|
+
dependency with dry-schema ([#1749] by [fbuys])
|
|
33
|
+
|
|
34
|
+
### Dependencies
|
|
35
|
+
|
|
36
|
+
* Add missing dependency rexml ([#1703] by [tricknotes])
|
|
37
|
+
* Drop support for Ruby 2.6 and 2.7 ([#1716] and [#1755] by [mvz])
|
|
38
|
+
* Add support for Ruby 3.3 ([#1756] and [#1755] by [mvz])
|
|
39
|
+
|
|
40
|
+
### Documentation
|
|
41
|
+
|
|
42
|
+
* Fix the badges in our README ([#1711] by [troessner])
|
|
43
|
+
* Remove non working link in CONTRIBUTING.md ([#1738] by [JuanVqz])
|
|
44
|
+
* Add downloads badge ([#1750] by [troessner])
|
|
45
|
+
|
|
46
|
+
### Internal
|
|
47
|
+
|
|
48
|
+
* Rename Code Climate related classes ([#1735] by [mvz])
|
|
49
|
+
* Fix `cucumber_opts` warning ([#1736] by [JuanVqz])
|
|
50
|
+
* Fix editor highlighting for fenced code blocks in documentation ([#1745] by [JuanVqz])
|
|
51
|
+
|
|
52
|
+
[JuanVqz]: https://github.com/JuanVqz
|
|
53
|
+
[dantevvp]: https://github.com/dantevvp
|
|
54
|
+
[fbuys]: https://github.com/fbuys
|
|
55
|
+
[mateusdeap]: https://github.com/mateusdeap
|
|
56
|
+
[mvz]: https://github.com/mvz
|
|
57
|
+
[tricknotes]: https://github.com/tricknotes
|
|
58
|
+
[troessner]: https://github.com/troessner
|
|
59
|
+
|
|
60
|
+
[#1694]: https://github.com/troessner/reek/pull/1694
|
|
61
|
+
[#1703]: https://github.com/troessner/reek/pull/1703
|
|
62
|
+
[#1711]: https://github.com/troessner/reek/pull/1711
|
|
63
|
+
[#1725]: https://github.com/troessner/reek/pull/1725
|
|
64
|
+
[#1735]: https://github.com/troessner/reek/pull/1735
|
|
65
|
+
[#1736]: https://github.com/troessner/reek/pull/1736
|
|
66
|
+
[#1737]: https://github.com/troessner/reek/pull/1737
|
|
67
|
+
[#1738]: https://github.com/troessner/reek/pull/1738
|
|
68
|
+
[#1745]: https://github.com/troessner/reek/pull/1745
|
|
69
|
+
[#1749]: https://github.com/troessner/reek/pull/1749
|
|
70
|
+
[#1747]: https://github.com/troessner/reek/pull/1747
|
|
71
|
+
[#1750]: https://github.com/troessner/reek/pull/1750
|
|
72
|
+
[#1756]: https://github.com/troessner/reek/pull/1756
|
|
73
|
+
[#1755]: https://github.com/troessner/reek/pull/1755
|
|
74
|
+
|
|
75
|
+
## 6.1.4 (2023-01-13)
|
|
76
|
+
|
|
77
|
+
* (mvz) Update parser dependency to the 3.2.x series
|
|
78
|
+
|
|
79
|
+
## 6.1.3 (2022-12-29)
|
|
80
|
+
|
|
81
|
+
* (gonubana) Allow failing safely when trying to recursively find a configuration
|
|
82
|
+
|
|
83
|
+
## 6.1.2 (2022-11-21)
|
|
84
|
+
|
|
85
|
+
* (mvz) Add support for keyword nil arguments
|
|
86
|
+
|
|
87
|
+
## 6.1.1 (2022-04-20)
|
|
88
|
+
|
|
89
|
+
* (ydah) UnusedPrivateMethod to be detect use of methods via `Method#to_proc`
|
|
90
|
+
|
|
91
|
+
## 6.1.0 (2022-01-14)
|
|
92
|
+
|
|
93
|
+
* (mvz) Drop support for Ruby 2.4 and 2.5
|
|
94
|
+
* (mvz) Support Ruby 3.0 and 3.1
|
|
95
|
+
* (mvz) Support argument forwarding after regular arguments
|
|
96
|
+
|
|
97
|
+
## 6.0.6 (2021-08-12)
|
|
98
|
+
|
|
99
|
+
* (mvz) Remove explicit dependency on psych. This fixes an issue where
|
|
100
|
+
installing Reek would unintentionally pull in psych 4.0
|
|
101
|
+
|
|
102
|
+
## 6.0.5 (2021-08-01)
|
|
103
|
+
|
|
104
|
+
* (dependabot) Loosen dependency on psych
|
|
105
|
+
* (Nicolás Ferrari) Fix bugs when used by codeclimate
|
|
106
|
+
|
|
107
|
+
## 6.0.4 (2021-04-27)
|
|
108
|
+
|
|
109
|
+
* (Nicolás Ferrari) Add build-base to Dockerfile
|
|
110
|
+
* (Masataka Pocke Kuwabara and Daniel Santos Dantas) Reduce gem package size
|
|
111
|
+
|
|
112
|
+
## 6.0.3 (2021-01-11)
|
|
113
|
+
|
|
114
|
+
* (mvz) Require parser 3.0
|
|
115
|
+
* (mvz) In a refinement, assign smells to the refined module or class
|
|
116
|
+
|
|
3
117
|
## 6.0.2 (2020-10-17)
|
|
4
118
|
|
|
5
119
|
* (mvz) Loosen dependency on psych. This should resolve installation problems on
|
data/CONTRIBUTING.md
CHANGED
|
@@ -27,6 +27,9 @@ version, Ruby platform (MRI, JRuby, etc.), operating system.
|
|
|
27
27
|
Try to provide a minimal example that reproduces the issue.
|
|
28
28
|
Extra kudos if you can write it as a failing test. :)
|
|
29
29
|
|
|
30
|
+
Make sure any code examples and output are properly formatted
|
|
31
|
+
using [code blocks](https://github.github.com/gfm/#fenced-code-blocks).
|
|
32
|
+
|
|
30
33
|
## Contributing features, bugfixes, documentation
|
|
31
34
|
|
|
32
35
|
### Getting started
|
|
@@ -59,11 +62,8 @@ demonstrate that your fix was needed.
|
|
|
59
62
|
|
|
60
63
|
Reek uses [Rspec](http://rspec.info/) for unit and functional testing.
|
|
61
64
|
|
|
62
|
-
We're trying to follow [betterspecs](http://betterspecs.org/).
|
|
63
|
-
|
|
64
|
-
[shared examples](https://www.relishapp.com/rspec/rspec-core/docs/example-groups/shared-examples)
|
|
65
|
-
because we find them rather harming than helpful. You can find an excellent
|
|
66
|
-
cheat sheet on how to write idiomatic Rspec
|
|
65
|
+
We're trying to follow [betterspecs](http://betterspecs.org/).
|
|
66
|
+
You can find an excellent cheat sheet on how to write idiomatic Rspec
|
|
67
67
|
[here](http://www.rubypigeon.com/posts/rspec-core-cheat-sheet).
|
|
68
68
|
|
|
69
69
|
We do not use the popular "foo" / "bar" naming when it comes to the question
|
|
@@ -71,7 +71,7 @@ We do not use the popular "foo" / "bar" naming when it comes to the question
|
|
|
71
71
|
[military alphabet](https://en.wikipedia.org/wiki/NATO_phonetic_alphabet) in
|
|
72
72
|
ascending order which means that we would write this
|
|
73
73
|
|
|
74
|
-
```
|
|
74
|
+
```ruby
|
|
75
75
|
class Foo
|
|
76
76
|
def bar(baz)
|
|
77
77
|
baz.quux
|
|
@@ -81,7 +81,7 @@ end
|
|
|
81
81
|
|
|
82
82
|
rather like this:
|
|
83
83
|
|
|
84
|
-
```
|
|
84
|
+
```ruby
|
|
85
85
|
class Alfa
|
|
86
86
|
def bravo(charlie)
|
|
87
87
|
charlie.delta
|
|
@@ -139,7 +139,7 @@ Once you’re happy with your feature / fix – or want to
|
|
|
139
139
|
share it as a work-in-progress and request comments – once
|
|
140
140
|
again make sure all of the tests pass. This will also run
|
|
141
141
|
[RuboCop](https://github.com/bbatsov/rubocop) – fix any
|
|
142
|
-
|
|
142
|
+
offenses RuboCop finds (or discuss them in the pull request):
|
|
143
143
|
|
|
144
144
|
```
|
|
145
145
|
bundle exec rake
|
|
@@ -199,11 +199,11 @@ In this example we assume the current version is 5.3.1 and you want to update to
|
|
|
199
199
|
* Update the version in `lib/reek/version.rb`
|
|
200
200
|
* List all relevant changes in `CHANGELOG.md`
|
|
201
201
|
* Update the version number in our cucumber features, otherwise the build will fail. You can do this quite easily via
|
|
202
|
-
```
|
|
202
|
+
```bash
|
|
203
203
|
find features/ -type f -exec sed -i '' 's/v5.3.1/v5.3.2/g' {} +
|
|
204
204
|
```
|
|
205
205
|
* Push the branch, create a pull request, have it reviewed and merged
|
|
206
206
|
* Pull the latest master and then do a
|
|
207
|
-
```
|
|
207
|
+
```bash
|
|
208
208
|
bundle exec rake release
|
|
209
209
|
```
|
data/Dockerfile
CHANGED
data/Gemfile
CHANGED
|
@@ -1,29 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
source 'https://rubygems.org'
|
|
2
4
|
|
|
3
5
|
gemspec
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
gem 'rubocop-rspec', '~> 1.43.1'
|
|
19
|
-
gem 'simplecov', ['>= 0.18.0', '< 0.20.0']
|
|
20
|
-
gem 'yard', '~> 0.9.5'
|
|
21
|
-
|
|
22
|
-
platforms :mri do
|
|
23
|
-
gem 'redcarpet', '~> 3.4'
|
|
24
|
-
end
|
|
25
|
-
end
|
|
7
|
+
gem 'aruba', '~> 2.1'
|
|
8
|
+
gem 'codeclimate-engine-rb', '~> 0.4.0'
|
|
9
|
+
gem 'cucumber', '~> 9.0'
|
|
10
|
+
gem 'kramdown', '~> 2.1'
|
|
11
|
+
gem 'kramdown-parser-gfm', '~> 1.0'
|
|
12
|
+
gem 'rake', '~> 13.0'
|
|
13
|
+
gem 'rspec', '~> 3.0'
|
|
14
|
+
gem 'rspec-benchmark', '~> 0.6.0'
|
|
15
|
+
gem 'rubocop', '~> 1.72.2'
|
|
16
|
+
gem 'rubocop-performance', '~> 1.24.0'
|
|
17
|
+
gem 'rubocop-rspec', '~> 3.5.0'
|
|
18
|
+
gem 'simplecov', '~> 0.22.0'
|
|
19
|
+
gem 'yard', '~> 0.9.5'
|
|
26
20
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
end
|
|
21
|
+
# Needed for YARD to properly parse GFM code blocks in the documentation
|
|
22
|
+
gem 'redcarpet', '~> 3.4', platform: :mri
|