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.
Files changed (92) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +30 -0
  4. data/LICENCE +35 -0
  5. data/README.md +43 -0
  6. data/Rakefile +53 -0
  7. data/doc/Atom/Collection.html +837 -0
  8. data/doc/Atom/Element.html +197 -0
  9. data/doc/Atom/Entry.html +1795 -0
  10. data/doc/Atom/Feed.html +297 -0
  11. data/doc/Atom/Service.html +363 -0
  12. data/doc/Atom.html +158 -0
  13. data/doc/Gemfile.html +125 -0
  14. data/doc/Object.html +165 -0
  15. data/doc/REXML/Element.html +493 -0
  16. data/doc/REXML.html +158 -0
  17. data/doc/Rakefile.html +123 -0
  18. data/doc/Sword2Ruby/Atom.html +169 -0
  19. data/doc/Sword2Ruby/AutoDiscover.html +327 -0
  20. data/doc/Sword2Ruby/Connection.html +274 -0
  21. data/doc/Sword2Ruby/DepositReceipt.html +331 -0
  22. data/doc/Sword2Ruby/Exception.html +168 -0
  23. data/doc/Sword2Ruby/SwordAccept.html +169 -0
  24. data/doc/Sword2Ruby/SwordStatementOAIORE.html +277 -0
  25. data/doc/Sword2Ruby/User.html +272 -0
  26. data/doc/Sword2Ruby/Utility.html +1101 -0
  27. data/doc/Sword2Ruby.html +213 -0
  28. data/doc/created.rid +29 -0
  29. data/doc/images/add.png +0 -0
  30. data/doc/images/brick.png +0 -0
  31. data/doc/images/brick_link.png +0 -0
  32. data/doc/images/bug.png +0 -0
  33. data/doc/images/bullet_black.png +0 -0
  34. data/doc/images/bullet_toggle_minus.png +0 -0
  35. data/doc/images/bullet_toggle_plus.png +0 -0
  36. data/doc/images/date.png +0 -0
  37. data/doc/images/delete.png +0 -0
  38. data/doc/images/find.png +0 -0
  39. data/doc/images/loadingAnimation.gif +0 -0
  40. data/doc/images/macFFBgHack.png +0 -0
  41. data/doc/images/package.png +0 -0
  42. data/doc/images/page_green.png +0 -0
  43. data/doc/images/page_white_text.png +0 -0
  44. data/doc/images/page_white_width.png +0 -0
  45. data/doc/images/plugin.png +0 -0
  46. data/doc/images/ruby.png +0 -0
  47. data/doc/images/tag_blue.png +0 -0
  48. data/doc/images/tag_green.png +0 -0
  49. data/doc/images/transparent.png +0 -0
  50. data/doc/images/wrench.png +0 -0
  51. data/doc/images/wrench_orange.png +0 -0
  52. data/doc/images/zoom.png +0 -0
  53. data/doc/index.html +118 -0
  54. data/doc/js/darkfish.js +153 -0
  55. data/doc/js/jquery.js +18 -0
  56. data/doc/js/navigation.js +142 -0
  57. data/doc/js/search.js +94 -0
  58. data/doc/js/search_index.js +1 -0
  59. data/doc/js/searcher.js +228 -0
  60. data/doc/rdoc.css +543 -0
  61. data/doc/spec/fixtures/example_txt.html +125 -0
  62. data/doc/table_of_contents.html +267 -0
  63. data/lib/sword2ruby/auto_discover.rb +71 -0
  64. data/lib/sword2ruby/collection.rb +261 -0
  65. data/lib/sword2ruby/connection.rb +37 -0
  66. data/lib/sword2ruby/constant.rb +35 -0
  67. data/lib/sword2ruby/deposit_receipt.rb +52 -0
  68. data/lib/sword2ruby/element.rb +12 -0
  69. data/lib/sword2ruby/entry.rb +602 -0
  70. data/lib/sword2ruby/exception.rb +7 -0
  71. data/lib/sword2ruby/feed.rb +34 -0
  72. data/lib/sword2ruby/rexml_element.rb +79 -0
  73. data/lib/sword2ruby/service.rb +79 -0
  74. data/lib/sword2ruby/sword_accept.rb +10 -0
  75. data/lib/sword2ruby/sword_statement_oai_ore.rb +38 -0
  76. data/lib/sword2ruby/user.rb +25 -0
  77. data/lib/sword2ruby/utility.rb +232 -0
  78. data/lib/sword2ruby/version.rb +4 -0
  79. data/lib/sword2ruby.rb +32 -0
  80. data/spec/auto_discover_spec.rb +30 -0
  81. data/spec/collection_spec.rb +33 -0
  82. data/spec/connection_spec.rb +21 -0
  83. data/spec/end_to_end_spec.rb +235 -0
  84. data/spec/fixtures/example.txt +3 -0
  85. data/spec/fixtures/snowflake.png +0 -0
  86. data/spec/fixtures/zip-test.zip +0 -0
  87. data/spec/service_spec.rb +38 -0
  88. data/spec/statement_spec.rb +53 -0
  89. data/spec/test_constants.rb +32 -0
  90. data/sword2ruby.gemspec +42 -0
  91. data/sword2ruby.tmproj +27 -0
  92. metadata +197 -0
