aspose_slides_cloud 22.3.0 → 22.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (277) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +13 -16
  3. data/Gemfile.lock +73 -0
  4. data/README.md +120 -85
  5. data/TestData/TemplatingCVDataWithBase64.xml +22 -22
  6. data/TestData/oleObject.xlsx +0 -0
  7. data/TestData/test.pptx +0 -0
  8. data/aspose_slides_cloud.gemspec +2 -2
  9. data/docker-entrypoint.sh +7 -7
  10. data/lib/aspose_slides_cloud/api/slides_api.rb +19879 -19455
  11. data/lib/aspose_slides_cloud/api_client.rb +450 -450
  12. data/lib/aspose_slides_cloud/models/accent_element.rb +243 -243
  13. data/lib/aspose_slides_cloud/models/access_permissions.rb +321 -0
  14. data/lib/aspose_slides_cloud/models/add_layout_slide.rb +248 -248
  15. data/lib/aspose_slides_cloud/models/add_master_slide.rb +263 -263
  16. data/lib/aspose_slides_cloud/models/add_shape.rb +243 -243
  17. data/lib/aspose_slides_cloud/models/add_slide.rb +273 -273
  18. data/lib/aspose_slides_cloud/models/{waterfall_series.rb → alpha_bi_level_effect.rb} +238 -248
  19. data/lib/aspose_slides_cloud/models/alpha_ceiling_effect.rb +223 -0
  20. data/lib/aspose_slides_cloud/models/alpha_floor_effect.rb +223 -0
  21. data/lib/aspose_slides_cloud/models/alpha_inverse_effect.rb +223 -0
  22. data/lib/aspose_slides_cloud/models/alpha_modulate_effect.rb +223 -0
  23. data/lib/aspose_slides_cloud/models/alpha_modulate_fixed_effect.rb +238 -0
  24. data/lib/aspose_slides_cloud/models/alpha_replace_effect.rb +238 -0
  25. data/lib/aspose_slides_cloud/models/api_info.rb +221 -221
  26. data/lib/aspose_slides_cloud/models/arc_to_path_segment.rb +283 -283
  27. data/lib/aspose_slides_cloud/models/array_element.rb +309 -309
  28. data/lib/aspose_slides_cloud/models/arrow_head_properties.rb +289 -289
  29. data/lib/aspose_slides_cloud/models/audio_frame.rb +395 -386
  30. data/lib/aspose_slides_cloud/models/axes.rb +241 -241
  31. data/lib/aspose_slides_cloud/models/axis.rb +723 -723
  32. data/lib/aspose_slides_cloud/models/bar_element.rb +255 -255
  33. data/lib/aspose_slides_cloud/models/base64_input_file.rb +234 -234
  34. data/lib/aspose_slides_cloud/models/bi_level_effect.rb +238 -0
  35. data/lib/aspose_slides_cloud/models/block_element.rb +235 -235
  36. data/lib/aspose_slides_cloud/models/blur_effect.rb +231 -231
  37. data/lib/aspose_slides_cloud/models/blur_image_effect.rb +253 -0
  38. data/lib/aspose_slides_cloud/models/border_box_element.rb +313 -313
  39. data/lib/aspose_slides_cloud/models/box_element.rb +283 -283
  40. data/lib/aspose_slides_cloud/models/bubble_chart_data_point.rb +216 -216
  41. data/lib/aspose_slides_cloud/models/bubble_series.rb +260 -260
  42. data/lib/aspose_slides_cloud/models/camera.rb +295 -295
  43. data/lib/aspose_slides_cloud/models/chart.rb +393 -372
  44. data/lib/aspose_slides_cloud/models/chart_category.rb +275 -275
  45. data/lib/aspose_slides_cloud/models/chart_lines_format.rb +221 -221
  46. data/lib/aspose_slides_cloud/models/chart_series_group.rb +399 -0
  47. data/lib/aspose_slides_cloud/models/chart_title.rb +226 -226
  48. data/lib/aspose_slides_cloud/models/chart_wall.rb +285 -285
  49. data/lib/aspose_slides_cloud/models/close_path_segment.rb +223 -223
  50. data/lib/aspose_slides_cloud/models/color_change_effect.rb +243 -0
  51. data/lib/aspose_slides_cloud/models/color_replace_effect.rb +233 -0
  52. data/lib/aspose_slides_cloud/models/color_scheme.rb +321 -321
  53. data/lib/aspose_slides_cloud/models/common_slide_view_properties.rb +221 -221
  54. data/lib/aspose_slides_cloud/models/connector.rb +281 -282
  55. data/lib/aspose_slides_cloud/models/cubic_bezier_to_path_segment.rb +313 -313
  56. data/lib/aspose_slides_cloud/models/custom_dash_pattern.rb +213 -213
  57. data/lib/aspose_slides_cloud/models/data_point.rb +201 -201
  58. data/lib/aspose_slides_cloud/models/delimiter_element.rb +297 -297
  59. data/lib/aspose_slides_cloud/models/disc_usage.rb +231 -231
  60. data/lib/aspose_slides_cloud/models/document.rb +261 -261
  61. data/lib/aspose_slides_cloud/models/document_properties.rb +213 -213
  62. data/lib/aspose_slides_cloud/models/document_property.rb +236 -236
  63. data/lib/aspose_slides_cloud/models/document_replace_result.rb +222 -222
  64. data/lib/aspose_slides_cloud/models/duotone_effect.rb +243 -0
  65. data/lib/aspose_slides_cloud/models/effect.rb +438 -438
  66. data/lib/aspose_slides_cloud/models/effect_format.rb +281 -281
  67. data/lib/aspose_slides_cloud/models/entity_exists.rb +216 -216
  68. data/lib/aspose_slides_cloud/models/error.rb +241 -241
  69. data/lib/aspose_slides_cloud/models/error_details.rb +226 -226
  70. data/lib/aspose_slides_cloud/models/export_format.rb +63 -63
  71. data/lib/aspose_slides_cloud/models/export_options.rb +232 -252
  72. data/lib/aspose_slides_cloud/models/file_version.rb +229 -229
  73. data/lib/aspose_slides_cloud/models/file_versions.rb +213 -213
  74. data/lib/aspose_slides_cloud/models/files_list.rb +213 -213
  75. data/lib/aspose_slides_cloud/models/files_upload_result.rb +225 -225
  76. data/lib/aspose_slides_cloud/models/fill_format.rb +244 -244
  77. data/lib/aspose_slides_cloud/models/fill_overlay_effect.rb +250 -250
  78. data/lib/aspose_slides_cloud/models/{box_and_whisker_series.rb → fill_overlay_image_effect.rb} +260 -300
  79. data/lib/aspose_slides_cloud/models/font_fallback_rule.rb +243 -243
  80. data/lib/aspose_slides_cloud/models/font_scheme.rb +231 -231
  81. data/lib/aspose_slides_cloud/models/font_set.rb +231 -231
  82. data/lib/aspose_slides_cloud/models/format_scheme.rb +249 -249
  83. data/lib/aspose_slides_cloud/models/fraction_element.rb +265 -265
  84. data/lib/aspose_slides_cloud/models/function_element.rb +243 -243
  85. data/lib/aspose_slides_cloud/models/geometry_path.rb +267 -267
  86. data/lib/aspose_slides_cloud/models/geometry_paths.rb +213 -213
  87. data/lib/aspose_slides_cloud/models/geometry_shape.rb +266 -267
  88. data/lib/aspose_slides_cloud/models/gif_export_options.rb +235 -235
  89. data/lib/aspose_slides_cloud/models/glow_effect.rb +226 -226
  90. data/lib/aspose_slides_cloud/models/gradient_fill.rb +346 -346
  91. data/lib/aspose_slides_cloud/models/gradient_fill_stop.rb +226 -226
  92. data/lib/aspose_slides_cloud/models/graphical_object.rb +240 -241
  93. data/lib/aspose_slides_cloud/models/{waterfall_chart_data_point.rb → gray_scale_effect.rb} +223 -210
  94. data/lib/aspose_slides_cloud/models/group_shape.rb +250 -241
  95. data/lib/aspose_slides_cloud/models/grouping_character_element.rb +287 -287
  96. data/lib/aspose_slides_cloud/models/header_footer.rb +251 -251
  97. data/lib/aspose_slides_cloud/models/hsl_effect.rb +268 -0
  98. data/lib/aspose_slides_cloud/models/html5_export_options.rb +223 -225
  99. data/lib/aspose_slides_cloud/models/html_export_options.rb +381 -383
  100. data/lib/aspose_slides_cloud/models/hyperlink.rb +352 -352
  101. data/lib/aspose_slides_cloud/models/i_shape_export_options.rb +201 -201
  102. data/lib/aspose_slides_cloud/models/image.rb +241 -241
  103. data/lib/aspose_slides_cloud/models/image_export_format.rb +43 -43
  104. data/lib/aspose_slides_cloud/models/image_export_options.rb +291 -291
  105. data/lib/aspose_slides_cloud/models/image_export_options_base.rb +222 -0
  106. data/lib/aspose_slides_cloud/models/image_transform_effect.rb +244 -0
  107. data/lib/aspose_slides_cloud/models/images.rb +213 -213
  108. data/lib/aspose_slides_cloud/models/inner_shadow_effect.rb +256 -256
  109. data/lib/aspose_slides_cloud/models/input.rb +231 -231
  110. data/lib/aspose_slides_cloud/models/input_file.rb +254 -254
  111. data/lib/aspose_slides_cloud/models/interactive_sequence.rb +228 -228
  112. data/lib/aspose_slides_cloud/models/layout_slide.rb +282 -282
  113. data/lib/aspose_slides_cloud/models/layout_slides.rb +213 -213
  114. data/lib/aspose_slides_cloud/models/left_sub_superscript_element.rb +253 -253
  115. data/lib/aspose_slides_cloud/models/legend.rb +335 -335
  116. data/lib/aspose_slides_cloud/models/light_rig.rb +297 -297
  117. data/lib/aspose_slides_cloud/models/limit_element.rb +253 -253
  118. data/lib/aspose_slides_cloud/models/line_format.rb +415 -415
  119. data/lib/aspose_slides_cloud/models/line_to_path_segment.rb +253 -253
  120. data/lib/aspose_slides_cloud/models/luminance_effect.rb +253 -0
  121. data/lib/aspose_slides_cloud/models/master_slide.rb +235 -235
  122. data/lib/aspose_slides_cloud/models/master_slides.rb +213 -213
  123. data/lib/aspose_slides_cloud/models/math_element.rb +244 -244
  124. data/lib/aspose_slides_cloud/models/math_paragraph.rb +257 -257
  125. data/lib/aspose_slides_cloud/models/matrix_element.rb +341 -341
  126. data/lib/aspose_slides_cloud/models/merge.rb +235 -235
  127. data/lib/aspose_slides_cloud/models/merging_source.rb +223 -223
  128. data/lib/aspose_slides_cloud/models/move_to_path_segment.rb +253 -253
  129. data/lib/aspose_slides_cloud/models/nary_operator_element.rb +315 -315
  130. data/lib/aspose_slides_cloud/models/no_fill.rb +223 -223
  131. data/lib/aspose_slides_cloud/models/normal_view_restored_properties.rb +221 -221
  132. data/lib/aspose_slides_cloud/models/notes_slide.rb +221 -221
  133. data/lib/aspose_slides_cloud/models/notes_slide_export_format.rb +43 -43
  134. data/lib/aspose_slides_cloud/models/notes_slide_header_footer.rb +271 -271
  135. data/lib/aspose_slides_cloud/models/object_exist.rb +231 -231
  136. data/lib/aspose_slides_cloud/models/ole_object_frame.rb +335 -266
  137. data/lib/aspose_slides_cloud/models/one_value_chart_data_point.rb +234 -214
  138. data/lib/aspose_slides_cloud/models/one_value_series.rb +330 -258
  139. data/lib/aspose_slides_cloud/models/ordered_merge_request.rb +213 -213
  140. data/lib/aspose_slides_cloud/models/outer_shadow_effect.rb +256 -256
  141. data/lib/aspose_slides_cloud/models/output_file.rb +244 -244
  142. data/lib/aspose_slides_cloud/models/paragraph.rb +531 -521
  143. data/lib/aspose_slides_cloud/models/paragraphs.rb +213 -213
  144. data/lib/aspose_slides_cloud/models/path_input_file.rb +244 -244
  145. data/lib/aspose_slides_cloud/models/path_output_file.rb +243 -243
  146. data/lib/aspose_slides_cloud/models/path_segment.rb +244 -244
  147. data/lib/aspose_slides_cloud/models/pattern_fill.rb +270 -270
  148. data/lib/aspose_slides_cloud/models/pdf_export_options.rb +465 -479
  149. data/lib/aspose_slides_cloud/models/picture_fill.rb +367 -355
  150. data/lib/aspose_slides_cloud/models/picture_frame.rb +251 -252
  151. data/lib/aspose_slides_cloud/models/pipeline.rb +223 -223
  152. data/lib/aspose_slides_cloud/models/placeholder.rb +329 -329
  153. data/lib/aspose_slides_cloud/models/placeholders.rb +213 -213
  154. data/lib/aspose_slides_cloud/models/plot_area.rb +315 -315
  155. data/lib/aspose_slides_cloud/models/portion.rb +653 -653
  156. data/lib/aspose_slides_cloud/models/portion_format.rb +633 -0
  157. data/lib/aspose_slides_cloud/models/portions.rb +213 -213
  158. data/lib/aspose_slides_cloud/models/pptx_export_options.rb +247 -249
  159. data/lib/aspose_slides_cloud/models/presentation_to_merge.rb +277 -277
  160. data/lib/aspose_slides_cloud/models/presentations_merge_request.rb +225 -225
  161. data/lib/aspose_slides_cloud/models/preset_shadow_effect.rb +290 -290
  162. data/lib/aspose_slides_cloud/models/protection_properties.rb +271 -271
  163. data/lib/aspose_slides_cloud/models/quadratic_bezier_to_path_segment.rb +283 -283
  164. data/lib/aspose_slides_cloud/models/radical_element.rb +253 -253
  165. data/lib/aspose_slides_cloud/models/reflection_effect.rb +445 -445
  166. data/lib/aspose_slides_cloud/models/remove_shape.rb +233 -233
  167. data/lib/aspose_slides_cloud/models/remove_slide.rb +238 -238
  168. data/lib/aspose_slides_cloud/models/reorder_slide.rb +253 -253
  169. data/lib/aspose_slides_cloud/models/replace_text.rb +273 -273
  170. data/lib/aspose_slides_cloud/models/request_input_file.rb +239 -239
  171. data/lib/aspose_slides_cloud/models/reset_slide.rb +238 -238
  172. data/lib/aspose_slides_cloud/models/resource_base.rb +223 -223
  173. data/lib/aspose_slides_cloud/models/resource_uri.rb +261 -241
  174. data/lib/aspose_slides_cloud/models/response_output_file.rb +223 -223
  175. data/lib/aspose_slides_cloud/models/right_sub_superscript_element.rb +263 -263
  176. data/lib/aspose_slides_cloud/models/save.rb +270 -270
  177. data/lib/aspose_slides_cloud/models/save_shape.rb +280 -280
  178. data/lib/aspose_slides_cloud/models/save_slide.rb +305 -305
  179. data/lib/aspose_slides_cloud/models/scatter_chart_data_point.rb +229 -229
  180. data/lib/aspose_slides_cloud/models/scatter_series.rb +250 -250
  181. data/lib/aspose_slides_cloud/models/section.rb +238 -238
  182. data/lib/aspose_slides_cloud/models/section_zoom_frame.rb +255 -256
  183. data/lib/aspose_slides_cloud/models/sections.rb +213 -213
  184. data/lib/aspose_slides_cloud/models/series.rb +386 -386
  185. data/lib/aspose_slides_cloud/models/series_marker.rb +285 -285
  186. data/lib/aspose_slides_cloud/models/shape.rb +271 -272
  187. data/lib/aspose_slides_cloud/models/shape_base.rb +399 -409
  188. data/lib/aspose_slides_cloud/models/shape_bevel.rb +265 -265
  189. data/lib/aspose_slides_cloud/models/shape_export_format.rb +44 -44
  190. data/lib/aspose_slides_cloud/models/shape_image_export_options.rb +275 -275
  191. data/lib/aspose_slides_cloud/models/shape_thumbnail_bounds.rb +41 -41
  192. data/lib/aspose_slides_cloud/models/shape_type.rb +54 -54
  193. data/lib/aspose_slides_cloud/models/shapes.rb +213 -213
  194. data/lib/aspose_slides_cloud/models/shapes_alignment_type.rb +46 -46
  195. data/lib/aspose_slides_cloud/models/slide.rb +326 -326
  196. data/lib/aspose_slides_cloud/models/slide_animation.rb +225 -225
  197. data/lib/aspose_slides_cloud/models/slide_background.rb +270 -270
  198. data/lib/aspose_slides_cloud/models/slide_comment.rb +227 -227
  199. data/lib/aspose_slides_cloud/models/slide_comment_base.rb +286 -286
  200. data/lib/aspose_slides_cloud/models/slide_comments.rb +213 -213
  201. data/lib/aspose_slides_cloud/models/slide_export_format.rb +60 -60
  202. data/lib/aspose_slides_cloud/models/slide_modern_comment.rb +269 -269
  203. data/lib/aspose_slides_cloud/models/slide_properties.rb +319 -319
  204. data/lib/aspose_slides_cloud/models/slide_replace_result.rb +227 -227
  205. data/lib/aspose_slides_cloud/models/slides.rb +213 -213
  206. data/lib/aspose_slides_cloud/models/smart_art.rb +348 -349
  207. data/lib/aspose_slides_cloud/models/smart_art_node.rb +307 -297
  208. data/lib/aspose_slides_cloud/models/smart_art_shape.rb +241 -242
  209. data/lib/aspose_slides_cloud/models/soft_edge_effect.rb +216 -216
  210. data/lib/aspose_slides_cloud/models/solid_fill.rb +233 -233
  211. data/lib/aspose_slides_cloud/models/special_slide_type.rb +41 -41
  212. data/lib/aspose_slides_cloud/models/split_document_result.rb +213 -213
  213. data/lib/aspose_slides_cloud/models/storage_exist.rb +216 -216
  214. data/lib/aspose_slides_cloud/models/storage_file.rb +261 -261
  215. data/lib/aspose_slides_cloud/models/subscript_element.rb +243 -243
  216. data/lib/aspose_slides_cloud/models/summary_zoom_frame.rb +274 -275
  217. data/lib/aspose_slides_cloud/models/summary_zoom_section.rb +266 -267
  218. data/lib/aspose_slides_cloud/models/superscript_element.rb +243 -243
  219. data/lib/aspose_slides_cloud/models/svg_export_options.rb +339 -341
  220. data/lib/aspose_slides_cloud/models/swf_export_options.rb +449 -451
  221. data/lib/aspose_slides_cloud/models/table.rb +356 -357
  222. data/lib/aspose_slides_cloud/models/table_cell.rb +427 -407
  223. data/lib/aspose_slides_cloud/models/table_column.rb +216 -216
  224. data/lib/aspose_slides_cloud/models/table_row.rb +243 -243
  225. data/lib/aspose_slides_cloud/models/task.rb +244 -244
  226. data/lib/aspose_slides_cloud/models/text_bounds.rb +261 -261
  227. data/lib/aspose_slides_cloud/models/text_element.rb +233 -233
  228. data/lib/aspose_slides_cloud/models/text_frame_format.rb +255 -255
  229. data/lib/aspose_slides_cloud/models/text_item.rb +221 -221
  230. data/lib/aspose_slides_cloud/models/text_items.rb +213 -213
  231. data/lib/aspose_slides_cloud/models/theme.rb +241 -241
  232. data/lib/aspose_slides_cloud/models/three_d_format.rb +335 -335
  233. data/lib/aspose_slides_cloud/models/tiff_export_options.rb +375 -375
  234. data/lib/aspose_slides_cloud/models/tint_effect.rb +253 -0
  235. data/lib/aspose_slides_cloud/models/update_background.rb +245 -245
  236. data/lib/aspose_slides_cloud/models/update_shape.rb +243 -243
  237. data/lib/aspose_slides_cloud/models/video_export_options.rb +289 -259
  238. data/lib/aspose_slides_cloud/models/video_frame.rb +345 -336
  239. data/lib/aspose_slides_cloud/models/view_properties.rb +361 -361
  240. data/lib/aspose_slides_cloud/models/xaml_export_options.rb +213 -215
  241. data/lib/aspose_slides_cloud/models/xps_export_options.rb +233 -235
  242. data/lib/aspose_slides_cloud/models/xy_series.rb +255 -255
  243. data/lib/aspose_slides_cloud/models/zoom_frame.rb +255 -256
  244. data/lib/aspose_slides_cloud/models/zoom_object.rb +301 -302
  245. data/lib/aspose_slides_cloud/type_registry.rb +462 -428
  246. data/lib/aspose_slides_cloud/version.rb +25 -25
  247. data/lib/aspose_slides_cloud.rb +284 -265
  248. data/spec/api/slides_api_spec.rb +54650 -53418
  249. data/spec/spec_utils.rb +188 -188
  250. data/spec/use_cases/abstract_class_spec.rb +38 -38
  251. data/spec/use_cases/animation_spec.rb +193 -193
  252. data/spec/use_cases/auth_spec.rb +91 -91
  253. data/spec/use_cases/chart_spec.rb +291 -291
  254. data/spec/use_cases/convert_spec.rb +154 -154
  255. data/spec/use_cases/create_spec.rb +101 -101
  256. data/spec/use_cases/header_footer_spec.rb +78 -78
  257. data/spec/use_cases/hyperlink_spec.rb +92 -92
  258. data/spec/use_cases/image_spec.rb +102 -102
  259. data/spec/use_cases/layout_slide_spec.rb +190 -190
  260. data/spec/use_cases/master_slide_spec.rb +190 -190
  261. data/spec/use_cases/math_spec.rb +163 -163
  262. data/spec/use_cases/merge_spec.rb +105 -105
  263. data/spec/use_cases/notes_slide_spec.rb +172 -172
  264. data/spec/use_cases/nullable_field_spec.rb +86 -86
  265. data/spec/use_cases/pipeline_spec.rb +61 -61
  266. data/spec/use_cases/property_spec.rb +177 -177
  267. data/spec/use_cases/section_spec.rb +104 -104
  268. data/spec/use_cases/shape_format_spec.rb +126 -126
  269. data/spec/use_cases/shape_spec.rb +397 -397
  270. data/spec/use_cases/split_spec.rb +88 -88
  271. data/spec/use_cases/text_spec.rb +74 -74
  272. data/spec/use_cases/timeout_spec.rb +44 -44
  273. data/spec/use_cases/watermark_spec.rb +158 -158
  274. data/testConfig.json +7 -7
  275. data/testRules.json +530 -527
  276. metadata +30 -10
  277. data/.gitignore +0 -1
