qiflib 0.0.6 → 0.1.0

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.
@@ -145,7 +145,11 @@
145
145
  <h1 class="class">Qiflib::Util</h1>
146
146
 
147
147
  <div id="description">
148
-
148
+ <p>
149
+ This is the API class of the &#8216;qiflib&#8217; library; all
150
+ functionality is accessed via the class/static methods of this class.
151
+ </p>
152
+
149
153
  </div>
150
154
 
151
155
  <!-- Constants -->
@@ -173,50 +177,53 @@
173
177
 
174
178
  <div class="method-description">
175
179
 
176
-
180
+ <p>
181
+ Return lines in CSV format which contain the list of categories within the
182
+ given Array of filenames.
183
+ </p>
177
184
 
178
185
 
179
186
 
180
187
  <div class="method-source-code"
181
188
  id="catetory-names-to-csv-source">
182
189
  <pre>
183
- <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 6</span>
184
- 6: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">catetory_names_to_csv</span>(<span class="ruby-identifier">files_list</span>)
185
- 7: <span class="ruby-identifier">categories</span>, <span class="ruby-identifier">csv_lines</span> = [], []
186
- 8: <span class="ruby-identifier">csv_lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Qiflib</span><span class="ruby-operator">::</span><span class="ruby-constant">Category</span>.<span class="ruby-identifier">csv_header</span>
187
- 9: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">files_list</span>
188
- 10: <span class="ruby-identifier">files_list</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">filename</span> <span class="ruby-operator">|</span>
189
- 11: <span class="ruby-keyword kw">begin</span>
190
- 12: <span class="ruby-identifier">file</span>, <span class="ruby-identifier">in_cats</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-value str">'r'</span>), <span class="ruby-keyword kw">false</span>
191
- 13: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">gets</span>)
192
- 14: <span class="ruby-identifier">stripped</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip</span>
193
- 15: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^!Type:Cat/</span>)
194
- 16: <span class="ruby-identifier">in_cats</span> = <span class="ruby-keyword kw">true</span>
195
- 17: <span class="ruby-keyword kw">else</span>
196
- 18: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^!/</span>)) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>)
197
- 19: <span class="ruby-identifier">in_cats</span> = <span class="ruby-keyword kw">false</span>
198
- 20: <span class="ruby-keyword kw">else</span>
199
- 21: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">in_cats</span>
200
- 22: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^N/</span>))
201
- 23: <span class="ruby-identifier">categories</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line_value</span>(<span class="ruby-identifier">stripped</span>)
202
- 24: <span class="ruby-keyword kw">end</span>
203
- 25: <span class="ruby-keyword kw">end</span>
204
- 26: <span class="ruby-keyword kw">end</span>
205
- 27: <span class="ruby-keyword kw">end</span>
206
- 28: <span class="ruby-keyword kw">end</span>
207
- 29: <span class="ruby-identifier">file</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file</span>
208
- 30: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">err</span>
209
- 31: <span class="ruby-identifier">file</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file</span>
210
- 32: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Exception: #{err.class.name} #{err.message} #{err.inspect}&quot;</span>
211
- 33: <span class="ruby-keyword kw">end</span>
212
- 34: }
213
- 35: <span class="ruby-keyword kw">end</span>
214
- 36: <span class="ruby-identifier">categories</span>.<span class="ruby-identifier">uniq</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each_with_index</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">name</span>, <span class="ruby-identifier">idx</span> <span class="ruby-operator">|</span>
215
- 37: <span class="ruby-identifier">cat</span> = <span class="ruby-constant">Qiflib</span><span class="ruby-operator">::</span><span class="ruby-constant">Category</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>.<span class="ruby-identifier">strip</span>)
216
- 38: <span class="ruby-identifier">csv_lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">cat</span>.<span class="ruby-identifier">to_csv</span>(<span class="ruby-identifier">idx</span>)
217
- 39: }
218
- 40: <span class="ruby-identifier">csv_lines</span>
219
- 41: <span class="ruby-keyword kw">end</span></pre>
190
+ <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 12</span>
191
+ 12: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">catetory_names_to_csv</span>(<span class="ruby-identifier">files_list</span>)
192
+ 13: <span class="ruby-identifier">categories</span>, <span class="ruby-identifier">csv_lines</span> = [], []
193
+ 14: <span class="ruby-identifier">csv_lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Qiflib</span><span class="ruby-operator">::</span><span class="ruby-constant">Category</span>.<span class="ruby-identifier">csv_header</span>
194
+ 15: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">files_list</span>
195
+ 16: <span class="ruby-identifier">files_list</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">filename</span> <span class="ruby-operator">|</span>
196
+ 17: <span class="ruby-keyword kw">begin</span>
197
+ 18: <span class="ruby-identifier">file</span>, <span class="ruby-identifier">in_cats</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-value str">'r'</span>), <span class="ruby-keyword kw">false</span>
198
+ 19: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">gets</span>)
199
+ 20: <span class="ruby-identifier">stripped</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip</span>
200
+ 21: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^!Type:Cat/</span>)
201
+ 22: <span class="ruby-identifier">in_cats</span> = <span class="ruby-keyword kw">true</span>
202
+ 23: <span class="ruby-keyword kw">else</span>
203
+ 24: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^!/</span>)) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>)
204
+ 25: <span class="ruby-identifier">in_cats</span> = <span class="ruby-keyword kw">false</span>
205
+ 26: <span class="ruby-keyword kw">else</span>
206
+ 27: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">in_cats</span>
207
+ 28: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^N/</span>))
208
+ 29: <span class="ruby-identifier">categories</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line_value</span>(<span class="ruby-identifier">stripped</span>)
209
+ 30: <span class="ruby-keyword kw">end</span>
210
+ 31: <span class="ruby-keyword kw">end</span>
211
+ 32: <span class="ruby-keyword kw">end</span>
212
+ 33: <span class="ruby-keyword kw">end</span>
213
+ 34: <span class="ruby-keyword kw">end</span>
214
+ 35: <span class="ruby-identifier">file</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file</span>
215
+ 36: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">err</span>
216
+ 37: <span class="ruby-identifier">file</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file</span>
217
+ 38: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Exception: #{err.class.name} #{err.message} #{err.inspect}&quot;</span>
218
+ 39: <span class="ruby-keyword kw">end</span>
219
+ 40: }
220
+ 41: <span class="ruby-keyword kw">end</span>
221
+ 42: <span class="ruby-identifier">categories</span>.<span class="ruby-identifier">uniq</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each_with_index</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">name</span>, <span class="ruby-identifier">idx</span> <span class="ruby-operator">|</span>
222
+ 43: <span class="ruby-identifier">cat</span> = <span class="ruby-constant">Qiflib</span><span class="ruby-operator">::</span><span class="ruby-constant">Category</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>.<span class="ruby-identifier">strip</span>)
223
+ 44: <span class="ruby-identifier">csv_lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">cat</span>.<span class="ruby-identifier">to_csv</span>(<span class="ruby-identifier">idx</span>)
224
+ 45: }
225
+ 46: <span class="ruby-identifier">csv_lines</span>
226
+ 47: <span class="ruby-keyword kw">end</span></pre>
220
227
  </div>
