rubocop-sketchup 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/config/default.yml +22 -0
- data/lib/rubocop-sketchup.rb +3 -0
- data/lib/rubocop/sketchup/config.rb +12 -0
- data/lib/rubocop/sketchup/dc_methods.rb +130 -0
- data/lib/rubocop/sketchup/features.rb +738 -0
- data/lib/rubocop/sketchup/inject.rb +2 -0
- data/lib/rubocop/sketchup/namespace.rb +1 -1
- data/lib/rubocop/sketchup/requirements/extension_namespace.rb +15 -1
- data/lib/rubocop/sketchup/requirements/file_structure.rb +1 -0
- data/lib/rubocop/sketchup/requirements/global_include.rb +35 -0
- data/lib/rubocop/sketchup/requirements/minimal_registration.rb +1 -1
- data/lib/rubocop/sketchup/requirements/observers_start_operation.rb +135 -0
- data/lib/rubocop/sketchup/requirements/register_extension.rb +1 -1
- data/lib/rubocop/sketchup/requirements/sketchup_extension.rb +22 -14
- data/lib/rubocop/sketchup/sketchup_version.rb +85 -0
- data/lib/rubocop/sketchup/suggestions/compatibility.rb +89 -0
- data/lib/rubocop/sketchup/suggestions/dc_internals.rb +3 -3
- data/lib/rubocop/sketchup/suggestions/file_encoding.rb +1 -4
- data/lib/rubocop/sketchup/suggestions/monkey_patched_api.rb +41 -0
- data/lib/rubocop/sketchup/suggestions/operation_name.rb +2 -0
- data/lib/rubocop/sketchup/suggestions/sketchup_require.rb +24 -2
- data/lib/rubocop/sketchup/version.rb +1 -1
- data/rubocop-sketchup.gemspec +1 -1
- metadata +11 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e87c5eb2f0e9d6ebeeac8f7b83686e40eb5357f
|
4
|
+
data.tar.gz: 51f64f97d094f38df5a730aa22677dcda3741617
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc99a7230d75286b26ae86c6029458782b53b7ad841fa2863ee762ffaa4731a91122cc57361768b9201f9f6bc98da202e693c106f5bd31f8a68d02df4b119f04
|
7
|
+
data.tar.gz: e0b6b2b2f2a7fb8117f1e20830d4d56b3cb9667530012b13e0580c30f779d26eacd4b8dc20533a3ac668682163cde24785ba10966fe8cf71a87f0432c9334c2c
|
data/Gemfile
CHANGED
data/config/default.yml
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
AllCops:
|
3
3
|
SketchUp:
|
4
4
|
SourcePath: src
|
5
|
+
TargetSketchUpVersion: 2016
|
5
6
|
|
6
7
|
SketchupDeprecations/AddSeparatorToMenu:
|
7
8
|
Description: The method `add_separator_to_menu` is deprecated.
|
@@ -91,6 +92,7 @@ SketchupRequirements/ExtensionNamespace:
|
|
91
92
|
To avoid clashing with other extensions a single root namespace
|
92
93
|
should all the extension's code.
|
93
94
|
Enabled: true
|
95
|
+
Exceptions: []
|
94
96
|
|
95
97
|
SketchupRequirements/FileStructure:
|
96
98
|
Description: Expected extension file structure not found.
|
@@ -103,6 +105,10 @@ SketchupRequirements/GlobalConstants:
|
|
103
105
|
Description: Do not introduce global constants.
|
104
106
|
Enabled: true
|
105
107
|
|
108
|
+
SketchupRequirements/GlobalInclude:
|
109
|
+
Description: Do not include modules into global namespace.
|
110
|
+
Enabled: true
|
111
|
+
|
106
112
|
SketchupRequirements/GlobalMethods:
|
107
113
|
Description: Extensions should not define global methods.
|
108
114
|
Enabled: true
|
@@ -133,6 +139,13 @@ SketchupRequirements/MinimalRegistration:
|
|
133
139
|
it's disabled.
|
134
140
|
Enabled: true
|
135
141
|
|
142
|
+
SketchupRequirements/ObserversStartOperation:
|
143
|
+
Description: Observers should create transparent operations.
|
144
|
+
Details: >-
|
145
|
+
When making model changes within an observer event, start a
|
146
|
+
transparent operation to ensure a clean undo-stack.
|
147
|
+
Enabled: true
|
148
|
+
|
136
149
|
SketchupRequirements/RegisterExtension:
|
137
150
|
Description: >-
|
138
151
|
Always register extensions to load by default. Otherwise it
|
@@ -193,6 +206,15 @@ SketchupSuggestions/ModelEntities:
|
|
193
206
|
model root.
|
194
207
|
Enabled: true
|
195
208
|
|
209
|
+
SketchupSuggestions/MonkeyPatchedApi:
|
210
|
+
Description: >-
|
211
|
+
Avoid using monkey-patched methods from SketchUp's shipped
|
212
|
+
extensions.
|
213
|
+
Details: >-
|
214
|
+
These methods stops working when the extensions are disabled and
|
215
|
+
may change or be removed.
|
216
|
+
Enabled: true
|
217
|
+
|
196
218
|
SketchupSuggestions/OperationName:
|
197
219
|
Description: >-
|
198
220
|
Check that operation names are human friendly and consistent
|
data/lib/rubocop-sketchup.rb
CHANGED
@@ -6,10 +6,13 @@ require 'rubocop/sketchup/inject'
|
|
6
6
|
require 'rubocop/sketchup/formatter/extension_review'
|
7
7
|
require 'rubocop/sketchup/config'
|
8
8
|
require 'rubocop/sketchup/dc_globals'
|
9
|
+
require 'rubocop/sketchup/dc_methods'
|
9
10
|
require 'rubocop/sketchup/extension_project'
|
11
|
+
require 'rubocop/sketchup/features'
|
10
12
|
require 'rubocop/sketchup/namespace'
|
11
13
|
require 'rubocop/sketchup/namespace_checker'
|
12
14
|
require 'rubocop/sketchup/no_comment_disable'
|
15
|
+
require 'rubocop/sketchup/sketchup_version'
|
13
16
|
|
14
17
|
RuboCop::SketchUp::Inject.defaults!
|
15
18
|
|
@@ -17,6 +17,7 @@ module RuboCop
|
|
17
17
|
config.for_all_cops.fetch('SketchUp', DEFAULT_CONFIGURATION)
|
18
18
|
end
|
19
19
|
|
20
|
+
|
20
21
|
def sketchup_source_path_config?
|
21
22
|
return unless all_cops_config.key?('SketchUp')
|
22
23
|
all_cops_config.fetch('SketchUp').key?('SourcePath')
|
@@ -26,6 +27,17 @@ module RuboCop
|
|
26
27
|
sketchup_cops_config.fetch('SourcePath')
|
27
28
|
end
|
28
29
|
|
30
|
+
|
31
|
+
def sketchup_target_version?
|
32
|
+
return unless all_cops_config.key?('SketchUp')
|
33
|
+
all_cops_config.fetch('SketchUp').key?('TargetSketchUpVersion')
|
34
|
+
end
|
35
|
+
|
36
|
+
def sketchup_target_version
|
37
|
+
version = sketchup_cops_config.fetch('TargetSketchUpVersion')
|
38
|
+
version ? SketchUpVersion.new(version) : nil
|
39
|
+
end
|
40
|
+
|
29
41
|
end
|
30
42
|
end
|
31
43
|
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module SketchUp
|
5
|
+
module DynamicComponentMethods
|
6
|
+
|
7
|
+
DC_METHODS = [
|
8
|
+
{
|
9
|
+
name: :rotx,
|
10
|
+
path: 'Geom::Transformation'
|
11
|
+
},
|
12
|
+
{
|
13
|
+
name: :roty,
|
14
|
+
path: 'Geom::Transformation'
|
15
|
+
},
|
16
|
+
{
|
17
|
+
name: :rotz,
|
18
|
+
path: 'Geom::Transformation'
|
19
|
+
},
|
20
|
+
{
|
21
|
+
name: :xscale,
|
22
|
+
path: 'Geom::Transformation'
|
23
|
+
},
|
24
|
+
{
|
25
|
+
name: :yscale,
|
26
|
+
path: 'Geom::Transformation'
|
27
|
+
},
|
28
|
+
{
|
29
|
+
name: :zscale,
|
30
|
+
path: 'Geom::Transformation'
|
31
|
+
},
|
32
|
+
|
33
|
+
{
|
34
|
+
name: :copy,
|
35
|
+
path: 'Sketchup::Camera',
|
36
|
+
variables: [:camera, :cam]
|
37
|
+
},
|
38
|
+
{
|
39
|
+
name: :update,
|
40
|
+
path: 'Sketchup::Camera',
|
41
|
+
variables: [:camera, :cam]
|
42
|
+
},
|
43
|
+
{
|
44
|
+
name: :same_camera_params?,
|
45
|
+
path: 'Sketchup::Camera'
|
46
|
+
},
|
47
|
+
|
48
|
+
{
|
49
|
+
name: :copy,
|
50
|
+
path: 'Sketchup::ComponentInstance',
|
51
|
+
variables: [:instance, :inst]
|
52
|
+
},
|
53
|
+
{
|
54
|
+
name: :description,
|
55
|
+
path: 'Sketchup::ComponentInstance',
|
56
|
+
variables: [:instance, :inst]
|
57
|
+
},
|
58
|
+
|
59
|
+
{
|
60
|
+
name: :local_transformation,
|
61
|
+
path: 'Sketchup::Drawingelement'
|
62
|
+
},
|
63
|
+
{
|
64
|
+
name: :scaled_size,
|
65
|
+
path: 'Sketchup::Drawingelement'
|
66
|
+
},
|
67
|
+
{
|
68
|
+
name: :unscaled_size,
|
69
|
+
path: 'Sketchup::Drawingelement'
|
70
|
+
},
|
71
|
+
{
|
72
|
+
name: :set_last_size,
|
73
|
+
path: 'Sketchup::Drawingelement'
|
74
|
+
},
|
75
|
+
{
|
76
|
+
name: :last_scaling_factors,
|
77
|
+
path: 'Sketchup::Drawingelement'
|
78
|
+
},
|
79
|
+
|
80
|
+
{
|
81
|
+
name: :get_attributes,
|
82
|
+
path: 'Sketchup::Entity'
|
83
|
+
},
|
84
|
+
{
|
85
|
+
name: :has_attributes?,
|
86
|
+
path: 'Sketchup::Entity'
|
87
|
+
},
|
88
|
+
|
89
|
+
{
|
90
|
+
name: :typename,
|
91
|
+
path: 'Sketchup::Model',
|
92
|
+
variables: [:model, :mod]
|
93
|
+
},
|
94
|
+
{
|
95
|
+
name: :entityID,
|
96
|
+
path: 'Sketchup::Model',
|
97
|
+
variables: [:model, :mod]
|
98
|
+
},
|
99
|
+
{
|
100
|
+
name: :delete_attribute,
|
101
|
+
path: 'Sketchup::Model',
|
102
|
+
variables: [:model, :mod]
|
103
|
+
},
|
104
|
+
{
|
105
|
+
name: :layer,
|
106
|
+
path: 'Sketchup::Model',
|
107
|
+
variables: [:model, :mod]
|
108
|
+
},
|
109
|
+
|
110
|
+
{
|
111
|
+
name: :last_width=,
|
112
|
+
path: 'UI::WebDialog'
|
113
|
+
},
|
114
|
+
{
|
115
|
+
name: :last_height=,
|
116
|
+
path: 'UI::WebDialog'
|
117
|
+
},
|
118
|
+
{
|
119
|
+
name: :last_width,
|
120
|
+
path: 'UI::WebDialog'
|
121
|
+
},
|
122
|
+
{
|
123
|
+
name: :last_height,
|
124
|
+
path: 'UI::WebDialog'
|
125
|
+
},
|
126
|
+
]
|
127
|
+
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
@@ -0,0 +1,738 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# How to update this file:
|
4
|
+
#
|
5
|
+
# FEATURES constant:
|
6
|
+
#
|
7
|
+
# 1. Run the `rubocop-changelog` YARD template:
|
8
|
+
# (https://github.com/SketchUp/rubocop-sketchup/issues/4#issuecomment-370753043)
|
9
|
+
#
|
10
|
+
# yardoc -c -t rubocop-changelog -f text > rubocop-changelog.txt
|
11
|
+
#
|
12
|
+
# 2. Prune out any unreleased versions.
|
13
|
+
#
|
14
|
+
# TODO(thomthom): Push the rubocop-changelog template to the API stubs
|
15
|
+
# repository.
|
16
|
+
#
|
17
|
+
#
|
18
|
+
# INSTANCE_METHODS constant:
|
19
|
+
#
|
20
|
+
# Manually curated list of method names which are believed to yield few false
|
21
|
+
# positives. The method names should be names that are not commonly used in
|
22
|
+
# general context.
|
23
|
+
#
|
24
|
+
# When a new version is released and FEATURES is updated the new methods from
|
25
|
+
# the new version should be considered for this list.
|
26
|
+
#
|
27
|
+
#
|
28
|
+
# OBSERVER_METHODS constant:
|
29
|
+
#
|
30
|
+
# Currently manually curated.
|
31
|
+
#
|
32
|
+
# TODO(thomthom): Tag observer methods in YARD for automatic extraction.
|
33
|
+
|
34
|
+
module RuboCop
|
35
|
+
module SketchUp
|
36
|
+
module Features
|
37
|
+
|
38
|
+
FEATURES = [
|
39
|
+
|
40
|
+
{
|
41
|
+
version: 'LayOut 2018',
|
42
|
+
types: {
|
43
|
+
class: [
|
44
|
+
'Geom::Bounds2d',
|
45
|
+
'Geom::OrientedBounds2d',
|
46
|
+
'Geom::Point2d',
|
47
|
+
'Geom::Transformation2d',
|
48
|
+
'Geom::Vector2d',
|
49
|
+
'Layout::AngularDimension',
|
50
|
+
'Layout::AutoTextDefinition',
|
51
|
+
'Layout::AutoTextDefinitions',
|
52
|
+
'Layout::ConnectionPoint',
|
53
|
+
'Layout::Document',
|
54
|
+
'Layout::Ellipse',
|
55
|
+
'Layout::Entities',
|
56
|
+
'Layout::Entity',
|
57
|
+
'Layout::FormattedText',
|
58
|
+
'Layout::Grid',
|
59
|
+
'Layout::Group',
|
60
|
+
'Layout::Image',
|
61
|
+
'Layout::Label',
|
62
|
+
'Layout::Layer',
|
63
|
+
'Layout::LayerInstance',
|
64
|
+
'Layout::Layers',
|
65
|
+
'Layout::LinearDimension',
|
66
|
+
'Layout::LockedEntityError',
|
67
|
+
'Layout::LockedLayerError',
|
68
|
+
'Layout::Page',
|
69
|
+
'Layout::PageInfo',
|
70
|
+
'Layout::Pages',
|
71
|
+
'Layout::Path',
|
72
|
+
'Layout::Rectangle',
|
73
|
+
'Layout::SketchUpModel',
|
74
|
+
'Layout::Style',
|
75
|
+
'Layout::Table',
|
76
|
+
'Layout::TableCell',
|
77
|
+
'Layout::TableColumn',
|
78
|
+
'Layout::TableRow',
|
79
|
+
],
|
80
|
+
method: [
|
81
|
+
'Geom::Bounds2d#==',
|
82
|
+
'Geom::Bounds2d#height',
|
83
|
+
'Geom::Bounds2d#initialize',
|
84
|
+
'Geom::Bounds2d#lower_right',
|
85
|
+
'Geom::Bounds2d#set!',
|
86
|
+
'Geom::Bounds2d#to_a',
|
87
|
+
'Geom::Bounds2d#upper_left',
|
88
|
+
'Geom::Bounds2d#width',
|
89
|
+
'Geom::OrientedBounds2d#==',
|
90
|
+
'Geom::OrientedBounds2d#lower_left',
|
91
|
+
'Geom::OrientedBounds2d#lower_right',
|
92
|
+
'Geom::OrientedBounds2d#to_a',
|
93
|
+
'Geom::OrientedBounds2d#upper_left',
|
94
|
+
'Geom::OrientedBounds2d#upper_right',
|
95
|
+
'Geom::Point2d#+',
|
96
|
+
'Geom::Point2d#-',
|
97
|
+
'Geom::Point2d#==',
|
98
|
+
'Geom::Point2d#[]',
|
99
|
+
'Geom::Point2d#[]=',
|
100
|
+
'Geom::Point2d#clone',
|
101
|
+
'Geom::Point2d#distance',
|
102
|
+
'Geom::Point2d#initialize',
|
103
|
+
'Geom::Point2d#inspect',
|
104
|
+
'Geom::Point2d#offset',
|
105
|
+
'Geom::Point2d#offset!',
|
106
|
+
'Geom::Point2d#set!',
|
107
|
+
'Geom::Point2d#to_a',
|
108
|
+
'Geom::Point2d#to_s',
|
109
|
+
'Geom::Point2d#vector_to',
|
110
|
+
'Geom::Point2d#x',
|
111
|
+
'Geom::Point2d#x=',
|
112
|
+
'Geom::Point2d#y',
|
113
|
+
'Geom::Point2d#y=',
|
114
|
+
'Geom::Transformation2d#==',
|
115
|
+
'Geom::Transformation2d#clone',
|
116
|
+
'Geom::Transformation2d#identity?',
|
117
|
+
'Geom::Transformation2d#initialize',
|
118
|
+
'Geom::Transformation2d#set!',
|
119
|
+
'Geom::Transformation2d#to_a',
|
120
|
+
'Geom::Vector2d#%',
|
121
|
+
'Geom::Vector2d#*',
|
122
|
+
'Geom::Vector2d#+',
|
123
|
+
'Geom::Vector2d#-',
|
124
|
+
'Geom::Vector2d#==',
|
125
|
+
'Geom::Vector2d#[]',
|
126
|
+
'Geom::Vector2d#[]=',
|
127
|
+
'Geom::Vector2d#angle_between',
|
128
|
+
'Geom::Vector2d#clone',
|
129
|
+
'Geom::Vector2d#cross',
|
130
|
+
'Geom::Vector2d#dot',
|
131
|
+
'Geom::Vector2d#initialize',
|
132
|
+
'Geom::Vector2d#inspect',
|
133
|
+
'Geom::Vector2d#length',
|
134
|
+
'Geom::Vector2d#length=',
|
135
|
+
'Geom::Vector2d#normalize',
|
136
|
+
'Geom::Vector2d#normalize!',
|
137
|
+
'Geom::Vector2d#parallel?',
|
138
|
+
'Geom::Vector2d#perpendicular?',
|
139
|
+
'Geom::Vector2d#reverse',
|
140
|
+
'Geom::Vector2d#reverse!',
|
141
|
+
'Geom::Vector2d#same_direction?',
|
142
|
+
'Geom::Vector2d#set!',
|
143
|
+
'Geom::Vector2d#to_a',
|
144
|
+
'Geom::Vector2d#to_s',
|
145
|
+
'Geom::Vector2d#unit_vector?',
|
146
|
+
'Geom::Vector2d#valid?',
|
147
|
+
'Geom::Vector2d#x',
|
148
|
+
'Geom::Vector2d#x=',
|
149
|
+
'Geom::Vector2d#y',
|
150
|
+
'Geom::Vector2d#y=',
|
151
|
+
],
|
152
|
+
module: [
|
153
|
+
'Layout',
|
154
|
+
],
|
155
|
+
},
|
156
|
+
},
|
157
|
+
|
158
|
+
{
|
159
|
+
version: 'SketchUp 2018',
|
160
|
+
types: {
|
161
|
+
class: [
|
162
|
+
'Sketchup::ImageRep',
|
163
|
+
],
|
164
|
+
constant: [
|
165
|
+
'Geom::PolygonMesh::MESH_NORMALS',
|
166
|
+
'Geom::PolygonMesh::MESH_POINTS',
|
167
|
+
'Geom::PolygonMesh::MESH_UVQ_BACK',
|
168
|
+
'Geom::PolygonMesh::MESH_UVQ_FRONT',
|
169
|
+
],
|
170
|
+
method: [
|
171
|
+
'Sketchup.send_to_layout',
|
172
|
+
'Sketchup::Color#==',
|
173
|
+
'Sketchup::DefinitionList#remove',
|
174
|
+
'Sketchup::Image#image_rep',
|
175
|
+
'Sketchup::Materials#unique_name',
|
176
|
+
'Sketchup::Page#include_in_animation=',
|
177
|
+
'Sketchup::Page#include_in_animation?',
|
178
|
+
'Sketchup::SectionPlane#name',
|
179
|
+
'Sketchup::SectionPlane#name=',
|
180
|
+
'Sketchup::SectionPlane#symbol',
|
181
|
+
'Sketchup::SectionPlane#symbol=',
|
182
|
+
'Sketchup::Texture#image_rep',
|
183
|
+
'UI.refresh_toolbars',
|
184
|
+
],
|
185
|
+
},
|
186
|
+
},
|
187
|
+
|
188
|
+
{
|
189
|
+
version: 'SketchUp 2017',
|
190
|
+
types: {
|
191
|
+
class: [
|
192
|
+
'Sketchup::Http::Request',
|
193
|
+
'Sketchup::Http::Response',
|
194
|
+
'Sketchup::InstancePath',
|
195
|
+
'UI::HtmlDialog',
|
196
|
+
'UI::Notification',
|
197
|
+
],
|
198
|
+
constant: [
|
199
|
+
'UI::HtmlDialog::STYLE_WINDOW',
|
200
|
+
],
|
201
|
+
method: [
|
202
|
+
'Sketchup::Entity#persistent_id',
|
203
|
+
'Sketchup::Http::Request#body',
|
204
|
+
'Sketchup::Http::Request#body=',
|
205
|
+
'Sketchup::Http::Request#cancel',
|
206
|
+
'Sketchup::Http::Request#headers',
|
207
|
+
'Sketchup::Http::Request#headers=',
|
208
|
+
'Sketchup::Http::Request#initialize',
|
209
|
+
'Sketchup::Http::Request#method',
|
210
|
+
'Sketchup::Http::Request#method=',
|
211
|
+
'Sketchup::Http::Request#set_download_progress_callback',
|
212
|
+
'Sketchup::Http::Request#set_upload_progress_callback',
|
213
|
+
'Sketchup::Http::Request#start',
|
214
|
+
'Sketchup::Http::Request#status',
|
215
|
+
'Sketchup::Http::Request#url',
|
216
|
+
'Sketchup::Http::Response#body',
|
217
|
+
'Sketchup::Http::Response#headers',
|
218
|
+
'Sketchup::Http::Response#status_code',
|
219
|
+
'Sketchup::InputPoint#instance_path',
|
220
|
+
'Sketchup::InstancePath#==',
|
221
|
+
'Sketchup::InstancePath#[]',
|
222
|
+
'Sketchup::InstancePath#each',
|
223
|
+
'Sketchup::InstancePath#empty?',
|
224
|
+
'Sketchup::InstancePath#include?',
|
225
|
+
'Sketchup::InstancePath#initialize',
|
226
|
+
'Sketchup::InstancePath#leaf',
|
227
|
+
'Sketchup::InstancePath#length',
|
228
|
+
'Sketchup::InstancePath#persistent_id_path',
|
229
|
+
'Sketchup::InstancePath#root',
|
230
|
+
'Sketchup::InstancePath#size',
|
231
|
+
'Sketchup::InstancePath#to_a',
|
232
|
+
'Sketchup::InstancePath#transformation',
|
233
|
+
'Sketchup::InstancePath#valid?',
|
234
|
+
'Sketchup::Material#save_as',
|
235
|
+
'Sketchup::Materials#load',
|
236
|
+
'Sketchup::Model#find_entity_by_persistent_id',
|
237
|
+
'Sketchup::Model#instance_path_from_pid_path',
|
238
|
+
'Sketchup::ModelObserver#onPidChanged',
|
239
|
+
'UI.scale_factor',
|
240
|
+
'UI.show_extension_manager',
|
241
|
+
'UI::HtmlDialog#add_action_callback',
|
242
|
+
'UI::HtmlDialog#bring_to_front',
|
243
|
+
'UI::HtmlDialog#center',
|
244
|
+
'UI::HtmlDialog#close',
|
245
|
+
'UI::HtmlDialog#execute_script',
|
246
|
+
'UI::HtmlDialog#initialize',
|
247
|
+
'UI::HtmlDialog#set_can_close',
|
248
|
+
'UI::HtmlDialog#set_file',
|
249
|
+
'UI::HtmlDialog#set_html',
|
250
|
+
'UI::HtmlDialog#set_on_closed',
|
251
|
+
'UI::HtmlDialog#set_position',
|
252
|
+
'UI::HtmlDialog#set_size',
|
253
|
+
'UI::HtmlDialog#set_url',
|
254
|
+
'UI::HtmlDialog#show',
|
255
|
+
'UI::HtmlDialog#show_modal',
|
256
|
+
'UI::HtmlDialog#visible?',
|
257
|
+
'UI::Notification#icon_name',
|
258
|
+
'UI::Notification#icon_name=',
|
259
|
+
'UI::Notification#icon_tooltip',
|
260
|
+
'UI::Notification#icon_tooltip=',
|
261
|
+
'UI::Notification#initialize',
|
262
|
+
'UI::Notification#message',
|
263
|
+
'UI::Notification#message=',
|
264
|
+
'UI::Notification#on_accept',
|
265
|
+
'UI::Notification#on_accept_title',
|
266
|
+
'UI::Notification#on_dismiss',
|
267
|
+
'UI::Notification#on_dismiss_title',
|
268
|
+
'UI::Notification#show',
|
269
|
+
],
|
270
|
+
module: [
|
271
|
+
'Sketchup::Http',
|
272
|
+
],
|
273
|
+
},
|
274
|
+
},
|
275
|
+
|
276
|
+
{
|
277
|
+
version: 'SketchUp 2016 M1',
|
278
|
+
types: {
|
279
|
+
method: [
|
280
|
+
'Sketchup::RegionalSettings.decimal_separator',
|
281
|
+
'Sketchup::RegionalSettings.list_separator',
|
282
|
+
],
|
283
|
+
module: [
|
284
|
+
'Sketchup::RegionalSettings',
|
285
|
+
],
|
286
|
+
},
|
287
|
+
},
|
288
|
+
|
289
|
+
{
|
290
|
+
version: 'SketchUp 2016',
|
291
|
+
types: {
|
292
|
+
class: [
|
293
|
+
'Sketchup::Axes',
|
294
|
+
],
|
295
|
+
method: [
|
296
|
+
'Sketchup.debug_mode=',
|
297
|
+
'Sketchup.debug_mode?',
|
298
|
+
'Sketchup::Axes#axes',
|
299
|
+
'Sketchup::Axes#origin',
|
300
|
+
'Sketchup::Axes#set',
|
301
|
+
'Sketchup::Axes#sketch_plane',
|
302
|
+
'Sketchup::Axes#to_a',
|
303
|
+
'Sketchup::Axes#transformation',
|
304
|
+
'Sketchup::Axes#xaxis',
|
305
|
+
'Sketchup::Axes#yaxis',
|
306
|
+
'Sketchup::Axes#zaxis',
|
307
|
+
'Sketchup::ComponentDefinition#count_used_instances',
|
308
|
+
'Sketchup::Model#axes',
|
309
|
+
'Sketchup::Page#axes',
|
310
|
+
'Sketchup::PickHelper#boundingbox_pick',
|
311
|
+
'Sketchup::PickHelper#window_pick',
|
312
|
+
'Sketchup::Texture#write',
|
313
|
+
],
|
314
|
+
},
|
315
|
+
},
|
316
|
+
|
317
|
+
{
|
318
|
+
version: 'SketchUp 2015',
|
319
|
+
types: {
|
320
|
+
class: [
|
321
|
+
'Sketchup::ClassificationSchema',
|
322
|
+
'Sketchup::Classifications',
|
323
|
+
'Sketchup::Licensing::ExtensionLicense',
|
324
|
+
],
|
325
|
+
method: [
|
326
|
+
'Sketchup.is_64bit?',
|
327
|
+
'Sketchup::AppObserver#onActivateModel',
|
328
|
+
'Sketchup::Camera#center_2d',
|
329
|
+
'Sketchup::Camera#fov_is_height?',
|
330
|
+
'Sketchup::Camera#is_2d?',
|
331
|
+
'Sketchup::Camera#scale_2d',
|
332
|
+
'Sketchup::ClassificationSchema#<=>',
|
333
|
+
'Sketchup::ClassificationSchema#name',
|
334
|
+
'Sketchup::ClassificationSchema#namespace',
|
335
|
+
'Sketchup::Classifications#[]',
|
336
|
+
'Sketchup::Classifications#each',
|
337
|
+
'Sketchup::Classifications#keys',
|
338
|
+
'Sketchup::Classifications#length',
|
339
|
+
'Sketchup::Classifications#load_schema',
|
340
|
+
'Sketchup::Classifications#size',
|
341
|
+
'Sketchup::Classifications#unload_schema',
|
342
|
+
'Sketchup::ComponentDefinition#add_classification',
|
343
|
+
'Sketchup::ComponentDefinition#get_classification_value',
|
344
|
+
'Sketchup::ComponentDefinition#remove_classification',
|
345
|
+
'Sketchup::ComponentDefinition#set_classification_value',
|
346
|
+
'Sketchup::Group#definition',
|
347
|
+
'Sketchup::Layers#remove',
|
348
|
+
'Sketchup::Licensing.get_extension_license',
|
349
|
+
'Sketchup::Licensing::ExtensionLicense#days_remaining',
|
350
|
+
'Sketchup::Licensing::ExtensionLicense#error_description',
|
351
|
+
'Sketchup::Licensing::ExtensionLicense#licensed?',
|
352
|
+
'Sketchup::Licensing::ExtensionLicense#state',
|
353
|
+
'Sketchup::Material#colorize_deltas',
|
354
|
+
'Sketchup::Material#colorize_type',
|
355
|
+
'Sketchup::Material#colorize_type=',
|
356
|
+
'Sketchup::Model#classifications',
|
357
|
+
'Sketchup::Model#close',
|
358
|
+
'Sketchup::Model#find_entity_by_id',
|
359
|
+
'UI.select_directory',
|
360
|
+
],
|
361
|
+
module: [
|
362
|
+
'Sketchup::Licensing',
|
363
|
+
],
|
364
|
+
},
|
365
|
+
},
|
366
|
+
|
367
|
+
{
|
368
|
+
version: 'SketchUp 2014',
|
369
|
+
types: {
|
370
|
+
class: [
|
371
|
+
'LanguageHandler',
|
372
|
+
'Sketchup::Console',
|
373
|
+
'Sketchup::Dimension',
|
374
|
+
'Sketchup::DimensionLinear',
|
375
|
+
'Sketchup::DimensionObserver',
|
376
|
+
'Sketchup::DimensionRadial',
|
377
|
+
],
|
378
|
+
constant: [
|
379
|
+
'Geom::PolygonMesh::AUTO_SOFTEN',
|
380
|
+
'Geom::PolygonMesh::HIDE_BASED_ON_INDEX',
|
381
|
+
'Geom::PolygonMesh::NO_SMOOTH_OR_HIDE',
|
382
|
+
'Geom::PolygonMesh::SMOOTH_SOFT_EDGES',
|
383
|
+
'Geom::PolygonMesh::SOFTEN_BASED_ON_INDEX',
|
384
|
+
],
|
385
|
+
method: [
|
386
|
+
'Geom::PolygonMesh#set_uv',
|
387
|
+
'LanguageHandler#[]',
|
388
|
+
'LanguageHandler#initialize',
|
389
|
+
'LanguageHandler#resource_path',
|
390
|
+
'LanguageHandler#strings',
|
391
|
+
'Sketchup.platform',
|
392
|
+
'Sketchup.quit',
|
393
|
+
'Sketchup.temp_dir',
|
394
|
+
'Sketchup::AppObserver#expectsStartupModelNotifications',
|
395
|
+
'Sketchup::AttributeDictionaries#count',
|
396
|
+
'Sketchup::AttributeDictionaries#length',
|
397
|
+
'Sketchup::AttributeDictionaries#size',
|
398
|
+
'Sketchup::AttributeDictionary#count',
|
399
|
+
'Sketchup::ComponentInstance#guid',
|
400
|
+
'Sketchup::Console#clear',
|
401
|
+
'Sketchup::Console#hide',
|
402
|
+
'Sketchup::Console#show',
|
403
|
+
'Sketchup::Console#visible?',
|
404
|
+
'Sketchup::DefinitionList#size',
|
405
|
+
'Sketchup::Dimension#add_observer',
|
406
|
+
'Sketchup::Dimension#arrow_type',
|
407
|
+
'Sketchup::Dimension#arrow_type=',
|
408
|
+
'Sketchup::Dimension#has_aligned_text=',
|
409
|
+
'Sketchup::Dimension#has_aligned_text?',
|
410
|
+
'Sketchup::Dimension#plane',
|
411
|
+
'Sketchup::Dimension#remove_observer',
|
412
|
+
'Sketchup::Dimension#text',
|
413
|
+
'Sketchup::Dimension#text=',
|
414
|
+
'Sketchup::DimensionLinear#aligned_text_position',
|
415
|
+
'Sketchup::DimensionLinear#aligned_text_position=',
|
416
|
+
'Sketchup::DimensionLinear#end',
|
417
|
+
'Sketchup::DimensionLinear#end=',
|
418
|
+
'Sketchup::DimensionLinear#offset_vector',
|
419
|
+
'Sketchup::DimensionLinear#offset_vector=',
|
420
|
+
'Sketchup::DimensionLinear#start',
|
421
|
+
'Sketchup::DimensionLinear#start=',
|
422
|
+
'Sketchup::DimensionLinear#text_position',
|
423
|
+
'Sketchup::DimensionLinear#text_position=',
|
424
|
+
'Sketchup::DimensionObserver#onTextChanged',
|
425
|
+
'Sketchup::DimensionRadial#arc_curve',
|
426
|
+
'Sketchup::DimensionRadial#arc_curve=',
|
427
|
+
'Sketchup::DimensionRadial#leader_break_point',
|
428
|
+
'Sketchup::DimensionRadial#leader_break_point=',
|
429
|
+
'Sketchup::DimensionRadial#leader_points',
|
430
|
+
'Sketchup::Entities#active_section_plane',
|
431
|
+
'Sketchup::Entities#active_section_plane=',
|
432
|
+
'Sketchup::Entities#add_dimension_linear',
|
433
|
+
'Sketchup::Entities#add_dimension_radial',
|
434
|
+
'Sketchup::Entities#add_section_plane',
|
435
|
+
'Sketchup::Entities#size',
|
436
|
+
'Sketchup::EntitiesObserver#onActiveSectionPlaneChanged',
|
437
|
+
'Sketchup::Face#get_texture_projection',
|
438
|
+
'Sketchup::Face#set_texture_projection',
|
439
|
+
'Sketchup::Group#guid',
|
440
|
+
'Sketchup::Image#transformation',
|
441
|
+
'Sketchup::Image#transformation=',
|
442
|
+
'Sketchup::Layer#color',
|
443
|
+
'Sketchup::Layer#color=',
|
444
|
+
'Sketchup::Layers#size',
|
445
|
+
'Sketchup::LayersObserver#onLayerChanged',
|
446
|
+
'Sketchup::Materials#size',
|
447
|
+
'Sketchup::Model#save_copy',
|
448
|
+
'Sketchup::OptionsManager#length',
|
449
|
+
'Sketchup::OptionsProvider#length',
|
450
|
+
'Sketchup::Pages#length',
|
451
|
+
'Sketchup::RenderingOptions#count',
|
452
|
+
'Sketchup::RenderingOptions#length',
|
453
|
+
'Sketchup::RenderingOptions#size',
|
454
|
+
'Sketchup::SectionPlane#activate',
|
455
|
+
'Sketchup::SectionPlane#active?',
|
456
|
+
'Sketchup::Selection#size',
|
457
|
+
'Sketchup::ShadowInfo#count',
|
458
|
+
'Sketchup::ShadowInfo#length',
|
459
|
+
'Sketchup::ShadowInfo#size',
|
460
|
+
'Sketchup::Styles#length',
|
461
|
+
'UI::Toolbar#count',
|
462
|
+
'UI::Toolbar#length',
|
463
|
+
'UI::Toolbar#size',
|
464
|
+
'UI::WebDialog#screen_scale_factor',
|
465
|
+
],
|
466
|
+
},
|
467
|
+
},
|
468
|
+
|
469
|
+
{
|
470
|
+
version: 'SketchUp 2013',
|
471
|
+
types: {
|
472
|
+
method: [
|
473
|
+
'SketchupExtension#extension_path',
|
474
|
+
'SketchupExtension#id',
|
475
|
+
'SketchupExtension#version_id',
|
476
|
+
],
|
477
|
+
},
|
478
|
+
},
|
479
|
+
|
480
|
+
{
|
481
|
+
version: 'SketchUp 8.0 M2',
|
482
|
+
types: {
|
483
|
+
class: [
|
484
|
+
'Sketchup::ExtensionsManager',
|
485
|
+
],
|
486
|
+
method: [
|
487
|
+
'Sketchup.extensions',
|
488
|
+
'Sketchup.install_from_archive',
|
489
|
+
'Sketchup.plugins_disabled=',
|
490
|
+
'Sketchup.plugins_disabled?',
|
491
|
+
'Sketchup::ExtensionsManager#[]',
|
492
|
+
'Sketchup::ExtensionsManager#count',
|
493
|
+
'Sketchup::ExtensionsManager#each',
|
494
|
+
'Sketchup::ExtensionsManager#keys',
|
495
|
+
'Sketchup::ExtensionsManager#length',
|
496
|
+
'Sketchup::ExtensionsManager#size',
|
497
|
+
'SketchupExtension#check',
|
498
|
+
'SketchupExtension#load_on_start?',
|
499
|
+
'SketchupExtension#loaded?',
|
500
|
+
'SketchupExtension#registered?',
|
501
|
+
'SketchupExtension#uncheck',
|
502
|
+
],
|
503
|
+
},
|
504
|
+
},
|
505
|
+
|
506
|
+
{
|
507
|
+
version: 'SketchUp 8.0 M1',
|
508
|
+
types: {
|
509
|
+
method: [
|
510
|
+
'Sketchup.fix_shadow_strings=',
|
511
|
+
'Sketchup.fix_shadow_strings?',
|
512
|
+
'Sketchup::Color#alpha=',
|
513
|
+
'Sketchup::Material#name=',
|
514
|
+
'Sketchup::Material#write_thumbnail',
|
515
|
+
'Sketchup::Materials#remove',
|
516
|
+
'UI::Command#large_icon',
|
517
|
+
'UI::Command#menu_text',
|
518
|
+
'UI::Command#small_icon',
|
519
|
+
'UI::Command#status_bar_text',
|
520
|
+
'UI::Command#tooltip',
|
521
|
+
'UI::Toolbar#each',
|
522
|
+
'UI::Toolbar#name',
|
523
|
+
],
|
524
|
+
},
|
525
|
+
},
|
526
|
+
|
527
|
+
{
|
528
|
+
version: 'SketchUp 8.0',
|
529
|
+
types: {
|
530
|
+
method: [
|
531
|
+
'Sketchup::ComponentInstance#equals?',
|
532
|
+
'Sketchup::ComponentInstance#intersect',
|
533
|
+
'Sketchup::ComponentInstance#manifold?',
|
534
|
+
'Sketchup::ComponentInstance#outer_shell',
|
535
|
+
'Sketchup::ComponentInstance#show_differences',
|
536
|
+
'Sketchup::ComponentInstance#split',
|
537
|
+
'Sketchup::ComponentInstance#subtract',
|
538
|
+
'Sketchup::ComponentInstance#trim',
|
539
|
+
'Sketchup::ComponentInstance#union',
|
540
|
+
'Sketchup::ComponentInstance#volume',
|
541
|
+
'Sketchup::EntitiesObserver#onElementModified',
|
542
|
+
'Sketchup::Group#equals?',
|
543
|
+
'Sketchup::Group#intersect',
|
544
|
+
'Sketchup::Group#manifold?',
|
545
|
+
'Sketchup::Group#outer_shell',
|
546
|
+
'Sketchup::Group#show_differences',
|
547
|
+
'Sketchup::Group#split',
|
548
|
+
'Sketchup::Group#subtract',
|
549
|
+
'Sketchup::Group#trim',
|
550
|
+
'Sketchup::Group#union',
|
551
|
+
'Sketchup::Group#volume',
|
552
|
+
'Sketchup::ModelObserver#onPostSaveModel',
|
553
|
+
'Sketchup::ModelObserver#onPreSaveModel',
|
554
|
+
],
|
555
|
+
},
|
556
|
+
},
|
557
|
+
|
558
|
+
{
|
559
|
+
version: 'SketchUp 7.1 M1',
|
560
|
+
types: {
|
561
|
+
method: [
|
562
|
+
'Sketchup::Curve#is_polygon?',
|
563
|
+
],
|
564
|
+
},
|
565
|
+
},
|
566
|
+
|
567
|
+
{
|
568
|
+
version: 'SketchUp 7.1',
|
569
|
+
types: {
|
570
|
+
method: [
|
571
|
+
'Sketchup::Model#georeferenced?',
|
572
|
+
'Sketchup::Model#number_faces',
|
573
|
+
'Sketchup::View#refresh',
|
574
|
+
'UI::WebDialog#write_image',
|
575
|
+
],
|
576
|
+
},
|
577
|
+
},
|
578
|
+
|
579
|
+
{
|
580
|
+
version: 'SketchUp 7.0 M1',
|
581
|
+
types: {
|
582
|
+
method: [
|
583
|
+
'Sketchup::Face#get_glued_instances',
|
584
|
+
],
|
585
|
+
},
|
586
|
+
},
|
587
|
+
|
588
|
+
{
|
589
|
+
version: 'SketchUp 7.0',
|
590
|
+
types: {
|
591
|
+
method: [
|
592
|
+
'Sketchup.break_edges=',
|
593
|
+
'Sketchup.break_edges?',
|
594
|
+
'Sketchup.is_pro?',
|
595
|
+
'Sketchup::AppObserver#onUnloadExtension',
|
596
|
+
'Sketchup::Behavior#no_scale_mask=',
|
597
|
+
'Sketchup::Behavior#no_scale_mask?',
|
598
|
+
'Sketchup::ComponentDefinition#refresh_thumbnail',
|
599
|
+
'Sketchup::ComponentDefinition#save_as',
|
600
|
+
'Sketchup::ComponentDefinition#save_thumbnail',
|
601
|
+
'Sketchup::DefinitionList#load_from_url',
|
602
|
+
'Sketchup::Group#local_bounds',
|
603
|
+
'Sketchup::Model#active_path',
|
604
|
+
'Sketchup::Model#edit_transform',
|
605
|
+
'Sketchup::Model#mipmapping=',
|
606
|
+
'Sketchup::Model#mipmapping?',
|
607
|
+
'Sketchup::ModelObserver#onAfterComponentSaveAs',
|
608
|
+
'Sketchup::ModelObserver#onBeforeComponentSaveAs',
|
609
|
+
'Sketchup::ModelObserver#onExplode',
|
610
|
+
'Sketchup::ModelObserver#onPlaceComponent',
|
611
|
+
'Sketchup::Pages#add_matchphoto_page',
|
612
|
+
'UI.refresh_inspectors',
|
613
|
+
'UI::WebDialog#max_height',
|
614
|
+
'UI::WebDialog#max_height=',
|
615
|
+
'UI::WebDialog#max_width',
|
616
|
+
'UI::WebDialog#max_width=',
|
617
|
+
'UI::WebDialog#min_height',
|
618
|
+
'UI::WebDialog#min_height=',
|
619
|
+
'UI::WebDialog#min_width',
|
620
|
+
'UI::WebDialog#min_width=',
|
621
|
+
'UI::WebDialog#navigation_buttons_enabled=',
|
622
|
+
'UI::WebDialog#navigation_buttons_enabled?',
|
623
|
+
'UI::WebDialog#set_full_security',
|
624
|
+
],
|
625
|
+
},
|
626
|
+
},
|
627
|
+
].freeze
|
628
|
+
|
629
|
+
INSTANCE_METHODS = %i[
|
630
|
+
active_path
|
631
|
+
active_section_plane
|
632
|
+
active_section_plane=
|
633
|
+
add_classification
|
634
|
+
add_dimension_linear
|
635
|
+
add_dimension_radial
|
636
|
+
add_matchphoto_page
|
637
|
+
add_section_plane
|
638
|
+
aligned_text_position
|
639
|
+
aligned_text_position=
|
640
|
+
arc_curve
|
641
|
+
arc_curve=
|
642
|
+
boundingbox_pick
|
643
|
+
center_2d
|
644
|
+
classifications
|
645
|
+
colorize_deltas
|
646
|
+
colorize_type
|
647
|
+
colorize_type=
|
648
|
+
count_used_instances
|
649
|
+
days_remaining
|
650
|
+
edit_transform
|
651
|
+
error_description
|
652
|
+
expectsStartupModelNotifications
|
653
|
+
extension_path
|
654
|
+
find_entity_by_id
|
655
|
+
find_entity_by_persistent_id
|
656
|
+
fov_is_height?
|
657
|
+
georeferenced?
|
658
|
+
get_classification_value
|
659
|
+
get_glued_instances
|
660
|
+
get_texture_projection
|
661
|
+
has_aligned_text?
|
662
|
+
has_aligned_text=
|
663
|
+
icon_name
|
664
|
+
icon_name=
|
665
|
+
icon_tooltip
|
666
|
+
icon_tooltip=
|
667
|
+
image_rep
|
668
|
+
include_in_animation?
|
669
|
+
include_in_animation=
|
670
|
+
instance_path
|
671
|
+
instance_path_from_pid_path
|
672
|
+
is_polygon?
|
673
|
+
large_icon
|
674
|
+
leader_break_point
|
675
|
+
leader_break_point=
|
676
|
+
leader_points
|
677
|
+
load_from_url
|
678
|
+
load_on_start?
|
679
|
+
load_schema
|
680
|
+
local_bounds
|
681
|
+
lower_left
|
682
|
+
lower_right
|
683
|
+
menu_text
|
684
|
+
mipmapping?
|
685
|
+
mipmapping=
|
686
|
+
navigation_buttons_enabled?
|
687
|
+
navigation_buttons_enabled=
|
688
|
+
no_scale_mask?
|
689
|
+
no_scale_mask=
|
690
|
+
number_faces
|
691
|
+
offset_vector
|
692
|
+
offset_vector=
|
693
|
+
outer_shell
|
694
|
+
persistent_id
|
695
|
+
persistent_id_path
|
696
|
+
refresh_thumbnail
|
697
|
+
remove_classification
|
698
|
+
same_direction?
|
699
|
+
scale_2d
|
700
|
+
screen_scale_factor
|
701
|
+
set_can_close
|
702
|
+
set_classification_value
|
703
|
+
set_download_progress_callback
|
704
|
+
set_full_security
|
705
|
+
set_on_closed
|
706
|
+
set_texture_projection
|
707
|
+
set_upload_progress_callback
|
708
|
+
set_uv
|
709
|
+
show_differences
|
710
|
+
sketch_plane
|
711
|
+
small_icon
|
712
|
+
status_bar_text
|
713
|
+
unit_vector?
|
714
|
+
unload_schema
|
715
|
+
upper_left
|
716
|
+
upper_right
|
717
|
+
window_pick
|
718
|
+
].freeze
|
719
|
+
|
720
|
+
OBSERVER_METHODS = %i[
|
721
|
+
onActivateModel
|
722
|
+
onActiveSectionPlaneChanged
|
723
|
+
onAfterComponentSaveAs
|
724
|
+
onBeforeComponentSaveAs
|
725
|
+
onElementModified
|
726
|
+
onExplode
|
727
|
+
onLayerChanged
|
728
|
+
onPidChanged
|
729
|
+
onPlaceComponent
|
730
|
+
onPostSaveModel
|
731
|
+
onPreSaveModel
|
732
|
+
onTextChanged
|
733
|
+
onUnloadExtension
|
734
|
+
].freeze
|
735
|
+
|
736
|
+
end
|
737
|
+
end
|
738
|
+
end
|