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
@@ -63,9 +63,10 @@
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>]
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
68
  set <span class="symbol">:resultFileId</span>, params[<span class="symbol">:resultFileId</span>]
69
+ set <span class="symbol">:base_path</span>, params[<span class="symbol">:basePath</span>]
69
70
 
70
71
  <span class="keyword">begin</span></pre></div></div>
71
72
 
@@ -82,7 +83,9 @@
82
83
 
83
84
  </div>
84
85
 
85
- <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? <span class="keyword">or</span> settings.resultFileId.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? <span class="keyword">or</span> settings.resultFileId.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>
86
89
 
87
90
  </li>
88
91
 
@@ -93,11 +96,13 @@
93
96
  <div class="pilwrap ">
94
97
  <a class="pilcrow" href="#section-5">&#182;</a>
95
98
  </div>
96
- <p>construct new storage file</p>
99
+ <p>Configure your access to API server</p>
97
100
 
98
101
  </div>
99
102
 
100
- <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.new(<span class="symbol">guid:</span> settings.resultFileId)</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>
101
106
 
102
107
  </li>
103
108
 
@@ -108,11 +113,12 @@
108
113
  <div class="pilwrap ">
109
114
  <a class="pilcrow" href="#section-6">&#182;</a>
110
115
  </div>
111
- <p>construct new document</p>
116
+ <p>Optionally specify API server and version</p>
112
117
 
113
118
  </div>
114
119
 
115
- <div class="content"><div class='highlight'><pre> document = <span class="constant">GroupDocs::Document</span>.new(<span class="symbol">file:</span> file)</pre></div></div>
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>
116
122
 
117
123
  </li>
118
124
 
@@ -123,11 +129,41 @@
123
129
  <div class="pilwrap ">
124
130
  <a class="pilcrow" href="#section-7">&#182;</a>
125
131
  </div>
132
+ <p>construct new storage file</p>
133
+
134
+ </div>
135
+
136
+ <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.new(<span class="symbol">guid:</span> settings.resultFileId)</pre></div></div>
137
+
138
+ </li>
139
+
140
+
141
+ <li id="section-8">
142
+ <div class="annotation">
143
+
144
+ <div class="pilwrap ">
145
+ <a class="pilcrow" href="#section-8">&#182;</a>
146
+ </div>
147
+ <p>construct new document</p>
148
+
149
+ </div>
150
+
151
+ <div class="content"><div class='highlight'><pre> document = <span class="constant">GroupDocs::Document</span>.new(<span class="symbol">file:</span> file)</pre></div></div>
152
+
153
+ </li>
154
+
155
+
156
+ <li id="section-9">
157
+ <div class="annotation">
158
+
159
+ <div class="pilwrap ">
160
+ <a class="pilcrow" href="#section-9">&#182;</a>
161
+ </div>
126
162
  <p>get compare changes</p>
127
163
 
128
164
  </div>
129
165
 
130
- <div class="content"><div class='highlight'><pre> changes = document.changes!({<span class="symbol">:client_id</span> =&gt; settings.client_id, <span class="symbol">:private_key</span> =&gt; settings.private_key})
166
+ <div class="content"><div class='highlight'><pre> changes = document.changes!()
131
167
 
132
168
  result = <span class="string">''</span>
133
169
  result += <span class="string">"&lt;table class='border'&gt;"</span>
@@ -155,11 +191,11 @@
155
191
  </li>
156
192
 
157
193
 
158
- <li id="section-8">
194
+ <li id="section-10">
159
195
  <div class="annotation">
160
196
 
161
197
  <div class="pilwrap ">
162
- <a class="pilcrow" href="#section-8">&#182;</a>
198
+ <a class="pilcrow" href="#section-10">&#182;</a>
163
199
  </div>
164
200
  <p>set variables for template</p>
165
201
 
@@ -48,7 +48,7 @@
48
48
 
49
49
  </div>
50
50
 
51
- <div class="content"><div class='highlight'><pre>post <span class="string">'/sample21'</span> <span class="keyword">do</span></pre></div></div>
51
+ <div class="content"><div class='highlight'><pre>post <span class="string">'/sample21/signature_callback'</span> <span class="keyword">do</span></pre></div></div>
52
52
 
53
53
  </li>
54
54
 
