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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 60367f0f72f86e055af5d89d7120871578083d2812c4996e6fa027fb6d3b6cae
|
|
4
|
+
data.tar.gz: 72077f0159044736a87ebb84c818c72d8280182d8fc6fcbf42f09d776d9c0775
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
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
|
|
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/
|
|
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
|
|
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::
|
|
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/
|
|
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'
|
data/rubocop-elegant.gemspec
CHANGED
|
@@ -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.
|
|
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.
|
|
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/
|
|
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
|