pho 0.7.8 → 0.7.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. data/CHANGES +8 -0
  2. data/Rakefile +4 -2
  3. data/doc/rdoc/classes/Pho.html +4 -0
  4. data/doc/rdoc/classes/Pho/CommandLine.html +114 -114
  5. data/doc/rdoc/classes/Pho/DatatypeProperty.html +12 -12
  6. data/doc/rdoc/classes/Pho/Enrichment/StoreEnricher.html +29 -29
  7. data/doc/rdoc/classes/Pho/Etags.html +36 -36
  8. data/doc/rdoc/classes/Pho/Facet/Results.html +19 -19
  9. data/doc/rdoc/classes/Pho/Facet/Term.html +6 -6
  10. data/doc/rdoc/classes/Pho/FieldPredicateMap.html +102 -102
  11. data/doc/rdoc/classes/Pho/FieldWeighting.html +12 -12
  12. data/doc/rdoc/classes/Pho/FileManagement.html +16 -0
  13. data/doc/rdoc/classes/Pho/FileManagement/AbstractFileManager.html +168 -108
  14. data/doc/rdoc/classes/Pho/FileManagement/BNodeRewritingHandler.html +226 -0
  15. data/doc/rdoc/classes/Pho/FileManagement/FileManager.html +48 -35
  16. data/doc/rdoc/classes/Pho/FileManagement/FileSplitter.html +291 -0
  17. data/doc/rdoc/classes/Pho/FileManagement/RDFManager.html +22 -22
  18. data/doc/rdoc/classes/Pho/FileManagement/StatementHandler.html +152 -0
  19. data/doc/rdoc/classes/Pho/FileManagement/Util.html +212 -0
  20. data/doc/rdoc/classes/Pho/Job.html +64 -64
  21. data/doc/rdoc/classes/Pho/Jobs.html +60 -60
  22. data/doc/rdoc/classes/Pho/OAI/Record.html +6 -6
  23. data/doc/rdoc/classes/Pho/OAI/Records.html +24 -24
  24. data/doc/rdoc/classes/Pho/OAI/Statistics.html +12 -12
  25. data/doc/rdoc/classes/Pho/QueryProfile.html +66 -66
  26. data/doc/rdoc/classes/Pho/ResourceHash/Converter.html +36 -36
  27. data/doc/rdoc/classes/Pho/ResourceHash/SetAlgebra.html +12 -12
  28. data/doc/rdoc/classes/Pho/Snapshot.html +35 -35
  29. data/doc/rdoc/classes/Pho/Sparql/SparqlClient.html +74 -74
  30. data/doc/rdoc/classes/Pho/Sparql/SparqlHelper.html +78 -78
  31. data/doc/rdoc/classes/Pho/Status.html +26 -26
  32. data/doc/rdoc/classes/Pho/Store.html +215 -215
  33. data/doc/rdoc/classes/Pho/StoreSparqlClient.html +12 -12
  34. data/doc/rdoc/classes/Pho/Update/Changeset.html +63 -63
  35. data/doc/rdoc/classes/Pho/Update/ChangesetBuilder.html +24 -24
  36. data/doc/rdoc/classes/Pho/Update/ChangesetHelper.html +6 -6
  37. data/doc/rdoc/classes/Pho/Update/Changesets.html +12 -12
  38. data/doc/rdoc/classes/Pho/Update/LiteralStatement.html +18 -18
  39. data/doc/rdoc/classes/Pho/Update/ResourceStatement.html +24 -24
  40. data/doc/rdoc/classes/Pho/Update/Statement.html +24 -24
  41. data/doc/rdoc/classes/String.html +1 -1
  42. data/doc/rdoc/created.rid +1 -1
  43. data/doc/rdoc/files/CHANGES.html +13 -1
  44. data/doc/rdoc/files/lib/pho/file_management_rb.html +1 -1
  45. data/doc/rdoc/files/lib/pho/file_manager_rb.html +1 -1
  46. data/doc/rdoc/files/lib/pho/rdf_collection_rb.html +1 -1
  47. data/doc/rdoc/files/lib/pho/upload_rb.html +101 -0
  48. data/doc/rdoc/files/lib/pho_rb.html +4 -2
  49. data/doc/rdoc/fr_class_index.html +4 -0
  50. data/doc/rdoc/fr_file_index.html +1 -0
  51. data/doc/rdoc/fr_method_index.html +228 -218
  52. data/lib/pho.rb +4 -1
  53. data/lib/pho/file_management.rb +30 -1
  54. data/lib/pho/file_manager.rb +7 -0
  55. data/lib/pho/rdf_collection.rb +4 -4
  56. data/lib/pho/upload.rb +156 -0
  57. data/tests/tc_bnodehandler.rb +42 -0
  58. data/tests/tc_filesplitter.rb +51 -0
  59. data/tests/ts_pho.rb +3 -1
  60. metadata +56 -8
