aspose_slides_cloud 20.4.0 → 20.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +61 -61
  3. data/TestData/ChartTest.pptx +0 -0
  4. data/TestData/Sections.pptx +0 -0
  5. data/TestData/TemplatingCVDataWithBase64.xml +22 -22
  6. data/lib/aspose_slides_cloud.rb +212 -205
  7. data/lib/aspose_slides_cloud/api/slides_api.rb +10979 -7974
  8. data/lib/aspose_slides_cloud/api/slides_api_requests.rb +4146 -3099
  9. data/lib/aspose_slides_cloud/api_client.rb +432 -429
  10. data/lib/aspose_slides_cloud/models/add_layout_slide.rb +244 -261
  11. data/lib/aspose_slides_cloud/models/add_master_slide.rb +259 -276
  12. data/lib/aspose_slides_cloud/models/add_shape.rb +239 -256
  13. data/lib/aspose_slides_cloud/models/add_slide.rb +269 -286
  14. data/lib/aspose_slides_cloud/models/api_info.rb +217 -205
  15. data/lib/aspose_slides_cloud/models/arrow_head_properties.rb +285 -273
  16. data/lib/aspose_slides_cloud/models/audio_frame.rb +359 -573
  17. data/lib/aspose_slides_cloud/models/axes.rb +237 -225
  18. data/lib/aspose_slides_cloud/models/axis.rb +699 -687
  19. data/lib/aspose_slides_cloud/models/base64_input_file.rb +230 -256
  20. data/lib/aspose_slides_cloud/models/blur_effect.rb +227 -215
  21. data/lib/aspose_slides_cloud/models/box_and_whisker_series.rb +299 -0
  22. data/lib/aspose_slides_cloud/models/bubble_chart_data_point.rb +212 -230
  23. data/lib/aspose_slides_cloud/models/bubble_series.rb +248 -428
  24. data/lib/aspose_slides_cloud/models/chart.rb +365 -553
  25. data/lib/aspose_slides_cloud/models/chart_category.rb +271 -0
  26. data/lib/aspose_slides_cloud/models/chart_title.rb +222 -210
  27. data/lib/aspose_slides_cloud/models/chart_wall.rb +281 -269
  28. data/lib/aspose_slides_cloud/models/color_scheme.rb +317 -327
  29. data/lib/aspose_slides_cloud/models/common_slide_view_properties.rb +217 -0
  30. data/lib/aspose_slides_cloud/models/connector.rb +275 -487
  31. data/lib/aspose_slides_cloud/models/custom_dash_pattern.rb +209 -197
  32. data/lib/aspose_slides_cloud/models/{resource_uri_element.rb → data_point.rb} +197 -195
  33. data/lib/aspose_slides_cloud/models/disc_usage.rb +227 -215
  34. data/lib/aspose_slides_cloud/models/document.rb +257 -267
  35. data/lib/aspose_slides_cloud/models/document_properties.rb +209 -219
  36. data/lib/aspose_slides_cloud/models/document_property.rb +232 -242
  37. data/lib/aspose_slides_cloud/models/document_replace_result.rb +218 -282
  38. data/lib/aspose_slides_cloud/models/effect.rb +424 -412
  39. data/lib/aspose_slides_cloud/models/effect_format.rb +277 -265
  40. data/lib/aspose_slides_cloud/models/entity_exists.rb +212 -0
  41. data/lib/aspose_slides_cloud/models/error.rb +237 -225
  42. data/lib/aspose_slides_cloud/models/error_details.rb +222 -210
  43. data/lib/aspose_slides_cloud/models/export_format.rb +60 -59
  44. data/lib/aspose_slides_cloud/models/export_options.rb +216 -194
  45. data/lib/aspose_slides_cloud/models/file_version.rb +225 -270
  46. data/lib/aspose_slides_cloud/models/file_versions.rb +209 -197
  47. data/lib/aspose_slides_cloud/models/files_list.rb +209 -197
  48. data/lib/aspose_slides_cloud/models/files_upload_result.rb +221 -209
  49. data/lib/aspose_slides_cloud/models/fill_format.rb +240 -228
  50. data/lib/aspose_slides_cloud/models/fill_overlay_effect.rb +246 -234
  51. data/lib/aspose_slides_cloud/models/font_scheme.rb +227 -237
  52. data/lib/aspose_slides_cloud/models/font_set.rb +227 -215
  53. data/lib/aspose_slides_cloud/models/format_scheme.rb +245 -255
  54. data/lib/aspose_slides_cloud/models/geometry_shape.rb +260 -439
  55. data/lib/aspose_slides_cloud/models/glow_effect.rb +222 -210
  56. data/lib/aspose_slides_cloud/models/gradient_fill.rb +342 -359
  57. data/lib/aspose_slides_cloud/models/gradient_fill_stop.rb +222 -210
  58. data/lib/aspose_slides_cloud/models/graphical_object.rb +234 -422
  59. data/lib/aspose_slides_cloud/models/group_shape.rb +234 -422
  60. data/lib/aspose_slides_cloud/models/header_footer.rb +247 -0
  61. data/lib/aspose_slides_cloud/models/html_export_options.rb +421 -420
  62. data/lib/aspose_slides_cloud/models/i_shape_export_options.rb +197 -195
  63. data/lib/aspose_slides_cloud/models/image.rb +237 -247
  64. data/lib/aspose_slides_cloud/models/image_export_format.rb +43 -43
  65. data/lib/aspose_slides_cloud/models/image_export_options.rb +299 -298
  66. data/lib/aspose_slides_cloud/models/images.rb +209 -219
  67. data/lib/aspose_slides_cloud/models/inner_shadow_effect.rb +252 -240
  68. data/lib/aspose_slides_cloud/models/input.rb +227 -215
  69. data/lib/aspose_slides_cloud/models/input_file.rb +250 -238
  70. data/lib/aspose_slides_cloud/models/interactive_sequence.rb +224 -212
  71. data/lib/aspose_slides_cloud/models/layout_slide.rb +278 -288
  72. data/lib/aspose_slides_cloud/models/layout_slides.rb +209 -219
  73. data/lib/aspose_slides_cloud/models/legend.rb +321 -309
  74. data/lib/aspose_slides_cloud/models/line_format.rb +389 -377
  75. data/lib/aspose_slides_cloud/models/master_slide.rb +231 -241
  76. data/lib/aspose_slides_cloud/models/master_slides.rb +209 -219
  77. data/lib/aspose_slides_cloud/models/merge.rb +231 -248
  78. data/lib/aspose_slides_cloud/models/merging_source.rb +219 -207
  79. data/lib/aspose_slides_cloud/models/no_fill.rb +219 -236
  80. data/lib/aspose_slides_cloud/models/normal_view_restored_properties.rb +217 -0
  81. data/lib/aspose_slides_cloud/models/notes_slide.rb +217 -227
  82. data/lib/aspose_slides_cloud/models/notes_slide_export_format.rb +43 -43
  83. data/lib/aspose_slides_cloud/models/notes_slide_header_footer.rb +267 -0
  84. data/lib/aspose_slides_cloud/models/object_exist.rb +227 -215
  85. data/lib/aspose_slides_cloud/models/ole_object_frame.rb +259 -447
  86. data/lib/aspose_slides_cloud/models/one_value_chart_data_point.rb +210 -200
  87. data/lib/aspose_slides_cloud/models/one_value_series.rb +248 -428
  88. data/lib/aspose_slides_cloud/models/ordered_merge_request.rb +209 -197
  89. data/lib/aspose_slides_cloud/models/outer_shadow_effect.rb +252 -240
  90. data/lib/aspose_slides_cloud/models/output_file.rb +240 -228
  91. data/lib/aspose_slides_cloud/models/paragraph.rb +517 -527
  92. data/lib/aspose_slides_cloud/models/paragraphs.rb +209 -219
  93. data/lib/aspose_slides_cloud/models/path_input_file.rb +240 -266
  94. data/lib/aspose_slides_cloud/models/path_output_file.rb +239 -256
  95. data/lib/aspose_slides_cloud/models/pattern_fill.rb +266 -283
  96. data/lib/aspose_slides_cloud/models/pdf_export_options.rb +547 -519
  97. data/lib/aspose_slides_cloud/models/picture_fill.rb +351 -368
  98. data/lib/aspose_slides_cloud/models/picture_frame.rb +245 -459
  99. data/lib/aspose_slides_cloud/models/pipeline.rb +219 -207
  100. data/lib/aspose_slides_cloud/models/placeholder.rb +325 -335
  101. data/lib/aspose_slides_cloud/models/placeholders.rb +209 -219
  102. data/lib/aspose_slides_cloud/models/plot_area.rb +311 -299
  103. data/lib/aspose_slides_cloud/models/portion.rb +589 -599
  104. data/lib/aspose_slides_cloud/models/portions.rb +209 -219
  105. data/lib/aspose_slides_cloud/models/pptx_export_options.rb +247 -246
  106. data/lib/aspose_slides_cloud/models/presentation_to_merge.rb +229 -217
  107. data/lib/aspose_slides_cloud/models/presentations_merge_request.rb +221 -209
  108. data/lib/aspose_slides_cloud/models/preset_shadow_effect.rb +286 -274
  109. data/lib/aspose_slides_cloud/models/reflection_effect.rb +441 -429
  110. data/lib/aspose_slides_cloud/models/remove_shape.rb +229 -246
  111. data/lib/aspose_slides_cloud/models/remove_slide.rb +234 -251
  112. data/lib/aspose_slides_cloud/models/reorder_slide.rb +249 -266
  113. data/lib/aspose_slides_cloud/models/replace_text.rb +269 -286
  114. data/lib/aspose_slides_cloud/models/request_input_file.rb +235 -261
  115. data/lib/aspose_slides_cloud/models/reset_slide.rb +234 -251
  116. data/lib/aspose_slides_cloud/models/resource_base.rb +219 -207
  117. data/lib/aspose_slides_cloud/models/resource_uri.rb +237 -225
  118. data/lib/aspose_slides_cloud/models/response_output_file.rb +219 -236
  119. data/lib/aspose_slides_cloud/models/save.rb +266 -283
  120. data/lib/aspose_slides_cloud/models/save_shape.rb +276 -293
  121. data/lib/aspose_slides_cloud/models/save_slide.rb +301 -318
  122. data/lib/aspose_slides_cloud/models/scale_type.rb +41 -41
  123. data/lib/aspose_slides_cloud/models/scatter_chart_data_point.rb +225 -215
  124. data/lib/aspose_slides_cloud/models/scatter_series.rb +248 -428
  125. data/lib/aspose_slides_cloud/models/section.rb +234 -0
  126. data/lib/aspose_slides_cloud/models/sections.rb +209 -0
  127. data/lib/aspose_slides_cloud/models/series.rb +422 -389
  128. data/lib/aspose_slides_cloud/models/series_marker.rb +281 -269
  129. data/lib/aspose_slides_cloud/models/shape.rb +255 -467
  130. data/lib/aspose_slides_cloud/models/shape_base.rb +375 -406
  131. data/lib/aspose_slides_cloud/models/shape_export_format.rb +44 -44
  132. data/lib/aspose_slides_cloud/models/shape_image_export_options.rb +286 -274
  133. data/lib/aspose_slides_cloud/models/shape_thumbnail_bounds.rb +41 -41
  134. data/lib/aspose_slides_cloud/models/shapes.rb +209 -219
  135. data/lib/aspose_slides_cloud/models/size_type.rb +55 -55
  136. data/lib/aspose_slides_cloud/models/slide.rb +322 -332
  137. data/lib/aspose_slides_cloud/models/slide_animation.rb +221 -231
  138. data/lib/aspose_slides_cloud/models/slide_background.rb +266 -276
  139. data/lib/aspose_slides_cloud/models/slide_comment.rb +239 -227
  140. data/lib/aspose_slides_cloud/models/slide_comments.rb +209 -219
  141. data/lib/aspose_slides_cloud/models/slide_export_format.rb +59 -58
  142. data/lib/aspose_slides_cloud/models/slide_replace_result.rb +223 -347
  143. data/lib/aspose_slides_cloud/models/slides.rb +209 -219
  144. data/lib/aspose_slides_cloud/models/smart_art.rb +342 -530
  145. data/lib/aspose_slides_cloud/models/smart_art_node.rb +293 -281
  146. data/lib/aspose_slides_cloud/models/smart_art_shape.rb +235 -422
  147. data/lib/aspose_slides_cloud/models/soft_edge_effect.rb +212 -200
  148. data/lib/aspose_slides_cloud/models/solid_fill.rb +229 -246
  149. data/lib/aspose_slides_cloud/models/split_document_result.rb +209 -219
  150. data/lib/aspose_slides_cloud/models/storage_exist.rb +212 -200
  151. data/lib/aspose_slides_cloud/models/storage_file.rb +257 -245
  152. data/lib/aspose_slides_cloud/models/svg_export_options.rb +379 -378
  153. data/lib/aspose_slides_cloud/models/swf_export_options.rb +529 -528
  154. data/lib/aspose_slides_cloud/models/table.rb +350 -538
  155. data/lib/aspose_slides_cloud/models/table_cell.rb +403 -391
  156. data/lib/aspose_slides_cloud/models/table_column.rb +212 -200
  157. data/lib/aspose_slides_cloud/models/table_row.rb +239 -227
  158. data/lib/aspose_slides_cloud/models/task.rb +240 -228
  159. data/lib/aspose_slides_cloud/models/text_item.rb +217 -205
  160. data/lib/aspose_slides_cloud/models/text_items.rb +209 -219
  161. data/lib/aspose_slides_cloud/models/theme.rb +237 -247
  162. data/lib/aspose_slides_cloud/models/tiff_export_options.rb +423 -422
  163. data/lib/aspose_slides_cloud/models/update_background.rb +241 -258
  164. data/lib/aspose_slides_cloud/models/update_shape.rb +239 -256
  165. data/lib/aspose_slides_cloud/models/video_frame.rb +329 -543
  166. data/lib/aspose_slides_cloud/models/view_properties.rb +357 -0
  167. data/lib/aspose_slides_cloud/models/waterfall_chart_data_point.rb +206 -0
  168. data/lib/aspose_slides_cloud/models/waterfall_series.rb +247 -0
  169. data/lib/aspose_slides_cloud/models/xps_export_options.rb +243 -242
  170. data/lib/aspose_slides_cloud/type_registry.rb +320 -0
  171. data/lib/aspose_slides_cloud/version.rb +25 -25
  172. data/spec/api/slides_api_spec.rb +35926 -24406
  173. data/spec/extra/extra_spec.rb +235 -101
  174. data/spec/spec_utils.rb +183 -176
  175. data/testConfig.json +7 -7
  176. data/testRules.json +472 -340
  177. metadata +18 -3