@@ -59,18 +59,11 @@
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 download path</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
- set <span class="symbol">:email</span>, params[<span class="symbol">:email</span>]
69
- set <span class="symbol">:name</span>, params[<span class="symbol">:name</span>]
70
- set <span class="symbol">:lastName</span>, params[<span class="symbol">:lastName</span>]
71
- set <span class="symbol">:file</span>, params[<span class="symbol">:file</span>]
72
-
73
- <span class="keyword">begin</span></pre></div></div>
66
+ <div class="content"><div class='highlight'><pre> downloads_path = <span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/downloads"</span></pre></div></div>
74
67
 
75
68
  </li>
76
69
 
@@ -81,11 +74,16 @@
81
74
  <div class="pilwrap ">
82
75
  <a class="pilcrow" href="#section-4">&#182;</a>
83
76
  </div>
84
- <p>check required variables</p>
77
+ <p>Get callback request</p>
85
78
 
86
79
  </div>
87
80
 
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? <span class="keyword">or</span> settings.email.empty? <span class="keyword">or</span> settings.name.empty? <span class="keyword">or</span> settings.lastName.empty? <span class="keyword">or</span> settings.file.<span class="keyword">nil</span>?</pre></div></div>
81
+ <div class="content"><div class='highlight'><pre> data = <span class="constant">JSON</span>.parse(request.body.read)
82
+ <span class="keyword">begin</span>
83
+ raise <span class="string">'Empty params!'</span> <span class="keyword">if</span> data.empty?
84
+ source_id = <span class="keyword">nil</span>
85
+ client_id = <span class="keyword">nil</span>
86
+ private_key = <span class="keyword">nil</span></pre></div></div>
89
87
 
90
88
  </li>
91
89
 
@@ -96,11 +94,15 @@
96
94
  <div class="pilwrap ">
97
95
  <a class="pilcrow" href="#section-5">&#182;</a>
98
96
  </div>
99
- <p>construct path</p>
97
+ <p>Get value of SourceId</p>
100
98
 
101
99
  </div>
102
100
 
103
- <div class="content"><div class='highlight'><pre> filepath = <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>
101
+ <div class="content"><div class='highlight'><pre> data.each <span class="keyword">do</span> |key, value|
102
+ <span class="keyword">if</span> key == <span class="string">'SourceId'</span>
103
+ source_id = value
104
+ <span class="keyword">end</span>
105
+ <span class="keyword">end</span></pre></div></div>
104
106
 
105
107
  </li>
106
108
 
@@ -111,11 +113,16 @@
111
113
  <div class="pilwrap ">
112
114
  <a class="pilcrow" href="#section-6">&#182;</a>
113
115
  </div>
114
- <p>open file</p>
116
+ <p>Get private key and client_id from file user_info.txt</p>
115
117
 
116
118
  </div>
117
119
 
