pho 0.7.2 → 0.7.3

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 (82) hide show
  1. data/CHANGES +5 -0
  2. data/Rakefile +1 -1
  3. data/lib/pho/snapshot.rb +6 -1
  4. data/lib/pho/sparql.rb +4 -1
  5. data/tests/tc_snapshots.rb +14 -1
  6. data/tests/tc_sparql_helper.rb +23 -0
  7. metadata +60 -160
  8. data/doc/rdoc/classes/Pho/Analyzers.html +0 -310
  9. data/doc/rdoc/classes/Pho/CommandLine.html +0 -770
  10. data/doc/rdoc/classes/Pho/DatatypeProperty.html +0 -241
  11. data/doc/rdoc/classes/Pho/Enrichment/StoreEnricher.html +0 -410
  12. data/doc/rdoc/classes/Pho/Enrichment.html +0 -119
  13. data/doc/rdoc/classes/Pho/Etags.html +0 -310
  14. data/doc/rdoc/classes/Pho/Facet/Results.html +0 -299
  15. data/doc/rdoc/classes/Pho/Facet/Term.html +0 -177
  16. data/doc/rdoc/classes/Pho/Facet.html +0 -119
  17. data/doc/rdoc/classes/Pho/FieldPredicateMap.html +0 -668
  18. data/doc/rdoc/classes/Pho/FieldWeighting.html +0 -230
  19. data/doc/rdoc/classes/Pho/FileManagement/AbstractFileManager.html +0 -478
  20. data/doc/rdoc/classes/Pho/FileManagement/FileManager.html +0 -264
  21. data/doc/rdoc/classes/Pho/FileManagement/RDFManager.html +0 -259
  22. data/doc/rdoc/classes/Pho/FileManagement.html +0 -121
  23. data/doc/rdoc/classes/Pho/Job.html +0 -627
  24. data/doc/rdoc/classes/Pho/JobUpdate.html +0 -141
  25. data/doc/rdoc/classes/Pho/Jobs.html +0 -538
  26. data/doc/rdoc/classes/Pho/Namespaces.html +0 -164
  27. data/doc/rdoc/classes/Pho/OAI/Record.html +0 -165
  28. data/doc/rdoc/classes/Pho/OAI/Records.html +0 -331
  29. data/doc/rdoc/classes/Pho/OAI.html +0 -118
  30. data/doc/rdoc/classes/Pho/QueryProfile.html +0 -497
  31. data/doc/rdoc/classes/Pho/RDF/Parser.html +0 -279
  32. data/doc/rdoc/classes/Pho/RDF.html +0 -120
  33. data/doc/rdoc/classes/Pho/RDFCollection.html +0 -119
  34. data/doc/rdoc/classes/Pho/ResourceHash/Converter.html +0 -325
  35. data/doc/rdoc/classes/Pho/ResourceHash/SetAlgebra.html +0 -241
  36. data/doc/rdoc/classes/Pho/ResourceHash.html +0 -123
  37. data/doc/rdoc/classes/Pho/Snapshot.html +0 -397
  38. data/doc/rdoc/classes/Pho/Sparql/SparqlClient.html +0 -594
  39. data/doc/rdoc/classes/Pho/Sparql/SparqlHelper.html +0 -692
  40. data/doc/rdoc/classes/Pho/Sparql.html +0 -187
  41. data/doc/rdoc/classes/Pho/Status.html +0 -296
  42. data/doc/rdoc/classes/Pho/Store.html +0 -1560
  43. data/doc/rdoc/classes/Pho/StoreSparqlClient.html +0 -183
  44. data/doc/rdoc/classes/Pho/Update/Changeset.html +0 -521
  45. data/doc/rdoc/classes/Pho/Update/ChangesetBuilder.html +0 -330
  46. data/doc/rdoc/classes/Pho/Update/ChangesetHelper.html +0 -159
  47. data/doc/rdoc/classes/Pho/Update/Changesets.html +0 -205
  48. data/doc/rdoc/classes/Pho/Update/LiteralStatement.html +0 -257
  49. data/doc/rdoc/classes/Pho/Update/ResourceStatement.html +0 -237
  50. data/doc/rdoc/classes/Pho/Update/Statement.html +0 -303
  51. data/doc/rdoc/classes/Pho/Update.html +0 -128
  52. data/doc/rdoc/classes/Pho.html +0 -283
  53. data/doc/rdoc/classes/String.html +0 -146
  54. data/doc/rdoc/created.rid +0 -1
  55. data/doc/rdoc/files/CHANGES.html +0 -351
  56. data/doc/rdoc/files/README.html +0 -191
  57. data/doc/rdoc/files/lib/pho/changeset_builder_rb.html +0 -108
  58. data/doc/rdoc/files/lib/pho/changeset_rb.html +0 -108
  59. data/doc/rdoc/files/lib/pho/command_line_rb.html +0 -101
  60. data/doc/rdoc/files/lib/pho/converter_rb.html +0 -108
  61. data/doc/rdoc/files/lib/pho/enrichment_rb.html +0 -101
  62. data/doc/rdoc/files/lib/pho/etags_rb.html +0 -108
  63. data/doc/rdoc/files/lib/pho/facet_rb.html +0 -101
  64. data/doc/rdoc/files/lib/pho/field_predicate_map_rb.html +0 -101
  65. data/doc/rdoc/files/lib/pho/file_management_rb.html +0 -101
  66. data/doc/rdoc/files/lib/pho/file_manager_rb.html +0 -108
  67. data/doc/rdoc/files/lib/pho/job_rb.html +0 -101
  68. data/doc/rdoc/files/lib/pho/oai_rb.html +0 -101
  69. data/doc/rdoc/files/lib/pho/query_profile_rb.html +0 -101
  70. data/doc/rdoc/files/lib/pho/rdf_collection_rb.html +0 -101
  71. data/doc/rdoc/files/lib/pho/rdf_rb.html +0 -108
  72. data/doc/rdoc/files/lib/pho/resource_hash_rb.html +0 -101
  73. data/doc/rdoc/files/lib/pho/snapshot_rb.html +0 -109
  74. data/doc/rdoc/files/lib/pho/sparql_rb.html +0 -101
  75. data/doc/rdoc/files/lib/pho/status_rb.html +0 -101
  76. data/doc/rdoc/files/lib/pho/store_rb.html +0 -108
  77. data/doc/rdoc/files/lib/pho_rb.html +0 -133
  78. data/doc/rdoc/fr_class_index.html +0 -72
  79. data/doc/rdoc/fr_file_index.html +0 -49
  80. data/doc/rdoc/fr_method_index.html +0 -237
  81. data/doc/rdoc/index.html +0 -24
  82. data/doc/rdoc/rdoc-style.css +0 -208
