pho 0.3 → 0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. data/CHANGES +9 -0
  2. data/Rakefile +2 -1
  3. data/bin/talis_store +263 -0
  4. data/doc/rdoc/classes/Pho.html +3 -21
  5. data/doc/rdoc/classes/Pho/Analyzers.html +22 -0
  6. data/doc/rdoc/classes/Pho/DatatypeProperty.html +42 -10
  7. data/doc/rdoc/classes/Pho/Etags.html +102 -30
  8. data/doc/rdoc/classes/Pho/Facet/Results.html +81 -7
  9. data/doc/rdoc/classes/Pho/Facet/Term.html +13 -2
  10. data/doc/rdoc/classes/Pho/FieldPredicateMap.html +233 -30
  11. data/doc/rdoc/classes/Pho/FieldWeighting.html +38 -10
  12. data/doc/rdoc/classes/Pho/Job.html +488 -9
  13. data/doc/rdoc/classes/Pho/JobUpdate.html +141 -0
  14. data/doc/rdoc/classes/Pho/Jobs.html +538 -0
  15. data/doc/rdoc/classes/Pho/Namespaces.html +33 -2
  16. data/doc/rdoc/classes/Pho/QueryProfile.html +162 -20
  17. data/doc/rdoc/classes/Pho/RDFCollection.html +200 -60
  18. data/doc/rdoc/classes/Pho/Snapshot.html +162 -36
  19. data/doc/rdoc/classes/Pho/Status.html +59 -8
  20. data/doc/rdoc/classes/Pho/Store.html +589 -253
  21. data/doc/rdoc/created.rid +1 -1
  22. data/doc/rdoc/files/CHANGES.html +24 -1
  23. data/doc/rdoc/files/lib/pho/field_predicate_map_rb.html +1 -1
  24. data/doc/rdoc/files/lib/pho/job_rb.html +1 -1
  25. data/doc/rdoc/files/lib/pho/snapshot_rb.html +2 -1
  26. data/doc/rdoc/files/lib/pho/status_rb.html +1 -1
  27. data/doc/rdoc/files/lib/pho/store_rb.html +1 -1
  28. data/doc/rdoc/files/lib/pho_rb.html +2 -1
  29. data/doc/rdoc/fr_class_index.html +2 -0
  30. data/doc/rdoc/fr_method_index.html +85 -68
  31. data/lib/pho.rb +18 -10
  32. data/lib/pho/field_predicate_map.rb +6 -1
  33. data/lib/pho/job.rb +326 -6
  34. data/lib/pho/snapshot.rb +46 -19
  35. data/lib/pho/store.rb +22 -56
  36. data/tests/tc_job.rb +262 -0
  37. data/tests/tc_jobcontrol.rb +159 -12
  38. data/tests/tc_snapshots.rb +57 -28
  39. data/tests/ts_pho.rb +1 -0
  40. metadata +9 -110
  41. data/doc/rdoc/classes/Pho/DatatypeProperty.src/M000034.html +0 -21
  42. data/doc/rdoc/classes/Pho/DatatypeProperty.src/M000035.html +0 -29
  43. data/doc/rdoc/classes/Pho/Etags.src/M000088.html +0 -23
  44. data/doc/rdoc/classes/Pho/Etags.src/M000089.html +0 -28
  45. data/doc/rdoc/classes/Pho/Etags.src/M000090.html +0 -21
  46. data/doc/rdoc/classes/Pho/Etags.src/M000091.html +0 -18
  47. data/doc/rdoc/classes/Pho/Etags.src/M000092.html +0 -18
  48. data/doc/rdoc/classes/Pho/Etags.src/M000093.html +0 -18
  49. data/doc/rdoc/classes/Pho/Facet/Results.src/M000001.html +0 -20
  50. data/doc/rdoc/classes/Pho/Facet/Results.src/M000002.html +0 -27
  51. data/doc/rdoc/classes/Pho/Facet/Results.src/M000003.html +0 -54
  52. data/doc/rdoc/classes/Pho/Facet/Term.src/M000004.html +0 -20
  53. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000005.html +0 -38
  54. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000006.html +0 -28
  55. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000007.html +0 -20
  56. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000008.html +0 -18
  57. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000009.html +0 -23
  58. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000010.html +0 -23
  59. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000011.html +0 -18
  60. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000012.html +0 -18
  61. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000013.html +0 -18
  62. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000014.html +0 -18
  63. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000015.html +0 -18
  64. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000016.html +0 -21
  65. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000017.html +0 -21
  66. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000018.html +0 -38
  67. data/doc/rdoc/classes/Pho/FieldPredicateMap.src/M000019.html +0 -18
  68. data/doc/rdoc/classes/Pho/FieldWeighting.src/M000075.html +0 -20
  69. data/doc/rdoc/classes/Pho/FieldWeighting.src/M000076.html +0 -26
  70. data/doc/rdoc/classes/Pho/Job.src/M000074.html +0 -21
  71. data/doc/rdoc/classes/Pho/QueryProfile.src/M000024.html +0 -39
  72. data/doc/rdoc/classes/Pho/QueryProfile.src/M000025.html +0 -24
  73. data/doc/rdoc/classes/Pho/QueryProfile.src/M000026.html +0 -20
  74. data/doc/rdoc/classes/Pho/QueryProfile.src/M000027.html +0 -18
  75. data/doc/rdoc/classes/Pho/QueryProfile.src/M000028.html +0 -18
  76. data/doc/rdoc/classes/Pho/QueryProfile.src/M000029.html +0 -21
  77. data/doc/rdoc/classes/Pho/QueryProfile.src/M000030.html +0 -18
  78. data/doc/rdoc/classes/Pho/QueryProfile.src/M000031.html +0 -18
  79. data/doc/rdoc/classes/Pho/QueryProfile.src/M000032.html +0 -38
  80. data/doc/rdoc/classes/Pho/QueryProfile.src/M000033.html +0 -18
  81. data/doc/rdoc/classes/Pho/RDFCollection.src/M000077.html +0 -23
  82. data/doc/rdoc/classes/Pho/RDFCollection.src/M000078.html +0 -22
  83. data/doc/rdoc/classes/Pho/RDFCollection.src/M000079.html +0 -24
  84. data/doc/rdoc/classes/Pho/RDFCollection.src/M000080.html +0 -23
  85. data/doc/rdoc/classes/Pho/RDFCollection.src/M000081.html +0 -18
  86. data/doc/rdoc/classes/Pho/RDFCollection.src/M000082.html +0 -22
  87. data/doc/rdoc/classes/Pho/RDFCollection.src/M000083.html +0 -22
  88. data/doc/rdoc/classes/Pho/RDFCollection.src/M000084.html +0 -26
  89. data/doc/rdoc/classes/Pho/RDFCollection.src/M000085.html +0 -23
  90. data/doc/rdoc/classes/Pho/RDFCollection.src/M000086.html +0 -18
  91. data/doc/rdoc/classes/Pho/RDFCollection.src/M000087.html +0 -18
  92. data/doc/rdoc/classes/Pho/Snapshot.src/M000070.html +0 -31
  93. data/doc/rdoc/classes/Pho/Snapshot.src/M000071.html +0 -21
  94. data/doc/rdoc/classes/Pho/Snapshot.src/M000072.html +0 -18
  95. data/doc/rdoc/classes/Pho/Snapshot.src/M000073.html +0 -37
  96. data/doc/rdoc/classes/Pho/Status.src/M000020.html +0 -20
  97. data/doc/rdoc/classes/Pho/Status.src/M000021.html +0 -31
  98. data/doc/rdoc/classes/Pho/Status.src/M000022.html +0 -18
  99. data/doc/rdoc/classes/Pho/Status.src/M000023.html +0 -18
  100. data/doc/rdoc/classes/Pho/Store.src/M000036.html +0 -22
  101. data/doc/rdoc/classes/Pho/Store.src/M000037.html +0 -18
  102. data/doc/rdoc/classes/Pho/Store.src/M000038.html +0 -25
  103. data/doc/rdoc/classes/Pho/Store.src/M000039.html +0 -20
  104. data/doc/rdoc/classes/Pho/Store.src/M000040.html +0 -20
  105. data/doc/rdoc/classes/Pho/Store.src/M000041.html +0 -28
  106. data/doc/rdoc/classes/Pho/Store.src/M000042.html +0 -23
  107. data/doc/rdoc/classes/Pho/Store.src/M000043.html +0 -18
  108. data/doc/rdoc/classes/Pho/Store.src/M000044.html +0 -18
  109. data/doc/rdoc/classes/Pho/Store.src/M000045.html +0 -18
  110. data/doc/rdoc/classes/Pho/Store.src/M000046.html +0 -18
  111. data/doc/rdoc/classes/Pho/Store.src/M000047.html +0 -23
  112. data/doc/rdoc/classes/Pho/Store.src/M000048.html +0 -22
  113. data/doc/rdoc/classes/Pho/Store.src/M000049.html +0 -26
  114. data/doc/rdoc/classes/Pho/Store.src/M000050.html +0 -24
  115. data/doc/rdoc/classes/Pho/Store.src/M000051.html +0 -20
  116. data/doc/rdoc/classes/Pho/Store.src/M000052.html +0 -20
  117. data/doc/rdoc/classes/Pho/Store.src/M000053.html +0 -25
  118. data/doc/rdoc/classes/Pho/Store.src/M000054.html +0 -20
  119. data/doc/rdoc/classes/Pho/Store.src/M000055.html +0 -30
  120. data/doc/rdoc/classes/Pho/Store.src/M000056.html +0 -21
  121. data/doc/rdoc/classes/Pho/Store.src/M000057.html +0 -23
  122. data/doc/rdoc/classes/Pho/Store.src/M000058.html +0 -28
  123. data/doc/rdoc/classes/Pho/Store.src/M000059.html +0 -18
  124. data/doc/rdoc/classes/Pho/Store.src/M000060.html +0 -18
  125. data/doc/rdoc/classes/Pho/Store.src/M000061.html +0 -18
  126. data/doc/rdoc/classes/Pho/Store.src/M000062.html +0 -31
  127. data/doc/rdoc/classes/Pho/Store.src/M000063.html +0 -21
  128. data/doc/rdoc/classes/Pho/Store.src/M000064.html +0 -20
  129. data/doc/rdoc/classes/Pho/Store.src/M000065.html +0 -20
  130. data/doc/rdoc/classes/Pho/Store.src/M000066.html +0 -20
  131. data/doc/rdoc/classes/Pho/Store.src/M000067.html +0 -20
  132. data/doc/rdoc/classes/Pho/Store.src/M000068.html +0 -20
  133. data/doc/rdoc/classes/Pho/Store.src/M000069.html +0 -20
