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
@@ -0,0 +1,837 @@
|
|
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::Collection - 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/collection.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-app_accept">#app_accept</a>
|
74
|
+
|
75
|
+
<li><a href="#method-i-app_accept_alternate_multipart_related">#app_accept_alternate_multipart_related</a>
|
76
|
+
|
77
|
+
<li><a href="#method-i-collection_uri">#collection_uri</a>
|
78
|
+
|
79
|
+
<li><a href="#method-i-post-21">#post!</a>
|
80
|
+
|
81
|
+
<li><a href="#method-i-post_media-21">#post_media!</a>
|
82
|
+
|
83
|
+
<li><a href="#method-i-post_multipart-21">#post_multipart!</a>
|
84
|
+
|
85
|
+
<li><a href="#method-i-sword_accept_packagings">#sword_accept_packagings</a>
|
86
|
+
|
87
|
+
<li><a href="#method-i-sword_collection_policy">#sword_collection_policy</a>
|
88
|
+
|
89
|
+
<li><a href="#method-i-sword_mediation">#sword_mediation</a>
|
90
|
+
|
91
|
+
<li><a href="#method-i-sword_services">#sword_services</a>
|
92
|
+
|
93
|
+
<li><a href="#method-i-sword_treatment">#sword_treatment</a>
|
94
|
+
|
95
|
+
</ul>
|
96
|
+
</nav>
|
97
|
+
|
98
|
+
</div>
|
99
|
+
|
100
|
+
<div id="project-metadata">
|
101
|
+
<nav id="fileindex-section" class="section project-section">
|
102
|
+
<h3 class="section-header">Pages</h3>
|
103
|
+
|
104
|
+
<ul>
|
105
|
+
|
106
|
+
<li class="file"><a href="../Gemfile.html">Gemfile</a>
|
107
|
+
|
108
|
+
<li class="file"><a href="../Rakefile.html">Rakefile</a>
|
109
|
+
|
110
|
+
<li class="file"><a href="../spec/fixtures/example_txt.html">example</a>
|
111
|
+
|
112
|
+
</ul>
|
113
|
+
</nav>
|
114
|
+
|
115
|
+
<nav id="classindex-section" class="section project-section">
|
116
|
+
<h3 class="section-header">Class and Module Index</h3>
|
117
|
+
|
118
|
+
<ul class="link-list">
|
119
|
+
|
120
|
+
<li><a href="../Sword2Ruby.html">Sword2Ruby</a>
|
121
|
+
|
122
|
+
<li><a href="../Sword2Ruby/Atom.html">Sword2Ruby::Atom</a>
|
123
|
+
|
124
|
+
<li><a href="../Sword2Ruby/AutoDiscover.html">Sword2Ruby::AutoDiscover</a>
|
125
|
+
|
126
|
+
<li><a href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a>
|
127
|
+
|
128
|
+
<li><a href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
129
|
+
|
130
|
+
<li><a href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a>
|
131
|
+
|
132
|
+
<li><a href="../Sword2Ruby/SwordAccept.html">Sword2Ruby::SwordAccept</a>
|
133
|
+
|
134
|
+
<li><a href="../Sword2Ruby/SwordStatementOAIORE.html">Sword2Ruby::SwordStatementOAIORE</a>
|
135
|
+
|
136
|
+
<li><a href="../Sword2Ruby/User.html">Sword2Ruby::User</a>
|
137
|
+
|
138
|
+
<li><a href="../Sword2Ruby/Utility.html">Sword2Ruby::Utility</a>
|
139
|
+
|
140
|
+
<li><a href="../Atom.html">Atom</a>
|
141
|
+
|
142
|
+
<li><a href="../Atom/Collection.html">Atom::Collection</a>
|
143
|
+
|
144
|
+
<li><a href="../Atom/Element.html">Atom::Element</a>
|
145
|
+
|
146
|
+
<li><a href="../Atom/Entry.html">Atom::Entry</a>
|
147
|
+
|
148
|
+
<li><a href="../Atom/Feed.html">Atom::Feed</a>
|
149
|
+
|
150
|
+
<li><a href="../Atom/Service.html">Atom::Service</a>
|
151
|
+
|
152
|
+
<li><a href="../REXML.html">REXML</a>
|
153
|
+
|
154
|
+
<li><a href="../REXML/Element.html">REXML::Element</a>
|
155
|
+
|
156
|
+
<li><a href="../Object.html">Object</a>
|
157
|
+
|
158
|
+
</ul>
|
159
|
+
</nav>
|
160
|
+
|
161
|
+
</div>
|
162
|
+
</nav>
|
163
|
+
|
164
|
+
<div id="documentation">
|
165
|
+
<h1 class="class">class Atom::Collection</h1>
|
166
|
+
|
167
|
+
<div id="description" class="description">
|
168
|
+
|
169
|
+
<p>Extensions to the <a
|
170
|
+
href="https://github.com/bct/atom-tools/wiki">atom-tools</a> <a
|
171
|
+
href="Collection.html">Atom::Collection</a> class to support Sword2
|
172
|
+
operations. These methods are additive to those supplied by the atom-tools
|
173
|
+
gem.</p>
|
174
|
+
|
175
|
+
<p>Please see the <a
|
176
|
+
href="http://rdoc.info/github/bct/atom-tools/master/frames">atom-tools
|
177
|
+
documentation</a> for a complete list of attributes and methods.</p>
|
178
|
+
|
179
|
+
</div><!-- description -->
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
<section id="5Buntitled-5D" class="documentation-section">
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
<!-- Methods -->
|
194
|
+
|
195
|
+
<section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
|
196
|
+
<h3 class="section-header">Public Instance Methods</h3>
|
197
|
+
|
198
|
+
|
199
|
+
<div id="method-i-app_accept" class="method-detail ">
|
200
|
+
|
201
|
+
<div class="method-heading">
|
202
|
+
<span class="method-name">app_accept</span><span
|
203
|
+
class="method-args">()</span>
|
204
|
+
<span class="method-click-advice">click to toggle source</span>
|
205
|
+
</div>
|
206
|
+
|
207
|
+
|
208
|
+
<div class="method-description">
|
209
|
+
|
210
|
+
<p>This method returns the string value of the <<a
|
211
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_retreivingservicedocument">app:accept></a>
|
212
|
+
tag, or nil if it not defined in the service document.</p>
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
<div class="method-source-code" id="app_accept-source">
|
217
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/collection.rb, line 56</span>
|
218
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">app_accept</span>
|
219
|
+
<span class="ruby-identifier">sword_accepts</span>.<span class="ruby-identifier">find</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">alternate</span>.<span class="ruby-identifier">nil?</span> }
|
220
|
+
<span class="ruby-keyword">end</span></pre>
|
221
|
+
</div><!-- app_accept-source -->
|
222
|
+
|
223
|
+
</div>
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
|
228
|
+
</div><!-- app_accept-method -->
|
229
|
+
|
230
|
+
|
231
|
+
<div id="method-i-app_accept_alternate_multipart_related" class="method-detail ">
|
232
|
+
|
233
|
+
<div class="method-heading">
|
234
|
+
<span class="method-name">app_accept_alternate_multipart_related</span><span
|
235
|
+
class="method-args">()</span>
|
236
|
+
<span class="method-click-advice">click to toggle source</span>
|
237
|
+
</div>
|
238
|
+
|
239
|
+
|
240
|
+
<div class="method-description">
|
241
|
+
|
242
|
+
<p>This method returns the string value of the <app:accept <a
|
243
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_retreivingservicedocument">alternate=“multipart-related”></a>
|
244
|
+
tag, or nil if it not defined in the service document.</p>
|
245
|
+
|
246
|
+
|
247
|
+
|
248
|
+
<div class="method-source-code" id="app_accept_alternate_multipart_related-source">
|
249
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/collection.rb, line 62</span>
|
250
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">app_accept_alternate_multipart_related</span>
|
251
|
+
<span class="ruby-identifier">sword_accepts</span>.<span class="ruby-identifier">find</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">alternate</span> <span class="ruby-operator">==</span> <span class="ruby-string">"multipart-related"</span> }
|
252
|
+
<span class="ruby-keyword">end</span></pre>
|
253
|
+
</div><!-- app_accept_alternate_multipart_related-source -->
|
254
|
+
|
255
|
+
</div>
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
|
260
|
+
</div><!-- app_accept_alternate_multipart_related-method -->
|
261
|
+
|
262
|
+
|
263
|
+
<div id="method-i-collection_uri" class="method-detail ">
|
264
|
+
|
265
|
+
<div class="method-heading">
|
266
|
+
<span class="method-name">collection_uri</span><span
|
267
|
+
class="method-args">()</span>
|
268
|
+
<span class="method-click-advice">click to toggle source</span>
|
269
|
+
</div>
|
270
|
+
|
271
|
+
|
272
|
+
<div class="method-description">
|
273
|
+
|
274
|
+
<p>This method returns the URI string from the @href attribute of the <a
|
275
|
+
href="Collection.html">Collection</a>, or nil if it is not defined.</p>
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
<div class="method-source-code" id="collection_uri-source">
|
280
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/collection.rb, line 20</span>
|
281
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">collection_uri</span>
|
282
|
+
<span class="ruby-ivar">@href</span>
|
283
|
+
<span class="ruby-keyword">end</span></pre>
|
284
|
+
</div><!-- collection_uri-source -->
|
285
|
+
|
286
|
+
</div>
|
287
|
+
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
</div><!-- collection_uri-method -->
|
292
|
+
|
293
|
+
|
294
|
+
<div id="method-i-post-21" class="method-detail ">
|
295
|
+
|
296
|
+
<div class="method-heading">
|
297
|
+
<span class="method-name">post!</span><span
|
298
|
+
class="method-args">(params = {})</span>
|
299
|
+
<span class="method-click-advice">click to toggle source</span>
|
300
|
+
</div>
|
301
|
+
|
302
|
+
|
303
|
+
<div class="method-description">
|
304
|
+
|
305
|
+
<p>This method creates a new entry in the collection by posting an <a
|
306
|
+
href="../Atom.html">Atom</a> entry to the collection URI. The method will
|
307
|
+
return a <a
|
308
|
+
href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
309
|
+
object, or raise a <a
|
310
|
+
href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a> in the case
|
311
|
+
of an error.</p>
|
312
|
+
|
313
|
+
<h3 id="method-i-post-21-label-Parameters+%28passed+as+a+hash+collection%29">Parameters (passed as a hash collection)</h3>
|
314
|
+
<dl class="rdoc-list note-list"><dt>:entry
|
315
|
+
<dd>
|
316
|
+
<p>an <a href="Entry.html">Atom::Entry</a> to be added to the collection</p>
|
317
|
+
</dd><dt>:slug
|
318
|
+
<dd>
|
319
|
+
<p>(optional) string value indicating the suggested identifier of the new
|
320
|
+
entry</p>
|
321
|
+
</dd><dt>:<a href="Collection.html#method-i-collection_uri">#collection_uri</a>
|
322
|
+
<dd>
|
323
|
+
<p>(optional) the collection URI to post to. If not supplied, this will
|
324
|
+
default to the current collection’s URI as specified in the @href
|
325
|
+
attribute.</p>
|
326
|
+
</dd><dt>:in_progress
|
327
|
+
<dd>
|
328
|
+
<p>(optional) boolean value indicating whether the new entry will be completed
|
329
|
+
at a later date</p>
|
330
|
+
</dd><dt>:on_behalf_of
|
331
|
+
<dd>
|
332
|
+
<p>(optional) string value indicating username on whos behalf the submission
|
333
|
+
is being performed</p>
|
334
|
+
</dd><dt>:connection
|
335
|
+
<dd>
|
336
|
+
<p>(optional) <a
|
337
|
+
href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a> object used
|
338
|
+
to perform the operation. If not supplied, the existing collection’s
|
339
|
+
connection will be used.</p>
|
340
|
+
</dd></dl>
|
341
|
+
|
342
|
+
<p>Note that you should call <strong><collection>.feed.updated!</strong>
|
343
|
+
followed by <strong><collection>.feed.update!</strong> after making
|
344
|
+
updates to a collection.</p>
|
345
|
+
|
346
|
+
<p>For more information, see the Sword2 specification: <a
|
347
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_creatingresource_entry">section
|
348
|
+
6.3.3. “Creating a Resource with an Atom Entry”</a>.</p>
|
349
|
+
|
350
|
+
|
351
|
+
|
352
|
+
<div class="method-source-code" id="post-21-source">
|
353
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/collection.rb, line 81</span>
|
354
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">post!</span>(<span class="ruby-identifier">params</span> = {})
|
355
|
+
<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>)
|
356
|
+
<span class="ruby-identifier">defaults</span> = {
|
357
|
+
<span class="ruby-value">:entry</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
358
|
+
<span class="ruby-value">:slug</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
359
|
+
<span class="ruby-value">:collection_uri</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">collection_uri</span>,
|
360
|
+
<span class="ruby-value">:in_progress</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
361
|
+
<span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
362
|
+
<span class="ruby-value">:connection</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@http</span>
|
363
|
+
}
|
364
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">params</span>)
|
365
|
+
|
366
|
+
<span class="ruby-comment">#Validate parameters</span>
|
367
|
+
<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>)
|
368
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':slug'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:slug</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:slug</span>]
|
369
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':collection_uri'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:collection_uri</span>], <span class="ruby-constant">String</span>)
|
370
|
+
<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>]
|
371
|
+
<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>)
|
372
|
+
|
373
|
+
<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> }
|
374
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Slug"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:slug</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:slug</span>]
|
375
|
+
<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>)
|
376
|
+
<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>]
|
377
|
+
|
378
|
+
<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">:collection_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>)
|
379
|
+
<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>
|
380
|
+
<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>])
|
381
|
+
<span class="ruby-keyword">else</span>
|
382
|
+
<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[:collection_uri]}): server returned code #{response.code} #{response.message}"</span>)
|
383
|
+
<span class="ruby-keyword">end</span>
|
384
|
+
<span class="ruby-keyword">end</span></pre>
|
385
|
+
</div><!-- post-21-source -->
|
386
|
+
|
387
|
+
</div>
|
388
|
+
|
389
|
+
|
390
|
+
|
391
|
+
|
392
|
+
</div><!-- post-21-method -->
|
393
|
+
|
394
|
+
|
395
|
+
<div id="method-i-post_media-21" class="method-detail ">
|
396
|
+
|
397
|
+
<div class="method-heading">
|
398
|
+
<span class="method-name">post_media!</span><span
|
399
|
+
class="method-args">(params = {})</span>
|
400
|
+
<span class="method-click-advice">click to toggle source</span>
|
401
|
+
</div>
|
402
|
+
|
403
|
+
|
404
|
+
<div class="method-description">
|
405
|
+
|
406
|
+
<p>This method creates a new entry in the collection by posting a file to the
|
407
|
+
collection URI. An MD5-digest will be calculated automatically from the
|
408
|
+
file and sent to the server with the request. The method will return a <a
|
409
|
+
href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
410
|
+
object, or raise a <a
|
411
|
+
href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a> in the case
|
412
|
+
of an error.</p>
|
413
|
+
|
414
|
+
<h3 id="method-i-post_media-21-label-Parameters+%28passed+as+a+hash+collection%29">Parameters (passed as a hash collection)</h3>
|
415
|
+
<dl class="rdoc-list note-list"><dt>:filepath
|
416
|
+
<dd>
|
417
|
+
<p>a filepath string indicating the file to be posted. The file must be
|
418
|
+
readable by the process.</p>
|
419
|
+
</dd><dt>:content_type
|
420
|
+
<dd>
|
421
|
+
<p>the mime content-type string of the file, e.g. “application/zip” or
|
422
|
+
“text/plain”</p>
|
423
|
+
</dd><dt>:packaging
|
424
|
+
<dd>
|
425
|
+
<p>(optional) the Sword packaging string of the file, e.g. “<a
|
426
|
+
href="http://purl.org/net/sword/package/METSDSpaceSIP">purl.org/net/sword/package/METSDSpaceSIP</a>”</p>
|
427
|
+
</dd><dt>:slug
|
428
|
+
<dd>
|
429
|
+
<p>(optional) the suggested identifier of the new entry</p>
|
430
|
+
</dd><dt>:<a href="Collection.html#method-i-collection_uri">#collection_uri</a>
|
431
|
+
<dd>
|
432
|
+
<p>(optional) the collection URI to post to. If not supplied, this will
|
433
|
+
default to the current collection’s URI as specified in the @href
|
434
|
+
attribute.</p>
|
435
|
+
</dd><dt>:in_progress
|
436
|
+
<dd>
|
437
|
+
<p>(optional) boolean value indicating whether the new entry will be completed
|
438
|
+
at a later date</p>
|
439
|
+
</dd><dt>:on_behalf_of
|
440
|
+
<dd>
|
441
|
+
<p>(optional) username on whos behalf the submission is being performed</p>
|
442
|
+
</dd><dt>:connection
|
443
|
+
<dd>
|
444
|
+
<p>(optional) <a
|
445
|
+
href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a> object used
|
446
|
+
to perform the operation. If not supplied, the existing collection’s
|
447
|
+
connection will be used.</p>
|
448
|
+
</dd></dl>
|
449
|
+
|
450
|
+
<p>Note that you should call <strong><collection>.feed.updated!</strong>
|
451
|
+
followed by <strong><collection>.feed.update!</strong> after making
|
452
|
+
updates to a collection.</p>
|
453
|
+
|
454
|
+
<p>For more information, see the Sword2 specification: <a
|
455
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_creatingresource_binary">section
|
456
|
+
6.3.1. “Creating a Resource with a Binary File Deposit”</a>.</p>
|
457
|
+
|
458
|
+
|
459
|
+
|
460
|
+
<div class="method-source-code" id="post_media-21-source">
|
461
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/collection.rb, line 129</span>
|
462
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">post_media!</span>(<span class="ruby-identifier">params</span> = {})
|
463
|
+
<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>)
|
464
|
+
<span class="ruby-identifier">defaults</span> = {
|
465
|
+
<span class="ruby-value">:filepath</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
466
|
+
<span class="ruby-value">:content_type</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
467
|
+
<span class="ruby-value">:packaging</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
468
|
+
<span class="ruby-value">:slug</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
469
|
+
<span class="ruby-value">:collection_uri</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">collection_uri</span>,
|
470
|
+
<span class="ruby-value">:in_progress</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
471
|
+
<span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
472
|
+
<span class="ruby-value">:connection</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@http</span>
|
473
|
+
}
|
474
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">params</span>)
|
475
|
+
|
476
|
+
<span class="ruby-comment">#Validate parameters</span>
|
477
|
+
<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>)
|
478
|
+
<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>)
|
479
|
+
<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>]
|
480
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':slug'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:slug</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:slug</span>]
|
481
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':collection_uri'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:collection_uri</span>], <span class="ruby-constant">String</span>)
|
482
|
+
<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>]
|
483
|
+
<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>)
|
484
|
+
|
485
|
+
<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>])
|
486
|
+
|
487
|
+
<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>]}
|
488
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Content-Disposition"</span>] = <span class="ruby-node">"attachment; filename=#{filename}"</span>
|
489
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Content-MD5"</span>] = <span class="ruby-identifier">md5</span>
|
490
|
+
<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>]
|
491
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Slug"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:slug</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:slug</span>]
|
492
|
+
<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>)
|
493
|
+
<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>]
|
494
|
+
|
495
|
+
<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">:collection_uri</span>], <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
|
496
|
+
|
497
|
+
<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>
|
498
|
+
<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>])
|
499
|
+
<span class="ruby-keyword">else</span>
|
500
|
+
<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[:collection_uri]}): server returned #{response.code} #{response.message}"</span>)
|
501
|
+
<span class="ruby-keyword">end</span>
|
502
|
+
<span class="ruby-keyword">end</span></pre>
|
503
|
+
</div><!-- post_media-21-source -->
|
504
|
+
|
505
|
+
</div>
|
506
|
+
|
507
|
+
|
508
|
+
|
509
|
+
|
510
|
+
</div><!-- post_media-21-method -->
|
511
|
+
|
512
|
+
|
513
|
+
<div id="method-i-post_multipart-21" class="method-detail ">
|
514
|
+
|
515
|
+
<div class="method-heading">
|
516
|
+
<span class="method-name">post_multipart!</span><span
|
517
|
+
class="method-args">(params = {})</span>
|
518
|
+
<span class="method-click-advice">click to toggle source</span>
|
519
|
+
</div>
|
520
|
+
|
521
|
+
|
522
|
+
<div class="method-description">
|
523
|
+
|
524
|
+
<p>This method creates a new entry in the collection by posting a file and
|
525
|
+
atom-entry to the collection URI. An MD5-digest will be calculated
|
526
|
+
automatically from the file and sent to the server with the request. The
|
527
|
+
method will return a <a
|
528
|
+
href="../Sword2Ruby/DepositReceipt.html">Sword2Ruby::DepositReceipt</a>
|
529
|
+
object, or raise a <a
|
530
|
+
href="../Sword2Ruby/Exception.html">Sword2Ruby::Exception</a> in the case
|
531
|
+
of an error.</p>
|
532
|
+
|
533
|
+
<h3 id="method-i-post_multipart-21-label-Parameters+%28passed+as+a+hash+collection%29">Parameters (passed as a hash collection)</h3>
|
534
|
+
<dl class="rdoc-list note-list"><dt>:entry
|
535
|
+
<dd>
|
536
|
+
<p>an <a href="Entry.html">Atom::Entry</a> to be added to the collection</p>
|
537
|
+
</dd><dt>:filepath
|
538
|
+
<dd>
|
539
|
+
<p>a filepath string indicating the file to be posted. The file must be
|
540
|
+
readable by the process.</p>
|
541
|
+
</dd><dt>:content_type
|
542
|
+
<dd>
|
543
|
+
<p>the mime content-type string of the file, e.g. “application/zip” or
|
544
|
+
“text/plain”</p>
|
545
|
+
</dd><dt>:packaging
|
546
|
+
<dd>
|
547
|
+
<p>(optional) the Sword packaging string of the file, e.g. “<a
|
548
|
+
href="http://purl.org/net/sword/package/METSDSpaceSIP">purl.org/net/sword/package/METSDSpaceSIP</a>”</p>
|
549
|
+
</dd><dt>:slug
|
550
|
+
<dd>
|
551
|
+
<p>(optional) the suggested identifier of the new entry</p>
|
552
|
+
</dd><dt>:<a href="Collection.html#method-i-collection_uri">#collection_uri</a>
|
553
|
+
<dd>
|
554
|
+
<p>(optional) the collection URI to post to. If not supplied, this will
|
555
|
+
default to the current collection’s URI as specified in the @href
|
556
|
+
attribute.</p>
|
557
|
+
</dd><dt>:in_progress
|
558
|
+
<dd>
|
559
|
+
<p>(optional) boolean value indicating whether the new entry will be completed
|
560
|
+
at a later date</p>
|
561
|
+
</dd><dt>:on_behalf_of
|
562
|
+
<dd>
|
563
|
+
<p>(optional) username on whos behalf the submission is being performed</p>
|
564
|
+
</dd><dt>:connection
|
565
|
+
<dd>
|
566
|
+
<p>(optional) <a
|
567
|
+
href="../Sword2Ruby/Connection.html">Sword2Ruby::Connection</a> object used
|
568
|
+
to perform the operation. If not supplied, the existing collection’s
|
569
|
+
connection will be used.</p>
|
570
|
+
</dd></dl>
|
571
|
+
|
572
|
+
<p>Note that you should call <strong><collection>.feed.updated!</strong>
|
573
|
+
followed by <strong><collection>.feed.update!</strong> after making
|
574
|
+
updates to a collection.</p>
|
575
|
+
|
576
|
+
<p>For more information, see the Sword2 specification: <a
|
577
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_creatingresource_multipart">section
|
578
|
+
6.3.2. “Creating a Resource with a Multipart Deposit”</a>.</p>
|
579
|
+
|
580
|
+
|
581
|
+
|
582
|
+
<div class="method-source-code" id="post_multipart-21-source">
|
583
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/collection.rb, line 188</span>
|
584
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">post_multipart!</span>(<span class="ruby-identifier">params</span> = {})
|
585
|
+
<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>)
|
586
|
+
<span class="ruby-identifier">defaults</span> = {
|
587
|
+
<span class="ruby-value">:entry</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
588
|
+
<span class="ruby-value">:filepath</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
589
|
+
<span class="ruby-value">:content_type</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
590
|
+
<span class="ruby-value">:packaging</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
591
|
+
<span class="ruby-value">:slug</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
592
|
+
<span class="ruby-value">:collection_uri</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">collection_uri</span>,
|
593
|
+
<span class="ruby-value">:in_progress</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
594
|
+
<span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>,
|
595
|
+
<span class="ruby-value">:connection</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@http</span>
|
596
|
+
}
|
597
|
+
<span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">params</span>)
|
598
|
+
|
599
|
+
<span class="ruby-comment">#Validate parameters</span>
|
600
|
+
<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>)
|
601
|
+
<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>)
|
602
|
+
<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>)
|
603
|
+
<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>]
|
604
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">'slug'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:slug</span>], <span class="ruby-constant">String</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:slug</span>]
|
605
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">check_argument_class</span>(<span class="ruby-string">':collection_uri'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:collection_uri</span>], <span class="ruby-constant">String</span>)
|
606
|
+
<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>]
|
607
|
+
<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>)
|
608
|
+
|
609
|
+
<span class="ruby-identifier">tmp</span> = <span class="ruby-string">""</span>
|
610
|
+
<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>
|
611
|
+
<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>])
|
612
|
+
|
613
|
+
<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>}
|
614
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"Slug"</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value">:slug</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:slug</span>]
|
615
|
+
<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>)
|
616
|
+
<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>]
|
617
|
+
<span class="ruby-identifier">headers</span>[<span class="ruby-string">"MIME-Version"</span>] = <span class="ruby-string">"1.0"</span>
|
618
|
+
|
619
|
+
|
620
|
+
<span class="ruby-comment"># write boundary identifer to temp</span>
|
621
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"--#{boundary}\r\n"</span>
|
622
|
+
|
623
|
+
<span class="ruby-comment"># write entry relevant headers to temp</span>
|
624
|
+
<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>
|
625
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"Content-Disposition: attachment; name=atom\r\n"</span>
|
626
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"MIME-Version: 1.0\r\n\r\n"</span>
|
627
|
+
|
628
|
+
<span class="ruby-comment"># write entry to temp</span>
|
629
|
+
<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>
|
630
|
+
|
631
|
+
<span class="ruby-comment"># write boundary identifier to temp</span>
|
632
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"--#{boundary}\r\n"</span>
|
633
|
+
|
634
|
+
<span class="ruby-comment"># write media part relevant headers to temp </span>
|
635
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Content-Type: #{options[:content_type]}\r\n"</span>
|
636
|
+
<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>
|
637
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Content-MD5: #{md5}\r\n"</span>
|
638
|
+
<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>]
|
639
|
+
<span class="ruby-identifier">tmp</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"MIME-Version: 1.0\r\n\r\n"</span>
|
640
|
+
|
641
|
+
<span class="ruby-comment"># write the file base64 encoded to temp</span>
|
642
|
+
<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>)
|
643
|
+
|
644
|
+
<span class="ruby-comment"># write boundary identifier to temp</span>
|
645
|
+
<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>
|
646
|
+
|
647
|
+
<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">:collection_uri</span>], <span class="ruby-identifier">tmp</span>, <span class="ruby-identifier">headers</span>)
|
648
|
+
|
649
|
+
<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>
|
650
|
+
<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>])
|
651
|
+
<span class="ruby-keyword">else</span>
|
652
|
+
<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[:collection_uri]}): server returned #{response.code} #{response.message}"</span>)
|
653
|
+
<span class="ruby-keyword">end</span>
|
654
|
+
<span class="ruby-keyword">end</span></pre>
|
655
|
+
</div><!-- post_multipart-21-source -->
|
656
|
+
|
657
|
+
</div>
|
658
|
+
|
659
|
+
|
660
|
+
|
661
|
+
|
662
|
+
</div><!-- post_multipart-21-method -->
|
663
|
+
|
664
|
+
|
665
|
+
<div id="method-i-sword_accept_packagings" class="method-detail ">
|
666
|
+
|
667
|
+
<div class="method-heading">
|
668
|
+
<span class="method-name">sword_accept_packagings</span><span
|
669
|
+
class="method-args">()</span>
|
670
|
+
<span class="method-click-advice">click to toggle source</span>
|
671
|
+
</div>
|
672
|
+
|
673
|
+
|
674
|
+
<div class="method-description">
|
675
|
+
|
676
|
+
<p>This method returns an array of the string values of the <<a
|
677
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_retreivingservicedocument">sword:acceptPackaging></a>
|
678
|
+
tags, or an empty array [ ] if none are defined in the service document.</p>
|
679
|
+
|
680
|
+
|
681
|
+
|
682
|
+
<div class="method-source-code" id="sword_accept_packagings-source">
|
683
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/collection.rb, line 44</span>
|
684
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_accept_packagings</span>
|
685
|
+
<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:acceptPackaging"</span>)
|
686
|
+
<span class="ruby-keyword">end</span></pre>
|
687
|
+
</div><!-- sword_accept_packagings-source -->
|
688
|
+
|
689
|
+
</div>
|
690
|
+
|
691
|
+
|
692
|
+
|
693
|
+
|
694
|
+
</div><!-- sword_accept_packagings-method -->
|
695
|
+
|
696
|
+
|
697
|
+
<div id="method-i-sword_collection_policy" class="method-detail ">
|
698
|
+
|
699
|
+
<div class="method-heading">
|
700
|
+
<span class="method-name">sword_collection_policy</span><span
|
701
|
+
class="method-args">()</span>
|
702
|
+
<span class="method-click-advice">click to toggle source</span>
|
703
|
+
</div>
|
704
|
+
|
705
|
+
|
706
|
+
<div class="method-description">
|
707
|
+
|
708
|
+
<p>This method returns the string value of the <<a
|
709
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_retreivingservicedocument">sword:collectionPolicy></a>,
|
710
|
+
or nil if it is not defined in the service document.</p>
|
711
|
+
|
712
|
+
|
713
|
+
|
714
|
+
<div class="method-source-code" id="sword_collection_policy-source">
|
715
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/collection.rb, line 26</span>
|
716
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_collection_policy</span>
|
717
|
+
<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:collectionPolicy"</span>)
|
718
|
+
<span class="ruby-keyword">end</span></pre>
|
719
|
+
</div><!-- sword_collection_policy-source -->
|
720
|
+
|
721
|
+
</div>
|
722
|
+
|
723
|
+
|
724
|
+
|
725
|
+
|
726
|
+
</div><!-- sword_collection_policy-method -->
|
727
|
+
|
728
|
+
|
729
|
+
<div id="method-i-sword_mediation" class="method-detail ">
|
730
|
+
|
731
|
+
<div class="method-heading">
|
732
|
+
<span class="method-name">sword_mediation</span><span
|
733
|
+
class="method-args">()</span>
|
734
|
+
<span class="method-click-advice">click to toggle source</span>
|
735
|
+
</div>
|
736
|
+
|
737
|
+
|
738
|
+
<div class="method-description">
|
739
|
+
|
740
|
+
<p>This method returns the boolean value of the <<a
|
741
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_retreivingservicedocument">sword:mediation></a>
|
742
|
+
tag, or false if it is not defined in the service document.</p>
|
743
|
+
|
744
|
+
|
745
|
+
|
746
|
+
<div class="method-source-code" id="sword_mediation-source">
|
747
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/collection.rb, line 32</span>
|
748
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_mediation</span>
|
749
|
+
<span class="ruby-constant">Utility</span>.<span class="ruby-identifier">find_element_boolean</span>(<span class="ruby-identifier">extensions</span>, <span class="ruby-string">"sword:mediation"</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword">false</span>
|
750
|
+
<span class="ruby-keyword">end</span></pre>
|
751
|
+
</div><!-- sword_mediation-source -->
|
752
|
+
|
753
|
+
</div>
|
754
|
+
|
755
|
+
|
756
|
+
|
757
|
+
|
758
|
+
</div><!-- sword_mediation-method -->
|
759
|
+
|
760
|
+
|
761
|
+
<div id="method-i-sword_services" class="method-detail ">
|
762
|
+
|
763
|
+
<div class="method-heading">
|
764
|
+
<span class="method-name">sword_services</span><span
|
765
|
+
class="method-args">()</span>
|
766
|
+
<span class="method-click-advice">click to toggle source</span>
|
767
|
+
</div>
|
768
|
+
|
769
|
+
|
770
|
+
<div class="method-description">
|
771
|
+
|
772
|
+
<p>This method returns an array of the string values of the <<a
|
773
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_retreivingservicedocument">sword:service></a>
|
774
|
+
tags, or an empty array [ ] if none are defined in the service document.</p>
|
775
|
+
|
776
|
+
|
777
|
+
|
778
|
+
<div class="method-source-code" id="sword_services-source">
|
779
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/collection.rb, line 50</span>
|
780
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_services</span>
|
781
|
+
<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:service"</span>)
|
782
|
+
<span class="ruby-keyword">end</span></pre>
|
783
|
+
</div><!-- sword_services-source -->
|
784
|
+
|
785
|
+
</div>
|
786
|
+
|
787
|
+
|
788
|
+
|
789
|
+
|
790
|
+
</div><!-- sword_services-method -->
|
791
|
+
|
792
|
+
|
793
|
+
<div id="method-i-sword_treatment" class="method-detail ">
|
794
|
+
|
795
|
+
<div class="method-heading">
|
796
|
+
<span class="method-name">sword_treatment</span><span
|
797
|
+
class="method-args">()</span>
|
798
|
+
<span class="method-click-advice">click to toggle source</span>
|
799
|
+
</div>
|
800
|
+
|
801
|
+
|
802
|
+
<div class="method-description">
|
803
|
+
|
804
|
+
<p>This method returns the string value of the <<a
|
805
|
+
href="http://sword-app.svn.sourceforge.net/viewvc/sword-app/spec/tags/sword-2.0/SWORDProfile.html?revision=377#protocoloperations_retreivingservicedocument">sword:treatment></a>
|
806
|
+
tag, or nil if it is not defined in the service document.</p>
|
807
|
+
|
808
|
+
|
809
|
+
|
810
|
+
<div class="method-source-code" id="sword_treatment-source">
|
811
|
+
<pre><span class="ruby-comment"># File lib/sword2ruby/collection.rb, line 38</span>
|
812
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sword_treatment</span>
|
813
|
+
<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>)
|
814
|
+
<span class="ruby-keyword">end</span></pre>
|
815
|
+
</div><!-- sword_treatment-source -->
|
816
|
+
|
817
|
+
</div>
|
818
|
+
|
819
|
+
|
820
|
+
|
821
|
+
|
822
|
+
</div><!-- sword_treatment-method -->
|
823
|
+
|
824
|
+
|
825
|
+
</section><!-- public-instance-method-details -->
|
826
|
+
|
827
|
+
</section><!-- 5Buntitled-5D -->
|
828
|
+
|
829
|
+
</div><!-- documentation -->
|
830
|
+
|
831
|
+
|
832
|
+
<footer id="validator-badges">
|
833
|
+
<p><a href="http://validator.w3.org/check/referer">[Validate]</a>
|
834
|
+
<p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.
|
835
|
+
<p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
|
836
|
+
</footer>
|
837
|
+
|