221
228
 
222
229
  </div>
@@ -240,29 +247,32 @@
240
247
 
241
248
  <div class="method-description">
242
249
 
243
-
250
+ <p>
251
+ Return lines in ^-delimited format which contain the list of categories
252
+ within the given Array of filenames.
253
+ </p>
244
254
 
245
255
 
246
256
 
247
257
  <div class="method-source-code"
248
258
  id="catetory-names-to-delim-source">
249
259
  <pre>
250
- <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 43</span>
251
- 43: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">catetory_names_to_delim</span>(<span class="ruby-identifier">files_list</span>)
252
- 44: <span class="ruby-identifier">delim_lines</span>, <span class="ruby-identifier">csv_lines</span> = [], <span class="ruby-identifier">catetory_names_to_csv</span>(<span class="ruby-identifier">files_list</span>)
253
- 45: <span class="ruby-identifier">csv_lines</span>.<span class="ruby-identifier">each_with_index</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">csv_line</span>, <span class="ruby-identifier">idx</span> <span class="ruby-operator">|</span>
254
- 46: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
255
- 47: <span class="ruby-identifier">sio</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
256
- 48: <span class="ruby-identifier">field_array</span> = <span class="ruby-constant">CSV</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">csv_line</span>)[<span class="ruby-value">0</span>]
257
- 49: <span class="ruby-identifier">field_array</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">field</span> <span class="ruby-operator">|</span>
258
- 50: <span class="ruby-identifier">sio</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">field</span>
259
- 51: <span class="ruby-identifier">sio</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'^'</span>
260
- 52: }
261
- 53: <span class="ruby-identifier">delim_lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{sio.string.strip.chop}\n&quot;</span>
262
- 54: <span class="ruby-keyword kw">end</span>
263
- 55: }
264
- 56: <span class="ruby-identifier">delim_lines</span>
265
- 57: <span class="ruby-keyword kw">end</span></pre>
260
+ <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 52</span>
261
+ 52: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">catetory_names_to_delim</span>(<span class="ruby-identifier">files_list</span>)
262
+ 53: <span class="ruby-identifier">delim_lines</span>, <span class="ruby-identifier">csv_lines</span> = [], <span class="ruby-identifier">catetory_names_to_csv</span>(<span class="ruby-identifier">files_list</span>)
263
+ 54: <span class="ruby-identifier">csv_lines</span>.<span class="ruby-identifier">each_with_index</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">csv_line</span>, <span class="ruby-identifier">idx</span> <span class="ruby-operator">|</span>
264
+ 55: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
265
+ 56: <span class="ruby-identifier">sio</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
266
+ 57: <span class="ruby-identifier">field_array</span> = <span class="ruby-constant">CSV</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">csv_line</span>)[<span class="ruby-value">0</span>]
267
+ 58: <span class="ruby-identifier">field_array</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">field</span> <span class="ruby-operator">|</span>
268
+ 59: <span class="ruby-identifier">sio</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">field</span>
269
+ 60: <span class="ruby-identifier">sio</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'^'</span>
270
+ 61: }
271
+ 62: <span class="ruby-identifier">delim_lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{sio.string.strip.chop}\n&quot;</span>
272
+ 63: <span class="ruby-keyword kw">end</span>
273
+ 64: }
274
+ 65: <span class="ruby-identifier">delim_lines</span>
275
+ 66: <span class="ruby-keyword kw">end</span></pre>
266
276
  </div>
