rubocop-elegant 0.5.0 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 07050b077e5266437a527369312875e178be1df47c24f2792fd5945060fe0e26
4
- data.tar.gz: 04ad13719f726d00a61a5cd287573813ce6d2780ef4ef7e8ea4092ed02a24af2
3
+ metadata.gz: 60367f0f72f86e055af5d89d7120871578083d2812c4996e6fa027fb6d3b6cae
4
+ data.tar.gz: 72077f0159044736a87ebb84c818c72d8280182d8fc6fcbf42f09d776d9c0775
5
5
  SHA512:
6
- metadata.gz: 384fa71d95456e0515d5bb4a518a65af285f6e9774289163595e3f1a1885473dab1f85f931ce731e5376d6fa73029991f7cd5624771736e5650dec8e06b845ab
7
- data.tar.gz: d9d7248056d93b0c1c0d81afd0e7c96c709e314e944eeb95365ef1affe3d4f1342607f84b6da874a2e3a68ae3eb21fa0064e9163449935f1a695906f2da5fae4
6
+ metadata.gz: 6f906093f750d1a9c5db831efb8ddc769d00a6449b62432a6ca645c6dc256f62944b9af2d45688f028cc5b242001ff9fa634a261ecbec928399233f2ba25b93e
7
+ data.tar.gz: 6f1e7b0f76573edea8582d3607c4e5deaae6b8944bfa133ed58d121cf9a2d4afc38dc6eb26d87fb4a388ded4a1bb355c9d7e56da380448f70b33d7baa35ab9e5
data/README.md CHANGED
@@ -26,7 +26,7 @@ The custom cops add the following restrictions:
26
26
  * Method names must be single lowercase verbs.
27
27
  * Variable names must be single lowercase nouns.
28
28
  * Each indentation step must add exactly two spaces.
29
- * Comments are forbidden, except SPDX, magic, RuboCop directives, and class docblocks.
29
+ * Comments are forbidden, except SPDX, magic, RuboCop, PDD puzzles, docblocks.
30
30
  * Empty lines inside block bodies are forbidden.
31
31
  * Empty lines inside method bodies are forbidden.
32
32
  * A method cannot return `nil` explicitly.
data/config/default.yml CHANGED
@@ -6,7 +6,7 @@ Elegant:
6
6
  Enabled: true
7
7
  DocumentationBaseURL: https://github.com/yegor256/rubocop-elegant
8
8
  Elegant/NoComments:
9
- Description: 'Disallows comments in source code, except SPDX license comments'
9
+ Description: 'Disallows comments in source code, except SPDX, magic, rubocop directives, PDD puzzles, and docblocks'
10
10
  Enabled: true
11
11
  VersionAdded: '0.0.1'
12
12
  Elegant/NoEmptyLinesInMethods:
@@ -50,7 +50,7 @@ Elegant/OneClassPerFile:
50
50
  Exclude:
51
51
  - '**/*Test.rb'
52
52
  - '**/test_*.rb'
53
- Elegant/IndentationLadder:
53
+ Elegant/MonotonicIndents:
54
54
  Description: 'Requires the indentation step to be exactly two spaces when a line indents to the right of the previous one'
55
55
  Enabled: true
56
56
  VersionAdded: '0.1.0'
@@ -3,7 +3,7 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- # Enforces the "indentation ladder" rule: when a line is indented further
6
+ # Enforces the "monotonic indentation" rule: when a line is indented further
7
7
  # to the right than the previous non-empty line, the extra indentation
8
8
  # must be exactly two spaces. Larger jumps (or odd ones, such as a single
9
9
  # space or three spaces) break the visual rhythm of the code and make
@@ -11,7 +11,7 @@
11
11
  # de-indent by any amount, are not affected. Lines that belong to the
12
12
  # body of a heredoc are ignored, because their whitespace is part of the
13
13
  # literal value rather than program structure.
14
- class RuboCop::Cop::Elegant::IndentationLadder < RuboCop::Cop::Base
14
+ class RuboCop::Cop::Elegant::MonotonicIndents < RuboCop::Cop::Base
15
15
  MSG = 'Indentation step of %<step>d spaces is not allowed; use 2 spaces'
16
16
  public_constant :MSG
17
17
 
@@ -6,7 +6,7 @@
6
6
  class RuboCop::Cop::Elegant::NoComments < RuboCop::Cop::Base
7
7
  extend RuboCop::Cop::AutoCorrector
8
8
 
9
- MSG = 'Comment is not allowed, unless it is SPDX, magic, rubocop directive, or docblock'
9
+ MSG = 'Comment is not allowed, unless it is SPDX, magic, rubocop directive, PDD puzzle, or docblock'
10
10
  public_constant :MSG
11
11
 
12
12
  def on_new_investigation
@@ -18,7 +18,11 @@ class RuboCop::Cop::Elegant::NoComments < RuboCop::Cop::Base
18
18
  private
19
19
 
20
20
  def allowed?(comment)
21
- spdx?(comment) || magic?(comment) || rubocop?(comment) || (gemspec? && docblock?(comment))
21
+ spdx?(comment) || magic?(comment) || rubocop?(comment) || puzzle?(comment) || (gemspec? && docblock?(comment))
22
+ end
23
+
24
+ def puzzle?(comment)
25
+ comment.text.match?(/@todo\b/i)
22
26
  end
23
27
 
24
28
  def spdx?(comment)
@@ -8,7 +8,7 @@ module RuboCop::Cop::Elegant; end
8
8
  require_relative 'elegant/class_in_module'
9
9
  require_relative 'elegant/good_method_name'
10
10
  require_relative 'elegant/good_variable_name'
11
- require_relative 'elegant/indentation_ladder'
11
+ require_relative 'elegant/monotonic_indents'
12
12
  require_relative 'elegant/no_class_in_module'
13
13
  require_relative 'elegant/no_comments'
14
14
  require_relative 'elegant/no_empty_lines_in_blocks'
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to?(:required_rubygems_version=)
10
10
  s.required_ruby_version = '>=2.2'
11
11
  s.name = 'rubocop-elegant'
12
- s.version = '0.5.0'
12
+ s.version = '0.6.0'
13
13
  s.license = 'MIT'
14
14
  s.summary = 'Set of custom RuboCop cops for elegant Ruby coding'
15
15
  s.description =
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-elegant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
@@ -56,7 +56,7 @@ files:
56
56
  - lib/rubocop/cop/elegant/class_in_module.rb
57
57
  - lib/rubocop/cop/elegant/good_method_name.rb
58
58
  - lib/rubocop/cop/elegant/good_variable_name.rb
59
- - lib/rubocop/cop/elegant/indentation_ladder.rb
59
+ - lib/rubocop/cop/elegant/monotonic_indents.rb
60
60
  - lib/rubocop/cop/elegant/no_class_in_module.rb
61
61
  - lib/rubocop/cop/elegant/no_comments.rb
62
62
  - lib/rubocop/cop/elegant/no_empty_lines_in_blocks.rb