@@ -93,8 +93,8 @@ href="QueryProfile.html">QueryProfile</a>
93
93
  <h3 class="section-bar">Methods</h3>
94
94
 
95
95
  <div class="name-list">
96
- <a href="#M000075">new</a>&nbsp;&nbsp;
97
- <a href="#M000076">to_rdf</a>&nbsp;&nbsp;
96
+ <a href="#M000092">new</a>&nbsp;&nbsp;
97
+ <a href="#M000093">to_rdf</a>&nbsp;&nbsp;
98
98
  </div>
99
99
  </div>
100
100
 
@@ -148,28 +148,38 @@ The weighting applied to the field
148
148
  <div id="methods">
149
149
  <h3 class="section-bar">Public Class methods</h3>
150
150
 
151
- <div id="method-M000075" class="method-detail">
152
- <a name="M000075"></a>
151
+ <div id="method-M000092" class="method-detail">
152
+ <a name="M000092"></a>
153
153
 
154
154
  <div class="method-heading">
155
- <a href="FieldWeighting.src/M000075.html" target="Code" class="method-signature"
156
- onclick="popupCode('FieldWeighting.src/M000075.html');return false;">
155
+ <a href="#M000092" class="method-signature">
157
156
  <span class="method-name">new</span><span class="method-args">(uri, name, weight)</span>
