groupdocs 1.5.7 → 1.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. data/CHANGELOG.md +51 -0
  2. data/examples/api-samples/Gemfile +1 -1
  3. data/examples/api-samples/Gemfile.lock +43 -0
  4. data/examples/api-samples/public/docs/{sample2.html → sample01.html} +39 -19
  5. data/examples/api-samples/public/docs/{sample3.html → sample02.html} +28 -22
  6. data/examples/api-samples/public/docs/sample03.html +285 -0
  7. data/examples/api-samples/public/docs/{sample4.html → sample04.html} +30 -36
  8. data/examples/api-samples/public/docs/{sample5.html → sample05.html} +68 -31
  9. data/examples/api-samples/public/docs/sample06.html +299 -0
  10. data/examples/api-samples/public/docs/{sample7.html → sample07.html} +53 -18
  11. data/examples/api-samples/public/docs/{sample8.html → sample08.html} +64 -41
  12. data/examples/api-samples/public/docs/sample09.html +260 -0
  13. data/examples/api-samples/public/docs/sample10.html +67 -28
  14. data/examples/api-samples/public/docs/sample11.html +171 -55
  15. data/examples/api-samples/public/docs/sample12.html +53 -17
  16. data/examples/api-samples/public/docs/sample13.html +52 -16
  17. data/examples/api-samples/public/docs/sample14.html +51 -8
  18. data/examples/api-samples/public/docs/sample15.html +46 -10
  19. data/examples/api-samples/public/docs/sample16.html +81 -7
  20. data/examples/api-samples/public/docs/sample17.html +103 -15
  21. data/examples/api-samples/public/docs/sample18.html +117 -41
  22. data/examples/api-samples/public/docs/sample19.html +410 -36
  23. data/examples/api-samples/public/docs/sample20.html +46 -10
  24. data/examples/api-samples/public/docs/sample21.html +504 -45
  25. data/examples/api-samples/public/docs/sample22.html +166 -28
  26. data/examples/api-samples/public/docs/sample23.html +61 -25
  27. data/examples/api-samples/public/docs/sample24.html +100 -12
  28. data/examples/api-samples/public/docs/sample25.html +123 -49
  29. data/examples/api-samples/public/docs/sample26.html +41 -8
  30. data/examples/api-samples/public/docs/sample27.html +125 -50
  31. data/examples/api-samples/public/docs/sample28.html +27 -9
  32. data/examples/api-samples/public/docs/sample29.html +10 -10
  33. data/examples/api-samples/public/docs/sample30.html +70 -14
  34. data/examples/api-samples/public/docs/sample31.html +108 -67
  35. data/examples/api-samples/public/docs/sample32.html +71 -99
  36. data/examples/api-samples/public/docs/sample33.html +107 -32
  37. data/examples/api-samples/public/docs/{sample1.html → sample34.html} +58 -18
  38. data/examples/api-samples/public/docs/sample35.html +666 -0
  39. data/examples/api-samples/public/docs/{sample6.html → sample36.html} +56 -37
  40. data/examples/api-samples/public/docs/sample37.html +815 -0
  41. data/examples/api-samples/public/docs/sample38.html +508 -0
  42. data/examples/api-samples/public/docs/sample39.html +921 -0
  43. data/examples/api-samples/public/docs/sample40.html +510 -0
  44. data/examples/api-samples/public/docs/sample41.html +452 -0
  45. data/examples/api-samples/public/docs/sample42.html +311 -0
  46. data/examples/api-samples/public/templates/test_all_fields2.pdf +0 -0
  47. data/examples/api-samples/samples/sample01.rb +37 -0
  48. data/examples/api-samples/samples/sample02.rb +41 -0
  49. data/examples/api-samples/samples/sample03.rb +73 -0
  50. data/examples/api-samples/samples/sample04.rb +47 -0
  51. data/examples/api-samples/samples/{sample5.rb → sample05.rb} +26 -14
  52. data/examples/api-samples/samples/sample06.rb +80 -0
  53. data/examples/api-samples/samples/sample07.rb +52 -0
  54. data/examples/api-samples/samples/sample08.rb +69 -0
  55. data/examples/api-samples/samples/sample09.rb +83 -0
  56. data/examples/api-samples/samples/sample10.rb +29 -15
  57. data/examples/api-samples/samples/sample11.rb +89 -37
  58. data/examples/api-samples/samples/sample12.rb +22 -11
  59. data/examples/api-samples/samples/sample13.rb +22 -10
  60. data/examples/api-samples/samples/sample14.rb +23 -5
  61. data/examples/api-samples/samples/sample15.rb +18 -7
  62. data/examples/api-samples/samples/sample16.rb +28 -4
  63. data/examples/api-samples/samples/sample17.rb +31 -5
  64. data/examples/api-samples/samples/sample18.rb +36 -8
  65. data/examples/api-samples/samples/sample19.rb +138 -18
  66. data/examples/api-samples/samples/sample20.rb +14 -3
  67. data/examples/api-samples/samples/sample21.rb +162 -23
  68. data/examples/api-samples/samples/sample22.rb +73 -22
  69. data/examples/api-samples/samples/sample23.rb +17 -6
  70. data/examples/api-samples/samples/sample24.rb +34 -7
  71. data/examples/api-samples/samples/sample25.rb +37 -12
  72. data/examples/api-samples/samples/sample26.rb +12 -5
  73. data/examples/api-samples/samples/sample27.rb +38 -12
  74. data/examples/api-samples/samples/sample28.rb +25 -6
  75. data/examples/api-samples/samples/sample29.rb +12 -12
  76. data/examples/api-samples/samples/sample30.rb +27 -15
  77. data/examples/api-samples/samples/sample31.rb +44 -33
  78. data/examples/api-samples/samples/sample32.rb +43 -41
  79. data/examples/api-samples/samples/sample33.rb +42 -14
  80. data/examples/api-samples/samples/sample34.rb +40 -0
  81. data/examples/api-samples/samples/sample35.rb +224 -0
  82. data/examples/api-samples/samples/sample36.rb +58 -0
  83. data/examples/api-samples/samples/sample37.rb +229 -0
  84. data/examples/api-samples/samples/sample38.rb +128 -0
  85. data/examples/api-samples/samples/sample39.rb +252 -0
  86. data/examples/api-samples/samples/sample40.rb +164 -0
  87. data/examples/api-samples/samples/sample41.rb +118 -0
  88. data/examples/api-samples/samples/sample42.rb +97 -0
  89. data/examples/api-samples/views/_others_samples.haml +25 -11
  90. data/examples/api-samples/views/index.haml +23 -11
  91. data/examples/api-samples/views/popup.haml +32 -0
  92. data/examples/api-samples/views/{sample1.haml → sample01.haml} +12 -7
  93. data/examples/api-samples/views/{sample2.haml → sample02.haml} +20 -15
  94. data/examples/api-samples/views/sample03.haml +83 -0
  95. data/examples/api-samples/views/sample04.haml +49 -0
  96. data/examples/api-samples/views/{sample5.haml → sample05.haml} +19 -14
  97. data/examples/api-samples/views/sample06.haml +53 -0
  98. data/examples/api-samples/views/sample07.haml +47 -0
  99. data/examples/api-samples/views/{sample8.haml → sample08.haml} +17 -12
  100. data/examples/api-samples/views/{sample9.haml → sample09.haml} +19 -4
  101. data/examples/api-samples/views/sample10.haml +18 -13
  102. data/examples/api-samples/views/sample11.haml +48 -19
  103. data/examples/api-samples/views/sample12.haml +26 -21
  104. data/examples/api-samples/views/sample13.haml +18 -12
  105. data/examples/api-samples/views/sample14.haml +21 -15
  106. data/examples/api-samples/views/sample15.haml +16 -9
  107. data/examples/api-samples/views/sample16.haml +18 -5
  108. data/examples/api-samples/views/sample17.haml +14 -9
  109. data/examples/api-samples/views/sample18.haml +13 -7
  110. data/examples/api-samples/views/sample19.haml +37 -8
  111. data/examples/api-samples/views/sample20.haml +13 -8
  112. data/examples/api-samples/views/sample21.haml +71 -13
  113. data/examples/api-samples/views/sample22.haml +53 -16
  114. data/examples/api-samples/views/sample23.haml +9 -4
  115. data/examples/api-samples/views/sample24.haml +9 -4
  116. data/examples/api-samples/views/sample25.haml +18 -13
  117. data/examples/api-samples/views/sample26.haml +8 -3
  118. data/examples/api-samples/views/sample27.haml +20 -14
  119. data/examples/api-samples/views/sample28.haml +16 -10
  120. data/examples/api-samples/views/sample29.haml +4 -4
  121. data/examples/api-samples/views/sample30.haml +16 -10
  122. data/examples/api-samples/views/sample31.haml +39 -32
  123. data/examples/api-samples/views/sample32.haml +25 -36
  124. data/examples/api-samples/views/sample33.haml +14 -17
  125. data/examples/api-samples/views/sample34.haml +48 -0
  126. data/examples/api-samples/views/sample35.haml +95 -0
  127. data/examples/api-samples/views/sample36.haml +64 -0
  128. data/examples/api-samples/views/sample37.haml +124 -0
  129. data/examples/api-samples/views/sample38.haml +115 -0
  130. data/examples/api-samples/views/sample39.haml +236 -0
  131. data/examples/api-samples/views/sample40.haml +95 -0
  132. data/examples/api-samples/views/{sample4.haml → sample41.haml} +90 -72
  133. data/examples/api-samples/views/sample42.haml +59 -0
  134. data/lib/groupdocs/api/helpers/rest_helper.rb +13 -1
  135. data/lib/groupdocs/datasource.rb +2 -1
  136. data/lib/groupdocs/document.rb +101 -13
  137. data/lib/groupdocs/document/annotation.rb +28 -13
  138. data/lib/groupdocs/document/annotation/marker.rb +18 -0
  139. data/lib/groupdocs/document/annotation/reply.rb +9 -2
  140. data/lib/groupdocs/document/field.rb +5 -1
  141. data/lib/groupdocs/job.rb +12 -2
  142. data/lib/groupdocs/questionnaire.rb +174 -4
  143. data/lib/groupdocs/questionnaire/collector.rb +21 -0
  144. data/lib/groupdocs/questionnaire/question.rb +19 -0
  145. data/lib/groupdocs/questionnaire/question/answer.rb +5 -0
  146. data/lib/groupdocs/questionnaire/question/conditions.rb +20 -0
  147. data/lib/groupdocs/signature.rb +36 -308
  148. data/lib/groupdocs/signature/envelope.rb +146 -4
  149. data/lib/groupdocs/signature/field.rb +20 -1
  150. data/lib/groupdocs/signature/field/location.rb +18 -7
  151. data/lib/groupdocs/signature/form.rb +199 -10
  152. data/lib/groupdocs/signature/shared/document_methods.rb +38 -0
  153. data/lib/groupdocs/signature/shared/entity_methods.rb +0 -1
  154. data/lib/groupdocs/signature/shared/field_methods.rb +13 -38
  155. data/lib/groupdocs/signature/shared/recipient_methods.rb +8 -0
  156. data/lib/groupdocs/signature/template.rb +3 -1
  157. data/lib/groupdocs/storage.rb +4 -1
  158. data/lib/groupdocs/storage/file.rb +18 -1
  159. data/lib/groupdocs/subscription.rb +8 -3
  160. data/lib/groupdocs/user.rb +8 -0
  161. data/lib/groupdocs/version.rb +1 -1
  162. data/spec/groupdocs/document/annotation_spec.rb +1 -14
  163. data/spec/groupdocs/subscription_spec.rb +2 -2
  164. metadata +86 -32
  165. checksums.yaml +0 -15
  166. data/examples/api-samples/public/docs/sample9.html +0 -200
  167. data/examples/api-samples/samples/sample1.rb +0 -25
  168. data/examples/api-samples/samples/sample2.rb +0 -29
  169. data/examples/api-samples/samples/sample3.rb +0 -33
  170. data/examples/api-samples/samples/sample4.rb +0 -51
  171. data/examples/api-samples/samples/sample6.rb +0 -49
  172. data/examples/api-samples/samples/sample7.rb +0 -42
  173. data/examples/api-samples/samples/sample8.rb +0 -61
  174. data/examples/api-samples/samples/sample9.rb +0 -48
  175. data/examples/api-samples/views/sample3.haml +0 -44
  176. data/examples/api-samples/views/sample6.haml +0 -49
  177. data/examples/api-samples/views/sample7.haml +0 -42
