rubocop-sketchup 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +20 -19
  3. data/assets/output.html.erb +301 -301
  4. data/config/default.yml +379 -355
  5. data/lib/rubocop-sketchup.rb +49 -48
  6. data/lib/rubocop/sketchup.rb +12 -12
  7. data/lib/rubocop/sketchup/config.rb +63 -63
  8. data/lib/rubocop/sketchup/cop.rb +111 -111
  9. data/lib/rubocop/sketchup/cop/bugs/material_name.rb +108 -0
  10. data/lib/rubocop/sketchup/cop/bugs/render_mode.rb +72 -0
  11. data/lib/rubocop/sketchup/cop/bugs/uniform_scaling.rb +36 -0
  12. data/lib/rubocop/sketchup/cop/deprecations/add_separator_to_menu.rb +25 -25
  13. data/lib/rubocop/sketchup/cop/deprecations/operation_next_transparent.rb +30 -30
  14. data/lib/rubocop/sketchup/cop/deprecations/require_all.rb +27 -27
  15. data/lib/rubocop/sketchup/cop/deprecations/set_texture_projection.rb +26 -26
  16. data/lib/rubocop/sketchup/cop/deprecations/show_ruby_panel.rb +25 -25
  17. data/lib/rubocop/sketchup/cop/deprecations/sketchup_set.rb +30 -30
  18. data/lib/rubocop/sketchup/cop/performance/openssl.rb +41 -41
  19. data/lib/rubocop/sketchup/cop/performance/operation_disable_ui.rb +33 -33
  20. data/lib/rubocop/sketchup/cop/performance/selection_bulk.rb +79 -79
  21. data/lib/rubocop/sketchup/cop/performance/type_check.rb +63 -63
  22. data/lib/rubocop/sketchup/cop/performance/typename.rb +24 -24
  23. data/lib/rubocop/sketchup/cop/requirements/api_namespace.rb +30 -30
  24. data/lib/rubocop/sketchup/cop/requirements/exit.rb +32 -32
  25. data/lib/rubocop/sketchup/cop/requirements/extension_namespace.rb +108 -108
  26. data/lib/rubocop/sketchup/cop/requirements/file_structure.rb +97 -97
  27. data/lib/rubocop/sketchup/cop/requirements/gem_install.rb +45 -45
  28. data/lib/rubocop/sketchup/cop/requirements/get_extension_license.rb +95 -95
  29. data/lib/rubocop/sketchup/cop/requirements/global_constants.rb +38 -38
  30. data/lib/rubocop/sketchup/cop/requirements/global_include.rb +42 -42
  31. data/lib/rubocop/sketchup/cop/requirements/global_methods.rb +65 -65
  32. data/lib/rubocop/sketchup/cop/requirements/global_variables.rb +95 -95
  33. data/lib/rubocop/sketchup/cop/requirements/language_handler_globals.rb +46 -46
  34. data/lib/rubocop/sketchup/cop/requirements/load_path.rb +83 -83
  35. data/lib/rubocop/sketchup/cop/requirements/minimal_registration.rb +73 -73
  36. data/lib/rubocop/sketchup/cop/requirements/observers_start_operation.rb +161 -161
  37. data/lib/rubocop/sketchup/cop/requirements/register_extension.rb +45 -45
  38. data/lib/rubocop/sketchup/cop/requirements/ruby_core_namespace.rb +291 -291
  39. data/lib/rubocop/sketchup/cop/requirements/ruby_stdlib_namespace.rb +634 -634
  40. data/lib/rubocop/sketchup/cop/requirements/shipped_extensions_namespace.rb +61 -61
  41. data/lib/rubocop/sketchup/cop/requirements/sketchup_extension.rb +119 -119
  42. data/lib/rubocop/sketchup/cop/requirements/sketchup_require.rb +163 -163
  43. data/lib/rubocop/sketchup/cop/suggestions/add_group.rb +49 -49
  44. data/lib/rubocop/sketchup/cop/suggestions/compatibility.rb +121 -117
  45. data/lib/rubocop/sketchup/cop/suggestions/dc_internals.rb +34 -34
  46. data/lib/rubocop/sketchup/cop/suggestions/file_encoding.rb +78 -78
  47. data/lib/rubocop/sketchup/cop/suggestions/model_entities.rb +58 -58
  48. data/lib/rubocop/sketchup/cop/suggestions/monkey_patched_api.rb +45 -45
  49. data/lib/rubocop/sketchup/cop/suggestions/operation_name.rb +137 -103
  50. data/lib/rubocop/sketchup/cop/suggestions/sketchup_find_support_file.rb +39 -39
  51. data/lib/rubocop/sketchup/cop/suggestions/tool_drawing_bounds.rb +44 -44
  52. data/lib/rubocop/sketchup/cop/suggestions/tool_invalidate.rb +66 -66
  53. data/lib/rubocop/sketchup/cop/suggestions/tool_user_input.rb +41 -41
  54. data/lib/rubocop/sketchup/cop/suggestions/toolbar_timer.rb +65 -65
  55. data/lib/rubocop/sketchup/dc_globals.rb +24 -24
  56. data/lib/rubocop/sketchup/dc_methods.rb +130 -130
  57. data/lib/rubocop/sketchup/extension_project.rb +65 -65
  58. data/lib/rubocop/sketchup/features.rb +738 -738
  59. data/lib/rubocop/sketchup/formatter/extension_review.rb +269 -259
  60. data/lib/rubocop/sketchup/inject.rb +19 -19
  61. data/lib/rubocop/sketchup/namespace.rb +47 -47
  62. data/lib/rubocop/sketchup/namespace_checker.rb +46 -46
  63. data/lib/rubocop/sketchup/no_comment_disable.rb +17 -17
  64. data/lib/rubocop/sketchup/range_help.rb +52 -52
  65. data/lib/rubocop/sketchup/sketchup_target_range.rb +75 -0
  66. data/lib/rubocop/sketchup/sketchup_version.rb +117 -87
  67. data/lib/rubocop/sketchup/tool_checker.rb +43 -43
  68. data/lib/rubocop/sketchup/version.rb +5 -5
  69. data/rubocop-sketchup.gemspec +27 -27
  70. metadata +8 -4
