rubocop-obsession 0.1.3 → 0.1.5
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/config/default.yml +2 -2
- data/lib/rubocop/cop/obsession/graphql/mutation_name.rb +1 -1
- data/lib/rubocop/cop/obsession/method_order.rb +2 -1
- data/lib/rubocop/cop/obsession/no_break_or_next.rb +1 -1
- data/lib/rubocop/cop/obsession/no_paragraphs.rb +2 -2
- data/lib/rubocop/cop/obsession/no_todos.rb +1 -1
- data/lib/rubocop/cop/obsession/rails/callback_one_method.rb +1 -1
- data/lib/rubocop/cop/obsession/rails/fully_defined_json_field.rb +6 -6
- data/lib/rubocop/cop/obsession/rails/migration_belongs_to.rb +1 -1
- data/lib/rubocop/cop/obsession/rails/no_callback_conditions.rb +1 -1
- data/lib/rubocop/cop/obsession/rails/private_callback.rb +1 -1
- data/lib/rubocop/cop/obsession/rails/safety_assured_comment.rb +1 -1
- data/lib/rubocop/cop/obsession/rails/short_after_commit.rb +1 -1
- data/lib/rubocop/cop/obsession/rails/short_validate.rb +1 -1
- data/lib/rubocop/cop/obsession/rails/validate_one_field.rb +1 -1
- data/lib/rubocop/cop/obsession/rails/validation_method_name.rb +1 -1
- data/lib/rubocop/cop/obsession/rspec/describe_public_method.rb +1 -1
- data/lib/rubocop/cop/obsession/too_many_paragraphs.rb +4 -4
- data/lib/rubocop/obsession/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9bfae7e0b1e495fad34ada943845fd9399fe6763dd0b6eca0a946f87754ba4a2
|
|
4
|
+
data.tar.gz: 1651b96c4cd6ace35e62dfc968ec4dd8b690118c1b7e8aa5432abd59e5e0b8ad
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a0dd211e0748686195f25c2505aeef9baecae83e1648a4c7ddddf011a31e1de94e5e6cb239a6d8e67e3bf55b39c766af8e5d19f55aec70213993f7d7ae0dbea8
|
|
7
|
+
data.tar.gz: 2e427f1f22dca52e0c417b53c8e5b390aaaf801335d379e888a8131dd7b3e005abe0a32628e1efd9dbe9af4ab3ef749edb38ebb4143c634b74c5ffeff0385bd8
|
data/config/default.yml
CHANGED
|
@@ -3,7 +3,7 @@ Obsession/MethodOrder:
|
|
|
3
3
|
Obsession/NoBreakOrNext:
|
|
4
4
|
Enabled: false
|
|
5
5
|
Exclude:
|
|
6
|
-
- 'script
|
|
6
|
+
- 'script/**/*'
|
|
7
7
|
Obsession/NoParagraphs:
|
|
8
8
|
Enabled: false
|
|
9
9
|
Exclude:
|
|
@@ -15,7 +15,7 @@ Obsession/TooManyParagraphs:
|
|
|
15
15
|
Enabled: false
|
|
16
16
|
Exclude:
|
|
17
17
|
- 'db/migrate/*'
|
|
18
|
-
- 'script
|
|
18
|
+
- 'script/**/*'
|
|
19
19
|
- 'spec/**/*'
|
|
20
20
|
|
|
21
21
|
Obsession/Graphql/MutationName:
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
module RuboCop
|
|
4
4
|
module Cop
|
|
5
5
|
module Obsession
|
|
6
|
-
# This cop checks for private/protected methods that are not ordered
|
|
6
|
+
# This cop checks for private/protected methods that are not ordered
|
|
7
|
+
# correctly. It supports autocorrect.
|
|
7
8
|
#
|
|
8
9
|
# Code should read from top to bottom: methods should be defined in the
|
|
9
10
|
# same order as the order when they are first mentioned.
|
|
@@ -59,7 +59,7 @@ module RuboCop
|
|
|
59
59
|
# end
|
|
60
60
|
# end
|
|
61
61
|
# end
|
|
62
|
-
class NoBreakOrNext <
|
|
62
|
+
class NoBreakOrNext < Base
|
|
63
63
|
BIG_LOOP_MSG =
|
|
64
64
|
'Avoid `break`/`next` in big loop, decompose into private method or rethink loop.'
|
|
65
65
|
NO_NEXT_MSG = 'Avoid `next` in loop, use conditions or rethink loop.'
|
|
@@ -8,7 +8,7 @@ module RuboCop
|
|
|
8
8
|
# If your method code has many instructions that are not organized into
|
|
9
9
|
# paragraphs, you should break it up into multiple paragraphs to make the
|
|
10
10
|
# code more breathable and readable. The 3 possible paragraphs themes
|
|
11
|
-
#
|
|
11
|
+
# could be: initialization, action, and result.
|
|
12
12
|
#
|
|
13
13
|
# @example
|
|
14
14
|
#
|
|
@@ -33,7 +33,7 @@ module RuboCop
|
|
|
33
33
|
#
|
|
34
34
|
# Rails.logger.info('Content has been set')
|
|
35
35
|
# end
|
|
36
|
-
class NoParagraphs <
|
|
36
|
+
class NoParagraphs < Base
|
|
37
37
|
MSG = 'Method has many instructions and should be broken up into paragraphs.'
|
|
38
38
|
MAX_CONSECUTIVE_INSTRUCTIONS_ALLOWED = 5
|
|
39
39
|
|
|
@@ -11,7 +11,7 @@ module RuboCop
|
|
|
11
11
|
# stale TODOs. Sometimes developers really mean to work on their TODOs
|
|
12
12
|
# soon, but then Product re-prioritizes their work, or the developer
|
|
13
13
|
# leaves the company, and never gets a chance to tackle them.
|
|
14
|
-
class NoTodos <
|
|
14
|
+
class NoTodos < Base
|
|
15
15
|
MSG = 'Avoid TODO comment, create a task in your project management tool instead.'
|
|
16
16
|
KEYWORD_REGEX = /(^|[^\w])(TODO|FIXME|OPTIMIZE|HACK)($|[^\w])/i
|
|
17
17
|
|
|
@@ -8,12 +8,12 @@ module RuboCop
|
|
|
8
8
|
# defaults or comments.
|
|
9
9
|
#
|
|
10
10
|
# - json(b) fields should have a default value like {} or [] so code can
|
|
11
|
-
#
|
|
12
|
-
#
|
|
11
|
+
# do my_field['field'] or my_field.first without fear that my_field is
|
|
12
|
+
# nil.
|
|
13
13
|
# - It is impossible to know the structure of a json(b) field just by
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
14
|
+
# reading the schema, because json(b) is an unstructured type. That's why
|
|
15
|
+
# an "Example: ..." Postgres comment should always be present when
|
|
16
|
+
# defining the field.
|
|
17
17
|
#
|
|
18
18
|
# @example
|
|
19
19
|
#
|
|
@@ -26,7 +26,7 @@ module RuboCop
|
|
|
26
26
|
# :jsonb,
|
|
27
27
|
# default: [],
|
|
28
28
|
# comment: "Example: [{ 'name': 'ruby' }, { 'name': 'python' }]"
|
|
29
|
-
class FullyDefinedJsonField <
|
|
29
|
+
class FullyDefinedJsonField < Base
|
|
30
30
|
def_node_matcher :json_field?, <<~PATTERN
|
|
31
31
|
(send nil? :add_column _ _ (sym {:json :jsonb}) ...)
|
|
32
32
|
PATTERN
|
|
@@ -13,7 +13,7 @@ module RuboCop
|
|
|
13
13
|
# of the DB migration. The reason should be detailed and reviewed by a
|
|
14
14
|
# knowledgeable PR reviewer. Failure to follow instructions may bring your
|
|
15
15
|
# app down.
|
|
16
|
-
class SafetyAssuredComment <
|
|
16
|
+
class SafetyAssuredComment < Base
|
|
17
17
|
MSG =
|
|
18
18
|
'Add `# Safe because <reason>` comment above safety_assured. ' \
|
|
19
19
|
'An invalid reason may bring the site down.'
|
|
@@ -16,7 +16,7 @@ module RuboCop
|
|
|
16
16
|
# # good
|
|
17
17
|
# validates :name, presence: true
|
|
18
18
|
# validates :status, presence: true
|
|
19
|
-
class ValidateOneField <
|
|
19
|
+
class ValidateOneField < Base
|
|
20
20
|
MSG = 'Validate only one field per line.'
|
|
21
21
|
|
|
22
22
|
def_node_matcher :validates_with_more_than_one_field?, <<~PATTERN
|
|
@@ -13,7 +13,7 @@ module RuboCop
|
|
|
13
13
|
#
|
|
14
14
|
# # good
|
|
15
15
|
# validate :validate_at_least_one_admin
|
|
16
|
-
class ValidationMethodName <
|
|
16
|
+
class ValidationMethodName < Base
|
|
17
17
|
MSG = 'Prefix custom validation method with validate_'
|
|
18
18
|
|
|
19
19
|
def_node_matcher :on_validate_callback, <<~PATTERN
|
|
@@ -6,13 +6,13 @@ module RuboCop
|
|
|
6
6
|
# This cop checks for methods with too many paragraphs.
|
|
7
7
|
#
|
|
8
8
|
# You should organize your method code into 2 to 3 paragraphs maximum.
|
|
9
|
-
# The 3 possible paragraphs themes
|
|
9
|
+
# The 3 possible paragraphs themes could be: initialization, action,
|
|
10
10
|
# and result. Shape your paragraph according to those themes. Spec code
|
|
11
11
|
# should also be organized into 2 to 3 paragraphs
|
|
12
12
|
# (initialization/action/result or given/when/then paragraphs).
|
|
13
13
|
#
|
|
14
|
-
# After organizing your paragraphs, if they are too long or dense, it
|
|
15
|
-
# a sign that
|
|
14
|
+
# After organizing your paragraphs, if they are too long or dense, it
|
|
15
|
+
# could be a sign that they should be broken into smaller methods.
|
|
16
16
|
#
|
|
17
17
|
# @example
|
|
18
18
|
#
|
|
@@ -39,7 +39,7 @@ module RuboCop
|
|
|
39
39
|
#
|
|
40
40
|
# Rails.logger.info('Content has been set')
|
|
41
41
|
# end
|
|
42
|
-
class TooManyParagraphs <
|
|
42
|
+
class TooManyParagraphs < Base
|
|
43
43
|
MSG = 'Organize method into 2 to 3 paragraphs (init, action, result).'
|
|
44
44
|
MAX_PARAGRAPHS = 3
|
|
45
45
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubocop-obsession
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jerome Dalbert
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-10-
|
|
11
|
+
date: 2024-10-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|