@@ -2,7 +2,7 @@
2
2
 
3
3
  <html>
4
4
  <head>
5
- <title>sample1.rb</title>
5
+ <title>sample34.rb</title>
6
6
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
7
7
  <meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
8
8
  <link rel="stylesheet" media="all" href="docco.css" />
@@ -15,7 +15,7 @@
15
15
 
16
16
  <li id="title">
17
17
  <div class="annotation">
18
- <h1>sample1.rb</h1>
18
+ <h1>sample34.rb</h1>
19
19
  </div>
20
20
  </li>
21
21
 
@@ -31,8 +31,8 @@
31
31
 
32
32
  </div>
33
33
 
34
- <div class="content"><div class='highlight'><pre>get <span class="string">'/sample1'</span> <span class="keyword">do</span>
35
- haml <span class="symbol">:sample1</span>
34
+ <div class="content"><div class='highlight'><pre>get <span class="string">'/sample34'</span> <span class="keyword">do</span>
35
+ haml <span class="symbol">:sample34</span>
36
36
  <span class="keyword">end</span></pre></div></div>
37
37
 
38
38
  </li>
@@ -48,7 +48,7 @@
48
48
 
49
49
  </div>
50
50
 
51
- <div class="content"><div class='highlight'><pre>post <span class="string">'/sample1'</span> <span class="keyword">do</span></pre></div></div>
51
+ <div class="content"><div class='highlight'><pre>post <span class="string">'/sample34'</span> <span class="keyword">do</span></pre></div></div>
52
52
 