158
157
  </a>
159
158
  </div>
160
159
 
161
160
  <div class="method-description">
161
+ <p><a class="source-toggle" href="#"
162
+ onclick="toggleCode('M000092-source');return false;">[Source]</a></p>
163
+ <div class="method-source-code" id="M000092-source">
164
+ <pre>
165
+ <span class="ruby-comment cmt"># File lib/pho/query_profile.rb, line 15</span>
166
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">weight</span>)
167
+ <span class="ruby-ivar">@uri</span> = <span class="ruby-identifier">uri</span>
168
+ <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
169
+ <span class="ruby-ivar">@weight</span> = <span class="ruby-identifier">weight</span>
170
+ <span class="ruby-keyword kw">end</span>
171
+ </pre>
172
+ </div>
162
173
  </div>
163
174
  </div>
164
175
 
165
176
  <h3 class="section-bar">Public Instance methods</h3>
166
177
 
167
- <div id="method-M000076" class="method-detail">
168
- <a name="M000076"></a>
178
+ <div id="method-M000093" class="method-detail">
179
+ <a name="M000093"></a>
169
180
 
170
181
  <div class="method-heading">
171
- <a href="FieldWeighting.src/M000076.html" target="Code" class="method-signature"
172
- onclick="popupCode('FieldWeighting.src/M000076.html');return false;">
182
+ <a href="#M000093" class="method-signature">
173
183
  <span class="method-name">to_rdf</span><span class="method-args">(ns=true)</span>
