rubocop-sketchup 1.0.0 → 1.3.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 +4 -4
- data/Gemfile +2 -0
- data/lib/rubocop/sketchup/cop/requirements/exit.rb +4 -3
- data/lib/rubocop/sketchup/features.rb +49 -0
- data/lib/rubocop/sketchup/namespace_checker.rb +57 -0
- data/lib/rubocop/sketchup/sketchup_version.rb +1 -0
- data/lib/rubocop/sketchup/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: e9935671119993e41eef012a5f69fca2709a59d7db06d28c2e89ff9ea5721aa7
|
4
|
+
data.tar.gz: 05cba02d5fa27e8eab8b32cae46d586c68d5fec8922b959febf89ebd36660ced
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06e197b228db557e7d1b0ab9eeec6550e9a70a8e64fa4079f6f4e093249f0057390f9ce6f4270d15e1be956e36b684ff66f5e926a55d0a2b862e33d113a8a3c2
|
7
|
+
data.tar.gz: 54242ae1e4bb983394e9976f02893d98794ae46971755751bdbcea1b4ecdfd9e1c6e3c9e4dde6cd995e7977b788d8ec5fa3dab693723bdd84f30dd3717b8a590
|
data/Gemfile
CHANGED
@@ -9,6 +9,8 @@ group :test do
|
|
9
9
|
gem 'rake', '~> 12.0', require: false
|
10
10
|
gem 'rspec', '~> 3.7', require: false
|
11
11
|
gem 'rubocop-performance', '~> 1.11.0', require: false
|
12
|
+
gem 'rubocop-rake', '~> 0.6.0', require: false
|
13
|
+
gem 'rubocop-rspec', require: false
|
12
14
|
gem 'simplecov', '~> 0.10', require: false
|
13
15
|
end
|
14
16
|
|
@@ -13,18 +13,19 @@ module RuboCop
|
|
13
13
|
|
14
14
|
include SketchUp::NoCommentDisable
|
15
15
|
|
16
|
-
MSG = '`
|
16
|
+
MSG = '`%s` attempts to kill the Ruby interpreter. Use `return`, '\
|
17
17
|
'`next`, `break` or `raise` instead.'
|
18
18
|
|
19
19
|
# Reference: http://rubocop.readthedocs.io/en/latest/development/
|
20
20
|
def_node_matcher :exit?, <<-PATTERN
|
21
|
-
(send {(const nil? :Kernel) nil?} {:exit :exit!} ...)
|
21
|
+
(send {(const nil? :Kernel) nil?} {:abort :exit :exit!} ...)
|
22
22
|
PATTERN
|
23
23
|
|
24
24
|
def on_send(node)
|
25
25
|
return unless exit?(node)
|
26
26
|
|
27
|
-
|
27
|
+
message = format(MSG, node.method_name)
|
28
|
+
add_offense(node, location: :selector, message: message)
|
28
29
|
end
|
29
30
|
end
|
30
31
|
end
|
@@ -41,6 +41,51 @@ module RuboCop
|
|
41
41
|
|
42
42
|
FEATURES = [
|
43
43
|
|
44
|
+
{
|
45
|
+
version: 'LayOut 2022.0',
|
46
|
+
types: {
|
47
|
+
method: [
|
48
|
+
'Layout::AutoTextDefinition#end_page',
|
49
|
+
'Layout::AutoTextDefinition#end_page=',
|
50
|
+
'Layout::AutoTextDefinition#increment',
|
51
|
+
'Layout::AutoTextDefinition#increment=',
|
52
|
+
'Layout::AutoTextDefinition#number_style',
|
53
|
+
'Layout::AutoTextDefinition#number_style=',
|
54
|
+
'Layout::AutoTextDefinition#renumber',
|
55
|
+
'Layout::AutoTextDefinition#sequence_format',
|
56
|
+
'Layout::AutoTextDefinition#sequence_format=',
|
57
|
+
'Layout::AutoTextDefinition#start_page',
|
58
|
+
'Layout::AutoTextDefinition#start_page=',
|
59
|
+
],
|
60
|
+
},
|
61
|
+
},
|
62
|
+
|
63
|
+
{
|
64
|
+
version: 'SketchUp 2022.0',
|
65
|
+
types: {
|
66
|
+
class: [
|
67
|
+
'Sketchup::EntitiesBuilder',
|
68
|
+
],
|
69
|
+
method: [
|
70
|
+
'Sketchup::AppObserver#onExtensionsLoaded',
|
71
|
+
'Sketchup::ComponentDefinition#save_copy',
|
72
|
+
'Sketchup::Entities#build',
|
73
|
+
'Sketchup::EntitiesBuilder#add_edge',
|
74
|
+
'Sketchup::EntitiesBuilder#add_edges',
|
75
|
+
'Sketchup::EntitiesBuilder#add_face',
|
76
|
+
'Sketchup::EntitiesBuilder#add_line',
|
77
|
+
'Sketchup::EntitiesBuilder#entities',
|
78
|
+
'Sketchup::EntitiesBuilder#valid?',
|
79
|
+
'Sketchup::EntitiesBuilder#vertex_at',
|
80
|
+
'Sketchup::Face#clear_texture_position',
|
81
|
+
'UI::Command#extension',
|
82
|
+
'UI::Command#extension=',
|
83
|
+
'UI::Command#get_validation_proc',
|
84
|
+
'UI::Command#proc',
|
85
|
+
],
|
86
|
+
},
|
87
|
+
},
|
88
|
+
|
44
89
|
{
|
45
90
|
version: 'SketchUp 2021.1',
|
46
91
|
types: {
|
@@ -1231,6 +1276,7 @@ module RuboCop
|
|
1231
1276
|
camera_modified?
|
1232
1277
|
center_2d
|
1233
1278
|
classifications
|
1279
|
+
clear_texture_position
|
1234
1280
|
clip_to_margins?
|
1235
1281
|
clip_to_margins=
|
1236
1282
|
colorize_deltas
|
@@ -1259,6 +1305,7 @@ module RuboCop
|
|
1259
1305
|
get_drawingelement_visibility
|
1260
1306
|
get_glued_instances
|
1261
1307
|
get_texture_projection
|
1308
|
+
get_validation_proc
|
1262
1309
|
has_aligned_text?
|
1263
1310
|
has_aligned_text=
|
1264
1311
|
icon_name
|
@@ -1340,6 +1387,7 @@ module RuboCop
|
|
1340
1387
|
unload_schema
|
1341
1388
|
upper_left
|
1342
1389
|
upper_right
|
1390
|
+
vertex_at
|
1343
1391
|
visible_on_new_pages?
|
1344
1392
|
visible_on_new_pages=
|
1345
1393
|
winding
|
@@ -1352,6 +1400,7 @@ module RuboCop
|
|
1352
1400
|
onAfterComponentSaveAs
|
1353
1401
|
onBeforeComponentSaveAs
|
1354
1402
|
onElementModified
|
1403
|
+
onExtensionsLoaded
|
1355
1404
|
onExplode
|
1356
1405
|
onLayerChanged
|
1357
1406
|
onLayerFolderAdded
|
@@ -4,6 +4,35 @@ module RuboCop
|
|
4
4
|
module SketchUp
|
5
5
|
module NamespaceChecker
|
6
6
|
|
7
|
+
extend NodePattern::Macros
|
8
|
+
|
9
|
+
# Example:
|
10
|
+
# Array.include(Example)
|
11
|
+
def_node_matcher :klass_include, <<-PATTERN
|
12
|
+
(send
|
13
|
+
(const nil? $_) { :include | :extend } _)
|
14
|
+
PATTERN
|
15
|
+
|
16
|
+
# Example:
|
17
|
+
# class Array
|
18
|
+
# include Example
|
19
|
+
# end
|
20
|
+
def_node_matcher :klass_scope_include, <<-PATTERN
|
21
|
+
(
|
22
|
+
{
|
23
|
+
class (const nil? $_) nil? |
|
24
|
+
module (const nil? $_)
|
25
|
+
}
|
26
|
+
(send nil? { :include | :extend } _))
|
27
|
+
PATTERN
|
28
|
+
|
29
|
+
# Example:
|
30
|
+
# include Example
|
31
|
+
def_node_matcher :include_call?, <<-PATTERN
|
32
|
+
(send nil? { :include | :extend } _)
|
33
|
+
PATTERN
|
34
|
+
|
35
|
+
|
7
36
|
def on_class(node)
|
8
37
|
check_namespace(node)
|
9
38
|
end
|
@@ -22,12 +51,40 @@ module RuboCop
|
|
22
51
|
check_namespace(node)
|
23
52
|
end
|
24
53
|
|
54
|
+
def on_send(node)
|
55
|
+
klass = klass_include(node) || klass_scope_include(node.parent)
|
56
|
+
|
57
|
+
if klass
|
58
|
+
namespace = SketchUp::Namespace.new(klass.to_s)
|
59
|
+
return unless namespaces.include?(namespace.first)
|
60
|
+
else
|
61
|
+
# If klass is `nil` we either don't have a `include` call or we're in
|
62
|
+
# global namespace.
|
63
|
+
return unless top_level_include?(node)
|
64
|
+
end
|
65
|
+
|
66
|
+
add_offense(node, location: :selector, severity: :error)
|
67
|
+
end
|
68
|
+
|
25
69
|
def check_namespace(node)
|
26
70
|
return unless in_namespace?(node)
|
27
71
|
|
28
72
|
add_offense(node, location: :name, severity: :error)
|
29
73
|
end
|
30
74
|
|
75
|
+
def top_level?(node)
|
76
|
+
# parent_module_name might return nil if for instance a method is
|
77
|
+
# defined within a block. (Apparently that is possible...)
|
78
|
+
return false if node.parent_module_name.nil?
|
79
|
+
|
80
|
+
namespace = SketchUp::Namespace.new(node.parent_module_name)
|
81
|
+
namespace.top_level?
|
82
|
+
end
|
83
|
+
|
84
|
+
def top_level_include?(node)
|
85
|
+
include_call?(node) && top_level?(node)
|
86
|
+
end
|
87
|
+
|
31
88
|
def in_namespace?(node)
|
32
89
|
# parent_module_name might return nil if for instance a method is
|
33
90
|
# defined within a block. (Apparently that is possible...)
|
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: 1.
|
4
|
+
version: 1.3.0
|
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:
|
11
|
+
date: 2022-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -144,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '0'
|
146
146
|
requirements: []
|
147
|
-
rubygems_version: 3.
|
147
|
+
rubygems_version: 3.2.15
|
148
148
|
signing_key:
|
149
149
|
specification_version: 4
|
150
150
|
summary: RuboCop rules for SketchUp extensions.
|