267
277
 
268
278
  </div>
@@ -286,63 +296,67 @@
286
296
 
287
297
  <div class="method-description">
288
298
 
289
-
299
+ <p>
300
+ Return the lines of DDL for a sqlite3 database, with
301
+ &#8216;categories&#8217; and &#8216;transactions&#8217; tables. The DDL
302
+ will also import the ^-delimited files.
303
+ </p>
290
304
 
291
305
 
292
306
 
293
307
  <div class="method-source-code"
294
308
  id="generate-sqlite-ddl-source">
295
309
  <pre>
296
- <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 92</span>
297
- 92: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">generate_sqlite_ddl</span>
298
- 93: <span class="ruby-identifier">lines</span> = []
299
- 94: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
300
- 95: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'drop table if exists transactions;'</span>
301
- 96: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'drop table if exists categories;'</span>
302
- 97: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
303
- 98: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'create table transactions('</span>
304
- 99: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' id integer,'</span>
305
- 100: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' acct_owner varchar(80),'</span>
306
- 101: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' acct_name varchar(80),'</span>
307
- 102: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' acct_type varchar(80),'</span>
308
- 103: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' date varchar(80),'</span>
309
- 104: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' amount real,'</span>
310
- 105: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' number varchar(80),'</span>
311
- 106: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' ibank_n varchar(80),'</span>
312
- 107: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' cleared varchar(80),'</span>
313
- 108: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' payee varchar(80),'</span>
314
- 109: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' category varchar(80),'</span>
315
- 110: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' memo varchar(80),'</span>
316
- 111: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split1_amount real,'</span>
317
- 112: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split1_category varchar(80),'</span>
318
- 113: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split1_memo real,'</span>
319
- 114: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split2_amount varchar(80),'</span>
320
- 115: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split2_category varchar(80),'</span>
321
- 116: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split2_memo varchar(80),'</span>
322
- 117: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split3_amount real,'</span>
323
- 118: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split3_category varchar(80),'</span>
324
- 119: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split3_memo varchar(80),'</span>
325
- 120: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' address1 varchar(80),'</span>
326
- 121: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' address2 varchar(80),'</span>
327
- 122: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' address3 varchar(80),'</span>
328
- 123: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' address4 varchar(80),'</span>
329
- 124: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' address5 varchar(80),'</span>
330
- 125: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' address6 varchar(80),'</span>
331
- 126: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' eol_ind char(1)'</span>
332
- 127: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">');'</span>
333
- 128: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
334
- 129: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'create table categories('</span>
335
- 130: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' id integer,'</span>
336
- 131: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' name varchar(80)'</span>
337
- 132: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">');'</span>
338
- 133: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
339
- 134: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;.separator '^'&quot;</span>
340
- 135: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
341
- 136: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'.import qiflib_transactions.txt transactions'</span>
342
- 137: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'.import qiflib_categories.txt categories'</span>
343
- 138: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
344
- 139: <span class="ruby-identifier">lines</span>
345
- 140: <span class="ruby-keyword kw">end</span></pre>
310
+ <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 114</span>
311
+ 114: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">generate_sqlite_ddl</span>
312
+ 115: <span class="ruby-identifier">lines</span> = []
313
+ 116: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
314
+ 117: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'drop table if exists transactions;'</span>
315
+ 118: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'drop table if exists categories;'</span>
316
+ 119: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
317
+ 120: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'create table transactions('</span>
318
+ 121: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' id integer,'</span>
319
+ 122: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' acct_owner varchar(80),'</span>
320
+ 123: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' acct_name varchar(80),'</span>
321
+ 124: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' acct_type varchar(80),'</span>
322
+ 125: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' date varchar(80),'</span>
323
+ 126: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' amount real,'</span>
324
+ 127: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' number varchar(80),'</span>
325
+ 128: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' ibank_n varchar(80),'</span>
326
+ 129: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' cleared varchar(80),'</span>
327
+ 130: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' payee varchar(80),'</span>
328
+ 131: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' category varchar(80),'</span>
329
+ 132: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' memo varchar(80),'</span>
330
+ 133: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split1_amount real,'</span>
331
+ 134: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split1_category varchar(80),'</span>
332
+ 135: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split1_memo real,'</span>
333
+ 136: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split2_amount varchar(80),'</span>
334
+ 137: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split2_category varchar(80),'</span>
335
+ 138: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split2_memo varchar(80),'</span>
336
+ 139: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split3_amount real,'</span>
337
+ 140: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split3_category varchar(80),'</span>
338
+ 141: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' split3_memo varchar(80),'</span>
339
+ 142: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' address1 varchar(80),'</span>
340
+ 143: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' address2 varchar(80),'</span>
341
+ 144: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' address3 varchar(80),'</span>
342
+ 145: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' address4 varchar(80),'</span>
343
+ 146: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' address5 varchar(80),'</span>
344
+ 147: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' address6 varchar(80),'</span>
345
+ 148: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' eol_ind char(1)'</span>
346
+ 149: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">');'</span>
347
+ 150: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
348
+ 151: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'create table categories('</span>
349
+ 152: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' id integer,'</span>
350
+ 153: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' name varchar(80)'</span>
351
+ 154: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">');'</span>
352
+ 155: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
353
+ 156: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;.separator '^'&quot;</span>
354
+ 157: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
355
+ 158: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'.import qiflib_transactions.txt transactions'</span>
356
+ 159: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'.import qiflib_categories.txt categories'</span>
357
+ 160: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
358
+ 161: <span class="ruby-identifier">lines</span>
359
+ 162: <span class="ruby-keyword kw">end</span></pre>
346
360
  </div>
