sevencop 0.14.0 → 0.15.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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +8 -7
- data/config/default.yml +17 -17
- data/lib/rubocop/cop/sevencop/{method_definition_keyword_arguments_ordered.rb → method_definition_keyword_argument_ordered.rb} +1 -1
- data/lib/rubocop/cop/sevencop/method_definition_ordered.rb +14 -9
- data/lib/rubocop/cop/sevencop/{belongs_to_optional.rb → rails_belongs_to_optional.rb} +1 -1
- data/lib/rubocop/cop/sevencop/{inferred_spec_type.rb → rails_inferred_spec_type.rb} +1 -1
- data/lib/rubocop/cop/sevencop/{order_field.rb → rails_order_field.rb} +1 -1
- data/lib/rubocop/cop/sevencop/{uniqueness_validator_explicit_case_sensitivity.rb → rails_uniqueness_validator_explicit_case_sensitivity.rb} +1 -1
- data/lib/rubocop/cop/sevencop/{where_not.rb → rails_where_not.rb} +4 -4
- data/lib/sevencop/version.rb +1 -1
- data/lib/sevencop.rb +6 -6
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8acc90d7c82f23729f66dce9a0376410c1cdd2f01d71592b9c3575a4a9d9c416
|
|
4
|
+
data.tar.gz: 3d49905a627a5cfd72a00e73328a898fddb0c3a9f78942a32932486e87182eff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 80f9368358f530ff0eceef9a9a071b26a772b28aee8c8fe3199d8e9fc53571205c94ad2be9af4f8485c5c91f7de6934c7e16773fb3c460ed4ac5a9d68525a74a
|
|
7
|
+
data.tar.gz: d79f8f27058781abde3fb6773aa427714edb95deff385dc5777ca4d3b069d6bbd62d6b21178786a6f9b7ca9dad3745bbf46f78b40b1e737b5006ab5b4dda9028
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -38,7 +38,7 @@ then enable the cops you want to use:
|
|
|
38
38
|
|
|
39
39
|
```yaml
|
|
40
40
|
# .rubocop.yml
|
|
41
|
-
Sevencop/
|
|
41
|
+
Sevencop/RailsBelongsToOptional:
|
|
42
42
|
Enabled: true
|
|
43
43
|
```
|
|
44
44
|
|
|
@@ -46,14 +46,15 @@ Sevencop/BelongsToOptional:
|
|
|
46
46
|
|
|
47
47
|
See YARD comments in each cop class for details:
|
|
48
48
|
|
|
49
|
-
- [Sevencop/
|
|
49
|
+
- [Sevencop/AutoloadOrdered](lib/rubocop/cop/sevencop/autoload_ordered.rb)
|
|
50
50
|
- [Sevencop/HashElementOrdered](lib/rubocop/cop/sevencop/hash_element_ordered.rb)
|
|
51
|
-
- [Sevencop/InferredSpecType](lib/rubocop/cop/sevencop/inferred_spec_type.rb)
|
|
52
51
|
- [Sevencop/MethodDefinitionArgumentsMultiline](lib/rubocop/cop/sevencop/method_definition_arguments_multiline.rb)
|
|
53
|
-
- [Sevencop/
|
|
52
|
+
- [Sevencop/MethodDefinitionKeywordArgumentOrdered](lib/rubocop/cop/sevencop/method_definition_keyword_argument_ordered.rb)
|
|
54
53
|
- [Sevencop/MethodDefinitionOrdered](lib/rubocop/cop/sevencop/method_definition_ordered.rb)
|
|
55
|
-
- [Sevencop/
|
|
56
|
-
- [Sevencop/
|
|
57
|
-
- [Sevencop/
|
|
54
|
+
- [Sevencop/RailsBelongsToOptional](lib/rubocop/cop/sevencop/rails_belongs_to_optional.rb)
|
|
55
|
+
- [Sevencop/RailsInferredSpecType](lib/rubocop/cop/sevencop/rails_inferred_spec_type.rb)
|
|
56
|
+
- [Sevencop/RailsOrderField](lib/rubocop/cop/sevencop/rails_order_field.rb)
|
|
57
|
+
- [Sevencop/RailsUniquenessValidatorExplicitCaseSensitivity](lib/rubocop/cop/sevencop/rails_uniqueness_validator_explicit_case_sensitivity.rb)
|
|
58
|
+
- [Sevencop/RailsWhereNot](lib/rubocop/cop/sevencop/rails_where_not.rb)
|
|
58
59
|
|
|
59
60
|
Note that all cops are `Enabled: false` by default.
|
data/config/default.yml
CHANGED
|
@@ -4,25 +4,12 @@ Sevencop/AutoloadOrdered:
|
|
|
4
4
|
Enabled: false
|
|
5
5
|
VersionAdded: '0.12'
|
|
6
6
|
|
|
7
|
-
Sevencop/BelongsToOptional:
|
|
8
|
-
Description: |
|
|
9
|
-
Force `belongs_to` with `optional: true` option.
|
|
10
|
-
Enabled: false
|
|
11
|
-
Safe: false
|
|
12
|
-
VersionAdded: '0.5'
|
|
13
|
-
|
|
14
7
|
Sevencop/HashElementOrdered:
|
|
15
8
|
Description: |
|
|
16
9
|
Sort Hash elements by key.
|
|
17
10
|
Enabled: false
|
|
18
11
|
VersionAdded: '0.6'
|
|
19
12
|
|
|
20
|
-
Sevencop/InferredSpecType:
|
|
21
|
-
Description: |
|
|
22
|
-
Identifies redundant spec type.
|
|
23
|
-
Enabled: false
|
|
24
|
-
VersionAdded: '0.9'
|
|
25
|
-
|
|
26
13
|
Sevencop/MethodDefinitionArgumentsMultiline:
|
|
27
14
|
Description: |
|
|
28
15
|
Inserts new lines between method definition arguments.
|
|
@@ -35,27 +22,40 @@ Sevencop/MethodDefinitionOrdered:
|
|
|
35
22
|
Enabled: false
|
|
36
23
|
VersionAdded: '0.14'
|
|
37
24
|
|
|
38
|
-
Sevencop/
|
|
25
|
+
Sevencop/MethodDefinitionKeywordArgumentOrdered:
|
|
39
26
|
Description: |
|
|
40
27
|
Sort method definition keyword arguments in alphabetical order.
|
|
41
28
|
Enabled: false
|
|
42
29
|
VersionAdded: '0.13'
|
|
43
30
|
|
|
44
|
-
Sevencop/
|
|
31
|
+
Sevencop/RailsBelongsToOptional:
|
|
32
|
+
Description: |
|
|
33
|
+
Force `belongs_to` with `optional: true` option.
|
|
34
|
+
Enabled: false
|
|
35
|
+
Safe: false
|
|
36
|
+
VersionAdded: '0.5'
|
|
37
|
+
|
|
38
|
+
Sevencop/RailsInferredSpecType:
|
|
39
|
+
Description: |
|
|
40
|
+
Identifies redundant spec type.
|
|
41
|
+
Enabled: false
|
|
42
|
+
VersionAdded: '0.9'
|
|
43
|
+
|
|
44
|
+
Sevencop/RailsOrderField:
|
|
45
45
|
Description: |
|
|
46
46
|
Wrap safe SQL String by `Arel.sql`.
|
|
47
47
|
Enabled: false
|
|
48
48
|
Safe: false
|
|
49
49
|
VersionAdded: '0.4'
|
|
50
50
|
|
|
51
|
-
Sevencop/
|
|
51
|
+
Sevencop/RailsUniquenessValidatorExplicitCaseSensitivity:
|
|
52
52
|
Description: |
|
|
53
53
|
Specify :case_sensitivity option on use of UniquenessValidator.
|
|
54
54
|
Enabled: false
|
|
55
55
|
Safe: false
|
|
56
56
|
VersionAdded: '0.3'
|
|
57
57
|
|
|
58
|
-
Sevencop/
|
|
58
|
+
Sevencop/RailsWhereNot:
|
|
59
59
|
Description: |
|
|
60
60
|
Identifies passing multi-elements Hash literal to `where.not`.
|
|
61
61
|
Enabled: false
|
|
@@ -17,7 +17,7 @@ module RuboCop
|
|
|
17
17
|
#
|
|
18
18
|
# # good
|
|
19
19
|
# def foo(c:, d:, a: 2, b: 1); end
|
|
20
|
-
class
|
|
20
|
+
class MethodDefinitionKeywordArgumentOrdered < Base
|
|
21
21
|
extend AutoCorrector
|
|
22
22
|
|
|
23
23
|
MSG = 'Sort method definition keyword arguments in alphabetical order.'
|
|
@@ -37,16 +37,12 @@ module RuboCop
|
|
|
37
37
|
previous_older_sibling = find_previous_older_sibling(node)
|
|
38
38
|
return unless previous_older_sibling
|
|
39
39
|
|
|
40
|
-
add_offense(
|
|
40
|
+
add_offense(
|
|
41
|
+
range_with_comments(node)
|
|
42
|
+
) do |corrector|
|
|
41
43
|
swap(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
include_final_newline: true
|
|
45
|
-
),
|
|
46
|
-
range_by_whole_lines(
|
|
47
|
-
range_with_comments(node),
|
|
48
|
-
include_final_newline: true
|
|
49
|
-
),
|
|
44
|
+
range_with_comments_and_lines(previous_older_sibling),
|
|
45
|
+
range_with_comments_and_lines(node),
|
|
50
46
|
corrector: corrector
|
|
51
47
|
)
|
|
52
48
|
end
|
|
@@ -86,6 +82,15 @@ module RuboCop
|
|
|
86
82
|
end
|
|
87
83
|
end
|
|
88
84
|
|
|
85
|
+
# @param node [RuboCop::AST::Node]
|
|
86
|
+
# @return [Parser::Source::Range]
|
|
87
|
+
def range_with_comments_and_lines(node)
|
|
88
|
+
range_by_whole_lines(
|
|
89
|
+
range_with_comments(node),
|
|
90
|
+
include_final_newline: true
|
|
91
|
+
)
|
|
92
|
+
end
|
|
93
|
+
|
|
89
94
|
# @param node [RuboCop::AST::DefNode]
|
|
90
95
|
# @return [#<=>]
|
|
91
96
|
def sort_key_of(node)
|
|
@@ -26,7 +26,7 @@ module RuboCop
|
|
|
26
26
|
# # good
|
|
27
27
|
# validates :name, uniqueness: { allow_nil: true, scope: :user_id, case_sensitive: true }
|
|
28
28
|
#
|
|
29
|
-
class
|
|
29
|
+
class RailsUniquenessValidatorExplicitCaseSensitivity < Base
|
|
30
30
|
extend AutoCorrector
|
|
31
31
|
|
|
32
32
|
MSG = 'Specify :case_sensitivity option on use of UniquenessValidator.'
|
|
@@ -13,13 +13,13 @@ module RuboCop
|
|
|
13
13
|
# # good
|
|
14
14
|
# where.not(key1: value1).where.not(key2: value2)
|
|
15
15
|
#
|
|
16
|
-
class
|
|
16
|
+
class RailsWhereNot < Base
|
|
17
17
|
extend AutoCorrector
|
|
18
18
|
|
|
19
19
|
MSG = 'Use `where.not(key1: value1).where.not(key2: value2)` style.'
|
|
20
20
|
|
|
21
|
-
# @!method
|
|
22
|
-
def_node_matcher :
|
|
21
|
+
# @!method rails_where_not_with_multiple_elements_hash?(node)
|
|
22
|
+
def_node_matcher :rails_where_not_with_multiple_elements_hash?, <<~PATTERN
|
|
23
23
|
(send
|
|
24
24
|
(send _ :where) :not
|
|
25
25
|
({ hash | kwargs }
|
|
@@ -28,7 +28,7 @@ module RuboCop
|
|
|
28
28
|
PATTERN
|
|
29
29
|
|
|
30
30
|
def on_send(node)
|
|
31
|
-
return unless
|
|
31
|
+
return unless rails_where_not_with_multiple_elements_hash?(node)
|
|
32
32
|
|
|
33
33
|
add_offense(node) do |corrector|
|
|
34
34
|
pairs = node.children[2].children
|
data/lib/sevencop/version.rb
CHANGED
data/lib/sevencop.rb
CHANGED
|
@@ -4,12 +4,12 @@ require_relative 'sevencop/rubocop_extension'
|
|
|
4
4
|
require_relative 'sevencop/version'
|
|
5
5
|
|
|
6
6
|
require_relative 'rubocop/cop/sevencop/autoload_ordered'
|
|
7
|
-
require_relative 'rubocop/cop/sevencop/belongs_to_optional'
|
|
8
7
|
require_relative 'rubocop/cop/sevencop/hash_element_ordered'
|
|
9
|
-
require_relative 'rubocop/cop/sevencop/inferred_spec_type'
|
|
10
8
|
require_relative 'rubocop/cop/sevencop/method_definition_arguments_multiline'
|
|
11
|
-
require_relative 'rubocop/cop/sevencop/
|
|
9
|
+
require_relative 'rubocop/cop/sevencop/method_definition_keyword_argument_ordered'
|
|
12
10
|
require_relative 'rubocop/cop/sevencop/method_definition_ordered'
|
|
13
|
-
require_relative 'rubocop/cop/sevencop/
|
|
14
|
-
require_relative 'rubocop/cop/sevencop/
|
|
15
|
-
require_relative 'rubocop/cop/sevencop/
|
|
11
|
+
require_relative 'rubocop/cop/sevencop/rails_belongs_to_optional'
|
|
12
|
+
require_relative 'rubocop/cop/sevencop/rails_inferred_spec_type'
|
|
13
|
+
require_relative 'rubocop/cop/sevencop/rails_order_field'
|
|
14
|
+
require_relative 'rubocop/cop/sevencop/rails_uniqueness_validator_explicit_case_sensitivity'
|
|
15
|
+
require_relative 'rubocop/cop/sevencop/rails_where_not'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sevencop
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.15.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryo Nakamura
|
|
@@ -42,15 +42,15 @@ files:
|
|
|
42
42
|
- Rakefile
|
|
43
43
|
- config/default.yml
|
|
44
44
|
- lib/rubocop/cop/sevencop/autoload_ordered.rb
|
|
45
|
-
- lib/rubocop/cop/sevencop/belongs_to_optional.rb
|
|
46
45
|
- lib/rubocop/cop/sevencop/hash_element_ordered.rb
|
|
47
|
-
- lib/rubocop/cop/sevencop/inferred_spec_type.rb
|
|
48
46
|
- lib/rubocop/cop/sevencop/method_definition_arguments_multiline.rb
|
|
49
|
-
- lib/rubocop/cop/sevencop/
|
|
47
|
+
- lib/rubocop/cop/sevencop/method_definition_keyword_argument_ordered.rb
|
|
50
48
|
- lib/rubocop/cop/sevencop/method_definition_ordered.rb
|
|
51
|
-
- lib/rubocop/cop/sevencop/
|
|
52
|
-
- lib/rubocop/cop/sevencop/
|
|
53
|
-
- lib/rubocop/cop/sevencop/
|
|
49
|
+
- lib/rubocop/cop/sevencop/rails_belongs_to_optional.rb
|
|
50
|
+
- lib/rubocop/cop/sevencop/rails_inferred_spec_type.rb
|
|
51
|
+
- lib/rubocop/cop/sevencop/rails_order_field.rb
|
|
52
|
+
- lib/rubocop/cop/sevencop/rails_uniqueness_validator_explicit_case_sensitivity.rb
|
|
53
|
+
- lib/rubocop/cop/sevencop/rails_where_not.rb
|
|
54
54
|
- lib/sevencop.rb
|
|
55
55
|
- lib/sevencop/config_loader.rb
|
|
56
56
|
- lib/sevencop/rubocop_extension.rb
|