platformos-check 0.3.3 → 0.4.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b962e236b71ab785e3e566413ae86c64c6d767d26d8871606cc639b1eae7023e
|
4
|
+
data.tar.gz: 0df29d550f5779ebe29ac285809144998d49cd7a8d8049769ac023d65cdde3de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8bcd3931092d2621dd74f174790ecc13213db17c56d11a9a174bdda6b5e7e22f8526b93553225fa6d884eb4af74e5249c2f78da2e88ad794f3b4064f935be33
|
7
|
+
data.tar.gz: ba1ca314fc5d0a154f2f74f52002204da03ce80edae7763e633b46fca31e56329f63f8e7343c52093c081c304c31e9462e5c8f52add1d328cf372e63005826fb
|
data/CHANGELOG.md
CHANGED
@@ -4,12 +4,11 @@ This check prevents errors by making sure that no undefined variables are being
|
|
4
4
|
|
5
5
|
## Check Details
|
6
6
|
|
7
|
-
This check is aimed at eliminating undefined object errors.
|
7
|
+
This check is aimed at eliminating undefined object errors. Additionally it reports any missing or unused attributes in render, function and background tags.
|
8
8
|
|
9
9
|
:-1: Examples of **incorrect** code for this check:
|
10
10
|
|
11
11
|
```liquid
|
12
|
-
{% assign greetings = "Hello" %}
|
13
12
|
{% if greeting == "Hello" %}
|
14
13
|
Hello
|
15
14
|
{% endif %}
|
@@ -31,7 +30,7 @@ This check is aimed at eliminating undefined object errors.
|
|
31
30
|
```liquid
|
32
31
|
{% liquid
|
33
32
|
# my_function body
|
34
|
-
assign my_arg = my_arg
|
33
|
+
assign my_arg = my_arg | default: nil
|
35
34
|
return my_arg
|
36
35
|
%}
|
37
36
|
```
|
@@ -196,9 +196,12 @@ module PlatformosCheck
|
|
196
196
|
|
197
197
|
def check_undefined(info, all_global_objects, render_node)
|
198
198
|
all_variables = info.all_variables
|
199
|
-
|
199
|
+
potentially_unused_variables = render_node.value.attributes.keys if render_node
|
200
200
|
info.each_variable_lookup(!!render_node) do |(key, node)|
|
201
201
|
name, line_number = key
|
202
|
+
|
203
|
+
potentially_unused_variables&.delete(name)
|
204
|
+
|
202
205
|
next if all_variables.include?(name)
|
203
206
|
next if all_global_objects.include?(name)
|
204
207
|
|
@@ -213,6 +216,11 @@ module PlatformosCheck
|
|
213
216
|
add_offense("Undefined object `#{name}`", node:, line_number:)
|
214
217
|
end
|
215
218
|
end
|
219
|
+
|
220
|
+
potentially_unused_variables -= render_node.value.internal_attributes if render_node && render_node.value.respond_to?(:internal_attributes)
|
221
|
+
potentially_unused_variables&.each do |name|
|
222
|
+
add_offense("Unused argument `#{name}`", node: render_node)
|
223
|
+
end
|
216
224
|
end
|
217
225
|
end
|
218
226
|
end
|
@@ -5,6 +5,7 @@ module PlatformosCheck
|
|
5
5
|
class Background < Base
|
6
6
|
PARTIAL_SYNTAX = /(#{Liquid::VariableSignature}+)\s*=\s*(.*)\s*/om
|
7
7
|
CLOSE_TAG_SYNTAX = /\A(.*)(?-mix:\{%-?)\s*(\w+)\s*(.*)?(?-mix:%\})\z/m # based on Liquid::Raw::FullTokenPossiblyInvalid
|
8
|
+
INTERNAL_ATTRIBUTES = %w[delay priority max_attempts source_name]
|
8
9
|
|
9
10
|
attr_reader :to, :from, :attributes, :value_expr, :partial_syntax, :partial_name
|
10
11
|
|
@@ -27,6 +28,10 @@ module PlatformosCheck
|
|
27
28
|
@attributes = attributes_expr
|
28
29
|
end
|
29
30
|
|
31
|
+
def internal_attributes
|
32
|
+
INTERNAL_ATTRIBUTES
|
33
|
+
end
|
34
|
+
|
30
35
|
def parse(tokens)
|
31
36
|
return super if @partial_syntax
|
32
37
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: platformos-check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Bliszczyk
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-09-
|
13
|
+
date: 2023-09-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: graphql
|