@@ -1,130 +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
- ].freeze
127
-
128
- end
129
- end
130
- end
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
+ ].freeze
127
+
128
+ end
129
+ end
130
+ end
@@ -1,65 +1,65 @@
1
- # frozen_string_literal: true
2
-
3
- require 'pathname'
4
-
5
- module RuboCop
6
- module SketchUp
7
- module ExtensionProject
8
-
9
- include SketchUp::Config
10
-
11
- # @return [Pathname]
12
- def config_path
13
- path = config.instance_variable_get(:@loaded_path)
14
- if path
15
- Pathname.new(path).expand_path.dirname
16
- else
17
- Pathname.new(Dir.pwd).expand_path
18
- end
19
- end
20
-
21
- # @return [Pathname]
22
- def relative_source_path
23
- Pathname.new(extension_source_path_config)
24
- end
25
-
26
- # @return [Pathname]
27
- def source_path
28
- config_path.join(relative_source_path)
29
- end
30
-
31
- # @param [RuboCop::ProcessedSource] processed_source
32
- def path_relative_to_source(processed_source)
33
- source_filename = processed_source.buffer.name
34
- rel_path = config.path_relative_to_config(source_filename)
35
- path = Pathname.new(rel_path).expand_path
36
- path.relative_path_from(source_path)
37
- end
38
-
39
- # @param [RuboCop::ProcessedSource] processed_source
40
- def root_file?(processed_source)
41
- filename = path_relative_to_source(processed_source)
42
- filename.extname.casecmp('.rb').zero? &&
43
- filename.parent.to_s == '.'
44
- end
45
-
46
- def extension_root_files
47
- Dir.glob("#{source_path}/*.rb").map { |path| Pathname.new(path) }
48
- end
49
-
50
- def extension_root_file
51
- unless extension_root_files.size == 1
52
- num_files = extension_root_files.size
53
- raise "More than one root extension file (#{num_files})"
54
- end
55
-
56
- extension_root_files.first
57
- end
58
-
59
- def extension_directory
60
- extension_root_file.dirname
61
- end
62
-
63
- end
64
- end
65
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'pathname'
4
+
5
+ module RuboCop
6
+ module SketchUp
7
+ module ExtensionProject
8
+
9
+ include SketchUp::Config
10
+
11
+ # @return [Pathname]
12
+ def config_path
13
+ path = config.instance_variable_get(:@loaded_path)
14
+ if path
15
+ Pathname.new(path).expand_path.dirname
16
+ else
17
+ Pathname.new(Dir.pwd).expand_path
18
+ end
19
+ end
20
+
21
+ # @return [Pathname]
22
+ def relative_source_path
23
+ Pathname.new(extension_source_path_config)
24
+ end
25
+
26
+ # @return [Pathname]
27
+ def source_path
28
+ config_path.join(relative_source_path)
29
+ end
30
+
31
+ # @param [RuboCop::ProcessedSource] processed_source
32
+ def path_relative_to_source(processed_source)
33
+ source_filename = processed_source.buffer.name
34
+ rel_path = config.path_relative_to_config(source_filename)
35
+ path = Pathname.new(rel_path).expand_path
36
+ path.relative_path_from(source_path)
37
+ end
38
+
39
+ # @param [RuboCop::ProcessedSource] processed_source
40
+ def root_file?(processed_source)
41
+ filename = path_relative_to_source(processed_source)
42
+ filename.extname.casecmp('.rb').zero? &&
43
+ filename.parent.to_s == '.'
44
+ end
45
+
46
+ def extension_root_files
47
+ Dir.glob("#{source_path}/*.rb").map { |path| Pathname.new(path) }
48
+ end
49
+
50
+ def extension_root_file
51
+ unless extension_root_files.size == 1
52
+ num_files = extension_root_files.size
53
+ raise "More than one root extension file (#{num_files})"
54
+ end
55
+
56
+ extension_root_files.first
57
+ end
58
+
59
+ def extension_directory
60
+ extension_root_file.dirname
61
+ end
62
+
63
+ end
64
+ end
65
+ end
@@ -1,738 +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
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