347
361
 
348
362
  </div>
@@ -366,22 +380,26 @@
366
380
 
367
381
  <div class="method-description">
368
382
 
369
-
383
+ <p>
384
+ Return the lines of bash-shell script to load the sqlite3 database via the
385
+ DDL generated in method &#8216;<a
386
+ href="Util.html#method-c-generate_sqlite_ddl">generate_sqlite_ddl</a>&#8217;.
387
+ </p>
370
388
 
371
389
 
372
390
 
373
391
  <div class="method-source-code"
374
392
  id="generate-sqlite-load-script-source">
375
393
  <pre>
376
- <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 142</span>
377
- 142: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">generate_sqlite_load_script</span>(<span class="ruby-identifier">db_name</span>=<span class="ruby-value str">'qiflib.db'</span>, <span class="ruby-identifier">ddl_name</span>=<span class="ruby-value str">'qiflib.ddl'</span>)
378
- 143: <span class="ruby-identifier">lines</span> = []
379
- 144: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'#!/bin/bash'</span>
380
- 145: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
381
- 146: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;sqlite3 #{db_name} &lt; #{ddl_name}&quot;</span>
382
- 147: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
383
- 148: <span class="ruby-identifier">lines</span>
384
- 149: <span class="ruby-keyword kw">end</span></pre>
394
+ <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 167</span>
395
+ 167: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">generate_sqlite_load_script</span>(<span class="ruby-identifier">db_name</span>=<span class="ruby-value str">'qiflib.db'</span>, <span class="ruby-identifier">ddl_name</span>=<span class="ruby-value str">'qiflib.ddl'</span>)
396
+ 168: <span class="ruby-identifier">lines</span> = []
397
+ 169: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'#!/bin/bash'</span>
398
+ 170: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
399
+ 171: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;sqlite3 #{db_name} &lt; #{ddl_name}&quot;</span>
400
+ 172: <span class="ruby-identifier">lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">''</span>
401
+ 173: <span class="ruby-identifier">lines</span>
402
+ 174: <span class="ruby-keyword kw">end</span></pre>
385
403
  </div>
386
404
 
387
405
  </div>
@@ -405,30 +423,35 @@
405
423
 
406
424
  <div class="method-description">
407
425
 