@@ -0,0 +1,247 @@
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
+ # Represents header/footer info of slide
27
+ class HeaderFooter < ResourceBase
28
+ # True if date is displayed in the footer
29
+ attr_accessor :is_date_time_visible
30
+
31
+ # Text to be displayed as date in the footer
32
+ attr_accessor :date_time_text
33
+
34
+ # True if footer is displayed
35
+ attr_accessor :is_footer_visible
36
+
37
+ # Text to be displayed in the footer
38
+ attr_accessor :footer_text
39
+
40
+ # True if slide number is displayed in the footer
41
+ attr_accessor :is_slide_number_visible
42
+
43
+ # Attribute mapping from ruby-style variable name to JSON key.
44
+ def self.attribute_map
45
+ super.merge({
46
+ :'is_date_time_visible' => :'IsDateTimeVisible',
47
+ :'date_time_text' => :'DateTimeText',
48
+ :'is_footer_visible' => :'IsFooterVisible',
49
+ :'footer_text' => :'FooterText',
50
+ :'is_slide_number_visible' => :'IsSlideNumberVisible',
51
+ })
52
+ end
53
+
54
+ # Attribute type mapping.
55
+ def self.swagger_types
56
+ super.merge({
57
+ :'is_date_time_visible' => :'BOOLEAN',
58
+ :'date_time_text' => :'String',
59
+ :'is_footer_visible' => :'BOOLEAN',
60
+ :'footer_text' => :'String',
61
+ :'is_slide_number_visible' => :'BOOLEAN',
62
+ })
63
+ end
64
+
65
+ # Initializes the object
66
+ # @param [Hash] attributes Model attributes in the form of hash
67
+ def initialize(attributes = {})
68
+ super
69
+
70
+ if attributes.has_key?(:'IsDateTimeVisible')
71
+ self.is_date_time_visible = attributes[:'IsDateTimeVisible']
72
+ end
73
+
74
+ if attributes.has_key?(:'DateTimeText')
75
+ self.date_time_text = attributes[:'DateTimeText']
76
+ end
77
+
78
+ if attributes.has_key?(:'IsFooterVisible')
79
+ self.is_footer_visible = attributes[:'IsFooterVisible']
80
+ end
81
+
82
+ if attributes.has_key?(:'FooterText')
83
+ self.footer_text = attributes[:'FooterText']
84
+ end
85
+
86
+ if attributes.has_key?(:'IsSlideNumberVisible')
87
+ self.is_slide_number_visible = attributes[:'IsSlideNumberVisible']
88
+ end
89
+ end
90
+
91
+ # Show invalid properties with the reasons. Usually used together with valid?
92
+ # @return Array for valid properties with the reasons
93
+ def list_invalid_properties
94
+ invalid_properties = super
95
+ invalid_properties
96
+ end
97
+
98
+ # Check to see if the all the properties in the model are valid
99
+ # @return true if the model is valid
100
+ def valid?
101
+ return false if !super
102
+ true
103
+ end
104
+
105
+ # Checks equality by comparing each attribute.
106
+ # @param [Object] Object to be compared
107
+ def ==(o)
108
+ return true if self.equal?(o)
109
+ self.class == o.class &&
110
+ self_uri == o.self_uri &&
111
+ alternate_links == o.alternate_links &&
112
+ is_date_time_visible == o.is_date_time_visible &&
113
+ date_time_text == o.date_time_text &&
114
+ is_footer_visible == o.is_footer_visible &&
115
+ footer_text == o.footer_text &&
116
+ is_slide_number_visible == o.is_slide_number_visible
117
+ end
118
+
119
+ # @see the `==` method
120
+ # @param [Object] Object to be compared
121
+ def eql?(o)
122
+ self == o
123
+ end
124
+
125
+ # Calculates hash code according to all attributes.
126
+ # @return [Fixnum] Hash code
127
+ def hash
128
+ [self_uri, alternate_links, is_date_time_visible, date_time_text, is_footer_visible, footer_text, is_slide_number_visible].hash
129
+ end
130
+
131
+ # Builds the object from hash
132
+ # @param [Hash] attributes Model attributes in the form of hash
133
+ # @return [Object] Returns the model itself
134
+ def build_from_hash(attributes)
135
+ return nil unless attributes.is_a?(Hash)
136
+ self.class.swagger_types.each_pair do |key, type|
137
+ mapKey = self.class.attribute_map[key]
138
+ if !mapKey.nil?
139
+ val = attributes[mapKey]
140
+ if val.nil?
141
+ mapKeyString = mapKey.to_s
142
+ mapKeyString[0] = mapKeyString[0].downcase
143
+ mapKey = mapKeyString.to_sym
144
+ val = attributes[mapKey]
145
+ end
146
+ if !val.nil?
147
+ if type =~ /\AArray<(.*)>/i
148
+ # check to ensure the input is an array given that the the attribute
149
+ # is documented as an array but the input is not
150
+ if val.is_a?(Array)
151
+ self.send("#{key}=", val.map { |v| _deserialize($1, v) })
152
+ end
153
+ else
154
+ self.send("#{key}=", _deserialize(type, val))
155
+ end
156
+ end
157
+ end
158
+ end
159
+
160
+ self
161
+ end
162
+
163
+ # Deserializes the data based on type
164
+ # @param string type Data type
165
+ # @param string value Value to be deserialized
166
+ # @return [Object] Deserialized data
167
+ def _deserialize(type, value)
168
+ case type.to_sym
169
+ when :DateTime
170
+ DateTime.parse(value)
171
+ when :Date
172
+ Date.parse(value)
173
+ when :String
174
+ value.to_s
175
+ when :Integer
176
+ value.to_i
177
+ when :Float
178
+ value.to_f
179
+ when :BOOLEAN
180
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
181
+ true
182
+ else
183
+ false
184
+ end
185
+ when :Object
186
+ # generic object (usually a Hash), return directly
187
+ value
188
+ when /\AArray<(?<inner_type>.+)>\z/
189
+ inner_type = Regexp.last_match[:inner_type]
190
+ value.map { |v| _deserialize(inner_type, v) }
191
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
192
+ k_type = Regexp.last_match[:k_type]
193
+ v_type = Regexp.last_match[:v_type]
194
+ {}.tap do |hash|
195
+ value.each do |k, v|
196
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
197
+ end
198
+ end
199
+ else # model
200
+ temp_model = AsposeSlidesCloud.const_get(type).new
201
+ temp_model.build_from_hash(value)
202
+ end
203
+ end
204
+
205
+ # Returns the string representation of the object
206
+ # @return [String] String presentation of the object
207
+ def to_s
208
+ to_hash.to_s
209
+ end
210
+
211
+ # to_body is an alias to to_hash (backward compatibility)
212
+ # @return [Hash] Returns the object in the form of hash
213
+ def to_body
214
+ to_hash
215
+ end
216
+
217
+ # Returns the object in the form of hash
218
+ # @return [Hash] Returns the object in the form of hash
219
+ def to_hash
220
+ hash = {}
221
+ self.class.attribute_map.each_pair do |attr, param|
222
+ value = self.send(attr)
223
+ next if value.nil?
224
+ hash[param] = _to_hash(value)
225
+ end
226
+ hash
227
+ end
228
+
229
+ # Outputs non-array value in the form of hash
230
+ # For object, use to_hash. Otherwise, just return the value
231
+ # @param [Object] value Any valid value
232
+ # @return [Hash] Returns the value in the form of hash
233
+ def _to_hash(value)
234
+ if value.is_a?(Array)
235
+ value.compact.map { |v| _to_hash(v) }
236
+ elsif value.is_a?(Hash)
237
+ {}.tap do |hash|
238
+ value.each { |k, v| hash[k] = _to_hash(v) }
239
+ end
240
+ elsif value.respond_to? :to_hash
241
+ value.to_hash
242
+ else
243
+ value
244
+ end
245
+ end
246
+ end
247
+ end
@@ -1,420 +1,421 @@
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 Html format.
27
- class HtmlExportOptions
28
- # Export format.
29
- attr_accessor :format
30
-
31
- # Get or sets flag for save presentation as zip file
32
- attr_accessor :save_as_zip
33
-
34
- # Get or set name of subdirectory in zip-file for store external files
35
- attr_accessor :sub_directory_name
36
-
37
- # Specifies whether the generated document should include hidden slides or not. Default is false.
38
- attr_accessor :show_hidden_slides
39
-
40
- # True to make layout responsive by excluding width and height attributes from svg container.
41
- attr_accessor :svg_responsive_layout
42
-
43
- # Returns or sets a value determining the quality of the JPEG images inside PDF document.
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
- # Gets or sets the position of the notes on the page.
53
- attr_accessor :notes_position
54
-
55
- # Gets or sets the position of the comments on the page.
56
- attr_accessor :comments_position
57
-
58
- # Gets or sets the width of the comment output area in pixels (Applies only if comments are displayed on the right).
59
- attr_accessor :comments_area_width
60
-
61
- # Gets or sets the color of comments area (Applies only if comments are displayed on the right).
62
- attr_accessor :comments_area_color
63
-
64
- # True if comments that have no author are displayed. (Applies only if comments are displayed).
65
- attr_accessor :show_comments_by_no_author
66
-
67
- class EnumAttributeValidator
68
- attr_reader :datatype
69
- attr_reader :allowable_values
70
-
71
- def initialize(datatype, allowable_values)
72
- @allowable_values = allowable_values.map do |value|
73
- case datatype.to_s
74
- when /Integer/i
75
- value.to_i
76
- when /Float/i
77
- value.to_f
78
- else
79
- value
80
- end
81
- end
82
- end
83
-
84
- def valid?(value)
85
- !value || allowable_values.any?{ |s| s.casecmp(value) == 0 }
86
- end
87
- end
88
-
89
- # Attribute mapping from ruby-style variable name to JSON key.
90
- def self.attribute_map
91
- {
92
- :'format' => :'Format',
93
- :'save_as_zip' => :'SaveAsZip',
94
- :'sub_directory_name' => :'SubDirectoryName',
95
- :'show_hidden_slides' => :'ShowHiddenSlides',
96
- :'svg_responsive_layout' => :'SvgResponsiveLayout',
97
- :'jpeg_quality' => :'JpegQuality',
98
- :'pictures_compression' => :'PicturesCompression',
99
- :'delete_pictures_cropped_areas' => :'DeletePicturesCroppedAreas',
100
- :'notes_position' => :'NotesPosition',
101
- :'comments_position' => :'CommentsPosition',
102
- :'comments_area_width' => :'CommentsAreaWidth',
103
- :'comments_area_color' => :'CommentsAreaColor',
104
- :'show_comments_by_no_author' => :'ShowCommentsByNoAuthor'
105
- }
106
- end
107
-
108
- # Attribute type mapping.
109
- def self.swagger_types
110
- {
111
- :'format' => :'String',
112
- :'save_as_zip' => :'BOOLEAN',
113
- :'sub_directory_name' => :'String',
114
- :'show_hidden_slides' => :'BOOLEAN',
115
- :'svg_responsive_layout' => :'BOOLEAN',
116
- :'jpeg_quality' => :'Integer',
117
- :'pictures_compression' => :'String',
118
- :'delete_pictures_cropped_areas' => :'BOOLEAN',
119
- :'notes_position' => :'String',
120
- :'comments_position' => :'String',
121
- :'comments_area_width' => :'Integer',
122
- :'comments_area_color' => :'String',
123
- :'show_comments_by_no_author' => :'BOOLEAN'
124
- }
125
- end
126
-
127
- # Initializes the object
128
- # @param [Hash] attributes Model attributes in the form of hash
129
- def initialize(attributes = {})
130
- return unless attributes.is_a?(Hash)
131
-
132
- # convert string to symbol for hash key
133
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
134
-
135
- if attributes.has_key?(:'Format')
136
- self.format = attributes[:'Format']
137
- else
138
- self.format = "html"
139
- end
140
-
141
- if attributes.has_key?(:'SaveAsZip')
142
- self.save_as_zip = attributes[:'SaveAsZip']
143
- end
144
-
145
- if attributes.has_key?(:'SubDirectoryName')
146
- self.sub_directory_name = attributes[:'SubDirectoryName']
147
- end
148
-
149
- if attributes.has_key?(:'ShowHiddenSlides')
150
- self.show_hidden_slides = attributes[:'ShowHiddenSlides']
151
- end
152
-
153
- if attributes.has_key?(:'SvgResponsiveLayout')
154
- self.svg_responsive_layout = attributes[:'SvgResponsiveLayout']
155
- end
156
-
157
- if attributes.has_key?(:'JpegQuality')
158
- self.jpeg_quality = attributes[:'JpegQuality']
159
- end
160
-
161
- if attributes.has_key?(:'PicturesCompression')
162
- self.pictures_compression = attributes[:'PicturesCompression']
163
- end
164
-
165
- if attributes.has_key?(:'DeletePicturesCroppedAreas')
166
- self.delete_pictures_cropped_areas = attributes[:'DeletePicturesCroppedAreas']
167
- end
168
-
169
- if attributes.has_key?(:'NotesPosition')
170
- self.notes_position = attributes[:'NotesPosition']
171
- end
172
-
173
- if attributes.has_key?(:'CommentsPosition')
174
- self.comments_position = attributes[:'CommentsPosition']
175
- end
176
-
177
- if attributes.has_key?(:'CommentsAreaWidth')
178
- self.comments_area_width = attributes[:'CommentsAreaWidth']
179
- end
180
-
181
- if attributes.has_key?(:'CommentsAreaColor')
182
- self.comments_area_color = attributes[:'CommentsAreaColor']
183
- end
184
-
185
- if attributes.has_key?(:'ShowCommentsByNoAuthor')
186
- self.show_comments_by_no_author = attributes[:'ShowCommentsByNoAuthor']
187
- end
188
- end
189
-
190
- # Show invalid properties with the reasons. Usually used together with valid?
191
- # @return Array for valid properties with the reasons
192
- def list_invalid_properties
193
- invalid_properties = Array.new
194
- if @save_as_zip.nil?
195
- invalid_properties.push('invalid value for "save_as_zip", save_as_zip cannot be nil.')
196
- end
197
-
198
- if @show_hidden_slides.nil?
199
- invalid_properties.push('invalid value for "show_hidden_slides", show_hidden_slides cannot be nil.')
200
- end
201
-
202
- if @svg_responsive_layout.nil?
203
- invalid_properties.push('invalid value for "svg_responsive_layout", svg_responsive_layout cannot be nil.')
204
- end
205
-
206
- if @jpeg_quality.nil?
207
- invalid_properties.push('invalid value for "jpeg_quality", jpeg_quality cannot be nil.')
208
- end
209
-
210
- if @delete_pictures_cropped_areas.nil?
211
- invalid_properties.push('invalid value for "delete_pictures_cropped_areas", delete_pictures_cropped_areas cannot be nil.')
212
- end
213
-
214
- if @notes_position.nil?
215
- invalid_properties.push('invalid value for "notes_position", notes_position cannot be nil.')
216
- end
217
-
218
- if @comments_position.nil?
219
- invalid_properties.push('invalid value for "comments_position", comments_position cannot be nil.')
220
- end
221
-
222
- if @comments_area_width.nil?
223
- invalid_properties.push('invalid value for "comments_area_width", comments_area_width cannot be nil.')
224
- end
225
-
226
- if @show_comments_by_no_author.nil?
227
- invalid_properties.push('invalid value for "show_comments_by_no_author", show_comments_by_no_author cannot be nil.')
228
- end
229
-
230
- invalid_properties
231
- end
232
-
233
- # Check to see if the all the properties in the model are valid
234
- # @return true if the model is valid
235
- def valid?
236
- return false if @save_as_zip.nil?
237
- return false if @show_hidden_slides.nil?
238
- return false if @svg_responsive_layout.nil?
239
- return false if @jpeg_quality.nil?
240
- pictures_compression_validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
241
- return false unless pictures_compression_validator.valid?(@pictures_compression)
242
- return false if @delete_pictures_cropped_areas.nil?
243
- return false if @notes_position.nil?
244
- notes_position_validator = EnumAttributeValidator.new('String', ['None', 'BottomFull', 'BottomTruncated'])
245
- return false unless notes_position_validator.valid?(@notes_position)
246
- return false if @comments_position.nil?
247
- comments_position_validator = EnumAttributeValidator.new('String', ['None', 'Bottom', 'Right'])
248
- return false unless comments_position_validator.valid?(@comments_position)
249
- return false if @comments_area_width.nil?
250
- return false if @show_comments_by_no_author.nil?
251
- true
252
- end
253
-
254
- # Custom attribute writer method checking allowed values (enum).
255
- # @param [Object] pictures_compression Object to be assigned
256
- def pictures_compression=(pictures_compression)
257
- validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
258
- unless validator.valid?(pictures_compression)
259
- fail ArgumentError, 'invalid value for "pictures_compression", must be one of #{validator.allowable_values}.'
260
- end
261
- @pictures_compression = pictures_compression
262
- end
263
-
264
- # Custom attribute writer method checking allowed values (enum).
265
- # @param [Object] notes_position Object to be assigned
266
- def notes_position=(notes_position)
267
- validator = EnumAttributeValidator.new('String', ['None', 'BottomFull', 'BottomTruncated'])
268
- unless validator.valid?(notes_position)
269
- fail ArgumentError, 'invalid value for "notes_position", must be one of #{validator.allowable_values}.'
270
- end
271
- @notes_position = notes_position
272
- end
273
-
274
- # Custom attribute writer method checking allowed values (enum).
275
- # @param [Object] comments_position Object to be assigned
276
- def comments_position=(comments_position)
277
- validator = EnumAttributeValidator.new('String', ['None', 'Bottom', 'Right'])
278
- unless validator.valid?(comments_position)
279
- fail ArgumentError, 'invalid value for "comments_position", must be one of #{validator.allowable_values}.'
280
- end
281
- @comments_position = comments_position
282
- end
283
-
284
- # Checks equality by comparing each attribute.
285
- # @param [Object] Object to be compared
286
- def ==(o)
287
- return true if self.equal?(o)
288
- self.class == o.class &&
289
- format == o.format &&
290
- save_as_zip == o.save_as_zip &&
291
- sub_directory_name == o.sub_directory_name &&
292
- show_hidden_slides == o.show_hidden_slides &&
293
- svg_responsive_layout == o.svg_responsive_layout &&
294
- jpeg_quality == o.jpeg_quality &&
295
- pictures_compression == o.pictures_compression &&
296
- delete_pictures_cropped_areas == o.delete_pictures_cropped_areas &&
297
- notes_position == o.notes_position &&
298
- comments_position == o.comments_position &&
299
- comments_area_width == o.comments_area_width &&
300
- comments_area_color == o.comments_area_color &&
301
- show_comments_by_no_author == o.show_comments_by_no_author
302
- end
303
-
304
- # @see the `==` method
305
- # @param [Object] Object to be compared
306
- def eql?(o)
307
- self == o
308
- end
309
-
310
- # Calculates hash code according to all attributes.
311
- # @return [Fixnum] Hash code
312
- def hash
313
- [format, save_as_zip, sub_directory_name, show_hidden_slides, svg_responsive_layout, jpeg_quality, pictures_compression, delete_pictures_cropped_areas, notes_position, comments_position, comments_area_width, comments_area_color, show_comments_by_no_author].hash
314
- end
315
-
316
- # Builds the object from hash
317
- # @param [Hash] attributes Model attributes in the form of hash
318
- # @return [Object] Returns the model itself
319
- def build_from_hash(attributes)
320
- return nil unless attributes.is_a?(Hash)
321
- self.class.swagger_types.each_pair do |key, type|
322
- if type =~ /\AArray<(.*)>/i
323
- # check to ensure the input is an array given that the the attribute
324
- # is documented as an array but the input is not
325
- if attributes[self.class.attribute_map[key]].is_a?(Array)
326
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
327
- end
328
- elsif !attributes[self.class.attribute_map[key]].nil?
329
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
330
- end # or else data not found in attributes(hash), not an issue as the data can be optional
331
- end
332
-
333
- self
334
- end
335
-
336
- # Deserializes the data based on type
337
- # @param string type Data type
338
- # @param string value Value to be deserialized
339
- # @return [Object] Deserialized data
340
- def _deserialize(type, value)
341
- case type.to_sym
342
- when :DateTime
343
- DateTime.parse(value)
344
- when :Date
345
- Date.parse(value)
346
- when :String
347
- value.to_s
348
- when :Integer
349
- value.to_i
350
- when :Float
351
- value.to_f
352
- when :BOOLEAN
353
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
354
- true
355
- else
356
- false
357
- end
358
- when :Object
359
- # generic object (usually a Hash), return directly
360
- value
361
- when /\AArray<(?<inner_type>.+)>\z/
362
- inner_type = Regexp.last_match[:inner_type]
363
- value.map { |v| _deserialize(inner_type, v) }
364
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
365
- k_type = Regexp.last_match[:k_type]
366
- v_type = Regexp.last_match[:v_type]
367
- {}.tap do |hash|
368
- value.each do |k, v|
369
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
370
- end
371
- end
372
- else # model
373
- temp_model = AsposeSlidesCloud.const_get(type).new
374
- temp_model.build_from_hash(value)
375
- end
376
- end
377
-
378
- # Returns the string representation of the object
379
- # @return [String] String presentation of the object
380
- def to_s
381
- to_hash.to_s
382
- end
383
-
384
- # to_body is an alias to to_hash (backward compatibility)
385
- # @return [Hash] Returns the object in the form of hash
386
- def to_body
387
- to_hash
388
- end
389
-
390
- # Returns the object in the form of hash
391
- # @return [Hash] Returns the object in the form of hash
392
- def to_hash
393
- hash = {}
394
- self.class.attribute_map.each_pair do |attr, param|
395
- value = self.send(attr)
396
- next if value.nil?
397
- hash[param] = _to_hash(value)
398
- end
399
- hash
400
- end
401
-
402
- # Outputs non-array value in the form of hash
403
- # For object, use to_hash. Otherwise, just return the value
404
- # @param [Object] value Any valid value
405
- # @return [Hash] Returns the value in the form of hash
406
- def _to_hash(value)
407
- if value.is_a?(Array)
408
- value.compact.map { |v| _to_hash(v) }
409
- elsif value.is_a?(Hash)
410
- {}.tap do |hash|
411
- value.each { |k, v| hash[k] = _to_hash(v) }
412
- end
413
- elsif value.respond_to? :to_hash
414
- value.to_hash
415
- else
416
- value
417
- end
418
- end
419
- end
420
- 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 Html format.
27
+ class HtmlExportOptions < ExportOptions
28
+ # Get or sets flag for save presentation as zip file
29
+ attr_accessor :save_as_zip
30
+
31
+ # Get or set name of subdirectory in zip-file for store external files
32
+ attr_accessor :sub_directory_name
33
+
34
+ # Specifies whether the generated document should include hidden slides or not. Default is false.
35
+ attr_accessor :show_hidden_slides
36
+
37
+ # True to make layout responsive by excluding width and height attributes from svg container.
38
+ attr_accessor :svg_responsive_layout
39
+
40
+ # Returns or sets a value determining the quality of the JPEG images inside PDF document.
41
+ attr_accessor :jpeg_quality
42
+
43
+ # Represents the pictures compression level
44
+ attr_accessor :pictures_compression
45
+
46
+ # 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)
47
+ attr_accessor :delete_pictures_cropped_areas
48
+
49
+ # Gets or sets the position of the notes on the page.
50
+ attr_accessor :notes_position
51
+
52
+ # Gets or sets the position of the comments on the page.
53
+ attr_accessor :comments_position
54
+
55
+ # Gets or sets the width of the comment output area in pixels (Applies only if comments are displayed on the right).
56
+ attr_accessor :comments_area_width
57
+
58
+ # Gets or sets the color of comments area (Applies only if comments are displayed on the right).
59
+ attr_accessor :comments_area_color
60
+
61
+ # True if comments that have no author are displayed. (Applies only if comments are displayed).
62
+ attr_accessor :show_comments_by_no_author
63
+
64
+ class EnumAttributeValidator
65
+ attr_reader :datatype
66
+ attr_reader :allowable_values
67
+
68
+ def initialize(datatype, allowable_values)
69
+ @allowable_values = allowable_values.map do |value|
70
+ case datatype.to_s
71
+ when /Integer/i
72
+ value.to_i
73
+ when /Float/i
74
+ value.to_f
75
+ else
76
+ value
77
+ end
78
+ end
79
+ end
80
+
81
+ def valid?(value)
82
+ !value || allowable_values.any?{ |s| s.casecmp(value) == 0 }
83
+ end
84
+ end
85
+
86
+ # Attribute mapping from ruby-style variable name to JSON key.
87
+ def self.attribute_map
88
+ super.merge({
89
+ :'save_as_zip' => :'SaveAsZip',
90
+ :'sub_directory_name' => :'SubDirectoryName',
91
+ :'show_hidden_slides' => :'ShowHiddenSlides',
92
+ :'svg_responsive_layout' => :'SvgResponsiveLayout',
93
+ :'jpeg_quality' => :'JpegQuality',
94
+ :'pictures_compression' => :'PicturesCompression',
95
+ :'delete_pictures_cropped_areas' => :'DeletePicturesCroppedAreas',
96
+ :'notes_position' => :'NotesPosition',
97
+ :'comments_position' => :'CommentsPosition',
98
+ :'comments_area_width' => :'CommentsAreaWidth',
99
+ :'comments_area_color' => :'CommentsAreaColor',
100
+ :'show_comments_by_no_author' => :'ShowCommentsByNoAuthor',
101
+ })
102
+ end
103
+
104
+ # Attribute type mapping.
105
+ def self.swagger_types
106
+ super.merge({
107
+ :'save_as_zip' => :'BOOLEAN',
108
+ :'sub_directory_name' => :'String',
109
+ :'show_hidden_slides' => :'BOOLEAN',
110
+ :'svg_responsive_layout' => :'BOOLEAN',
111
+ :'jpeg_quality' => :'Integer',
112
+ :'pictures_compression' => :'String',
113
+ :'delete_pictures_cropped_areas' => :'BOOLEAN',
114
+ :'notes_position' => :'String',
115
+ :'comments_position' => :'String',
116
+ :'comments_area_width' => :'Integer',
117
+ :'comments_area_color' => :'String',
118
+ :'show_comments_by_no_author' => :'BOOLEAN',
119
+ })
120
+ end
121
+
122
+ # Initializes the object
123
+ # @param [Hash] attributes Model attributes in the form of hash
124
+ def initialize(attributes = {})
125
+ super
126
+
127
+ if attributes.has_key?(:'SaveAsZip')
128
+ self.save_as_zip = attributes[:'SaveAsZip']
129
+ end
130
+
131
+ if attributes.has_key?(:'SubDirectoryName')
132
+ self.sub_directory_name = attributes[:'SubDirectoryName']
133
+ end
134
+
135
+ if attributes.has_key?(:'ShowHiddenSlides')
136
+ self.show_hidden_slides = attributes[:'ShowHiddenSlides']
137
+ end
138
+
139
+ if attributes.has_key?(:'SvgResponsiveLayout')
140
+ self.svg_responsive_layout = attributes[:'SvgResponsiveLayout']
141
+ end
142
+
143
+ if attributes.has_key?(:'JpegQuality')
144
+ self.jpeg_quality = attributes[:'JpegQuality']
145
+ end
146
+
147
+ if attributes.has_key?(:'PicturesCompression')
148
+ self.pictures_compression = attributes[:'PicturesCompression']
149
+ end
150
+
151
+ if attributes.has_key?(:'DeletePicturesCroppedAreas')
152
+ self.delete_pictures_cropped_areas = attributes[:'DeletePicturesCroppedAreas']
153
+ end
154
+
155
+ if attributes.has_key?(:'NotesPosition')
156
+ self.notes_position = attributes[:'NotesPosition']
157
+ end
158
+
159
+ if attributes.has_key?(:'CommentsPosition')
160
+ self.comments_position = attributes[:'CommentsPosition']
161
+ end
162
+
163
+ if attributes.has_key?(:'CommentsAreaWidth')
164
+ self.comments_area_width = attributes[:'CommentsAreaWidth']
165
+ end
166
+
167
+ if attributes.has_key?(:'CommentsAreaColor')
168
+ self.comments_area_color = attributes[:'CommentsAreaColor']
169
+ end
170
+
171
+ if attributes.has_key?(:'ShowCommentsByNoAuthor')
172
+ self.show_comments_by_no_author = attributes[:'ShowCommentsByNoAuthor']
173
+ end
174
+ self.format = "html"
175
+ end
176
+
177
+ # Show invalid properties with the reasons. Usually used together with valid?
178
+ # @return Array for valid properties with the reasons
179
+ def list_invalid_properties
180
+ invalid_properties = super
181
+ if @save_as_zip.nil?
182
+ invalid_properties.push('invalid value for "save_as_zip", save_as_zip cannot be nil.')
183
+ end
184
+
185
+ if @show_hidden_slides.nil?
186
+ invalid_properties.push('invalid value for "show_hidden_slides", show_hidden_slides cannot be nil.')
187
+ end
188
+
189
+ if @svg_responsive_layout.nil?
190
+ invalid_properties.push('invalid value for "svg_responsive_layout", svg_responsive_layout cannot be nil.')
191
+ end
192
+
193
+ if @jpeg_quality.nil?
194
+ invalid_properties.push('invalid value for "jpeg_quality", jpeg_quality cannot be nil.')
195
+ end
196
+
197
+ if @delete_pictures_cropped_areas.nil?
198
+ invalid_properties.push('invalid value for "delete_pictures_cropped_areas", delete_pictures_cropped_areas cannot be nil.')
199
+ end
200
+
201
+ if @notes_position.nil?
202
+ invalid_properties.push('invalid value for "notes_position", notes_position cannot be nil.')
203
+ end
204
+
205
+ if @comments_position.nil?
206
+ invalid_properties.push('invalid value for "comments_position", comments_position cannot be nil.')
207
+ end
208
+
209
+ if @comments_area_width.nil?
210
+ invalid_properties.push('invalid value for "comments_area_width", comments_area_width cannot be nil.')
211
+ end
212
+
213
+ if @show_comments_by_no_author.nil?
214
+ invalid_properties.push('invalid value for "show_comments_by_no_author", show_comments_by_no_author cannot be nil.')
215
+ end
216
+
217
+ invalid_properties
218
+ end
219
+
220
+ # Check to see if the all the properties in the model are valid
221
+ # @return true if the model is valid
222
+ def valid?
223
+ return false if !super
224
+ return false if @save_as_zip.nil?
225
+ return false if @show_hidden_slides.nil?
226
+ return false if @svg_responsive_layout.nil?
227
+ return false if @jpeg_quality.nil?
228
+ pictures_compression_validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
229
+ return false unless pictures_compression_validator.valid?(@pictures_compression)
230
+ return false if @delete_pictures_cropped_areas.nil?
231
+ return false if @notes_position.nil?
232
+ notes_position_validator = EnumAttributeValidator.new('String', ['None', 'BottomFull', 'BottomTruncated'])
233
+ return false unless notes_position_validator.valid?(@notes_position)
234
+ return false if @comments_position.nil?
235
+ comments_position_validator = EnumAttributeValidator.new('String', ['None', 'Bottom', 'Right'])
236
+ return false unless comments_position_validator.valid?(@comments_position)
237
+ return false if @comments_area_width.nil?
238
+ return false if @show_comments_by_no_author.nil?
239
+ true
240
+ end
241
+
242
+ # Custom attribute writer method checking allowed values (enum).
243
+ # @param [Object] pictures_compression Object to be assigned
244
+ def pictures_compression=(pictures_compression)
245
+ validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
246
+ unless validator.valid?(pictures_compression)
247
+ fail ArgumentError, 'invalid value for "pictures_compression", must be one of #{validator.allowable_values}.'
248
+ end
249
+ @pictures_compression = pictures_compression
250
+ end
251
+
252
+ # Custom attribute writer method checking allowed values (enum).
253
+ # @param [Object] notes_position Object to be assigned
254
+ def notes_position=(notes_position)
255
+ validator = EnumAttributeValidator.new('String', ['None', 'BottomFull', 'BottomTruncated'])
256
+ unless validator.valid?(notes_position)
257
+ fail ArgumentError, 'invalid value for "notes_position", must be one of #{validator.allowable_values}.'
258
+ end
259
+ @notes_position = notes_position
260
+ end
261
+
262
+ # Custom attribute writer method checking allowed values (enum).
263
+ # @param [Object] comments_position Object to be assigned
264
+ def comments_position=(comments_position)
265
+ validator = EnumAttributeValidator.new('String', ['None', 'Bottom', 'Right'])
266
+ unless validator.valid?(comments_position)
267
+ fail ArgumentError, 'invalid value for "comments_position", must be one of #{validator.allowable_values}.'
268
+ end
269
+ @comments_position = comments_position
270
+ end
271
+
272
+ # Checks equality by comparing each attribute.
273
+ # @param [Object] Object to be compared
274
+ def ==(o)
275
+ return true if self.equal?(o)
276
+ self.class == o.class &&
277
+ default_regular_font == o.default_regular_font &&
278
+ format == o.format &&
279
+ save_as_zip == o.save_as_zip &&
280
+ sub_directory_name == o.sub_directory_name &&
281
+ show_hidden_slides == o.show_hidden_slides &&
282
+ svg_responsive_layout == o.svg_responsive_layout &&
283
+ jpeg_quality == o.jpeg_quality &&
284
+ pictures_compression == o.pictures_compression &&
285
+ delete_pictures_cropped_areas == o.delete_pictures_cropped_areas &&
286
+ notes_position == o.notes_position &&
287
+ comments_position == o.comments_position &&
288
+ comments_area_width == o.comments_area_width &&
289
+ comments_area_color == o.comments_area_color &&
290
+ show_comments_by_no_author == o.show_comments_by_no_author
291
+ end
292
+
293
+ # @see the `==` method
294
+ # @param [Object] Object to be compared
295
+ def eql?(o)
296
+ self == o
297
+ end
298
+
299
+ # Calculates hash code according to all attributes.
300
+ # @return [Fixnum] Hash code
301
+ def hash
302
+ [default_regular_font, format, save_as_zip, sub_directory_name, show_hidden_slides, svg_responsive_layout, jpeg_quality, pictures_compression, delete_pictures_cropped_areas, notes_position, comments_position, comments_area_width, comments_area_color, show_comments_by_no_author].hash
303
+ end
304
+
305
+ # Builds the object from hash
306
+ # @param [Hash] attributes Model attributes in the form of hash
307
+ # @return [Object] Returns the model itself
308
+ def build_from_hash(attributes)
309
+ return nil unless attributes.is_a?(Hash)
310
+ self.class.swagger_types.each_pair do |key, type|
311
+ mapKey = self.class.attribute_map[key]
312
+ if !mapKey.nil?
313
+ val = attributes[mapKey]
314
+ if val.nil?
315
+ mapKeyString = mapKey.to_s
316
+ mapKeyString[0] = mapKeyString[0].downcase
317
+ mapKey = mapKeyString.to_sym
318
+ val = attributes[mapKey]
319
+ end
320
+ if !val.nil?
321
+ if type =~ /\AArray<(.*)>/i
322
+ # check to ensure the input is an array given that the the attribute
323
+ # is documented as an array but the input is not
324
+ if val.is_a?(Array)
325
+ self.send("#{key}=", val.map { |v| _deserialize($1, v) })
326
+ end
327
+ else
328
+ self.send("#{key}=", _deserialize(type, val))
329
+ end
330
+ end
331
+ end
332
+ end
333
+
334
+ self
335
+ end
336
+
337
+ # Deserializes the data based on type
338
+ # @param string type Data type
339
+ # @param string value Value to be deserialized
340
+ # @return [Object] Deserialized data
341
+ def _deserialize(type, value)
342
+ case type.to_sym
343
+ when :DateTime
344
+ DateTime.parse(value)
345
+ when :Date
346
+ Date.parse(value)
347
+ when :String
348
+ value.to_s
349
+ when :Integer
350
+ value.to_i
351
+ when :Float
352
+ value.to_f
353
+ when :BOOLEAN
354
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
355
+ true
356
+ else
357
+ false
358
+ end
359
+ when :Object
360
+ # generic object (usually a Hash), return directly
361
+ value
362
+ when /\AArray<(?<inner_type>.+)>\z/
363
+ inner_type = Regexp.last_match[:inner_type]
364
+ value.map { |v| _deserialize(inner_type, v) }
365
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
366
+ k_type = Regexp.last_match[:k_type]
367
+ v_type = Regexp.last_match[:v_type]
368
+ {}.tap do |hash|
369
+ value.each do |k, v|
370
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
371
+ end
372
+ end
373
+ else # model
374
+ temp_model = AsposeSlidesCloud.const_get(type).new
375
+ temp_model.build_from_hash(value)
376
+ end
377
+ end
378
+
379
+ # Returns the string representation of the object
380
+ # @return [String] String presentation of the object
381
+ def to_s
382
+ to_hash.to_s
383
+ end
384
+
385
+ # to_body is an alias to to_hash (backward compatibility)
386
+ # @return [Hash] Returns the object in the form of hash
387
+ def to_body
388
+ to_hash
389
+ end
390
+
391
+ # Returns the object in the form of hash
392
+ # @return [Hash] Returns the object in the form of hash
393
+ def to_hash
394
+ hash = {}
395
+ self.class.attribute_map.each_pair do |attr, param|
396
+ value = self.send(attr)
397
+ next if value.nil?
398
+ hash[param] = _to_hash(value)
399
+ end
400
+ hash
401
+ end
402
+
403
+ # Outputs non-array value in the form of hash
404
+ # For object, use to_hash. Otherwise, just return the value
405
+ # @param [Object] value Any valid value
406
+ # @return [Hash] Returns the value in the form of hash
407
+ def _to_hash(value)
408
+ if value.is_a?(Array)
409
+ value.compact.map { |v| _to_hash(v) }
410
+ elsif value.is_a?(Hash)
411
+ {}.tap do |hash|
412
+ value.each { |k, v| hash[k] = _to_hash(v) }
413
+ end
414
+ elsif value.respond_to? :to_hash
415
+ value.to_hash
416
+ else
417
+ value
418
+ end
419
+ end
420
+ end
421
+ end