sketchup-api-stubs 0.7.4 → 0.7.8

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