sword2ruby 1.0.0
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.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +30 -0
- data/LICENCE +35 -0
- data/README.md +43 -0
- data/Rakefile +53 -0
- data/doc/Atom/Collection.html +837 -0
- data/doc/Atom/Element.html +197 -0
- data/doc/Atom/Entry.html +1795 -0
- data/doc/Atom/Feed.html +297 -0
- data/doc/Atom/Service.html +363 -0
- data/doc/Atom.html +158 -0
- data/doc/Gemfile.html +125 -0
- data/doc/Object.html +165 -0
- data/doc/REXML/Element.html +493 -0
- data/doc/REXML.html +158 -0
- data/doc/Rakefile.html +123 -0
- data/doc/Sword2Ruby/Atom.html +169 -0
- data/doc/Sword2Ruby/AutoDiscover.html +327 -0
- data/doc/Sword2Ruby/Connection.html +274 -0
- data/doc/Sword2Ruby/DepositReceipt.html +331 -0
- data/doc/Sword2Ruby/Exception.html +168 -0
- data/doc/Sword2Ruby/SwordAccept.html +169 -0
- data/doc/Sword2Ruby/SwordStatementOAIORE.html +277 -0
- data/doc/Sword2Ruby/User.html +272 -0
- data/doc/Sword2Ruby/Utility.html +1101 -0
- data/doc/Sword2Ruby.html +213 -0
- data/doc/created.rid +29 -0
- data/doc/images/add.png +0 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/transparent.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +118 -0
- data/doc/js/darkfish.js +153 -0
- data/doc/js/jquery.js +18 -0
- data/doc/js/navigation.js +142 -0
- data/doc/js/search.js +94 -0
- data/doc/js/search_index.js +1 -0
- data/doc/js/searcher.js +228 -0
- data/doc/rdoc.css +543 -0
- data/doc/spec/fixtures/example_txt.html +125 -0
- data/doc/table_of_contents.html +267 -0
- data/lib/sword2ruby/auto_discover.rb +71 -0
- data/lib/sword2ruby/collection.rb +261 -0
- data/lib/sword2ruby/connection.rb +37 -0
- data/lib/sword2ruby/constant.rb +35 -0
- data/lib/sword2ruby/deposit_receipt.rb +52 -0
- data/lib/sword2ruby/element.rb +12 -0
- data/lib/sword2ruby/entry.rb +602 -0
- data/lib/sword2ruby/exception.rb +7 -0
- data/lib/sword2ruby/feed.rb +34 -0
- data/lib/sword2ruby/rexml_element.rb +79 -0
- data/lib/sword2ruby/service.rb +79 -0
- data/lib/sword2ruby/sword_accept.rb +10 -0
- data/lib/sword2ruby/sword_statement_oai_ore.rb +38 -0
- data/lib/sword2ruby/user.rb +25 -0
- data/lib/sword2ruby/utility.rb +232 -0
- data/lib/sword2ruby/version.rb +4 -0
- data/lib/sword2ruby.rb +32 -0
- data/spec/auto_discover_spec.rb +30 -0
- data/spec/collection_spec.rb +33 -0
- data/spec/connection_spec.rb +21 -0
- data/spec/end_to_end_spec.rb +235 -0
- data/spec/fixtures/example.txt +3 -0
- data/spec/fixtures/snowflake.png +0 -0
- data/spec/fixtures/zip-test.zip +0 -0
- data/spec/service_spec.rb +38 -0
- data/spec/statement_spec.rb +53 -0
- data/spec/test_constants.rb +32 -0
- data/sword2ruby.gemspec +42 -0
- data/sword2ruby.tmproj +27 -0
- metadata +197 -0
data/doc/Atom/Entry.html
ADDED
@@ -0,0 +1,1795 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
|
6
|
+
|
7
|
+
<title>class Atom::Entry - RDoc Documentation</title>
|
8
|
+
|
9
|
+
<link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet">
|
10
|
+
|
11
|
+
<script type="text/javascript">
|
12
|
+
var rdoc_rel_prefix = "../";
|
13
|
+
</script>
|
14
|
+
|
15
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
16
|
+
<script type="text/javascript" charset="utf-8" src="../js/navigation.js"></script>
|
17
|
+
<script type="text/javascript" charset="utf-8" src="../js/search_index.js"></script>
|
18
|
+
<script type="text/javascript" charset="utf-8" src="../js/search.js"></script>
|
19
|
+
<script type="text/javascript" charset="utf-8" src="../js/searcher.js"></script>
|
20
|
+
<script type="text/javascript" charset="utf-8" src="../js/darkfish.js"></script>
|
21
|
+
|
22
|
+
|
23
|
+
<body id="top" class="class">
|
24
|
+
<nav id="metadata">
|
25
|
+
<nav id="home-section" class="section">
|
26
|
+
<h3 class="section-header">
|
27
|
+
<a href="../index.html">Home</a>
|
28
|
+
<a href="../table_of_contents.html#classes">Classes</a>
|
29
|
+
<a href="../table_of_contents.html#methods">Methods</a>
|
30
|
+
</h3>
|
31
|
+
</nav>
|
32
|
+
|
33
|
+
|
34
|
+
<nav id="search-section" class="section project-section" class="initially-hidden">
|
35
|
+
<form action="#" method="get" accept-charset="utf-8">
|
36
|
+
<h3 class="section-header">
|
37
|
+
<input type="text" name="search" placeholder="Search" id="search-field"
|
38
|
+
title="Type to search, Up and Down to navigate, Enter to load">
|
39
|
+
</h3>
|
40
|
+
</form>
|
41
|
+
|
42
|
+
<ul id="search-results" class="initially-hidden"></ul>
|
43
|
+
</nav>
|
44
|
+
|
45
|
+
|
46
|
+
<div id="file-metadata">
|
47
|
+
<nav id="file-list-section" class="section">
|
48
|
+
<h3 class="section-header">Defined In</h3>
|
49
|
+
<ul>
|
50
|
+
<li>lib/sword2ruby/entry.rb
|
51
|
+
</ul>
|
52
|
+
</nav>
|
53
|
+
|
54
|
+
|
55
|
+
</div>
|
56
|
+
|
57
|
+
<div id="class-metadata">
|
58
|
+
|
59
|
+
<nav id="parent-class-section" class="section">
|
60
|
+
<h3 class="section-header">Parent</h3>
|
61
|
+
|
62
|
+
<p class="link"><a href="Element.html">Atom::Element</a>
|
63
|
+
|
64
|
+
</nav>
|
65
|
+
|
66
|
+
|
67
|
+
<!-- Method Quickref -->
|
68
|
+
<nav id="method-list-section" class="section">
|
69
|
+
<h3 class="section-header">Methods</h3>
|
70
|
+
|
71
|
+
<ul class="link-list">
|
72
|
+
|
73
|
+
<li><a href="#method-i-add_dublin_core_extension-21">#add_dublin_core_extension!</a>
|
74
|
+
|
75
|
+
<li><a href="#method-i-alternate_uri">#alternate_uri</a>
|
76
|
+
|
77
|
+
<li><a href="#method-i-delete-21">#delete!</a>
|
78
|
+
|
79
|
+
<li><a href="#method-i-delete_dublin_core_extension-21">#delete_dublin_core_extension!</a>
|
80
|
+
|
81
|
+
<li><a href="#method-i-delete_media-21">#delete_media!</a>
|
82
|
+
|
83
|
+
<li><a href="#method-i-dublin_core_extensions">#dublin_core_extensions</a>
|
84
|
+
|
85
|
+
<li><a href="#method-i-edit_media_links">#edit_media_links</a>
|
86
|
+
|
87
|
+
<li><a href="#method-i-entry_edit_uri">#entry_edit_uri</a>
|
88
|
+
|
89
|
+
<li><a href="#method-i-media_entry_uri">#media_entry_uri</a>
|
90
|
+
|
91
|
+
<li><a href="#method-i-media_resource_links">#media_resource_links</a>
|
92
|
+
|
93
|
+
<li><a href="#method-i-post-21">#post!</a>
|
94
|
+
|
95
|
+
<li><a href="#method-i-post_media-21">#post_media!</a>
|
96
|
+
|
97
|
+
<li><a href="#method-i-post_multipart-21">#post_multipart!</a>
|
98
|
+
|
99
|
+
<li><a href="#method-i-put-21">#put!</a>
|
100
|
+
|
101
|
+
<li><a href="#method-i-put_media-21">#put_media!</a>
|
102
|
+
|
103
|
+
<li><a href="#method-i-put_multipart-21">#put_multipart!</a>
|
104
|
+
|
105
|
+
<li><a href="#method-i-sword_deposited_by">#sword_deposited_by</a>
|
106
|
+
|
107
|
+
<li><a href="#method-i-sword_deposited_on">#sword_deposited_on</a>
|
108
|
+
|
109
|
+
<li><a href="#method-i-sword_deposited_on_behalf_of">#sword_deposited_on_behalf_of</a>
|
110
|
+
|
111
|
+
<li><a href="#method-i-sword_derived_resource_links">#sword_derived_resource_links</a>
|
112
|
+
|
113
|
+
<li><a href="#method-i-sword_edit_uri">#sword_edit_uri</a>
|
114
|
+
|
115
|
+
<li><a href="#method-i-sword_original_deposit_category">#sword_original_deposit_category</a>
|
116
|
+
|
117
|
+
<li><a href="#method-i-sword_original_deposit_uri">#sword_original_deposit_uri</a>
|
118
|
+
|
119
|
+
<li><a href="#method-i-sword_packagings">#sword_packagings</a>
|
120
|
+
|
121
|
+
<li><a href="#method-i-sword_statement_links">#sword_statement_links</a>
|
122
|
+
|
123
|
+
<li><a href="#method-i-sword_treatment">#sword_treatment</a>
|
124
|
+
|
125
|
+
<li><a href="#method-i-sword_verbose_description">#sword_verbose_description</a>
|
126
|
+
|
127
|
+
</ul>
|
128
|
+
</nav>
|
129
|
+
|
130
|
+
</div>
|
131
|
+
|
132
|
+
<div id="project-metadata">
|
133
|
+
<nav id="fileindex-section" class="section project-section">
|
134
|
+
<h3 class="section-header">Pages</h3>
|
135
|
+
|
136
|
+
<ul>
|
137
|
+
|
138
|
+
<li class="file"><a href="../Gemfile.html">Gemfile</a>
|
139
|
+
|
140
|
+
<li class="file"><a href="../Rakefile.html">Rakefile</a>
|
141
|
+
|
142
|
+
<li class="file"><a href="../spec/fixtures/example_txt.html">example</a>
|
143
|
+
|
144
|
+
</ul>
|
145
|
+
</nav>
|
146
|
+
|
147
|
+
<nav id="classindex-section" class="section project-section">
|
148
|
+
<h3 class="section-header">Class and Module Index</h3>
|
149
|
+
|
150
|
+
<ul class="link-list">
|
151
|
+
|
152
|
+
<li><a href="../Sword2Ruby.html">Sword2Ruby</a>
|
153
|
+
|
154
|
+
<li><a href="../Sword2Ruby/Atom.html">Sword2Ruby::Atom</a>
|
155
|
+
|
156
|
+
<li><a href="../Sword2Ruby/AutoDiscover.html">Sword2Ruby::AutoDiscover</a>
|
157
|
+
|
158
|
+
<li><a href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a>
|
159
|
+
|
160
|
+
<li><a href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
161
|
+
|
162
|
+
<li><a href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a>
|
163
|
+
|
164
|
+
<li><a href="../Sword2Ruby/SwordAccept.html">Sword2Ruby::SwordAccept</a>
|
165
|
+
|
166
|
+
<li><a href="../Sword2Ruby/SwordStatementOAIORE.html">Sword2Ruby::SwordStatementOAIORE</a>
|
167
|
+
|
168
|
+
<li><a href="../Sword2Ruby/User.html">Sword2Ruby::User</a>
|
169
|
+
|
170
|
+
<li><a href="../Sword2Ruby/Utility.html">Sword2Ruby::Utility</a>
|
171
|
+
|
172
|
+
<li><a href="../Atom.html">Atom</a>
|
173
|
+
|
174
|
+
<li><a href="../Atom/Collection.html">Atom::Collection</a>
|
175
|
+
|
176
|
+
<li><a href="../Atom/Element.html">Atom::Element</a>
|
177
|
+
|
178
|
+
<li><a href="../Atom/Entry.html">Atom::Entry</a>
|
179
|
+
|
180
|
+
<li><a href="../Atom/Feed.html">Atom::Feed</a>
|
181
|
+
|
182
|
+
<li><a href="../Atom/Service.html">Atom::Service</a>
|
183
|
+
|
184
|
+
<li><a href="../REXML.html">REXML</a>
|
185
|
+
|
186
|
+
<li><a href="../REXML/Element.html">REXML::Element</a>
|
187
|
+
|
188
|
+
<li><a href="../Object.html">Object</a>
|
189
|
+
|
190
|
+
</ul>
|
191
|
+
</nav>
|
192
|
+
|
193
|
+
</div>
|
194
|
+
</nav>
|
195
|
+
|
196
|
+
<div id="documentation">
|
197
|
+
<h1 class="class">class Atom::Entry</h1>
|
198
|
+
|
199
|
+
<div id="description" class="description">
|
200
|
+
|
201
|
+
<p>Extensions to the <a
|
202
|
+
href="https://github.com/bct/atom-tools/wiki">atom-tools</a> <a
|
203
|
+
href="Entry.html">Atom::Entry</a> class to support Sword2 operations. These
|
204
|
+
methods are additive to those supplied by the atom-tools gem.</p>
|
205
|
+
|
206
|
+
<p>Please see the <a
|
207
|
+
href="http://rdoc.info/github/bct/atom-tools/master/frames">atom-tools
|
208
|
+
documentation</a> for a complete list of attributes and methods.</p>
|
209
|
+
|
210
|
+
</div><!-- description -->
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
<section id="5Buntitled-5D" class="documentation-section">
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
|
224
|
+
<!-- Methods -->
|
225
|
+
|
226
|
+
<section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
|
227
|
+
<h3 class="section-header">Public Instance Methods</h3>
|
228
|
+
|
229
|
+
|
230
|
+
<div id="method-i-add_dublin_core_extension-21" class="method-detail ">
|
231
|
+
|
232
|
+
<div class="method-heading">
|
233
|
+
<span class="method-name">add_dublin_core_extension!</span><span
|
234
|
+
class="method-args">(name, value)</span>
|
235
|
+
<span class="method-click-advice">click to toggle source</span>
|
236
|
+
</div>
|
237
|
+
|
238
|
+
|
239
|
+
<div class="method-description">
|
240
|
+
|
241
|
+
<p>This method adds a new Dublin Core element to the entry,</p>
|
242
|
+
|
243
|
+
<h3 id="method-i-add_dublin_core_extension-21-label-Parameters">Parameters</h3>
|
244
|
+
<dl class="rdoc-list note-list"><dt>name
|
245
|
+
<dd>
|
246
|
+
<p>a valid Dublin Core Term Name, e.g. “abstract”, “title” or “publisher” etc</p>
|
247
|
+
</dd><dt>value
|
248
|
+
<dd>
|
249
|
+
<p>the string value of the new Dublin Core element, e.g. “A report on
|
250
|
+
Burritos”, “History of Burritos” or “Burrito King” etc</p>
|
251
|
+
</dd></dl>
|
252
|
+
|
253
|
+
<p>For more information, see the <a
|
254
|
+
href="http://dublincore.org/documents/dcmi-terms/">Dublin Core Metadata
|
255
|
+
Terms specification</a>.</p>
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
<div class="method-source-code" id="add_dublin_core_extension-21-source">
|
260
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 88</span>
|
261
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">add_dublin_core_extension!</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
|
262
|
+
<span class="ruby-identifier">extension</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Element</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>)
|
263
|
+
<span class="ruby-identifier">extension</span>.<span class="ruby-identifier">add_namespace</span>(<span class="ruby-string">"http://purl.org/dc/terms/"</span>)
|
264
|
+
<span class="ruby-identifier">extension</span>.<span class="ruby-identifier">text</span> = <span class="ruby-identifier">value</span>
|
265
|
+
<span class="ruby-identifier">extensions</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">extension</span>
|
266
|
+
<span class="ruby-keyword">end</span></pre>
|
267
|
+
</div><!-- add_dublin_core_extension-21-source -->
|
268
|
+
|
269
|
+
</div>
|
270
|
+
|
271
|
+
|
272
|
+
|
273
|
+
|
274
|
+
</div><!-- add_dublin_core_extension-21-method -->
|
275
|
+
|
276
|
+
|
277
|
+
<div id="method-i-alternate_uri" class="method-detail ">
|
278
|
+
|
279
|
+
<div class="method-heading">
|
280
|
+
<span class="method-name">alternate_uri</span><span
|
281
|
+
class="method-args">()</span>
|
282
|
+
<span class="method-click-advice">click to toggle source</span>
|
283
|
+
</div>
|
284
|
+
|
285
|
+
|
286
|
+
<div class="method-description">
|
287
|
+
|
288
|
+
<p>This method returns the URI string of the <link rel=“alternate”> tag
|
289
|
+
(usually contained in the DepositReceipt <a href="Entry.html">Entry</a>),
|
290
|
+
or nil if it is not defined.</p>
|
291
|
+
|
292
|
+
|
293
|
+
|
294
|
+
<div class="method-source-code" id="alternate_uri-source">
|
295
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 14</span>
|
296
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">alternate_uri</span>
|
297
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_link_uri</span>(<span class="ruby-identifier">links</span>, <span class="ruby-string">"alternate"</span>)
|
298
|
+
<span class="ruby-keyword">end</span></pre>
|
299
|
+
</div><!-- alternate_uri-source -->
|
300
|
+
|
301
|
+
</div>
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
|
306
|
+
</div><!-- alternate_uri-method -->
|
307
|
+
|
308
|
+
|
309
|
+
<div id="method-i-delete-21" class="method-detail ">
|
310
|
+
|
311
|
+
<div class="method-heading">
|
312
|
+
<span class="method-name">delete!</span><span
|
313
|
+
class="method-args">(params = {})</span>
|
314
|
+
<span class="method-click-advice">click to toggle source</span>
|
315
|
+
</div>
|
316
|
+
|
317
|
+
|
318
|
+
<div class="method-description">
|
319
|
+
|
320
|
+
<p>This method removes the container by performing a Delete on the entry-edit
|
321
|
+
URI. The method will return a <a
|
322
|
+
href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
323
|
+
object, or raise a <a
|
324
|
+
href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a> in the case
|
325
|
+
of an error.</p>
|
326
|
+
|
327
|
+
<h3 id="method-i-delete-21-label-Parameters+%28passed+as+a+hash+collection%29">Parameters (passed as a hash collection)</h3>
|
328
|
+
<dl class="rdoc-list note-list"><dt>:<a href="Entry.html#method-i-entry_edit_uri">#entry_edit_uri</a>
|
329
|
+
<dd>
|
330
|
+
<p>(optional) an override to the existing entry’s entry-edit URI. If not
|
331
|
+
supplied, this will default to the existing entry’s entry-edit URI.</p>
|
332
|
+
</dd><dt>:on_behalf_of
|
333
|
+
<dd>
|
334
|
+
<p>(optional) username on whos behalf the operation is being performed.</p>
|
335
|
+
</dd><dt>:connection
|
336
|
+
<dd>
|
337
|
+
<p>(optional) <a
|
338
|
+
href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a> object used
|
339
|
+
to perform the operation. If not supplied, the existing entry’s connection
|
340
|
+
will be used.</p>
|
341
|
+
</dd></dl>
|
342
|
+
|
343
|
+
<p>Note that you should call <strong><collection>.feed.updated!</strong>
|
344
|
+
followed by <strong><collection>.feed.update!</strong> after making
|
345
|
+
updates to a collection.</p>
|
346
|
+
|
347
|
+
<p>For more information, see the Sword2 specification: <a
|
348
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_deleteconteiner">section
|
349
|
+
6.8. “Deleting the Container”</a>.</p>
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
<div class="method-source-code" id="delete-21-source">
|
354
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 537</span>
|
355
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">delete!</span>(<span class="ruby-identifier">params</span> = {})
|
356
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">'params'</span>, <span class="ruby-identifier">params</span>, <span class="ruby-constant">Hash</span>)
|
357
|
+
<span class="ruby-identifier">defaults</span> = {
|
358
|
+
<span class="ruby-value">:entry_edit_uri</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">entry_edit_uri</span>,
|
359
|
+
<span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
360
|
+
<span class="ruby-value">:connection</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@http</span>
|
361
|
+
}
|
362
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">params</span>)
|
363
|
+
|
364
|
+
<span class="ruby-comment">#Validate parameters</span>
|
365
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':entry_edit_uri'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:entry_edit_uri</span>], <span class="ruby-constant">String</span>)
|
366
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':on_behalf_of'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
367
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':connection'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>], <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Connection</span>)
|
368
|
+
|
369
|
+
<span class="ruby-identifier">headers</span> = {}
|
370
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"On-Behalf-Of"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
371
|
+
|
372
|
+
<span class="ruby-identifier">response</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>].<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:entry_edit_uri</span>], <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">headers</span>)
|
373
|
+
|
374
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPSuccess</span>
|
375
|
+
<span class="ruby-keyword">return</span> <span class="ruby-constant">DepositReceipt</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">response</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>])
|
376
|
+
<span class="ruby-keyword">else</span>
|
377
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Failed to do delete!(#{options[:entry_edit_uri]}): server returned #{response.code} #{response.message}"</span>)
|
378
|
+
<span class="ruby-keyword">end</span>
|
379
|
+
<span class="ruby-keyword">end</span></pre>
|
380
|
+
</div><!-- delete-21-source -->
|
381
|
+
|
382
|
+
</div>
|
383
|
+
|
384
|
+
|
385
|
+
|
386
|
+
|
387
|
+
</div><!-- delete-21-method -->
|
388
|
+
|
389
|
+
|
390
|
+
<div id="method-i-delete_dublin_core_extension-21" class="method-detail ">
|
391
|
+
|
392
|
+
<div class="method-heading">
|
393
|
+
<span class="method-name">delete_dublin_core_extension!</span><span
|
394
|
+
class="method-args">(name)</span>
|
395
|
+
<span class="method-click-advice">click to toggle source</span>
|
396
|
+
</div>
|
397
|
+
|
398
|
+
|
399
|
+
<div class="method-description">
|
400
|
+
|
401
|
+
<p>This method searches for the specified Dublin Core term in the entry and
|
402
|
+
removes it where found.</p>
|
403
|
+
|
404
|
+
<h3 id="method-i-delete_dublin_core_extension-21-label-Parameters">Parameters</h3>
|
405
|
+
<dl class="rdoc-list note-list"><dt>name
|
406
|
+
<dd>
|
407
|
+
<p>a valid Dublin Core Term Name, e.g. “isReferencedBy”, “title” or
|
408
|
+
“accrualPolicy” etc</p>
|
409
|
+
</dd></dl>
|
410
|
+
|
411
|
+
<p>For more information, see the <a
|
412
|
+
href="http://dublincore.org/documents/dcmi-terms/">Dublin Core Metadata
|
413
|
+
Terms specification</a>.</p>
|
414
|
+
|
415
|
+
|
416
|
+
|
417
|
+
<div class="method-source-code" id="delete_dublin_core_extension-21-source">
|
418
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 100</span>
|
419
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">delete_dublin_core_extension!</span>(<span class="ruby-identifier">name</span>)
|
420
|
+
<span class="ruby-identifier">extensions</span>.<span class="ruby-identifier">delete_if</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">namespace</span> <span class="ruby-operator">==</span> <span class="ruby-string">"http://purl.org/dc/terms/"</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">name</span>}
|
421
|
+
<span class="ruby-keyword">end</span></pre>
|
422
|
+
</div><!-- delete_dublin_core_extension-21-source -->
|
423
|
+
|
424
|
+
</div>
|
425
|
+
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
</div><!-- delete_dublin_core_extension-21-method -->
|
430
|
+
|
431
|
+
|
432
|
+
<div id="method-i-delete_media-21" class="method-detail ">
|
433
|
+
|
434
|
+
<div class="method-heading">
|
435
|
+
<span class="method-name">delete_media!</span><span
|
436
|
+
class="method-args">(params = {})</span>
|
437
|
+
<span class="method-click-advice">click to toggle source</span>
|
438
|
+
</div>
|
439
|
+
|
440
|
+
|
441
|
+
<div class="method-description">
|
442
|
+
|
443
|
+
<p>This method removes all the content of a resource (without removing the
|
444
|
+
resource itself) by performing a Delete on the edit-media URI. The method
|
445
|
+
will return a <a
|
446
|
+
href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
447
|
+
object, or raise a <a
|
448
|
+
href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a> in the case
|
449
|
+
of an error.</p>
|
450
|
+
|
451
|
+
<h3 id="method-i-delete_media-21-label-Parameters+%28passed+as+a+hash+collection%29">Parameters (passed as a hash collection)</h3>
|
452
|
+
<dl class="rdoc-list note-list"><dt>:edit_media_uri
|
453
|
+
<dd>
|
454
|
+
<p>(optional) an override to the existing entry’s edit-media URI. If not
|
455
|
+
supplied, this will default to the existing entry’s first edit-media URI.</p>
|
456
|
+
</dd><dt>:on_behalf_of
|
457
|
+
<dd>
|
458
|
+
<p>(optional) username on whos behalf the submission is being performed.</p>
|
459
|
+
</dd><dt>:connection
|
460
|
+
<dd>
|
461
|
+
<p>(optional) <a
|
462
|
+
href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a> object used
|
463
|
+
to perform the operation. If not supplied, the existing entry’s connection
|
464
|
+
will be used.</p>
|
465
|
+
</dd></dl>
|
466
|
+
|
467
|
+
<p>Note that you should call <strong><collection>.feed.updated!</strong>
|
468
|
+
followed by <strong><collection>.feed.update!</strong> after making
|
469
|
+
updates to a collection.</p>
|
470
|
+
|
471
|
+
<p>For more information, see the Sword2 specification: <a
|
472
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_deletingcontent">section
|
473
|
+
6.6. “Deleting the content of a Resource”</a>.</p>
|
474
|
+
|
475
|
+
|
476
|
+
|
477
|
+
<div class="method-source-code" id="delete_media-21-source">
|
478
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 574</span>
|
479
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">delete_media!</span>(<span class="ruby-identifier">params</span> = {})
|
480
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">'params'</span>, <span class="ruby-identifier">params</span>, <span class="ruby-constant">Hash</span>)
|
481
|
+
<span class="ruby-identifier">defaults</span> = {
|
482
|
+
<span class="ruby-value">:edit_media_uri</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">edit_media_links</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">href</span>,
|
483
|
+
<span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
484
|
+
<span class="ruby-value">:connection</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@http</span>
|
485
|
+
}
|
486
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">params</span>)
|
487
|
+
|
488
|
+
<span class="ruby-comment">#Validate parameters</span>
|
489
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':edit_media_uri'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:edit_media_uri</span>], <span class="ruby-constant">String</span>)
|
490
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':on_behalf_of'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
491
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':connection'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>], <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Connection</span>)
|
492
|
+
|
493
|
+
<span class="ruby-identifier">headers</span> = {}
|
494
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"On-Behalf-Of"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
495
|
+
|
496
|
+
<span class="ruby-identifier">response</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>].<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:edit_media_uri</span>], <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">headers</span>)
|
497
|
+
|
498
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPSuccess</span>
|
499
|
+
<span class="ruby-keyword">return</span> <span class="ruby-constant">DepositReceipt</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">response</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>])
|
500
|
+
<span class="ruby-keyword">else</span>
|
501
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Failed to do delete_media!(#{options[:edit_media_uri]}): server returned #{response.code} #{response.message}"</span>)
|
502
|
+
<span class="ruby-keyword">end</span>
|
503
|
+
<span class="ruby-keyword">end</span></pre>
|
504
|
+
</div><!-- delete_media-21-source -->
|
505
|
+
|
506
|
+
</div>
|
507
|
+
|
508
|
+
|
509
|
+
|
510
|
+
|
511
|
+
</div><!-- delete_media-21-method -->
|
512
|
+
|
513
|
+
|
514
|
+
<div id="method-i-dublin_core_extensions" class="method-detail ">
|
515
|
+
|
516
|
+
<div class="method-heading">
|
517
|
+
<span class="method-name">dublin_core_extensions</span><span
|
518
|
+
class="method-args">()</span>
|
519
|
+
<span class="method-click-advice">click to toggle source</span>
|
520
|
+
</div>
|
521
|
+
|
522
|
+
|
523
|
+
<div class="method-description">
|
524
|
+
|
525
|
+
<p>This method returns an array of the Dublin Core elements (usually contained
|
526
|
+
in the DepositReceipt <a href="Entry.html">Entry</a>), or an empty array [
|
527
|
+
] if none are defined.</p>
|
528
|
+
|
529
|
+
<p>For more information, see the <a
|
530
|
+
href="http://dublincore.org/documents/dcmi-terms/">Dublin Core Metadata
|
531
|
+
Terms specification</a>.</p>
|
532
|
+
|
533
|
+
|
534
|
+
|
535
|
+
<div class="method-source-code" id="dublin_core_extensions-source">
|
536
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 78</span>
|
537
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">dublin_core_extensions</span>
|
538
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_elements_by_namespace</span>(<span class="ruby-identifier">extensions</span>, <span class="ruby-string">"http://purl.org/dc/terms/"</span>)
|
539
|
+
<span class="ruby-keyword">end</span></pre>
|
540
|
+
</div><!-- dublin_core_extensions-source -->
|
541
|
+
|
542
|
+
</div>
|
543
|
+
|
544
|
+
|
545
|
+
|
546
|
+
|
547
|
+
</div><!-- dublin_core_extensions-method -->
|
548
|
+
|
549
|
+
|
550
|
+
<div id="method-i-edit_media_links" class="method-detail ">
|
551
|
+
|
552
|
+
<div class="method-heading">
|
553
|
+
<span class="method-name">edit_media_links</span><span
|
554
|
+
class="method-args">()</span>
|
555
|
+
<span class="method-click-advice">click to toggle source</span>
|
556
|
+
</div>
|
557
|
+
|
558
|
+
|
559
|
+
<div class="method-description">
|
560
|
+
|
561
|
+
<p>This method returns an array of Atom::Links for the <strong>Atom Edit
|
562
|
+
Media</strong> <link rel=“edit-media”> tags (usually contained in the
|
563
|
+
DepositReceipt <a href="Entry.html">Entry</a>), or an empty array [ ] if
|
564
|
+
none are defined. They are also known as the Media Resource URIs or
|
565
|
+
EM-URIs.</p>
|
566
|
+
|
567
|
+
|
568
|
+
|
569
|
+
<div class="method-source-code" id="edit_media_links-source">
|
570
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 27</span>
|
571
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">edit_media_links</span> <span class="ruby-comment">#media_resource_links</span>
|
572
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_links_all_types</span>(<span class="ruby-identifier">links</span>, <span class="ruby-string">"edit-media"</span>)
|
573
|
+
<span class="ruby-keyword">end</span></pre>
|
574
|
+
</div><!-- edit_media_links-source -->
|
575
|
+
|
576
|
+
</div>
|
577
|
+
|
578
|
+
|
579
|
+
<div class="aliases">
|
580
|
+
Also aliased as: <a href="Entry.html#method-i-media_resource_links">media_resource_links</a>
|
581
|
+
</div>
|
582
|
+
|
583
|
+
|
584
|
+
|
585
|
+
</div><!-- edit_media_links-method -->
|
586
|
+
|
587
|
+
|
588
|
+
<div id="method-i-entry_edit_uri" class="method-detail ">
|
589
|
+
|
590
|
+
<div class="method-heading">
|
591
|
+
<span class="method-name">entry_edit_uri</span><span
|
592
|
+
class="method-args">()</span>
|
593
|
+
<span class="method-click-advice">click to toggle source</span>
|
594
|
+
</div>
|
595
|
+
|
596
|
+
|
597
|
+
<div class="method-description">
|
598
|
+
|
599
|
+
<p>This method returns the URI string of the <strong>Atom Entry Edit</strong>
|
600
|
+
<link rel=“edit”> tag (usually contained in the DepositReceipt <a
|
601
|
+
href="Entry.html">Entry</a>), or nil if it is not defined. It is also known
|
602
|
+
as the Media Entry URI or Edit-URI.</p>
|
603
|
+
|
604
|
+
|
605
|
+
|
606
|
+
<div class="method-source-code" id="entry_edit_uri-source">
|
607
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 20</span>
|
608
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">entry_edit_uri</span> <span class="ruby-comment">#media_entry_uri</span>
|
609
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_link_uri</span>(<span class="ruby-identifier">links</span>, <span class="ruby-string">"edit"</span>)
|
610
|
+
<span class="ruby-keyword">end</span></pre>
|
611
|
+
</div><!-- entry_edit_uri-source -->
|
612
|
+
|
613
|
+
</div>
|
614
|
+
|
615
|
+
|
616
|
+
<div class="aliases">
|
617
|
+
Also aliased as: <a href="Entry.html#method-i-media_entry_uri">media_entry_uri</a>
|
618
|
+
</div>
|
619
|
+
|
620
|
+
|
621
|
+
|
622
|
+
</div><!-- entry_edit_uri-method -->
|
623
|
+
|
624
|
+
|
625
|
+
<div id="method-i-media_entry_uri" class="method-detail method-alias">
|
626
|
+
|
627
|
+
<div class="method-heading">
|
628
|
+
<span class="method-name">media_entry_uri</span><span
|
629
|
+
class="method-args">()</span>
|
630
|
+
<span class="method-click-advice">click to toggle source</span>
|
631
|
+
</div>
|
632
|
+
|
633
|
+
|
634
|
+
<div class="method-description">
|
635
|
+
|
636
|
+
|
637
|
+
|
638
|
+
|
639
|
+
|
640
|
+
</div>
|
641
|
+
|
642
|
+
|
643
|
+
|
644
|
+
|
645
|
+
<div class="aliases">
|
646
|
+
Alias for: <a href="Entry.html#method-i-entry_edit_uri">entry_edit_uri</a>
|
647
|
+
</div>
|
648
|
+
|
649
|
+
</div><!-- media_entry_uri-method -->
|
650
|
+
|
651
|
+
|
652
|
+
<div id="method-i-media_resource_links" class="method-detail method-alias">
|
653
|
+
|
654
|
+
<div class="method-heading">
|
655
|
+
<span class="method-name">media_resource_links</span><span
|
656
|
+
class="method-args">()</span>
|
657
|
+
<span class="method-click-advice">click to toggle source</span>
|
658
|
+
</div>
|
659
|
+
|
660
|
+
|
661
|
+
<div class="method-description">
|
662
|
+
|
663
|
+
|
664
|
+
|
665
|
+
|
666
|
+
|
667
|
+
</div>
|
668
|
+
|
669
|
+
|
670
|
+
|
671
|
+
|
672
|
+
<div class="aliases">
|
673
|
+
Alias for: <a href="Entry.html#method-i-edit_media_links">edit_media_links</a>
|
674
|
+
</div>
|
675
|
+
|
676
|
+
</div><!-- media_resource_links-method -->
|
677
|
+
|
678
|
+
|
679
|
+
<div id="method-i-post-21" class="method-detail ">
|
680
|
+
|
681
|
+
<div class="method-heading">
|
682
|
+
<span class="method-name">post!</span><span
|
683
|
+
class="method-args">(params = {})</span>
|
684
|
+
<span class="method-click-advice">click to toggle source</span>
|
685
|
+
</div>
|
686
|
+
|
687
|
+
|
688
|
+
<div class="method-description">
|
689
|
+
|
690
|
+
<p>This method posts a new entry to an existing entry’s sword-edit URI, adding
|
691
|
+
to the existing entry’s metadata (i.e. not overwriting existing metadata).
|
692
|
+
It <em>does not</em> create a new entry in the collection. The method will
|
693
|
+
return a <a
|
694
|
+
href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
695
|
+
object, or raise a <a
|
696
|
+
href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a> in the case
|
697
|
+
of an error.</p>
|
698
|
+
|
699
|
+
<h3 id="method-i-post-21-label-Parameters+%28passed+as+a+hash+collection%29">Parameters (passed as a hash collection)</h3>
|
700
|
+
<dl class="rdoc-list note-list"><dt>:entry
|
701
|
+
<dd>
|
702
|
+
<p>(optional) a new <a href="Entry.html">Atom::Entry</a> with metadata to be
|
703
|
+
added to an existing <a href="Entry.html">Atom::Entry</a>. If not supplied,
|
704
|
+
this will default to itself.</p>
|
705
|
+
</dd><dt>:sword_edit_uri
|
706
|
+
<dd>
|
707
|
+
<p>(optional) an override to the existing entry’s sword-edit URI. If not
|
708
|
+
supplied, this will default to the existing entry’s sword-edit URI.</p>
|
709
|
+
</dd><dt>:in_progress
|
710
|
+
<dd>
|
711
|
+
<p>(optional) boolean value indicating whether the existing entry will be
|
712
|
+
completed at a later date.</p>
|
713
|
+
</dd><dt>:on_behalf_of
|
714
|
+
<dd>
|
715
|
+
<p>(optional) username on whos behalf the submission is being performed.</p>
|
716
|
+
</dd><dt>:connection
|
717
|
+
<dd>
|
718
|
+
<p>(optional) <a
|
719
|
+
href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a> object used
|
720
|
+
to perform the operation. If not supplied, the existing entry’s connection
|
721
|
+
will be used.</p>
|
722
|
+
</dd></dl>
|
723
|
+
|
724
|
+
<p>Note that you should call <strong><collection>.feed.updated!</strong>
|
725
|
+
followed by <strong><collection>.feed.update!</strong> after making
|
726
|
+
updates to a collection.</p>
|
727
|
+
|
728
|
+
<h3 id="method-i-post-21-label-Example+BROKEN">Example BROKEN</h3>
|
729
|
+
|
730
|
+
<pre class="ruby"><span class="ruby-comment"># feed = collection.feed # assuming that you have retrieved a collection from the service document</span>
|
731
|
+
<span class="ruby-comment"># feed.update! # get all the entry data</span>
|
732
|
+
<span class="ruby-comment"># existing_entry = feed.entries.first</span>
|
733
|
+
<span class="ruby-identifier">additional_entry</span> = <span class="ruby-constant">Atom</span><span class="ruby-operator">::</span><span class="ruby-constant">Entry</span>.<span class="ruby-identifier">new</span>()
|
734
|
+
<span class="ruby-identifier">additional_entry</span>.<span class="ruby-identifier">title</span> = <span class="ruby-string">"The Improved Burrito"</span>
|
735
|
+
<span class="ruby-identifier">additional_entry</span>.<span class="ruby-identifier">summary</span> = <span class="ruby-string">"Adding some extra metadata to the existing entry"</span>
|
736
|
+
<span class="ruby-identifier">additional_entry</span>.<span class="ruby-identifier">add_dublin_core_extension!</span>(<span class="ruby-string">"publisher"</span>, <span class="ruby-string">"Burrito King"</span>)
|
737
|
+
<span class="ruby-identifier">deposit_receipt</span> = <span class="ruby-identifier">existing_entry</span>.<span class="ruby-identifier">post!</span>(:<span class="ruby-identifier">entry</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">additional_entry</span>, :<span class="ruby-identifier">in_progress</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">true</span>)
|
738
|
+
<span class="ruby-identifier">feed</span>.<span class="ruby-identifier">updated!</span> <span class="ruby-comment">#flag that the feed has been updated</span>
|
739
|
+
<span class="ruby-identifier">feed</span>.<span class="ruby-identifier">update!</span> <span class="ruby-comment">#get the updates</span>
|
740
|
+
</pre>
|
741
|
+
|
742
|
+
<p>For more information, see the Sword2 specification: <a
|
743
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_addingcontent_metadata">section
|
744
|
+
6.7.2. “Adding New Metadata to a Container”</a>.</p>
|
745
|
+
|
746
|
+
|
747
|
+
|
748
|
+
<div class="method-source-code" id="post-21-source">
|
749
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 159</span>
|
750
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">post!</span>(<span class="ruby-identifier">params</span> = {})
|
751
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">'params'</span>, <span class="ruby-identifier">params</span>, <span class="ruby-constant">Hash</span>)
|
752
|
+
<span class="ruby-identifier">defaults</span> = {
|
753
|
+
<span class="ruby-value">:entry</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">self</span>,
|
754
|
+
<span class="ruby-value">:sword_edit_uri</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">sword_edit_uri</span>,
|
755
|
+
<span class="ruby-value">:in_progress</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
756
|
+
<span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
757
|
+
<span class="ruby-value">:connection</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@http</span>
|
758
|
+
}
|
759
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">params</span>)
|
760
|
+
|
761
|
+
<span class="ruby-comment">#Validate parameters</span>
|
762
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':entry'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:entry</span>], <span class="ruby-operator">::</span><span class="ruby-constant">Atom</span><span class="ruby-operator">::</span><span class="ruby-constant">Entry</span>)
|
763
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':sword_edit_uri'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:sword_edit_uri</span>], <span class="ruby-constant">String</span>)
|
764
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':on_behalf_of'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
765
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':connection'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>], <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Connection</span>)
|
766
|
+
|
767
|
+
<span class="ruby-identifier">headers</span> = {<span class="ruby-string">"Content-Type"</span> =<span class="ruby-operator">></span> <span class="ruby-string">"application/atom+xml;type=entry"</span> }
|
768
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"In-Progress"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:in_progress</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-keyword">if</span> (<span class="ruby-identifier">options</span>[<span class="ruby-value">:in_progress</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:in_progress</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>)
|
769
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"On-Behalf-Of"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
770
|
+
<span class="ruby-identifier">response</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>].<span class="ruby-identifier">post</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:sword_edit_uri</span>], <span class="ruby-identifier">options</span>[<span class="ruby-value">:entry</span>].<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">headers</span>)
|
771
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPSuccess</span>
|
772
|
+
<span class="ruby-keyword">return</span> <span class="ruby-constant">DepositReceipt</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">response</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>])
|
773
|
+
<span class="ruby-keyword">else</span>
|
774
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Failed to do post!(#{options[:sword_edit_uri]}): server returned code #{response.code} #{response.message}"</span>)
|
775
|
+
<span class="ruby-keyword">end</span>
|
776
|
+
<span class="ruby-keyword">end</span></pre>
|
777
|
+
</div><!-- post-21-source -->
|
778
|
+
|
779
|
+
</div>
|
780
|
+
|
781
|
+
|
782
|
+
|
783
|
+
|
784
|
+
</div><!-- post-21-method -->
|
785
|
+
|
786
|
+
|
787
|
+
<div id="method-i-post_media-21" class="method-detail ">
|
788
|
+
|
789
|
+
<div class="method-heading">
|
790
|
+
<span class="method-name">post_media!</span><span
|
791
|
+
class="method-args">(params = {})</span>
|
792
|
+
<span class="method-click-advice">click to toggle source</span>
|
793
|
+
</div>
|
794
|
+
|
795
|
+
|
796
|
+
<div class="method-description">
|
797
|
+
|
798
|
+
<p>This method posts a file to an existing entry’s edit-media URI, adding to
|
799
|
+
the existing entry’s media resources (i.e. not overwriting existing media
|
800
|
+
resources). It <em>does not</em> create a new entry in the collection. An
|
801
|
+
MD5-digest will be calculated automatically from the file and sent to the
|
802
|
+
server with the request. The method will return a <a
|
803
|
+
href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
804
|
+
object, or raise a <a
|
805
|
+
href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a> in the case
|
806
|
+
of an error.</p>
|
807
|
+
|
808
|
+
<h3 id="method-i-post_media-21-label-Parameters+%28passed+as+a+hash+collection%29">Parameters (passed as a hash collection)</h3>
|
809
|
+
<dl class="rdoc-list note-list"><dt>:filepath
|
810
|
+
<dd>
|
811
|
+
<p>a filepath string indicating the file to be posted. The file must be
|
812
|
+
readable by the process.</p>
|
813
|
+
</dd><dt>:content_type
|
814
|
+
<dd>
|
815
|
+
<p>the mime content-type string of the file, e.g. “application/zip” or
|
816
|
+
“text/plain”</p>
|
817
|
+
</dd><dt>:packaging
|
818
|
+
<dd>
|
819
|
+
<p>(optional) the Sword packaging string of the file, e.g. “<a
|
820
|
+
href="http://purl.org/net/sword/package/METSDSpaceSIP">purl.org/net/sword/package/METSDSpaceSIP</a>”</p>
|
821
|
+
</dd><dt>:edit_media_uri
|
822
|
+
<dd>
|
823
|
+
<p>(optional) an override to the existing entry’s edit media URI (media
|
824
|
+
resource URI). If not supplied, this will default to the existing entry’s
|
825
|
+
<strong>first</strong> edit media URI (as there can be multiple edit media
|
826
|
+
URIs).</p>
|
827
|
+
</dd><dt>:on_behalf_of
|
828
|
+
<dd>
|
829
|
+
<p>(optional) username on whos behalf the submission is being performed</p>
|
830
|
+
</dd><dt>:metadata_relevant
|
831
|
+
<dd>
|
832
|
+
<p>(optional) boolean value indicating whether the server should consider the
|
833
|
+
file or package a potential source of metadata.</p>
|
834
|
+
</dd><dt>:connection
|
835
|
+
<dd>
|
836
|
+
<p>(optional) <a
|
837
|
+
href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a> object used
|
838
|
+
to perform the operation. If not supplied, the existing entry’s connection
|
839
|
+
will be used.</p>
|
840
|
+
</dd></dl>
|
841
|
+
|
842
|
+
<p>Note that you should call <strong><collection>.feed.updated!</strong>
|
843
|
+
followed by <strong><collection>.feed.update!</strong> after making
|
844
|
+
updates to a collection.</p>
|
845
|
+
|
846
|
+
<p>For more information, see the Sword2 specification: <a
|
847
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_addingcontent_mediaresource">section
|
848
|
+
6.7.1. “Adding Content to the Media Resource”</a>.</p>
|
849
|
+
|
850
|
+
|
851
|
+
|
852
|
+
<div class="method-source-code" id="post_media-21-source">
|
853
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 202</span>
|
854
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">post_media!</span>(<span class="ruby-identifier">params</span> = {})
|
855
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">'params'</span>, <span class="ruby-identifier">params</span>, <span class="ruby-constant">Hash</span>)
|
856
|
+
<span class="ruby-identifier">defaults</span> = {
|
857
|
+
<span class="ruby-value">:filepath</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
858
|
+
<span class="ruby-value">:content_type</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
859
|
+
<span class="ruby-value">:packaging</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
860
|
+
<span class="ruby-value">:edit_media_uri</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">edit_media_links</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">href</span>,
|
861
|
+
<span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
862
|
+
<span class="ruby-value">:metadata_relevant</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
863
|
+
<span class="ruby-value">:connection</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@http</span>
|
864
|
+
}
|
865
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">params</span>)
|
866
|
+
|
867
|
+
<span class="ruby-comment">#Validate parameters</span>
|
868
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':filepath'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:filepath</span>], <span class="ruby-constant">String</span>)
|
869
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':content_type'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:content_type</span>], <span class="ruby-constant">String</span>)
|
870
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':packaging'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>]
|
871
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':edit_media_uri'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:edit_media_uri</span>], <span class="ruby-constant">String</span>)
|
872
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':on_behalf_of'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
873
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':connection'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>], <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Connection</span>)
|
874
|
+
|
875
|
+
<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">md5</span>, <span class="ruby-identifier">data</span> = <span class="ruby-constant">Utility</span>.<span class="ruby-identifier">read_file</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:filepath</span>])
|
876
|
+
|
877
|
+
<span class="ruby-identifier">headers</span> = {<span class="ruby-string">"Content-Type"</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:content_type</span>]}
|
878
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Content-Disposition"</span>] = <span class="ruby-node">"attachment; filename=#{filename}"</span>
|
879
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Content-MD5"</span>] = <span class="ruby-identifier">md5</span>
|
880
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Packaging"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>]
|
881
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Metadata-Relevant"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:metadata_relevant</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-keyword">if</span> (<span class="ruby-identifier">options</span>[<span class="ruby-value">:metadata_relevant</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:metadata_relevant</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>)
|
882
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"On-Behalf-Of"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
883
|
+
|
884
|
+
<span class="ruby-identifier">response</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>].<span class="ruby-identifier">post</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:edit_media_uri</span>], <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
|
885
|
+
|
886
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPSuccess</span>
|
887
|
+
<span class="ruby-keyword">return</span> <span class="ruby-constant">DepositReceipt</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">response</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>])
|
888
|
+
<span class="ruby-keyword">else</span>
|
889
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Failed to do post_media!(#{options[:edit_media_uri]}): server returned #{response.code} #{response.message}"</span>)
|
890
|
+
<span class="ruby-keyword">end</span>
|
891
|
+
<span class="ruby-keyword">end</span></pre>
|
892
|
+
</div><!-- post_media-21-source -->
|
893
|
+
|
894
|
+
</div>
|
895
|
+
|
896
|
+
|
897
|
+
|
898
|
+
|
899
|
+
</div><!-- post_media-21-method -->
|
900
|
+
|
901
|
+
|
902
|
+
<div id="method-i-post_multipart-21" class="method-detail ">
|
903
|
+
|
904
|
+
<div class="method-heading">
|
905
|
+
<span class="method-name">post_multipart!</span><span
|
906
|
+
class="method-args">(params = {})</span>
|
907
|
+
<span class="method-click-advice">click to toggle source</span>
|
908
|
+
</div>
|
909
|
+
|
910
|
+
|
911
|
+
<div class="method-description">
|
912
|
+
|
913
|
+
<p>This method posts an entry and a file to an existing entry’s sword-edit
|
914
|
+
URI, adding to the existing entry’s metadata and media resources (i.e. not
|
915
|
+
overwriting existing metadata and media resources). It <em>does not</em>
|
916
|
+
create a new entry in the collection. An MD5-digest will be calculated
|
917
|
+
automatically from the file and sent to the server with the request. The
|
918
|
+
method will return a <a
|
919
|
+
href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
920
|
+
object, or raise a <a
|
921
|
+
href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a> in the case
|
922
|
+
of an error.</p>
|
923
|
+
|
924
|
+
<h3 id="method-i-post_multipart-21-label-Parameters+%28passed+as+a+hash+collection%29">Parameters (passed as a hash collection)</h3>
|
925
|
+
<dl class="rdoc-list note-list"><dt>:entry
|
926
|
+
<dd>
|
927
|
+
<p>(optional) a new <a href="Entry.html">Atom::Entry</a> with metadata to be
|
928
|
+
added to an existing <a href="Entry.html">Atom::Entry</a>. If not supplied,
|
929
|
+
this will default to itself.</p>
|
930
|
+
</dd><dt>:filepath
|
931
|
+
<dd>
|
932
|
+
<p>a filepath string indicating the file to be posted. The file must be
|
933
|
+
readable by the process.</p>
|
934
|
+
</dd><dt>:content_type
|
935
|
+
<dd>
|
936
|
+
<p>the mime content-type string of the file, e.g. “application/zip” or
|
937
|
+
“text/plain”</p>
|
938
|
+
</dd><dt>:packaging
|
939
|
+
<dd>
|
940
|
+
<p>(optional) the Sword packaging string of the file, e.g. “<a
|
941
|
+
href="http://purl.org/net/sword/package/METSDSpaceSIP">purl.org/net/sword/package/METSDSpaceSIP</a>”</p>
|
942
|
+
</dd><dt>:sword_edit_uri
|
943
|
+
<dd>
|
944
|
+
<p>(optional) an override to the existing entry’s sword edit URI. If not
|
945
|
+
supplied, this will default to the existing entry’s sword edit URI.</p>
|
946
|
+
</dd><dt>:in_progress
|
947
|
+
<dd>
|
948
|
+
<p>(optional) boolean value indicating whether the existing entry will be
|
949
|
+
completed at a later date.</p>
|
950
|
+
</dd><dt>:on_behalf_of
|
951
|
+
<dd>
|
952
|
+
<p>(optional) username on whos behalf the submission is being performed</p>
|
953
|
+
</dd><dt>:metadata_relevant
|
954
|
+
<dd>
|
955
|
+
<p>(optional) boolean value indicating whether the server should consider the
|
956
|
+
file or package a potential source of metadata.</p>
|
957
|
+
</dd><dt>:connection
|
958
|
+
<dd>
|
959
|
+
<p>(optional) <a
|
960
|
+
href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a> object used
|
961
|
+
to perform the operation. If not supplied, the existing entry’s connection
|
962
|
+
will be used.</p>
|
963
|
+
</dd></dl>
|
964
|
+
|
965
|
+
<p>Note that you should call <strong><collection>.feed.updated!</strong>
|
966
|
+
followed by <strong><collection>.feed.update!</strong> after making
|
967
|
+
updates to a collection.</p>
|
968
|
+
|
969
|
+
<p>For more information, see the Sword2 specification: <a
|
970
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_addingcontent_multipart">section
|
971
|
+
6.7.3. “Adding Content to the Media Resource”</a>.</p>
|
972
|
+
|
973
|
+
|
974
|
+
|
975
|
+
<div class="method-source-code" id="post_multipart-21-source">
|
976
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 260</span>
|
977
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">post_multipart!</span>(<span class="ruby-identifier">params</span> = {})
|
978
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">'params'</span>, <span class="ruby-identifier">params</span>, <span class="ruby-constant">Hash</span>)
|
979
|
+
<span class="ruby-identifier">defaults</span> = {
|
980
|
+
<span class="ruby-value">:entry</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">self</span>,
|
981
|
+
<span class="ruby-value">:filepath</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
982
|
+
<span class="ruby-value">:content_type</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
983
|
+
<span class="ruby-value">:packaging</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
984
|
+
<span class="ruby-value">:sword_edit_uri</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">sword_edit_uri</span>,
|
985
|
+
<span class="ruby-value">:in_progress</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
986
|
+
<span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
987
|
+
<span class="ruby-value">:metadata_relevant</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
988
|
+
<span class="ruby-value">:connection</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@http</span>
|
989
|
+
}
|
990
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">params</span>)
|
991
|
+
|
992
|
+
<span class="ruby-comment">#Validate parameters</span>
|
993
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':entry'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:entry</span>], <span class="ruby-operator">::</span><span class="ruby-constant">Atom</span><span class="ruby-operator">::</span><span class="ruby-constant">Entry</span>)
|
994
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':filepath'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:filepath</span>], <span class="ruby-constant">String</span>)
|
995
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':content_type'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:content_type</span>], <span class="ruby-constant">String</span>)
|
996
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':packaging'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>]
|
997
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':sword_edit_uri'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:sword_edit_uri</span>], <span class="ruby-constant">String</span>)
|
998
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':on_behalf_of'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
999
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':connection'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>], <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Connection</span>)
|
1000
|
+
|
1001
|
+
<span class="ruby-identifier">tmp</span> = <span class="ruby-string">""</span>
|
1002
|
+
<span class="ruby-identifier">boundary</span> = <span class="ruby-string">"========"</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_i</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">"=="</span>
|
1003
|
+
<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">md5</span>, <span class="ruby-identifier">data</span> = <span class="ruby-constant">Utility</span>.<span class="ruby-identifier">read_file</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:filepath</span>])
|
1004
|
+
|
1005
|
+
|
1006
|
+
<span class="ruby-identifier">headers</span> = {<span class="ruby-string">"Content-Type"</span> =<span class="ruby-operator">></span> <span class="ruby-string">'multipart/related; boundary="'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">boundary</span> <span class="ruby-operator">+</span> <span class="ruby-string">'"; type="application/atom+xml"'</span>}
|
1007
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"In-Progress"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:in_progress</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-keyword">if</span> (<span class="ruby-identifier">options</span>[<span class="ruby-value">:in_progress</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:in_progress</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>)
|
1008
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"On-Behalf-Of"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
1009
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"MIME-Version"</span>] = <span class="ruby-string">"1.0"</span>
|
1010
|
+
|
1011
|
+
|
1012
|
+
<span class="ruby-comment"># write boundary identifer to temp</span>
|
1013
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"--#{boundary}\r\n"</span>
|
1014
|
+
|
1015
|
+
<span class="ruby-comment"># write entry relevant headers to temp</span>
|
1016
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"Content-Type: application/atom+xml; charset=\"utf-8\"\r\n"</span>
|
1017
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"Content-Disposition: attachment; name=atom\r\n"</span>
|
1018
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"MIME-Version: 1.0\r\n\r\n"</span>
|
1019
|
+
|
1020
|
+
<span class="ruby-comment"># write entry to temp</span>
|
1021
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:entry</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">"\r\n"</span>
|
1022
|
+
|
1023
|
+
<span class="ruby-comment"># write boundary identifier to temp</span>
|
1024
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"--#{boundary}\r\n"</span>
|
1025
|
+
|
1026
|
+
<span class="ruby-comment"># write media part relevant headers to temp </span>
|
1027
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Content-Type: #{options[:content_type]}\r\n"</span>
|
1028
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Content-Disposition: attachment; name=payload; filename=#{filename}\r\n"</span>
|
1029
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Content-MD5: #{md5}\r\n"</span>
|
1030
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Packaging: #{options[:packaging]}\r\n"</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>]
|
1031
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Metadata-Relevant: #{options[:metadata_relevant].to_s.downcase}\r\n"</span> <span class="ruby-keyword">if</span> (<span class="ruby-identifier">options</span>[<span class="ruby-value">:metadata_relevant</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:metadata_relevant</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>)
|
1032
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"MIME-Version: 1.0\r\n\r\n"</span>
|
1033
|
+
|
1034
|
+
<span class="ruby-comment"># write the file base64 encoded to temp</span>
|
1035
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">Base64</span>.<span class="ruby-identifier">encode64</span>(<span class="ruby-identifier">data</span>)
|
1036
|
+
|
1037
|
+
<span class="ruby-comment"># write boundary identifier to temp</span>
|
1038
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"--#{boundary}--\r\n"</span> <span class="ruby-comment">#The last two dashes (--) are important!</span>
|
1039
|
+
|
1040
|
+
<span class="ruby-identifier">response</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>].<span class="ruby-identifier">post</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:sword_edit_uri</span>], <span class="ruby-identifier">tmp</span>, <span class="ruby-identifier">headers</span>)
|
1041
|
+
|
1042
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPSuccess</span>
|
1043
|
+
<span class="ruby-keyword">return</span> <span class="ruby-constant">DepositReceipt</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">response</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>])
|
1044
|
+
<span class="ruby-keyword">else</span>
|
1045
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Failed to do post_multipart!(#{options[:sword_edit_uri]}): server returned #{response.code} #{response.message}"</span>)
|
1046
|
+
<span class="ruby-keyword">end</span>
|
1047
|
+
<span class="ruby-keyword">end</span></pre>
|
1048
|
+
</div><!-- post_multipart-21-source -->
|
1049
|
+
|
1050
|
+
</div>
|
1051
|
+
|
1052
|
+
|
1053
|
+
|
1054
|
+
|
1055
|
+
</div><!-- post_multipart-21-method -->
|
1056
|
+
|
1057
|
+
|
1058
|
+
<div id="method-i-put-21" class="method-detail ">
|
1059
|
+
|
1060
|
+
<div class="method-heading">
|
1061
|
+
<span class="method-name">put!</span><span
|
1062
|
+
class="method-args">(params = {})</span>
|
1063
|
+
<span class="method-click-advice">click to toggle source</span>
|
1064
|
+
</div>
|
1065
|
+
|
1066
|
+
|
1067
|
+
<div class="method-description">
|
1068
|
+
|
1069
|
+
<p>This method replaces an existing entry’s metadata by performing a Put on
|
1070
|
+
the entry-edit URI. It <em>does not</em> create a new entry in the
|
1071
|
+
collection. The method will return a <a
|
1072
|
+
href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
1073
|
+
object, or raise a <a
|
1074
|
+
href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a> in the case
|
1075
|
+
of an error.</p>
|
1076
|
+
|
1077
|
+
<h3 id="method-i-put-21-label-Example">Example</h3>
|
1078
|
+
|
1079
|
+
<pre>feed = collection.feed # assuming that you have retrieved a collection from the service document
|
1080
|
+
feed.update! # get all the entry data
|
1081
|
+
existing_entry = feed.entries.first
|
1082
|
+
existing_entry.title = "The Improved Burrito"
|
1083
|
+
existing_entry.summary = "Replacing the metadata of an existing entry"
|
1084
|
+
existing_entry.add_dublin_core_extension!("publisher", "Burrito King")
|
1085
|
+
existing_entry.put!</pre>
|
1086
|
+
|
1087
|
+
<h3 id="method-i-put-21-label-Parameters+%28passed+as+a+hash+collection%29">Parameters (passed as a hash collection)</h3>
|
1088
|
+
<dl class="rdoc-list note-list"><dt>:entry
|
1089
|
+
<dd>
|
1090
|
+
<p>(optional) a new <a href="Entry.html">Atom::Entry</a> with metadata to
|
1091
|
+
replace an existing <a href="Entry.html">Atom::Entry</a>. If not supplied,
|
1092
|
+
this will default to itself.</p>
|
1093
|
+
</dd><dt>:<a href="Entry.html#method-i-entry_edit_uri">#entry_edit_uri</a>
|
1094
|
+
<dd>
|
1095
|
+
<p>(optional) an override to the existing entry’s entry-edit URI. If not
|
1096
|
+
supplied, this will default to the existing entry’s entry-edit URI.</p>
|
1097
|
+
</dd><dt>:in_progress
|
1098
|
+
<dd>
|
1099
|
+
<p>(optional) boolean value indicating whether the existing entry will be
|
1100
|
+
completed at a later date.</p>
|
1101
|
+
</dd><dt>:on_behalf_of
|
1102
|
+
<dd>
|
1103
|
+
<p>(optional) username on whos behalf the submission is being performed.</p>
|
1104
|
+
</dd><dt>:connection
|
1105
|
+
<dd>
|
1106
|
+
<p>(optional) <a
|
1107
|
+
href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a> object used
|
1108
|
+
to perform the operation. If not supplied, the existing entry’s connection
|
1109
|
+
will be used.</p>
|
1110
|
+
</dd></dl>
|
1111
|
+
|
1112
|
+
<p>Note that you should call <strong><collection>.feed.updated!</strong>
|
1113
|
+
followed by <strong><collection>.feed.update!</strong> after making
|
1114
|
+
updates to a collection.</p>
|
1115
|
+
|
1116
|
+
<p>For more information, see the Sword2 specification: <a
|
1117
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_editingcontent_metadata">section
|
1118
|
+
6.5.2. “Replacing the Metadata of a Resource”</a>.</p>
|
1119
|
+
|
1120
|
+
|
1121
|
+
|
1122
|
+
<div class="method-source-code" id="put-21-source">
|
1123
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 355</span>
|
1124
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">put!</span>(<span class="ruby-identifier">params</span> = {})
|
1125
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">'params'</span>, <span class="ruby-identifier">params</span>, <span class="ruby-constant">Hash</span>)
|
1126
|
+
<span class="ruby-identifier">defaults</span> = {
|
1127
|
+
<span class="ruby-value">:entry</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">self</span>,
|
1128
|
+
<span class="ruby-value">:entry_edit_uri</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">entry_edit_uri</span>,
|
1129
|
+
<span class="ruby-value">:in_progress</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1130
|
+
<span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1131
|
+
<span class="ruby-value">:connection</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@http</span>
|
1132
|
+
}
|
1133
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">params</span>)
|
1134
|
+
|
1135
|
+
<span class="ruby-comment">#Validate parameters</span>
|
1136
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':entry'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:entry</span>], <span class="ruby-operator">::</span><span class="ruby-constant">Atom</span><span class="ruby-operator">::</span><span class="ruby-constant">Entry</span>)
|
1137
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':entry_edit_uri'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:entry_edit_uri</span>], <span class="ruby-constant">String</span>)
|
1138
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':on_behalf_of'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
1139
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':connection'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>], <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Connection</span>)
|
1140
|
+
|
1141
|
+
<span class="ruby-identifier">headers</span> = {<span class="ruby-string">"Content-Type"</span> =<span class="ruby-operator">></span> <span class="ruby-string">"application/atom+xml;type=entry"</span> }
|
1142
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"In-Progress"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:in_progress</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-keyword">if</span> (<span class="ruby-identifier">options</span>[<span class="ruby-value">:in_progress</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:in_progress</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>)
|
1143
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"On-Behalf-Of"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
1144
|
+
<span class="ruby-identifier">response</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>].<span class="ruby-identifier">put</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:entry_edit_uri</span>], <span class="ruby-identifier">options</span>[<span class="ruby-value">:entry</span>].<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">headers</span>)
|
1145
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPSuccess</span>
|
1146
|
+
<span class="ruby-keyword">return</span> <span class="ruby-constant">DepositReceipt</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">response</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>])
|
1147
|
+
<span class="ruby-keyword">else</span>
|
1148
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Failed to do put!(#{options[:entry_edit_uri]}): server returned code #{response.code} #{response.message}"</span>)
|
1149
|
+
<span class="ruby-keyword">end</span>
|
1150
|
+
<span class="ruby-keyword">end</span></pre>
|
1151
|
+
</div><!-- put-21-source -->
|
1152
|
+
|
1153
|
+
</div>
|
1154
|
+
|
1155
|
+
|
1156
|
+
|
1157
|
+
|
1158
|
+
</div><!-- put-21-method -->
|
1159
|
+
|
1160
|
+
|
1161
|
+
<div id="method-i-put_media-21" class="method-detail ">
|
1162
|
+
|
1163
|
+
<div class="method-heading">
|
1164
|
+
<span class="method-name">put_media!</span><span
|
1165
|
+
class="method-args">(params = {})</span>
|
1166
|
+
<span class="method-click-advice">click to toggle source</span>
|
1167
|
+
</div>
|
1168
|
+
|
1169
|
+
|
1170
|
+
<div class="method-description">
|
1171
|
+
|
1172
|
+
<p>This method replaces an existing entry’s file content of a resource by
|
1173
|
+
performing a Put on the edit-media URI. It <em>does not</em> create a new
|
1174
|
+
entry in the collection. The method will return a <a
|
1175
|
+
href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
1176
|
+
object, or raise a <a
|
1177
|
+
href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a> in the case
|
1178
|
+
of an error.</p>
|
1179
|
+
|
1180
|
+
<h3 id="method-i-put_media-21-label-Parameters+%28passed+as+a+hash+collection%29">Parameters (passed as a hash collection)</h3>
|
1181
|
+
<dl class="rdoc-list note-list"><dt>:filepath
|
1182
|
+
<dd>
|
1183
|
+
<p>a filepath string indicating the file to be sent. The file must be readable
|
1184
|
+
by the process.</p>
|
1185
|
+
</dd><dt>:content_type
|
1186
|
+
<dd>
|
1187
|
+
<p>the mime content-type string of the file, e.g. “application/zip” or
|
1188
|
+
“text/plain”</p>
|
1189
|
+
</dd><dt>:packaging
|
1190
|
+
<dd>
|
1191
|
+
<p>(optional) the Sword packaging string of the file, e.g. “<a
|
1192
|
+
href="http://purl.org/net/sword/package/METSDSpaceSIP">purl.org/net/sword/package/METSDSpaceSIP</a>”</p>
|
1193
|
+
</dd><dt>:edit_media_uri
|
1194
|
+
<dd>
|
1195
|
+
<p>(optional) an override to the existing entry’s edit-media URI. If not
|
1196
|
+
supplied, this will default to the existing entry’s first edit-media URI.</p>
|
1197
|
+
</dd><dt>:on_behalf_of
|
1198
|
+
<dd>
|
1199
|
+
<p>(optional) username on whos behalf the submission is being performed.</p>
|
1200
|
+
</dd><dt>:metadata_relevant
|
1201
|
+
<dd>
|
1202
|
+
<p>(optional) boolean value indicating whether the server should consider the
|
1203
|
+
file or package a potential source of metadata.</p>
|
1204
|
+
</dd><dt>:connection
|
1205
|
+
<dd>
|
1206
|
+
<p>(optional) <a
|
1207
|
+
href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a> object used
|
1208
|
+
to perform the operation. If not supplied, the existing entry’s connection
|
1209
|
+
will be used.</p>
|
1210
|
+
</dd></dl>
|
1211
|
+
|
1212
|
+
<p>Note that you should call <strong><collection>.feed.updated!</strong>
|
1213
|
+
followed by <strong><collection>.feed.update!</strong> after making
|
1214
|
+
updates to a collection.</p>
|
1215
|
+
|
1216
|
+
<p>For more information, see the Sword2 specification: <a
|
1217
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_editingcontent_binary">section
|
1218
|
+
6.5.1. “Replacing the File Content of a Resource”</a>.</p>
|
1219
|
+
|
1220
|
+
|
1221
|
+
|
1222
|
+
<div class="method-source-code" id="put_media-21-source">
|
1223
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 399</span>
|
1224
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">put_media!</span>(<span class="ruby-identifier">params</span> = {})
|
1225
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">'params'</span>, <span class="ruby-identifier">params</span>, <span class="ruby-constant">Hash</span>)
|
1226
|
+
<span class="ruby-identifier">defaults</span> = {
|
1227
|
+
<span class="ruby-value">:filepath</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1228
|
+
<span class="ruby-value">:content_type</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1229
|
+
<span class="ruby-value">:packaging</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1230
|
+
<span class="ruby-value">:edit_media_uri</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">edit_media_links</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">href</span>,
|
1231
|
+
<span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1232
|
+
<span class="ruby-value">:metadata_relevant</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1233
|
+
<span class="ruby-value">:connection</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@http</span>
|
1234
|
+
}
|
1235
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">params</span>)
|
1236
|
+
|
1237
|
+
<span class="ruby-comment">#Validate parameters</span>
|
1238
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':filepath'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:filepath</span>], <span class="ruby-constant">String</span>)
|
1239
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':content_type'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:content_type</span>], <span class="ruby-constant">String</span>)
|
1240
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':packaging'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>]
|
1241
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':edit_media_uri'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:edit_media_uri</span>], <span class="ruby-constant">String</span>)
|
1242
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':on_behalf_of'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
1243
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':connection'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>], <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Connection</span>)
|
1244
|
+
|
1245
|
+
<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">md5</span>, <span class="ruby-identifier">data</span> = <span class="ruby-constant">Utility</span>.<span class="ruby-identifier">read_file</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:filepath</span>])
|
1246
|
+
|
1247
|
+
<span class="ruby-identifier">headers</span> = {<span class="ruby-string">"Content-Type"</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:content_type</span>]}
|
1248
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Content-Disposition"</span>] = <span class="ruby-node">"attachment; filename=#{filename}"</span>
|
1249
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Content-MD5"</span>] = <span class="ruby-identifier">md5</span>
|
1250
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Packaging"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>]
|
1251
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Metadata-Relevant"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:metadata_relevant</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-keyword">if</span> (<span class="ruby-identifier">options</span>[<span class="ruby-value">:metadata_relevant</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:metadata_relevant</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>)
|
1252
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"On-Behalf-Of"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
1253
|
+
|
1254
|
+
<span class="ruby-identifier">response</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>].<span class="ruby-identifier">put</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:edit_media_uri</span>], <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
|
1255
|
+
|
1256
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPSuccess</span>
|
1257
|
+
<span class="ruby-keyword">return</span> <span class="ruby-constant">DepositReceipt</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">response</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>])
|
1258
|
+
<span class="ruby-keyword">else</span>
|
1259
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Failed to do put_media!(#{options[:edit_media_uri]}): server returned #{response.code} #{response.message}"</span>)
|
1260
|
+
<span class="ruby-keyword">end</span>
|
1261
|
+
<span class="ruby-keyword">end</span></pre>
|
1262
|
+
</div><!-- put_media-21-source -->
|
1263
|
+
|
1264
|
+
</div>
|
1265
|
+
|
1266
|
+
|
1267
|
+
|
1268
|
+
|
1269
|
+
</div><!-- put_media-21-method -->
|
1270
|
+
|
1271
|
+
|
1272
|
+
<div id="method-i-put_multipart-21" class="method-detail ">
|
1273
|
+
|
1274
|
+
<div class="method-heading">
|
1275
|
+
<span class="method-name">put_multipart!</span><span
|
1276
|
+
class="method-args">(params = {})</span>
|
1277
|
+
<span class="method-click-advice">click to toggle source</span>
|
1278
|
+
</div>
|
1279
|
+
|
1280
|
+
|
1281
|
+
<div class="method-description">
|
1282
|
+
|
1283
|
+
<p>This method replaces an existing entry’s metadata and file content of a
|
1284
|
+
resource by performing a Put on the entry-edit URI. It <em>does not</em>
|
1285
|
+
create a new entry in the collection. The method will return a <a
|
1286
|
+
href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
1287
|
+
object, or raise a <a
|
1288
|
+
href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a> in the case
|
1289
|
+
of an error.</p>
|
1290
|
+
|
1291
|
+
<h3 id="method-i-put_multipart-21-label-Parameters+%28passed+as+a+hash+collection%29">Parameters (passed as a hash collection)</h3>
|
1292
|
+
<dl class="rdoc-list note-list"><dt>:entry
|
1293
|
+
<dd>
|
1294
|
+
<p>(optional) a new <a href="Entry.html">Atom::Entry</a> with metadata to
|
1295
|
+
replace an existing <a href="Entry.html">Atom::Entry</a>. If not supplied,
|
1296
|
+
this will default to itself.</p>
|
1297
|
+
</dd><dt>:filepath
|
1298
|
+
<dd>
|
1299
|
+
<p>a filepath string indicating the file to be sent. The file must be readable
|
1300
|
+
by the process.</p>
|
1301
|
+
</dd><dt>:content_type
|
1302
|
+
<dd>
|
1303
|
+
<p>the mime content-type string of the file, e.g. “application/zip” or
|
1304
|
+
“text/plain”</p>
|
1305
|
+
</dd><dt>:packaging
|
1306
|
+
<dd>
|
1307
|
+
<p>(optional) the Sword packaging string of the file, e.g. “<a
|
1308
|
+
href="http://purl.org/net/sword/package/METSDSpaceSIP">purl.org/net/sword/package/METSDSpaceSIP</a>”</p>
|
1309
|
+
</dd><dt>:<a href="Entry.html#method-i-entry_edit_uri">#entry_edit_uri</a>
|
1310
|
+
<dd>
|
1311
|
+
<p>(optional) an override to the existing entry’s entry-edit URI. If not
|
1312
|
+
supplied, this will default to the existing entry’s entry-edit URI.</p>
|
1313
|
+
</dd><dt>:on_behalf_of
|
1314
|
+
<dd>
|
1315
|
+
<p>(optional) username on whos behalf the submission is being performed.</p>
|
1316
|
+
</dd><dt>:metadata_relevant
|
1317
|
+
<dd>
|
1318
|
+
<p>(optional) boolean value indicating whether the server should consider the
|
1319
|
+
file or package a potential source of metadata.</p>
|
1320
|
+
</dd><dt>:connection
|
1321
|
+
<dd>
|
1322
|
+
<p>(optional) <a
|
1323
|
+
href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a> object used
|
1324
|
+
to perform the operation. If not supplied, the existing entry’s connection
|
1325
|
+
will be used.</p>
|
1326
|
+
</dd></dl>
|
1327
|
+
|
1328
|
+
<p>Note that you should call <strong><collection>.feed.updated!</strong>
|
1329
|
+
followed by <strong><collection>.feed.update!</strong> after making
|
1330
|
+
updates to a collection.</p>
|
1331
|
+
|
1332
|
+
<p>For more information, see the Sword2 specification: <a
|
1333
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_editingcontent_multipart">section
|
1334
|
+
6.5.3. “Replacing the Metadata and File Content of a Resource”</a>.</p>
|
1335
|
+
|
1336
|
+
|
1337
|
+
|
1338
|
+
<div class="method-source-code" id="put_multipart-21-source">
|
1339
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 456</span>
|
1340
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">put_multipart!</span>(<span class="ruby-identifier">params</span> = {})
|
1341
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">'params'</span>, <span class="ruby-identifier">params</span>, <span class="ruby-constant">Hash</span>)
|
1342
|
+
<span class="ruby-identifier">defaults</span> = {
|
1343
|
+
<span class="ruby-value">:entry</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">self</span>,
|
1344
|
+
<span class="ruby-value">:filepath</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1345
|
+
<span class="ruby-value">:content_type</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1346
|
+
<span class="ruby-value">:packaging</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1347
|
+
<span class="ruby-value">:entry_edit_uri</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">entry_edit_uri</span>,
|
1348
|
+
<span class="ruby-value">:in_progress</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1349
|
+
<span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1350
|
+
<span class="ruby-value">:metadata_relevant</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
1351
|
+
<span class="ruby-value">:connection</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@http</span>
|
1352
|
+
}
|
1353
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">params</span>)
|
1354
|
+
|
1355
|
+
<span class="ruby-comment">#Validate parameters</span>
|
1356
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':entry'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:entry</span>], <span class="ruby-operator">::</span><span class="ruby-constant">Atom</span><span class="ruby-operator">::</span><span class="ruby-constant">Entry</span>)
|
1357
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':filepath'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:filepath</span>], <span class="ruby-constant">String</span>)
|
1358
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':content_type'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:content_type</span>], <span class="ruby-constant">String</span>)
|
1359
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':packaging'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>]
|
1360
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':entry_edit_uri'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:entry_edit_uri</span>], <span class="ruby-constant">String</span>)
|
1361
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':on_behalf_of'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
1362
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':connection'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>], <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Connection</span>)
|
1363
|
+
|
1364
|
+
<span class="ruby-identifier">tmp</span> = <span class="ruby-string">""</span>
|
1365
|
+
<span class="ruby-identifier">boundary</span> = <span class="ruby-string">"========"</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_i</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">"=="</span>
|
1366
|
+
<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">md5</span>, <span class="ruby-identifier">data</span> = <span class="ruby-constant">Utility</span>.<span class="ruby-identifier">read_file</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:filepath</span>])
|
1367
|
+
|
1368
|
+
|
1369
|
+
<span class="ruby-identifier">headers</span> = {<span class="ruby-string">"Content-Type"</span> =<span class="ruby-operator">></span> <span class="ruby-string">'multipart/related; boundary="'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">boundary</span> <span class="ruby-operator">+</span> <span class="ruby-string">'"; type="application/atom+xml"'</span>}
|
1370
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"In-Progress"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:in_progress</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-keyword">if</span> (<span class="ruby-identifier">options</span>[<span class="ruby-value">:in_progress</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:in_progress</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>)
|
1371
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"On-Behalf-Of"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:on_behalf_of</span>]
|
1372
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"MIME-Version"</span>] = <span class="ruby-string">"1.0"</span>
|
1373
|
+
|
1374
|
+
<span class="ruby-comment"># write boundary identifer to temp</span>
|
1375
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"--#{boundary}\r\n"</span>
|
1376
|
+
|
1377
|
+
<span class="ruby-comment"># write entry relevant headers to temp</span>
|
1378
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"Content-Type: application/atom+xml; charset=\"utf-8\"\r\n"</span>
|
1379
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"Content-Disposition: attachment; name=atom\r\n"</span>
|
1380
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"MIME-Version: 1.0\r\n\r\n"</span>
|
1381
|
+
|
1382
|
+
<span class="ruby-comment"># write entry to temp</span>
|
1383
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:entry</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">"\r\n"</span>
|
1384
|
+
|
1385
|
+
<span class="ruby-comment"># write boundary identifier to temp</span>
|
1386
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"--#{boundary}\r\n"</span>
|
1387
|
+
|
1388
|
+
<span class="ruby-comment"># write media part relevant headers to temp </span>
|
1389
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Content-Type: #{options[:content_type]}\r\n"</span>
|
1390
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Content-Disposition: attachment; name=payload; filename=#{filename}\r\n"</span>
|
1391
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Content-MD5: #{md5}\r\n"</span>
|
1392
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Packaging: #{options[:packaging]}\r\n"</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:packaging</span>]
|
1393
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"MIME-Version: 1.0\r\n\r\n"</span>
|
1394
|
+
|
1395
|
+
<span class="ruby-comment"># write the file base64 encoded to temp</span>
|
1396
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">Base64</span>.<span class="ruby-identifier">encode64</span>(<span class="ruby-identifier">data</span>)
|
1397
|
+
|
1398
|
+
<span class="ruby-comment"># write boundary identifier to temp</span>
|
1399
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"--#{boundary}--\r\n"</span> <span class="ruby-comment">#The last two dashes (--) are important!</span>
|
1400
|
+
|
1401
|
+
<span class="ruby-identifier">response</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>].<span class="ruby-identifier">put</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:entry_edit_uri</span>], <span class="ruby-identifier">tmp</span>, <span class="ruby-identifier">headers</span>)
|
1402
|
+
|
1403
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPSuccess</span>
|
1404
|
+
<span class="ruby-keyword">return</span> <span class="ruby-constant">DepositReceipt</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">response</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:connection</span>])
|
1405
|
+
<span class="ruby-keyword">else</span>
|
1406
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Sword2Ruby</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Failed to do put_multipart!(#{options[:entry_edit_uri]}): server returned #{response.code} #{response.message}"</span>)
|
1407
|
+
<span class="ruby-keyword">end</span>
|
1408
|
+
<span class="ruby-keyword">end</span></pre>
|
1409
|
+
</div><!-- put_multipart-21-source -->
|
1410
|
+
|
1411
|
+
</div>
|
1412
|
+
|
1413
|
+
|
1414
|
+
|
1415
|
+
|
1416
|
+
</div><!-- put_multipart-21-method -->
|
1417
|
+
|
1418
|
+
|
1419
|
+
<div id="method-i-sword_deposited_by" class="method-detail ">
|
1420
|
+
|
1421
|
+
<div class="method-heading">
|
1422
|
+
<span class="method-name">sword_deposited_by</span><span
|
1423
|
+
class="method-args">()</span>
|
1424
|
+
<span class="method-click-advice">click to toggle source</span>
|
1425
|
+
</div>
|
1426
|
+
|
1427
|
+
|
1428
|
+
<div class="method-description">
|
1429
|
+
|
1430
|
+
<p>This method returns the string value of the <sword:depositedBy> tag
|
1431
|
+
(usually contained in the Sword Statement <a href="../Atom.html">Atom</a>
|
1432
|
+
<a href="Feed.html">Feed</a>), or nil if it is not defined.</p>
|
1433
|
+
|
1434
|
+
|
1435
|
+
|
1436
|
+
<div class="method-source-code" id="sword_deposited_by-source">
|
1437
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 117</span>
|
1438
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_deposited_by</span>
|
1439
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_element_text</span>(<span class="ruby-identifier">extensions</span>, <span class="ruby-string">"sword:depositedBy"</span>)
|
1440
|
+
<span class="ruby-keyword">end</span></pre>
|
1441
|
+
</div><!-- sword_deposited_by-source -->
|
1442
|
+
|
1443
|
+
</div>
|
1444
|
+
|
1445
|
+
|
1446
|
+
|
1447
|
+
|
1448
|
+
</div><!-- sword_deposited_by-method -->
|
1449
|
+
|
1450
|
+
|
1451
|
+
<div id="method-i-sword_deposited_on" class="method-detail ">
|
1452
|
+
|
1453
|
+
<div class="method-heading">
|
1454
|
+
<span class="method-name">sword_deposited_on</span><span
|
1455
|
+
class="method-args">()</span>
|
1456
|
+
<span class="method-click-advice">click to toggle source</span>
|
1457
|
+
</div>
|
1458
|
+
|
1459
|
+
|
1460
|
+
<div class="method-description">
|
1461
|
+
|
1462
|
+
<p>This method returns the time value of the <sword:depositedOn> tag
|
1463
|
+
(usually contained in the Sword Statement <a href="../Atom.html">Atom</a>
|
1464
|
+
<a href="Feed.html">Feed</a>), or nil if it is not defined.</p>
|
1465
|
+
|
1466
|
+
|
1467
|
+
|
1468
|
+
<div class="method-source-code" id="sword_deposited_on-source">
|
1469
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 111</span>
|
1470
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_deposited_on</span>
|
1471
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_element_time</span>(<span class="ruby-identifier">extensions</span>, <span class="ruby-string">"sword:depositedOn"</span>)
|
1472
|
+
<span class="ruby-keyword">end</span></pre>
|
1473
|
+
</div><!-- sword_deposited_on-source -->
|
1474
|
+
|
1475
|
+
</div>
|
1476
|
+
|
1477
|
+
|
1478
|
+
|
1479
|
+
|
1480
|
+
</div><!-- sword_deposited_on-method -->
|
1481
|
+
|
1482
|
+
|
1483
|
+
<div id="method-i-sword_deposited_on_behalf_of" class="method-detail ">
|
1484
|
+
|
1485
|
+
<div class="method-heading">
|
1486
|
+
<span class="method-name">sword_deposited_on_behalf_of</span><span
|
1487
|
+
class="method-args">()</span>
|
1488
|
+
<span class="method-click-advice">click to toggle source</span>
|
1489
|
+
</div>
|
1490
|
+
|
1491
|
+
|
1492
|
+
<div class="method-description">
|
1493
|
+
|
1494
|
+
<p>This method returns the string value of the
|
1495
|
+
<sword:depositedOnBehalfOf> tag (usually contained in the Sword
|
1496
|
+
Statement <a href="../Atom.html">Atom</a> <a href="Feed.html">Feed</a>), or
|
1497
|
+
nil if it is not defined.</p>
|
1498
|
+
|
1499
|
+
|
1500
|
+
|
1501
|
+
<div class="method-source-code" id="sword_deposited_on_behalf_of-source">
|
1502
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 123</span>
|
1503
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_deposited_on_behalf_of</span>
|
1504
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_element_text</span>(<span class="ruby-identifier">extensions</span>, <span class="ruby-string">"sword:depositedOnBehalfOf"</span>)
|
1505
|
+
<span class="ruby-keyword">end</span></pre>
|
1506
|
+
</div><!-- sword_deposited_on_behalf_of-source -->
|
1507
|
+
|
1508
|
+
</div>
|
1509
|
+
|
1510
|
+
|
1511
|
+
|
1512
|
+
|
1513
|
+
</div><!-- sword_deposited_on_behalf_of-method -->
|
1514
|
+
|
1515
|
+
|
1516
|
+
<div id="method-i-sword_derived_resource_links" class="method-detail ">
|
1517
|
+
|
1518
|
+
<div class="method-heading">
|
1519
|
+
<span class="method-name">sword_derived_resource_links</span><span
|
1520
|
+
class="method-args">()</span>
|
1521
|
+
<span class="method-click-advice">click to toggle source</span>
|
1522
|
+
</div>
|
1523
|
+
|
1524
|
+
|
1525
|
+
<div class="method-description">
|
1526
|
+
|
1527
|
+
<p>This method returns an array of Atom::Links for the <strong>derived
|
1528
|
+
resource</strong> <link rel=“<a
|
1529
|
+
href="http://purl.org/net/sword/terms/derivedResource">purl.org/net/sword/terms/derivedResource</a>”>
|
1530
|
+
tags (usually contained in the DepositReceipt <a
|
1531
|
+
href="Entry.html">Entry</a>), or an empty array [ ] if none are defined.</p>
|
1532
|
+
|
1533
|
+
|
1534
|
+
|
1535
|
+
<div class="method-source-code" id="sword_derived_resource_links-source">
|
1536
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 46</span>
|
1537
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_derived_resource_links</span>
|
1538
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_links_all_types</span>(<span class="ruby-identifier">links</span>, <span class="ruby-string">"http://purl.org/net/sword/terms/derivedResource"</span>)
|
1539
|
+
<span class="ruby-keyword">end</span></pre>
|
1540
|
+
</div><!-- sword_derived_resource_links-source -->
|
1541
|
+
|
1542
|
+
</div>
|
1543
|
+
|
1544
|
+
|
1545
|
+
|
1546
|
+
|
1547
|
+
</div><!-- sword_derived_resource_links-method -->
|
1548
|
+
|
1549
|
+
|
1550
|
+
<div id="method-i-sword_edit_uri" class="method-detail ">
|
1551
|
+
|
1552
|
+
<div class="method-heading">
|
1553
|
+
<span class="method-name">sword_edit_uri</span><span
|
1554
|
+
class="method-args">()</span>
|
1555
|
+
<span class="method-click-advice">click to toggle source</span>
|
1556
|
+
</div>
|
1557
|
+
|
1558
|
+
|
1559
|
+
<div class="method-description">
|
1560
|
+
|
1561
|
+
<p>This method returns the URI string of the <strong>sword edit</strong>
|
1562
|
+
<link rel=“<a
|
1563
|
+
href="http://purl.org/net/sword/terms/add">purl.org/net/sword/terms/add</a>”>
|
1564
|
+
tag (usually contained in the DepositReceipt <a
|
1565
|
+
href="Entry.html">Entry</a>), or nil if it is not defined.</p>
|
1566
|
+
|
1567
|
+
|
1568
|
+
|
1569
|
+
<div class="method-source-code" id="sword_edit_uri-source">
|
1570
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 34</span>
|
1571
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_edit_uri</span>
|
1572
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_link_uri</span>(<span class="ruby-identifier">links</span>, <span class="ruby-string">"http://purl.org/net/sword/terms/add"</span>)
|
1573
|
+
<span class="ruby-keyword">end</span></pre>
|
1574
|
+
</div><!-- sword_edit_uri-source -->
|
1575
|
+
|
1576
|
+
</div>
|
1577
|
+
|
1578
|
+
|
1579
|
+
|
1580
|
+
|
1581
|
+
</div><!-- sword_edit_uri-method -->
|
1582
|
+
|
1583
|
+
|
1584
|
+
<div id="method-i-sword_original_deposit_category" class="method-detail ">
|
1585
|
+
|
1586
|
+
<div class="method-heading">
|
1587
|
+
<span class="method-name">sword_original_deposit_category</span><span
|
1588
|
+
class="method-args">()</span>
|
1589
|
+
<span class="method-click-advice">click to toggle source</span>
|
1590
|
+
</div>
|
1591
|
+
|
1592
|
+
|
1593
|
+
<div class="method-description">
|
1594
|
+
|
1595
|
+
<p>This method returns the Atom::Category of the original deposit (usually
|
1596
|
+
contained in the Sword Statement <a href="../Atom.html">Atom</a> <a
|
1597
|
+
href="Feed.html">Feed</a>), or nil if it is not defined.</p>
|
1598
|
+
|
1599
|
+
|
1600
|
+
|
1601
|
+
<div class="method-source-code" id="sword_original_deposit_category-source">
|
1602
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 129</span>
|
1603
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_original_deposit_category</span>
|
1604
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_element_by_scheme_and_term</span>(<span class="ruby-identifier">categories</span>, <span class="ruby-string">"http://purl.org/net/sword/terms/"</span>, <span class="ruby-string">"http://purl.org/net/sword/terms/originalDeposit"</span>)
|
1605
|
+
<span class="ruby-keyword">end</span></pre>
|
1606
|
+
</div><!-- sword_original_deposit_category-source -->
|
1607
|
+
|
1608
|
+
</div>
|
1609
|
+
|
1610
|
+
|
1611
|
+
|
1612
|
+
|
1613
|
+
</div><!-- sword_original_deposit_category-method -->
|
1614
|
+
|
1615
|
+
|
1616
|
+
<div id="method-i-sword_original_deposit_uri" class="method-detail ">
|
1617
|
+
|
1618
|
+
<div class="method-heading">
|
1619
|
+
<span class="method-name">sword_original_deposit_uri</span><span
|
1620
|
+
class="method-args">()</span>
|
1621
|
+
<span class="method-click-advice">click to toggle source</span>
|
1622
|
+
</div>
|
1623
|
+
|
1624
|
+
|
1625
|
+
<div class="method-description">
|
1626
|
+
|
1627
|
+
<p>This method returns the URI string of the package or file deposited, as
|
1628
|
+
specified in the <link rel=“<a
|
1629
|
+
href="http://purl.org/net/sword/terms/originalDeposit">purl.org/net/sword/terms/originalDeposit</a>”>
|
1630
|
+
tag (usually contained in the DepositReceipt <a
|
1631
|
+
href="Entry.html">Entry</a>), or nil if it is not defined.</p>
|
1632
|
+
|
1633
|
+
|
1634
|
+
|
1635
|
+
<div class="method-source-code" id="sword_original_deposit_uri-source">
|
1636
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 40</span>
|
1637
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_original_deposit_uri</span>
|
1638
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_link_uri</span>(<span class="ruby-identifier">links</span>, <span class="ruby-string">"http://purl.org/net/sword/terms/originalDeposit"</span>)
|
1639
|
+
<span class="ruby-keyword">end</span></pre>
|
1640
|
+
</div><!-- sword_original_deposit_uri-source -->
|
1641
|
+
|
1642
|
+
</div>
|
1643
|
+
|
1644
|
+
|
1645
|
+
|
1646
|
+
|
1647
|
+
</div><!-- sword_original_deposit_uri-method -->
|
1648
|
+
|
1649
|
+
|
1650
|
+
<div id="method-i-sword_packagings" class="method-detail ">
|
1651
|
+
|
1652
|
+
<div class="method-heading">
|
1653
|
+
<span class="method-name">sword_packagings</span><span
|
1654
|
+
class="method-args">()</span>
|
1655
|
+
<span class="method-click-advice">click to toggle source</span>
|
1656
|
+
</div>
|
1657
|
+
|
1658
|
+
|
1659
|
+
<div class="method-description">
|
1660
|
+
|
1661
|
+
<p>This method returns an array of string values for the <strong>sword
|
1662
|
+
packagings</strong>, from the <sword:packaging> tags (usually
|
1663
|
+
contained in the DepositReceipt <a href="Entry.html">Entry</a>), or an
|
1664
|
+
empty array [ ] if none are defined.</p>
|
1665
|
+
|
1666
|
+
|
1667
|
+
|
1668
|
+
<div class="method-source-code" id="sword_packagings-source">
|
1669
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 58</span>
|
1670
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_packagings</span>
|
1671
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_elements_text</span>(<span class="ruby-identifier">extensions</span>, <span class="ruby-string">"sword:packaging"</span>)
|
1672
|
+
<span class="ruby-keyword">end</span></pre>
|
1673
|
+
</div><!-- sword_packagings-source -->
|
1674
|
+
|
1675
|
+
</div>
|
1676
|
+
|
1677
|
+
|
1678
|
+
|
1679
|
+
|
1680
|
+
</div><!-- sword_packagings-method -->
|
1681
|
+
|
1682
|
+
|
1683
|
+
<div id="method-i-sword_statement_links" class="method-detail ">
|
1684
|
+
|
1685
|
+
<div class="method-heading">
|
1686
|
+
<span class="method-name">sword_statement_links</span><span
|
1687
|
+
class="method-args">()</span>
|
1688
|
+
<span class="method-click-advice">click to toggle source</span>
|
1689
|
+
</div>
|
1690
|
+
|
1691
|
+
|
1692
|
+
<div class="method-description">
|
1693
|
+
|
1694
|
+
<p>This method returns an array of Atom::Links for the <strong>sword
|
1695
|
+
statements</strong>, from the <link rel=“<a
|
1696
|
+
href="http://purl.org/net/sword/terms/statement">purl.org/net/sword/terms/statement</a>”>
|
1697
|
+
tags (usually contained in the DepositReceipt <a
|
1698
|
+
href="Entry.html">Entry</a>), or an empty array [ ] if none are defined.</p>
|
1699
|
+
|
1700
|
+
|
1701
|
+
|
1702
|
+
<div class="method-source-code" id="sword_statement_links-source">
|
1703
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 52</span>
|
1704
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_statement_links</span>
|
1705
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_links_all_types</span>(<span class="ruby-identifier">links</span>, <span class="ruby-string">"http://purl.org/net/sword/terms/statement"</span>)
|
1706
|
+
<span class="ruby-keyword">end</span></pre>
|
1707
|
+
</div><!-- sword_statement_links-source -->
|
1708
|
+
|
1709
|
+
</div>
|
1710
|
+
|
1711
|
+
|
1712
|
+
|
1713
|
+
|
1714
|
+
</div><!-- sword_statement_links-method -->
|
1715
|
+
|
1716
|
+
|
1717
|
+
<div id="method-i-sword_treatment" class="method-detail ">
|
1718
|
+
|
1719
|
+
<div class="method-heading">
|
1720
|
+
<span class="method-name">sword_treatment</span><span
|
1721
|
+
class="method-args">()</span>
|
1722
|
+
<span class="method-click-advice">click to toggle source</span>
|
1723
|
+
</div>
|
1724
|
+
|
1725
|
+
|
1726
|
+
<div class="method-description">
|
1727
|
+
|
1728
|
+
<p>This method returns the string value of the <strong>sword
|
1729
|
+
treatment</strong> <sword:treatment> tag (usually contained in the
|
1730
|
+
DepositReceipt <a href="Entry.html">Entry</a>), or nil if it is not
|
1731
|
+
defined.</p>
|
1732
|
+
|
1733
|
+
|
1734
|
+
|
1735
|
+
<div class="method-source-code" id="sword_treatment-source">
|
1736
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 64</span>
|
1737
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_treatment</span>
|
1738
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_element_text</span>(<span class="ruby-identifier">extensions</span>, <span class="ruby-string">"sword:treatment"</span>)
|
1739
|
+
<span class="ruby-keyword">end</span></pre>
|
1740
|
+
</div><!-- sword_treatment-source -->
|
1741
|
+
|
1742
|
+
</div>
|
1743
|
+
|
1744
|
+
|
1745
|
+
|
1746
|
+
|
1747
|
+
</div><!-- sword_treatment-method -->
|
1748
|
+
|
1749
|
+
|
1750
|
+
<div id="method-i-sword_verbose_description" class="method-detail ">
|
1751
|
+
|
1752
|
+
<div class="method-heading">
|
1753
|
+
<span class="method-name">sword_verbose_description</span><span
|
1754
|
+
class="method-args">()</span>
|
1755
|
+
<span class="method-click-advice">click to toggle source</span>
|
1756
|
+
</div>
|
1757
|
+
|
1758
|
+
|
1759
|
+
<div class="method-description">
|
1760
|
+
|
1761
|
+
<p>This method returns the string value of the <strong>sword verbose
|
1762
|
+
description</strong> <sword:verboseDescription> tag (usually
|
1763
|
+
contained in the DepositReceipt <a href="Entry.html">Entry</a>), or nil if
|
1764
|
+
it is not defined.</p>
|
1765
|
+
|
1766
|
+
|
1767
|
+
|
1768
|
+
<div class="method-source-code" id="sword_verbose_description-source">
|
1769
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/entry.rb, line 70</span>
|
1770
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_verbose_description</span>
|
1771
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_element_text</span>(<span class="ruby-identifier">extensions</span>, <span class="ruby-string">"sword:verboseDescription"</span>)
|
1772
|
+
<span class="ruby-keyword">end</span></pre>
|
1773
|
+
</div><!-- sword_verbose_description-source -->
|
1774
|
+
|
1775
|
+
</div>
|
1776
|
+
|
1777
|
+
|
1778
|
+
|
1779
|
+
|
1780
|
+
</div><!-- sword_verbose_description-method -->
|
1781
|
+
|
1782
|
+
|
1783
|
+
</section><!-- public-instance-method-details -->
|
1784
|
+
|
1785
|
+
</section><!-- 5Buntitled-5D -->
|
1786
|
+
|
1787
|
+
</div><!-- documentation -->
|
1788
|
+
|
1789
|
+
|
1790
|
+
<footer id="validator-badges">
|
1791
|
+
<p><a href="http://validator.w3.org/check/referer">[Validate]</a>
|
1792
|
+
<p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.
|
1793
|
+
<p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
|
1794
|
+
</footer>
|
1795
|
+
|