betterlint 1.6.0 → 1.7.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: 71ba27a1b021ee2c1543aba5603245ae2631a64525c7c7e5338457b1296c66a6
4
- data.tar.gz: e3c21186976d7d503c890cd4e0c8fed99d5c6f6ae20071a17fa697e9c4928ea7
3
+ metadata.gz: ec284b88f4606e1f10bb1a7e0c26794135b2f605077ac2ef472c9fff8ae1d80f
4
+ data.tar.gz: 25e9df31ca75903e469dadb172847f992b2bf4005679f76cc15343850697c5c2
5
5
  SHA512:
6
- metadata.gz: '048543b98c55befe6f306446a132f6f561598bf19ab9ffc4f74c6eb90b7ea5aa1d78d56594c34a2c8c6da7d79462329b8dadc8868af620fe53084189e7f6d604'
7
- data.tar.gz: 35388c596e5edc116860dd60796313b9d6569326e77929b5e05b0f48f6f13067534684ec9d37904e140ba4b2dea93f8e243e10ead8196ee1eaba34e6b600d898
6
+ metadata.gz: 56be31837c8216b387b4ad5baa0fb4362152354bb5b5c71ccd95f2cf49d58da5c3499f6765a3509b8773b585bd6a0df22d4092dbeefb2152011ec095520a2293
7
+ data.tar.gz: c0b3a8a0fde1eae38420afe105cba2a5f9b3ac9d5704695c45337a6ba78ddcd04b8642ba701d610ea2434fb3814459fc810e9e877839c06bb69194bbfabaa564
data/config/default.yml CHANGED
@@ -86,7 +86,7 @@ Layout/CaseIndentation:
86
86
  IndentOneStep: true
87
87
 
88
88
  Layout/ClosingParenthesisIndentation:
89
- Enabled: false
89
+ Enabled: true
90
90
 
91
91
  Layout/FirstArrayElementIndentation:
92
92
  EnforcedStyle: consistent
@@ -21,6 +21,7 @@ module RuboCop
21
21
  MSG
22
22
  METHOD_PATTERN = /^find_by_(.+?)(!)?$/
23
23
  FINDS = %i(find find_by find_by! where).freeze
24
+ GRAPHQL_PATTERN = /\bGraphQL\b/i
24
25
 
25
26
  def_node_matcher :custom_scope_find?, <<-PATTERN
26
27
  (send (send (const ... _) ...) {#{FINDS.map(&:inspect).join(' ')}} ...)
@@ -30,6 +31,10 @@ module RuboCop
30
31
  (send (const ... _) {#{FINDS.map(&:inspect).join(' ')}} ...)
31
32
  PATTERN
32
33
 
34
+ def_node_search :find_graphql_namespace_nodes, <<~PATTERN, name: GRAPHQL_PATTERN
35
+ (const _ %name)
36
+ PATTERN
37
+
33
38
  def initialize(config = nil, options = nil)
34
39
  super(config, options)
35
40
  config = @config.for_cop(self)
@@ -44,16 +49,26 @@ module RuboCop
44
49
  _, _, *arg_nodes = *node # rubocop:disable InternalAffairs/NodeDestructuring
45
50
  return unless
46
51
  (
47
- find?(node) ||
48
- custom_scope_find?(node) ||
49
- static_method_name(node.method_name)
52
+ find?(node) ||
53
+ custom_scope_find?(node) ||
54
+ static_method_name(node.method_name)
50
55
  ) && !@unauthenticated_models.include?(Utils::Parser.get_root_token(node))
51
56
 
52
- add_offense(node) if find_param_arg(arg_nodes)
57
+ add_offense(node) if find_param_arg(arg_nodes) || graphql_file? || graphql_namespace?(node)
53
58
  end
54
59
 
55
60
  private
56
61
 
62
+ def graphql_file?
63
+ processed_source.path&.match?(GRAPHQL_PATTERN)
64
+ end
65
+
66
+ def graphql_namespace?(node)
67
+ node
68
+ .each_ancestor(:class, :module)
69
+ .any? { |ancestor| find_graphql_namespace_nodes(ancestor).any? }
70
+ end
71
+
57
72
  def find_param_arg(arg_nodes)
58
73
  return unless arg_nodes
59
74
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: betterlint
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Development
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-28 00:00:00.000000000 Z
11
+ date: 2023-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -129,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
131
  requirements: []
132
- rubygems_version: 3.4.20
132
+ rubygems_version: 3.4.22
133
133
  signing_key:
134
134
  specification_version: 4
135
135
  summary: Betterment rubocop configuration