@@ -0,0 +1,226 @@
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::FileManagement::BNodeRewritingHandler</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::FileManagement::BNodeRewritingHandler</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../files/lib/pho/upload_rb.html">
59
+ lib/pho/upload.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
+ Remove bnodes from the input data by assigning URIs to them
84
+ </p>
85
+ <p>
86
+ This implementation generates a simple hexdigest based on the node id and
87
+ uses that to construct a uri based on a base uri provided in the
88
+ constructor
89
+ </p>
90
+
91
+ </div>
92
+
93
+
94
+ </div>
95
+
96
+ <div id="method-list">
97
+ <h3 class="section-bar">Methods</h3>
98
+
99
+ <div class="name-list">
100
+ <a href="#M000034">assign_uri</a>&nbsp;&nbsp;
101
+ <a href="#M000033">handle</a>&nbsp;&nbsp;
102
+ <a href="#M000032">new</a>&nbsp;&nbsp;
103
+ </div>
104
+ </div>
105
+
106
+ </div>
107
+
108
+
109
+ <!-- if includes -->
110
+
111
+ <div id="section">
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+ <!-- if method_list -->
121
+ <div id="methods">
122
+ <h3 class="section-bar">Public Class methods</h3>
123
+
124
+ <div id="method-M000032" class="method-detail">
125
+ <a name="M000032"></a>
126
+
127
+ <div class="method-heading">
128
+ <a href="#M000032" class="method-signature">
129
+ <span class="method-name">new</span><span class="method-args">(base)</span>
130
+ </a>
131
+ </div>
132
+
133
+ <div class="method-description">
134
+ <table>
135
+ <tr><td valign="top">base:</td><td>base uri for URIs generated for blank nodes
136
+
137
+ </td></tr>
138
+ </table>
139
+ <p><a class="source-toggle" href="#"
140
+ onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
141
+ <div class="method-source-code" id="M000032-source">
142
+ <pre>
143
+ <span class="ruby-comment cmt"># File lib/pho/upload.rb, line 19</span>
144
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">base</span>)
145
+ <span class="ruby-ivar">@base</span> = <span class="ruby-identifier">base</span>
146
+ <span class="ruby-keyword kw">end</span>
147
+ </pre>
148
+ </div>
149
+ </div>
150
+ </div>
151
+
152
+ <h3 class="section-bar">Public Instance methods</h3>
153
+
154
+ <div id="method-M000034" class="method-detail">
155
+ <a name="M000034"></a>
156
+
157
+ <div class="method-heading">
158
+ <a href="#M000034" class="method-signature">
159
+ <span class="method-name">assign_uri</span><span class="method-args">(node)</span>
160
+ </a>
161
+ </div>
162
+
163
+ <div class="method-description">
164
+ <p>
165
+ FIXME semantics for this is wrong if nodeIds are reused across datasets
166
+ </p>
167
+ <p><a class="source-toggle" href="#"
168
+ onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
169
+ <div class="method-source-code" id="M000034-source">
170
+ <pre>
171
+ <span class="ruby-comment cmt"># File lib/pho/upload.rb, line 40</span>
172
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">assign_uri</span>(<span class="ruby-identifier">node</span>)
173
+ <span class="ruby-keyword kw">return</span> <span class="ruby-node">&quot;#{@base}/#{Digest::MD5.hexdigest( node.id )}#self&quot;</span>
174
+ <span class="ruby-keyword kw">end</span>
175
+ </pre>
176
+ </div>
177
+ </div>
178
+ </div>
179
+
180
+ <div id="method-M000033" class="method-detail">
181
+ <a name="M000033"></a>
182
+
183
+ <div class="method-heading">
184
+ <a href="#M000033" class="method-signature">
185
+ <span class="method-name">handle</span><span class="method-args">(statement)</span>
186
+ </a>
187
+ </div>
188
+
189
+ <div class="method-description">
190
+ <p><a class="source-toggle" href="#"
191
+ onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
192
+ <div class="method-source-code" id="M000033-source">
193
+ <pre>
194
+ <span class="ruby-comment cmt"># File lib/pho/upload.rb, line 23</span>
195
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle</span>(<span class="ruby-identifier">statement</span>)
196
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">statement</span>.<span class="ruby-identifier">has_blank_nodes?</span>
197
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">statement</span>
198
+ <span class="ruby-keyword kw">end</span>
199
+ <span class="ruby-identifier">subject</span> = <span class="ruby-identifier">statement</span>.<span class="ruby-identifier">subject</span>
200
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">subject</span>.<span class="ruby-identifier">anonymous?</span>
201
+ <span class="ruby-identifier">subject</span> = <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">assign_uri</span>(<span class="ruby-identifier">subject</span>) )
202
+ <span class="ruby-keyword kw">end</span>
203
+ <span class="ruby-identifier">object</span> = <span class="ruby-identifier">statement</span>.<span class="ruby-identifier">object</span>
204
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">object</span>.<span class="ruby-identifier">anonymous?</span>
205
+ <span class="ruby-identifier">object</span> = <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">assign_uri</span>(<span class="ruby-identifier">object</span>) )
206
+ <span class="ruby-keyword kw">end</span>
207
+ <span class="ruby-keyword kw">return</span> <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Statement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">subject</span>, <span class="ruby-identifier">statement</span>.<span class="ruby-identifier">predicate</span>, <span class="ruby-identifier">object</span>)
208
+ <span class="ruby-keyword kw">end</span>
209
+ </pre>
210
+ </div>
211
+ </div>
212
+ </div>
213
+
214
+
215
+ </div>
216
+
217
+
218
+ </div>
219
+
220
+
221
+ <div id="validator-badges">
222
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
223
+ </div>
224
+
225
+ </body>
226
+ </html>
@@ -80,6 +80,19 @@
80
80
 
