sketchup-api-stubs 0.7.7 → 0.7.9

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.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -147
  3. data/lib/sketchup-api-stubs/stubs/{array.rb → Array.rb} +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +509 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +476 -478
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -691
  16. data/lib/sketchup-api-stubs/stubs/{geom.rb → Geom.rb} +351 -351
  17. data/lib/sketchup-api-stubs/stubs/{languagehandler.rb → LanguageHandler.rb} +93 -92
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -573
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -179
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +517 -515
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -349
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  32. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  33. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  37. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  38. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -0
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -694
  44. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  45. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  49. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  50. data/lib/sketchup-api-stubs/stubs/{length.rb → Length.rb} +278 -278
  51. data/lib/sketchup-api-stubs/stubs/{numeric.rb → Numeric.rb} +249 -249
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -144
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -157
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -152
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -286
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -302
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -478
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -122
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -577
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -594
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +449 -425
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +406 -396
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -502
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1239 -1126
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -0
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -126
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -917
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -104
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -292
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -468
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +406 -405
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -306
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -327
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -422
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -427
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -249
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -112
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -414
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +317 -318
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1652 -1654
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -131
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -284
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -0
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -0
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -363
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -478
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +361 -364
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +458 -459
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +255 -257
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -217
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -217
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +834 -835
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -71
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1311 -1307
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1377 -1353
  144. data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
  145. data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -317
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +494 -478
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -240
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
  151. data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -672
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -311
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +20 -16
@@ -1,515 +1,517 @@
1
- # Copyright:: Copyright 2021 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # This is the interface to a LayOut document. A {Layout::Document} is the 2D
5
- # drawing that the user is working with, and it serves as the "entry point" for
6
- # most Ruby API interactions. The {Layout::Document.open} method gives you a
7
- # handle to a {Layout::Document}, and from there you can use the
8
- # document-level methods to start getting information and making changes.
9
- #
10
- # @example
11
- # # Grab a handle to an existing LayOut document.
12
- # doc = Layout::Document.open("C:/path/to/document.layout")
13
- #
14
- # # Grab other handles to commonly used collections inside the model.
15
- # layers = doc.layers
16
- # pages = doc.pages
17
- # entities = doc.shared_entities
18
- #
19
- # # Now that we have our handles, we can start pulling objects and making
20
- # # method calls that are useful.
21
- # first_entity = entities[0]
22
- #
23
- # number_pages = pages.count
24
- #
25
- # @version LayOut 2018
26
- class Layout::Document
27
-
28
- # Constants
29
-
30
- DECIMAL_CENTIMETERS = nil # Stub value.
31
- DECIMAL_FEET = nil # Stub value.
32
- DECIMAL_INCHES = nil # Stub value.
33
- DECIMAL_METERS = nil # Stub value.
34
- DECIMAL_MILLIMETERS = nil # Stub value.
35
- DECIMAL_POINTS = nil # Stub value.
36
-
37
- FRACTIONAL_INCHES = nil # Stub value.
38
-
39
- VERSION_1 = nil # Stub value.
40
- VERSION_2 = nil # Stub value.
41
- VERSION_2013 = nil # Stub value.
42
- VERSION_2014 = nil # Stub value.
43
- VERSION_2015 = nil # Stub value.
44
- VERSION_2016 = nil # Stub value.
45
- VERSION_2017 = nil # Stub value.
46
- VERSION_2018 = nil # Stub value.
47
- VERSION_2019 = nil # Stub value.
48
- VERSION_2020 = nil # Stub value.
49
- VERSION_2021 = nil # Stub value.
50
- VERSION_3 = nil # Stub value.
51
- VERSION_CURRENT = nil # Stub value.
52
-
53
- # Class Methods
54
-
55
- # The {.open} method creates a new {Layout::Document} by loading an existing
56
- # .layout file.
57
- #
58
- # @example
59
- # filename = File.join(ENV['Home'], 'Desktop', 'template.layout')
60
- # doc = Layout::Document.open(filename)
61
- #
62
- # @param [String] path
63
- # The path to the .layout file on disk.
64
- #
65
- # @raise [ArgumentError] if the file does not exist
66
- #
67
- # @return [Layout::Document] The {Layout::Document} created from the .layout
68
- # file.
69
- #
70
- # @version LayOut 2018
71
- def self.open(path)
72
- end
73
-
74
- # Instance Methods
75
-
76
- # The {#==} method checks to see if the two {Layout::Document}s are equal.
77
- # This checks whether the Ruby Objects are pointing to the same internal
78
- # object.
79
- #
80
- # @example
81
- # doc = Layout::Document.open("C:/path/to/document.layout")
82
- # document = doc.pages.first.document
83
- # doc == document
84
- #
85
- # @param [Layout::Document] other
86
- #
87
- # @return [Boolean]
88
- #
89
- # @version LayOut 2018
90
- def ==(other)
91
- end
92
-
93
- # The {#add_entity} method adds an {Layout::Entity} to the {Layout::Document}
94
- # and places it on the given {Layout::Layer} and {Layout::Page}. If layer is a
95
- # shared {Layout::Layer} then page may be ommitted. The {Layout::Entity} must
96
- # not already belong to a {Layout::Document}. If the {Layout::Entity} is a
97
- # {Layout::Group}, then the {Layout::Group} along with all of its children will
98
- # be added to the {Layout::Document}.
99
- #
100
- # @example
101
- # doc = Layout::Document.open("C:/path/to/document.layout")
102
- # rect = Layout::Rectangle.new([[1, 1], [2, 2]])
103
- # all_layers = doc.layers
104
- # all_pages = doc.pages
105
- # doc.add_entity(rect, all_layers.first, all_pages.first)
106
- #
107
- # @overload add_entity(entity, layer, page)
108
- #
109
- # @param [Layout::Entity] entity The {Layout::Entity} to be added
110
- # @param [Layout::Layer] layer The {Layout::Layer} to add the
111
- # {Layout::Entity} to
112
- # @param [Layout::Page] page The {Layout::Page} to add the {Layout::Entity}
113
- # to
114
- #
115
- # @overload add_entity(entity, layer)
116
- #
117
- # @param [Layout::Entity] entity The {Layout::Entity} to be added
118
- # @param [Layout::Layer] layer The shared {Layout::Layer} to add the
119
- # {Layout::Entity} to
120
- #
121
- # @raise [ArgumentError] if no {Layout::Page} is passed in and layer is
122
- # non-shared
123
- #
124
- # @raise [ArgumentError] if page does not belong to the {Layout::Document}
125
- #
126
- # @raise [ArgumentError] if layer does not belong to the {Layout::Document}
127
- #
128
- # @raise [ArgumentError] if entity already belongs to a {Layout::Document}
129
- #
130
- # @version LayOut 2018
131
- def add_entity(*args)
132
- end
133
-
134
- # The {#auto_text_definitions} method returns an array of
135
- # {Layout::AutoTextDefinition}'s in the {Layout::Document}.
136
- #
137
- # @example
138
- # doc = Layout::Document.open("C:/path/to/document.layout")
139
- # defs = doc.auto_text_definitions
140
- #
141
- # @return [Layout::AutoTextDefinitions]
142
- #
143
- # @version LayOut 2018
144
- def auto_text_definitions
145
- end
146
-
147
- # The {#export} method exports the {Layout::Document} to a given file format.
148
- # It knows which format to export based on the file extension you place on the
149
- # file name. For example, a filename of "thing.pdf" will export a PDF file,
150
- # whereas "thing.png" will export a set of PNG images.
151
- #
152
- # For LayOut version 2020.1, valid extensions include .pdf, .jpg, and .png.
153
- #
154
- # @example PDF Export Examples
155
- # doc = Layout::Document.open("c:/path/to/document.layout")
156
- #
157
- # # Export pdf file on a PC, with default settings.
158
- # status = doc.export("c:/my_export.pdf")
159
- #
160
- # # Export pages one through three at high quality, compressing jpeg images
161
- # # at 0.75 compression quality (valid range is 0.0 - 1.0). Note that the
162
- # # first page of a {Layout::Document} is index 0.
163
- # options = { start_page: 1,
164
- # end_page: 3,
165
- # output_resolution: Layout::PageInfo::RESOLUTION_HIGH,
166
- # compress_images: TRUE,
167
- # compress_quality: 0.75 }
168
- #
169
- # status = doc.export("c:/my_export.pdf", options)
170
- #
171
- # @example Image Set Export Examples
172
- # doc = Layout::Document.open("c:/path/to/document.layout")
173
- #
174
- # # Export png files on macOS, with default settings.
175
- # status = doc.export('/Users/username/Desktop/pngs/page.png')
176
- #
177
- # # Export pages one through three at 300 dpi as JPGs.
178
- # options = { start_page: 1,
179
- # end_page: 3,
180
- # dpi: 300 }
181
- # status = doc.export('c:/page.jpg', options)
182
- #
183
- # @param [String] file_path
184
- # The file or image set to create. The directory
185
- # path must already exist. The path must include the file extension.
186
- #
187
- # @param [Hash, nil] options
188
- # An optional hash of settings for the export.
189
- #
190
- # @raise [TypeError] if an options value is the wrong type
191
- #
192
- # @raise [RangeError] if an options value is out of range
193
- #
194
- # @raise [ArgumentError] if the full file path does not exist
195
- #
196
- # @raise [ArgumentError] if the specified file type is missing or not supported
197
- #
198
- # @version LayOut 2020.1
199
- def export(file_path, options = nil)
200
- end
201
-
202
- # The {#grid} method returns the {Layout::Grid} for a {Layout::Document}.
203
- #
204
- # @example
205
- # doc = Layout::Document.open("C:/path/to/document.layout")
206
- # grid = doc.grid
207
- #
208
- # @return [Layout::Grid]
209
- #
210
- # @version LayOut 2018
211
- def grid
212
- end
213
-
214
- # The {#grid_snap_enabled=} method sets whether or not grid snap is enabled in
215
- # the {Layout::Document}.
216
- #
217
- # @example
218
- # doc = Layout::Document.open("C:/path/to/document.layout")
219
- # doc.grid_snap_enabled = true
220
- #
221
- # @param [Boolean] enabled
222
- # +true+ for enabled +false+ for disabled
223
- #
224
- # @version LayOut 2018
225
- def grid_snap_enabled=(enabled)
226
- end
227
-
228
- # The {#grid_snap_enabled?} method returns whether or not grid snap is enabled
229
- # in the {Layout::Document}.
230
- #
231
- # @example
232
- # doc = Layout::Document.open("C:/path/to/document.layout")
233
- # enabled = doc.grid_snap_enabled?
234
- #
235
- # @return [Boolean]
236
- #
237
- # @version LayOut 2018
238
- def grid_snap_enabled?
239
- end
240
-
241
- # The {#initialize} method creates a new {Layout::Document}. Passing a path to
242
- # an existing {Layout::Document} will use that file as a template. The new
243
- # {Layout::Document} won't have a path until it is saved for the first time.
244
- #
245
- # @example
246
- # doc = Layout::Document.new
247
- # doc2 = Layout::Document.new("/path/to/template.layout")
248
- #
249
- # @overload initialize
250
- #
251
- # @return [Layout::Document] an empty {Layout::Document} with one
252
- # {Layout::Layer} and one {Layout::Page}
253
- #
254
- # @overload initialize(template_path)
255
- #
256
- # @param [String] template_path The path to the {Layout::Document} to use as
257
- # a template
258
- # @return [Layout::Document] an unsaved {Layout::Document} based on the
259
- # template
260
- #
261
- # @raise [RuntimeError] if there was an error reading the template file
262
- #
263
- # @raise [ArgumentError] if the template file could not be found
264
- #
265
- # @version LayOut 2018
266
- def initialize(*args)
267
- end
268
-
269
- # The {#layers} method returns the {Layout::Layers} of the {Layout::Document}.
270
- #
271
- # @example
272
- # doc = Layout::Document.open("C:/path/to/document.layout")
273
- # layers = doc.layers
274
- #
275
- # @return [Layout::Layers]
276
- #
277
- # @version LayOut 2018
278
- def layers
279
- end
280
-
281
- # The {#object_snap_enabled=} method enables or disables inference in the
282
- # {Layout::Document}.
283
- #
284
- # @example
285
- # doc = Layout::Document.open("C:/path/to/document.layout")
286
- # doc.object_snap_enabled = false
287
- #
288
- # @param [Boolean] enabled
289
- # +true+ for enabled +false+ for disabled
290
- #
291
- # @version LayOut 2018
292
- def object_snap_enabled=(enabled)
293
- end
294
-
295
- # The {#object_snap_enabled?} method returns whether or not inference is
296
- # enabled in the {Layout::Document}.
297
- #
298
- # @example
299
- # doc = Layout::Document.open("C:/path/to/document.layout")
300
- # enabled = doc.object_snap_enabled?
301
- #
302
- # @return [Boolean]
303
- #
304
- # @version LayOut 2018
305
- def object_snap_enabled?
306
- end
307
-
308
- # The {#page_info} method returns a reference to the {Layout::PageInfo}
309
- # settings of the {Layout::Document}.
310
- #
311
- # @example
312
- # doc = Layout::Document.open("C:/path/to/document.layout")
313
- # page_info = doc.page_info
314
- #
315
- # @return [Layout::PageInfo]
316
- #
317
- # @version LayOut 2018
318
- def page_info
319
- end
320
-
321
- # The {#pages} method returns the {Layout::Pages} of the {Layout::Document}.
322
- #
323
- #
324
- # @example:
325
- # doc = Layout::Document.open("C:/path/to/document.layout")
326
- # doc_pages = doc.pages
327
- #
328
- # @return [Layout::Pages] The {Layout::Pages} for the {Layout::Document}.
329
- #
330
- # @version LayOut 2018
331
- def pages
332
- end
333
-
334
- # The {#path} method returns the full path of the {Layout::Document} file. An
335
- # empty string is returned for a new {Layout::Document} (one which has not
336
- # been saved and opened).
337
- #
338
- # @example
339
- # doc = Layout::Document.open("C:/path/to/document.layout")
340
- # path = doc.path
341
- #
342
- # @return [String]
343
- #
344
- # @version LayOut 2018
345
- def path
346
- end
347
-
348
- # The {#precision} method returns the precision for the {Layout::Document}.
349
- #
350
- # @example
351
- # doc = Layout::Document.open("C:/path/to/document.layout")
352
- # precision = doc.precision
353
- #
354
- # @return [Float] the number specifying the precision for the
355
- # {Layout::Document}
356
- #
357
- # @version LayOut 2018
358
- def precision
359
- end
360
-
361
- # The {#precision=} method sets the precision for the {Layout::Document}.
362
- #
363
- # @example
364
- # doc = Layout::Document.open("C:/path/to/document.layout")
365
- # doc.precision = 0.0001
366
- #
367
- # @note LayOut only allows for a finite set of precision values for each units
368
- # setting, so it will set the precision to the closest valid setting for the
369
- # specified units. See the "Units" section of LayOut's "Document Setup"
370
- # dialog for a reference of the available precisions for each units setting.
371
- #
372
- # @param [Float] precision
373
- # The double specifying the precision for the
374
- # {Layout::Document}
375
- #
376
- # @version LayOut 2018
377
- def precision=(precision)
378
- end
379
-
380
- # The {#remove_entity} method removes an {Layout::Entity} from the
381
- # {Layout::Document}. If entity is a {Layout::Group}, then the {Layout::Group}
382
- # and all of its children will be removed from the {Layout::Document}.
383
- #
384
- # @example
385
- # doc = Layout::Document.open("C:/path/to/document.layout")
386
- # shared_entities = doc.shared_entities
387
- # # Remove the first entity in the document
388
- # doc.remove_entity(shared_entities.first)
389
- #
390
- # @param [Layout::Entity] entity
391
- # The {Layout::Entity} to be removed
392
- #
393
- # @raise [ArgumentError] if entity does not belong to the {Layout::Document}
394
- #
395
- # @version LayOut 2018
396
- def remove_entity(entity)
397
- end
398
-
399
- # The {#save} method saves the {Layout::Document} to a file at the given path.
400
- # Passing an empty path string will save the {Layout::Document} at its current
401
- # path.
402
- #
403
- # @example
404
- # doc = Layout::Document.open("C:/path/to/document.layout")
405
- # # Save the model using the current Layout format
406
- # path = File.join(ENV['Home'], 'Desktop', 'mydoc.layout')
407
- # status = doc.save(path)
408
- # # Save the document to the current file using the current LayOut format
409
- # status = doc.save
410
- # # Save the document to the current file in LayOut 3 format
411
- # status = doc.save(Layout::Document::VERSION_3)
412
- # # Save the document in LayOut 2013 format
413
- # path = File.join(ENV['Home'], 'Desktop', 'mydoc_v2013.layout')
414
- # status = doc.save(path, Layout::Document::VERSION_2013)
415
- #
416
- # @overload save
417
- #
418
- # @raise [ArgumentError] if the {Layout::Document} hasn't been saved with a
419
- # path yet
420
- #
421
- # @overload save(path, version = Layout::Document::VERSION_CURRENT)
422
- #
423
- # @param [String] path The path to the .layout file on disk.
424
- # @param [Integer] version LayOut file format to save.
425
- #
426
- # @raise [ArgumentError] if version is not a valid version
427
- #
428
- # @raise [ArgumentError] if saving failed. This may be due to the LayOut file
429
- # being open in the LayOut application
430
- #
431
- # @version LayOut 2018
432
- def save(*args)
433
- end
434
-
435
- # The {#shared_entities} method returns the {Layout::Entities}
436
- # that exist on shared {Layout::Layer}s in the {Layout::Document}.
437
- #
438
- # @example
439
- # doc = Layout::Document.open("C:/path/to/document.layout")
440
- # entities = doc.shared_entities
441
- #
442
- # @return [Layout::Entities]
443
- #
444
- # @version LayOut 2018
445
- def shared_entities
446
- end
447
-
448
- # The {#time_created} method returns the time when the {Layout::Document} was
449
- # created.
450
- #
451
- # @example
452
- # doc = Layout::Document.open("C:/path/to/document.layout")
453
- # created_time = doc.time_created
454
- #
455
- # @return [Time] time when the {Layout::Document} was created
456
- #
457
- # @version LayOut 2018
458
- def time_created
459
- end
460
-
461
- # The {#time_modified} method returns the last time the {Layout::Document} was
462
- # modified.
463
- #
464
- # @example
465
- # doc = Layout::Document.open("C:/path/to/document.layout")
466
- # mod_time = doc.time_modified
467
- #
468
- # @return [Time] time when the {Layout::Document} was last modified
469
- #
470
- # @version LayOut 2018
471
- def time_modified
472
- end
473
-
474
- # The {#time_published} method returns the time when the {Layout::Document} was
475
- # published.
476
- #
477
- # @example
478
- # doc = Layout::Document.open("C:/path/to/document.layout")
479
- # pub_time = doc.time_published
480
- #
481
- # @return [Time] time when the {Layout::Document} was published
482
- #
483
- # @version LayOut 2018
484
- def time_published
485
- end
486
-
487
- # The {#units} method returns the units for the {Layout::Document}.
488
- #
489
- # @example
490
- # doc = Layout::Document.open("C:/path/to/document.layout")
491
- # units = doc.units
492
- #
493
- # @return [Integer] The unit format of the {Layout::Document}
494
- #
495
- # @version LayOut 2018
496
- def units
497
- end
498
-
499
- # The {#units=} method sets the units for the {Layout::Document}.
500
- #
501
- # @example
502
- # doc = Layout::Document.open("C:/path/to/document.layout")
503
- # units_format = LAYOUT::DOCUMENT::DECIMAL_MILLIMETERS
504
- # doc.units = units_format
505
- #
506
- # @param [Integer] units_format
507
- # The format of the units in the {Layout::Document}
508
- #
509
- # @raise [ArgumentError] if units format is not a valid format
510
- #
511
- # @version LayOut 2018
512
- def units=(units_format)
513
- end
514
-
515
- end
1
+ # Copyright:: Copyright 2023 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # This is the interface to a LayOut document. A {Layout::Document} is the 2D
5
+ # drawing that the user is working with, and it serves as the "entry point" for
6
+ # most Ruby API interactions. The {Layout::Document.open} method gives you a
7
+ # handle to a {Layout::Document}, and from there you can use the
8
+ # document-level methods to start getting information and making changes.
9
+ #
10
+ # @example
11
+ # # Grab a handle to an existing LayOut document.
12
+ # doc = Layout::Document.open("C:/path/to/document.layout")
13
+ #
14
+ # # Grab other handles to commonly used collections inside the model.
15
+ # layers = doc.layers
16
+ # pages = doc.pages
17
+ # entities = doc.shared_entities
18
+ #
19
+ # # Now that we have our handles, we can start pulling objects and making
20
+ # # method calls that are useful.
21
+ # first_entity = entities[0]
22
+ #
23
+ # number_pages = pages.count
24
+ #
25
+ # @version LayOut 2018
26
+ class Layout::Document
27
+
28
+ # Constants
29
+
30
+ DECIMAL_CENTIMETERS = nil # Stub value.
31
+ DECIMAL_FEET = nil # Stub value.
32
+ DECIMAL_INCHES = nil # Stub value.
33
+ DECIMAL_METERS = nil # Stub value.
34
+ DECIMAL_MILLIMETERS = nil # Stub value.
35
+ DECIMAL_POINTS = nil # Stub value.
36
+
37
+ FRACTIONAL_INCHES = nil # Stub value.
38
+
39
+ VERSION_1 = nil # Stub value.
40
+ VERSION_2 = nil # Stub value.
41
+ VERSION_2013 = nil # Stub value.
42
+ VERSION_2014 = nil # Stub value.
43
+ VERSION_2015 = nil # Stub value.
44
+ VERSION_2016 = nil # Stub value.
45
+ VERSION_2017 = nil # Stub value.
46
+ VERSION_2018 = nil # Stub value.
47
+ VERSION_2019 = nil # Stub value.
48
+ VERSION_2020 = nil # Stub value.
49
+ VERSION_2021 = nil # Stub value.
50
+ VERSION_2022 = nil # Stub value.
51
+ VERSION_2023 = nil # Stub value.
52
+ VERSION_3 = nil # Stub value.
53
+ VERSION_CURRENT = nil # Stub value.
54
+
55
+ # Class Methods
56
+
57
+ # The {.open} method creates a new {Layout::Document} by loading an existing
58
+ # .layout file.
59
+ #
60
+ # @example
61
+ # filename = File.join(ENV['Home'], 'Desktop', 'template.layout')
62
+ # doc = Layout::Document.open(filename)
63
+ #
64
+ # @param [String] path
65
+ # The path to the .layout file on disk.
66
+ #
67
+ # @raise [ArgumentError] if the file does not exist
68
+ #
69
+ # @return [Layout::Document] The {Layout::Document} created from the .layout
70
+ # file.
71
+ #
72
+ # @version LayOut 2018
73
+ def self.open(path)
74
+ end
75
+
76
+ # Instance Methods
77
+
78
+ # The {#==} method checks to see if the two {Layout::Document}s are equal.
79
+ # This checks whether the Ruby Objects are pointing to the same internal
80
+ # object.
81
+ #
82
+ # @example
83
+ # doc = Layout::Document.open("C:/path/to/document.layout")
84
+ # document = doc.pages.first.document
85
+ # doc == document
86
+ #
87
+ # @param [Layout::Document] other
88
+ #
89
+ # @return [Boolean]
90
+ #
91
+ # @version LayOut 2018
92
+ def ==(other)
93
+ end
94
+
95
+ # The {#add_entity} method adds an {Layout::Entity} to the {Layout::Document}
96
+ # and places it on the given {Layout::Layer} and {Layout::Page}. If layer is a
97
+ # shared {Layout::Layer} then page may be ommitted. The {Layout::Entity} must
98
+ # not already belong to a {Layout::Document}. If the {Layout::Entity} is a
99
+ # {Layout::Group}, then the {Layout::Group} along with all of its children will
100
+ # be added to the {Layout::Document}.
101
+ #
102
+ # @example
103
+ # doc = Layout::Document.open("C:/path/to/document.layout")
104
+ # rect = Layout::Rectangle.new([[1, 1], [2, 2]])
105
+ # all_layers = doc.layers
106
+ # all_pages = doc.pages
107
+ # doc.add_entity(rect, all_layers.first, all_pages.first)
108
+ #
109
+ # @overload add_entity(entity, layer, page)
110
+ #
111
+ # @param [Layout::Entity] entity The {Layout::Entity} to be added
112
+ # @param [Layout::Layer] layer The {Layout::Layer} to add the
113
+ # {Layout::Entity} to
114
+ # @param [Layout::Page] page The {Layout::Page} to add the {Layout::Entity}
115
+ # to
116
+ #
117
+ # @overload add_entity(entity, layer)
118
+ #
119
+ # @param [Layout::Entity] entity The {Layout::Entity} to be added
120
+ # @param [Layout::Layer] layer The shared {Layout::Layer} to add the
121
+ # {Layout::Entity} to
122
+ #
123
+ # @raise [ArgumentError] if no {Layout::Page} is passed in and layer is
124
+ # non-shared
125
+ #
126
+ # @raise [ArgumentError] if page does not belong to the {Layout::Document}
127
+ #
128
+ # @raise [ArgumentError] if layer does not belong to the {Layout::Document}
129
+ #
130
+ # @raise [ArgumentError] if entity already belongs to a {Layout::Document}
131
+ #
132
+ # @version LayOut 2018
133
+ def add_entity(*args)
134
+ end
135
+
136
+ # The {#auto_text_definitions} method returns an array of
137
+ # {Layout::AutoTextDefinition}'s in the {Layout::Document}.
138
+ #
139
+ # @example
140
+ # doc = Layout::Document.open("C:/path/to/document.layout")
141
+ # defs = doc.auto_text_definitions
142
+ #
143
+ # @return [Layout::AutoTextDefinitions]
144
+ #
145
+ # @version LayOut 2018
146
+ def auto_text_definitions
147
+ end
148
+
149
+ # The {#export} method exports the {Layout::Document} to a given file format.
150
+ # It knows which format to export based on the file extension you place on the
151
+ # file name. For example, a filename of "thing.pdf" will export a PDF file,
152
+ # whereas "thing.png" will export a set of PNG images.
153
+ #
154
+ # For LayOut version 2020.1, valid extensions include .pdf, .jpg, and .png.
155
+ #
156
+ # @example PDF Export Examples
157
+ # doc = Layout::Document.open("c:/path/to/document.layout")
158
+ #
159
+ # # Export pdf file on a PC, with default settings.
160
+ # status = doc.export("c:/my_export.pdf")
161
+ #
162
+ # # Export pages one through three at high quality, compressing jpeg images
163
+ # # at 0.75 compression quality (valid range is 0.0 - 1.0). Note that the
164
+ # # first page of a {Layout::Document} is index 0.
165
+ # options = { start_page: 1,
166
+ # end_page: 3,
167
+ # output_resolution: Layout::PageInfo::RESOLUTION_HIGH,
168
+ # compress_images: TRUE,
169
+ # compress_quality: 0.75 }
170
+ #
171
+ # status = doc.export("c:/my_export.pdf", options)
172
+ #
173
+ # @example Image Set Export Examples
174
+ # doc = Layout::Document.open("c:/path/to/document.layout")
175
+ #
176
+ # # Export png files on macOS, with default settings.
177
+ # status = doc.export('/Users/username/Desktop/pngs/page.png')
178
+ #
179
+ # # Export pages one through three at 300 dpi as JPGs.
180
+ # options = { start_page: 1,
181
+ # end_page: 3,
182
+ # dpi: 300 }
183
+ # status = doc.export('c:/page.jpg', options)
184
+ #
185
+ # @param [String] file_path
186
+ # The file or image set to create. The directory
187
+ # path must already exist. The path must include the file extension.
188
+ #
189
+ # @param [Hash, nil] options
190
+ # An optional hash of settings for the export.
191
+ #
192
+ # @raise [TypeError] if an options value is the wrong type
193
+ #
194
+ # @raise [RangeError] if an options value is out of range
195
+ #
196
+ # @raise [ArgumentError] if the full file path does not exist
197
+ #
198
+ # @raise [ArgumentError] if the specified file type is missing or not supported
199
+ #
200
+ # @version LayOut 2020.1
201
+ def export(file_path, options = nil)
202
+ end
203
+
204
+ # The {#grid} method returns the {Layout::Grid} for a {Layout::Document}.
205
+ #
206
+ # @example
207
+ # doc = Layout::Document.open("C:/path/to/document.layout")
208
+ # grid = doc.grid
209
+ #
210
+ # @return [Layout::Grid]
211
+ #
212
+ # @version LayOut 2018
213
+ def grid
214
+ end
215
+
216
+ # The {#grid_snap_enabled=} method sets whether or not grid snap is enabled in
217
+ # the {Layout::Document}.
218
+ #
219
+ # @example
220
+ # doc = Layout::Document.open("C:/path/to/document.layout")
221
+ # doc.grid_snap_enabled = true
222
+ #
223
+ # @param [Boolean] enabled
224
+ # +true+ for enabled +false+ for disabled
225
+ #
226
+ # @version LayOut 2018
227
+ def grid_snap_enabled=(enabled)
228
+ end
229
+
230
+ # The {#grid_snap_enabled?} method returns whether or not grid snap is enabled
231
+ # in the {Layout::Document}.
232
+ #
233
+ # @example
234
+ # doc = Layout::Document.open("C:/path/to/document.layout")
235
+ # enabled = doc.grid_snap_enabled?
236
+ #
237
+ # @return [Boolean]
238
+ #
239
+ # @version LayOut 2018
240
+ def grid_snap_enabled?
241
+ end
242
+
243
+ # The {#initialize} method creates a new {Layout::Document}. Passing a path to
244
+ # an existing {Layout::Document} will use that file as a template. The new
245
+ # {Layout::Document} won't have a path until it is saved for the first time.
246
+ #
247
+ # @example
248
+ # doc = Layout::Document.new
249
+ # doc2 = Layout::Document.new("/path/to/template.layout")
250
+ #
251
+ # @overload initialize
252
+ #
253
+ # @return [Layout::Document] an empty {Layout::Document} with one
254
+ # {Layout::Layer} and one {Layout::Page}
255
+ #
256
+ # @overload initialize(template_path)
257
+ #
258
+ # @param [String] template_path The path to the {Layout::Document} to use as
259
+ # a template
260
+ # @return [Layout::Document] an unsaved {Layout::Document} based on the
261
+ # template
262
+ #
263
+ # @raise [RuntimeError] if there was an error reading the template file
264
+ #
265
+ # @raise [ArgumentError] if the template file could not be found
266
+ #
267
+ # @version LayOut 2018
268
+ def initialize(*args)
269
+ end
270
+
271
+ # The {#layers} method returns the {Layout::Layers} of the {Layout::Document}.
272
+ #
273
+ # @example
274
+ # doc = Layout::Document.open("C:/path/to/document.layout")
275
+ # layers = doc.layers
276
+ #
277
+ # @return [Layout::Layers]
278
+ #
279
+ # @version LayOut 2018
280
+ def layers
281
+ end
282
+
283
+ # The {#object_snap_enabled=} method enables or disables inference in the
284
+ # {Layout::Document}.
285
+ #
286
+ # @example
287
+ # doc = Layout::Document.open("C:/path/to/document.layout")
288
+ # doc.object_snap_enabled = false
289
+ #
290
+ # @param [Boolean] enabled
291
+ # +true+ for enabled +false+ for disabled
292
+ #
293
+ # @version LayOut 2018
294
+ def object_snap_enabled=(enabled)
295
+ end
296
+
297
+ # The {#object_snap_enabled?} method returns whether or not inference is
298
+ # enabled in the {Layout::Document}.
299
+ #
300
+ # @example
301
+ # doc = Layout::Document.open("C:/path/to/document.layout")
302
+ # enabled = doc.object_snap_enabled?
303
+ #
304
+ # @return [Boolean]
305
+ #
306
+ # @version LayOut 2018
307
+ def object_snap_enabled?
308
+ end
309
+
310
+ # The {#page_info} method returns a reference to the {Layout::PageInfo}
311
+ # settings of the {Layout::Document}.
312
+ #
313
+ # @example
314
+ # doc = Layout::Document.open("C:/path/to/document.layout")
315
+ # page_info = doc.page_info
316
+ #
317
+ # @return [Layout::PageInfo]
318
+ #
319
+ # @version LayOut 2018
320
+ def page_info
321
+ end
322
+
323
+ # The {#pages} method returns the {Layout::Pages} of the {Layout::Document}.
324
+ #
325
+ #
326
+ # @example:
327
+ # doc = Layout::Document.open("C:/path/to/document.layout")
328
+ # doc_pages = doc.pages
329
+ #
330
+ # @return [Layout::Pages] The {Layout::Pages} for the {Layout::Document}.
331
+ #
332
+ # @version LayOut 2018
333
+ def pages
334
+ end
335
+
336
+ # The {#path} method returns the full path of the {Layout::Document} file. An
337
+ # empty string is returned for a new {Layout::Document} (one which has not
338
+ # been saved and opened).
339
+ #
340
+ # @example
341
+ # doc = Layout::Document.open("C:/path/to/document.layout")
342
+ # path = doc.path
343
+ #
344
+ # @return [String]
345
+ #
346
+ # @version LayOut 2018
347
+ def path
348
+ end
349
+
350
+ # The {#precision} method returns the precision for the {Layout::Document}.
351
+ #
352
+ # @example
353
+ # doc = Layout::Document.open("C:/path/to/document.layout")
354
+ # precision = doc.precision
355
+ #
356
+ # @return [Float] the number specifying the precision for the
357
+ # {Layout::Document}
358
+ #
359
+ # @version LayOut 2018
360
+ def precision
361
+ end
362
+
363
+ # The {#precision=} method sets the precision for the {Layout::Document}.
364
+ #
365
+ # @example
366
+ # doc = Layout::Document.open("C:/path/to/document.layout")
367
+ # doc.precision = 0.0001
368
+ #
369
+ # @note LayOut only allows for a finite set of precision values for each units
370
+ # setting, so it will set the precision to the closest valid setting for the
371
+ # specified units. See the "Units" section of LayOut's "Document Setup"
372
+ # dialog for a reference of the available precisions for each units setting.
373
+ #
374
+ # @param [Float] precision
375
+ # The double specifying the precision for the
376
+ # {Layout::Document}
377
+ #
378
+ # @version LayOut 2018
379
+ def precision=(precision)
380
+ end
381
+
382
+ # The {#remove_entity} method removes an {Layout::Entity} from the
383
+ # {Layout::Document}. If entity is a {Layout::Group}, then the {Layout::Group}
384
+ # and all of its children will be removed from the {Layout::Document}.
385
+ #
386
+ # @example
387
+ # doc = Layout::Document.open("C:/path/to/document.layout")
388
+ # shared_entities = doc.shared_entities
389
+ # # Remove the first entity in the document
390
+ # doc.remove_entity(shared_entities.first)
391
+ #
392
+ # @param [Layout::Entity] entity
393
+ # The {Layout::Entity} to be removed
394
+ #
395
+ # @raise [ArgumentError] if entity does not belong to the {Layout::Document}
396
+ #
397
+ # @version LayOut 2018
398
+ def remove_entity(entity)
399
+ end
400
+
401
+ # The {#save} method saves the {Layout::Document} to a file at the given path.
402
+ # Passing an empty path string will save the {Layout::Document} at its current
403
+ # path.
404
+ #
405
+ # @example
406
+ # doc = Layout::Document.open("C:/path/to/document.layout")
407
+ # # Save the model using the current Layout format
408
+ # path = File.join(ENV['Home'], 'Desktop', 'mydoc.layout')
409
+ # status = doc.save(path)
410
+ # # Save the document to the current file using the current LayOut format
411
+ # status = doc.save
412
+ # # Save the document to the current file in LayOut 3 format
413
+ # status = doc.save(Layout::Document::VERSION_3)
414
+ # # Save the document in LayOut 2013 format
415
+ # path = File.join(ENV['Home'], 'Desktop', 'mydoc_v2013.layout')
416
+ # status = doc.save(path, Layout::Document::VERSION_2013)
417
+ #
418
+ # @overload save
419
+ #
420
+ # @raise [ArgumentError] if the {Layout::Document} hasn't been saved with a
421
+ # path yet
422
+ #
423
+ # @overload save(path, version = Layout::Document::VERSION_CURRENT)
424
+ #
425
+ # @param [String] path The path to the .layout file on disk.
426
+ # @param [Integer] version LayOut file format to save.
427
+ #
428
+ # @raise [ArgumentError] if version is not a valid version
429
+ #
430
+ # @raise [ArgumentError] if saving failed. This may be due to the LayOut file
431
+ # being open in the LayOut application
432
+ #
433
+ # @version LayOut 2018
434
+ def save(*args)
435
+ end
436
+
437
+ # The {#shared_entities} method returns the {Layout::Entities}
438
+ # that exist on shared {Layout::Layer}s in the {Layout::Document}.
439
+ #
440
+ # @example
441
+ # doc = Layout::Document.open("C:/path/to/document.layout")
442
+ # entities = doc.shared_entities
443
+ #
444
+ # @return [Layout::Entities]
445
+ #
446
+ # @version LayOut 2018
447
+ def shared_entities
448
+ end
449
+
450
+ # The {#time_created} method returns the time when the {Layout::Document} was
451
+ # created.
452
+ #
453
+ # @example
454
+ # doc = Layout::Document.open("C:/path/to/document.layout")
455
+ # created_time = doc.time_created
456
+ #
457
+ # @return [Time] time when the {Layout::Document} was created
458
+ #
459
+ # @version LayOut 2018
460
+ def time_created
461
+ end
462
+
463
+ # The {#time_modified} method returns the last time the {Layout::Document} was
464
+ # modified.
465
+ #
466
+ # @example
467
+ # doc = Layout::Document.open("C:/path/to/document.layout")
468
+ # mod_time = doc.time_modified
469
+ #
470
+ # @return [Time] time when the {Layout::Document} was last modified
471
+ #
472
+ # @version LayOut 2018
473
+ def time_modified
474
+ end
475
+
476
+ # The {#time_published} method returns the time when the {Layout::Document} was
477
+ # published.
478
+ #
479
+ # @example
480
+ # doc = Layout::Document.open("C:/path/to/document.layout")
481
+ # pub_time = doc.time_published
482
+ #
483
+ # @return [Time] time when the {Layout::Document} was published
484
+ #
485
+ # @version LayOut 2018
486
+ def time_published
487
+ end
488
+
489
+ # The {#units} method returns the units for the {Layout::Document}.
490
+ #
491
+ # @example
492
+ # doc = Layout::Document.open("C:/path/to/document.layout")
493
+ # units = doc.units
494
+ #
495
+ # @return [Integer] The unit format of the {Layout::Document}
496
+ #
497
+ # @version LayOut 2018
498
+ def units
499
+ end
500
+
501
+ # The {#units=} method sets the units for the {Layout::Document}.
502
+ #
503
+ # @example
504
+ # doc = Layout::Document.open("C:/path/to/document.layout")
505
+ # units_format = LAYOUT::DOCUMENT::DECIMAL_MILLIMETERS
506
+ # doc.units = units_format
507
+ #
508
+ # @param [Integer] units_format
509
+ # The format of the units in the {Layout::Document}
510
+ #
511
+ # @raise [ArgumentError] if units format is not a valid format
512
+ #
513
+ # @version LayOut 2018
514
+ def units=(units_format)
515
+ end
516
+
517
+ end