118
- <div class="content"><div class='highlight'><pre> <span class="constant">File</span>.open(filepath, <span class="string">'wb'</span>) { |f| f.write(params[<span class="symbol">:file</span>][<span class="symbol">:tempfile</span>].read) }</pre></div></div>
120
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> <span class="constant">File</span>.exist?(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/user_info.txt"</span>)
121
+ contents = <span class="constant">File</span>.read(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/user_info.txt"</span>)
122
+ contents = contents.split(<span class="string">' '</span>)
123
+ client_id = contents.first
124
+ private_key = contents.last
125
+ <span class="keyword">end</span></pre></div></div>
119
126
 
120
127
  </li>
121
128
 
@@ -126,11 +133,11 @@
126
133
  <div class="pilwrap ">
127
134
  <a class="pilcrow" href="#section-7">&#182;</a>
128
135
  </div>
129
- <p>upload file</p>
136
+ <p>Create Job instance</p>
130
137
 
131
138
  </div>
132
139
 
133
- <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload!(filepath, {}, <span class="symbol">client_id:</span> settings.client_id, <span class="symbol">private_key:</span> settings.private_key)</pre></div></div>
140
+ <div class="content"><div class='highlight'><pre> job = <span class="constant">GroupDocs::Signature::Envelope</span>.new({<span class="symbol">:id</span> =&gt; source_id})</pre></div></div>
134
141
 
135
142
  </li>
136
143
 
@@ -141,14 +148,11 @@
141
148
  <div class="pilwrap ">
142
149
  <a class="pilcrow" href="#section-8">&#182;</a>
143
150
  </div>
144
- <p>create envelope using user id and entered by user name</p>
151
+ <p>Get document by job id</p>
145
152
 
146
153
  </div>
147
154
 
148
- <div class="content"><div class='highlight'><pre> envelope = <span class="constant">GroupDocs::Signature::Envelope</span>.new
149
- envelope.name = params[<span class="symbol">:file</span>][<span class="symbol">:filename</span>]
150
- envelope.email_subject = <span class="string">'Sing this!'</span>
151
- envelope.create!({}, <span class="symbol">client_id:</span> settings.client_id, <span class="symbol">private_key:</span> settings.private_key)</pre></div></div>
155
+ <div class="content"><div class='highlight'><pre> documents = job.documents!({}, {<span class="symbol">:client_id</span> =&gt; client_id, <span class="symbol">:private_key</span> =&gt; private_key})</pre></div></div>
152
156
 
153
157
  </li>
154
158
 
@@ -159,11 +163,16 @@
159
163
  <div class="pilwrap ">
160
164
  <a class="pilcrow" href="#section-9">&#182;</a>
161
165
  </div>
162
- <p>Add uploaded document to envelope</p>
166
+ <p>Download converted file</p>
163
167
 
164
168
  </div>
165
169
 
166
- <div class="content"><div class='highlight'><pre> envelope.add_document!(file.to_document, {}, {<span class="symbol">client_id:</span> settings.client_id, <span class="symbol">private_key:</span> settings.private_key})</pre></div></div>
170
+ <div class="content"><div class='highlight'><pre> documents[<span class="number">0</span>].file.download!(downloads_path, {<span class="symbol">:client_id</span> =&gt; client_id, <span class="symbol">:private_key</span> =&gt; private_key})
171
+
172
+ <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e
173
+ err = e.message
174
+ <span class="keyword">end</span>
175
+ <span class="keyword">end</span></pre></div></div>
167
176
 
168
177
  </li>
169
178
 
@@ -174,11 +183,11 @@
174
183
  <div class="pilwrap ">
175
184
  <a class="pilcrow" href="#section-10">&#182;</a>
176
185
  </div>
177
- <p>Get role list for current user</p>
186
+ <p>GET request</p>
178
187
 
179
188
  </div>
180
189
 
181
- <div class="content"><div class='highlight'><pre> roles = <span class="constant">GroupDocs::Signature::Role</span>.get!({}, {<span class="symbol">client_id:</span> settings.client_id, <span class="symbol">private_key:</span> settings.private_key})</pre></div></div>
190
+ <div class="content"><div class='highlight'><pre>get <span class="string">'/sample21/check'</span> <span class="keyword">do</span></pre></div></div>
182
191
 
183
192
  </li>
184
193
 
@@ -189,15 +198,13 @@
189
198
  <div class="pilwrap ">
190
199
  <a class="pilcrow" href="#section-11">&#182;</a>
191
200
  </div>
192
- <p>Create new recipient</p>
201
+ <p>Check is there download directory</p>
193
202
 
194
203
  </div>
195
204
 
196
- <div class="content"><div class='highlight'><pre> recipient = <span class="constant">GroupDocs::Signature::Recipient</span>.new
197
- recipient.email = settings.email
198
- recipient.first_name = settings.name
199
- recipient.last_name = settings.lastName
200
- recipient.role_id = roles.detect { |role| role.name == <span class="string">'Signer'</span> }.id</pre></div></div>
205
+ <div class="content"><div class='highlight'><pre> <span class="keyword">unless</span> <span class="constant">File</span>.directory?(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/downloads"</span>)
206
+ <span class="keyword">return</span> <span class="string">'Directory was not found.'</span>
207
+ <span class="keyword">end</span></pre></div></div>
201
208
 
202
209
  </li>
203
210
 
@@ -208,11 +215,17 @@
208
215
  <div class="pilwrap ">
209
216
  <a class="pilcrow" href="#section-12">&#182;</a>
210
217
  </div>
211
- <p>Add recipient to envelope</p>
218
+ <p>Get file name from download directory</p>
212
219
 
213
220
  </div>
214
221
 
215
- <div class="content"><div class='highlight'><pre> add = envelope.add_recipient!(recipient, {<span class="symbol">client_id:</span> settings.client_id, <span class="symbol">private_key:</span> settings.private_key})</pre></div></div>
222
+ <div class="content"><div class='highlight'><pre> name = <span class="keyword">nil</span>
223
+ <span class="constant">Dir</span>.entries(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/downloads"</span>).each <span class="keyword">do</span> |file|
224
+ name = file <span class="keyword">if</span> file != <span class="string">'.'</span> &amp;&amp; file != <span class="string">'..'</span>
225
+ <span class="keyword">end</span>
226
+
227
+ name
228
+ <span class="keyword">end</span></pre></div></div>
216
229
 
217
230
  </li>
218
231
 
@@ -223,11 +236,11 @@
223
236
  <div class="pilwrap ">
224
237
  <a class="pilcrow" href="#section-13">&#182;</a>
225
238
  </div>
226
- <p>get recipient id</p>
239
+ <p>GET request</p>
227
240
 
228
241
  </div>
229
242
 
230
- <div class="content"><div class='highlight'><pre> recipient_id = add[<span class="symbol">:recipient</span>][<span class="symbol">:id</span>]</pre></div></div>
243
+ <div class="content"><div class='highlight'><pre>get <span class="string">'/sample21/downloads/:filename'</span> <span class="keyword">do</span> |filename|</pre></div></div>
231
244
 
232
245
  </li>
233
246
 
@@ -238,11 +251,12 @@
238
251
  <div class="pilwrap ">
239
252
  <a class="pilcrow" href="#section-14">&#182;</a>
240
253
  </div>
241
- <p>Send envelop</p>
254
+ <p>Send file with header to download it</p>
242
255
 
243
256
  </div>
244
257
 
245
- <div class="content"><div class='highlight'><pre> envelope.send!(<span class="keyword">nil</span>, {<span class="symbol">client_id:</span> settings.client_id, <span class="symbol">private_key:</span> settings.private_key})</pre></div></div>
258
+ <div class="content"><div class='highlight'><pre> send_file <span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/downloads/<span class="subst">#{filename}</span>"</span>, <span class="symbol">:filename</span> =&gt; filename, <span class="symbol">:type</span> =&gt; <span class="string">'Application/octet-stream'</span>
259
+ <span class="keyword">end</span></pre></div></div>
246
260
 
247
261
  </li>
248
262
 
@@ -253,12 +267,457 @@
253
267
  <div class="pilwrap ">
254
268
  <a class="pilcrow" href="#section-15">&#182;</a>
255
269
  </div>
256
- <p>Make iframe</p>
270
+ <p>POST request</p>
271
+
272
+ </div>
273
+
274
+ <div class="content"><div class='highlight'><pre>post <span class="string">'/sample21'</span> <span class="keyword">do</span></pre></div></div>
275
+
276
+ </li>
277
+
278
+
279
+ <li id="section-16">
280
+ <div class="annotation">
281
+
282
+ <div class="pilwrap ">
283
+ <a class="pilcrow" href="#section-16">&#182;</a>
284
+ </div>
285
+ <p>set variables</p>
286
+
287
+ </div>
288
+
289
+ <div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:clientId</span>]
290
+ set <span class="symbol">:private_key</span>, params[<span class="symbol">:privateKey</span>]
291
+ set <span class="symbol">:email</span>, params[<span class="symbol">:email</span>]
292
+ set <span class="symbol">:name</span>, params[<span class="symbol">:name</span>]
293
+ set <span class="symbol">:lastName</span>, params[<span class="symbol">:lastName</span>]
294
+ set <span class="symbol">:fileId</span>, params[<span class="symbol">:fileId</span>]
295
+ set <span class="symbol">:callback</span>, params[<span class="symbol">:callback</span>]
296
+ set <span class="symbol">:base_path</span>, params[<span class="symbol">:basePath</span>]
297
+ set <span class="symbol">:url</span>, params[<span class="symbol">:url</span>]
298
+ set <span class="symbol">:source</span>, params[<span class="symbol">:source</span>]</pre></div></div>
299
+
300
+ </li>
301
+
302
+
303
+ <li id="section-17">
304
+ <div class="annotation">
305
+
306
+ <div class="pilwrap ">
307
+ <a class="pilcrow" href="#section-17">&#182;</a>
308
+ </div>
309
+ <p>Set download path</p>
310
+
311
+ </div>
312
+
313
+ <div class="content"><div class='highlight'><pre> downloads_path = <span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/downloads"</span></pre></div></div>
314
+
315
+ </li>
316
+
317
+
318
+ <li id="section-18">
319
+ <div class="annotation">
320
+
321
+ <div class="pilwrap ">
322
+ <a class="pilcrow" href="#section-18">&#182;</a>
323
+ </div>
324
+ <p>Remove all files from download directory or create folder if it not there</p>
325
+
326
+ </div>
327
+
328
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> <span class="constant">File</span>.directory?(downloads_path)
329
+ <span class="constant">Dir</span>.foreach(downloads_path) { |f| fn = <span class="constant">File</span>.join(downloads_path, f); <span class="constant">File</span>.delete(fn) <span class="keyword">if</span> f != <span class="string">'.'</span> &amp;&amp; f != <span class="string">'..'</span> }
330
+ <span class="keyword">else</span>
331
+ <span class="constant">Dir::</span>mkdir(downloads_path)
332
+ <span class="keyword">end</span>
333
+
334
+ <span class="keyword">begin</span></pre></div></div>
335
+
336
+ </li>
337
+
338
+
339
+ <li id="section-19">
340
+ <div class="annotation">
341
+
342
+ <div class="pilwrap ">
343
+ <a class="pilcrow" href="#section-19">&#182;</a>
344
+ </div>
345
+ <p>Check required variables</p>
346
+
347
+ </div>
348
+
349
+ <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? <span class="keyword">or</span> settings.email.empty? <span class="keyword">or</span> settings.name.empty? <span class="keyword">or</span> settings.lastName.empty?
350
+
351
+ <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>
352
+
353
+ </li>
354
+
355
+
356
+ <li id="section-20">
357
+ <div class="annotation">
358
+
359
+ <div class="pilwrap ">
360
+ <a class="pilcrow" href="#section-20">&#182;</a>
361
+ </div>
362
+ <p>Configure your access to API server</p>
363
+
364
+ </div>
365
+
366
+ <div class="content"><div class='highlight'><pre> <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
367
+ groupdocs.client_id = settings.client_id
368
+ groupdocs.private_key = settings.private_key</pre></div></div>
369
+
370
+ </li>
371
+
372
+
373
+ <li id="section-21">
374
+ <div class="annotation">
375
+
376
+ <div class="pilwrap ">
377
+ <a class="pilcrow" href="#section-21">&#182;</a>
378
+ </div>
379
+ <p>Optionally specify API server and version</p>
380
+
381
+ </div>
382
+
383
+ <div class="content"><div class='highlight'><pre> groupdocs.api_server = settings.base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
384
+ <span class="keyword">end</span></pre></div></div>
385
+
386
+ </li>
387
+
388
+
389
+ <li id="section-22">
390
+ <div class="annotation">
391
+
392
+ <div class="pilwrap ">
393
+ <a class="pilcrow" href="#section-22">&#182;</a>
394
+ </div>
395
+ <p>Write client and private key to the file for callback job</p>
396
+
397
+ </div>
398
+
399
+ <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.callback
400
+ out_file = <span class="constant">File</span>.new(<span class="string">"<span class="subst">#{<span class="constant">File</span>.dirname(__FILE_<span class="number">_</span>)}</span>/../public/user_info.txt"</span>, <span class="string">'w'</span>)</pre></div></div>
401
+
402
+ </li>
403
+
404
+
405
+ <li id="section-23">
406
+ <div class="annotation">
407
+
408
+ <div class="pilwrap ">
409
+ <a class="pilcrow" href="#section-23">&#182;</a>
410
+ </div>
411
+ <p>white space is required</p>
412
+
413
+ </div>
414
+
415
+ <div class="content"><div class='highlight'><pre> out_file.write(<span class="string">"<span class="subst">#{settings.client_id}</span> "</span>)
416
+ out_file.write(<span class="string">"<span class="subst">#{settings.private_key}</span>"</span>)
417
+ out_file.close
418
+ <span class="keyword">end</span>
419
+
420
+ file = <span class="keyword">nil</span></pre></div></div>
421
+
422
+ </li>
423
+
424
+
425
+ <li id="section-24">
426
+ <div class="annotation">
427
+
428
+ <div class="pilwrap ">
429
+ <a class="pilcrow" href="#section-24">&#182;</a>
430
+ </div>
431
+ <p>get document by file GUID</p>
432
+
433
+ </div>
434
+
435
+ <div class="content"><div class='highlight'><pre> <span class="keyword">case</span> settings.source
436
+ <span class="keyword">when</span> <span class="string">'guid'</span></pre></div></div>
437
+
438
+ </li>
439
+
440
+
441
+ <li id="section-25">
442
+ <div class="annotation">
443
+
444
+ <div class="pilwrap ">
445
+ <a class="pilcrow" href="#section-25">&#182;</a>
446
+ </div>
447
+ <p>Create instance of File</p>
448
+
449
+ </div>
450
+
451
+ <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.new({<span class="symbol">:guid</span> =&gt; settings.fileId}).to_document.metadata!()
452
+ file = file.last_view.document.file.to_document
453
+ <span class="keyword">when</span> <span class="string">'local'</span></pre></div></div>
454
+
455
+ </li>
456
+
457
+
458
+ <li id="section-26">
459
+ <div class="annotation">
460
+
461
+ <div class="pilwrap ">
462
+ <a class="pilcrow" href="#section-26">&#182;</a>
463
+ </div>
464
+ <p>construct path</p>
465
+
466
+ </div>
467
+
468
+ <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>
469
+
470
+ </li>
471
+
472
+
473
+ <li id="section-27">
474
+ <div class="annotation">
475
+
476
+ <div class="pilwrap ">
477
+ <a class="pilcrow" href="#section-27">&#182;</a>
478
+ </div>
479
+ <p>open file</p>
480
+
481
+ </div>
482
+
483
+ <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>
484
+
485
+ </li>
486
+
487
+
488
+ <li id="section-28">
489
+ <div class="annotation">
490
+
491
+ <div class="pilwrap ">
492
+ <a class="pilcrow" href="#section-28">&#182;</a>
493
+ </div>
494
+ <p>make a request to API using client_id and private_key</p>
495
+
496
+ </div>
497
+
498
+ <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload!(file_path, {}).to_document
499
+ <span class="keyword">when</span> <span class="string">'url'</span></pre></div></div>
500
+
501
+ </li>
502
+
503
+
504
+ <li id="section-29">
505
+ <div class="annotation">
506
+
507
+ <div class="pilwrap ">
508
+ <a class="pilcrow" href="#section-29">&#182;</a>
509
+ </div>
510
+ <p>Upload file from defined url</p>
511
+
512
+ </div>
513
+
514
+ <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload_web!(settings.url).to_document
515
+ <span class="keyword">else</span>
516
+ raise <span class="string">'Wrong GUID source.'</span>
517
+ <span class="keyword">end</span>
518
+
519
+ name = file.name</pre></div></div>
520
+
521
+ </li>
522
+
523
+
524
+ <li id="section-30">
525
+ <div class="annotation">
526
+
527
+ <div class="pilwrap ">
528
+ <a class="pilcrow" href="#section-30">&#182;</a>
529
+ </div>
530
+ <p>create envelope using user id and entered by user name</p>
531
+
532
+ </div>
533
+
534
+ <div class="content"><div class='highlight'><pre> envelope = <span class="constant">GroupDocs::Signature::Envelope</span>.new
535
+ envelope.name = file.name
536
+ envelope.email_subject = <span class="string">'Sing this!'</span>
537
+ envelope.create!({})</pre></div></div>
538
+
539
+ </li>
540
+
541
+
542
+ <li id="section-31">
543
+ <div class="annotation">
544
+
545
+ <div class="pilwrap ">
546
+ <a class="pilcrow" href="#section-31">&#182;</a>
547
+ </div>
548
+ <p>Add uploaded document to envelope</p>
549
+
550
+ </div>
551
+
552
+ <div class="content"><div class='highlight'><pre> envelope.add_document!(file, {})</pre></div></div>
553
+
554
+ </li>
555
+
556
+
557
+ <li id="section-32">
558
+ <div class="annotation">
559
+
560
+ <div class="pilwrap ">
561
+ <a class="pilcrow" href="#section-32">&#182;</a>
562
+ </div>
563
+ <p>Get role list for current user</p>
564
+
565
+ </div>
566
+
567
+ <div class="content"><div class='highlight'><pre> roles = <span class="constant">GroupDocs::Signature::Role</span>.get!({})</pre></div></div>
568
+
569
+ </li>
570
+
571
+
572
+ <li id="section-33">
573
+ <div class="annotation">
574
+
575
+ <div class="pilwrap ">
576
+ <a class="pilcrow" href="#section-33">&#182;</a>
577
+ </div>
578
+ <p>Create new recipient</p>
579
+
580
+ </div>
581
+
582
+ <div class="content"><div class='highlight'><pre> recipient = <span class="constant">GroupDocs::Signature::Recipient</span>.new
583
+ recipient.email = settings.email
584
+ recipient.first_name = settings.name
585
+ recipient.last_name = settings.lastName
586
+ recipient.role_id = roles.detect { |role| role.name == <span class="string">'Signer'</span> }.id</pre></div></div>
587
+
588
+ </li>
589
+
590
+
591
+ <li id="section-34">
592
+ <div class="annotation">
593
+
594
+ <div class="pilwrap ">
595
+ <a class="pilcrow" href="#section-34">&#182;</a>
596
+ </div>
597
+ <p>Add recipient to envelope</p>
598
+
599
+ </div>
600
+
601
+ <div class="content"><div class='highlight'><pre> add = envelope.add_recipient!(recipient)</pre></div></div>
602
+
603
+ </li>
604
+
605
+
606
+ <li id="section-35">
607
+ <div class="annotation">
608
+
609
+ <div class="pilwrap ">
610
+ <a class="pilcrow" href="#section-35">&#182;</a>
611
+ </div>
612
+ <p>Get recipient id</p>
613
+
614
+ </div>
615
+
616
+ <div class="content"><div class='highlight'><pre> recipient.id = add[<span class="symbol">:recipient</span>][<span class="symbol">:id</span>]</pre></div></div>
617
+
618
+ </li>
619
+
620
+
621
+ <li id="section-36">
622
+ <div class="annotation">
623
+
624
+ <div class="pilwrap ">
625
+ <a class="pilcrow" href="#section-36">&#182;</a>
626
+ </div>
627
+ <p>Get document id</p>
628
+
629
+ </div>
630
+
631
+ <div class="content"><div class='highlight'><pre> document = envelope.documents!({})</pre></div></div>
632
+
633
+ </li>
634
+
635
+
636
+ <li id="section-37">
637
+ <div class="annotation">
638
+
639
+ <div class="pilwrap ">
640
+ <a class="pilcrow" href="#section-37">&#182;</a>
641
+ </div>
642
+ <p>Get field and add the location to field</p>
643
+
644
+ </div>
645
+
646
+ <div class="content"><div class='highlight'><pre> field = <span class="constant">GroupDocs::Signature::Field</span>.get!({}).detect { |f| f.type == <span class="symbol">:signature</span> }
647
+ field.location = {<span class="symbol">:location_x</span> =&gt; <span class="number">0</span>.<span class="number">15</span>, <span class="symbol">:location_y</span> =&gt; <span class="number">0</span>.<span class="number">73</span>, <span class="symbol">:location_w</span> =&gt; <span class="number">150</span>, <span class="symbol">:location_h</span> =&gt; <span class="number">50</span>, <span class="symbol">:page</span> =&gt; <span class="number">1</span>}
648
+ field.name = <span class="string">'EMPLOYEE SIGNATURE'</span></pre></div></div>
649
+
650
+ </li>
651
+
652
+
653
+ <li id="section-38">
654
+ <div class="annotation">
655
+
656
+ <div class="pilwrap ">
657
+ <a class="pilcrow" href="#section-38">&#182;</a>
658
+ </div>
659
+ <p>Add field to envelope</p>
660
+
661
+ </div>
662
+
663
+ <div class="content"><div class='highlight'><pre> envelope.add_field!(field, document[<span class="number">0</span>], recipient, {})</pre></div></div>
664
+
665
+ </li>
666
+
667
+
668
+ <li id="section-39">
669
+ <div class="annotation">
670
+
671
+ <div class="pilwrap ">
672
+ <a class="pilcrow" href="#section-39">&#182;</a>
673
+ </div>
674
+ <p>Send envelop</p>
675
+
676
+ </div>
677
+
678
+ <div class="content"><div class='highlight'><pre> envelope.send!({<span class="symbol">:callbackUrl</span> =&gt; settings.callback})</pre></div></div>
679
+
680
+ </li>
681
+
682
+
683
+ <li id="section-40">
684
+ <div class="annotation">
685
+
686
+ <div class="pilwrap ">
687
+ <a class="pilcrow" href="#section-40">&#182;</a>
688
+ </div>
689
+ <p>Get url from request</p>
257
690
 
258
691
  </div>
259
692
 
260
- <div class="content"><div class='highlight'><pre> iframe = <span class="string">"&lt;iframe src='https://apps.groupdocs.com/signature/signembed/<span class="subst">#{envelope.id}</span>/<span class="subst">#{recipient_id}</span>' frameborder='0' width='720' height='600'&gt;&lt;/iframe&gt;"</span>
693
+ <div class="content"><div class='highlight'><pre> <span class="keyword">case</span> settings.base_path
694
+
695
+ <span class="keyword">when</span> <span class="string">'https://stage-api-groupdocs.dynabic.com'</span>
696
+ url = <span class="string">"http://stage-apps-groupdocs.dynabic.com/signature/signembed/<span class="subst">#{envelope.id}</span>/<span class="subst">#{recipient.id}</span>"</span>
697
+ <span class="keyword">when</span> <span class="string">'https://dev-api-groupdocs.dynabic.com'</span>
698
+ url = <span class="string">"http://dev-apps-groupdocs.dynabic.com/signature/signembed/<span class="subst">#{envelope.id}</span>/<span class="subst">#{recipient.id}</span>"</span>
699
+ <span class="keyword">else</span>
700
+ url = <span class="string">"https://apps.groupdocs.com/signature/signembed/<span class="subst">#{envelope.id}</span>/<span class="subst">#{recipient.id}</span>"</span>
701
+ <span class="keyword">end</span>
702
+
703
+
704
+ iframe = <span class="constant">GroupDocs::Api::Request</span>.new(<span class="symbol">:path</span> =&gt; url).prepare_and_sign_url</pre></div></div>
705
+
706
+ </li>
707
+
708
+
709
+ <li id="section-41">
710
+ <div class="annotation">
711
+
712
+ <div class="pilwrap ">
713
+ <a class="pilcrow" href="#section-41">&#182;</a>
714
+ </div>
715
+ <p>Make iframe</p>
261
716
 
717
+ </div>
718
+
719
+ <div class="content"><div class='highlight'><pre> iframe = <span class="string">"&lt;iframe src='<span class="subst">#{iframe}</span>' frameborder='0' width='720' height='600'&gt;&lt;/iframe&gt;"</span>
720
+ message = <span class="string">"&lt;p&gt;File was uploaded to GroupDocs. Here you can see your &lt;strong&gt;<span class="subst">#{name}</span>&lt;/strong&gt; file in the GroupDocs Embedded Viewer.&lt;/p&gt;"</span>
262
721
  <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e
263
722
  err = e.message
264
723
  <span class="keyword">end</span></pre></div></div>
@@ -266,17 +725,17 @@
266
725
  </li>
267
726
 
268
727
 
269
- <li id="section-16">
728
+ <li id="section-42">
270
729
  <div class="annotation">
271
730
 
272
731
  <div class="pilwrap ">
273
- <a class="pilcrow" href="#section-16">&#182;</a>
732
+ <a class="pilcrow" href="#section-42">&#182;</a>
274
733
  </div>
275
- <p>set variables for template</p>
734
+ <p>Set variables for template</p>
276
735
 
277
736
  </div>
278
737
 
279
- <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample21</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">:email</span> =&gt; settings.email, <span class="symbol">:name</span> =&gt; settings.name, <span class="symbol">:lastName</span> =&gt; settings.lastName, <span class="symbol">:iframe</span> =&gt; iframe, <span class="symbol">:err</span> =&gt; err}
738
+ <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample21</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">:email</span> =&gt; settings.email, <span class="symbol">:name</span> =&gt; settings.name, <span class="symbol">:lastName</span> =&gt; settings.lastName, <span class="symbol">:iframe</span> =&gt; iframe, <span class="symbol">:massage</span> =&gt; message, <span class="symbol">:err</span> =&gt; err, <span class="symbol">:callback</span> =&gt; settings.callback,}
280
739
  <span class="keyword">end</span></pre></div></div>
281
740
 
282
741
  </li>