81
81
  <div id="contextContent">
82
82
 
83
+ <div id="description">
84
+ <p>
85
+ Manages a collection of files in a directory structure, uploading them to
86
+ the contentbox of a platform store
87
+ </p>
88
+ <p>
89
+ Allows the base directory of the upload to be specified, giving some
90
+ flexibility on how the files are published via the contentbox. By default
91
+ the files will be rooted in /items/ but by specifying the base parameter in
92
+ the construct, this can be altered to, e.g. /items/foo
93
+ </p>
94
+
95
+ </div>
83
96
 
84
97
 
85
98
  </div>
@@ -88,11 +101,11 @@
88
101
  <h3 class="section-bar">Methods</h3>
89
102
 
90
103
  <div class="name-list">
91
- <a href="#M000009">create_tracking_dir</a>&nbsp;&nbsp;
92
- <a href="#M000006">list</a>&nbsp;&nbsp;
93
- <a href="#M000007">name_for_file</a>&nbsp;&nbsp;
94
- <a href="#M000005">new</a>&nbsp;&nbsp;
95
- <a href="#M000008">store_file</a>&nbsp;&nbsp;
104
+ <a href="#M000012">create_tracking_dir</a>&nbsp;&nbsp;
105
+ <a href="#M000009">list</a>&nbsp;&nbsp;
106
+ <a href="#M000010">name_for_file</a>&nbsp;&nbsp;
107
+ <a href="#M000008">new</a>&nbsp;&nbsp;
108
+ <a href="#M000011">store_file</a>&nbsp;&nbsp;
96
109
  </div>
97
110
  </div>
98
111
 
@@ -127,21 +140,21 @@
127
140
  <div id="methods">
128
141
  <h3 class="section-bar">Public Class methods</h3>
129
142
 
130
- <div id="method-M000007" class="method-detail">
131
- <a name="M000007"></a>
143
+ <div id="method-M000010" class="method-detail">
144
+ <a name="M000010"></a>
132
145
 
133
146
  <div class="method-heading">
134
- <a href="#M000007" class="method-signature">
147
+ <a href="#M000010" class="method-signature">
135
148
  <span class="method-name">name_for_file</span><span class="method-args">(dir, file, base=nil)</span>