408
-
426
+ <p>
427
+ Return lines in CSV format which contain the list of transactions within
428
+ the given input_list Array. Each Hash within the input_list should contain
429
+ keys :owner, :filename, and :source. Specify either the value
430
+ Qiflib::SOURCE_IBANK or Qiflib::SOURCE_QUICKEN for :source.
431
+ </p>
409
432
 
410
433
 
411
434
 
412
435
  <div class="method-source-code"
413
436
  id="transactions-to-csv-source">
414
437
  <pre>
415
- <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 59</span>
416
- 59: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">transactions_to_csv</span>(<span class="ruby-identifier">input_list</span>)
417
- 60: <span class="ruby-identifier">transactions</span>, <span class="ruby-identifier">csv_lines</span> = [], []
418
- 61: <span class="ruby-identifier">csv_lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Qiflib</span><span class="ruby-operator">::</span><span class="ruby-constant">Transaction</span>.<span class="ruby-identifier">csv_header</span>
419
- 62: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">input_list</span>
420
- 63: <span class="ruby-identifier">input_list</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">input_hash</span> <span class="ruby-operator">|</span>
421
- 64: <span class="ruby-identifier">owner</span> = <span class="ruby-identifier">input_hash</span>[<span class="ruby-value">:owner</span>]
422
- 65: <span class="ruby-identifier">filename</span> = <span class="ruby-identifier">input_hash</span>[<span class="ruby-value">:filename</span>]
423
- 66: <span class="ruby-identifier">source</span> = <span class="ruby-identifier">input_hash</span>[<span class="ruby-value">:source</span>]
424
- 67: <span class="ruby-identifier">process_file_for_transactions</span>(<span class="ruby-identifier">owner</span>, <span class="ruby-identifier">filename</span>, <span class="ruby-identifier">source</span>, <span class="ruby-identifier">transactions</span>)
425
- 68: }
426
- 69: <span class="ruby-identifier">transactions</span>.<span class="ruby-identifier">each_with_index</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">tran</span>, <span class="ruby-identifier">idx</span> <span class="ruby-operator">|</span>
427
- 70: <span class="ruby-identifier">csv_lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">tran</span>.<span class="ruby-identifier">to_csv</span>(<span class="ruby-identifier">idx</span>)
428
- 71: }
429
- 72: <span class="ruby-keyword kw">end</span>
430
- 73: <span class="ruby-identifier">csv_lines</span>
431
- 74: <span class="ruby-keyword kw">end</span></pre>
438
+ <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 73</span>
439
+ 73: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">transactions_to_csv</span>(<span class="ruby-identifier">input_list</span>)
440
+ 74: <span class="ruby-identifier">transactions</span>, <span class="ruby-identifier">csv_lines</span> = [], []
441
+ 75: <span class="ruby-identifier">csv_lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Qiflib</span><span class="ruby-operator">::</span><span class="ruby-constant">Transaction</span>.<span class="ruby-identifier">csv_header</span>
442
+ 76: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">input_list</span>
443
+ 77: <span class="ruby-identifier">input_list</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">input_hash</span> <span class="ruby-operator">|</span>
444
+ 78: <span class="ruby-identifier">owner</span> = <span class="ruby-identifier">input_hash</span>[<span class="ruby-value">:owner</span>]
445
+ 79: <span class="ruby-identifier">filename</span> = <span class="ruby-identifier">input_hash</span>[<span class="ruby-value">:filename</span>]
446
+ 80: <span class="ruby-identifier">source</span> = <span class="ruby-identifier">input_hash</span>[<span class="ruby-value">:source</span>]
447
+ 81: <span class="ruby-identifier">process_file_for_transactions</span>(<span class="ruby-identifier">owner</span>, <span class="ruby-identifier">filename</span>, <span class="ruby-identifier">source</span>, <span class="ruby-identifier">transactions</span>)
448
+ 82: }
449
+ 83: <span class="ruby-identifier">transactions</span>.<span class="ruby-identifier">each_with_index</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">tran</span>, <span class="ruby-identifier">idx</span> <span class="ruby-operator">|</span>
450
+ 84: <span class="ruby-identifier">csv_lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">tran</span>.<span class="ruby-identifier">to_csv</span>(<span class="ruby-identifier">idx</span>)
451
+ 85: }
452
+ 86: <span class="ruby-keyword kw">end</span>
453
+ 87: <span class="ruby-identifier">csv_lines</span>
454
+ 88: <span class="ruby-keyword kw">end</span></pre>
432
455
  </div>
433
456
 
434
457
  </div>
@@ -452,29 +475,34 @@
452
475
 
453
476
  <div class="method-description">
454
477
 
