sevencop 0.30.0 → 0.31.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: 04df97299a228e2e8e8204799cb0b3d0c643a79c97ed4ec45f76f01b227e7e58
4
- data.tar.gz: 9515ca6115c293425384b9b25ab4b7e554e54b2bbef00407b3aa194d69bb8be5
3
+ metadata.gz: ee749fe11f72d661269fa08344e0b5f578a21517375a75d58f5c2bab1877fdcd
4
+ data.tar.gz: 15a392c82cc473f1a5c327e2b1a6f0e1620d3b8e405aa6e548b020559bd24afd
5
5
  SHA512:
6
- metadata.gz: 8e3ba17d74c6144d551fccab790249ccc242731f213b04016d0aabb4774281ae205c6807fee8527f4388bc2f29352a19925796393432392b81aa19d8940d0b63
7
- data.tar.gz: 6aaacdd215db0d477d1470eac9622d09c968fbba8d1eae8de96ef68baeea9a806bdd17bd9b7c8dff55814221cb282e0413aaa09ff4d51c542c3d5aa01f42d206
6
+ metadata.gz: 9c2ea95803821697a72157ab0608459b44467cb2ec868ba66dc21f2613f7ac4eb52745d69d19d5ea43dff6fb40e70ebc2b59110a7bd58ff9ece189b401532c74
7
+ data.tar.gz: f3e26944c43c61b5ccf1f0875117ce77aba7b1ca8f223e5b174ea7a2d4737407b949bc1e362aa1363ee350106b60dc1852ee89af55b5953393b5d7dec432c8d2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sevencop (0.30.0)
4
+ sevencop (0.31.0)
5
5
  activesupport
6
6
  rubocop
7
7
 
data/README.md CHANGED
@@ -29,6 +29,7 @@ Note that all cops are `Enabled: false` by default.
29
29
  ## Cops
30
30
 
31
31
  - [Sevencop/AutoloadOrdered](lib/rubocop/cop/sevencop/autoload_ordered.rb)
32
+ - [Sevencop/ConstantBase](lib/rubocop/cop/sevencop/constant_base.rb)
32
33
  - [Sevencop/FactoryBotAssociationOption](lib/rubocop/cop/sevencop/factory_bot_association_option.rb)
33
34
  - [Sevencop/FactoryBotAssociationStyle](lib/rubocop/cop/sevencop/factory_bot_association_style.rb)
34
35
  - [Sevencop/HashElementOrdered](lib/rubocop/cop/sevencop/hash_element_ordered.rb)
data/config/default.yml CHANGED
@@ -5,6 +5,12 @@ Sevencop/AutoloadOrdered:
5
5
  Safe: false
6
6
  VersionAdded: '0.12'
7
7
 
8
+ Sevencop/ConstantBase:
9
+ Description: |
10
+ Remove unnecessary `::` prefix from constant.
11
+ Enabled: false
12
+ VersionAdded: '0.31'
13
+
8
14
  Sevencop/FactoryBotAssociationOption:
9
15
  Description: |
10
16
  Remove redundant options from FactoryBot associations.
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Sevencop
6
+ # Remove unnecessary `::` prefix from constant.
7
+ #
8
+ # @example
9
+ # # bad
10
+ # ::Const
11
+ #
12
+ # # good
13
+ # Const
14
+ #
15
+ # # bad
16
+ # class << self
17
+ # ::Const
18
+ # end
19
+ #
20
+ # # good
21
+ # class << self
22
+ # Const
23
+ # end
24
+ #
25
+ # # good
26
+ # class Klass
27
+ # ::Const
28
+ # end
29
+ #
30
+ # # good
31
+ # class module
32
+ # ::Const
33
+ # end
34
+ class ConstantBase < Base
35
+ extend AutoCorrector
36
+
37
+ MSG = 'Remove unnecessary `::` prefix from constant.'
38
+
39
+ # @param node [RuboCop::AST::CbaseNode]
40
+ # @return [void]
41
+ def on_cbase(node)
42
+ return unless bad?(node)
43
+
44
+ add_offense(node) do |corrector|
45
+ corrector.remove(node)
46
+ end
47
+ end
48
+
49
+ private
50
+
51
+ # @!method named_class_or_module?(node)
52
+ # @param node [RuboCop::AST::Node]
53
+ # @return [Boolean]
54
+ def_node_matcher :named_class_or_module?, <<~PATTERN
55
+ ({class module} const ...)
56
+ PATTERN
57
+
58
+ # @param node [RuboCop::AST::CbaseNode]
59
+ # @return [Boolean]
60
+ def bad?(node)
61
+ node.each_ancestor(:class, :module).none?
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Sevencop
4
- VERSION = '0.30.0'
4
+ VERSION = '0.31.0'
5
5
  end
data/lib/sevencop.rb CHANGED
@@ -5,6 +5,7 @@ require_relative 'sevencop/rubocop_extension'
5
5
  require_relative 'sevencop/version'
6
6
 
7
7
  require_relative 'rubocop/cop/sevencop/autoload_ordered'
8
+ require_relative 'rubocop/cop/sevencop/constant_base'
8
9
  require_relative 'rubocop/cop/sevencop/factory_bot_association_option'
9
10
  require_relative 'rubocop/cop/sevencop/factory_bot_association_style'
10
11
  require_relative 'rubocop/cop/sevencop/hash_element_ordered'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sevencop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.0
4
+ version: 0.31.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Nakamura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-12 00:00:00.000000000 Z
11
+ date: 2022-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -57,6 +57,7 @@ files:
57
57
  - config/default.yml
58
58
  - data/reserved_words_mysql.txt
59
59
  - lib/rubocop/cop/sevencop/autoload_ordered.rb
60
+ - lib/rubocop/cop/sevencop/constant_base.rb
60
61
  - lib/rubocop/cop/sevencop/factory_bot_association_option.rb
61
62
  - lib/rubocop/cop/sevencop/factory_bot_association_style.rb
62
63
  - lib/rubocop/cop/sevencop/hash_element_ordered.rb