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.
Files changed (217) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -1
  3. data/CONTRIBUTING.md +3 -0
  4. data/Dockerfile +1 -1
  5. data/Gemfile +6 -6
  6. data/lib/reek/ast/ast_node_class_map.rb +1 -1
  7. data/lib/reek/report/code_climate/code_climate_formatter.rb +1 -3
  8. data/lib/reek/smell_detectors/base_detector.rb +1 -1
  9. data/lib/reek/smell_warning.rb +1 -1
  10. data/lib/reek/source/source_locator.rb +1 -3
  11. data/lib/reek/version.rb +1 -1
  12. data/reek.gemspec +4 -1
  13. metadata +3 -208
  14. data/docs/API.md +0 -174
  15. data/docs/Attribute.md +0 -39
  16. data/docs/Basic-Smell-Options.md +0 -85
  17. data/docs/Boolean-Parameter.md +0 -54
  18. data/docs/Class-Variable.md +0 -40
  19. data/docs/Code-Smells.md +0 -39
  20. data/docs/Command-Line-Options.md +0 -119
  21. data/docs/Control-Couple.md +0 -26
  22. data/docs/Control-Parameter.md +0 -32
  23. data/docs/Data-Clump.md +0 -46
  24. data/docs/Duplicate-Method-Call.md +0 -264
  25. data/docs/Feature-Envy.md +0 -93
  26. data/docs/How-To-Write-New-Detectors.md +0 -132
  27. data/docs/How-reek-works-internally.md +0 -114
  28. data/docs/Instance-Variable-Assumption.md +0 -163
  29. data/docs/Irresponsible-Module.md +0 -47
  30. data/docs/Large-Class.md +0 -16
  31. data/docs/Long-Parameter-List.md +0 -39
  32. data/docs/Long-Yield-List.md +0 -37
  33. data/docs/Manual-Dispatch.md +0 -30
  34. data/docs/Missing-Safe-Method.md +0 -92
  35. data/docs/Module-Initialize.md +0 -62
  36. data/docs/Nested-Iterators.md +0 -59
  37. data/docs/Nil-Check.md +0 -47
  38. data/docs/RSpec-matchers.md +0 -129
  39. data/docs/Rake-Task.md +0 -66
  40. data/docs/Reek-4-to-Reek-5-migration.md +0 -188
  41. data/docs/Reek-Driven-Development.md +0 -46
  42. data/docs/Repeated-Conditional.md +0 -47
  43. data/docs/Simulated-Polymorphism.md +0 -16
  44. data/docs/Smell-Suppression.md +0 -96
  45. data/docs/Style-Guide.md +0 -19
  46. data/docs/Subclassed-From-Core-Class.md +0 -79
  47. data/docs/Too-Many-Constants.md +0 -37
  48. data/docs/Too-Many-Instance-Variables.md +0 -43
  49. data/docs/Too-Many-Methods.md +0 -56
  50. data/docs/Too-Many-Statements.md +0 -54
  51. data/docs/Uncommunicative-Method-Name.md +0 -94
  52. data/docs/Uncommunicative-Module-Name.md +0 -92
  53. data/docs/Uncommunicative-Name.md +0 -18
  54. data/docs/Uncommunicative-Parameter-Name.md +0 -90
  55. data/docs/Uncommunicative-Variable-Name.md +0 -96
  56. data/docs/Unused-Parameters.md +0 -28
  57. data/docs/Unused-Private-Method.md +0 -101
  58. data/docs/Utility-Function.md +0 -56
  59. data/docs/Versioning-Policy.md +0 -7
  60. data/docs/YAML-Reports.md +0 -93
  61. data/docs/defaults.reek.yml +0 -129
  62. data/docs/templates/default/docstring/html/public_api_marker.erb +0 -3
  63. data/docs/templates/default/docstring/setup.rb +0 -35
  64. data/docs/templates/default/fulldoc/html/css/common.css +0 -1
  65. data/docs/yard_plugin.rb +0 -17
  66. data/features/command_line_interface/basic_usage.feature +0 -15
  67. data/features/command_line_interface/options.feature +0 -123
  68. data/features/command_line_interface/show_progress.feature +0 -33
  69. data/features/command_line_interface/smell_selection.feature +0 -15
  70. data/features/command_line_interface/smells_count.feature +0 -38
  71. data/features/command_line_interface/stdin.feature +0 -65
  72. data/features/configuration_files/accept_setting.feature +0 -87
  73. data/features/configuration_files/directory_specific_directives.feature +0 -274
  74. data/features/configuration_files/exclude_directives.feature +0 -35
  75. data/features/configuration_files/exclude_paths_directives.feature +0 -42
  76. data/features/configuration_files/masking_smells.feature +0 -94
  77. data/features/configuration_files/mix_accept_reject_setting.feature +0 -84
  78. data/features/configuration_files/reject_setting.feature +0 -89
  79. data/features/configuration_files/schema_validation.feature +0 -59
  80. data/features/configuration_files/show_configuration_file.feature +0 -44
  81. data/features/configuration_files/unused_private_method.feature +0 -68
  82. data/features/configuration_loading.feature +0 -91
  83. data/features/configuration_via_source_comments/erroneous_source_comments.feature +0 -68
  84. data/features/configuration_via_source_comments/well_formed_source_comments.feature +0 -116
  85. data/features/locales.feature +0 -32
  86. data/features/programmatic_access.feature +0 -41
  87. data/features/rake_task/rake_task.feature +0 -138
  88. data/features/reports/codeclimate.feature +0 -59
  89. data/features/reports/json.feature +0 -59
  90. data/features/reports/reports.feature +0 -219
  91. data/features/reports/yaml.feature +0 -52
  92. data/features/rspec_matcher.feature +0 -41
  93. data/features/samples.feature +0 -305
  94. data/features/step_definitions/.rubocop.yml +0 -5
  95. data/features/step_definitions/reek_steps.rb +0 -102
  96. data/features/step_definitions/sample_file_steps.rb +0 -63
  97. data/features/support/env.rb +0 -33
  98. data/features/todo_list.feature +0 -108
  99. data/samples/checkstyle.xml +0 -7
  100. data/samples/clean_source/clean.rb +0 -6
  101. data/samples/configuration/accepts_rejects_and_excludes_for_detectors.reek.yml +0 -29
  102. data/samples/configuration/accepts_rejects_and_excludes_for_directory_directives.reek.yml +0 -30
  103. data/samples/configuration/corrupt.reek +0 -1
  104. data/samples/configuration/empty.reek +0 -0
  105. data/samples/configuration/full_configuration.reek +0 -13
  106. data/samples/configuration/full_mask.reek +0 -6
  107. data/samples/configuration/home/home.reek.yml +0 -4
  108. data/samples/configuration/partial_mask.reek +0 -4
  109. data/samples/configuration/regular_configuration/.reek.yml +0 -4
  110. data/samples/configuration/regular_configuration/empty_sub_directory/.gitignore +0 -0
  111. data/samples/configuration/with_excluded_paths.reek +0 -5
  112. data/samples/no_config_file/.keep +0 -0
  113. data/samples/paths.rb +0 -5
  114. data/samples/smelly_source/inline.rb +0 -704
  115. data/samples/smelly_source/optparse.rb +0 -1788
  116. data/samples/smelly_source/redcloth.rb +0 -1130
  117. data/samples/smelly_source/ruby.rb +0 -368
  118. data/samples/smelly_source/smelly.rb +0 -7
  119. data/samples/source_with_exclude_paths/ignore_me/uncommunicative_method_name.rb +0 -5
  120. data/samples/source_with_exclude_paths/nested/ignore_me_as_well/irresponsible_module.rb +0 -2
  121. data/samples/source_with_exclude_paths/nested/uncommunicative_parameter_name.rb +0 -6
  122. data/samples/source_with_exclude_paths/nested/uncommunicative_variable_name.rb +0 -6
  123. data/samples/source_with_hidden_directories/.hidden/hidden.rb +0 -1
  124. data/samples/source_with_hidden_directories/not_hidden.rb +0 -1
  125. data/samples/source_with_non_ruby_files/gibberish +0 -1
  126. data/samples/source_with_non_ruby_files/python_source.py +0 -1
  127. data/samples/source_with_non_ruby_files/ruby.rb +0 -6
  128. data/spec/performance/reek/smell_detectors/runtime_speed_spec.rb +0 -15
  129. data/spec/quality/documentation_spec.rb +0 -41
  130. data/spec/quality/reek_source_spec.rb +0 -11
  131. data/spec/reek/ast/node_spec.rb +0 -211
  132. data/spec/reek/ast/object_refs_spec.rb +0 -83
  133. data/spec/reek/ast/reference_collector_spec.rb +0 -47
  134. data/spec/reek/ast/sexp_extensions_spec.rb +0 -498
  135. data/spec/reek/cli/application_spec.rb +0 -168
  136. data/spec/reek/cli/command/report_command_spec.rb +0 -44
  137. data/spec/reek/cli/command/todo_list_command_spec.rb +0 -86
  138. data/spec/reek/cli/options_spec.rb +0 -51
  139. data/spec/reek/cli/silencer_spec.rb +0 -28
  140. data/spec/reek/code_comment_spec.rb +0 -184
  141. data/spec/reek/configuration/app_configuration_spec.rb +0 -195
  142. data/spec/reek/configuration/configuration_file_finder_spec.rb +0 -230
  143. data/spec/reek/configuration/default_directive_spec.rb +0 -13
  144. data/spec/reek/configuration/directory_directives_spec.rb +0 -122
  145. data/spec/reek/configuration/excluded_paths_spec.rb +0 -25
  146. data/spec/reek/configuration/rake_task_converter_spec.rb +0 -33
  147. data/spec/reek/configuration/schema_validator_spec.rb +0 -165
  148. data/spec/reek/context/code_context_spec.rb +0 -192
  149. data/spec/reek/context/ghost_context_spec.rb +0 -60
  150. data/spec/reek/context/method_context_spec.rb +0 -72
  151. data/spec/reek/context/module_context_spec.rb +0 -55
  152. data/spec/reek/context/root_context_spec.rb +0 -12
  153. data/spec/reek/context/statement_counter_spec.rb +0 -24
  154. data/spec/reek/context_builder_spec.rb +0 -457
  155. data/spec/reek/detector_repository_spec.rb +0 -22
  156. data/spec/reek/documentation_link_spec.rb +0 -20
  157. data/spec/reek/errors/base_error_spec.rb +0 -13
  158. data/spec/reek/examiner_spec.rb +0 -309
  159. data/spec/reek/logging_error_handler_spec.rb +0 -24
  160. data/spec/reek/rake/task_spec.rb +0 -56
  161. data/spec/reek/report/code_climate/code_climate_configuration_spec.rb +0 -22
  162. data/spec/reek/report/code_climate/code_climate_fingerprint_spec.rb +0 -126
  163. data/spec/reek/report/code_climate/code_climate_formatter_spec.rb +0 -51
  164. data/spec/reek/report/code_climate/code_climate_report_spec.rb +0 -56
  165. data/spec/reek/report/html_report_spec.rb +0 -19
  166. data/spec/reek/report/json_report_spec.rb +0 -58
  167. data/spec/reek/report/location_formatter_spec.rb +0 -32
  168. data/spec/reek/report/progress_formatter_spec.rb +0 -68
  169. data/spec/reek/report/text_report_spec.rb +0 -89
  170. data/spec/reek/report/xml_report_spec.rb +0 -24
  171. data/spec/reek/report/yaml_report_spec.rb +0 -55
  172. data/spec/reek/report_spec.rb +0 -28
  173. data/spec/reek/smell_configuration_spec.rb +0 -56
  174. data/spec/reek/smell_detectors/attribute_spec.rb +0 -197
  175. data/spec/reek/smell_detectors/base_detector_spec.rb +0 -50
  176. data/spec/reek/smell_detectors/boolean_parameter_spec.rb +0 -93
  177. data/spec/reek/smell_detectors/class_variable_spec.rb +0 -106
  178. data/spec/reek/smell_detectors/control_parameter_spec.rb +0 -300
  179. data/spec/reek/smell_detectors/data_clump_spec.rb +0 -134
  180. data/spec/reek/smell_detectors/duplicate_method_call_spec.rb +0 -211
  181. data/spec/reek/smell_detectors/feature_envy_spec.rb +0 -295
  182. data/spec/reek/smell_detectors/instance_variable_assumption_spec.rb +0 -96
  183. data/spec/reek/smell_detectors/irresponsible_module_spec.rb +0 -226
  184. data/spec/reek/smell_detectors/long_parameter_list_spec.rb +0 -61
  185. data/spec/reek/smell_detectors/long_yield_list_spec.rb +0 -49
  186. data/spec/reek/smell_detectors/manual_dispatch_spec.rb +0 -75
  187. data/spec/reek/smell_detectors/missing_safe_method_spec.rb +0 -68
  188. data/spec/reek/smell_detectors/module_initialize_spec.rb +0 -77
  189. data/spec/reek/smell_detectors/nested_iterators_spec.rb +0 -333
  190. data/spec/reek/smell_detectors/nil_check_spec.rb +0 -100
  191. data/spec/reek/smell_detectors/repeated_conditional_spec.rb +0 -100
  192. data/spec/reek/smell_detectors/subclassed_from_core_class_spec.rb +0 -77
  193. data/spec/reek/smell_detectors/too_many_constants_spec.rb +0 -144
  194. data/spec/reek/smell_detectors/too_many_instance_variables_spec.rb +0 -132
  195. data/spec/reek/smell_detectors/too_many_methods_spec.rb +0 -54
  196. data/spec/reek/smell_detectors/too_many_statements_spec.rb +0 -90
  197. data/spec/reek/smell_detectors/uncommunicative_method_name_spec.rb +0 -78
  198. data/spec/reek/smell_detectors/uncommunicative_module_name_spec.rb +0 -78
  199. data/spec/reek/smell_detectors/uncommunicative_parameter_name_spec.rb +0 -147
  200. data/spec/reek/smell_detectors/uncommunicative_variable_name_spec.rb +0 -201
  201. data/spec/reek/smell_detectors/unused_parameters_spec.rb +0 -114
  202. data/spec/reek/smell_detectors/unused_private_method_spec.rb +0 -205
  203. data/spec/reek/smell_detectors/utility_function_spec.rb +0 -309
  204. data/spec/reek/smell_warning_spec.rb +0 -137
  205. data/spec/reek/source/source_code_spec.rb +0 -79
  206. data/spec/reek/source/source_locator_spec.rb +0 -166
  207. data/spec/reek/spec/should_reek_of_spec.rb +0 -153
  208. data/spec/reek/spec/should_reek_only_of_spec.rb +0 -91
  209. data/spec/reek/spec/should_reek_spec.rb +0 -52
  210. data/spec/reek/spec/smell_matcher_spec.rb +0 -87
  211. data/spec/reek/tree_dresser_spec.rb +0 -46
  212. data/spec/spec_helper.rb +0 -110
  213. data/tasks/configuration.rake +0 -18
  214. data/tasks/console.rake +0 -5
  215. data/tasks/reek.rake +0 -6
  216. data/tasks/rubocop.rake +0 -11
  217. data/tasks/test.rake +0 -32