53
53
  </li>
54
54
 
@@ -59,13 +59,15 @@
59
59
  <div class="pilwrap ">
60
60
  <a class="pilcrow" href="#section-3">&#182;</a>
61
61
  </div>
62
- <p>set variables</p>
62
+ <p>Set variables</p>
63
63
 
64
64
  </div>
65
65
 
66
- <div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:client_id</span>]
67
- set <span class="symbol">:private_key</span>, params[<span class="symbol">:private_key</span>]
68
-
66
+ <div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:clientId</span>]
67
+ set <span class="symbol">:private_key</span>, params[<span class="symbol">:privateKey</span>]
68
+ set <span class="symbol">:path</span>, params[<span class="symbol">:folder</span>]
69
+ set <span class="symbol">:base_path</span>, params[<span class="symbol">:basePath</span>]
70
+
69
71
  <span class="keyword">begin</span></pre></div></div>
70
72
 
71
73
  </li>
@@ -77,11 +79,13 @@
77
79
  <div class="pilwrap ">
78
80
  <a class="pilcrow" href="#section-4">&#182;</a>
79
81
  </div>
80
- <p>check required variables</p>
82
+ <p>Check required variables</p>
81
83
 
82
84
  </div>
83
85
 
84
- <div class="content"><div class='highlight'><pre> raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> settings.client_id.empty? <span class="keyword">or</span> settings.private_key.empty?</pre></div></div>
86
+ <div class="content"><div class='highlight'><pre> raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> settings.client_id.empty? <span class="keyword">or</span> settings.private_key.empty?
87
+
88
+ <span class="keyword">if</span> settings.base_path.empty? <span class="keyword">then</span> settings.base_path = <span class="string">'https://api.groupdocs.com'</span> <span class="keyword">end</span></pre></div></div>
85
89
 
86
90
  </li>
87
91
 
@@ -92,15 +96,13 @@
92
96
  <div class="pilwrap ">
93
97
  <a class="pilcrow" href="#section-5">&#182;</a>
94
98
  </div>
95
- <p>make a request to API using client_id and private_key</p>
99
+ <p>Configure your access to API server</p>
96
100
 
97
101
  </div>
98
102
 
99
- <div class="content"><div class='highlight'><pre> user = <span class="constant">GroupDocs::User</span>.get!({<span class="symbol">:client_id</span> =&gt; settings.client_id, <span class="symbol">:private_key</span> =&gt; settings.private_key})
100
-
101
- <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e
102
- err = e.message
103
- <span class="keyword">end</span></pre></div></div>
103
+ <div class="content"><div class='highlight'><pre> <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
104
+ groupdocs.client_id = settings.client_id
105
+ groupdocs.private_key = settings.private_key</pre></div></div>
104
106
 
105
107
  </li>
106
108
 
@@ -111,11 +113,49 @@
111
113
  <div class="pilwrap ">
112
114
  <a class="pilcrow" href="#section-6">&#182;</a>
113
115
  </div>
116
+ <p>Optionally specify API server and version</p>
117
+
118
+ </div>
119
+
120
+ <div class="content"><div class='highlight'><pre> groupdocs.api_server = settings.base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
121
+ <span class="keyword">end</span></pre></div></div>
122
+
123
+ </li>
124
+
125
+
126
+ <li id="section-7">
127
+ <div class="annotation">
128
+
129
+ <div class="pilwrap ">
130
+ <a class="pilcrow" href="#section-7">&#182;</a>
131
+ </div>
132
+ <p>Create new Folder</p>
133
+
134
+ </div>
135
+
136
+ <div class="content"><div class='highlight'><pre> folder = <span class="constant">GroupDocs::Storage::Folder</span>.create!(settings.path)
137
+ <span class="keyword">if</span> folder.id
138
+ message = <span class="string">"&lt;span style=\"color:green\"&gt;Folder was created <span class="subst">#{folder.path}</span> &lt;/span&gt; "</span>
139
+ <span class="keyword">end</span>
140
+
141
+ <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e
142
+ err = e.message
143
+ <span class="keyword">end</span></pre></div></div>
144
+
145
+ </li>
146
+
147
+
148
+ <li id="section-8">
149
+ <div class="annotation">
150
+
151
+ <div class="pilwrap ">
152
+ <a class="pilcrow" href="#section-8">&#182;</a>
153
+ </div>
114
154
  <p>set variables for template</p>
