pho 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. data/CHANGES +6 -0
  2. data/README +9 -1
  3. data/Rakefile +1 -1
  4. data/doc/index.html +3 -1
  5. data/doc/rdoc/classes/Pho/Analyzers.html +310 -0
  6. data/doc/rdoc/classes/Pho/CommandLine.html +770 -0
  7. data/doc/rdoc/classes/Pho/DatatypeProperty.html +241 -0
  8. data/doc/rdoc/classes/Pho/Enrichment/StoreEnricher.html +410 -0
  9. data/doc/rdoc/classes/Pho/Enrichment.html +119 -0
  10. data/doc/rdoc/classes/Pho/Etags.html +310 -0
  11. data/doc/rdoc/classes/Pho/Facet/Results.html +299 -0
  12. data/doc/rdoc/classes/Pho/Facet/Term.html +177 -0
  13. data/doc/rdoc/classes/Pho/Facet.html +119 -0
  14. data/doc/rdoc/classes/Pho/FieldPredicateMap.html +695 -0
  15. data/doc/rdoc/classes/Pho/FieldWeighting.html +230 -0
  16. data/doc/rdoc/classes/Pho/FileManagement/AbstractFileManager.html +478 -0
  17. data/doc/rdoc/classes/Pho/FileManagement/FileManager.html +264 -0
  18. data/doc/rdoc/classes/Pho/FileManagement/RDFManager.html +259 -0
  19. data/doc/rdoc/classes/Pho/FileManagement.html +121 -0
  20. data/doc/rdoc/classes/Pho/Job.html +627 -0
  21. data/doc/rdoc/classes/Pho/JobUpdate.html +141 -0
  22. data/doc/rdoc/classes/Pho/Jobs.html +538 -0
  23. data/doc/rdoc/classes/Pho/Namespaces.html +164 -0
  24. data/doc/rdoc/classes/Pho/OAI/Record.html +165 -0
  25. data/doc/rdoc/classes/Pho/OAI/Records.html +331 -0
  26. data/doc/rdoc/classes/Pho/OAI.html +118 -0
  27. data/doc/rdoc/classes/Pho/QueryProfile.html +524 -0
  28. data/doc/rdoc/classes/Pho/RDF/Parser.html +279 -0
  29. data/doc/rdoc/classes/Pho/RDF.html +120 -0
  30. data/doc/rdoc/classes/Pho/RDFCollection.html +119 -0
  31. data/doc/rdoc/classes/Pho/ResourceHash/Converter.html +325 -0
  32. data/doc/rdoc/classes/Pho/ResourceHash/SetAlgebra.html +241 -0
  33. data/doc/rdoc/classes/Pho/ResourceHash.html +123 -0
  34. data/doc/rdoc/classes/Pho/Snapshot.html +402 -0
  35. data/doc/rdoc/classes/Pho/Sparql/SparqlClient.html +594 -0
  36. data/doc/rdoc/classes/Pho/Sparql/SparqlHelper.html +696 -0
  37. data/doc/rdoc/classes/Pho/Sparql.html +187 -0
  38. data/doc/rdoc/classes/Pho/Status.html +296 -0
  39. data/doc/rdoc/classes/Pho/Store.html +1569 -0
  40. data/doc/rdoc/classes/Pho/StoreSparqlClient.html +183 -0
  41. data/doc/rdoc/classes/Pho/Update/Changeset.html +521 -0
  42. data/doc/rdoc/classes/Pho/Update/ChangesetBuilder.html +330 -0
  43. data/doc/rdoc/classes/Pho/Update/ChangesetHelper.html +159 -0
  44. data/doc/rdoc/classes/Pho/Update/Changesets.html +205 -0
  45. data/doc/rdoc/classes/Pho/Update/LiteralStatement.html +257 -0
  46. data/doc/rdoc/classes/Pho/Update/ResourceStatement.html +237 -0
  47. data/doc/rdoc/classes/Pho/Update/Statement.html +303 -0
  48. data/doc/rdoc/classes/Pho/Update.html +128 -0
  49. data/doc/rdoc/classes/Pho.html +283 -0
  50. data/doc/rdoc/classes/String.html +146 -0
  51. data/doc/rdoc/created.rid +1 -0
  52. data/doc/rdoc/files/CHANGES.html +373 -0
  53. data/doc/rdoc/files/README.html +204 -0
  54. data/doc/rdoc/files/lib/pho/changeset_builder_rb.html +108 -0
  55. data/doc/rdoc/files/lib/pho/changeset_rb.html +108 -0
  56. data/doc/rdoc/files/lib/pho/command_line_rb.html +101 -0
  57. data/doc/rdoc/files/lib/pho/converter_rb.html +108 -0
  58. data/doc/rdoc/files/lib/pho/enrichment_rb.html +101 -0
  59. data/doc/rdoc/files/lib/pho/etags_rb.html +108 -0
  60. data/doc/rdoc/files/lib/pho/facet_rb.html +101 -0
  61. data/doc/rdoc/files/lib/pho/field_predicate_map_rb.html +101 -0
  62. data/doc/rdoc/files/lib/pho/file_management_rb.html +101 -0
  63. data/doc/rdoc/files/lib/pho/file_manager_rb.html +108 -0
  64. data/doc/rdoc/files/lib/pho/job_rb.html +101 -0
  65. data/doc/rdoc/files/lib/pho/oai_rb.html +101 -0
  66. data/doc/rdoc/files/lib/pho/query_profile_rb.html +101 -0
  67. data/doc/rdoc/files/lib/pho/rdf_collection_rb.html +101 -0
  68. data/doc/rdoc/files/lib/pho/rdf_rb.html +108 -0
  69. data/doc/rdoc/files/lib/pho/resource_hash_rb.html +101 -0
  70. data/doc/rdoc/files/lib/pho/snapshot_rb.html +109 -0
  71. data/doc/rdoc/files/lib/pho/sparql_rb.html +101 -0
  72. data/doc/rdoc/files/lib/pho/status_rb.html +101 -0
  73. data/doc/rdoc/files/lib/pho/store_rb.html +108 -0
  74. data/doc/rdoc/files/lib/pho_rb.html +133 -0
  75. data/doc/rdoc/fr_class_index.html +72 -0
  76. data/doc/rdoc/fr_file_index.html +49 -0
  77. data/doc/rdoc/fr_method_index.html +239 -0
  78. data/doc/rdoc/index.html +24 -0
  79. data/doc/rdoc/rdoc-style.css +208 -0
  80. data/lib/pho/enrichment.rb +1 -0
  81. data/lib/pho/field_predicate_map.rb +5 -0
  82. data/lib/pho/query_profile.rb +5 -0
  83. data/lib/pho/store.rb +4 -1
  84. data/tests/tc_field_predicate_map.rb +7 -1
  85. data/tests/tc_query_profile.rb +6 -0
  86. data/tests/tc_store_util.rb +7 -0
  87. metadata +134 -21
