reek 5.4.1 → 6.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +8 -6
  4. data/.rubocop_todo.yml +25 -20
  5. data/.simplecov +1 -0
  6. data/.travis.yml +17 -11
  7. data/CHANGELOG.md +31 -3
  8. data/Dockerfile +1 -0
  9. data/Gemfile +14 -17
  10. data/README.md +15 -11
  11. data/bin/code_climate_reek +12 -2
  12. data/docs/Attribute.md +1 -1
  13. data/docs/Boolean-Parameter.md +1 -1
  14. data/docs/Control-Couple.md +1 -1
  15. data/docs/Nil-Check.md +4 -1
  16. data/features/command_line_interface/options.feature +2 -3
  17. data/features/configuration_files/schema_validation.feature +1 -1
  18. data/features/reports/codeclimate.feature +2 -2
  19. data/features/reports/json.feature +3 -3
  20. data/features/reports/reports.feature +4 -4
  21. data/features/reports/yaml.feature +3 -3
  22. data/features/step_definitions/reek_steps.rb +5 -1
  23. data/features/step_definitions/sample_file_steps.rb +2 -2
  24. data/features/support/env.rb +1 -2
  25. data/lib/reek.rb +1 -0
  26. data/lib/reek/ast/sexp_extensions/arguments.rb +11 -0
  27. data/lib/reek/cli/options.rb +3 -3
  28. data/lib/reek/code_comment.rb +45 -38
  29. data/lib/reek/configuration/app_configuration.rb +4 -3
  30. data/lib/reek/configuration/configuration_converter.rb +2 -2
  31. data/lib/reek/configuration/directory_directives.rb +9 -3
  32. data/lib/reek/context/module_context.rb +3 -1
  33. data/lib/reek/errors/legacy_comment_separator_error.rb +36 -0
  34. data/lib/reek/examiner.rb +3 -3
  35. data/lib/reek/report.rb +5 -7
  36. data/lib/reek/report/code_climate/code_climate_configuration.yml +1 -1
  37. data/lib/reek/report/code_climate/code_climate_report.rb +2 -1
  38. data/lib/reek/report/simple_warning_formatter.rb +0 -7
  39. data/lib/reek/report/text_report.rb +2 -2
  40. data/lib/reek/smell_detectors/base_detector.rb +1 -9
  41. data/lib/reek/smell_detectors/boolean_parameter.rb +3 -1
  42. data/lib/reek/smell_detectors/data_clump.rb +23 -56
  43. data/lib/reek/smell_detectors/nil_check.rb +1 -12
  44. data/lib/reek/smell_detectors/subclassed_from_core_class.rb +3 -7
  45. data/lib/reek/smell_detectors/uncommunicative_variable_name.rb +1 -1
  46. data/lib/reek/smell_warning.rb +1 -2
  47. data/lib/reek/source/source_code.rb +3 -2
  48. data/lib/reek/source/source_locator.rb +13 -10
  49. data/lib/reek/spec/smell_matcher.rb +2 -1
  50. data/lib/reek/version.rb +1 -1
  51. data/reek.gemspec +13 -6
  52. data/spec/performance/reek/smell_detectors/runtime_speed_spec.rb +2 -4
  53. data/spec/quality/documentation_spec.rb +2 -1
  54. data/spec/reek/ast/sexp_extensions_spec.rb +15 -33
  55. data/spec/reek/code_comment_spec.rb +41 -42
  56. data/spec/reek/configuration/directory_directives_spec.rb +6 -0
  57. data/spec/reek/context_builder_spec.rb +110 -113
  58. data/spec/reek/report/code_climate/code_climate_configuration_spec.rb +1 -3
  59. data/spec/reek/report/code_climate/code_climate_fingerprint_spec.rb +26 -26
  60. data/spec/reek/report/code_climate/code_climate_formatter_spec.rb +6 -6
  61. data/spec/reek/report/code_climate/code_climate_report_spec.rb +1 -1
  62. data/spec/reek/report/json_report_spec.rb +1 -1
  63. data/spec/reek/report/location_formatter_spec.rb +3 -3
  64. data/spec/reek/report/text_report_spec.rb +1 -7
  65. data/spec/reek/report/yaml_report_spec.rb +1 -1
  66. data/spec/reek/smell_detectors/base_detector_spec.rb +3 -13
  67. data/spec/reek/smell_detectors/data_clump_spec.rb +14 -0
  68. data/spec/reek/smell_detectors/missing_safe_method_spec.rb +8 -2
  69. data/spec/reek/smell_detectors/nil_check_spec.rb +3 -3
  70. data/spec/reek/smell_warning_spec.rb +12 -12
  71. data/spec/reek/source/source_code_spec.rb +13 -0
  72. data/spec/reek/spec/should_reek_of_spec.rb +0 -1
  73. data/spec/reek/spec/should_reek_only_of_spec.rb +6 -6
  74. data/spec/reek/spec/smell_matcher_spec.rb +1 -1
  75. data/spec/spec_helper.rb +20 -6
  76. data/tasks/configuration.rake +1 -2
  77. metadata +15 -25
  78. data/spec/factories/factories.rb +0 -37
@@ -8,11 +8,10 @@ require 'yaml'
8
8
  namespace :configuration do
9
9
  desc 'Updates the default configuration file when smell defaults change'
10
10
  task :update_default_configuration do
11
- DEFAULT_SMELL_CONFIGURATION = 'docs/defaults.reek.yml'.freeze
12
11
  content = Reek::DetectorRepository.smell_types.each_with_object({}) do |klass, hash|
13
12
  hash[klass.smell_type] = Reek::Configuration::RakeTaskConverter.convert klass.default_config