174
184
  </a>
175
185
  </div>
@@ -184,6 +194,24 @@ rdf:Description, optionally including namespaces
184
194
 
185
195
  </td></tr>
186
196
  </table>
197
+ <p><a class="source-toggle" href="#"
198
+ onclick="toggleCode('M000093-source');return false;">[Source]</a></p>
199
+ <div class="method-source-code" id="M000093-source">
200
+ <pre>
201
+ <span class="ruby-comment cmt"># File lib/pho/query_profile.rb, line 23</span>
202
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_rdf</span>(<span class="ruby-identifier">ns</span>=<span class="ruby-keyword kw">true</span>)
203
+ <span class="ruby-identifier">rdf</span> = <span class="ruby-value str">&quot;&lt;rdf:Description &quot;</span>
204
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ns</span>
205
+ <span class="ruby-identifier">rdf</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; xmlns:rdf=\&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#\&quot; xmlns:frm=\&quot;#{Pho::Namespaces::FRAME}\&quot; xmlns:bf=\&quot;#{Pho::Namespaces::CONFIG}\&quot; &quot;</span>
206
+ <span class="ruby-keyword kw">end</span>
207
+ <span class="ruby-identifier">rdf</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; rdf:about=\&quot;#{@uri}\&quot;&gt;&quot;</span>
208
+ <span class="ruby-identifier">rdf</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; &lt;frm:name&gt;#{@name}&lt;/frm:name&gt;&quot;</span>
209
+ <span class="ruby-identifier">rdf</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; &lt;bf:weight&gt;#{@weight}&lt;/bf:weight&gt;&quot;</span>
210
+ <span class="ruby-identifier">rdf</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&lt;/rdf:Description&gt;&quot;</span>
211
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">rdf</span>
212
+ <span class="ruby-keyword kw">end</span>
213
+ </pre>
214
+ </div>
187
215
  </div>
188
216
  </div>
189
217
 
@@ -80,7 +80,16 @@
80
80
 
81
81
  <div id="description">
82
82
  <p>
83
- Captures information about a Platform <a href="Job.html">Job</a>
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
84
93
  </p>
85
94
 
86
95
  </div>
@@ -92,7 +101,16 @@ Captures information about a Platform <a href="Job.html">Job</a>
92
101
  <h3 class="section-bar">Methods</h3>
93
102
 
94
103
  <div class="name-list">
95
- <a href="#M000074">parse_jobs</a>&nbsp;&nbsp;
104
+ <a href="#M000087">completed?</a>&nbsp;&nbsp;
105
+ <a href="#M000082">new</a>&nbsp;&nbsp;
106
+ <a href="#M000084">parse</a>&nbsp;&nbsp;
107
+ <a href="#M000085">progress_updates</a>&nbsp;&nbsp;
108
+ <a href="#M000083">read_from_store</a>&nbsp;&nbsp;
109
+ <a href="#M000089">running?</a>&nbsp;&nbsp;
110
+ <a href="#M000086">started?</a>&nbsp;&nbsp;
111
+ <a href="#M000088">successful?</a>&nbsp;&nbsp;
112
+ <a href="#M000091">with_each</a>&nbsp;&nbsp;
113
+ <a href="#M000090">with_first</a>&nbsp;&nbsp;
96
114
  </div>
