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: 4c66b91ae2f5056ef609c39db88b840882f2851d527d81da3945286729057e2b
4
- data.tar.gz: a81182571e69ab415c3f4479a8728b9d802bd6d228ec4d747d3eb1ab7c951f6f
3
+ metadata.gz: e71400ffe2efbaddd014f143a511597e0fc9d8eaba1a745e129687f332e49580
4
+ data.tar.gz: 65cc6969cac75295435a0e013df64b5d17ec8be2e3302e32c6f75423882b543f
5
5
  SHA512:
6
- metadata.gz: e12ed63bc17f8d1e9968b4d8a86748e718d0189f0529c4aedc27f3f40b1a464573b83ab31d734a71b4f1ad2aca3142ed14cc8c7d6d19940171dfb2c4f4b675f7
7
- data.tar.gz: 037bea071ddccafbb5cdea79d7fe69a513da277a2d661e8a959e9fa33e47f142c15cd77f4a8988d89f0cae93597e6c5dd42e10f259ff9ae7945053e6d9adce46
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
- def_node_search :sketchup_extension_new, <<-PATTERN
33
- (send
34
- (const {nil? cbase} :SketchupExtension) :new ...)
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
- extension_nodes = sketchup_extension_new(source_node).to_a
51
-
52
- # Threat instances not assigned to anything as non-existing.
53
- extension_nodes.select! { |node|
54
- node.parent&.assignment?
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 extension_nodes.size > 1
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
- extension_node = extension_nodes.first
65
- if extension_node.nil?
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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RuboCop
4
4
  module SketchUp
5
- VERSION = '2.1.0'
5
+ VERSION = '2.1.1'
6
6
  end
7
7
  end
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.0
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-05 00:00:00.000000000 Z
11
+ date: 2026-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64