115
155
 
116
156
  </div>
117
157
 
118
- <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample1</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:userId</span> =&gt; settings.client_id, <span class="symbol">:privateKey</span> =&gt; settings.private_key, <span class="symbol">:user</span> =&gt; user, <span class="symbol">:err</span> =&gt; err}
158
+ <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample34</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:userId</span> =&gt; settings.client_id, <span class="symbol">:privateKey</span> =&gt; settings.private_key, <span class="symbol">:message</span> =&gt; message, <span class="symbol">:err</span> =&gt; err}
119
159
  <span class="keyword">end</span></pre></div></div>
120
160
 
121
161
  </li>
@@ -0,0 +1,666 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <title>sample35.rb</title>
6
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
7
+ <meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
8
+ <link rel="stylesheet" media="all" href="docco.css" />
9
+ </head>
10
+ <body>
11
+ <div id="container">
12
+ <div id="background"></div>
13
+
14
+ <ul class="sections">
15
+
16
+ <li id="title">
17
+ <div class="annotation">
18
+ <h1>sample35.rb</h1>
19
+ </div>
20
+ </li>
21
+
22
+
23
+
24
+ <li id="section-1">
25
+ <div class="annotation">
26
+
27
+ <div class="pilwrap ">
28
+ <a class="pilcrow" href="#section-1">&#182;</a>
29
+ </div>
30
+ <p>GET request</p>
31
+
32
+ </div>
33
+
34
+ <div class="content"><div class='highlight'><pre>get <span class="string">'/sample35'</span> <span class="keyword">do</span>
35
+ haml <span class="symbol">:sample35</span>
36
+ <span class="keyword">end</span></pre></div></div>
37
+
38
+ </li>
39
+
40
+
41
+ <li id="section-2">
42
+ <div class="annotation">
43
+
44
+ <div class="pilwrap ">
45
+ <a class="pilcrow" href="#section-2">&#182;</a>
46
+ </div>
47
+ <p>POST request</p>
48
+
49
+ </div>
50
+
51
+ <div class="content"><div class='highlight'><pre>post <span class="string">'/sample35'</span> <span class="keyword">do</span></pre></div></div>
52
+
53
+ </li>
54
+
55
+
56
+ <li id="section-3">
57
+ <div class="annotation">
58
+
59
+ <div class="pilwrap ">
60
+ <a class="pilcrow" href="#section-3">&#182;</a>
61
+ </div>
62
+ <p>Set variables</p>
63
+
64
+ </div>
65
+
66
+ <div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:clientId</span>]
67
+ set <span class="symbol">:private_key</span>, params[<span class="symbol">:privateKey</span>]
68
+ set <span class="symbol">:source</span>, params[<span class="symbol">:source</span>]
69
+ set <span class="symbol">:file_id</span>, params[<span class="symbol">:fileId</span>]
70
+ set <span class="symbol">:url</span>, params[<span class="symbol">:url</span>]
71
+ set <span class="symbol">:path</span>, params[<span class="symbol">:basePath</span>]
72
+
73
+ <span class="keyword">begin</span></pre></div></div>
74
+
75
+ </li>
76
+
77
+
78
+ <li id="section-4">
79
+ <div class="annotation">
80
+
81
+ <div class="pilwrap ">
82
+ <a class="pilcrow" href="#section-4">&#182;</a>
83
+ </div>
84
+ <p>Check required variables</p>
85
+
86
+ </div>
87
+
88
+ <div class="content"><div class='highlight'><pre> raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> settings.client_id.empty? <span class="keyword">or</span> settings.private_key.empty?
89
+
90
+ <span class="keyword">if</span> settings.path.empty? <span class="keyword">then</span> settings.path == <span class="string">'https://api.groupdocs.com'</span> <span class="keyword">end</span></pre></div></div>
91
+
92
+ </li>
93
+
94
+
95
+ <li id="section-5">
96
+ <div class="annotation">
97
+
98
+ <div class="pilwrap ">
99
+ <a class="pilcrow" href="#section-5">&#182;</a>
100
+ </div>
101
+ <p>clean version if it contains</p>
102
+
103
+ </div>
104
+
105
+ <div class="content"><div class='highlight'><pre> path = settings.path.gsub(<span class="regexp">/\/v2.0/</span>, <span class="string">''</span>)</pre></div></div>
106
+
107
+ </li>
108
+
109
+
110
+ <li id="section-6">
111
+ <div class="annotation">
112
+
113
+ <div class="pilwrap ">
114
+ <a class="pilcrow" href="#section-6">&#182;</a>
115
+ </div>
116
+ <p>Configure your access to API server.</p>
117
+
118
+ </div>
119
+
120
+ <div class="content"><div class='highlight'><pre> <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
121
+ groupdocs.client_id = settings.client_id
122
+ groupdocs.private_key = settings.private_key</pre></div></div>
123
+
124
+ </li>
125
+
126
+
127
+ <li id="section-7">
128
+ <div class="annotation">
129
+
130
+ <div class="pilwrap ">
131
+ <a class="pilcrow" href="#section-7">&#182;</a>
132
+ </div>
133
+ <p>optionally specify API server and version</p>
134
+
135
+ </div>
136
+
137
+ <div class="content"><div class='highlight'><pre> groupdocs.api_server = path <span class="comment"># default is 'https://api.groupdocs.com' https://dev-api-groupdocs.dynabic.com/v2.0</span>
138
+
139
+ <span class="keyword">end</span></pre></div></div>
140
+
141
+ </li>
142
+
143
+
144
+ <li id="section-8">
145
+ <div class="annotation">
146
+
147
+ <div class="pilwrap ">
148
+ <a class="pilcrow" href="#section-8">&#182;</a>
149
+ </div>
150
+ <p>Get document by file GUID</p>
151
+
152
+ </div>
153
+
154
+ <div class="content"><div class='highlight'><pre> <span class="keyword">case</span> settings.source
155
+ <span class="keyword">when</span> <span class="string">'guid'</span></pre></div></div>
156
+
157
+ </li>
158
+
159
+
160
+ <li id="section-9">
161
+ <div class="annotation">
162
+
163
+ <div class="pilwrap ">
164
+ <a class="pilcrow" href="#section-9">&#182;</a>
165
+ </div>
166
+ <p>Create instance of File</p>
167
+
168
+ </div>
169
+
170
+ <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.new({<span class="symbol">:guid</span> =&gt; settings.file_id})
171
+ <span class="keyword">when</span> <span class="string">'local'</span></pre></div></div>
172
+
173
+ </li>
174
+
175
+
176
+ <li id="section-10">
177
+ <div class="annotation">
178
+
179
+ <div class="pilwrap ">
180
+ <a class="pilcrow" href="#section-10">&#182;</a>
181
+ </div>
182
+ <p>Construct path</p>
183
+
184
+ </div>
185
+
186
+ <div class="content"><div class='highlight'><pre> file_path = <span class="string">"<span class="subst">#{<span class="constant">Dir</span>.tmpdir}</span>/<span class="subst">#{params[<span class="symbol">:file</span>][<span class="symbol">:filename</span>]}</span>"</span></pre></div></div>
187
+
188
+ </li>
189
+
190
+
191
+ <li id="section-11">
192
+ <div class="annotation">
193
+
194
+ <div class="pilwrap ">
195
+ <a class="pilcrow" href="#section-11">&#182;</a>
196
+ </div>
197
+ <p>Open file</p>
198
+
199
+ </div>
200
+
201
+ <div class="content"><div class='highlight'><pre> <span class="constant">File</span>.open(file_path, <span class="string">'wb'</span>) { |f| f.write(params[<span class="symbol">:file</span>][<span class="symbol">:tempfile</span>].read) }</pre></div></div>
202
+
203
+ </li>
204
+
205
+
206
+ <li id="section-12">
207
+ <div class="annotation">
208
+
209
+ <div class="pilwrap ">
210
+ <a class="pilcrow" href="#section-12">&#182;</a>
211
+ </div>
212
+ <p>Make a request to API using client_id and private_key</p>
213
+
214
+ </div>
215
+
216
+ <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload!(file_path, {})
217
+ <span class="keyword">when</span> <span class="string">'url'</span></pre></div></div>
218
+
219
+ </li>
220
+
221
+
222
+ <li id="section-13">
223
+ <div class="annotation">
224
+
225
+ <div class="pilwrap ">
226
+ <a class="pilcrow" href="#section-13">&#182;</a>
227
+ </div>
228
+ <p>Upload file from defined url</p>
229
+
230
+ </div>
231
+
232
+ <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload_web!(settings.url)
233
+ <span class="keyword">else</span>
234
+ raise <span class="string">'Wrong GUID source.'</span>
235
+ <span class="keyword">end</span></pre></div></div>
236
+
237
+ </li>
238
+
239
+
240
+ <li id="section-14">
241
+ <div class="annotation">
242
+
243
+ <div class="pilwrap ">
244
+ <a class="pilcrow" href="#section-14">&#182;</a>
245
+ </div>
246
+ <p>Raise exception if something went wrong</p>
247
+
248
+ </div>
249
+
250
+ <div class="content"><div class='highlight'><pre> raise <span class="string">'No such file'</span> <span class="keyword">unless</span> file.is_a?(<span class="constant">GroupDocs::Storage::File</span>)</pre></div></div>
251
+
252
+ </li>
253
+
254
+
255
+ <li id="section-15">
256
+ <div class="annotation">
257
+
258
+ <div class="pilwrap ">
259
+ <a class="pilcrow" href="#section-15">&#182;</a>
260
+ </div>
261
+ <p>Make GroupDocs::Storage::Document instance</p>
262
+
263
+ </div>
264
+
265
+ <div class="content"><div class='highlight'><pre> document = file.to_document</pre></div></div>
266
+
267
+ </li>
268
+
269
+
270
+ <li id="section-16">
271
+ <div class="annotation">
272
+
273
+ <div class="pilwrap ">
274
+ <a class="pilcrow" href="#section-16">&#182;</a>
275
+ </div>
276
+ <p>Get array of document&#39;s fields</p>
277
+
278
+ </div>
279
+
280
+ <div class="content"><div class='highlight'><pre> fields = document.fields!</pre></div></div>
281
+
282
+ </li>
283
+
284
+
285
+ <li id="section-17">
286
+ <div class="annotation">
287
+
288
+ <div class="pilwrap ">
289
+ <a class="pilcrow" href="#section-17">&#182;</a>
290
+ </div>
291
+ <p>Create the fields for form</p>
292
+
293
+ </div>
294
+
295
+ <div class="content"><div class='highlight'><pre> html = <span class="string">''</span>
296
+ fields.map <span class="keyword">do</span> |e|
297
+
298
+ <span class="keyword">case</span> e.type
299
+ <span class="keyword">when</span> <span class="string">'Text'</span>
300
+ signature = <span class="string">"&lt;br/&gt;&lt;label for='<span class="subst">#{e.name}</span>'&gt;<span class="subst">#{e.name}</span> <span class="subst">#{e.mandatory == <span class="keyword">false</span> ? <span class="string">'&lt;span class="optional"&gt;(Optional)&lt;/span&gt;'</span> <span class="symbol">:</span> <span class="string">'&lt;span class="optional"&gt;(Required)&lt;/span&gt;'</span>}</span>&lt;/label&gt;&lt;br/&gt;&lt;input type='text' name='<span class="subst">#{e.name}</span>'&gt;&lt;/input&gt;&lt;br/&gt;&lt;br/&gt;"</span>
301
+ html &lt;&lt; signature
302
+ <span class="keyword">when</span> <span class="string">'RadioButton'</span>
303
+ i = <span class="number">0</span>
304
+ html.scan(e.name).empty? ? <span class="string">''</span> <span class="symbol">:</span> i += <span class="number">1</span>
305
+ radio = <span class="string">"&lt;br/&gt;&lt;label for='<span class="subst">#{e.name}</span>'&gt;<span class="subst">#{e.name}</span> <span class="subst">#{e.mandatory == <span class="keyword">false</span> ? <span class="string">'&lt;span class="optional"&gt;(Optional)&lt;/span&gt;'</span> <span class="symbol">:</span> <span class="string">'&lt;span class="optional"&gt;(Required)&lt;/span&gt;'</span>}</span>&lt;/label&gt;&lt;br/&gt;&lt;input type='radio' name='<span class="subst">#{e.name}</span>' value='<span class="subst">#{i}</span>' &gt;&lt;/input&gt;&lt;br/&gt;&lt;br/&gt;"</span>
306
+ html &lt;&lt; radio
307
+ <span class="keyword">when</span> <span class="string">'Checkbox'</span>
308
+ checkbox = <span class="string">"&lt;br/&gt;&lt;label for='<span class="subst">#{e.name}</span>'&gt;<span class="subst">#{e.name}</span> <span class="subst">#{e.mandatory == <span class="keyword">false</span> ? <span class="string">'&lt;span class="optional"&gt;(Optional)&lt;/span&gt;'</span> <span class="symbol">:</span> <span class="string">'&lt;span class="optional"&gt;(Required)&lt;/span&gt;'</span>}</span>&lt;/label&gt;&lt;br/&gt;&lt;input type='checkbox' name='<span class="subst">#{e.name}</span>' &gt;&lt;/input&gt;&lt;br/&gt;&lt;br/&gt;"</span>
309
+ html &lt;&lt; checkbox
310
+ <span class="keyword">when</span> <span class="string">'Combobox'</span>
311
+ combobox = <span class="string">"&lt;br/&gt;&lt;label for='<span class="subst">#{e.name}</span>'&gt;<span class="subst">#{e.name}</span> <span class="subst">#{e.mandatory == <span class="keyword">false</span> ? <span class="string">'&lt;span class="optional"&gt;(Optional)&lt;/span&gt;'</span> <span class="symbol">:</span> <span class="string">'&lt;span class="optional"&gt;(Required)&lt;/span&gt;'</span>}</span>&lt;/label&gt;&lt;br/&gt;&lt;select name='<span class="subst">#{e.name}</span>'&gt;"</span>
312
+ e.acceptableValues.each { |e| combobox &lt;&lt; <span class="string">"&lt;option name='<span class="subst">#{e}</span>'&gt;<span class="subst">#{e}</span>&lt;/option&gt;"</span>}
313
+ combobox &lt;&lt; <span class="string">"&lt;/select&gt;&lt;br/&gt;&lt;br/&gt;"</span>
314
+ html &lt;&lt; combobox
315
+ <span class="keyword">when</span> <span class="string">'Listbox'</span>
316
+ listbox = <span class="string">"&lt;br/&gt;&lt;label for='<span class="subst">#{e.name}</span>'&gt;<span class="subst">#{e.name}</span> <span class="subst">#{e.mandatory == <span class="keyword">false</span> ? <span class="string">'&lt;span class="optional"&gt;(Optional)&lt;/span&gt;'</span> <span class="symbol">:</span> <span class="string">'&lt;span class="optional"&gt;(Required)&lt;/span&gt;'</span>}</span>&lt;/label&gt;&lt;br/&gt;&lt;select multiple name='<span class="subst">#{e.name}</span>[]'&gt;"</span>
317
+ e.acceptableValues.each { |e| listbox &lt;&lt; <span class="string">"&lt;option name='<span class="subst">#{e}</span>'&gt;<span class="subst">#{e}</span>&lt;/option&gt;"</span>}
318
+ listbox &lt;&lt; <span class="string">"&lt;/select&gt;&lt;br/&gt;&lt;br/&gt;"</span>
319
+ html &lt;&lt; listbox
320
+ <span class="keyword">end</span>
321
+
322
+ <span class="keyword">end</span>
323
+
324
+
325
+ <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e
326
+ err = e.message
327
+ <span class="keyword">end</span></pre></div></div>
328
+
329
+ </li>
330
+
331
+
332
+ <li id="section-18">
333
+ <div class="annotation">
334
+
335
+ <div class="pilwrap ">
336
+ <a class="pilcrow" href="#section-18">&#182;</a>
337
+ </div>
338
+ <p>Set variables for template</p>
339
+
340
+ </div>
341
+
342
+ <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample35</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:userId</span> =&gt; settings.client_id, <span class="symbol">:privateKey</span> =&gt; settings.private_key, <span class="symbol">:base_path</span> =&gt; settings.path, <span class="symbol">:fileId</span> =&gt; document.file.guid, <span class="symbol">:html</span> =&gt; html, <span class="symbol">:err</span> =&gt; err}
343
+ <span class="keyword">end</span></pre></div></div>
344
+
345
+ </li>
346
+
347
+
348
+ <li id="section-19">
349
+ <div class="annotation">
350
+
351
+ <div class="pilwrap ">
352
+ <a class="pilcrow" href="#section-19">&#182;</a>
353
+ </div>
354
+ <p>GET request</p>
355
+
356
+ </div>
357
+
358
+ <div class="content"><div class='highlight'><pre>get <span class="string">'/sample35/check'</span> <span class="keyword">do</span>
359
+ haml <span class="symbol">:sample35</span>
360
+ <span class="keyword">end</span></pre></div></div>
361
+
362
+ </li>
363
+
364
+
365
+ <li id="section-20">
366
+ <div class="annotation">
367
+
368
+ <div class="pilwrap ">
369
+ <a class="pilcrow" href="#section-20">&#182;</a>
370
+ </div>
371
+ <p>POST request</p>
372
+
373
+ </div>
374
+
375
+ <div class="content"><div class='highlight'><pre>post <span class="string">'/sample35/check'</span> <span class="keyword">do</span>
376
+ set <span class="symbol">:client_id</span>, params[<span class="symbol">:clientId</span>]
377
+ set <span class="symbol">:private_key</span>, params[<span class="symbol">:privateKey</span>]
378
+ set <span class="symbol">:path</span>, params[<span class="symbol">:basePath</span>]
379
+ set <span class="symbol">:file_id</span>, params[<span class="symbol">:fileId</span>]
380
+
381
+ <span class="keyword">begin</span>
382
+
383
+ <span class="keyword">if</span> settings.path.empty? <span class="keyword">then</span> settings.path == <span class="string">'https://api.groupdocs.com'</span> <span class="keyword">end</span></pre></div></div>
384
+
385
+ </li>
386
+
387
+
388
+ <li id="section-21">
389
+ <div class="annotation">
390
+
391
+ <div class="pilwrap ">
392
+ <a class="pilcrow" href="#section-21">&#182;</a>
393
+ </div>
394
+ <p>clean version if it contains</p>
395
+
396
+ </div>
397
+
398
+ <div class="content"><div class='highlight'><pre> path = settings.path.gsub(<span class="regexp">/\/v2.0/</span>, <span class="string">''</span>)</pre></div></div>
399
+
400
+ </li>
401
+
402
+
403
+ <li id="section-22">
404
+ <div class="annotation">
405
+
406
+ <div class="pilwrap ">
407
+ <a class="pilcrow" href="#section-22">&#182;</a>
408
+ </div>
409
+ <p>Get document by file GUID</p>
410
+
411
+ </div>
412
+
413
+ <div class="content"><div class='highlight'><pre> <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
414
+ groupdocs.client_id = settings.client_id
415
+ groupdocs.private_key = settings.private_key</pre></div></div>
416
+
417
+ </li>
418
+
419
+
420
+ <li id="section-23">
421
+ <div class="annotation">
422
+
423
+ <div class="pilwrap ">
424
+ <a class="pilcrow" href="#section-23">&#182;</a>
425
+ </div>
426
+ <p>optionally specify API server and version</p>
427
+
428
+ </div>
429
+
430
+ <div class="content"><div class='highlight'><pre> groupdocs.api_server = path <span class="comment"># default is 'https://api.groupdocs.com'</span>
431
+ groupdocs.api_version = <span class="string">'2.0'</span> <span class="comment"># default is '2.0'</span>
432
+ <span class="keyword">end</span></pre></div></div>
433
+
434
+ </li>
435
+
436
+
437
+ <li id="section-24">
438
+ <div class="annotation">
439
+
440
+ <div class="pilwrap ">
441
+ <a class="pilcrow" href="#section-24">&#182;</a>
442
+ </div>
443
+ <p>TODO:
444
+ Merge template PDF FIle with the data provided via dynamically created HTML form.</p>
445
+
446
+ </div>
447
+
448
+ </li>
449
+
450
+
451
+ <li id="section-25">
452
+ <div class="annotation">
453
+
454
+ <div class="pilwrap ">
455
+ <a class="pilcrow" href="#section-25">&#182;</a>
456
+ </div>
457
+ <p>Create instance of File</p>
458
+
459
+ </div>
460
+
461
+ <div class="content"><div class='highlight'><pre> document = <span class="constant">GroupDocs::Storage::File</span>.new({<span class="symbol">:guid</span> =&gt; settings.file_id}).to_document</pre></div></div>
462
+
463
+ </li>
464
+
465
+
466
+ <li id="section-26">
467
+ <div class="annotation">
468
+
469
+ <div class="pilwrap ">
470
+ <a class="pilcrow" href="#section-26">&#182;</a>
471
+ </div>
472
+ <p>Create datasource with fields</p>
473
+
474
+ </div>
475
+
476
+ <div class="content"><div class='highlight'><pre> datasource = <span class="constant">GroupDocs::DataSource</span>.new</pre></div></div>
477
+
478
+ </li>
479
+
480
+
481
+ <li id="section-27">
482
+ <div class="annotation">
483
+
484
+ <div class="pilwrap ">
485
+ <a class="pilcrow" href="#section-27">&#182;</a>
486
+ </div>
487
+ <p>Get array of document&#39;s fields</p>
488
+
489
+ </div>
490
+
491
+ <div class="content"><div class='highlight'><pre> fields = document.fields!()</pre></div></div>
492
+
493
+ </li>
494
+
495
+
496
+ <li id="section-28">
497
+ <div class="annotation">
498
+
499
+ <div class="pilwrap ">
500
+ <a class="pilcrow" href="#section-28">&#182;</a>
501
+ </div>
502
+ <p>Get unique fields</p>
503
+
504
+ </div>
505
+
506
+ <div class="content"><div class='highlight'><pre> fields = fields.uniq{ |f| f.name }
507
+
508
+ datasource.fields = []</pre></div></div>
509
+
510
+ </li>
511
+
512
+
513
+ <li id="section-29">
514
+ <div class="annotation">
515
+
516
+ <div class="pilwrap ">
517
+ <a class="pilcrow" href="#section-29">&#182;</a>
518
+ </div>
519
+ <p>Create Field instance and fill the fields</p>
520
+
521
+ </div>
522
+
523
+ <div class="content"><div class='highlight'><pre> fields.each <span class="keyword">do</span> |field|
524
+ <span class="keyword">if</span> field.type == <span class="string">'Text'</span>
525
+ datasource.fields &lt;&lt; <span class="constant">GroupDocs::DataSource::Field</span>.new(<span class="symbol">name:</span> field.name, <span class="symbol">type:</span> <span class="symbol">:text</span>, <span class="symbol">values:</span> [params[field.name.to_sym]])
526
+ <span class="keyword">end</span>
527
+
528
+ <span class="keyword">if</span> field.type == <span class="string">"RadioButton"</span> &amp;&amp; params[field.name.to_sym]
529
+ datasource.fields &lt;&lt; <span class="constant">GroupDocs::DataSource::Field</span>.new(<span class="symbol">name:</span> field.name, <span class="symbol">type:</span> <span class="string">'integer'</span>, <span class="symbol">values:</span> [params[field.name.to_sym]])
530
+
531
+ <span class="keyword">end</span>
532
+
533
+ <span class="keyword">if</span> field.type == <span class="string">"Checkbox"</span> &amp;&amp; params[field.name.to_sym] == <span class="string">'on'</span>
534
+ datasource.fields &lt;&lt; <span class="constant">GroupDocs::DataSource::Field</span>.new(<span class="symbol">name:</span> field.name, <span class="symbol">type:</span> <span class="string">'boolean'</span>, <span class="symbol">values:</span> [<span class="keyword">true</span>])
535
+ <span class="keyword">end</span>
536
+
537
+ <span class="keyword">if</span> field.type == <span class="string">"Combobox"</span> &amp;&amp; params[field.name.to_sym]
538
+ i = <span class="number">0</span>
539
+ value = <span class="keyword">nil</span>
540
+ field.acceptableValues.each <span class="keyword">do</span> |e|
541
+ e == params[field.name] ? value = i <span class="symbol">:</span> <span class="string">''</span>
542
+ i += <span class="number">1</span>
543
+ <span class="keyword">end</span>
544
+
545
+ datasource.fields &lt;&lt; <span class="constant">GroupDocs::DataSource::Field</span>.new(<span class="symbol">name:</span> field.name, <span class="symbol">type:</span> <span class="string">'integer'</span>, <span class="symbol">values:</span> [value])
546
+ <span class="keyword">end</span>
547
+
548
+ <span class="keyword">if</span> field.type == <span class="string">"Listbox"</span> &amp;&amp; params[field.name.to_sym]
549
+ i = <span class="number">0</span>
550
+ value = <span class="keyword">nil</span>
551
+ field.acceptableValues.each <span class="keyword">do</span> |e|
552
+ e == params[field.name] ? value = i <span class="symbol">:</span> <span class="string">''</span>
553
+ i += <span class="number">1</span>
554
+ <span class="keyword">end</span>
555
+ datasource.fields &lt;&lt; <span class="constant">GroupDocs::DataSource::Field</span>.new(<span class="symbol">name:</span> field.name, <span class="symbol">type:</span> <span class="string">'integer'</span>, <span class="symbol">values:</span> [value])
556
+
557
+ <span class="keyword">end</span>
558
+
559
+ <span class="keyword">end</span></pre></div></div>
560
+
561
+ </li>
562
+
563
+
564
+ <li id="section-30">
565
+ <div class="annotation">
566
+
567
+ <div class="pilwrap ">
568
+ <a class="pilcrow" href="#section-30">&#182;</a>
569
+ </div>
570
+ <p>Adds datasource.</p>
571
+
572
+ </div>
573
+
574
+ <div class="content"><div class='highlight'><pre> datasource.add!()</pre></div></div>
575
+
576
+ </li>
577
+
578
+
579
+ <li id="section-31">
580
+ <div class="annotation">
581
+
582
+ <div class="pilwrap ">
583
+ <a class="pilcrow" href="#section-31">&#182;</a>
584
+ </div>
585
+ <p>Creates new job to merge datasource into document.</p>
586
+
587
+ </div>
588
+
589
+ <div class="content"><div class='highlight'><pre> job = document.datasource!(datasource, {<span class="symbol">:new_type</span> =&gt; <span class="string">'pdf'</span>})
590
+
591
+ i = <span class="number">0</span></pre></div></div>
592
+
593
+ </li>
594
+
595
+
596
+ <li id="section-32">
597
+ <div class="annotation">
598
+
599
+ <div class="pilwrap ">
600
+ <a class="pilcrow" href="#section-32">&#182;</a>
601
+ </div>
602
+ <p>Checks status of Job.</p>
603
+
604
+ </div>
605
+
606
+ <div class="content"><div class='highlight'><pre> <span class="keyword">while</span> i&lt;<span class="number">5</span> <span class="keyword">do</span>
607
+ sleep(<span class="number">5</span>)
608
+ job_status = <span class="constant">GroupDocs::Job</span>.get!(job.id)
609
+ <span class="keyword">break</span> <span class="keyword">if</span> job_status.status == <span class="symbol">:archived</span>
610
+ i += <span class="number">1</span>
611
+ <span class="keyword">end</span></pre></div></div>
612
+
613
+ </li>
614
+
615
+
616
+ <li id="section-33">
617
+ <div class="annotation">
618
+
619
+ <div class="pilwrap ">
620
+ <a class="pilcrow" href="#section-33">&#182;</a>
621
+ </div>
622
+ <p>Returns an hash of input and output documents associated to job.</p>
623
+
624
+ </div>
625
+
626
+ <div class="content"><div class='highlight'><pre> document = job.documents!()</pre></div></div>
627
+
628
+ </li>
629
+
630
+
631
+ <li id="section-34">
632
+ <div class="annotation">
633
+
634
+ <div class="pilwrap ">
635
+ <a class="pilcrow" href="#section-34">&#182;</a>
636
+ </div>
637
+ <p>Set converted document GUID</p>
638
+
639
+ </div>
640
+
641
+ <div class="content"><div class='highlight'><pre> guid = document[<span class="symbol">:inputs</span>][<span class="number">0</span>].outputs[<span class="number">0</span>].guid
642
+
643
+ <span class="keyword">case</span> path
644
+
645
+ <span class="keyword">when</span> <span class="string">'https://stage-api-groupdocs.dynabic.com'</span>
646
+ iframe = <span class="string">"&lt;iframe width='100%' height='600' frameborder='0' src='http://stage-apps-groupdocs.dynabic.com/document-viewer/embed/<span class="subst">#{guid}</span>'&gt;&lt;/iframe&gt;"</span>
647
+ <span class="keyword">when</span> <span class="string">'https://dev-api-groupdocs.dynabic.com'</span>
648
+ iframe = <span class="string">"&lt;iframe width='100%' height='600' frameborder='0' src='http://dev-apps-groupdocs.dynabic.com/document-viewer/embed/<span class="subst">#{guid}</span>'&gt;&lt;/iframe&gt;"</span>
649
+ <span class="keyword">else</span>
650
+ iframe = <span class="string">"&lt;iframe width='100%' height='600' frameborder='0' src='https://apps.groupdocs.com/document-viewer/embed/<span class="subst">#{guid}</span>'&gt;&lt;/iframe&gt;"</span>
651
+ <span class="keyword">end</span>
652
+
653
+
654
+ <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e
655
+ err = e.message
656
+ <span class="keyword">end</span>
657
+
658
+ haml <span class="symbol">:sample35</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:userId</span> =&gt; settings.client_id, <span class="symbol">:privateKey</span> =&gt; settings.private_key, <span class="symbol">:iframe</span> =&gt; iframe, <span class="symbol">:err</span> =&gt; err}
659
+ <span class="keyword">end</span></pre></div></div>
660
+
661
+ </li>
662
+
663
+ </ul>
664
+ </div>
665
+ </body>
666
+ </html>