rubocop-sketchup 2.1.0 → 2.1.1
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: e71400ffe2efbaddd014f143a511597e0fc9d8eaba1a745e129687f332e49580
|
|
4
|
+
data.tar.gz: 65cc6969cac75295435a0e013df64b5d17ec8be2e3302e32c6f75423882b543f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fc305dbd24df0851c73cd0f89cc0b7560f60fb96988991a145d5f3323d52a5980d0bba517e8a78216d0c6d0ad65375944232d38c93bd9123a2f7115376d7c7f3
|
|
7
|
+
data.tar.gz: 6b3c92a2dac501d52c3ba4b458f48ba2e0265a68d9011e657bd5902b712bb408231115556ffa86925789d52d88918a9c791f5aa992ca8b2058565ea87a3a2488
|
|
@@ -29,9 +29,21 @@ module RuboCop
|
|
|
29
29
|
# rubocop:enable Layout/LineLength
|
|
30
30
|
|
|
31
31
|
# Reference: http://rubocop.readthedocs.io/en/latest/node_pattern/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
(
|
|
32
|
+
def_node_matcher :sketchup_extension_assignment, <<-PATTERN
|
|
33
|
+
{
|
|
34
|
+
({lvasgn ivasgn cvasgn gvasgn} $_
|
|
35
|
+
$(send (const {nil? cbase} :SketchupExtension) :new ...))
|
|
36
|
+
|
|
37
|
+
(casgn _ $_
|
|
38
|
+
$(send (const {nil? cbase} :SketchupExtension) :new ...))
|
|
39
|
+
|
|
40
|
+
(or_asgn
|
|
41
|
+
{
|
|
42
|
+
({lvasgn ivasgn cvasgn gvasgn} $_)
|
|
43
|
+
(casgn _ $_)
|
|
44
|
+
}
|
|
45
|
+
$(send (const {nil? cbase} :SketchupExtension) :new ...))
|
|
46
|
+
}
|
|
35
47
|
PATTERN
|
|
36
48
|
|
|
37
49
|
def_node_search :sketchup_register_extension, <<-PATTERN
|
|
@@ -46,27 +58,34 @@ module RuboCop
|
|
|
46
58
|
|
|
47
59
|
source_node = processed_source.ast
|
|
48
60
|
|
|
49
|
-
# Look for SketchupExtension.new.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
61
|
+
# Look for assigned SketchupExtension.new instances.
|
|
62
|
+
assignment_nodes = source_node.each_descendant(
|
|
63
|
+
:or_asgn,
|
|
64
|
+
:lvasgn,
|
|
65
|
+
:ivasgn,
|
|
66
|
+
:cvasgn,
|
|
67
|
+
:gvasgn,
|
|
68
|
+
:casgn
|
|
69
|
+
)
|
|
70
|
+
assignments = assignment_nodes.filter_map do |node|
|
|
71
|
+
sketchup_extension_assignment(node)
|
|
72
|
+
end
|
|
56
73
|
|
|
57
74
|
# There should not be multiple instances.
|
|
58
|
-
if
|
|
75
|
+
if assignments.size > 1
|
|
59
76
|
add_global_offense(MSG_CREATE_ONE)
|
|
60
77
|
return
|
|
61
78
|
end
|
|
62
79
|
|
|
63
80
|
# There should be exactly one.
|
|
64
|
-
|
|
65
|
-
if
|
|
81
|
+
assignment = assignments.first
|
|
82
|
+
if assignment.nil?
|
|
66
83
|
add_global_offense(MSG_CREATE_MISSING)
|
|
67
84
|
return
|
|
68
85
|
end
|
|
69
86
|
|
|
87
|
+
extension_var, extension_node = assignment
|
|
88
|
+
|
|
70
89
|
# Ensure it have two arguments.
|
|
71
90
|
if extension_node.arguments.size < 2
|
|
72
91
|
message = if extension_node.arguments.size == 1
|
|
@@ -79,14 +98,6 @@ module RuboCop
|
|
|
79
98
|
return
|
|
80
99
|
end
|
|
81
100
|
|
|
82
|
-
# Find the name of the value SketchupExtension.new was assigned to.
|
|
83
|
-
assignment_node = extension_node.parent
|
|
84
|
-
if assignment_node.casgn_type?
|
|
85
|
-
extension_var = assignment_node.to_a[1]
|
|
86
|
-
else
|
|
87
|
-
extension_var = assignment_node.to_a[0]
|
|
88
|
-
end
|
|
89
|
-
|
|
90
101
|
# Look for Sketchup.register and make sure it register the extension
|
|
91
102
|
# object detected earlier.
|
|
92
103
|
registered_vars = sketchup_register_extension(source_node).to_a
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubocop-sketchup
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.1.
|
|
4
|
+
version: 2.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Trimble Inc, SketchUp Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-02-
|
|
11
|
+
date: 2026-02-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|