455
-
478
+ <p>
479
+ Return lines in ^-delimited format which contain the list of transactions
480
+ within the given input_list Array. Each Hash within the input_list should
481
+ contain keys :owner, :filename, and :source. Specify either the value
482
+ Qiflib::SOURCE_IBANK or Qiflib::SOURCE_QUICKEN for :source.
483
+ </p>
456
484
 
457
485
 
458
486
 
459
487
  <div class="method-source-code"
460
488
  id="transactions-to-delim-source">
461
489
  <pre>
462
- <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 76</span>
463
- 76: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">transactions_to_delim</span>(<span class="ruby-identifier">input_list</span>)
464
- 77: <span class="ruby-identifier">delim_lines</span>, <span class="ruby-identifier">csv_lines</span> = [], <span class="ruby-identifier">transactions_to_csv</span>(<span class="ruby-identifier">input_list</span>)
465
- 78: <span class="ruby-identifier">csv_lines</span>.<span class="ruby-identifier">each_with_index</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">csv_line</span>, <span class="ruby-identifier">idx</span> <span class="ruby-operator">|</span>
466
- 79: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
467
- 80: <span class="ruby-identifier">sio</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
468
- 81: <span class="ruby-identifier">field_array</span> = <span class="ruby-constant">CSV</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">csv_line</span>)[<span class="ruby-value">0</span>]
469
- 82: <span class="ruby-identifier">field_array</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">field</span> <span class="ruby-operator">|</span>
470
- 83: <span class="ruby-identifier">sio</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">field</span>
471
- 84: <span class="ruby-identifier">sio</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'^'</span>
472
- 85: }
473
- 86: <span class="ruby-identifier">delim_lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{sio.string.strip.chop}\n&quot;</span>
474
- 87: <span class="ruby-keyword kw">end</span>
475
- 88: }
476
- 89: <span class="ruby-identifier">delim_lines</span>
477
- 90: <span class="ruby-keyword kw">end</span></pre>
490
+ <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 95</span>
491
+ 95: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">transactions_to_delim</span>(<span class="ruby-identifier">input_list</span>)
492
+ 96: <span class="ruby-identifier">delim_lines</span>, <span class="ruby-identifier">csv_lines</span> = [], <span class="ruby-identifier">transactions_to_csv</span>(<span class="ruby-identifier">input_list</span>)
493
+ 97: <span class="ruby-identifier">csv_lines</span>.<span class="ruby-identifier">each_with_index</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">csv_line</span>, <span class="ruby-identifier">idx</span> <span class="ruby-operator">|</span>
494
+ 98: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
495
+ 99: <span class="ruby-identifier">sio</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
496
+ 100: <span class="ruby-identifier">field_array</span> = <span class="ruby-constant">CSV</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">csv_line</span>)[<span class="ruby-value">0</span>]
497
+ 101: <span class="ruby-identifier">field_array</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">field</span> <span class="ruby-operator">|</span>
498
+ 102: <span class="ruby-identifier">sio</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">field</span>
499
+ 103: <span class="ruby-identifier">sio</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'^'</span>
500
+ 104: }
501
+ 105: <span class="ruby-identifier">delim_lines</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{sio.string.strip.chop}\n&quot;</span>
502
+ 106: <span class="ruby-keyword kw">end</span>
503
+ 107: }
504
+ 108: <span class="ruby-identifier">delim_lines</span>
505
+ 109: <span class="ruby-keyword kw">end</span></pre>
478
506
  </div>
479
507
 
480
508
  </div>
@@ -511,11 +539,11 @@
511
539
  <div class="method-source-code"
512
540
  id="line-value-source">
513
541
  <pre>
514
- <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 199</span>
515
- 199: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">line_value</span>(<span class="ruby-identifier">s</span>)
516
- 200: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">1</span>
517
- 201: <span class="ruby-identifier">s</span>[<span class="ruby-value">1</span>, <span class="ruby-identifier">s</span>.<span class="ruby-identifier">size</span>].<span class="ruby-identifier">strip</span>
518
- 202: <span class="ruby-keyword kw">end</span></pre>
542
+ <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 224</span>
543
+ 224: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">line_value</span>(<span class="ruby-identifier">s</span>)
544
+ 225: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">1</span>
545
+ 226: <span class="ruby-identifier">s</span>[<span class="ruby-value">1</span>, <span class="ruby-identifier">s</span>.<span class="ruby-identifier">size</span>].<span class="ruby-identifier">strip</span>
546
+ 227: <span class="ruby-keyword kw">end</span></pre>
519
547
  </div>
520
548
 
521
549
  </div>
@@ -546,52 +574,52 @@
546
574
  <div class="method-source-code"
547
575
  id="process-file-for-transactions-source">
548
576
  <pre>
