sevencop 0.14.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
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