136
149
  </a>
137
150
  </div>
138
151
 
139
152
  <div class="method-description">
140
153
  <p><a class="source-toggle" href="#"
141
- onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
142
- <div class="method-source-code" id="M000007-source">
154
+ onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
155
+ <div class="method-source-code" id="M000010-source">
143
156
  <pre>
144
- <span class="ruby-comment cmt"># File lib/pho/file_manager.rb, line 26</span>
157
+ <span class="ruby-comment cmt"># File lib/pho/file_manager.rb, line 33</span>
145
158
  <span class="ruby-keyword kw">def</span> <span class="ruby-constant">FileManager</span>.<span class="ruby-identifier">name_for_file</span>(<span class="ruby-identifier">dir</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">base</span>=<span class="ruby-keyword kw">nil</span>)
146
159
  <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">dir</span>, <span class="ruby-value str">&quot;&quot;</span>)
147
160
  <span class="ruby-identifier">uri</span> = <span class="ruby-node">&quot;#{base}#{uri}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
@@ -152,21 +165,21 @@
152
165
  </div>
153
166
  </div>
154
167
 
155
- <div id="method-M000005" class="method-detail">
156
- <a name="M000005"></a>
168
+ <div id="method-M000008" class="method-detail">
169
+ <a name="M000008"></a>
157
170
 
158
171
  <div class="method-heading">
159
- <a href="#M000005" class="method-signature">
172
+ <a href="#M000008" class="method-signature">
160
173
  <span class="method-name">new</span><span class="method-args">(store, dir, base = nil, ok_suffix=OK, fail_suffix=FAIL)</span>
161
174
  </a>
162
175
  </div>
163
176
 
164
177
  <div class="method-description">
165
178
  <p><a class="source-toggle" href="#"
166
- onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
167
- <div class="method-source-code" id="M000005-source">
179
+ onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
180
+ <div class="method-source-code" id="M000008-source">
168
181
  <pre>
169
- <span class="ruby-comment cmt"># File lib/pho/file_manager.rb, line 11</span>
182
+ <span class="ruby-comment cmt"># File lib/pho/file_manager.rb, line 18</span>
170
183
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">store</span>, <span class="ruby-identifier">dir</span>, <span class="ruby-identifier">base</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">ok_suffix</span>=<span class="ruby-constant">OK</span>, <span class="ruby-identifier">fail_suffix</span>=<span class="ruby-constant">FAIL</span>)
171
184
  <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">store</span>, <span class="ruby-identifier">dir</span>, <span class="ruby-identifier">ok_suffix</span>, <span class="ruby-identifier">fail_suffix</span>)
172
185
  <span class="ruby-ivar">@base</span> = <span class="ruby-identifier">base</span>
@@ -178,11 +191,11 @@
178
191
 
179
192
  <h3 class="section-bar">Public Instance methods</h3>
180
193
 
181
- <div id="method-M000006" class="method-detail">
182
- <a name="M000006"></a>
194
+ <div id="method-M000009" class="method-detail">
195
+ <a name="M000009"></a>
183
196
 
184
197
  <div class="method-heading">
185
- <a href="#M000006" class="method-signature">
198
+ <a href="#M000009" class="method-signature">
186
199
  <span class="method-name">list</span><span class="method-args">(recursive=false)</span>
187
200
  </a>
188
201
  </div>
@@ -192,10 +205,10 @@
192
205
  List files being managed, i.e. everything not .ok or .fail
193
206
  </p>
194
207
  <p><a class="source-toggle" href="#"
195
- onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
196
- <div class="method-source-code" id="M000006-source">
208
+ onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
209
+ <div class="method-source-code" id="M000009-source">
197
210
  <pre>
198
- <span class="ruby-comment cmt"># File lib/pho/file_manager.rb, line 17</span>
211
+ <span class="ruby-comment cmt"># File lib/pho/file_manager.rb, line 24</span>
199
212
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">recursive</span>=<span class="ruby-keyword kw">false</span>)
200
213
  <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">recursive</span>