@@ -0,0 +1,1569 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Pho::Store</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Pho::Store</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/pho/store_rb.html">
59
+ lib/pho/store.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ Object
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+ <div id="description">
82
+ <p>
83
+ The <a href="Store.html">Store</a> class acts as a lightweight client
84
+ interface to the Talis Platform API (<a
85
+ href="http://n2.talis.com/wiki/Platform_API">n2.talis.com/wiki/Platform_API</a>).
86
+ The class provides methods for interacting with each of the core platform
87
+ services, e.g. retrieving and storing <a href="RDF.html">RDF</a>,
88
+ performing searches, SPARQL queries, etc.
89
+ </p>
90
+ <h2>Usage</h2>
91
+ <pre>
92
+ store = Pho::Store.new(&quot;http://api.talis.com/stores/testing&quot;, &quot;user&quot;, &quot;pass&quot;)
93
+ store.store_file( File.new(&quot;/tmp/example.rdf&quot;) )
94
+ store.store_url( &quot;http://www.example.org/example.rdf&quot; )
95
+ store.describe( &quot;http://www.example.org/thing&quot; )
96
+ store.reset
97
+ </pre>
98
+ <h2>Examples</h2>
99
+ <p>
100
+ See the examples directory in the distribution
101
+ </p>
102
+
103
+ </div>
104
+
105
+
106
+ </div>
107
+
108
+ <div id="method-list">
109
+ <h3 class="section-bar">Methods</h3>
110
+
111
+ <div class="name-list">
112
+ <a href="#M000175">augment</a>&nbsp;&nbsp;
113
+ <a href="#M000174">augment_uri</a>&nbsp;&nbsp;
114
+ <a href="#M000159">build_uri</a>&nbsp;&nbsp;
115
+ <a href="#M000176">configure_headers_for_conditional_get</a>&nbsp;&nbsp;
116
+ <a href="#M000179">delete_item</a>&nbsp;&nbsp;
117
+ <a href="#M000163">describe</a>&nbsp;&nbsp;
118
+ <a href="#M000172">facet</a>&nbsp;&nbsp;
119
+ <a href="#M000187">get_field_predicate_map</a>&nbsp;&nbsp;
120
+ <a href="#M000180">get_item</a>&nbsp;&nbsp;
121
+ <a href="#M000181">get_job</a>&nbsp;&nbsp;
122
+ <a href="#M000182">get_jobs</a>&nbsp;&nbsp;
123
+ <a href="#M000189">get_query_profile</a>&nbsp;&nbsp;
124
+ <a href="#M000173">get_search_params</a>&nbsp;&nbsp;
125
+ <a href="#M000185">get_snapshots</a>&nbsp;&nbsp;
126
+ <a href="#M000184">get_status</a>&nbsp;&nbsp;
127
+ <a href="#M000186">list_records</a>&nbsp;&nbsp;
128
+ <a href="#M000157">new</a>&nbsp;&nbsp;
129
+ <a href="#M000188">put_field_predicate_map</a>&nbsp;&nbsp;
130
+ <a href="#M000190">put_query_profile</a>&nbsp;&nbsp;
131
+ <a href="#M000177">record_etags</a>&nbsp;&nbsp;
132
+ <a href="#M000171">search</a>&nbsp;&nbsp;
133
+ <a href="#M000158">set_credentials</a>&nbsp;&nbsp;
134
+ <a href="#M000170">sparql</a>&nbsp;&nbsp;
135
+ <a href="#M000168">sparql_ask</a>&nbsp;&nbsp;
136
+ <a href="#M000165">sparql_client</a>&nbsp;&nbsp;
137
+ <a href="#M000167">sparql_construct</a>&nbsp;&nbsp;
138
+ <a href="#M000166">sparql_describe</a>&nbsp;&nbsp;
139
+ <a href="#M000169">sparql_select</a>&nbsp;&nbsp;
140
+ <a href="#M000160">store_data</a>&nbsp;&nbsp;
141
+ <a href="#M000161">store_file</a>&nbsp;&nbsp;
142
+ <a href="#M000162">store_url</a>&nbsp;&nbsp;
143
+ <a href="#M000164">submit_changeset</a>&nbsp;&nbsp;
144
+ <a href="#M000183">submit_job</a>&nbsp;&nbsp;
145
+ <a href="#M000178">upload_item</a>&nbsp;&nbsp;
146
+ </div>
147
+ </div>
148
+
149
+ </div>
150
+
151
+
152
+ <!-- if includes -->
153
+
154
+ <div id="section">
155
+
156
+
157
+
158
+
159
+
160
+ <div id="attribute-list">
161
+ <h3 class="section-bar">Attributes</h3>
162
+
163
+ <div class="name-list">
164
+ <table>
165
+ <tr class="top-aligned-row context-row">
166
+ <td class="context-item-name">client</td>
167
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
168
+ <td class="context-item-desc">
169
+ Retrieve the HTTPClient instance being used by this object
170
+
171
+ </td>
172
+ </tr>
173
+ <tr class="top-aligned-row context-row">
174
+ <td class="context-item-name">name</td>
175
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
176
+ <td class="context-item-desc">
177
+ Name of store
178
+
179
+ </td>
180
+ </tr>
181
+ <tr class="top-aligned-row context-row">
182
+ <td class="context-item-name">storeuri</td>
183
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
184
+ <td class="context-item-desc">
185
+ Retrieve the base uri of this store
186
+
187
+ </td>
188
+ </tr>
189
+ <tr class="top-aligned-row context-row">
190
+ <td class="context-item-name">username</td>
191
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
192
+ <td class="context-item-desc">
193
+ Retrieve the admin username configured in this instance
194
+
195
+ </td>
196
+ </tr>
197
+ </table>
198
+ </div>
199
+ </div>
200
+
201
+
202
+
203
+ <!-- if method_list -->
204
+ <div id="methods">
205
+ <h3 class="section-bar">Public Class methods</h3>
206
+
207
+ <div id="method-M000157" class="method-detail">
208
+ <a name="M000157"></a>
209
+
210
+ <div class="method-heading">
211
+ <a href="#M000157" class="method-signature">
212
+ <span class="method-name">new</span><span class="method-args">(storeuri, username=nil, password=nil, client = HTTPClient.new() )</span>
213
+ </a>
214
+ </div>
215
+
216
+ <div class="method-description">
217
+ <p>
218
+ Create an instance of the store class
219
+ </p>
220
+ <table>
221
+ <tr><td valign="top">storeuri:</td><td>base uri for the Platform store to be accessed
222
+
223
+ </td></tr>
224
+ <tr><td valign="top">username:</td><td>admin username, may be nil
225
+
226
+ </td></tr>
227
+ <tr><td valign="top">password:</td><td>admin password, may be nil
228
+
229
+ </td></tr>
230
+ <tr><td valign="top">client:</td><td>an instance of HTTPClient
231
+
232
+ </td></tr>
233
+ </table>
234
+ <p><a class="source-toggle" href="#"
235
+ onclick="toggleCode('M000157-source');return false;">[Source]</a></p>
236
+ <div class="method-source-code" id="M000157-source">
237
+ <pre>
238
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 45</span>
239
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">storeuri</span>, <span class="ruby-identifier">username</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">password</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">client</span> = <span class="ruby-constant">HTTPClient</span>.<span class="ruby-identifier">new</span>() )
240
+ <span class="ruby-ivar">@storeuri</span> = <span class="ruby-identifier">storeuri</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">&quot;/&quot;</span>)
241
+ <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">storeuri</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;/&quot;</span>).<span class="ruby-identifier">last</span>
242
+ <span class="ruby-ivar">@username</span> = <span class="ruby-identifier">username</span>
243
+ <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
244
+ <span class="ruby-ivar">@client</span> = <span class="ruby-identifier">client</span>
245
+ <span class="ruby-identifier">set_credentials</span>(<span class="ruby-identifier">username</span>, <span class="ruby-identifier">password</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">username</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">password</span>
246
+ <span class="ruby-keyword kw">end</span>
247
+ </pre>
248
+ </div>
249
+ </div>
250
+ </div>
251
+
252
+ <h3 class="section-bar">Public Instance methods</h3>
253
+
254
+ <div id="method-M000175" class="method-detail">
255
+ <a name="M000175"></a>
256
+
257
+ <div class="method-heading">
258
+ <a href="#M000175" class="method-signature">
259
+ <span class="method-name">augment</span><span class="method-args">(data)</span>
260
+ </a>
261
+ </div>
262
+
263
+ <div class="method-description">
264
+ <p>
265
+ Augment an RSS feed against data int this store by POSTing it to the
266
+ Platform
267
+ </p>
268
+ <table>
269
+ <tr><td valign="top">data:</td><td>a <a href="../String.html">String</a> containing the RSS feed
270
+
271
+ </td></tr>
272
+ </table>
273
+ <p><a class="source-toggle" href="#"
274
+ onclick="toggleCode('M000175-source');return false;">[Source]</a></p>
275
+ <div class="method-source-code" id="M000175-source">
276
+ <pre>
277
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 310</span>
278
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">augment</span>(<span class="ruby-identifier">data</span>)
279
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/services/augment&quot;</span>)
280
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">post</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">data</span>, {<span class="ruby-value str">&quot;Content-Type&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;application/rss+xml&quot;</span>})
281
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
282
+ <span class="ruby-keyword kw">end</span>
283
+ </pre>
284
+ </div>
285
+ </div>
286
+ </div>
287
+
288
+ <div id="method-M000174" class="method-detail">
289
+ <a name="M000174"></a>
290
+
291
+ <div class="method-heading">
292
+ <a href="#M000174" class="method-signature">
293
+ <span class="method-name">augment_uri</span><span class="method-args">(uri)</span>
294
+ </a>
295
+ </div>
296
+
297
+ <div class="method-description">
298
+ <p>
299
+ Augment an RSS feed that can be retrieved from the specified URL, against
300
+ data in this store
301
+ </p>
302
+ <table>
303
+ <tr><td valign="top">uri:</td><td>the URL for the RSS 1.0 feed
304
+
305
+ </td></tr>
306
+ </table>
307
+ <p><a class="source-toggle" href="#"
308
+ onclick="toggleCode('M000174-source');return false;">[Source]</a></p>
309
+ <div class="method-source-code" id="M000174-source">
310
+ <pre>
311
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 301</span>
312
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">augment_uri</span>(<span class="ruby-identifier">uri</span>)
313
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/services/augment&quot;</span>)
314
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, {<span class="ruby-value str">&quot;data-uri&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">uri</span>})
315
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
316
+ <span class="ruby-keyword kw">end</span>
317
+ </pre>
318
+ </div>
319
+ </div>
320
+ </div>
321
+
322
+ <div id="method-M000159" class="method-detail">
323
+ <a name="M000159"></a>
324
+
325
+ <div class="method-heading">
326
+ <a href="#M000159" class="method-signature">
327
+ <span class="method-name">build_uri</span><span class="method-args">(uri)</span>
328
+ </a>
329
+ </div>
330
+
331
+ <div class="method-description">
332
+ <p>
333
+ Build a request uri, by concatenating it with the base uri of the store
334
+ </p>
335
+ <table>
336
+ <tr><td valign="top">uri:</td><td>relative URI to store service, e.g. &quot;/service/sparql&quot;
337
+
338
+ </td></tr>
339
+ </table>
340
+ <p><a class="source-toggle" href="#"
341
+ onclick="toggleCode('M000159-source');return false;">[Source]</a></p>
342
+ <div class="method-source-code" id="M000159-source">
343
+ <pre>
344
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 64</span>
345
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">build_uri</span>(<span class="ruby-identifier">uri</span>)
346
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">start_with?</span>(<span class="ruby-ivar">@storeuri</span>))
347
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">uri</span>
348
+ <span class="ruby-keyword kw">end</span>
349
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">start_with?</span>(<span class="ruby-value str">&quot;/&quot;</span>)
350
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@storeuri</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">uri</span>
351
+ <span class="ruby-keyword kw">else</span>
352
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@storeuri</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">uri</span>
353
+ <span class="ruby-keyword kw">end</span>
354
+ <span class="ruby-keyword kw">end</span>
355
+ </pre>
356
+ </div>
357
+ </div>
358
+ </div>
359
+
360
+ <div id="method-M000176" class="method-detail">
361
+ <a name="M000176"></a>
362
+
363
+ <div class="method-heading">
364
+ <a href="#M000176" class="method-signature">
365
+ <span class="method-name">configure_headers_for_conditional_get</span><span class="method-args">(u, headers, etags, if_match)</span>
366
+ </a>
367
+ </div>
368
+
369
+ <div class="method-description">
370
+ <p>
371
+ Added appropriate http header for conditional get requests
372
+ </p>
373
+ <p><a class="source-toggle" href="#"
374
+ onclick="toggleCode('M000176-source');return false;">[Source]</a></p>
375
+ <div class="method-source-code" id="M000176-source">
376
+ <pre>
377
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 317</span>
378
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configure_headers_for_conditional_get</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">headers</span>, <span class="ruby-identifier">etags</span>, <span class="ruby-identifier">if_match</span>)
379
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">etags</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">etags</span>.<span class="ruby-identifier">has_tag?</span>(<span class="ruby-identifier">u</span>)
380
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">if_match</span>
381
+ <span class="ruby-identifier">headers</span>[<span class="ruby-value str">&quot;If-Match&quot;</span>] = <span class="ruby-identifier">etags</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>)
382
+ <span class="ruby-keyword kw">else</span>
383
+ <span class="ruby-identifier">headers</span>[<span class="ruby-value str">&quot;If-None-Match&quot;</span>] = <span class="ruby-identifier">etags</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>)
384
+ <span class="ruby-keyword kw">end</span>
385
+ <span class="ruby-keyword kw">end</span>
386
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">headers</span>
387
+ <span class="ruby-keyword kw">end</span>
388
+ </pre>
389
+ </div>
390
+ </div>
391
+ </div>
392
+
393
+ <div id="method-M000179" class="method-detail">
394
+ <a name="M000179"></a>
395
+
396
+ <div class="method-heading">
397
+ <a href="#M000179" class="method-signature">
398
+ <span class="method-name">delete_item</span><span class="method-args">(uri)</span>
399
+ </a>
400
+ </div>
401
+
402
+ <div class="method-description">
403
+ <p>
404
+ Delete an item from the Contentbox in this <a href="Store.html">Store</a>
405
+ </p>
406
+ <table>
407
+ <tr><td valign="top">uri:</td><td>the URL of the item, can be relative
408
+
409
+ </td></tr>
410
+ </table>
411
+ <p>
412
+ TODO: conditional deletes
413
+ </p>
414
+ <p><a class="source-toggle" href="#"
415
+ onclick="toggleCode('M000179-source');return false;">[Source]</a></p>
416
+ <div class="method-source-code" id="M000179-source">
417
+ <pre>
418
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 372</span>
419
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_item</span>(<span class="ruby-identifier">uri</span>)
420
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">uri</span>.<span class="ruby-identifier">start_with?</span>(<span class="ruby-ivar">@storeuri</span>)
421
+ <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-identifier">uri</span>)
422
+ <span class="ruby-keyword kw">end</span>
423
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">uri</span>)
424
+ <span class="ruby-keyword kw">end</span>
425
+ </pre>
426
+ </div>
427
+ </div>
428
+ </div>
429
+
430
+ <div id="method-M000163" class="method-detail">
431
+ <a name="M000163"></a>
432
+
433
+ <div class="method-heading">
434
+ <a href="#M000163" class="method-signature">
435
+ <span class="method-name">describe</span><span class="method-args">(uri, format=&quot;application/rdf+xml&quot;, etags=nil, if_match=false)</span>
436
+ </a>
437
+ </div>
438
+
439
+ <div class="method-description">
440
+ <p>
441
+ Retrieve an <a href="RDF.html">RDF</a> description of a specific URI. The
442
+ default behaviour will be to retrieve an <a href="RDF.html">RDF</a>/XML
443
+ document, but other formats can be requested, as supported by the Talis
444
+ Platform. E.g. application/json
445
+ </p>
446
+ <table>
447
+ <tr><td valign="top">uri:</td><td>the URI of the resource to <a href="Store.html#M000163">describe</a>
448
+
449
+ </td></tr>
450
+ <tr><td valign="top">format:</td><td>the preferred response format
451
+
452
+ </td></tr>
453
+ <tr><td valign="top">etags:</td><td>an instance of the <a href="Etags.html">Pho::Etags</a> class to support
454
+ conditional GETs
455
+
456
+ </td></tr>
457
+ <tr><td valign="top">if_match:</td><td>specify true to retrieve data only if the version matches a known ETag,
458
+ false to perform a Conditional GET
459
+
460
+ </td></tr>
461
+ </table>
462
+ <p>
463
+ Note that this method is different from <a
464
+ href="Store.html#M000166">sparql_describe</a> in that it is intended to be
465
+ used to generate a description of a single URI, using an separated service
466
+ exposed by the Platform. This service is optimised for retrieval of
467
+ descriptions for single resources and supports HTTP caching and conditional
468
+ retrieval. The <a href="Store.html#M000166">sparql_describe</a> method
469
+ should be used to submit more complex DESCRIBE queries to the Platform,
470
+ e.g. to generate descriptions of resources matching a particular graph
471
+ pattern.
472
+ </p>
473
+ <p><a class="source-toggle" href="#"
474
+ onclick="toggleCode('M000163-source');return false;">[Source]</a></p>
475
+ <div class="method-source-code" id="M000163-source">
476
+ <pre>
477
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 151</span>
478
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">describe</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">format</span>=<span class="ruby-value str">&quot;application/rdf+xml&quot;</span>, <span class="ruby-identifier">etags</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">if_match</span>=<span class="ruby-keyword kw">false</span>)
479
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/meta&quot;</span>)
480
+ <span class="ruby-identifier">headers</span> = {<span class="ruby-value str">&quot;Accept&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">format</span>}
481
+ <span class="ruby-identifier">headers</span> = <span class="ruby-identifier">configure_headers_for_conditional_get</span>(<span class="ruby-node">&quot;#{u}?about=#{uri}&quot;</span>, <span class="ruby-identifier">headers</span>, <span class="ruby-identifier">etags</span>, <span class="ruby-identifier">if_match</span>)
482
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, {<span class="ruby-value str">&quot;about&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">uri</span>}, <span class="ruby-identifier">headers</span> )
483
+ <span class="ruby-identifier">record_etags</span>(<span class="ruby-node">&quot;#{u}?about=#{uri}&quot;</span>, <span class="ruby-identifier">etags</span>, <span class="ruby-identifier">response</span>)
484
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
485
+ <span class="ruby-keyword kw">end</span>
486
+ </pre>
487
+ </div>
488
+ </div>
489
+ </div>
490
+
491
+ <div id="method-M000172" class="method-detail">
492
+ <a name="M000172"></a>
493
+
494
+ <div class="method-heading">
495
+ <a href="#M000172" class="method-signature">
496
+ <span class="method-name">facet</span><span class="method-args">(query, facets, params=nil)</span>
497
+ </a>
498
+ </div>
499
+
500
+ <div class="method-description">
501
+ <p>
502
+ Perform a facetted <a href="Store.html#M000171">search</a> against the
503
+ Metabox indexes.
504
+ </p>
505
+ <table>
506
+ <tr><td valign="top">query:</td><td>the query to perform. See XXXX for query syntax
507
+
508
+ </td></tr>
509
+ <tr><td valign="top">facets:</td><td>an ordered list of facets to be used
510
+
511
+ </td></tr>
512
+ <tr><td valign="top">params:</td><td>additional query parameters (see below)
513
+
514
+ </td></tr>
515
+ </table>
516
+ <p>
517
+ The <em>params</em> hash can contain the following values:
518
+ </p>
519
+ <ul>
520
+ <li><b>top</b>: the maximum number of results to return for each <a
521
+ href="Store.html#M000172">facet</a>
522
+
523
+ </li>
524
+ <li><b>output</b>: the preferred response format, can be html or xml (the
525
+ default)
526
+
527
+ </li>
528
+ </ul>
529
+ <p><a class="source-toggle" href="#"
530
+ onclick="toggleCode('M000172-source');return false;">[Source]</a></p>
531
+ <div class="method-source-code" id="M000172-source">
532
+ <pre>
533
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 276</span>
534
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">facet</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">facets</span>, <span class="ruby-identifier">params</span>=<span class="ruby-keyword kw">nil</span>)
535
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">facets</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">facets</span>.<span class="ruby-identifier">empty?</span>
536
+ <span class="ruby-comment cmt">#todo</span>
537
+ <span class="ruby-identifier">throw</span>
538
+ <span class="ruby-keyword kw">end</span>
539
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/services/facet&quot;</span>)
540
+ <span class="ruby-identifier">search_params</span> = <span class="ruby-identifier">get_search_params</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">params</span>)
541
+ <span class="ruby-identifier">search_params</span>[<span class="ruby-value str">&quot;fields&quot;</span>] = <span class="ruby-identifier">facets</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;,&quot;</span>)
542
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">search_params</span>)
543
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
544
+ <span class="ruby-keyword kw">end</span>
545
+ </pre>
546
+ </div>
547
+ </div>
548
+ </div>
549
+
550
+ <div id="method-M000187" class="method-detail">
551
+ <a name="M000187"></a>
552
+
553
+ <div class="method-heading">
554
+ <a href="#M000187" class="method-signature">
555
+ <span class="method-name">get_field_predicate_map</span><span class="method-args">(output=ACCEPT_JSON)</span>
556
+ </a>
557
+ </div>
558
+
559
+ <div class="method-description">
560
+ <p>
561
+ Read the field predicate map configuration for this store. The config can
562
+ be requested in any format supported by the platform, but the default will
563
+ return JSON. See <a
564
+ href="FieldPredicateMap.html#M000094">FieldPredicateMap.read_from_store</a>
565
+ for a convenient way to quickly create a <a
566
+ href="FieldPredicateMap.html">FieldPredicateMap</a> object based on a
567
+ specific stores&#8216;s configuration.
568
+ </p>
569
+ <table>
570
+ <tr><td valign="top">output:</td><td>mimetype to use in request
571
+
572
+ </td></tr>
573
+ </table>
574
+ <p><a class="source-toggle" href="#"
575
+ onclick="toggleCode('M000187-source');return false;">[Source]</a></p>
576
+ <div class="method-source-code" id="M000187-source">
577
+ <pre>
578
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 474</span>
579
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_field_predicate_map</span>(<span class="ruby-identifier">output</span>=<span class="ruby-constant">ACCEPT_JSON</span>)
580
+ <span class="ruby-identifier">u</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/config/fpmaps/1&quot;</span>)
581
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">output</span>)
582
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
583
+ <span class="ruby-keyword kw">end</span>
584
+ </pre>
585
+ </div>
586
+ </div>
587
+ </div>
588
+
589
+ <div id="method-M000180" class="method-detail">
590
+ <a name="M000180"></a>
591
+
592
+ <div class="method-heading">
593
+ <a href="#M000180" class="method-signature">
594
+ <span class="method-name">get_item</span><span class="method-args">(uri, etags=nil, if_match=false)</span>
595
+ </a>
596
+ </div>
597
+
598
+ <div class="method-description">
599
+ <p>
600
+ Get an item from the Contebtbox.
601
+ </p>
602
+ <table>
603
+ <tr><td valign="top">uri:</td><td>the URL of the item, can be relative.
604
+
605
+ </td></tr>
606
+ </table>
607
+ <p>
608
+ If the provided URL of the item is not in the Contentbox, then the response
609
+ will be a redirect to the <a href="RDF.html">RDF</a> description of this
610
+ item, as available from the Metabox.
611
+ </p>
612
+ <p>
613
+ TODO: document etags, redirects
614
+ </p>
615
+ <p><a class="source-toggle" href="#"
616
+ onclick="toggleCode('M000180-source');return false;">[Source]</a></p>
617
+ <div class="method-source-code" id="M000180-source">
618
+ <pre>
619
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 386</span>
620
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_item</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">etags</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">if_match</span>=<span class="ruby-keyword kw">false</span>)
621
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build_uri</span>(<span class="ruby-identifier">uri</span>)
622
+ <span class="ruby-identifier">headers</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
623
+ <span class="ruby-identifier">headers</span> = <span class="ruby-identifier">configure_headers_for_conditional_get</span>(<span class="ruby-node">&quot;#{u}&quot;</span>, <span class="ruby-identifier">headers</span>, <span class="ruby-identifier">etags</span>, <span class="ruby-identifier">if_match</span>)
624
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">headers</span>)
625
+ <span class="ruby-identifier">record_etags</span>(<span class="ruby-node">&quot;#{u}&quot;</span>, <span class="ruby-identifier">etags</span>, <span class="ruby-identifier">response</span>)
626
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
627
+ <span class="ruby-keyword kw">end</span>
628
+ </pre>
629
+ </div>
630
+ </div>
631
+ </div>
632
+
633
+ <div id="method-M000181" class="method-detail">
634
+ <a name="M000181"></a>
635
+
636
+ <div class="method-heading">
637
+ <a href="#M000181" class="method-signature">
638
+ <span class="method-name">get_job</span><span class="method-args">(uri)</span>
639
+ </a>
640
+ </div>
641
+
642
+ <div class="method-description">
643
+ <p>
644
+ Retrieve metadata about a single job. Use <a
645
+ href="Job.html#M000199">Job.read_from_store</a> as a convenience function
646
+ which will return a fully-populated <a href="Job.html">Job</a> object
647
+ </p>
648
+ <table>
649
+ <tr><td valign="top">uri:</td><td>the uri of the job to retrieve
650
+
651
+ </td></tr>
652
+ </table>
653
+ <p><a class="source-toggle" href="#"
654
+ onclick="toggleCode('M000181-source');return false;">[Source]</a></p>
655
+ <div class="method-source-code" id="M000181-source">
656
+ <pre>
657
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 403</span>
658
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_job</span>(<span class="ruby-identifier">uri</span>)
659
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build_uri</span>(<span class="ruby-identifier">uri</span>)
660
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-constant">ACCEPT_RDF</span>)
661
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
662
+ <span class="ruby-keyword kw">end</span>
663
+ </pre>
664
+ </div>
665
+ </div>
666
+ </div>
667
+
668
+ <div id="method-M000182" class="method-detail">
669
+ <a name="M000182"></a>
670
+
671
+ <div class="method-heading">
672
+ <a href="#M000182" class="method-signature">
673
+ <span class="method-name">get_jobs</span><span class="method-args">()</span>
674
+ </a>
675
+ </div>
676
+
677
+ <div class="method-description">
678
+ <p>
679
+ Retrieve metadata about the Scheduled <a href="Jobs.html">Jobs</a>
680
+ Collection from the store
681
+ </p>
682
+ <p><a class="source-toggle" href="#"
683
+ onclick="toggleCode('M000182-source');return false;">[Source]</a></p>
684
+ <div class="method-source-code" id="M000182-source">
685
+ <pre>
686
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 410</span>
687
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_jobs</span>()
688
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/jobs&quot;</span>)
689
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-constant">ACCEPT_RDF</span>)
690
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
691
+ <span class="ruby-keyword kw">end</span>
692
+ </pre>
693
+ </div>
694
+ </div>
695
+ </div>
696
+
697
+ <div id="method-M000189" class="method-detail">
698
+ <a name="M000189"></a>
699
+
700
+ <div class="method-heading">
701
+ <a href="#M000189" class="method-signature">
702
+ <span class="method-name">get_query_profile</span><span class="method-args">(output=ACCEPT_JSON)</span>
703
+ </a>
704
+ </div>
705
+
706
+ <div class="method-description">
707
+ <p>
708
+ Read the query profile configuration for this store. The config can be
709
+ requested in any format supported by the platform, but the default will
710
+ return JSON. See <a
711
+ href="QueryProfile.html#M000132">QueryProfile.read_from_store</a> for a
712
+ convenient way to quickly create a <a
713
+ href="QueryProfile.html">QueryProfile</a> object based on a specific
714
+ stores&#8216;s configuration.
715
+ </p>
716
+ <table>
717
+ <tr><td valign="top">output:</td><td>mimetype to use in request
718
+
719
+ </td></tr>
720
+ </table>
721
+ <p><a class="source-toggle" href="#"
722
+ onclick="toggleCode('M000189-source');return false;">[Source]</a></p>
723
+ <div class="method-source-code" id="M000189-source">
724
+ <pre>
725
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 495</span>
726
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_query_profile</span>(<span class="ruby-identifier">output</span>=<span class="ruby-constant">ACCEPT_JSON</span>)
727
+ <span class="ruby-identifier">u</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/config/queryprofiles/1&quot;</span>)
728
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">output</span>)
729
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
730
+ <span class="ruby-keyword kw">end</span>
731
+ </pre>
732
+ </div>
733
+ </div>
734
+ </div>
735
+
736
+ <div id="method-M000173" class="method-detail">
737
+ <a name="M000173"></a>
738
+
739
+ <div class="method-heading">
740
+ <a href="#M000173" class="method-signature">
741
+ <span class="method-name">get_search_params</span><span class="method-args">(u, query, params)</span>
742
+ </a>
743
+ </div>
744
+
745
+ <div class="method-description">
746
+ <p><a class="source-toggle" href="#"
747
+ onclick="toggleCode('M000173-source');return false;">[Source]</a></p>
748
+ <div class="method-source-code" id="M000173-source">
749
+ <pre>
750
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 288</span>
751
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_search_params</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">params</span>)
752
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">params</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
753
+ <span class="ruby-identifier">search_params</span> = <span class="ruby-identifier">params</span>.<span class="ruby-identifier">clone</span>()
754
+ <span class="ruby-keyword kw">else</span>
755
+ <span class="ruby-identifier">search_params</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
756
+ <span class="ruby-keyword kw">end</span>
757
+ <span class="ruby-identifier">search_params</span>[<span class="ruby-value str">&quot;query&quot;</span>] = <span class="ruby-identifier">query</span>
758
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">search_params</span>
759
+ <span class="ruby-keyword kw">end</span>
760
+ </pre>
761
+ </div>
762
+ </div>
763
+ </div>
764
+
765
+ <div id="method-M000185" class="method-detail">
766
+ <a name="M000185"></a>
767
+
768
+ <div class="method-heading">
769
+ <a href="#M000185" class="method-signature">
770
+ <span class="method-name">get_snapshots</span><span class="method-args">()</span>
771
+ </a>
772
+ </div>
773
+
774
+ <div class="method-description">
775
+ <p>
776
+ Retrieve the list of snapshots for this store
777
+ </p>
778
+ <p>
779
+ Currently the response will contain an HTML document. Use <a
780
+ href="Snapshot.html#M000192">Snapshot.parse</a> to turn this into a <a
781
+ href="Snapshot.html">Snapshot</a> object
782
+ </p>
783
+ <p><a class="source-toggle" href="#"
784
+ onclick="toggleCode('M000185-source');return false;">[Source]</a></p>
785
+ <div class="method-source-code" id="M000185-source">
786
+ <pre>
787
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 439</span>
788
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_snapshots</span>()
789
+ <span class="ruby-identifier">u</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/snapshots&quot;</span>)
790
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-constant">ACCEPT_RDF</span>)
791
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
792
+ <span class="ruby-keyword kw">end</span>
793
+ </pre>
794
+ </div>
795
+ </div>
796
+ </div>
797
+
798
+ <div id="method-M000184" class="method-detail">
799
+ <a name="M000184"></a>
800
+
801
+ <div class="method-heading">
802
+ <a href="#M000184" class="method-signature">
803
+ <span class="method-name">get_status</span><span class="method-args">()</span>
804
+ </a>
805
+ </div>
806
+
807
+ <div class="method-description">
808
+ <p>
809
+ ADMIN
810
+ </p>
811
+ <p><a class="source-toggle" href="#"
812
+ onclick="toggleCode('M000184-source');return false;">[Source]</a></p>
813
+ <div class="method-source-code" id="M000184-source">
814
+ <pre>
815
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 429</span>
816
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_status</span>()
817
+ <span class="ruby-identifier">u</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/config/access-status&quot;</span>)
818
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-constant">ACCEPT_JSON</span> )
819
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
820
+ <span class="ruby-keyword kw">end</span>
821
+ </pre>
822
+ </div>
823
+ </div>
824
+ </div>
825
+
826
+ <div id="method-M000186" class="method-detail">
827
+ <a name="M000186"></a>
828
+
829
+ <div class="method-heading">
830
+ <a href="#M000186" class="method-signature">
831
+ <span class="method-name">list_records</span><span class="method-args">(from=nil, to=nil, resumption_token=nil)</span>
832
+ </a>
833
+ </div>
834
+
835
+ <div class="method-description">
836
+ <p>
837
+ <a href="OAI.html">OAI</a>
838
+ </p>
839
+ <p><a class="source-toggle" href="#"
840
+ onclick="toggleCode('M000186-source');return false;">[Source]</a></p>
841
+ <div class="method-source-code" id="M000186-source">
842
+ <pre>
843
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 449</span>
844
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list_records</span>(<span class="ruby-identifier">from</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">to</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">resumption_token</span>=<span class="ruby-keyword kw">nil</span>)
845
+ <span class="ruby-identifier">u</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/services/oai-pmh&quot;</span>)
846
+ <span class="ruby-identifier">params</span> = {<span class="ruby-value str">&quot;verb&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;ListRecords&quot;</span>, <span class="ruby-value str">&quot;metadataPrefix&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;oai_dc&quot;</span>}
847
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">from</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
848
+ <span class="ruby-identifier">params</span>[<span class="ruby-value str">&quot;from&quot;</span>] = <span class="ruby-identifier">from</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%Y-%m-%dT%H:%M:%SZ&quot;</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">from</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:strftime</span>
849
+ <span class="ruby-identifier">params</span>[<span class="ruby-value str">&quot;from&quot;</span>] = <span class="ruby-identifier">from</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">from</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:strftime</span>
850
+ <span class="ruby-keyword kw">end</span>
851
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">to</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
852
+ <span class="ruby-identifier">params</span>[<span class="ruby-value str">&quot;until&quot;</span>] = <span class="ruby-identifier">to</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%Y-%m-%dT%H:%M:%SZ&quot;</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">to</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:strftime</span>
853
+ <span class="ruby-identifier">params</span>[<span class="ruby-value str">&quot;until&quot;</span>] = <span class="ruby-identifier">to</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">to</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:strftime</span>
854
+ <span class="ruby-keyword kw">end</span>
855
+ <span class="ruby-identifier">params</span>[<span class="ruby-value str">&quot;resumptionToken&quot;</span>] = <span class="ruby-identifier">resumption_token</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resumption_token</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
856
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">params</span>)
857
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
858
+ <span class="ruby-keyword kw">end</span>
859
+ </pre>
860
+ </div>
861
+ </div>
862
+ </div>
863
+
864
+ <div id="method-M000188" class="method-detail">
865
+ <a name="M000188"></a>
866
+
867
+ <div class="method-heading">
868
+ <a href="#M000188" class="method-signature">
869
+ <span class="method-name">put_field_predicate_map</span><span class="method-args">(data)</span>
870
+ </a>
871
+ </div>
872
+
873
+ <div class="method-description">
874
+ <p>
875
+ <a href="Update.html">Update</a>/replace the current Field Predicate map
876
+ configuration in the store. Assumes that the provided data is valid <a
877
+ href="RDF.html">RDF</a>/XML. Use <a
878
+ href="FieldPredicateMap.html#M000109">FieldPredicateMap.upload</a> as a
879
+ convenience function
880
+ </p>
881
+ <table>
882
+ <tr><td valign="top">data:</td><td>a string containing an <a href="RDF.html">RDF</a>/XML document
883
+
884
+ </td></tr>
885
+ </table>
886
+ <p><a class="source-toggle" href="#"
887
+ onclick="toggleCode('M000188-source');return false;">[Source]</a></p>
888
+ <div class="method-source-code" id="M000188-source">
889
+ <pre>
890
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 484</span>
891
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">put_field_predicate_map</span>(<span class="ruby-identifier">data</span>)
892
+ <span class="ruby-identifier">u</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/config/fpmaps/1&quot;</span>)
893
+ <span class="ruby-identifier">headers</span> = {<span class="ruby-value str">&quot;Content-Type&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;application/rdf+xml&quot;</span>}
894
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">put</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
895
+ <span class="ruby-keyword kw">end</span>
896
+ </pre>
897
+ </div>
898
+ </div>
899
+ </div>
900
+
901
+ <div id="method-M000190" class="method-detail">
902
+ <a name="M000190"></a>
903
+
904
+ <div class="method-heading">
905
+ <a href="#M000190" class="method-signature">
906
+ <span class="method-name">put_query_profile</span><span class="method-args">(data)</span>
907
+ </a>
908
+ </div>
909
+
910
+ <div class="method-description">
911
+ <p>
912
+ <a href="Update.html">Update</a>/replace the current Query Profile
913
+ configuration in the store. Assumes that the provided data is valid <a
914
+ href="RDF.html">RDF</a>/XML. Use <a
915
+ href="QueryProfile.html#M000142">QueryProfile.upload</a> as a convenience
916
+ function
917
+ </p>
918
+ <table>
919
+ <tr><td valign="top">data:</td><td>a string containing an <a href="RDF.html">RDF</a>/XML document
920
+
921
+ </td></tr>
922
+ </table>
923
+ <p><a class="source-toggle" href="#"
924
+ onclick="toggleCode('M000190-source');return false;">[Source]</a></p>
925
+ <div class="method-source-code" id="M000190-source">
926
+ <pre>
927
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 505</span>
928
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">put_query_profile</span>(<span class="ruby-identifier">data</span>)
929
+ <span class="ruby-identifier">u</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/config/queryprofiles/1&quot;</span>)
930
+ <span class="ruby-identifier">headers</span> = {<span class="ruby-value str">&quot;Content-Type&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;application/rdf+xml&quot;</span>}
931
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">put</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
932
+ <span class="ruby-keyword kw">end</span>
933
+ </pre>
934
+ </div>
935
+ </div>
936
+ </div>
937
+
938
+ <div id="method-M000177" class="method-detail">
939
+ <a name="M000177"></a>
940
+
941
+ <div class="method-heading">
942
+ <a href="#M000177" class="method-signature">
943
+ <span class="method-name">record_etags</span><span class="method-args">(u, etags, response)</span>
944
+ </a>
945
+ </div>
946
+
947
+ <div class="method-description">
948
+ <p><a class="source-toggle" href="#"
949
+ onclick="toggleCode('M000177-source');return false;">[Source]</a></p>
950
+ <div class="method-source-code" id="M000177-source">
951
+ <pre>
952
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 328</span>
953
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">record_etags</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">etags</span>, <span class="ruby-identifier">response</span>)
954
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">etags</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">status</span> = <span class="ruby-value">200</span>)
955
+ <span class="ruby-identifier">etags</span>.<span class="ruby-identifier">add_from_response</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">response</span>)
956
+ <span class="ruby-keyword kw">end</span>
957
+ <span class="ruby-keyword kw">end</span>
958
+ </pre>
959
+ </div>
960
+ </div>
961
+ </div>
962
+
963
+ <div id="method-M000171" class="method-detail">
964
+ <a name="M000171"></a>
965
+
966
+ <div class="method-heading">
967
+ <a href="#M000171" class="method-signature">
968
+ <span class="method-name">search</span><span class="method-args">(query, params=nil)</span>
969
+ </a>
970
+ </div>
971
+
972
+ <div class="method-description">
973
+ <p>
974
+ Search the Metabox indexes.
975
+ </p>
976
+ <table>
977
+ <tr><td valign="top">query:</td><td>the query to perform. See XXXX for query syntax
978
+
979
+ </td></tr>
980
+ <tr><td valign="top">params:</td><td>additional query parameters (see below)
981
+
982
+ </td></tr>
983
+ </table>
984
+ <p>
985
+ The <em>params</em> hash can contain the following values:
986
+ </p>
987
+ <ul>
988
+ <li><b>max</b>: The maximum number of results to return (default is 10)
989
+
990
+ </li>
991
+ <li><b>offset</b>: Offset into the query results (for paging; default is 0)
992
+
993
+ </li>
994
+ <li><b>sort</b>: ordered list of fields to be used when applying sorting
995
+
996
+ </li>
997
+ <li>*xsl-uri*: URL of an XSLT transform to be applied to the results,
998
+ transforming the default RSS 1.0 results format into an alternative
999
+ representation
1000
+
1001
+ </li>
1002
+ <li>*content-type*: when applying an XSLT transform, the content type to use
1003
+ when returning the results
1004
+
1005
+ </li>
1006
+ </ul>
1007
+ <p>
1008
+ Any additional entries in the <em>params</em> hash will be passed through
1009
+ to the Platform. These parameters will only be used when an XSLT
1010
+ transformation is being applied, in which case they will be provided as
1011
+ parameters to the stylesheet.
1012
+ </p>
1013
+ <p><a class="source-toggle" href="#"
1014
+ onclick="toggleCode('M000171-source');return false;">[Source]</a></p>
1015
+ <div class="method-source-code" id="M000171-source">
1016
+ <pre>
1017
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 259</span>
1018
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">search</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">params</span>=<span class="ruby-keyword kw">nil</span>)
1019
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/items&quot;</span>)
1020
+ <span class="ruby-identifier">search_params</span> = <span class="ruby-identifier">get_search_params</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">params</span>)
1021
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">search_params</span>)
1022
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
1023
+
1024
+ <span class="ruby-keyword kw">end</span>
1025
+ </pre>
1026
+ </div>
1027
+ </div>
1028
+ </div>
1029
+
1030
+ <div id="method-M000158" class="method-detail">
1031
+ <a name="M000158"></a>
1032
+
1033
+ <div class="method-heading">
1034
+ <a href="#M000158" class="method-signature">
1035
+ <span class="method-name">set_credentials</span><span class="method-args">(username, password)</span>
1036
+ </a>
1037
+ </div>
1038
+
1039
+ <div class="method-description">
1040
+ <p>
1041
+ Set credentials that this store will use when carrying out authorization
1042
+ </p>
1043
+ <table>
1044
+ <tr><td valign="top">username:</td><td>admin username
1045
+
1046
+ </td></tr>
1047
+ <tr><td valign="top">password:</td><td>admin password
1048
+
1049
+ </td></tr>
1050
+ </table>
1051
+ <p><a class="source-toggle" href="#"
1052
+ onclick="toggleCode('M000158-source');return false;">[Source]</a></p>
1053
+ <div class="method-source-code" id="M000158-source">
1054
+ <pre>
1055
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 58</span>
1056
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_credentials</span>(<span class="ruby-identifier">username</span>, <span class="ruby-identifier">password</span>)
1057
+ <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">set_auth</span>(<span class="ruby-ivar">@storeuri</span>, <span class="ruby-identifier">username</span>, <span class="ruby-identifier">password</span>)
1058
+ <span class="ruby-keyword kw">end</span>
1059
+ </pre>
1060
+ </div>
1061
+ </div>
1062
+ </div>
1063
+
1064
+ <div id="method-M000170" class="method-detail">
1065
+ <a name="M000170"></a>
1066
+
1067
+ <div class="method-heading">
1068
+ <a href="#M000170" class="method-signature">
1069
+ <span class="method-name">sparql</span><span class="method-args">(query, format=nil, multisparql=false)</span>
1070
+ </a>
1071
+ </div>
1072
+
1073
+ <div class="method-description">
1074
+ <p>
1075
+ Perform a SPARQL query
1076
+ </p>
1077
+ <pre>
1078
+ query:: the SPARQL query
1079
+ format:: the preferred response format
1080
+ multisparql:: use default sparql service or multisparql service
1081
+ </pre>
1082
+ <p><a class="source-toggle" href="#"
1083
+ onclick="toggleCode('M000170-source');return false;">[Source]</a></p>
1084
+ <div class="method-source-code" id="M000170-source">
1085
+ <pre>
1086
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 240</span>
1087
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sparql</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">format</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">multisparql</span>=<span class="ruby-keyword kw">false</span>)
1088
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">sparql_client</span>(<span class="ruby-identifier">multisparql</span>).<span class="ruby-identifier">query</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">format</span>)
1089
+ <span class="ruby-keyword kw">end</span>
1090
+ </pre>
1091
+ </div>
1092
+ </div>
1093
+ </div>
1094
+
1095
+ <div id="method-M000168" class="method-detail">
1096
+ <a name="M000168"></a>
1097
+
1098
+ <div class="method-heading">
1099
+ <a href="#M000168" class="method-signature">
1100
+ <span class="method-name">sparql_ask</span><span class="method-args">(query, format=&quot;application/sparql-results+xml&quot;, multisparql=false)</span>
1101
+ </a>
1102
+ </div>
1103
+
1104
+ <div class="method-description">
1105
+ <p>
1106
+ Perform a SPARQL ASK query.
1107
+ </p>
1108
+ <pre>
1109
+ query:: the SPARQL query
1110
+ format:: the preferred response format
1111
+ </pre>
1112
+ <p><a class="source-toggle" href="#"
1113
+ onclick="toggleCode('M000168-source');return false;">[Source]</a></p>
1114
+ <div class="method-source-code" id="M000168-source">
1115
+ <pre>
1116
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 223</span>
1117
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sparql_ask</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">format</span>=<span class="ruby-value str">&quot;application/sparql-results+xml&quot;</span>, <span class="ruby-identifier">multisparql</span>=<span class="ruby-keyword kw">false</span>)
1118
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">sparql</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">format</span>, <span class="ruby-identifier">multisparql</span>)
1119
+ <span class="ruby-keyword kw">end</span>
1120
+ </pre>
1121
+ </div>
1122
+ </div>
1123
+ </div>
1124
+
1125
+ <div id="method-M000165" class="method-detail">
1126
+ <a name="M000165"></a>
1127
+
1128
+ <div class="method-heading">
1129
+ <a href="#M000165" class="method-signature">
1130
+ <span class="method-name">sparql_client</span><span class="method-args">(multisparql=false)</span>
1131
+ </a>
1132
+ </div>
1133
+
1134
+ <div class="method-description">
1135
+ <p>
1136
+ Retrieve a SparqlClient object for interacting with the endpoint for this
1137
+ store
1138
+ </p>
1139
+ <pre>
1140
+ multisparql:: optional, set to true to retrieve client for multisparql endpoint
1141
+ </pre>
1142
+ <p><a class="source-toggle" href="#"
1143
+ onclick="toggleCode('M000165-source');return false;">[Source]</a></p>
1144
+ <div class="method-source-code" id="M000165-source">
1145
+ <pre>
1146
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 189</span>
1147
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sparql_client</span>(<span class="ruby-identifier">multisparql</span>=<span class="ruby-keyword kw">false</span>)
1148
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">multisparql</span>
1149
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/services/multisparql&quot;</span>)
1150
+ <span class="ruby-keyword kw">else</span>
1151
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/services/sparql&quot;</span>)
1152
+ <span class="ruby-keyword kw">end</span>
1153
+
1154
+ <span class="ruby-identifier">sparql_client</span> = <span class="ruby-constant">StoreSparqlClient</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@self</span>, <span class="ruby-identifier">u</span>, <span class="ruby-ivar">@client</span>)
1155
+ <span class="ruby-identifier">sparql_client</span>.<span class="ruby-identifier">supports_rdf_json</span> = <span class="ruby-keyword kw">true</span>
1156
+ <span class="ruby-identifier">sparql_client</span>.<span class="ruby-identifier">supports_sparql_json</span> = <span class="ruby-keyword kw">true</span>
1157
+
1158
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">sparql_client</span>
1159
+ <span class="ruby-keyword kw">end</span>
1160
+ </pre>
1161
+ </div>
1162
+ </div>
1163
+ </div>
1164
+
1165
+ <div id="method-M000167" class="method-detail">
1166
+ <a name="M000167"></a>
1167
+
1168
+ <div class="method-heading">
1169
+ <a href="#M000167" class="method-signature">
1170
+ <span class="method-name">sparql_construct</span><span class="method-args">(query, format=&quot;application/rdf+xml&quot;, multisparql=false)</span>
1171
+ </a>
1172
+ </div>
1173
+
1174
+ <div class="method-description">
1175
+ <p>
1176
+ Perform a SPARQL CONSTRUCT query.
1177
+ </p>
1178
+ <pre>
1179
+ query:: the SPARQL query
1180
+ format:: the preferred response format
1181
+ </pre>
1182
+ <p><a class="source-toggle" href="#"
1183
+ onclick="toggleCode('M000167-source');return false;">[Source]</a></p>
1184
+ <div class="method-source-code" id="M000167-source">
1185
+ <pre>
1186
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 215</span>
1187
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sparql_construct</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">format</span>=<span class="ruby-value str">&quot;application/rdf+xml&quot;</span>, <span class="ruby-identifier">multisparql</span>=<span class="ruby-keyword kw">false</span>)
1188
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">sparql</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">format</span>, <span class="ruby-identifier">multisparql</span>)
1189
+ <span class="ruby-keyword kw">end</span>
1190
+ </pre>
1191
+ </div>
1192
+ </div>
1193
+ </div>
1194
+
1195
+ <div id="method-M000166" class="method-detail">
1196
+ <a name="M000166"></a>
1197
+
1198
+ <div class="method-heading">
1199
+ <a href="#M000166" class="method-signature">
1200
+ <span class="method-name">sparql_describe</span><span class="method-args">(query, format=&quot;application/rdf+xml&quot;, multisparql=false)</span>
1201
+ </a>
1202
+ </div>
1203
+
1204
+ <div class="method-description">
1205
+ <p>
1206
+ Perform a SPARQL DESCRIBE query.
1207
+ </p>
1208
+ <pre>
1209
+ query:: the SPARQL query
1210
+ format:: the preferred response format
1211
+ </pre>
1212
+ <p><a class="source-toggle" href="#"
1213
+ onclick="toggleCode('M000166-source');return false;">[Source]</a></p>
1214
+ <div class="method-source-code" id="M000166-source">
1215
+ <pre>
1216
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 207</span>
1217
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sparql_describe</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">format</span>=<span class="ruby-value str">&quot;application/rdf+xml&quot;</span>, <span class="ruby-identifier">multisparql</span>=<span class="ruby-keyword kw">false</span>)
1218
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">sparql</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">format</span>, <span class="ruby-identifier">multisparql</span>)
1219
+ <span class="ruby-keyword kw">end</span>
1220
+ </pre>
1221
+ </div>
1222
+ </div>
1223
+ </div>
1224
+
1225
+ <div id="method-M000169" class="method-detail">
1226
+ <a name="M000169"></a>
1227
+
1228
+ <div class="method-heading">
1229
+ <a href="#M000169" class="method-signature">
1230
+ <span class="method-name">sparql_select</span><span class="method-args">(query, format=&quot;application/sparql-results+xml&quot;, multisparql=false)</span>
1231
+ </a>
1232
+ </div>
1233
+
1234
+ <div class="method-description">
1235
+ <p>
1236
+ Perform a SPARQL SELECT query.
1237
+ </p>
1238
+ <pre>
1239
+ query:: the SPARQL query
1240
+ format:: the preferred response format
1241
+ </pre>
1242
+ <p><a class="source-toggle" href="#"
1243
+ onclick="toggleCode('M000169-source');return false;">[Source]</a></p>
1244
+ <div class="method-source-code" id="M000169-source">
1245
+ <pre>
1246
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 231</span>
1247
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sparql_select</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">format</span>=<span class="ruby-value str">&quot;application/sparql-results+xml&quot;</span>, <span class="ruby-identifier">multisparql</span>=<span class="ruby-keyword kw">false</span>)
1248
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">sparql</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">format</span>, <span class="ruby-identifier">multisparql</span>)
1249
+ <span class="ruby-keyword kw">end</span>
1250
+ </pre>
1251
+ </div>
1252
+ </div>
1253
+ </div>
1254
+
1255
+ <div id="method-M000160" class="method-detail">
1256
+ <a name="M000160"></a>
1257
+
1258
+ <div class="method-heading">
1259
+ <a href="#M000160" class="method-signature">
1260
+ <span class="method-name">store_data</span><span class="method-args">(data, graph_name=nil, format=&quot;application/rdf+xml&quot;)</span>
1261
+ </a>
1262
+ </div>
1263
+
1264
+ <div class="method-description">
1265
+ <table>
1266
+ <tr><td valign="top">data:</td><td>a <a href="../String.html">String</a> containing the data to store
1267
+
1268
+ </td></tr>
1269
+ <tr><td valign="top">graph_name:</td><td>name of a private graph in which to store the data. E.g. &quot;1&quot; or
1270
+ &quot;private&quot;. Resolves to /meta/graphs/graph_name
1271
+
1272
+ </td></tr>
1273
+ <tr><td valign="top">format:</td><td>mimetype of <a href="RDF.html">RDF</a> serialization
1274
+
1275
+ </td></tr>
1276
+ </table>
1277
+ <p><a class="source-toggle" href="#"
1278
+ onclick="toggleCode('M000160-source');return false;">[Source]</a></p>
1279
+ <div class="method-source-code" id="M000160-source">
1280
+ <pre>
1281
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 85</span>
1282
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">store_data</span>(<span class="ruby-identifier">data</span>, <span class="ruby-identifier">graph_name</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">format</span>=<span class="ruby-value str">&quot;application/rdf+xml&quot;</span>)
1283
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">nil</span>
1284
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">graph_name</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
1285
+ <span class="ruby-identifier">u</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/meta&quot;</span>)
1286
+ <span class="ruby-keyword kw">else</span>
1287
+ <span class="ruby-identifier">u</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-node">&quot;/meta/graphs/#{graph_name}&quot;</span>)
1288
+ <span class="ruby-keyword kw">end</span>
1289
+
1290
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">format</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;text/plain&quot;</span>
1291
+ <span class="ruby-identifier">format</span> = <span class="ruby-value str">&quot;text/turtle&quot;</span>
1292
+ <span class="ruby-keyword kw">end</span>
1293
+
1294
+ <span class="ruby-identifier">content_type</span> = {<span class="ruby-value str">&quot;Content-Type&quot;</span>=<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">format</span> }
1295
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">post</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">content_type</span> )
1296
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
1297
+ <span class="ruby-keyword kw">end</span>
1298
+ </pre>
1299
+ </div>
1300
+ </div>
1301
+ </div>
1302
+
1303
+ <div id="method-M000161" class="method-detail">
1304
+ <a name="M000161"></a>
1305
+
1306
+ <div class="method-heading">
1307
+ <a href="#M000161" class="method-signature">
1308
+ <span class="method-name">store_file</span><span class="method-args">(file, graph_name=nil, format=&quot;application/rdf+xml&quot;)</span>
1309
+ </a>
1310
+ </div>
1311
+
1312
+ <div class="method-description">
1313
+ <p>
1314
+ <a href="Store.html">Store</a> the contents of a File (or any IO stream) in
1315
+ the Metabox associated with this store The client does not support
1316
+ streaming submissions of data, so the stream will be fully read before data
1317
+ is submitted to the platform
1318
+ </p>
1319
+ <table>
1320
+ <tr><td valign="top">file:</td><td>an IO object
1321
+
1322
+ </td></tr>
1323
+ <tr><td valign="top">graph_name:</td><td>name of a private graph in which to store teh data. E.g. &quot;1&quot; or
1324
+ &quot;private&quot;. Resolves to /meta/graphs/graph_name
1325
+
1326
+ </td></tr>
1327
+ <tr><td valign="top">format:</td><td>mimetype of <a href="RDF.html">RDF</a> serialization
1328
+
1329
+ </td></tr>
1330
+ </table>
1331
+ <p><a class="source-toggle" href="#"
1332
+ onclick="toggleCode('M000161-source');return false;">[Source]</a></p>
1333
+ <div class="method-source-code" id="M000161-source">
1334
+ <pre>
1335
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 107</span>
1336
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">store_file</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">graph_name</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">format</span>=<span class="ruby-value str">&quot;application/rdf+xml&quot;</span>)
1337
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">read</span>()
1338
+ <span class="ruby-identifier">file</span>.<span class="ruby-identifier">close</span>()
1339
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">store_data</span>(<span class="ruby-identifier">data</span>, <span class="ruby-identifier">graph_name</span>, <span class="ruby-identifier">format</span>)
1340
+ <span class="ruby-keyword kw">end</span>
1341
+ </pre>
1342
+ </div>
1343
+ </div>
1344
+ </div>
1345
+
1346
+ <div id="method-M000162" class="method-detail">
1347
+ <a name="M000162"></a>
1348
+
1349
+ <div class="method-heading">
1350
+ <a href="#M000162" class="method-signature">
1351
+ <span class="method-name">store_url</span><span class="method-args">(u, parameters=nil, graph_name=nil)</span>
1352
+ </a>
1353
+ </div>
1354
+
1355
+ <div class="method-description">
1356
+ <p>
1357
+ Retrieve <a href="RDF.html">RDF</a> data from the specified URL and store
1358
+ it in the <a href="Store.html">Store</a> Metabox
1359
+ </p>
1360
+ <p>
1361
+ An Accept header of &quot;application/rdf+xml&quot; will be sent in the
1362
+ request to support retrieval of <a href="RDF.html">RDF</a> from URLs that
1363
+ support Content Negotiation.
1364
+ </p>
1365
+ <p>
1366
+ NOTE: Currently this method doesn&#8216;t properly handle base uris of
1367
+ retrieved data. i.e. the data isn&#8216;t parsed and there is no way to
1368
+ pass a base uri to the Platform. Be warned!
1369
+ </p>
1370
+ <p>
1371
+ The default is to store the data in the Metabox. But a private graph name
1372
+ can also be specified
1373
+ </p>
1374
+ <table>
1375
+ <tr><td valign="top">u:</td><td>the url of the data
1376
+
1377
+ </td></tr>
1378
+ <tr><td valign="top">parameters:</td><td>a Hash of url parameters to pass when requesting data from the specified
1379
+ URL
1380
+
1381
+ </td></tr>
1382
+ <tr><td valign="top">graph_name:</td><td>name of a private graph in which to store the data. E.g. &quot;1&quot; or
1383
+ &quot;private&quot;. Resolves to /meta/graphs/graph_name
1384
+
1385
+ </td></tr>
1386
+ </table>
1387
+ <p><a class="source-toggle" href="#"
1388
+ onclick="toggleCode('M000162-source');return false;">[Source]</a></p>
1389
+ <div class="method-source-code" id="M000162-source">
1390
+ <pre>
1391
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 125</span>
1392
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">store_url</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">parameters</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">graph_name</span>=<span class="ruby-keyword kw">nil</span>)
1393
+
1394
+ <span class="ruby-identifier">headers</span> = <span class="ruby-constant">ACCEPT_RDF</span>.<span class="ruby-identifier">clone</span>()
1395
+ <span class="ruby-identifier">dataresp</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">parameters</span>, <span class="ruby-identifier">headers</span> )
1396
+
1397
+ <span class="ruby-comment cmt">#TODO make this more robust</span>
1398
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dataresp</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">!=</span> <span class="ruby-value">200</span>
1399
+ <span class="ruby-identifier">throw</span>
1400
+ <span class="ruby-keyword kw">end</span>
1401
+
1402
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">store_data</span>(<span class="ruby-identifier">dataresp</span>.<span class="ruby-identifier">content</span>, <span class="ruby-identifier">graph_name</span>)
1403
+
1404
+ <span class="ruby-keyword kw">end</span>
1405
+ </pre>
1406
+ </div>
1407
+ </div>
1408
+ </div>
1409
+
1410
+ <div id="method-M000164" class="method-detail">
1411
+ <a name="M000164"></a>
1412
+
1413
+ <div class="method-heading">
1414
+ <a href="#M000164" class="method-signature">
1415
+ <span class="method-name">submit_changeset</span><span class="method-args">(rdf, versioned=false, graph_name=nil)</span>
1416
+ </a>
1417
+ </div>
1418
+
1419
+ <div class="method-description">
1420
+ <p>
1421
+ Submit a Changeset to the Platform to update the metabox
1422
+ </p>
1423
+ <p>
1424
+ Default behaviour is to update the metabox with an unversioned name However
1425
+ using the optional parameters, changes can be made versioned, and can also
1426
+ be submitted to private graphs.
1427
+ </p>
1428
+ <table>
1429
+ <tr><td valign="top">rdf:</td><td>the <a href="RDF.html">RDF</a>/XML describing the changes
1430
+
1431
+ </td></tr>
1432
+ <tr><td valign="top">versioned:</td><td>true or false to indicate this is a versioned change
1433
+
1434
+ </td></tr>
1435
+ <tr><td valign="top">graph_name:</td><td>name of private graph to update instead of metabox
1436
+
1437
+ </td></tr>
1438
+ </table>
1439
+ <p><a class="source-toggle" href="#"
1440
+ onclick="toggleCode('M000164-source');return false;">[Source]</a></p>
1441
+ <div class="method-source-code" id="M000164-source">
1442
+ <pre>
1443
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 169</span>
1444
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">submit_changeset</span>(<span class="ruby-identifier">rdf</span>, <span class="ruby-identifier">versioned</span>=<span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">graph_name</span>=<span class="ruby-keyword kw">nil</span>)
1445
+ <span class="ruby-identifier">uri</span> = <span class="ruby-value str">&quot;/meta&quot;</span>
1446
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">graph_name</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1447
+ <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">uri</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;/graphs/#{graph_name}&quot;</span>
1448
+ <span class="ruby-keyword kw">end</span>
1449
+ <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">uri</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/changesets&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">versioned</span>
1450
+
1451
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build_uri</span>( <span class="ruby-identifier">uri</span> )
1452
+ <span class="ruby-identifier">headers</span> = {<span class="ruby-value str">&quot;Content-Type&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;application/vnd.talis.changeset+xml&quot;</span>}
1453
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">post</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">rdf</span>, <span class="ruby-identifier">headers</span>)
1454
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
1455
+ <span class="ruby-keyword kw">end</span>
1456
+ </pre>
1457
+ </div>
1458
+ </div>
1459
+ </div>
1460
+
1461
+ <div id="method-M000183" class="method-detail">
1462
+ <a name="M000183"></a>
1463
+
1464
+ <div class="method-heading">
1465
+ <a href="#M000183" class="method-signature">
1466
+ <span class="method-name">submit_job</span><span class="method-args">(data)</span>
1467
+ </a>
1468
+ </div>
1469
+
1470
+ <div class="method-description">
1471
+ <p>
1472
+ Submit a job to the platform.
1473
+ </p>
1474
+ <table>
1475
+ <tr><td valign="top">data:</td><td><a href="RDF.html">RDF</a>/XML representing the job request. See methods on
1476
+ <a href="Jobs.html">Jobs</a> class
1477
+
1478
+ </td></tr>
1479
+ </table>
1480
+ <p><a class="source-toggle" href="#"
1481
+ onclick="toggleCode('M000183-source');return false;">[Source]</a></p>
1482
+ <div class="method-source-code" id="M000183-source">
1483
+ <pre>
1484
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 419</span>
1485
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">submit_job</span>(<span class="ruby-identifier">data</span>)
1486
+ <span class="ruby-identifier">u</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/jobs&quot;</span>)
1487
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">post</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">data</span>, <span class="ruby-constant">RDF_XML</span> )
1488
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
1489
+ <span class="ruby-keyword kw">end</span>
1490
+ </pre>
1491
+ </div>
1492
+ </div>
1493
+ </div>
1494
+
1495
+ <div id="method-M000178" class="method-detail">
1496
+ <a name="M000178"></a>
1497
+
1498
+ <div class="method-heading">
1499
+ <a href="#M000178" class="method-signature">
1500
+ <span class="method-name">upload_item</span><span class="method-args">(f, mimetype, uri=nil)</span>
1501
+ </a>
1502
+ </div>
1503
+
1504
+ <div class="method-description">
1505
+ <p>
1506
+ <a href="Store.html">Store</a> an item in the Contentbox for this store
1507
+ </p>
1508
+ <table>
1509
+ <tr><td valign="top">f:</td><td>a File or other IO object from which data will be read
1510
+
1511
+ </td></tr>
1512
+ <tr><td valign="top">mimetype:</td><td>the mimetype of the object to record in the Platform
1513
+
1514
+ </td></tr>
1515
+ <tr><td valign="top">uri:</td><td>the URI at which to store the item (relative to base uri for the store). If
1516
+ nil, then a URI will be assigned by the Platform
1517
+
1518
+ </td></tr>
1519
+ </table>
1520
+ <p>
1521
+ When a <em>uri</em> is not specified, then the Platform will return a 201
1522
+ Created response with a Location header containing the URI of the newly
1523
+ stored item. If a URI is specified then a successful request will result in
1524
+ a 200 OK response.
1525
+ </p>
1526
+ <p><a class="source-toggle" href="#"
1527
+ onclick="toggleCode('M000178-source');return false;">[Source]</a></p>
1528
+ <div class="method-source-code" id="M000178-source">
1529
+ <pre>
1530
+ <span class="ruby-comment cmt"># File lib/pho/store.rb, line 347</span>
1531
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upload_item</span>(<span class="ruby-identifier">f</span>, <span class="ruby-identifier">mimetype</span>, <span class="ruby-identifier">uri</span>=<span class="ruby-keyword kw">nil</span>)
1532
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>()
1533
+ <span class="ruby-identifier">f</span>.<span class="ruby-identifier">close</span>()
1534
+ <span class="ruby-identifier">headers</span> = {<span class="ruby-value str">&quot;Content-Type&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">mimetype</span>}
1535
+
1536
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
1537
+ <span class="ruby-identifier">u</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">build_uri</span>(<span class="ruby-value str">&quot;/items&quot;</span>)
1538
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">post</span>(<span class="ruby-identifier">u</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
1539
+ <span class="ruby-keyword kw">else</span>
1540
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">uri</span>.<span class="ruby-identifier">start_with?</span>(<span class="ruby-ivar">@storeuri</span>)
1541
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">start_with?</span>(<span class="ruby-value str">&quot;/&quot;</span>)
1542
+ <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-node">&quot;/items#{uri}&quot;</span>)
1543
+ <span class="ruby-keyword kw">else</span>
1544
+ <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">build_uri</span>(<span class="ruby-node">&quot;/items/#{uri}&quot;</span>)
1545
+ <span class="ruby-keyword kw">end</span>
1546
+
1547
+ <span class="ruby-keyword kw">end</span>
1548
+ <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@client</span>.<span class="ruby-identifier">put</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">headers</span>)
1549
+ <span class="ruby-keyword kw">end</span>
1550
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">response</span>
1551
+ <span class="ruby-keyword kw">end</span>
1552
+ </pre>
1553
+ </div>
1554
+ </div>
1555
+ </div>
1556
+
1557
+
1558
+ </div>
1559
+
1560
+
1561
+ </div>
1562
+
1563
+
1564
+ <div id="validator-badges">
1565
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1566
+ </div>
1567
+
1568
+ </body>
1569
+ </html>