reek 6.0.3 → 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/CHANGELOG.md +6 -1
- 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/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 +4 -1
- metadata +3 -208
- 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 -35
- 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 -25
- 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 -309
- 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
@@ -1,102 +0,0 @@
|
|
1
|
-
When /^I run reek (.*)$/ do |args|
|
2
|
-
reek(args)
|
3
|
-
end
|
4
|
-
|
5
|
-
When 'I run the code climate reek runner' do
|
6
|
-
run_command_and_stop 'code_climate_reek'
|
7
|
-
end
|
8
|
-
|
9
|
-
When /^I pass "([^"]*)" to reek *(.*)$/ do |stdin, args|
|
10
|
-
reek_with_pipe(stdin, args)
|
11
|
-
end
|
12
|
-
|
13
|
-
When /^I pass a stdin to reek *(.*) with:$/ do |args, stdin|
|
14
|
-
reek_with_pipe(stdin, args)
|
15
|
-
end
|
16
|
-
|
17
|
-
Then /^it reports nothing$/ do
|
18
|
-
expect(last_command_started).to have_output_on_stdout('')
|
19
|
-
end
|
20
|
-
|
21
|
-
Then /^there is no output on stdout$/ do
|
22
|
-
expect(last_command_started).to have_output_on_stdout('')
|
23
|
-
end
|
24
|
-
|
25
|
-
Then /^stdout includes "(.*)"$/ do |text|
|
26
|
-
expect(last_command_started).to have_output_on_stdout(/#{Regexp.escape(text)}/)
|
27
|
-
end
|
28
|
-
|
29
|
-
Then /^it succeeds$/ do
|
30
|
-
success = Reek::CLI::Status::DEFAULT_SUCCESS_EXIT_CODE
|
31
|
-
expect(last_command_started).to have_exit_status(success)
|
32
|
-
end
|
33
|
-
|
34
|
-
Then /^the exit status indicates an error$/ do
|
35
|
-
error = Reek::CLI::Status::DEFAULT_ERROR_EXIT_CODE
|
36
|
-
expect(last_command_started).to have_exit_status(error)
|
37
|
-
end
|
38
|
-
|
39
|
-
Then /^the exit status indicates smells$/ do
|
40
|
-
smells = Reek::CLI::Status::DEFAULT_FAILURE_EXIT_CODE
|
41
|
-
expect(last_command_started).to have_exit_status(smells)
|
42
|
-
end
|
43
|
-
|
44
|
-
Then(/^the exit status is (\d+)$/) do |status|
|
45
|
-
expect(last_command_started).to have_exit_status(status.to_i)
|
46
|
-
end
|
47
|
-
|
48
|
-
Then /^it reports:$/ do |report|
|
49
|
-
expect(last_command_started).to have_output_on_stdout(report.gsub('\n', "\n"))
|
50
|
-
end
|
51
|
-
|
52
|
-
Then /^it reports this yaml:$/ do |expected_yaml|
|
53
|
-
expected_warnings = YAML.safe_load(expected_yaml.chomp)
|
54
|
-
actual_warnings = YAML.safe_load(last_command_started.stdout)
|
55
|
-
expect(actual_warnings).to eq expected_warnings
|
56
|
-
end
|
57
|
-
|
58
|
-
Then /^it reports this JSON:$/ do |expected_json|
|
59
|
-
expected_warnings = JSON.parse(expected_json.chomp)
|
60
|
-
actual_warnings = JSON.parse(last_command_started.stdout)
|
61
|
-
expect(actual_warnings).to eq expected_warnings
|
62
|
-
end
|
63
|
-
|
64
|
-
Then /^stderr reports:$/ do |report|
|
65
|
-
expect(last_command_started).to have_output_on_stderr(report.chomp)
|
66
|
-
end
|
67
|
-
|
68
|
-
Then /^it reports no errors$/ do
|
69
|
-
expect(last_command_started).to have_output_on_stderr('')
|
70
|
-
end
|
71
|
-
|
72
|
-
Then /^it reports an error$/ do
|
73
|
-
expect(last_command_started.stderr).to_not be_empty
|
74
|
-
end
|
75
|
-
|
76
|
-
Then /^it reports the error ['"](.*)['"]$/ do |string|
|
77
|
-
expect(last_command_started).to have_output_on_stderr(/#{Regexp.escape(string)}/)
|
78
|
-
end
|
79
|
-
|
80
|
-
Then /^it reports a parsing error$/ do
|
81
|
-
expect(last_command_started).to have_output_on_stderr(/Parser::SyntaxError/)
|
82
|
-
end
|
83
|
-
|
84
|
-
Then /^it should indicate the line numbers of those smells$/ do
|
85
|
-
expect(last_command_started).to have_output(/\[.*\]:/)
|
86
|
-
end
|
87
|
-
|
88
|
-
Then /^it reports the current version$/ do
|
89
|
-
expect(last_command_started).to have_output("reek #{Reek::Version::STRING}")
|
90
|
-
end
|
91
|
-
|
92
|
-
Then /^it reports this Code Climate output:$/ do |expected_output|
|
93
|
-
expected_issues = expected_output.split('NULL_BYTE_CHARACTER').map do |issue|
|
94
|
-
JSON.parse(issue)
|
95
|
-
end
|
96
|
-
|
97
|
-
actual_issues = last_command_started.stdout.split("\0").map do |issue|
|
98
|
-
JSON.parse(issue)
|
99
|
-
end
|
100
|
-
|
101
|
-
expect(actual_issues).to eq(expected_issues)
|
102
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
require_relative '../../samples/paths'
|
2
|
-
|
3
|
-
Given(/^the smelly file '(.+)'$/) do |filename|
|
4
|
-
write_file(filename, SAMPLES_DIR.join('smelly_source').join(filename).read)
|
5
|
-
end
|
6
|
-
|
7
|
-
Given(/^the smelly file "(.+)" in the directory "(.+)"$/) do |filename, directory|
|
8
|
-
FileUtils.mkdir_p directory
|
9
|
-
write_file Pathname(directory).join(filename).to_s,
|
10
|
-
SAMPLES_DIR.join('smelly_source').join(filename).read
|
11
|
-
end
|
12
|
-
|
13
|
-
Given(/^the clean file "(.*)"$/) do |filename|
|
14
|
-
write_file(filename, CLEAN_FILE.read)
|
15
|
-
end
|
16
|
-
|
17
|
-
Given(/^a directory called 'clean' containing two clean files$/) do
|
18
|
-
contents = CLEAN_FILE.read
|
19
|
-
|
20
|
-
write_file('clean/clean_one.rb', contents)
|
21
|
-
write_file('clean/clean_two.rb', contents)
|
22
|
-
end
|
23
|
-
|
24
|
-
Given(/^a directory called 'mixed_files' containing some clean and smelly files$/) do
|
25
|
-
write_file('mixed_files/clean.rb', CLEAN_FILE.read)
|
26
|
-
write_file('mixed_files/dirty.rb', SMELLY_FILE.read)
|
27
|
-
end
|
28
|
-
|
29
|
-
Given(/^a directory called 'smelly' containing two smelly files$/) do
|
30
|
-
contents = SMELLY_FILE.read
|
31
|
-
|
32
|
-
write_file('smelly/dirty_one.rb', contents)
|
33
|
-
write_file('smelly/dirty_two.rb', contents)
|
34
|
-
end
|
35
|
-
|
36
|
-
Given(/^the smelly file '(.+)' in a subdirectory$/) do |filename|
|
37
|
-
contents = SAMPLES_DIR.join('smelly_source').join(filename).read
|
38
|
-
|
39
|
-
write_file("subdir/#{filename}", contents)
|
40
|
-
end
|
41
|
-
|
42
|
-
Given(/^a configuration file '(.+)'$/) do |filename|
|
43
|
-
write_file(filename, CONFIGURATION_DIR.join(filename).read)
|
44
|
-
end
|
45
|
-
|
46
|
-
Given(/^our default configuration file$/) do
|
47
|
-
default_configuration = File.read Reek::DEFAULT_SMELL_CONFIGURATION
|
48
|
-
write_file('defaults.reek.yml', default_configuration)
|
49
|
-
end
|
50
|
-
|
51
|
-
When(/^I run "reek (.*?)" in a subdirectory$/) do |args|
|
52
|
-
cd 'subdir'
|
53
|
-
|
54
|
-
reek(args)
|
55
|
-
end
|
56
|
-
|
57
|
-
Then(/^it does not report private or protected methods$/) do
|
58
|
-
# Pseudo step for feature clarity.
|
59
|
-
end
|
60
|
-
|
61
|
-
Given('with a configuration file that is further up in the directory tree') do
|
62
|
-
# Pseudo step for feature clarity. We have an empty .reek.yml in our root directory already.
|
63
|
-
end
|
data/features/support/env.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
require_relative '../../lib/reek'
|
2
|
-
require_relative '../../lib/reek/cli/application'
|
3
|
-
require 'aruba/cucumber'
|
4
|
-
|
5
|
-
begin
|
6
|
-
require 'pry-byebug'
|
7
|
-
rescue LoadError # rubocop:disable Lint/SuppressedException
|
8
|
-
end
|
9
|
-
|
10
|
-
#
|
11
|
-
# Provides runner methods used in the cucumber steps.
|
12
|
-
#
|
13
|
-
class ReekWorld
|
14
|
-
def reek(args)
|
15
|
-
run_command_and_stop("reek --no-color --no-documentation #{args}", fail_on_error: false)
|
16
|
-
end
|
17
|
-
|
18
|
-
def reek_with_pipe(stdin, args)
|
19
|
-
run_command "reek --no-color --no-documentation #{args}"
|
20
|
-
type(stdin)
|
21
|
-
close_input
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
World do
|
26
|
-
ReekWorld.new
|
27
|
-
end
|
28
|
-
|
29
|
-
Before do
|
30
|
-
Aruba.configure do |config|
|
31
|
-
config.exit_timeout = 30
|
32
|
-
end
|
33
|
-
end
|
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
|