rubocop-graphql 0.14.2 → 0.14.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/default.yml +1 -0
- data/lib/rubocop/cop/graphql/argument_uniqueness.rb +10 -3
- data/lib/rubocop/cop/graphql/legacy_dsl.rb +2 -1
- data/lib/rubocop/cop/graphql/unused_argument.rb +21 -4
- data/lib/rubocop/graphql/swap_range.rb +7 -7
- data/lib/rubocop/graphql/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c4b8fdbb39f5e0bea2bbcce54cdd520480f1e412a2b3c5ce549b7c37a5e2cbb
|
4
|
+
data.tar.gz: 5e6065465cad8df870476977d0b9e4ac64869c27a4247570c5d6d6d56bb32577
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 267c257092e56d804772fa9f58e0e657151348758d80b7b453b07c00e0aa33651b61f326424822f2fcc272dacff45a245820c3a9eea8bbe00e344ed6ff17bc83
|
7
|
+
data.tar.gz: badf0bbcdefc806c43cdc60defadf002cfc645dfb6c2f6bf6609b444c18cd9c13bb81b4a4c48eebf3ae25ffbdaf477678d6807349133866098736387d483df90
|
data/config/default.yml
CHANGED
@@ -59,7 +59,7 @@ module RuboCop
|
|
59
59
|
|
60
60
|
def register_offense(current)
|
61
61
|
current_field_name = field_name(current)
|
62
|
-
field_name_message = " in field
|
62
|
+
field_name_message = " in field #{current_field_name}" if current_field_name
|
63
63
|
|
64
64
|
message = format(
|
65
65
|
self.class::MSG,
|
@@ -81,9 +81,16 @@ module RuboCop
|
|
81
81
|
is_field_block = node.block_type? &&
|
82
82
|
node.respond_to?(:method_name) &&
|
83
83
|
node.method_name == :field
|
84
|
-
return node.send_node.first_argument.value.to_s if is_field_block
|
85
84
|
|
86
|
-
field_name(node.parent)
|
85
|
+
return field_name(node.parent) unless is_field_block
|
86
|
+
|
87
|
+
first_argument = node.send_node.first_argument
|
88
|
+
if first_argument.lvar_type?
|
89
|
+
variable_name = first_argument.children.first
|
90
|
+
return "with name from `#{variable_name}` variable"
|
91
|
+
end
|
92
|
+
|
93
|
+
"`#{first_argument.value}`"
|
87
94
|
end
|
88
95
|
|
89
96
|
def_node_search :argument_declarations, <<~PATTERN
|
@@ -29,7 +29,8 @@ module RuboCop
|
|
29
29
|
)
|
30
30
|
PATTERN
|
31
31
|
|
32
|
-
MSG = "Avoid using legacy based type-based definitions.
|
32
|
+
MSG = "Avoid using legacy based type-based definitions. " \
|
33
|
+
"Use class-based definitions instead."
|
33
34
|
|
34
35
|
def on_send(node)
|
35
36
|
return unless node.parent.type == :block
|
@@ -79,9 +79,14 @@ module RuboCop
|
|
79
79
|
private
|
80
80
|
|
81
81
|
def find_declared_arg_nodes(node)
|
82
|
-
|
83
|
-
|
84
|
-
|
82
|
+
node.each_child_node.flat_map do |child|
|
83
|
+
if scoped_node?(child)
|
84
|
+
[]
|
85
|
+
elsif argument_declaration?(child)
|
86
|
+
[child]
|
87
|
+
else
|
88
|
+
find_declared_arg_nodes(child)
|
89
|
+
end
|
85
90
|
end
|
86
91
|
end
|
87
92
|
|
@@ -158,7 +163,19 @@ module RuboCop
|
|
158
163
|
declared_arg.name
|
159
164
|
end
|
160
165
|
|
161
|
-
|
166
|
+
def scoped_node?(node)
|
167
|
+
scope_changing_syntax?(node) || block_or_lambda?(node)
|
168
|
+
end
|
169
|
+
|
170
|
+
def scope_changing_syntax?(node)
|
171
|
+
node.def_type? || node.defs_type? || node.class_type? || node.module_type?
|
172
|
+
end
|
173
|
+
|
174
|
+
def block_or_lambda?(node)
|
175
|
+
node.block_type? || node.lambda_type?
|
176
|
+
end
|
177
|
+
|
178
|
+
def_node_matcher :argument_declaration?, <<~PATTERN
|
162
179
|
(send nil? :argument (:sym _) ...)
|
163
180
|
PATTERN
|
164
181
|
|
@@ -3,22 +3,22 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module GraphQL
|
5
5
|
module SwapRange
|
6
|
+
include RuboCop::Cop::RangeHelp
|
7
|
+
|
6
8
|
def swap_range(corrector, current, previous)
|
7
9
|
current_range = declaration(current)
|
8
10
|
previous_range = declaration(previous)
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
corrector.replace(current_range, src2)
|
14
|
-
corrector.replace(previous_range, src1)
|
12
|
+
corrector.insert_before(previous_range, current_range.source)
|
13
|
+
corrector.remove(current_range)
|
15
14
|
end
|
16
15
|
|
17
16
|
def declaration(node)
|
18
17
|
buffer = processed_source.buffer
|
19
|
-
begin_pos = node.source_range.begin_pos
|
18
|
+
begin_pos = range_by_whole_lines(node.source_range).begin_pos
|
20
19
|
end_line = buffer.line_for_position(node.loc.expression.end_pos)
|
21
|
-
end_pos = buffer.line_range(end_line)
|
20
|
+
end_pos = range_by_whole_lines(buffer.line_range(end_line),
|
21
|
+
include_final_newline: true).end_pos
|
22
22
|
Parser::Source::Range.new(buffer, begin_pos, end_pos)
|
23
23
|
end
|
24
24
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop-graphql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.14.
|
4
|
+
version: 0.14.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Tsepelev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -142,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
142
|
- !ruby/object:Gem::Version
|
143
143
|
version: '0'
|
144
144
|
requirements: []
|
145
|
-
rubygems_version: 3.
|
145
|
+
rubygems_version: 3.3.3
|
146
146
|
signing_key:
|
147
147
|
specification_version: 4
|
148
148
|
summary: Automatic performance checking tool for Ruby code.
|