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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b95d5ba5dafb534e8e3a9e5c49bd9724db92840e1ca00543251c48a6b0f74f5
4
- data.tar.gz: c6f7822017c94416417238387b5e16b76b00e401a8819a27c0d6df40ac1373c2
3
+ metadata.gz: 8acc90d7c82f23729f66dce9a0376410c1cdd2f01d71592b9c3575a4a9d9c416
4
+ data.tar.gz: 3d49905a627a5cfd72a00e73328a898fddb0c3a9f78942a32932486e87182eff
5
5
  SHA512:
6
- metadata.gz: 131bb0495d50ebd37c0c03aa81b22d79d3488d8428697cd3af4263342f884b1857363920c40fa6794ba99e1de3e118bf94cf205cee96cc0aad77525f040072ee
7
- data.tar.gz: f49be306dde9d6fda9db8d79a653c7814a4b43059265ceaf42fb4bbad2eee61fe112cb0ad56cdb152f626c26da9b54302f89f51f98652aa5ef37574ffcb06d45
6
+ metadata.gz: 80f9368358f530ff0eceef9a9a071b26a772b28aee8c8fe3199d8e9fc53571205c94ad2be9af4f8485c5c91f7de6934c7e16773fb3c460ed4ac5a9d68525a74a
7
+ data.tar.gz: d79f8f27058781abde3fb6773aa427714edb95deff385dc5777ca4d3b069d6bbd62d6b21178786a6f9b7ca9dad3745bbf46f78b40b1e737b5006ab5b4dda9028
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sevencop (0.14.0)
4
+ sevencop (0.15.0)
5
5
  rubocop
6
6
 
7
7
  GEM
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/BelongsToOptional:
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/BelongsToOptional](lib/rubocop/cop/sevencop/belongs_to_optional.rb)
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/MethodDefinitionKeywordArgumentsOrdered](lib/rubocop/cop/sevencop/method_definition_keyword_arguments_ordered.rb)
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/OrderField](lib/rubocop/cop/sevencop/order_field.rb)
56
- - [Sevencop/UniquenessValidatorExplicitCaseSensitivity](lib/rubocop/cop/sevencop/uniqueness_validator_explicit_case_sensitivity.rb)
57
- - [Sevencop/WhereNot](lib/rubocop/cop/sevencop/where_not.rb)
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/MethodDefinitionKeywordArgumentsOrdered:
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/OrderField:
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/UniquenessValidatorExplicitCaseSensitivity:
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/WhereNot:
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 MethodDefinitionKeywordArgumentsOrdered < Base
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(node) do |corrector|
40
+ add_offense(
41
+ range_with_comments(node)
42
+ ) do |corrector|
41
43
  swap(
42
- range_by_whole_lines(
43
- range_with_comments(previous_older_sibling),
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)
@@ -19,7 +19,7 @@ module RuboCop
19
19
  # # good (We cannot identify offenses in this case.)
20
20
  # belongs_to :group, options
21
21
  #
22
- class BelongsToOptional < Base
22
+ class RailsBelongsToOptional < Base
23
23
  extend AutoCorrector
24
24
 
25
25
  MSG = 'Specify :optional option.'
@@ -20,7 +20,7 @@ module RuboCop
20
20
  # # spec/models/user_spec.rb
21
21
  # RSpec.describe User, type: :request
22
22
  #
23
- class InferredSpecType < Base
23
+ class RailsInferredSpecType < Base
24
24
  extend AutoCorrector
25
25
 
26
26
  # @return [Array<Hash>]
@@ -22,7 +22,7 @@ module RuboCop
22
22
  # # good
23
23
  # reorder(Arel.sql('field(id, ?)'), a)
24
24
  #
25
- class OrderField < Base
25
+ class RailsOrderField < Base
26
26
  extend AutoCorrector
27
27
 
28
28
  MSG = 'Wrap safe SQL String by `Arel.sql`.'
@@ -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 UniquenessValidatorExplicitCaseSensitivity < Base
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 WhereNot < Base
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 where_not_with_multiple_elements_hash?(node)
22
- def_node_matcher :where_not_with_multiple_elements_hash?, <<~PATTERN
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 where_not_with_multiple_elements_hash?(node)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Sevencop
4
- VERSION = '0.14.0'
4
+ VERSION = '0.15.0'
5
5
  end
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/method_definition_keyword_arguments_ordered'
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/order_field'
14
- require_relative 'rubocop/cop/sevencop/uniqueness_validator_explicit_case_sensitivity'
15
- require_relative 'rubocop/cop/sevencop/where_not'
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.14.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/method_definition_keyword_arguments_ordered.rb
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/order_field.rb
52
- - lib/rubocop/cop/sevencop/uniqueness_validator_explicit_case_sensitivity.rb
53
- - lib/rubocop/cop/sevencop/where_not.rb
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