@@ -1,341 +1,339 @@
1
- =begin
2
- Copyright (c) 2019 Aspose Pty Ltd
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining a copy
5
- of this software and associated documentation files (the "Software"), to deal
6
- in the Software without restriction, including without limitation the rights
7
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the Software is
9
- furnished to do so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in all
12
- copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- SOFTWARE.
21
- =end
22
-
23
- require 'date'
24
-
25
- module AsposeSlidesCloud
26
- # Provides options that control how a presentation is saved in SVG format.
27
- class SvgExportOptions < ExportOptions
28
- # Determines whether the text on a slide will be saved as graphics.
29
- attr_accessor :vectorize_text
30
-
31
- # Returns or sets the lower resolution limit for metafile rasterization.
32
- attr_accessor :metafile_rasterization_dpi
33
-
34
- # Determines whether the 3D text is disabled in SVG.
35
- attr_accessor :disable3_d_text
36
-
37
- # Disables splitting FromCornerX and FromCenter gradients.
38
- attr_accessor :disable_gradient_split
39
-
40
- # SVG 1.1 lacks ability to define insets for markers. Aspose.Slides SVG writing engine has workaround for that problem: it crops end of line with arrow, so, line doesn't overlap markers. This option switches off such behavior.
41
- attr_accessor :disable_line_end_cropping
42
-
43
- # Determines JPEG encoding quality.
44
- attr_accessor :jpeg_quality
45
-
46
- # Represents the pictures compression level
47
- attr_accessor :pictures_compression
48
-
49
- # A boolean flag indicates if the cropped parts remain as part of the document. If true the cropped parts will removed, if false they will be serialized in the document (which can possible lead to a larger file)
50
- attr_accessor :delete_pictures_cropped_areas
51
-
52
- # Determines a way of handling externally loaded fonts.
53
- attr_accessor :external_fonts_handling
54
-
55
- class EnumAttributeValidator
56
- attr_reader :datatype
57
- attr_reader :allowable_values
58
-
59
- def initialize(datatype, allowable_values)
60
- @allowable_values = allowable_values.map do |value|
61
- case datatype.to_s
62
- when /Integer/i
63
- value.to_i
64
- when /Float/i
65
- value.to_f
66
- else
67
- value
68
- end
69
- end
70
- end
71
-
72
- def valid?(value)
73
- !value || allowable_values.any?{ |s| s.casecmp(value) == 0 }
74
- end
75
- end
76
-
77
- # Attribute mapping from ruby-style variable name to JSON key.
78
- def self.attribute_map
79
- super.merge({
80
- :'vectorize_text' => :'VectorizeText',
81
- :'metafile_rasterization_dpi' => :'MetafileRasterizationDpi',
82
- :'disable3_d_text' => :'Disable3DText',
83
- :'disable_gradient_split' => :'DisableGradientSplit',
84
- :'disable_line_end_cropping' => :'DisableLineEndCropping',
85
- :'jpeg_quality' => :'JpegQuality',
86
- :'pictures_compression' => :'PicturesCompression',
87
- :'delete_pictures_cropped_areas' => :'DeletePicturesCroppedAreas',
88
- :'external_fonts_handling' => :'ExternalFontsHandling',
89
- })
90
- end
91
-
92
- # Attribute type mapping.
93
- def self.swagger_types
94
- super.merge({
95
- :'vectorize_text' => :'BOOLEAN',
96
- :'metafile_rasterization_dpi' => :'Integer',
97
- :'disable3_d_text' => :'BOOLEAN',
98
- :'disable_gradient_split' => :'BOOLEAN',
99
- :'disable_line_end_cropping' => :'BOOLEAN',
100
- :'jpeg_quality' => :'Integer',
101
- :'pictures_compression' => :'String',
102
- :'delete_pictures_cropped_areas' => :'BOOLEAN',
103
- :'external_fonts_handling' => :'String',
104
- })
105
- end
106
-
107
- # Initializes the object
108
- # @param [Hash] attributes Model attributes in the form of hash
109
- def initialize(attributes = {})
110
- super
111
-
112
- if attributes.has_key?(:'VectorizeText')
113
- self.vectorize_text = attributes[:'VectorizeText']
114
- end
115
-
116
- if attributes.has_key?(:'MetafileRasterizationDpi')
117
- self.metafile_rasterization_dpi = attributes[:'MetafileRasterizationDpi']
118
- end
119
-
120
- if attributes.has_key?(:'Disable3DText')
121
- self.disable3_d_text = attributes[:'Disable3DText']
122
- end
123
-
124
- if attributes.has_key?(:'DisableGradientSplit')
125
- self.disable_gradient_split = attributes[:'DisableGradientSplit']
126
- end
127
-
128
- if attributes.has_key?(:'DisableLineEndCropping')
129
- self.disable_line_end_cropping = attributes[:'DisableLineEndCropping']
130
- end
131
-
132
- if attributes.has_key?(:'JpegQuality')
133
- self.jpeg_quality = attributes[:'JpegQuality']
134
- end
135
-
136
- if attributes.has_key?(:'PicturesCompression')
137
- self.pictures_compression = attributes[:'PicturesCompression']
138
- end
139
-
140
- if attributes.has_key?(:'DeletePicturesCroppedAreas')
141
- self.delete_pictures_cropped_areas = attributes[:'DeletePicturesCroppedAreas']
142
- end
143
-
144
- if attributes.has_key?(:'ExternalFontsHandling')
145
- self.external_fonts_handling = attributes[:'ExternalFontsHandling']
146
- end
147
- self.format = "svg"
148
- end
149
-
150
- # Show invalid properties with the reasons. Usually used together with valid?
151
- # @return Array for valid properties with the reasons
152
- def list_invalid_properties
153
- invalid_properties = super
154
- invalid_properties
155
- end
156
-
157
- # Check to see if the all the properties in the model are valid
158
- # @return true if the model is valid
159
- def valid?
160
- return false if !super
161
- pictures_compression_validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
162
- return false unless pictures_compression_validator.valid?(@pictures_compression)
163
- external_fonts_handling_validator = EnumAttributeValidator.new('String', ['AddLinksToFontFiles', 'Embed', 'Vectorize'])
164
- return false unless external_fonts_handling_validator.valid?(@external_fonts_handling)
165
- true
166
- end
167
-
168
- # Custom attribute writer method checking allowed values (enum).
169
- # @param [Object] pictures_compression Object to be assigned
170
- def pictures_compression=(pictures_compression)
171
- validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
172
- unless validator.valid?(pictures_compression)
173
- fail ArgumentError, 'invalid value for "pictures_compression", must be one of #{validator.allowable_values}.'
174
- end
175
- @pictures_compression = pictures_compression
176
- end
177
-
178
- # Custom attribute writer method checking allowed values (enum).
179
- # @param [Object] external_fonts_handling Object to be assigned
180
- def external_fonts_handling=(external_fonts_handling)
181
- validator = EnumAttributeValidator.new('String', ['AddLinksToFontFiles', 'Embed', 'Vectorize'])
182
- unless validator.valid?(external_fonts_handling)
183
- fail ArgumentError, 'invalid value for "external_fonts_handling", must be one of #{validator.allowable_values}.'
184
- end
185
- @external_fonts_handling = external_fonts_handling
186
- end
187
-
188
- # Checks equality by comparing each attribute.
189
- # @param [Object] Object to be compared
190
- def ==(o)
191
- return true if self.equal?(o)
192
- self.class == o.class &&
193
- default_regular_font == o.default_regular_font &&
194
- height == o.height &&
195
- width == o.width &&
196
- font_fallback_rules == o.font_fallback_rules &&
197
- format == o.format &&
198
- vectorize_text == o.vectorize_text &&
199
- metafile_rasterization_dpi == o.metafile_rasterization_dpi &&
200
- disable3_d_text == o.disable3_d_text &&
201
- disable_gradient_split == o.disable_gradient_split &&
202
- disable_line_end_cropping == o.disable_line_end_cropping &&
203
- jpeg_quality == o.jpeg_quality &&
204
- pictures_compression == o.pictures_compression &&
205
- delete_pictures_cropped_areas == o.delete_pictures_cropped_areas &&
206
- external_fonts_handling == o.external_fonts_handling
207
- end
208
-
209
- # @see the `==` method
210
- # @param [Object] Object to be compared
211
- def eql?(o)
212
- self == o
213
- end
214
-
215
- # Calculates hash code according to all attributes.
216
- # @return [Fixnum] Hash code
217
- def hash
218
- [default_regular_font, height, width, font_fallback_rules, format, vectorize_text, metafile_rasterization_dpi, disable3_d_text, disable_gradient_split, disable_line_end_cropping, jpeg_quality, pictures_compression, delete_pictures_cropped_areas, external_fonts_handling].hash
219
- end
220
-
221
- # Builds the object from hash
222
- # @param [Hash] attributes Model attributes in the form of hash
223
- # @return [Object] Returns the model itself
224
- def build_from_hash(attributes)
225
- return nil unless attributes.is_a?(Hash)
226
- self.class.swagger_types.each_pair do |key, type|
227
- mapKey = self.class.attribute_map[key]
228
- if !mapKey.nil?
229
- val = attributes[mapKey]
230
- if val.nil?
231
- mapKeyString = mapKey.to_s
232
- mapKeyString[0] = mapKeyString[0].downcase
233
- mapKey = mapKeyString.to_sym
234
- val = attributes[mapKey]
235
- end
236
- if !val.nil?
237
- if type =~ /\AArray<(.*)>/i
238
- # check to ensure the input is an array given that the the attribute
239
- # is documented as an array but the input is not
240
- if val.is_a?(Array)
241
- self.send("#{key}=", val.map { |v| _deserialize($1, v) })
242
- end
243
- else
244
- self.send("#{key}=", _deserialize(type, val))
245
- end
246
- end
247
- end
248
- end
249
-
250
- self
251
- end
252
-
253
- # Deserializes the data based on type
254
- # @param string type Data type
255
- # @param string value Value to be deserialized
256
- # @return [Object] Deserialized data
257
- def _deserialize(type, value)
258
- case type.to_sym
259
- when :DateTime
260
- DateTime.parse(value)
261
- when :Date
262
- Date.parse(value)
263
- when :String
264
- value.to_s
265
- when :Integer
266
- value.to_i
267
- when :Float
268
- value.to_f
269
- when :BOOLEAN
270
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
271
- true
272
- else
273
- false
274
- end
275
- when :Object
276
- # generic object (usually a Hash), return directly
277
- value
278
- when /\AArray<(?<inner_type>.+)>\z/
279
- inner_type = Regexp.last_match[:inner_type]
280
- value.map { |v| _deserialize(inner_type, v) }
281
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
282
- k_type = Regexp.last_match[:k_type]
283
- v_type = Regexp.last_match[:v_type]
284
- {}.tap do |hash|
285
- value.each do |k, v|
286
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
287
- end
288
- end
289
- else # model
290
- registry_type = AsposeSlidesCloud::TypeRegistry.get_type(type.to_s, value)
291
- if registry_type
292
- type = registry_type
293
- end
294
- temp_model = AsposeSlidesCloud.const_get(type).new
295
- temp_model.build_from_hash(value)
296
- end
297
- end
298
-
299
- # Returns the string representation of the object
300
- # @return [String] String presentation of the object
301
- def to_s
302
- to_hash.to_s
303
- end
304
-
305
- # to_body is an alias to to_hash (backward compatibility)
306
- # @return [Hash] Returns the object in the form of hash
307
- def to_body
308
- to_hash
309
- end
310
-
311
- # Returns the object in the form of hash
312
- # @return [Hash] Returns the object in the form of hash
313
- def to_hash
314
- hash = {}
315
- self.class.attribute_map.each_pair do |attr, param|
316
- value = self.send(attr)
317
- next if value.nil?
318
- hash[param] = _to_hash(value)
319
- end
320
- hash
321
- end
322
-
323
- # Outputs non-array value in the form of hash
324
- # For object, use to_hash. Otherwise, just return the value
325
- # @param [Object] value Any valid value
326
- # @return [Hash] Returns the value in the form of hash
327
- def _to_hash(value)
328
- if value.is_a?(Array)
329
- value.compact.map { |v| _to_hash(v) }
330
- elsif value.is_a?(Hash)
331
- {}.tap do |hash|
332
- value.each { |k, v| hash[k] = _to_hash(v) }
333
- end
334
- elsif value.respond_to? :to_hash
335
- value.to_hash
336
- else
337
- value
338
- end
339
- end
340
- end
341
- end
1
+ =begin
2
+ Copyright (c) 2019 Aspose Pty Ltd
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ SOFTWARE.
21
+ =end
22
+
23
+ require 'date'
24
+
25
+ module AsposeSlidesCloud
26
+ # Provides options that control how a presentation is saved in SVG format.
27
+ class SvgExportOptions < ExportOptions
28
+ # Determines whether the text on a slide will be saved as graphics.
29
+ attr_accessor :vectorize_text
30
+
31
+ # Returns or sets the lower resolution limit for metafile rasterization.
32
+ attr_accessor :metafile_rasterization_dpi
33
+
34
+ # Determines whether the 3D text is disabled in SVG.
35
+ attr_accessor :disable3_d_text
36
+
37
+ # Disables splitting FromCornerX and FromCenter gradients.
38
+ attr_accessor :disable_gradient_split
39
+
40
+ # SVG 1.1 lacks ability to define insets for markers. Aspose.Slides SVG writing engine has workaround for that problem: it crops end of line with arrow, so, line doesn't overlap markers. This option switches off such behavior.
41
+ attr_accessor :disable_line_end_cropping
42
+
43
+ # Determines JPEG encoding quality.
44
+ attr_accessor :jpeg_quality
45
+
46
+ # Represents the pictures compression level
47
+ attr_accessor :pictures_compression
48
+
49
+ # A boolean flag indicates if the cropped parts remain as part of the document. If true the cropped parts will removed, if false they will be serialized in the document (which can possible lead to a larger file)
50
+ attr_accessor :delete_pictures_cropped_areas
51
+
52
+ # Determines a way of handling externally loaded fonts.
53
+ attr_accessor :external_fonts_handling
54
+
55
+ class EnumAttributeValidator
56
+ attr_reader :datatype
57
+ attr_reader :allowable_values
58
+
59
+ def initialize(datatype, allowable_values)
60
+ @allowable_values = allowable_values.map do |value|
61
+ case datatype.to_s
62
+ when /Integer/i
63
+ value.to_i
64
+ when /Float/i
65
+ value.to_f
66
+ else
67
+ value
68
+ end
69
+ end
70
+ end
71
+
72
+ def valid?(value)
73
+ !value || allowable_values.any?{ |s| s.casecmp(value) == 0 }
74
+ end
75
+ end
76
+
77
+ # Attribute mapping from ruby-style variable name to JSON key.
78
+ def self.attribute_map
79
+ super.merge({
80
+ :'vectorize_text' => :'VectorizeText',
81
+ :'metafile_rasterization_dpi' => :'MetafileRasterizationDpi',
82
+ :'disable3_d_text' => :'Disable3DText',
83
+ :'disable_gradient_split' => :'DisableGradientSplit',
84
+ :'disable_line_end_cropping' => :'DisableLineEndCropping',
85
+ :'jpeg_quality' => :'JpegQuality',
86
+ :'pictures_compression' => :'PicturesCompression',
87
+ :'delete_pictures_cropped_areas' => :'DeletePicturesCroppedAreas',
88
+ :'external_fonts_handling' => :'ExternalFontsHandling',
89
+ })
90
+ end
91
+
92
+ # Attribute type mapping.
93
+ def self.swagger_types
94
+ super.merge({
95
+ :'vectorize_text' => :'BOOLEAN',
96
+ :'metafile_rasterization_dpi' => :'Integer',
97
+ :'disable3_d_text' => :'BOOLEAN',
98
+ :'disable_gradient_split' => :'BOOLEAN',
99
+ :'disable_line_end_cropping' => :'BOOLEAN',
100
+ :'jpeg_quality' => :'Integer',
101
+ :'pictures_compression' => :'String',
102
+ :'delete_pictures_cropped_areas' => :'BOOLEAN',
103
+ :'external_fonts_handling' => :'String',
104
+ })
105
+ end
106
+
107
+ # Initializes the object
108
+ # @param [Hash] attributes Model attributes in the form of hash
109
+ def initialize(attributes = {})
110
+ super
111
+
112
+ if attributes.has_key?(:'VectorizeText')
113
+ self.vectorize_text = attributes[:'VectorizeText']
114
+ end
115
+
116
+ if attributes.has_key?(:'MetafileRasterizationDpi')
117
+ self.metafile_rasterization_dpi = attributes[:'MetafileRasterizationDpi']
118
+ end
119
+
120
+ if attributes.has_key?(:'Disable3DText')
121
+ self.disable3_d_text = attributes[:'Disable3DText']
122
+ end
123
+
124
+ if attributes.has_key?(:'DisableGradientSplit')
125
+ self.disable_gradient_split = attributes[:'DisableGradientSplit']
126
+ end
127
+
128
+ if attributes.has_key?(:'DisableLineEndCropping')
129
+ self.disable_line_end_cropping = attributes[:'DisableLineEndCropping']
130
+ end
131
+
132
+ if attributes.has_key?(:'JpegQuality')
133
+ self.jpeg_quality = attributes[:'JpegQuality']
134
+ end
135
+
136
+ if attributes.has_key?(:'PicturesCompression')
137
+ self.pictures_compression = attributes[:'PicturesCompression']
138
+ end
139
+
140
+ if attributes.has_key?(:'DeletePicturesCroppedAreas')
141
+ self.delete_pictures_cropped_areas = attributes[:'DeletePicturesCroppedAreas']
142
+ end
143
+
144
+ if attributes.has_key?(:'ExternalFontsHandling')
145
+ self.external_fonts_handling = attributes[:'ExternalFontsHandling']
146
+ end
147
+ self.format = "svg"
148
+ end
149
+
150
+ # Show invalid properties with the reasons. Usually used together with valid?
151
+ # @return Array for valid properties with the reasons
152
+ def list_invalid_properties
153
+ invalid_properties = super
154
+ invalid_properties
155
+ end
156
+
157
+ # Check to see if the all the properties in the model are valid
158
+ # @return true if the model is valid
159
+ def valid?
160
+ return false if !super
161
+ pictures_compression_validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
162
+ return false unless pictures_compression_validator.valid?(@pictures_compression)
163
+ external_fonts_handling_validator = EnumAttributeValidator.new('String', ['AddLinksToFontFiles', 'Embed', 'Vectorize'])
164
+ return false unless external_fonts_handling_validator.valid?(@external_fonts_handling)
165
+ true
166
+ end
167
+
168
+ # Custom attribute writer method checking allowed values (enum).
169
+ # @param [Object] pictures_compression Object to be assigned
170
+ def pictures_compression=(pictures_compression)
171
+ validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
172
+ unless validator.valid?(pictures_compression)
173
+ fail ArgumentError, 'invalid value for "pictures_compression", must be one of #{validator.allowable_values}.'
174
+ end
175
+ @pictures_compression = pictures_compression
176
+ end
177
+
178
+ # Custom attribute writer method checking allowed values (enum).
179
+ # @param [Object] external_fonts_handling Object to be assigned
180
+ def external_fonts_handling=(external_fonts_handling)
181
+ validator = EnumAttributeValidator.new('String', ['AddLinksToFontFiles', 'Embed', 'Vectorize'])
182
+ unless validator.valid?(external_fonts_handling)
183
+ fail ArgumentError, 'invalid value for "external_fonts_handling", must be one of #{validator.allowable_values}.'
184
+ end
185
+ @external_fonts_handling = external_fonts_handling
186
+ end
187
+
188
+ # Checks equality by comparing each attribute.
189
+ # @param [Object] Object to be compared
190
+ def ==(o)
191
+ return true if self.equal?(o)
192
+ self.class == o.class &&
193
+ default_regular_font == o.default_regular_font &&
194
+ font_fallback_rules == o.font_fallback_rules &&
195
+ format == o.format &&
196
+ vectorize_text == o.vectorize_text &&
197
+ metafile_rasterization_dpi == o.metafile_rasterization_dpi &&
198
+ disable3_d_text == o.disable3_d_text &&
199
+ disable_gradient_split == o.disable_gradient_split &&
200
+ disable_line_end_cropping == o.disable_line_end_cropping &&
201
+ jpeg_quality == o.jpeg_quality &&
202
+ pictures_compression == o.pictures_compression &&
203
+ delete_pictures_cropped_areas == o.delete_pictures_cropped_areas &&
204
+ external_fonts_handling == o.external_fonts_handling
205
+ end
206
+
207
+ # @see the `==` method
208
+ # @param [Object] Object to be compared
209
+ def eql?(o)
210
+ self == o
211
+ end
212
+
213
+ # Calculates hash code according to all attributes.
214
+ # @return [Fixnum] Hash code
215
+ def hash
216
+ [default_regular_font, font_fallback_rules, format, vectorize_text, metafile_rasterization_dpi, disable3_d_text, disable_gradient_split, disable_line_end_cropping, jpeg_quality, pictures_compression, delete_pictures_cropped_areas, external_fonts_handling].hash
217
+ end
218
+
219
+ # Builds the object from hash
220
+ # @param [Hash] attributes Model attributes in the form of hash
221
+ # @return [Object] Returns the model itself
222
+ def build_from_hash(attributes)
223
+ return nil unless attributes.is_a?(Hash)
224
+ self.class.swagger_types.each_pair do |key, type|
225
+ mapKey = self.class.attribute_map[key]
226
+ if !mapKey.nil?
227
+ val = attributes[mapKey]
228
+ if val.nil?
229
+ mapKeyString = mapKey.to_s
230
+ mapKeyString[0] = mapKeyString[0].downcase
231
+ mapKey = mapKeyString.to_sym
232
+ val = attributes[mapKey]
233
+ end
234
+ if !val.nil?
235
+ if type =~ /\AArray<(.*)>/i
236
+ # check to ensure the input is an array given that the the attribute
237
+ # is documented as an array but the input is not
238
+ if val.is_a?(Array)
239
+ self.send("#{key}=", val.map { |v| _deserialize($1, v) })
240
+ end
241
+ else
242
+ self.send("#{key}=", _deserialize(type, val))
243
+ end
244
+ end
245
+ end
246
+ end
247
+
248
+ self
249
+ end
250
+
251
+ # Deserializes the data based on type
252
+ # @param string type Data type
253
+ # @param string value Value to be deserialized
254
+ # @return [Object] Deserialized data
255
+ def _deserialize(type, value)
256
+ case type.to_sym
257
+ when :DateTime
258
+ DateTime.parse(value)
259
+ when :Date
260
+ Date.parse(value)
261
+ when :String
262
+ value.to_s
263
+ when :Integer
264
+ value.to_i
265
+ when :Float
266
+ value.to_f
267
+ when :BOOLEAN
268
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
269
+ true
270
+ else
271
+ false
272
+ end
273
+ when :Object
274
+ # generic object (usually a Hash), return directly
275
+ value
276
+ when /\AArray<(?<inner_type>.+)>\z/
277
+ inner_type = Regexp.last_match[:inner_type]
278
+ value.map { |v| _deserialize(inner_type, v) }
279
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
280
+ k_type = Regexp.last_match[:k_type]
281
+ v_type = Regexp.last_match[:v_type]
282
+ {}.tap do |hash|
283
+ value.each do |k, v|
284
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
285
+ end
286
+ end
287
+ else # model
288
+ registry_type = AsposeSlidesCloud::TypeRegistry.get_type(type.to_s, value)
289
+ if registry_type
290
+ type = registry_type
291
+ end
292
+ temp_model = AsposeSlidesCloud.const_get(type).new
293
+ temp_model.build_from_hash(value)
294
+ end
295
+ end
296
+
297
+ # Returns the string representation of the object
298
+ # @return [String] String presentation of the object
299
+ def to_s
300
+ to_hash.to_s
301
+ end
302
+
303
+ # to_body is an alias to to_hash (backward compatibility)
304
+ # @return [Hash] Returns the object in the form of hash
305
+ def to_body
306
+ to_hash
307
+ end
308
+
309
+ # Returns the object in the form of hash
310
+ # @return [Hash] Returns the object in the form of hash
311
+ def to_hash
312
+ hash = {}
313
+ self.class.attribute_map.each_pair do |attr, param|
314
+ value = self.send(attr)
315
+ next if value.nil?
316
+ hash[param] = _to_hash(value)
317
+ end
318
+ hash
319
+ end
320
+
321
+ # Outputs non-array value in the form of hash
322
+ # For object, use to_hash. Otherwise, just return the value
323
+ # @param [Object] value Any valid value
324
+ # @return [Hash] Returns the value in the form of hash
325
+ def _to_hash(value)
326
+ if value.is_a?(Array)
327
+ value.compact.map { |v| _to_hash(v) }
328
+ elsif value.is_a?(Hash)
329
+ {}.tap do |hash|
330
+ value.each { |k, v| hash[k] = _to_hash(v) }
331
+ end
332
+ elsif value.respond_to? :to_hash
333
+ value.to_hash
334
+ else
335
+ value
336
+ end
337
+ end
338
+ end
339
+ end