@@ -1,123 +0,0 @@
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>Module: Pho::ResourceHash</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>Module</strong></td>
53
- <td class="class-name-in-header">Pho::ResourceHash</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/pho/converter_rb.html">
59
- lib/pho/converter.rb
60
- </a>
61
- <br />
62
- <a href="../../files/lib/pho/resource_hash_rb.html">
63
- lib/pho/resource_hash.rb
64
- </a>
65
- <br />
66
- </td>
67
- </tr>
68
-
69
- </table>
70
- </div>
71
- <!-- banner header -->
72
-
73
- <div id="bodyContent">
74
-
75
-
76
-
77
- <div id="contextContent">
78
-
79
- <div id="description">
80
- <p>
81
- Module providing code for manipulating resource hashes structured according
82
- to the <a href="RDF.html">RDF</a> in JSON spec
83
- </p>
84
-
85
- </div>
86
-
87
-
88
- </div>
89
-
90
-
91
- </div>
92
-
93
-
94
- <!-- if includes -->
95
-
96
- <div id="section">
97
-
98
- <div id="class-list">
99
- <h3 class="section-bar">Classes and Modules</h3>
100
-
101
- Class <a href="ResourceHash/Converter.html" class="link">Pho::ResourceHash::Converter</a><br />
102
- Class <a href="ResourceHash/SetAlgebra.html" class="link">Pho::ResourceHash::SetAlgebra</a><br />
103
-
104
- </div>
105
-
106
-
107
-
108
-
109
-
110
-
111
-
112
- <!-- if method_list -->
113
-
114
-
115
- </div>
116
-
117
-
118
- <div id="validator-badges">
119
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
120
- </div>
121
-
122
- </body>
123
- </html>
@@ -1,397 +0,0 @@
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::Snapshot</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::Snapshot</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/pho/snapshot_rb.html">
59
- lib/pho/snapshot.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
- In the Talis Platform a &quot;snapshot&quot; is an <a
84
- href="Snapshot.html#M000193">backup</a> of the contents of a <a
85
- href="Store.html">Store</a>
86
- </p>
87
- <p>
88
- A snapshot consists of a tar file that contains all data (contentbox and
89
- metabox) in the store. The snapshot also contains the store configuration
90
- but this is encrypted and not intended for reuse.
91
- </p>
92
- <p>
93
- A snapshot can be generated (or scheduled) using the Store.snapshot method.
94
- </p>
95
-
96
- </div>
97
-
98
-
99
- </div>
100
-
101
- <div id="method-list">
102
- <h3 class="section-bar">Methods</h3>
103
-
104
- <div class="name-list">
105
- <a href="#M000193">backup</a>&nbsp;&nbsp;
106
- <a href="#M000191">new</a>&nbsp;&nbsp;
107
- <a href="#M000190">parse</a>&nbsp;&nbsp;
108
- <a href="#M000189">read_from_store</a>&nbsp;&nbsp;
109
- <a href="#M000192">read_md5</a>&nbsp;&nbsp;
110
- </div>
111
- </div>
112
-
113
- </div>
114
-
115
-
116
- <!-- if includes -->
117
-
118
- <div id="section">
119
-
120
-
121
-
122
-
123
-
124
- <div id="attribute-list">
125
- <h3 class="section-bar">Attributes</h3>
126
-
127
- <div class="name-list">
128
- <table>
129
- <tr class="top-aligned-row context-row">
130
- <td class="context-item-name">date</td>
131
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
132
- <td class="context-item-desc">
133
- Date when snapshot was taken
134
-
135
- </td>
136
- </tr>
137
- <tr class="top-aligned-row context-row">
138
- <td class="context-item-name">md5_url</td>
139
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
140
- <td class="context-item-desc">
141
- The URL from which the MD5 for the snapshot can be retrieved
142
-
143
- </td>
144
- </tr>
145
- <tr class="top-aligned-row context-row">
146
- <td class="context-item-name">size</td>
147
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
148
- <td class="context-item-desc">
149
- Size of the snapshot
150
-
151
- </td>
152
- </tr>
153
- <tr class="top-aligned-row context-row">
154
- <td class="context-item-name">units</td>
155
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
156
- <td class="context-item-desc">
157
- Units for Size, e.g. KB
158
-
159
- </td>
160
- </tr>
161
- <tr class="top-aligned-row context-row">
162
- <td class="context-item-name">url</td>
163
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
164
- <td class="context-item-desc">
165
- The URL from which the snapshot can be retrieved
166
-
167
- </td>
168
- </tr>
169
- </table>
170
- </div>
171
- </div>
172
-
173
-
174
-
175
- <!-- if method_list -->
176
- <div id="methods">
177
- <h3 class="section-bar">Public Class methods</h3>
178
-
179
- <div id="method-M000191" class="method-detail">
180
- <a name="M000191"></a>
181
-
182
- <div class="method-heading">
183
- <a href="#M000191" class="method-signature">
184
- <span class="method-name">new</span><span class="method-args">(url, md5_url, size, units, date)</span>
185
- </a>
186
- </div>
187
-
188
- <div class="method-description">
189
- <p><a class="source-toggle" href="#"
190
- onclick="toggleCode('M000191-source');return false;">[Source]</a></p>
191
- <div class="method-source-code" id="M000191-source">
192
- <pre>
193
- <span class="ruby-comment cmt"># File lib/pho/snapshot.rb, line 76</span>
194
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">md5_url</span>, <span class="ruby-identifier">size</span>, <span class="ruby-identifier">units</span>, <span class="ruby-identifier">date</span>)
195
- <span class="ruby-ivar">@url</span> = <span class="ruby-identifier">url</span>
196
- <span class="ruby-ivar">@md5_url</span> = <span class="ruby-identifier">md5_url</span>
197
- <span class="ruby-ivar">@size</span> = <span class="ruby-identifier">size</span>
198
- <span class="ruby-ivar">@units</span> = <span class="ruby-identifier">units</span>
199
- <span class="ruby-ivar">@date</span> = <span class="ruby-identifier">date</span>
200
- <span class="ruby-keyword kw">end</span>
201
- </pre>
202
- </div>
203
- </div>
204
- </div>
205
-
206
- <div id="method-M000190" class="method-detail">
207
- <a name="M000190"></a>
208
-
209
- <div class="method-heading">
210
- <a href="#M000190" class="method-signature">
211
- <span class="method-name">parse</span><span class="method-args">(storeuri, content)</span>
212
- </a>
213
- </div>
214
-
215
- <div class="method-description">
216
- <p>
217
- Class method to <a href="Snapshot.html#M000190">parse</a> the <a
218
- href="RDF.html">RDF</a> response from the API, e.g. as produced by the <a
219
- href="Store.html#M000183">Store.get_snapshots</a> method and create a <a
220
- href="Snapshot.html#M000191">new</a> <a href="Snapshot.html">Snapshot</a>
221
- object. At the moment the Platform only supports single snapshot.
222
- </p>
223
- <p>
224
- If the response was an error, then an exception will be thrown
225
- </p>
226
- <pre>
227
- storeuri:: URI of the store
228
- content:: response from the API
229
- </pre>
230
- <p><a class="source-toggle" href="#"
231
- onclick="toggleCode('M000190-source');return false;">[Source]</a></p>
232
- <div class="method-source-code" id="M000190-source">
233
- <pre>
234
- <span class="ruby-comment cmt"># File lib/pho/snapshot.rb, line 52</span>
235
- <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Snapshot</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">storeuri</span>, <span class="ruby-identifier">content</span>)
236
-
237
- <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">content</span>)
238
- <span class="ruby-identifier">root</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">root</span>
239
-
240
- <span class="ruby-identifier">store</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='#{storeuri}']&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> )
241
- <span class="ruby-identifier">snapshot</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">store</span>, <span class="ruby-value str">&quot;bf:snapshot&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>)
242
- <span class="ruby-identifier">snapshot_url</span> = <span class="ruby-identifier">snapshot</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;rdf:resource&quot;</span>]
243
- <span class="ruby-identifier">snapshot_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='#{snapshot_url}']&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> )
244
-
245
- <span class="ruby-identifier">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">snapshot_el</span>, <span class="ruby-value str">&quot;bf:md5&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>)
246
- <span class="ruby-identifier">snapshot_md5_url</span> = <span class="ruby-identifier">el</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">&quot;rdf:resource&quot;</span>]
247
-
248
- <span class="ruby-identifier">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">snapshot_el</span>, <span class="ruby-value str">&quot;bf:filesize&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>)
249
- <span class="ruby-identifier">snapshot_size</span> = <span class="ruby-identifier">el</span>.<span class="ruby-identifier">text</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot; &quot;</span>)[<span class="ruby-value">0</span>]
250
- <span class="ruby-identifier">snapshot_units</span> = <span class="ruby-identifier">el</span>.<span class="ruby-identifier">text</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot; &quot;</span>)[<span class="ruby-value">1</span>]
251
-
252
- <span class="ruby-identifier">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">snapshot_el</span>, <span class="ruby-value str">&quot;dc:date&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>)
253
- <span class="ruby-identifier">snapshot_date</span> = <span class="ruby-identifier">el</span>.<span class="ruby-identifier">text</span>
254
-
255
- <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Snapshot</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">snapshot_url</span>, <span class="ruby-identifier">snapshot_md5_url</span>, <span class="ruby-identifier">snapshot_size</span>, <span class="ruby-identifier">snapshot_units</span>, <span class="ruby-identifier">snapshot_date</span>)
256
-
257
- <span class="ruby-keyword kw">end</span>
258
- </pre>
259
- </div>
260
- </div>
261
- </div>
262
-
263
- <div id="method-M000189" class="method-detail">
264
- <a name="M000189"></a>
265
-
266
- <div class="method-heading">
267
- <a href="#M000189" class="method-signature">
268
- <span class="method-name">read_from_store</span><span class="method-args">(store)</span>
269
- </a>
270
- </div>
271
-
272
- <div class="method-description">
273
- <p>
274
- Read snapshot data from the given store
275
- </p>
276
- <table>
277
- <tr><td valign="top">store:</td><td>reference to a <a href="Store.html">Store</a> object
278
-
279
- </td></tr>
280
- </table>
281
- <p><a class="source-toggle" href="#"
282
- onclick="toggleCode('M000189-source');return false;">[Source]</a></p>
283
- <div class="method-source-code" id="M000189-source">
284
- <pre>
285
- <span class="ruby-comment cmt"># File lib/pho/snapshot.rb, line 34</span>
286
- <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Snapshot</span>.<span class="ruby-identifier">read_from_store</span>(<span class="ruby-identifier">store</span>)
287
- <span class="ruby-identifier">resp</span> = <span class="ruby-identifier">store</span>.<span class="ruby-identifier">get_snapshots</span>()
288
-
289
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">resp</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">200</span>)
290
- <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Response was not successful. Status code was: #{resp.status}&quot;</span>
291
- <span class="ruby-keyword kw">end</span>
292
- <span class="ruby-identifier">content</span> = <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">content</span>
293
-
294
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">store</span>.<span class="ruby-identifier">storeuri</span>, <span class="ruby-identifier">content</span>)
295
- <span class="ruby-keyword kw">end</span>
296
- </pre>
297
- </div>
298
- </div>
299
- </div>
300
-
301
- <h3 class="section-bar">Public Instance methods</h3>
302
-
303
- <div id="method-M000193" class="method-detail">
304
- <a name="M000193"></a>
305
-
306
- <div class="method-heading">
307
- <a href="#M000193" class="method-signature">
308
- <span class="method-name">backup</span><span class="method-args">(store, dir=Dir.tmpdir)</span>
309
- </a>
310
- </div>
311
-
312
- <div class="method-description">
313
- <p>
314
- Download this snapshot to the specified directory. Will automatically
315
- calculate an MD5 checksum for the download and compare it against the
316
- published value. If they don&#8216;t match then a RuntimeError will be
317
- raised
318
- </p>
319
- <table>
320
- <tr><td valign="top">store:</td><td>the store to <a href="Snapshot.html#M000193">backup</a>
321
-
322
- </td></tr>
323
- <tr><td valign="top">dir:</td><td>directory in which snapshot will be stored
324
-
325
- </td></tr>
326
- </table>
327
- <p><a class="source-toggle" href="#"
328
- onclick="toggleCode('M000193-source');return false;">[Source]</a></p>
329
- <div class="method-source-code" id="M000193-source">
330
- <pre>
331
- <span class="ruby-comment cmt"># File lib/pho/snapshot.rb, line 96</span>
332
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backup</span>(<span class="ruby-identifier">store</span>, <span class="ruby-identifier">dir</span>=<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">tmpdir</span>)
333
-
334
- <span class="ruby-identifier">published_md5</span> = <span class="ruby-identifier">read_md5</span>(<span class="ruby-identifier">store</span>.<span class="ruby-identifier">client</span>)
335
-
336
- <span class="ruby-identifier">digest</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">MD5</span>.<span class="ruby-identifier">new</span>()
337
-
338
- <span class="ruby-identifier">filename</span> = <span class="ruby-ivar">@url</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;/&quot;</span>).<span class="ruby-identifier">last</span>
339
- <span class="ruby-identifier">file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>( <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">dir</span>, <span class="ruby-identifier">filename</span>), <span class="ruby-value str">&quot;w&quot;</span> ) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
340
-
341
- <span class="ruby-comment cmt">#FIXME: this is not efficient as the snapshot may be very large and this</span>
342
- <span class="ruby-comment cmt">#will just read all of the data into memory</span>
343
- <span class="ruby-identifier">content</span> = <span class="ruby-identifier">store</span>.<span class="ruby-identifier">client</span>.<span class="ruby-identifier">get_content</span>(<span class="ruby-ivar">@url</span>)
344
- <span class="ruby-identifier">file</span>.<span class="ruby-identifier">print</span>(<span class="ruby-identifier">content</span>)
345
- <span class="ruby-identifier">digest</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">content</span>
346
-
347
- <span class="ruby-keyword kw">end</span>
348
-
349
- <span class="ruby-identifier">calc_md5</span> = <span class="ruby-identifier">digest</span>.<span class="ruby-identifier">hexdigest</span>
350
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">calc_md5</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">published_md5</span>)
351
- <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Calculated digest of #{calc_md5} but does not match published md5 #{published_md5}&quot;</span>
352
- <span class="ruby-keyword kw">end</span>
353
- <span class="ruby-keyword kw">end</span>
354
- </pre>
355
- </div>
356
- </div>
357
- </div>
358
-
359
- <div id="method-M000192" class="method-detail">
360
- <a name="M000192"></a>
361
-
362
- <div class="method-heading">
363
- <a href="#M000192" class="method-signature">
364
- <span class="method-name">read_md5</span><span class="method-args">(client=HttpClient.new())</span>
365
- </a>
366
- </div>
367
-
368
- <div class="method-description">
369
- <p>
370
- Read the published MD5 value
371
- </p>
372
- <p><a class="source-toggle" href="#"
373
- onclick="toggleCode('M000192-source');return false;">[Source]</a></p>
374
- <div class="method-source-code" id="M000192-source">
375
- <pre>
376
- <span class="ruby-comment cmt"># File lib/pho/snapshot.rb, line 86</span>
377
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_md5</span>(<span class="ruby-identifier">client</span>=<span class="ruby-constant">HttpClient</span>.<span class="ruby-identifier">new</span>())
378
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">client</span>.<span class="ruby-identifier">get_content</span>(<span class="ruby-ivar">@md5_url</span>)
379
- <span class="ruby-keyword kw">end</span>
380
- </pre>
381
- </div>
382
- </div>
383
- </div>
384
-
385
-
386
- </div>
387
-
388
-
389
- </div>
390
-
391
-
392
- <div id="validator-badges">
393
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
394
- </div>
395
-
396
- </body>
397
- </html>