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,627 @@
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::Job</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::Job</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/pho/job_rb.html">
59
+ lib/pho/job.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
+ A Platform <a href="Job.html">Job</a>
84
+ </p>
85
+ <p>
86
+ Instances of this class encapsulate all of the core metadata relating to a
87
+ Platform <a href="Job.html">Job</a>. This includes not only the timing
88
+ information but also the completion status, etc.
89
+ </p>
90
+ <p>
91
+ The class provides convenience methods for retrieving and parsing data
92
+ about a specific <a href="Job.html">Job</a> from a platform store
93
+ </p>
94
+
95
+ </div>
96
+
97
+
98
+ </div>
99
+
100
+ <div id="method-list">
101
+ <h3 class="section-bar">Methods</h3>
102
+
103
+ <div class="name-list">
104
+ <a href="#M000203">completed?</a>&nbsp;&nbsp;
105
+ <a href="#M000198">new</a>&nbsp;&nbsp;
106
+ <a href="#M000200">parse</a>&nbsp;&nbsp;
107
+ <a href="#M000201">progress_updates</a>&nbsp;&nbsp;
108
+ <a href="#M000199">read_from_store</a>&nbsp;&nbsp;
109
+ <a href="#M000205">running?</a>&nbsp;&nbsp;
110
+ <a href="#M000202">started?</a>&nbsp;&nbsp;
111
+ <a href="#M000204">successful?</a>&nbsp;&nbsp;
112
+ <a href="#M000207">with_each</a>&nbsp;&nbsp;
113
+ <a href="#M000206">with_first</a>&nbsp;&nbsp;
114
+ </div>
115
+ </div>
116
+
117
+ </div>
118
+
119
+
120
+ <!-- if includes -->
121
+
122
+ <div id="section">
123
+
124
+
125
+ <div id="constants-list">
126
+ <h3 class="section-bar">Constants</h3>
127
+
128
+ <div class="name-list">
129
+ <table summary="Constants">
130
+ <tr class="top-aligned-row context-row">
131
+ <td class="context-item-name">SUCCESS</td>
132
+ <td>=</td>
133
+ <td class="context-item-value">&quot;http://schemas.talis.com/2006/bigfoot/configuration#success&quot;</td>
134
+ </tr>
135
+ <tr class="top-aligned-row context-row">
136
+ <td class="context-item-name">ABORTED</td>
137
+ <td>=</td>
138
+ <td class="context-item-value">&quot;http://schemas.talis.com/2006/bigfoot/configuration#aborted&quot;</td>
139
+ </tr>
140
+ </table>
141
+ </div>
142
+ </div>
143
+
144
+
145
+
146
+ <div id="attribute-list">
147
+ <h3 class="section-bar">Attributes</h3>
148
+
149
+ <div class="name-list">
150
+ <table>
151
+ <tr class="top-aligned-row context-row">
152
+ <td class="context-item-name">actual_start_time</td>
153
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
154
+ <td class="context-item-desc">
155
+ Date-time that the job actually started
156
+
157
+ </td>
158
+ </tr>
159
+ <tr class="top-aligned-row context-row">
160
+ <td class="context-item-name">completion_message</td>
161
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
162
+ <td class="context-item-desc">
163
+ Completion message
164
+
165
+ </td>
166
+ </tr>
167
+ <tr class="top-aligned-row context-row">
168
+ <td class="context-item-name">completion_status</td>
169
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
170
+ <td class="context-item-desc">
171
+ URI indicating completion status of the job
172
+
173
+ </td>
174
+ </tr>
175
+ <tr class="top-aligned-row context-row">
176
+ <td class="context-item-name">created</td>
177
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
178
+ <td class="context-item-desc">
179
+ Date-time that the job was created
180
+
181
+ </td>
182
+ </tr>
183
+ <tr class="top-aligned-row context-row">
184
+ <td class="context-item-name">end_time</td>
185
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
186
+ <td class="context-item-desc">
187
+ Date time that the job actually completed
188
+
189
+ </td>
190
+ </tr>
191
+ <tr class="top-aligned-row context-row">
192
+ <td class="context-item-name">label</td>
193
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
194
+ <td class="context-item-desc">
195
+ Label associated with job
196
+
197
+ </td>
198
+ </tr>
199
+ <tr class="top-aligned-row context-row">
200
+ <td class="context-item-name">progress_updates</td>
201
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
202
+ <td class="context-item-desc">
203
+ An array of <a href="JobUpdate.html">JobUpdate</a> instances. May be empty
204
+ if no updates have been logged
205
+
206
+ </td>
207
+ </tr>
208
+ <tr class="top-aligned-row context-row">
209
+ <td class="context-item-name">snapshot_uri</td>
210
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
211
+ <td class="context-item-desc">
212
+ URI of snapshot to load. (For RestoreJob only)
213
+
214
+ </td>
215
+ </tr>
216
+ <tr class="top-aligned-row context-row">
217
+ <td class="context-item-name">start_message</td>
218
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
219
+ <td class="context-item-desc">
220
+ Message recorded at the time the job started
221
+
222
+ </td>
223
+ </tr>
224
+ <tr class="top-aligned-row context-row">
225
+ <td class="context-item-name">start_time</td>
226
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
227
+ <td class="context-item-desc">
228
+ Date-time that the job will start
229
+
230
+ </td>
231
+ </tr>
232
+ <tr class="top-aligned-row context-row">
233
+ <td class="context-item-name">type</td>
234
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
235
+ <td class="context-item-desc">
236
+ Type of job
237
+
238
+ </td>
239
+ </tr>
240
+ <tr class="top-aligned-row context-row">
241
+ <td class="context-item-name">uri</td>
242
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
243
+ <td class="context-item-desc">
244
+ URI of the job
245
+
246
+ </td>
247
+ </tr>
248
+ </table>
249
+ </div>
250
+ </div>
251
+
252
+
253
+
254
+ <!-- if method_list -->
255
+ <div id="methods">
256
+ <h3 class="section-bar">Public Class methods</h3>
257
+
258
+ <div id="method-M000198" class="method-detail">
259
+ <a name="M000198"></a>
260
+
261
+ <div class="method-heading">
262
+ <a href="#M000198" class="method-signature">
263
+ <span class="method-name">new</span><span class="method-args">(uri, label, type, start_time, created=nil)</span>
264
+ </a>
265
+ </div>
266
+
267
+ <div class="method-description">
268
+ <p>
269
+ Constructor. Used in the reading/parsing code
270
+ </p>
271
+ <table>
272
+ <tr><td valign="top">uri:</td><td>a unique identifier for the job
273
+
274
+ </td></tr>
275
+ <tr><td valign="top">label:</td><td>a description of the job
276
+
277
+ </td></tr>
278
+ <tr><td valign="top">type:</td><td>the type of the job, e.g. Pho::Jobs::RESTORE
279
+
280
+ </td></tr>
281
+ <tr><td valign="top">created:</td><td>date-time the job was created in the system
282
+
283
+ </td></tr>
284
+ <tr><td valign="top">start_time:</td><td>scheduled start time for the job
285
+
286
+ </td></tr>
287
+ </table>
288
+ <p><a class="source-toggle" href="#"
289
+ onclick="toggleCode('M000198-source');return false;">[Source]</a></p>
290
+ <div class="method-source-code" id="M000198-source">
291
+ <pre>
292
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 214</span>
293
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">label</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">created</span>=<span class="ruby-keyword kw">nil</span>)
294
+ <span class="ruby-ivar">@uri</span> = <span class="ruby-identifier">uri</span>
295
+ <span class="ruby-ivar">@label</span> = <span class="ruby-identifier">label</span>
296
+ <span class="ruby-ivar">@type</span> = <span class="ruby-identifier">type</span>
297
+ <span class="ruby-ivar">@created</span> = <span class="ruby-identifier">created</span>
298
+ <span class="ruby-ivar">@start_time</span> = <span class="ruby-identifier">start_time</span>
299
+ <span class="ruby-ivar">@progress_updates</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
300
+ <span class="ruby-keyword kw">end</span>
301
+ </pre>
302
+ </div>
303
+ </div>
304
+ </div>
305
+
306
+ <div id="method-M000200" class="method-detail">
307
+ <a name="M000200"></a>
308
+
309
+ <div class="method-heading">
310
+ <a href="#M000200" class="method-signature">
311
+ <span class="method-name">parse</span><span class="method-args">(uri, xml)</span>
312
+ </a>
313
+ </div>
314
+
315
+ <div class="method-description">
316
+ <p>
317
+ Parses job metadata returned from the platform as <a
318
+ href="RDF.html">RDF</a>/XML, creating a fully populated <a
319
+ href="Job.html">Job</a> instance
320
+ </p>
321
+ <table>
322
+ <tr><td valign="top">uri:</td><td>uri of the job to be parsed
323
+
324
+ </td></tr>
325
+ <tr><td valign="top">xml:</td><td>the <a href="RDF.html">RDF</a>/XML text to be parsed
326
+
327
+ </td></tr>
328
+ </table>
329
+ <p><a class="source-toggle" href="#"
330
+ onclick="toggleCode('M000200-source');return false;">[Source]</a></p>
331
+ <div class="method-source-code" id="M000200-source">
332
+ <pre>
333
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 241</span>
334
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Job</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">xml</span>)
335
+ <span class="ruby-identifier">doc</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Document</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">xml</span>)
336
+ <span class="ruby-identifier">root</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">root</span>
337
+
338
+ <span class="ruby-comment cmt">#job_el = REXML::XPath.first(root, &quot;rdf:Description[rdf:type]&quot;, Pho::Namespaces::MAPPING ) </span>
339
+ <span class="ruby-identifier">job_el</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">root</span>, <span class="ruby-node">&quot;//*[@rdf:about='#{uri}']&quot;</span>, <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Namespaces</span><span class="ruby-operator">::</span><span class="ruby-constant">MAPPING</span> )
340
+ <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">job_el</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;rdf:about&quot;</span>]
341
+ <span class="ruby-identifier">label</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">job_el</span>, <span class="ruby-value str">&quot;rdfs:label&quot;</span>, <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Namespaces</span><span class="ruby-operator">::</span><span class="ruby-constant">MAPPING</span> ).<span class="ruby-identifier">text</span>
342
+ <span class="ruby-identifier">type_el</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">job_el</span>, <span class="ruby-value str">&quot;rdf:type&quot;</span>, <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Namespaces</span><span class="ruby-operator">::</span><span class="ruby-constant">MAPPING</span> )
343
+ <span class="ruby-identifier">type</span> = <span class="ruby-identifier">type_el</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;rdf:resource&quot;</span>]
344
+ <span class="ruby-identifier">created</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">job_el</span>, <span class="ruby-value str">&quot;dcterms:created&quot;</span>, <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Namespaces</span><span class="ruby-operator">::</span><span class="ruby-constant">MAPPING</span> ).<span class="ruby-identifier">text</span>
345
+ <span class="ruby-identifier">start_time</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">job_el</span>, <span class="ruby-value str">&quot;bf:startTime&quot;</span>, <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Namespaces</span><span class="ruby-operator">::</span><span class="ruby-constant">MAPPING</span> ).<span class="ruby-identifier">text</span>
346
+
347
+ <span class="ruby-identifier">job</span> = <span class="ruby-constant">Job</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">label</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">created</span>)
348
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Jobs</span><span class="ruby-operator">::</span><span class="ruby-constant">RESTORE</span>
349
+ <span class="ruby-identifier">with_first</span>(<span class="ruby-identifier">job_el</span>, <span class="ruby-value str">&quot;bf:snapshotUri&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">uri</span><span class="ruby-operator">|</span>
350
+ <span class="ruby-identifier">job</span>.<span class="ruby-identifier">snapshot_uri</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;rdf:resource&quot;</span>]
351
+ <span class="ruby-keyword kw">end</span>
352
+ <span class="ruby-keyword kw">end</span>
353
+
354
+ <span class="ruby-identifier">with_first</span>(<span class="ruby-identifier">job_el</span>, <span class="ruby-value str">&quot;bf:actualStartTime&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">el</span><span class="ruby-operator">|</span>
355
+ <span class="ruby-identifier">job</span>.<span class="ruby-identifier">actual_start_time</span> = <span class="ruby-identifier">el</span>.<span class="ruby-identifier">text</span>
356
+ <span class="ruby-keyword kw">end</span>
357
+ <span class="ruby-identifier">with_first</span>(<span class="ruby-identifier">job_el</span>, <span class="ruby-value str">&quot;bf:startMessage&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">el</span><span class="ruby-operator">|</span>
358
+ <span class="ruby-identifier">job</span>.<span class="ruby-identifier">start_message</span> = <span class="ruby-identifier">el</span>.<span class="ruby-identifier">text</span>
359
+ <span class="ruby-keyword kw">end</span>
360
+ <span class="ruby-identifier">with_first</span>(<span class="ruby-identifier">job_el</span>, <span class="ruby-value str">&quot;bf:completionMessage&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">el</span><span class="ruby-operator">|</span>
361
+ <span class="ruby-identifier">job</span>.<span class="ruby-identifier">completion_message</span> = <span class="ruby-identifier">el</span>.<span class="ruby-identifier">text</span>
362
+ <span class="ruby-keyword kw">end</span>
363
+ <span class="ruby-identifier">with_first</span>(<span class="ruby-identifier">job_el</span>, <span class="ruby-value str">&quot;bf:endTime&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">el</span><span class="ruby-operator">|</span>
364
+ <span class="ruby-identifier">job</span>.<span class="ruby-identifier">end_time</span> = <span class="ruby-identifier">el</span>.<span class="ruby-identifier">text</span>
365
+ <span class="ruby-keyword kw">end</span>
366
+ <span class="ruby-identifier">with_first</span>(<span class="ruby-identifier">job_el</span>, <span class="ruby-value str">&quot;bf:completionStatus&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">el</span><span class="ruby-operator">|</span>
367
+ <span class="ruby-identifier">job</span>.<span class="ruby-identifier">completion_status</span> = <span class="ruby-identifier">el</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;rdf:resource&quot;</span>]
368
+ <span class="ruby-keyword kw">end</span>
369
+ <span class="ruby-identifier">with_each</span>(<span class="ruby-identifier">job_el</span>, <span class="ruby-value str">&quot;bf:progressUpdate&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">el</span><span class="ruby-operator">|</span>
370
+ <span class="ruby-identifier">update</span> = <span class="ruby-constant">JobUpdate</span>.<span class="ruby-identifier">new</span>
371
+ <span class="ruby-identifier">with_first</span>(<span class="ruby-identifier">el</span>, <span class="ruby-value str">&quot;bf:progressUpdateMessage&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">msg</span><span class="ruby-operator">|</span>
372
+ <span class="ruby-identifier">update</span>.<span class="ruby-identifier">message</span> = <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">text</span>
373
+ <span class="ruby-keyword kw">end</span>
374
+ <span class="ruby-identifier">with_first</span>(<span class="ruby-identifier">el</span>, <span class="ruby-value str">&quot;bf:progressUpdateTime&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">time</span><span class="ruby-operator">|</span>
375
+ <span class="ruby-identifier">update</span>.<span class="ruby-identifier">time</span> = <span class="ruby-identifier">time</span>.<span class="ruby-identifier">text</span>
376
+ <span class="ruby-keyword kw">end</span>
377
+ <span class="ruby-identifier">job</span>.<span class="ruby-identifier">progress_updates</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">update</span>
378
+ <span class="ruby-keyword kw">end</span>
379
+
380
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">job</span>
381
+
382
+ <span class="ruby-keyword kw">end</span>
383
+ </pre>
384
+ </div>
385
+ </div>
386
+ </div>
387
+
388
+ <div id="method-M000199" class="method-detail">
389
+ <a name="M000199"></a>
390
+
391
+ <div class="method-heading">
392
+ <a href="#M000199" class="method-signature">
393
+ <span class="method-name">read_from_store</span><span class="method-args">(uri, store)</span>
394
+ </a>
395
+ </div>
396
+
397
+ <div class="method-description">
398
+ <p>
399
+ Read a job from a store
400
+ </p>
401
+ <table>
402
+ <tr><td valign="top">uri:</td><td>uri of the job to read
403
+
404
+ </td></tr>
405
+ <tr><td valign="top">store:</td><td>store from which the job will be read
406
+
407
+ </td></tr>
408
+ </table>
409
+ <p><a class="source-toggle" href="#"
410
+ onclick="toggleCode('M000199-source');return false;">[Source]</a></p>
411
+ <div class="method-source-code" id="M000199-source">
412
+ <pre>
413
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 227</span>
414
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Job</span>.<span class="ruby-identifier">read_from_store</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">store</span>)
415
+ <span class="ruby-identifier">resp</span> = <span class="ruby-identifier">store</span>.<span class="ruby-identifier">get_job</span>(<span class="ruby-identifier">uri</span>)
416
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">!=</span> <span class="ruby-value">200</span>
417
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unable to read job from store. Response code was #{resp.status}&quot;</span>
418
+ <span class="ruby-keyword kw">end</span>
419
+
420
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">content</span>)
421
+ <span class="ruby-keyword kw">end</span>
422
+ </pre>
423
+ </div>
424
+ </div>
425
+ </div>
426
+
427
+ <h3 class="section-bar">Protected Class methods</h3>
428
+
429
+ <div id="method-M000207" class="method-detail">
430
+ <a name="M000207"></a>
431
+
432
+ <div class="method-heading">
433
+ <a href="#M000207" class="method-signature">
434
+ <span class="method-name">with_each</span><span class="method-args">(el, xpath) {|ref_el| ...}</span>
435
+ </a>
436
+ </div>
437
+
438
+ <div class="method-description">
439
+ <p><a class="source-toggle" href="#"
440
+ onclick="toggleCode('M000207-source');return false;">[Source]</a></p>
441
+ <div class="method-source-code" id="M000207-source">
442
+ <pre>
443
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 327</span>
444
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Job</span>.<span class="ruby-identifier">with_each</span>(<span class="ruby-identifier">el</span>, <span class="ruby-identifier">xpath</span>)
445
+ <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">each</span>(<span class="ruby-identifier">el</span>, <span class="ruby-identifier">xpath</span>, <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Namespaces</span><span class="ruby-operator">::</span><span class="ruby-constant">MAPPING</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
446
+ <span class="ruby-identifier">root</span> = <span class="ruby-identifier">e</span>.<span class="ruby-identifier">document</span>.<span class="ruby-identifier">root</span>
447
+ <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">e</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;rdf:resource&quot;</span>]
448
+ <span class="ruby-identifier">ref_el</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">root</span>, <span class="ruby-node">&quot;//*[@rdf:about='#{uri}']&quot;</span>, <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Namespaces</span><span class="ruby-operator">::</span><span class="ruby-constant">MAPPING</span>)
449
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">ref_el</span>
450
+ <span class="ruby-keyword kw">end</span>
451
+ <span class="ruby-keyword kw">end</span>
452
+ </pre>
453
+ </div>
454
+ </div>
455
+ </div>
456
+
457
+ <div id="method-M000206" class="method-detail">
458
+ <a name="M000206"></a>
459
+
460
+ <div class="method-heading">
461
+ <a href="#M000206" class="method-signature">
462
+ <span class="method-name">with_first</span><span class="method-args">(el, xpath) {|found_el| ...}</span>
463
+ </a>
464
+ </div>
465
+
466
+ <div class="method-description">
467
+ <p><a class="source-toggle" href="#"
468
+ onclick="toggleCode('M000206-source');return false;">[Source]</a></p>
469
+ <div class="method-source-code" id="M000206-source">
470
+ <pre>
471
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 320</span>
472
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Job</span>.<span class="ruby-identifier">with_first</span>(<span class="ruby-identifier">el</span>, <span class="ruby-identifier">xpath</span>)
473
+ <span class="ruby-identifier">found_el</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">el</span>, <span class="ruby-identifier">xpath</span>, <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Namespaces</span><span class="ruby-operator">::</span><span class="ruby-constant">MAPPING</span>)
474
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">found_el</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
475
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">found_el</span>
476
+ <span class="ruby-keyword kw">end</span>
477
+ <span class="ruby-keyword kw">end</span>
478
+ </pre>
479
+ </div>
480
+ </div>
481
+ </div>
482
+
483
+ <h3 class="section-bar">Public Instance methods</h3>
484
+
485
+ <div id="method-M000203" class="method-detail">
486
+ <a name="M000203"></a>
487
+
488
+ <div class="method-heading">
489
+ <a href="#M000203" class="method-signature">
490
+ <span class="method-name">completed?</span><span class="method-args">()</span>
491
+ </a>
492
+ </div>
493
+
494
+ <div class="method-description">
495
+ <p>
496
+ Has the job <a href="Job.html#M000203">completed?</a>
497
+ </p>
498
+ <p><a class="source-toggle" href="#"
499
+ onclick="toggleCode('M000203-source');return false;">[Source]</a></p>
500
+ <div class="method-source-code" id="M000203-source">
501
+ <pre>
502
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 304</span>
503
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">completed?</span>
504
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@completion_status</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
505
+ <span class="ruby-keyword kw">end</span>
506
+ </pre>
507
+ </div>
508
+ </div>
509
+ </div>
510
+
511
+ <div id="method-M000201" class="method-detail">
512
+ <a name="M000201"></a>
513
+
514
+ <div class="method-heading">
515
+ <a href="#M000201" class="method-signature">
516
+ <span class="method-name">progress_updates</span><span class="method-args">()</span>
517
+ </a>
518
+ </div>
519
+
520
+ <div class="method-description">
521
+ <p><a class="source-toggle" href="#"
522
+ onclick="toggleCode('M000201-source');return false;">[Source]</a></p>
523
+ <div class="method-source-code" id="M000201-source">
524
+ <pre>
525
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 291</span>
526
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">progress_updates</span>()
527
+ <span class="ruby-ivar">@progress_updates</span>.<span class="ruby-identifier">sort!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span>,<span class="ruby-identifier">y</span><span class="ruby-operator">|</span>
528
+ <span class="ruby-identifier">x</span>.<span class="ruby-identifier">time</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">y</span>.<span class="ruby-identifier">time</span>
529
+ }
530
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@progress_updates</span>
531
+ <span class="ruby-keyword kw">end</span>
532
+ </pre>
533
+ </div>
534
+ </div>
535
+ </div>
536
+
537
+ <div id="method-M000205" class="method-detail">
538
+ <a name="M000205"></a>
539
+
540
+ <div class="method-heading">
541
+ <a href="#M000205" class="method-signature">
542
+ <span class="method-name">running?</span><span class="method-args">()</span>
543
+ </a>
544
+ </div>
545
+
546
+ <div class="method-description">
547
+ <p>
548
+ Is the job still <a href="Job.html#M000205">running?</a>
549
+ </p>
550
+ <p><a class="source-toggle" href="#"
551
+ onclick="toggleCode('M000205-source');return false;">[Source]</a></p>
552
+ <div class="method-source-code" id="M000205-source">
553
+ <pre>
554
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 314</span>
555
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">running?</span>
556
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">started?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">completed?</span>
557
+ <span class="ruby-keyword kw">end</span>
558
+ </pre>
559
+ </div>
560
+ </div>
561
+ </div>
562
+
563
+ <div id="method-M000202" class="method-detail">
564
+ <a name="M000202"></a>
565
+
566
+ <div class="method-heading">
567
+ <a href="#M000202" class="method-signature">
568
+ <span class="method-name">started?</span><span class="method-args">()</span>
569
+ </a>
570
+ </div>
571
+
572
+ <div class="method-description">
573
+ <p>
574
+ Has the job <a href="Job.html#M000202">started?</a>
575
+ </p>
576
+ <p><a class="source-toggle" href="#"
577
+ onclick="toggleCode('M000202-source');return false;">[Source]</a></p>
578
+ <div class="method-source-code" id="M000202-source">
579
+ <pre>
580
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 299</span>
581
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">started?</span>
582
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@actual_start_time</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
583
+ <span class="ruby-keyword kw">end</span>
584
+ </pre>
585
+ </div>
586
+ </div>
587
+ </div>
588
+
589
+ <div id="method-M000204" class="method-detail">
590
+ <a name="M000204"></a>
591
+
592
+ <div class="method-heading">
593
+ <a href="#M000204" class="method-signature">
594
+ <span class="method-name">successful?</span><span class="method-args">()</span>
595
+ </a>
596
+ </div>
597
+
598
+ <div class="method-description">
599
+ <p>
600
+ Was the job <a href="Job.html#M000204">successful?</a>
601
+ </p>
602
+ <p><a class="source-toggle" href="#"
603
+ onclick="toggleCode('M000204-source');return false;">[Source]</a></p>
604
+ <div class="method-source-code" id="M000204-source">
605
+ <pre>
606
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 309</span>
607
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">successful?</span>
608
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">completed?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@completion_status</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Job</span><span class="ruby-operator">::</span><span class="ruby-constant">SUCCESS</span>
609
+ <span class="ruby-keyword kw">end</span>
610
+ </pre>
611
+ </div>
612
+ </div>
613
+ </div>
614
+
615
+
616
+ </div>
617
+
618
+
619
+ </div>
620
+
621
+
622
+ <div id="validator-badges">
623
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
624
+ </div>
625
+
626
+ </body>
627
+ </html>