@@ -1,5 +0,0 @@
1
- inherit_from: ../../.rubocop.yml
2
-
3
- # Allow common When <regexp> syntax
4
- Lint/AmbiguousRegexpLiteral:
5
- Enabled: false
@@ -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
@@ -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
@@ -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
@@ -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 &apos;x&apos;' severity='warning' source='UncommunicativeMethodName'/>
5
- <error column='0' line='5' message='has the variable name &apos;y&apos;' severity='warning' source='UncommunicativeVariableName'/>
6
- </file>
7
- </checkstyle>
@@ -1,6 +0,0 @@
1
- # Well documented Clean class.
2
- class Clean
3
- def hello(argument)
4
- say argument
5
- end
6
- end
@@ -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
@@ -1,13 +0,0 @@
1
- ---
2
- detectors:
3
- IrresponsibleModule:
4
- enabled: false
5
-
6
- directories:
7
- "samples/three_clean_files/":
8
- UtilityFunction:
9
- enabled: false
10
-
11
- exclude_paths:
12
- - "samples/two_smelly_files/"
13
- - "samples/source_with_non_ruby_files/"
@@ -1,6 +0,0 @@
1
- ---
2
- detectors:
3
- UncommunicativeMethodName:
4
- enabled: false
5
- UncommunicativeVariableName:
6
- enabled: false
@@ -1,4 +0,0 @@
1
- ---
2
- UncommunicativeVariableName:
3
- accept:
4
- - md5
@@ -1,4 +0,0 @@
1
- ---
2
- detectors:
3
- UncommunicativeMethodName:
4
- enabled: false
@@ -1,4 +0,0 @@
1
- ---
2
- UncommunicativeVariableName:
3
- accept:
4
- - md5