@@ -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">&quot;http://purl.org/dc/terms/&quot;</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">&lt;&lt;</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 &lt;link rel=“alternate”&gt; 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">&quot;alternate&quot;</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>&lt;collection&gt;.feed.updated!</strong>
344
+ followed by <strong>&lt;collection&gt;.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">&gt;</span> <span class="ruby-identifier">entry_edit_uri</span>,
359
+ <span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
360
+ <span class="ruby-value">:connection</span> =<span class="ruby-operator">&gt;</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">&quot;On-Behalf-Of&quot;</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">&quot;Failed to do delete!(#{options[:entry_edit_uri]}): server returned #{response.code} #{response.message}&quot;</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">&quot;http://purl.org/dc/terms/&quot;</span> <span class="ruby-operator">&amp;&amp;</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>&lt;collection&gt;.feed.updated!</strong>
468
+ followed by <strong>&lt;collection&gt;.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">&gt;</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">&gt;</span> <span class="ruby-keyword">nil</span>,
484
+ <span class="ruby-value">:connection</span> =<span class="ruby-operator">&gt;</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">&quot;On-Behalf-Of&quot;</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">&quot;Failed to do delete_media!(#{options[:edit_media_uri]}): server returned #{response.code} #{response.message}&quot;</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">&quot;http://purl.org/dc/terms/&quot;</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> &lt;link rel=“edit-media”&gt; 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">&quot;edit-media&quot;</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
+ &lt;link rel=“edit”&gt; 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">&quot;edit&quot;</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>&lt;collection&gt;.feed.updated!</strong>
725
+ followed by <strong>&lt;collection&gt;.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">&quot;The Improved Burrito&quot;</span>
735
+ <span class="ruby-identifier">additional_entry</span>.<span class="ruby-identifier">summary</span> = <span class="ruby-string">&quot;Adding some extra metadata to the existing entry&quot;</span>
736
+ <span class="ruby-identifier">additional_entry</span>.<span class="ruby-identifier">add_dublin_core_extension!</span>(<span class="ruby-string">&quot;publisher&quot;</span>, <span class="ruby-string">&quot;Burrito King&quot;</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">&gt;</span> <span class="ruby-identifier">additional_entry</span>, :<span class="ruby-identifier">in_progress</span> =<span class="ruby-operator">&gt;</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">&gt;</span> <span class="ruby-keyword">self</span>,
754
+ <span class="ruby-value">:sword_edit_uri</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sword_edit_uri</span>,
755
+ <span class="ruby-value">:in_progress</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
756
+ <span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
757
+ <span class="ruby-value">:connection</span> =<span class="ruby-operator">&gt;</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">&quot;Content-Type&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;application/atom+xml;type=entry&quot;</span> }
768
+ <span class="ruby-identifier">headers</span>[<span class="ruby-string">&quot;In-Progress&quot;</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">&quot;On-Behalf-Of&quot;</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">&quot;Failed to do post!(#{options[:sword_edit_uri]}): server returned code #{response.code} #{response.message}&quot;</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>&lt;collection&gt;.feed.updated!</strong>
843
+ followed by <strong>&lt;collection&gt;.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">&gt;</span> <span class="ruby-keyword">nil</span>,
858
+ <span class="ruby-value">:content_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
859
+ <span class="ruby-value">:packaging</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
860
+ <span class="ruby-value">:edit_media_uri</span> =<span class="ruby-operator">&gt;</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">&gt;</span> <span class="ruby-keyword">nil</span>,
862
+ <span class="ruby-value">:metadata_relevant</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
863
+ <span class="ruby-value">:connection</span> =<span class="ruby-operator">&gt;</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">&quot;Content-Type&quot;</span> =<span class="ruby-operator">&gt;</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">&quot;Content-Disposition&quot;</span>] = <span class="ruby-node">&quot;attachment; filename=#{filename}&quot;</span>
879
+ <span class="ruby-identifier">headers</span>[<span class="ruby-string">&quot;Content-MD5&quot;</span>] = <span class="ruby-identifier">md5</span>
880
+ <span class="ruby-identifier">headers</span>[<span class="ruby-string">&quot;Packaging&quot;</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">&quot;Metadata-Relevant&quot;</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">&quot;On-Behalf-Of&quot;</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">&quot;Failed to do post_media!(#{options[:edit_media_uri]}): server returned #{response.code} #{response.message}&quot;</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>&lt;collection&gt;.feed.updated!</strong>
966
+ followed by <strong>&lt;collection&gt;.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">&gt;</span> <span class="ruby-keyword">self</span>,
981
+ <span class="ruby-value">:filepath</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
982
+ <span class="ruby-value">:content_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
983
+ <span class="ruby-value">:packaging</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
984
+ <span class="ruby-value">:sword_edit_uri</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sword_edit_uri</span>,
985
+ <span class="ruby-value">:in_progress</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
986
+ <span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
987
+ <span class="ruby-value">:metadata_relevant</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
988
+ <span class="ruby-value">:connection</span> =<span class="ruby-operator">&gt;</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">&quot;&quot;</span>
1002
+ <span class="ruby-identifier">boundary</span> = <span class="ruby-string">&quot;========&quot;</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">&quot;==&quot;</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">&quot;Content-Type&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'multipart/related; boundary=&quot;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">boundary</span> <span class="ruby-operator">+</span> <span class="ruby-string">'&quot;; type=&quot;application/atom+xml&quot;'</span>}
1007
+ <span class="ruby-identifier">headers</span>[<span class="ruby-string">&quot;In-Progress&quot;</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">&quot;On-Behalf-Of&quot;</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">&quot;MIME-Version&quot;</span>] = <span class="ruby-string">&quot;1.0&quot;</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">&lt;&lt;</span> <span class="ruby-node">&quot;--#{boundary}\r\n&quot;</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">&lt;&lt;</span> <span class="ruby-string">&quot;Content-Type: application/atom+xml; charset=\&quot;utf-8\&quot;\r\n&quot;</span>
1017
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&quot;Content-Disposition: attachment; name=atom\r\n&quot;</span>
1018
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&quot;MIME-Version: 1.0\r\n\r\n&quot;</span>
1019
+
1020
+ <span class="ruby-comment"># write entry to temp</span>
1021
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</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">&quot;\r\n&quot;</span>
1022
+
1023
+ <span class="ruby-comment"># write boundary identifier to temp</span>
1024
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;--#{boundary}\r\n&quot;</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">&lt;&lt;</span> <span class="ruby-node">&quot;Content-Type: #{options[:content_type]}\r\n&quot;</span>
1028
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Content-Disposition: attachment; name=payload; filename=#{filename}\r\n&quot;</span>
1029
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Content-MD5: #{md5}\r\n&quot;</span>
1030
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Packaging: #{options[:packaging]}\r\n&quot;</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">&lt;&lt;</span> <span class="ruby-node">&quot;Metadata-Relevant: #{options[:metadata_relevant].to_s.downcase}\r\n&quot;</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">&lt;&lt;</span> <span class="ruby-string">&quot;MIME-Version: 1.0\r\n\r\n&quot;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="ruby-node">&quot;--#{boundary}--\r\n&quot;</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">&quot;Failed to do post_multipart!(#{options[:sword_edit_uri]}): server returned #{response.code} #{response.message}&quot;</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 = &quot;The Improved Burrito&quot;
1083
+ existing_entry.summary = &quot;Replacing the metadata of an existing entry&quot;
1084
+ existing_entry.add_dublin_core_extension!(&quot;publisher&quot;, &quot;Burrito King&quot;)
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>&lt;collection&gt;.feed.updated!</strong>
1113
+ followed by <strong>&lt;collection&gt;.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">&gt;</span> <span class="ruby-keyword">self</span>,
1128
+ <span class="ruby-value">:entry_edit_uri</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">entry_edit_uri</span>,
1129
+ <span class="ruby-value">:in_progress</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
1130
+ <span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
1131
+ <span class="ruby-value">:connection</span> =<span class="ruby-operator">&gt;</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">&quot;Content-Type&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;application/atom+xml;type=entry&quot;</span> }
1142
+ <span class="ruby-identifier">headers</span>[<span class="ruby-string">&quot;In-Progress&quot;</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">&quot;On-Behalf-Of&quot;</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">&quot;Failed to do put!(#{options[:entry_edit_uri]}): server returned code #{response.code} #{response.message}&quot;</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>&lt;collection&gt;.feed.updated!</strong>
1213
+ followed by <strong>&lt;collection&gt;.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">&gt;</span> <span class="ruby-keyword">nil</span>,
1228
+ <span class="ruby-value">:content_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
1229
+ <span class="ruby-value">:packaging</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
1230
+ <span class="ruby-value">:edit_media_uri</span> =<span class="ruby-operator">&gt;</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">&gt;</span> <span class="ruby-keyword">nil</span>,
1232
+ <span class="ruby-value">:metadata_relevant</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
1233
+ <span class="ruby-value">:connection</span> =<span class="ruby-operator">&gt;</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">&quot;Content-Type&quot;</span> =<span class="ruby-operator">&gt;</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">&quot;Content-Disposition&quot;</span>] = <span class="ruby-node">&quot;attachment; filename=#{filename}&quot;</span>
1249
+ <span class="ruby-identifier">headers</span>[<span class="ruby-string">&quot;Content-MD5&quot;</span>] = <span class="ruby-identifier">md5</span>
1250
+ <span class="ruby-identifier">headers</span>[<span class="ruby-string">&quot;Packaging&quot;</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">&quot;Metadata-Relevant&quot;</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">&quot;On-Behalf-Of&quot;</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">&quot;Failed to do put_media!(#{options[:edit_media_uri]}): server returned #{response.code} #{response.message}&quot;</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>&lt;collection&gt;.feed.updated!</strong>
1329
+ followed by <strong>&lt;collection&gt;.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">&gt;</span> <span class="ruby-keyword">self</span>,
1344
+ <span class="ruby-value">:filepath</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
1345
+ <span class="ruby-value">:content_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
1346
+ <span class="ruby-value">:packaging</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
1347
+ <span class="ruby-value">:entry_edit_uri</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">entry_edit_uri</span>,
1348
+ <span class="ruby-value">:in_progress</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
1349
+ <span class="ruby-value">:on_behalf_of</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
1350
+ <span class="ruby-value">:metadata_relevant</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
1351
+ <span class="ruby-value">:connection</span> =<span class="ruby-operator">&gt;</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">&quot;&quot;</span>
1365
+ <span class="ruby-identifier">boundary</span> = <span class="ruby-string">&quot;========&quot;</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">&quot;==&quot;</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">&quot;Content-Type&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'multipart/related; boundary=&quot;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">boundary</span> <span class="ruby-operator">+</span> <span class="ruby-string">'&quot;; type=&quot;application/atom+xml&quot;'</span>}
1370
+ <span class="ruby-identifier">headers</span>[<span class="ruby-string">&quot;In-Progress&quot;</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">&quot;On-Behalf-Of&quot;</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">&quot;MIME-Version&quot;</span>] = <span class="ruby-string">&quot;1.0&quot;</span>
1373
+
1374
+ <span class="ruby-comment"># write boundary identifer to temp</span>
1375
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;--#{boundary}\r\n&quot;</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">&lt;&lt;</span> <span class="ruby-string">&quot;Content-Type: application/atom+xml; charset=\&quot;utf-8\&quot;\r\n&quot;</span>
1379
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&quot;Content-Disposition: attachment; name=atom\r\n&quot;</span>
1380
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&quot;MIME-Version: 1.0\r\n\r\n&quot;</span>
1381
+
1382
+ <span class="ruby-comment"># write entry to temp</span>
1383
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</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">&quot;\r\n&quot;</span>
1384
+
1385
+ <span class="ruby-comment"># write boundary identifier to temp</span>
1386
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;--#{boundary}\r\n&quot;</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">&lt;&lt;</span> <span class="ruby-node">&quot;Content-Type: #{options[:content_type]}\r\n&quot;</span>
1390
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Content-Disposition: attachment; name=payload; filename=#{filename}\r\n&quot;</span>
1391
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Content-MD5: #{md5}\r\n&quot;</span>
1392
+ <span class="ruby-identifier">tmp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Packaging: #{options[:packaging]}\r\n&quot;</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">&lt;&lt;</span> <span class="ruby-string">&quot;MIME-Version: 1.0\r\n\r\n&quot;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="ruby-node">&quot;--#{boundary}--\r\n&quot;</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">&quot;Failed to do put_multipart!(#{options[:entry_edit_uri]}): server returned #{response.code} #{response.message}&quot;</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 &lt;sword:depositedBy&gt; 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">&quot;sword:depositedBy&quot;</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 &lt;sword:depositedOn&gt; 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">&quot;sword:depositedOn&quot;</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
+ &lt;sword:depositedOnBehalfOf&gt; 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">&quot;sword:depositedOnBehalfOf&quot;</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> &lt;link rel=“<a
1529
+ href="http://purl.org/net/sword/terms/derivedResource">purl.org/net/sword/terms/derivedResource</a>”&gt;
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">&quot;http://purl.org/net/sword/terms/derivedResource&quot;</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
+ &lt;link rel=“<a
1563
+ href="http://purl.org/net/sword/terms/add">purl.org/net/sword/terms/add</a>”&gt;
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">&quot;http://purl.org/net/sword/terms/add&quot;</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">&quot;http://purl.org/net/sword/terms/&quot;</span>, <span class="ruby-string">&quot;http://purl.org/net/sword/terms/originalDeposit&quot;</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 &lt;link rel=“<a
1629
+ href="http://purl.org/net/sword/terms/originalDeposit">purl.org/net/sword/terms/originalDeposit</a>”&gt;
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">&quot;http://purl.org/net/sword/terms/originalDeposit&quot;</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 &lt;sword:packaging&gt; 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">&quot;sword:packaging&quot;</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 &lt;link rel=“<a
1696
+ href="http://purl.org/net/sword/terms/statement">purl.org/net/sword/terms/statement</a>”&gt;
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">&quot;http://purl.org/net/sword/terms/statement&quot;</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> &lt;sword:treatment&gt; 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">&quot;sword:treatment&quot;</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> &lt;sword:verboseDescription&gt; 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">&quot;sword:verboseDescription&quot;</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
+