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.
- data/html/Qiflib/Date.html +27 -23
- data/html/Qiflib/Money.html +23 -19
- data/html/Qiflib/Transaction.html +139 -135
- data/html/Qiflib/Util.html +231 -203
- data/html/Qiflib.html +53 -38
- data/html/README_rdoc.html +6 -3
- data/html/index.html +6 -3
- data/html/lib/qiflib_constants_rb.html +7 -2
- data/html/lib/qiflib_date_rb.html +1 -1
- data/html/lib/qiflib_money_rb.html +1 -1
- data/html/lib/qiflib_rb.html +1 -1
- data/html/lib/qiflib_transaction_rb.html +1 -1
- data/html/lib/qiflib_util_rb.html +1 -1
- data/lib/qiflib.rb +1 -1
- data/lib/qiflib_constants.rb +8 -1
- data/lib/qiflib_date.rb +3 -6
- data/lib/qiflib_money.rb +2 -0
- data/lib/qiflib_util.rb +19 -0
- metadata +3 -3
data/html/Qiflib/Util.html
CHANGED
@@ -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 ‘qiflib’ 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
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
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"><<</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">&&</span> (<span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></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"><<</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">></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">"Exception: #{err.class.name} #{err.message} #{err.inspect}"</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"><<</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
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
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">></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"><<</span> <span class="ruby-identifier">field</span>
|
269
|
+
60: <span class="ruby-identifier">sio</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'^'</span>
|
270
|
+
61: }
|
271
|
+
62: <span class="ruby-identifier">delim_lines</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{sio.string.strip.chop}\n"</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
|
+
‘categories’ and ‘transactions’ 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
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
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"><<</span> <span class="ruby-value str">''</span>
|
314
|
+
117: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'drop table if exists transactions;'</span>
|
315
|
+
118: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'drop table if exists categories;'</span>
|
316
|
+
119: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">''</span>
|
317
|
+
120: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'create table transactions('</span>
|
318
|
+
121: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' id integer,'</span>
|
319
|
+
122: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' acct_owner varchar(80),'</span>
|
320
|
+
123: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' acct_name varchar(80),'</span>
|
321
|
+
124: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' acct_type varchar(80),'</span>
|
322
|
+
125: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' date varchar(80),'</span>
|
323
|
+
126: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' amount real,'</span>
|
324
|
+
127: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' number varchar(80),'</span>
|
325
|
+
128: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' ibank_n varchar(80),'</span>
|
326
|
+
129: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' cleared varchar(80),'</span>
|
327
|
+
130: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' payee varchar(80),'</span>
|
328
|
+
131: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' category varchar(80),'</span>
|
329
|
+
132: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' memo varchar(80),'</span>
|
330
|
+
133: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' split1_amount real,'</span>
|
331
|
+
134: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' split1_category varchar(80),'</span>
|
332
|
+
135: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' split1_memo real,'</span>
|
333
|
+
136: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' split2_amount varchar(80),'</span>
|
334
|
+
137: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' split2_category varchar(80),'</span>
|
335
|
+
138: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' split2_memo varchar(80),'</span>
|
336
|
+
139: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' split3_amount real,'</span>
|
337
|
+
140: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' split3_category varchar(80),'</span>
|
338
|
+
141: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' split3_memo varchar(80),'</span>
|
339
|
+
142: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' address1 varchar(80),'</span>
|
340
|
+
143: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' address2 varchar(80),'</span>
|
341
|
+
144: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' address3 varchar(80),'</span>
|
342
|
+
145: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' address4 varchar(80),'</span>
|
343
|
+
146: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' address5 varchar(80),'</span>
|
344
|
+
147: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' address6 varchar(80),'</span>
|
345
|
+
148: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' eol_ind char(1)'</span>
|
346
|
+
149: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">');'</span>
|
347
|
+
150: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">''</span>
|
348
|
+
151: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'create table categories('</span>
|
349
|
+
152: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' id integer,'</span>
|
350
|
+
153: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">' name varchar(80)'</span>
|
351
|
+
154: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">');'</span>
|
352
|
+
155: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">''</span>
|
353
|
+
156: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">".separator '^'"</span>
|
354
|
+
157: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">''</span>
|
355
|
+
158: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'.import qiflib_transactions.txt transactions'</span>
|
356
|
+
159: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'.import qiflib_categories.txt categories'</span>
|
357
|
+
160: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</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 ‘<a
|
386
|
+
href="Util.html#method-c-generate_sqlite_ddl">generate_sqlite_ddl</a>’.
|
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
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
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"><<</span> <span class="ruby-value str">'#!/bin/bash'</span>
|
398
|
+
170: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">''</span>
|
399
|
+
171: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"sqlite3 #{db_name} < #{ddl_name}"</span>
|
400
|
+
172: <span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</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
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
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"><<</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"><<</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
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
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">></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"><<</span> <span class="ruby-identifier">field</span>
|
499
|
+
103: <span class="ruby-identifier">sio</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'^'</span>
|
500
|
+
104: }
|
501
|
+
105: <span class="ruby-identifier">delim_lines</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{sio.string.strip.chop}\n"</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
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
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"><</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
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
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"><<</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">></span> <span class="ruby-identifier">err</span>
|
620
|
+
220: <span class="ruby-identifier">puts</span> <span class="ruby-node">"Exception: #{err.class.name} #{err.message} #{err.inspect}"</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>
|