14
13
  end
15
- File.open(DEFAULT_SMELL_CONFIGURATION, 'w') do |file|
14
+ File.open(Reek::DEFAULT_SMELL_CONFIGURATION, 'w') do |file|
16
15
  YAML.dump({ Reek::DETECTORS_KEY => content }, file)
17
16
  end
18
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reek
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.4.1
4
+ version: 6.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Rutherford
@@ -11,22 +11,8 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2019-11-12 00:00:00.000000000 Z
14
+ date: 2020-10-17 00:00:00.000000000 Z
15
15
  dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: codeclimate-engine-rb
18
- requirement: !ruby/object:Gem::Requirement
19
- requirements:
20
- - - "~>"
21
- - !ruby/object:Gem::Version
22
- version: 0.4.0
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: 0.4.0
30
16
  - !ruby/object:Gem::Dependency
31
17
  name: kwalify
32
18
  requirement: !ruby/object:Gem::Requirement
@@ -47,7 +33,7 @@ dependencies:
47
33
  requirements:
48
34
  - - "<"
49
35
  - !ruby/object:Gem::Version
50
- version: '2.7'
36
+ version: '2.8'
51
37
  - - ">="
52
38
  - !ruby/object:Gem::Version
53
39
  version: 2.5.0.0
@@ -60,7 +46,7 @@ dependencies:
60
46
  requirements:
61
47
  - - "<"
62
48
  - !ruby/object:Gem::Version
63
- version: '2.7'
49
+ version: '2.8'
64
50
  - - ">="
65
51
  - !ruby/object:Gem::Version
66
52
  version: 2.5.0.0
@@ -73,14 +59,14 @@ dependencies:
73
59
  requirements:
74
60
  - - "~>"
75
61
  - !ruby/object:Gem::Version
76
- version: 3.1.0
62
+ version: '3.1'
77
63
  type: :runtime
78
64
  prerelease: false
79
65
  version_requirements: !ruby/object:Gem::Requirement
80
66
  requirements:
81
67
  - - "~>"
82
68
  - !ruby/object:Gem::Version
83
- version: 3.1.0
69
+ version: '3.1'
84
70
  - !ruby/object:Gem::Dependency
85
71
  name: rainbow
86
72
  requirement: !ruby/object:Gem::Requirement
@@ -281,6 +267,7 @@ files:
281
267
  - lib/reek/errors/encoding_error.rb
282
268
  - lib/reek/errors/garbage_detector_configuration_in_comment_error.rb
283
269
  - lib/reek/errors/incomprehensible_source_error.rb
270
+ - lib/reek/errors/legacy_comment_separator_error.rb
284
271
  - lib/reek/errors/syntax_error.rb
285
272
  - lib/reek/examiner.rb
286
273
  - lib/reek/logging_error_handler.rb
@@ -385,7 +372,6 @@ files:
385
372
  - samples/source_with_non_ruby_files/gibberish
386
373
  - samples/source_with_non_ruby_files/python_source.py
387
374
  - samples/source_with_non_ruby_files/ruby.rb
388
- - spec/factories/factories.rb
389
375
  - spec/performance/reek/smell_detectors/runtime_speed_spec.rb
390
376
  - spec/quality/documentation_spec.rb
391
377
  - spec/quality/reek_source_spec.rb
@@ -479,7 +465,12 @@ files:
479
465
  homepage: https://github.com/troessner/reek
480
466
  licenses:
481
467
  - MIT
482
- metadata: {}
468
+ metadata:
469
+ homepage_uri: https://github.com/troessner/reek
470
+ source_code_uri: https://github.com/troessner/reek
471
+ bug_tracker_uri: https://github.com/troessner/reek/issues
472
+ changelog_uri: https://github.com/troessner/reek/CHANGELOG.md
473
+ documentation_uri: https://www.rubydoc.info/gems/reek
483
474
  post_install_message:
484
475
  rdoc_options:
485
476
  - "--main"
@@ -492,15 +483,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
492
483
  requirements:
493
484
  - - ">="
494
485
  - !ruby/object:Gem::Version
495
- version: 2.3.0
486
+ version: 2.4.0
496
487
  required_rubygems_version: !ruby/object:Gem::Requirement
497
488
  requirements:
498
489
  - - ">="
499
490
  - !ruby/object:Gem::Version
500
491
  version: '0'
501
492
  requirements: []
502
- rubyforge_project:
503
- rubygems_version: 2.7.7
493
+ rubygems_version: 3.1.2
504
494
  signing_key:
505
495
  specification_version: 4
506
496
  summary: Code smell detector for Ruby
@@ -1,37 +0,0 @@
1
- require_relative '../../lib/reek/smell_detectors'
2
- require_relative '../../lib/reek/smell_detectors/base_detector'
3
- require_relative '../../lib/reek/smell_warning'
4
- require_relative '../../lib/reek/cli/options'
5
-
6
- FactoryBot.define do
7
- factory :smell_warning, class: Reek::SmellWarning do
8
- skip_create
9
-
10
- smell_type { 'FeatureEnvy' }
11
- source { 'dummy_file' }
12
- lines { [42] }
13
- message { 'smell warning message' }
14
- parameters { {} }
15
- context { 'self' }
16
-
17
- initialize_with do
18
- new(smell_type,
19
- source: source,
20
- context: context,
21
- lines: lines,
22
- message: message,
23
- parameters: parameters)
24
- end
25
- end
26
-
27
- factory :code_comment, class: Reek::CodeComment do
28
- comment { '' }
29
- line { 1 }
30
- source { 'string' }
31
- initialize_with do
32
- new comment: comment,
33
- line: line,
34
- source: source
35
- end
36
- end
37
- end