97
115
  </div>
98
116
 
@@ -104,9 +122,132 @@ Captures information about a Platform <a href="Job.html">Job</a>
104
122
  <div id="section">
105
123
 
106
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
107
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
108
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
109
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>
110
251
 
111
252
 
112
253
 
@@ -114,21 +255,359 @@ Captures information about a Platform <a href="Job.html">Job</a>
114
255
  <div id="methods">
115
256
  <h3 class="section-bar">Public Class methods</h3>
116
257
 
117
- <div id="method-M000074" class="method-detail">
118
- <a name="M000074"></a>
258
+ <div id="method-M000082" class="method-detail">
259
+ <a name="M000082"></a>
260
+
261
+ <div class="method-heading">
262
+ <a href="#M000082" 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('M000082-source');return false;">[Source]</a></p>
290
+ <div class="method-source-code" id="M000082-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-M000084" class="method-detail">
307
+ <a name="M000084"></a>
308
+
309
+ <div class="method-heading">
310
+ <a href="#M000084" 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 RDF/XML, creating a fully
318
+ populated <a href="Job.html">Job</a> instance
319
+ </p>
320
+ <table>
321
+ <tr><td valign="top">uri:</td><td>uri of the job to be parsed
322
+
323
+ </td></tr>
324
+ <tr><td valign="top">xml:</td><td>the RDF/XML text to be parsed
325
+
326
+ </td></tr>
327
+ </table>
328
+ <p><a class="source-toggle" href="#"
329
+ onclick="toggleCode('M000084-source');return false;">[Source]</a></p>
330
+ <div class="method-source-code" id="M000084-source">
331
+ <pre>
332
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 241</span>
333
+ <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>)
334
+ <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>)
335
+ <span class="ruby-identifier">root</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">root</span>
336
+
337
+ <span class="ruby-comment cmt">#job_el = REXML::XPath.first(root, &quot;rdf:Description[rdf:type]&quot;, Pho::Namespaces::MAPPING ) </span>
338
+ <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> )
339
+ <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>]
340
+ <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>
341
+ <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> )
342
+ <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>]
343
+ <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>
344
+ <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>
345
+
346
+ <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>)
347
+ <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>
348
+ <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>
349
+ <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>]
350
+ <span class="ruby-keyword kw">end</span>
351
+ <span class="ruby-keyword kw">end</span>
352
+
353
+ <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>
354
+ <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>
355
+ <span class="ruby-keyword kw">end</span>
356
+ <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>
357
+ <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>
358
+ <span class="ruby-keyword kw">end</span>
359
+ <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>
360
+ <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>
361
+ <span class="ruby-keyword kw">end</span>
362
+ <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>
363
+ <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>
364
+ <span class="ruby-keyword kw">end</span>
365
+ <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>
366
+ <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>]
367
+ <span class="ruby-keyword kw">end</span>
368
+ <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>
369
+ <span class="ruby-identifier">update</span> = <span class="ruby-constant">JobUpdate</span>.<span class="ruby-identifier">new</span>
370
+ <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>
371
+ <span class="ruby-identifier">update</span>.<span class="ruby-identifier">message</span> = <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">text</span>
372
+ <span class="ruby-keyword kw">end</span>
373
+ <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>
374
+ <span class="ruby-identifier">update</span>.<span class="ruby-identifier">time</span> = <span class="ruby-identifier">time</span>.<span class="ruby-identifier">text</span>
375
+ <span class="ruby-keyword kw">end</span>
376
+ <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>
377
+ <span class="ruby-keyword kw">end</span>
378
+
379
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">job</span>
380
+
381
+ <span class="ruby-keyword kw">end</span>
382
+ </pre>
383
+ </div>
384
+ </div>
385
+ </div>
386
+
387
+ <div id="method-M000083" class="method-detail">
388
+ <a name="M000083"></a>
389
+
390
+ <div class="method-heading">
391
+ <a href="#M000083" class="method-signature">
392
+ <span class="method-name">read_from_store</span><span class="method-args">(uri, store)</span>
393
+ </a>
394
+ </div>
395
+
396
+ <div class="method-description">
397
+ <p>
398
+ Read a job from a store
399
+ </p>
400
+ <table>
401
+ <tr><td valign="top">uri:</td><td>uri of the job to read
402
+
403
+ </td></tr>
404
+ <tr><td valign="top">store:</td><td>store from which the job will be read
405
+
406
+ </td></tr>
407
+ </table>
408
+ <p><a class="source-toggle" href="#"
409
+ onclick="toggleCode('M000083-source');return false;">[Source]</a></p>
410
+ <div class="method-source-code" id="M000083-source">
411
+ <pre>
412
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 227</span>
413
+ <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>)
414
+ <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>)
415
+ <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>
416
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unable to read job from store. Response code was #{resp.status}&quot;</span>
417
+ <span class="ruby-keyword kw">end</span>
418
+
419
+ <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>)
420
+ <span class="ruby-keyword kw">end</span>
421
+ </pre>
422
+ </div>
423
+ </div>
424
+ </div>
425
+
426
+ <h3 class="section-bar">Protected Class methods</h3>
427
+
428
+ <div id="method-M000091" class="method-detail">
429
+ <a name="M000091"></a>
430
+
431
+ <div class="method-heading">
432
+ <a href="#M000091" class="method-signature">
433
+ <span class="method-name">with_each</span><span class="method-args">(el, xpath) {|ref_el| ...}</span>
434
+ </a>
435
+ </div>
436
+
437
+ <div class="method-description">
438
+ <p><a class="source-toggle" href="#"
439
+ onclick="toggleCode('M000091-source');return false;">[Source]</a></p>
440
+ <div class="method-source-code" id="M000091-source">
441
+ <pre>
442
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 327</span>
443
+ <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>)
444
+ <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>
445
+ <span class="ruby-identifier">root</span> = <span class="ruby-identifier">e</span>.<span class="ruby-identifier">document</span>.<span class="ruby-identifier">root</span>
446
+ <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>]
447
+ <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>)
448
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">ref_el</span>
449
+ <span class="ruby-keyword kw">end</span>
450
+ <span class="ruby-keyword kw">end</span>
451
+ </pre>
452
+ </div>
453
+ </div>
454
+ </div>
455
+
456
+ <div id="method-M000090" class="method-detail">
457
+ <a name="M000090"></a>
458
+
459
+ <div class="method-heading">
460
+ <a href="#M000090" class="method-signature">
461
+ <span class="method-name">with_first</span><span class="method-args">(el, xpath) {|found_el| ...}</span>
462
+ </a>
463
+ </div>
464
+
465
+ <div class="method-description">
466
+ <p><a class="source-toggle" href="#"
467
+ onclick="toggleCode('M000090-source');return false;">[Source]</a></p>
468
+ <div class="method-source-code" id="M000090-source">
469
+ <pre>
470
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 320</span>
471
+ <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>)
472
+ <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>)
473
+ <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>
474
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">found_el</span>
475
+ <span class="ruby-keyword kw">end</span>
476
+ <span class="ruby-keyword kw">end</span>
477
+ </pre>
478
+ </div>
479
+ </div>
480
+ </div>
481
+
482
+ <h3 class="section-bar">Public Instance methods</h3>
483
+
484
+ <div id="method-M000087" class="method-detail">
485
+ <a name="M000087"></a>
486
+
487
+ <div class="method-heading">
488
+ <a href="#M000087" class="method-signature">
489
+ <span class="method-name">completed?</span><span class="method-args">()</span>
490
+ </a>
491
+ </div>
492
+
493
+ <div class="method-description">
494
+ <p>
495
+ Has the job <a href="Job.html#M000087">completed?</a>
496
+ </p>
497
+ <p><a class="source-toggle" href="#"
498
+ onclick="toggleCode('M000087-source');return false;">[Source]</a></p>
499
+ <div class="method-source-code" id="M000087-source">
500
+ <pre>
501
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 304</span>
502
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">completed?</span>
503
+ <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>
504
+ <span class="ruby-keyword kw">end</span>
505
+ </pre>
506
+ </div>
507
+ </div>
508
+ </div>
509
+
510
+ <div id="method-M000085" class="method-detail">
511
+ <a name="M000085"></a>
512
+
513
+ <div class="method-heading">
514
+ <a href="#M000085" class="method-signature">
515
+ <span class="method-name">progress_updates</span><span class="method-args">()</span>
516
+ </a>
517
+ </div>
518
+
519
+ <div class="method-description">
520
+ <p><a class="source-toggle" href="#"
521
+ onclick="toggleCode('M000085-source');return false;">[Source]</a></p>
522
+ <div class="method-source-code" id="M000085-source">
523
+ <pre>
524
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 291</span>
525
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">progress_updates</span>()
526
+ <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>
527
+ <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>
528
+ }
529
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@progress_updates</span>
530
+ <span class="ruby-keyword kw">end</span>
531
+ </pre>
532
+ </div>
533
+ </div>
534
+ </div>
535
+
536
+ <div id="method-M000089" class="method-detail">
537
+ <a name="M000089"></a>
538
+
539
+ <div class="method-heading">
540
+ <a href="#M000089" class="method-signature">
541
+ <span class="method-name">running?</span><span class="method-args">()</span>
542
+ </a>
543
+ </div>
544
+
545
+ <div class="method-description">
546
+ <p>
547
+ Is the job still <a href="Job.html#M000089">running?</a>
548
+ </p>
549
+ <p><a class="source-toggle" href="#"
550
+ onclick="toggleCode('M000089-source');return false;">[Source]</a></p>
551
+ <div class="method-source-code" id="M000089-source">
552
+ <pre>
553
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 314</span>
554
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">running?</span>
555
+ <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>
556
+ <span class="ruby-keyword kw">end</span>
557
+ </pre>
558
+ </div>
559
+ </div>
560
+ </div>
561
+
562
+ <div id="method-M000086" class="method-detail">
563
+ <a name="M000086"></a>
564
+
565
+ <div class="method-heading">
566
+ <a href="#M000086" class="method-signature">
567
+ <span class="method-name">started?</span><span class="method-args">()</span>
568
+ </a>
569
+ </div>
570
+
571
+ <div class="method-description">
572
+ <p>
573
+ Has the job <a href="Job.html#M000086">started?</a>
574
+ </p>
575
+ <p><a class="source-toggle" href="#"
576
+ onclick="toggleCode('M000086-source');return false;">[Source]</a></p>
577
+ <div class="method-source-code" id="M000086-source">
578
+ <pre>
579
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 299</span>
580
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">started?</span>
581
+ <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>
582
+ <span class="ruby-keyword kw">end</span>
583
+ </pre>
584
+ </div>
585
+ </div>
586
+ </div>
587
+
588
+ <div id="method-M000088" class="method-detail">
589
+ <a name="M000088"></a>
119
590
 
120
591
  <div class="method-heading">
121
- <a href="Job.src/M000074.html" target="Code" class="method-signature"
122
- onclick="popupCode('Job.src/M000074.html');return false;">
123
- <span class="method-name">parse_jobs</span><span class="method-args">(resp)</span>
592
+ <a href="#M000088" class="method-signature">
593
+ <span class="method-name">successful?</span><span class="method-args">()</span>
124
594
  </a>
125
595
  </div>
126
596
 
127
597
  <div class="method-description">
128
598
  <p>
129
- Parse out an array of <a href="Job.html">Job</a> objects from a response
130
- returned from the Platform
599
+ Was the job <a href="Job.html#M000088">successful?</a>
131
600
  </p>
601
+ <p><a class="source-toggle" href="#"
602
+ onclick="toggleCode('M000088-source');return false;">[Source]</a></p>
603
+ <div class="method-source-code" id="M000088-source">
604
+ <pre>
605
+ <span class="ruby-comment cmt"># File lib/pho/job.rb, line 309</span>
606
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">successful?</span>
607
+ <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>
608
+ <span class="ruby-keyword kw">end</span>
609
+ </pre>
610
+ </div>
132
611
  </div>
133
612
  </div>
134
613