201
214
  <span class="ruby-identifier">pattern</span> = <span class="ruby-value str">&quot;**/*.*&quot;</span>
@@ -211,21 +224,21 @@ List files being managed, i.e. everything not .ok or .fail
211
224
 
212
225
  <h3 class="section-bar">Protected Instance methods</h3>
213
226
 
214
- <div id="method-M000009" class="method-detail">
215
- <a name="M000009"></a>
227
+ <div id="method-M000012" class="method-detail">
228
+ <a name="M000012"></a>
216
229
 
217
230
  <div class="method-heading">
218
- <a href="#M000009" class="method-signature">
231
+ <a href="#M000012" class="method-signature">
219
232
  <span class="method-name">create_tracking_dir</span><span class="method-args">(filename)</span>
220
233
  </a>
221
234
  </div>
222
235
 
223
236
  <div class="method-description">
224
237
  <p><a class="source-toggle" href="#"
225
- onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
226
- <div class="method-source-code" id="M000009-source">
238
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
239
+ <div class="method-source-code" id="M000012-source">
227
240
  <pre>
228
- <span class="ruby-comment cmt"># File lib/pho/file_manager.rb, line 49</span>
241
+ <span class="ruby-comment cmt"># File lib/pho/file_manager.rb, line 56</span>
229
242
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_tracking_dir</span>(<span class="ruby-identifier">filename</span>)
230
243
  <span class="ruby-identifier">path</span> = <span class="ruby-identifier">filename</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;/&quot;</span>)[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;/&quot;</span>)
231
244
  <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span>(<span class="ruby-node">&quot;#{path}/#{TRACKING_DIR}&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-node">&quot;#{path}/#{TRACKING_DIR}&quot;</span>)
@@ -235,21 +248,21 @@ List files being managed, i.e. everything not .ok or .fail
235
248
  </div>
236
249
  </div>
237
250
 
238
- <div id="method-M000008" class="method-detail">
239
- <a name="M000008"></a>
251
+ <div id="method-M000011" class="method-detail">
252
+ <a name="M000011"></a>
240
253
 
241
254
  <div class="method-heading">
242
- <a href="#M000008" class="method-signature">
255
+ <a href="#M000011" class="method-signature">
243
256
  <span class="method-name">store_file</span><span class="method-args">(file, filename)</span>
244
257
  </a>
245
258
  </div>
246
259
 
247
260
  <div class="method-description">
248
261
  <p><a class="source-toggle" href="#"
249
- onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
250
- <div class="method-source-code" id="M000008-source">
262
+ onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
263
+ <div class="method-source-code" id="M000011-source">
251
264
  <pre>
252
- <span class="ruby-comment cmt"># File lib/pho/file_manager.rb, line 34</span>
265
+ <span class="ruby-comment cmt"># File lib/pho/file_manager.rb, line 41</span>
253
266
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">store_file</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">filename</span>)
254
267
  <span class="ruby-identifier">uri</span> = <span class="ruby-constant">FileManager</span>.<span class="ruby-identifier">name_for_file</span>(<span class="ruby-ivar">@dir</span>, <span class="ruby-identifier">file</span>, <span class="ruby-ivar">@base</span>)
255
268
  <span class="ruby-identifier">response</span> = <span class="ruby-ivar">@store</span>.<span class="ruby-identifier">upload_item</span>(<span class="ruby-identifier">file</span>, <span class="ruby-constant">MIME</span><span class="ruby-operator">::</span><span class="ruby-constant">Types</span>.<span class="ruby-identifier">type_for</span>(<span class="ruby-identifier">filename</span>)[<span class="ruby-value">0</span>].<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">uri</span> )
@@ -0,0 +1,291 @@
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::FileManagement::FileSplitter</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::FileManagement::FileSplitter</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../files/lib/pho/upload_rb.html">
59
+ lib/pho/upload.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
+ Supports splitting RDF data files into smaller chunks of ntriples
84
+ </p>
85
+
86
+ </div>
87
+
88
+
89
+ </div>
90
+
91
+ <div id="method-list">
92
+ <h3 class="section-bar">Methods</h3>
93
+
94
+ <div class="name-list">
95
+ <a href="#M000029">new</a>&nbsp;&nbsp;
96
+ <a href="#M000030">split_file</a>&nbsp;&nbsp;
97
+ <a href="#M000031">split_files</a>&nbsp;&nbsp;
98
+ </div>
99
+ </div>
100
+
101
+ </div>
102
+
103
+
104
+ <!-- if includes -->
105
+
106
+ <div id="section">
107
+
108
+
109
+ <div id="constants-list">
110
+ <h3 class="section-bar">Constants</h3>
111
+
112
+ <div class="name-list">
113
+ <table summary="Constants">
114
+ <tr class="top-aligned-row context-row">
115
+ <td class="context-item-name">DEFAULT_CHUNK_SIZE</td>
116
+ <td>=</td>
117
+ <td class="context-item-value">10000</td>
118
+ </tr>
119
+ </table>
120
+ </div>
121
+ </div>
122
+
123
+
124
+
125
+ <div id="attribute-list">
126
+ <h3 class="section-bar">Attributes</h3>
127
+
128
+ <div class="name-list">
129
+ <table>
130
+ <tr class="top-aligned-row context-row">
131
+ <td class="context-item-name">dir</td>
132
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
133
+ <td class="context-item-desc"></td>
134
+ </tr>
135
+ <tr class="top-aligned-row context-row">
136
+ <td class="context-item-name">handler</td>
137
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
138
+ <td class="context-item-desc"></td>
139
+ </tr>
140
+ <tr class="top-aligned-row context-row">
141
+ <td class="context-item-name">triples</td>
142
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
143
+ <td class="context-item-desc"></td>
144
+ </tr>
145
+ </table>
146
+ </div>
147
+ </div>
148
+
149
+
150
+
151
+ <!-- if method_list -->
152
+ <div id="methods">
153
+ <h3 class="section-bar">Public Class methods</h3>
154
+
155
+ <div id="method-M000029" class="method-detail">
156
+ <a name="M000029"></a>
157
+
158
+ <div class="method-heading">
159
+ <a href="#M000029" class="method-signature">
160
+ <span class="method-name">new</span><span class="method-args">(dir=&quot;/tmp&quot;, triples=DEFAULT_CHUNK_SIZE, handler=Pho::FileManagement::StatementHandler.new)</span>
161
+ </a>
162
+ </div>
163
+
164
+ <div class="method-description">
165
+ <p>
166
+ Create a file splitter instance
167
+ </p>
168
+ <pre>
169
+ dir:: temporary directory into which split files should be written
170
+ triples:: number of triples per split file
171
+ handler:: statement handler to allow pre-processing of statements
172
+ </pre>
173
+ <p><a class="source-toggle" href="#"
174
+ onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
175
+ <div class="method-source-code" id="M000029-source">
176
+ <pre>
177
+ <span class="ruby-comment cmt"># File lib/pho/upload.rb, line 58</span>
178
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">dir</span>=<span class="ruby-value str">&quot;/tmp&quot;</span>, <span class="ruby-identifier">triples</span>=<span class="ruby-constant">DEFAULT_CHUNK_SIZE</span>,
179
+ <span class="ruby-identifier">handler</span>=<span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">FileManagement</span><span class="ruby-operator">::</span><span class="ruby-constant">StatementHandler</span>.<span class="ruby-identifier">new</span>)
180
+ <span class="ruby-ivar">@dir</span> = <span class="ruby-identifier">dir</span>
181
+ <span class="ruby-ivar">@triples</span> = <span class="ruby-identifier">triples</span>
182
+ <span class="ruby-ivar">@handler</span> = <span class="ruby-identifier">handler</span>
183
+ <span class="ruby-keyword kw">end</span>
184
+ </pre>
185
+ </div>
186
+ </div>
187
+ </div>
188
+
189
+ <h3 class="section-bar">Public Instance methods</h3>
190
+
191
+ <div id="method-M000030" class="method-detail">
192
+ <a name="M000030"></a>
193
+
194
+ <div class="method-heading">
195
+ <a href="#M000030" class="method-signature">
196
+ <span class="method-name">split_file</span><span class="method-args">(filename, format=:ntriples)</span>
197
+ </a>
198
+ </div>
199
+
200
+ <div class="method-description">
201
+ <p>
202
+ Split a single file, in any parseable RDF format into smaller chunks of
203
+ ntriples. Chunked files are stored in default temporary directory for this
204
+ instance
205
+ </p>
206
+ <pre>
207
+ filename:: name of the file to split
208
+ format:: input format, default is :ntriples
209
+ </pre>
210
+ <p><a class="source-toggle" href="#"
211
+ onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
212
+ <div class="method-source-code" id="M000030-source">
213
+ <pre>
214
+ <span class="ruby-comment cmt"># File lib/pho/upload.rb, line 71</span>
215
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">split_file</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">format</span>=<span class="ruby-identifier">:ntriples</span>)
216
+
217
+ <span class="ruby-identifier">basename</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-node">&quot;.#{filename.split(&quot;.&quot;).last}&quot;</span>)
218
+ <span class="ruby-identifier">count</span> = <span class="ruby-value">0</span>
219
+ <span class="ruby-identifier">stmts</span> = []
220
+ <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Reader</span>.<span class="ruby-identifier">for</span>(<span class="ruby-identifier">format</span>).<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">filename</span>)) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">reader</span><span class="ruby-operator">|</span>
221
+ <span class="ruby-identifier">reader</span>.<span class="ruby-identifier">each_statement</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">statement</span><span class="ruby-operator">|</span>
222
+ <span class="ruby-identifier">count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
223
+ <span class="ruby-identifier">stmts</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@handler</span>.<span class="ruby-identifier">handle</span>( <span class="ruby-identifier">statement</span> )
224
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">count</span> <span class="ruby-operator">%</span> <span class="ruby-ivar">@triples</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
225
+ <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Writer</span>.<span class="ruby-identifier">open</span>( <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@dir</span>, <span class="ruby-node">&quot;#{basename}_#{count}.nt&quot;</span>) ) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">writer</span><span class="ruby-operator">|</span>
226
+ <span class="ruby-identifier">stmts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
227
+ <span class="ruby-identifier">writer</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span>
228
+ <span class="ruby-keyword kw">end</span>
229
+ <span class="ruby-keyword kw">end</span>
230
+ <span class="ruby-identifier">stmts</span> = []
231
+ <span class="ruby-keyword kw">end</span>
232
+ <span class="ruby-keyword kw">end</span>
233
+ <span class="ruby-keyword kw">end</span>
234
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">stmts</span>.<span class="ruby-identifier">empty?</span>
235
+ <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Writer</span>.<span class="ruby-identifier">open</span>( <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@dir</span>, <span class="ruby-node">&quot;#{basename}_#{count}.nt&quot;</span>) ) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">writer</span><span class="ruby-operator">|</span>
236
+ <span class="ruby-identifier">stmts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
237
+ <span class="ruby-identifier">writer</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span>
238
+ <span class="ruby-keyword kw">end</span>
239
+ <span class="ruby-keyword kw">end</span>
240
+ <span class="ruby-keyword kw">end</span>
241
+ <span class="ruby-keyword kw">end</span>
242
+ </pre>
243
+ </div>
244
+ </div>
245
+ </div>
246
+
247
+ <div id="method-M000031" class="method-detail">
248
+ <a name="M000031"></a>
249
+
250
+ <div class="method-heading">
251
+ <a href="#M000031" class="method-signature">
252
+ <span class="method-name">split_files</span><span class="method-args">(list_of_filenames, format=:ntriples)</span>
253
+ </a>
254
+ </div>
255
+
256
+ <div class="method-description">
257
+ <p>
258
+ Split a list of files into smaller chunks
259
+ </p>
260
+ <pre>
261
+ list_of_filenames:: array of filenames
262
+ format:: format of the files, default is :ntriples
263
+ </pre>
264
+ <p><a class="source-toggle" href="#"
265
+ onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
266
+ <div class="method-source-code" id="M000031-source">
267
+ <pre>
268
+ <span class="ruby-comment cmt"># File lib/pho/upload.rb, line 103</span>
269
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">split_files</span>(<span class="ruby-identifier">list_of_filenames</span>, <span class="ruby-identifier">format</span>=<span class="ruby-identifier">:ntriples</span>)
270
+ <span class="ruby-identifier">list_of_filenames</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
271
+ <span class="ruby-identifier">split_file</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">format</span>)
272
+ <span class="ruby-keyword kw">end</span>
273
+ <span class="ruby-keyword kw">end</span>
274
+ </pre>
275
+ </div>
276
+ </div>
277
+ </div>
278
+
279
+
280
+ </div>
281
+
282
+
283
+ </div>
284
+
285
+
286
+ <div id="validator-badges">
287
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
288
+ </div>
289
+
290
+ </body>
291
+ </html>