549
- <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 153</span>
550
- 153: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">process_file_for_transactions</span>(<span class="ruby-identifier">owner</span>, <span class="ruby-identifier">filename</span>, <span class="ruby-identifier">source</span>, <span class="ruby-identifier">transactions</span>)
551
- 154: <span class="ruby-keyword kw">begin</span>
552
- 155: <span class="ruby-identifier">file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-value str">'r'</span>)
553
- 156: <span class="ruby-identifier">in_acct_header</span>, <span class="ruby-identifier">in_type_header</span>, <span class="ruby-identifier">acct_name</span>, <span class="ruby-identifier">acct_type</span> = <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">'?'</span>, <span class="ruby-value str">'?'</span>
554
- 157: <span class="ruby-identifier">current_tran</span> = <span class="ruby-constant">Qiflib</span><span class="ruby-operator">::</span><span class="ruby-constant">Transaction</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">owner</span>, <span class="ruby-identifier">acct_name</span>, <span class="ruby-identifier">acct_type</span>, <span class="ruby-identifier">source</span>)
555
- 158: <span class="ruby-identifier">line_number</span> = <span class="ruby-value">0</span>
556
- 159: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">gets</span>)
557
- 160: <span class="ruby-identifier">line_number</span> = <span class="ruby-identifier">line_number</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
558
- 161: <span class="ruby-identifier">stripped</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip</span>
559
- 162: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^!Account/</span>)
560
- 163: <span class="ruby-identifier">in_acct_header</span> = <span class="ruby-keyword kw">true</span>
561
- 164: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^!Type/</span>)
562
- 165: <span class="ruby-identifier">in_type_header</span> = <span class="ruby-keyword kw">true</span>
563
- 166: <span class="ruby-keyword kw">else</span>
564
- 167: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">in_acct_header</span>
565
- 168: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^N/</span>)
566
- 169: <span class="ruby-identifier">acct_name</span> = <span class="ruby-identifier">line_value</span>(<span class="ruby-identifier">stripped</span>)
567
- 170: <span class="ruby-identifier">current_tran</span>.<span class="ruby-identifier">acct_name</span> = <span class="ruby-identifier">acct_name</span>
568
- 171: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^T/</span>)
569
- 172: <span class="ruby-identifier">acct_type</span> = <span class="ruby-identifier">line_value</span>(<span class="ruby-identifier">stripped</span>)
570
- 173: <span class="ruby-identifier">current_tran</span>.<span class="ruby-identifier">acct_type</span> = <span class="ruby-identifier">acct_type</span>
571
- 174: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">stripped</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'^'</span>
572
- 175: <span class="ruby-identifier">in_acct_header</span> = <span class="ruby-keyword kw">false</span>
573
- 176: <span class="ruby-keyword kw">end</span>
574
- 177: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">in_type_header</span>
575
- 178: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stripped</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'^'</span>
576
- 179: <span class="ruby-identifier">in_type_header</span> = <span class="ruby-keyword kw">false</span>
577
- 180: <span class="ruby-keyword kw">end</span>
578
- 181: <span class="ruby-keyword kw">else</span>
579
- 182: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stripped</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'^'</span>
580
- 183: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current_tran</span>.<span class="ruby-identifier">valid?</span>
581
- 184: <span class="ruby-identifier">transactions</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">current_tran</span>
582
- 185: <span class="ruby-keyword kw">end</span>
583
- 186: <span class="ruby-identifier">current_tran</span> = <span class="ruby-constant">Qiflib</span><span class="ruby-operator">::</span><span class="ruby-constant">Transaction</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">owner</span>, <span class="ruby-identifier">acct_name</span>, <span class="ruby-identifier">acct_type</span>, <span class="ruby-identifier">source</span>)
584
- 187: <span class="ruby-keyword kw">else</span>
585
- 188: <span class="ruby-identifier">current_tran</span>.<span class="ruby-identifier">add_line</span>(<span class="ruby-identifier">stripped</span>)
586
- 189: <span class="ruby-keyword kw">end</span>
587
- 190: <span class="ruby-keyword kw">end</span>
588
- 191: <span class="ruby-keyword kw">end</span>
589
- 192: <span class="ruby-keyword kw">end</span>
590
- 193: <span class="ruby-identifier">file</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file</span>
591
- 194: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">err</span>
592
- 195: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Exception: #{err.class.name} #{err.message} #{err.inspect}&quot;</span>
593
- 196: <span class="ruby-keyword kw">end</span>
594
- 197: <span class="ruby-keyword kw">end</span></pre>
577
+ <span class="ruby-comment cmt"># File lib/qiflib_util.rb, line 178</span>
578
+ 178: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">process_file_for_transactions</span>(<span class="ruby-identifier">owner</span>, <span class="ruby-identifier">filename</span>, <span class="ruby-identifier">source</span>, <span class="ruby-identifier">transactions</span>)
579
+ 179: <span class="ruby-keyword kw">begin</span>
580
+ 180: <span class="ruby-identifier">file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-value str">'r'</span>)
581
+ 181: <span class="ruby-identifier">in_acct_header</span>, <span class="ruby-identifier">in_type_header</span>, <span class="ruby-identifier">acct_name</span>, <span class="ruby-identifier">acct_type</span> = <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-value str">'?'</span>, <span class="ruby-value str">'?'</span>
582
+ 182: <span class="ruby-identifier">current_tran</span> = <span class="ruby-constant">Qiflib</span><span class="ruby-operator">::</span><span class="ruby-constant">Transaction</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">owner</span>, <span class="ruby-identifier">acct_name</span>, <span class="ruby-identifier">acct_type</span>, <span class="ruby-identifier">source</span>)
583
+ 183: <span class="ruby-identifier">line_number</span> = <span class="ruby-value">0</span>
584
+ 184: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">gets</span>)
585
+ 185: <span class="ruby-identifier">line_number</span> = <span class="ruby-identifier">line_number</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
586
+ 186: <span class="ruby-identifier">stripped</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip</span>
587
+ 187: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^!Account/</span>)
588
+ 188: <span class="ruby-identifier">in_acct_header</span> = <span class="ruby-keyword kw">true</span>
589
+ 189: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^!Type/</span>)
590
+ 190: <span class="ruby-identifier">in_type_header</span> = <span class="ruby-keyword kw">true</span>
591
+ 191: <span class="ruby-keyword kw">else</span>
592
+ 192: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">in_acct_header</span>
593
+ 193: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^N/</span>)
594
+ 194: <span class="ruby-identifier">acct_name</span> = <span class="ruby-identifier">line_value</span>(<span class="ruby-identifier">stripped</span>)
595
+ 195: <span class="ruby-identifier">current_tran</span>.<span class="ruby-identifier">acct_name</span> = <span class="ruby-identifier">acct_name</span>
596
+ 196: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^T/</span>)
597
+ 197: <span class="ruby-identifier">acct_type</span> = <span class="ruby-identifier">line_value</span>(<span class="ruby-identifier">stripped</span>)
598
+ 198: <span class="ruby-identifier">current_tran</span>.<span class="ruby-identifier">acct_type</span> = <span class="ruby-identifier">acct_type</span>
599
+ 199: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">stripped</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'^'</span>
600
+ 200: <span class="ruby-identifier">in_acct_header</span> = <span class="ruby-keyword kw">false</span>
601
+ 201: <span class="ruby-keyword kw">end</span>
602
+ 202: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">in_type_header</span>
603
+ 203: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stripped</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'^'</span>
604
+ 204: <span class="ruby-identifier">in_type_header</span> = <span class="ruby-keyword kw">false</span>
605
+ 205: <span class="ruby-keyword kw">end</span>
606
+ 206: <span class="ruby-keyword kw">else</span>
607
+ 207: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stripped</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'^'</span>
608
+ 208: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current_tran</span>.<span class="ruby-identifier">valid?</span>
609
+ 209: <span class="ruby-identifier">transactions</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">current_tran</span>
610
+ 210: <span class="ruby-keyword kw">end</span>
611
+ 211: <span class="ruby-identifier">current_tran</span> = <span class="ruby-constant">Qiflib</span><span class="ruby-operator">::</span><span class="ruby-constant">Transaction</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">owner</span>, <span class="ruby-identifier">acct_name</span>, <span class="ruby-identifier">acct_type</span>, <span class="ruby-identifier">source</span>)
612
+ 212: <span class="ruby-keyword kw">else</span>
613
+ 213: <span class="ruby-identifier">current_tran</span>.<span class="ruby-identifier">add_line</span>(<span class="ruby-identifier">stripped</span>)
614
+ 214: <span class="ruby-keyword kw">end</span>
615
+ 215: <span class="ruby-keyword kw">end</span>
616
+ 216: <span class="ruby-keyword kw">end</span>
617
+ 217: <span class="ruby-keyword kw">end</span>
618
+ 218: <span class="ruby-identifier">file</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file</span>
619
+ 219: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">err</span>
620
+ 220: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Exception: #{err.class.name} #{err.message} #{err.inspect}&quot;</span>
621
+ 221: <span class="ruby-keyword kw">end</span>
622
+ 222: <span class="ruby-keyword kw">end</span></pre>
595
623
  </div>
596
624
 
597
625
  </div>