qiflib 0.0.4alpha → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,625 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: Qiflib::Util</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="../js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="../js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="../index.html">Home</a>
29
+ <a href="../index.html#classes">Classes</a>
30
+ <a href="../index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="../lib/qiflib_util_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/qiflib_util.rb">lib/qiflib_util.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+ <div id="parent-class-section" class="section">
56
+ <h3 class="section-header">Parent</h3>
57
+
58
+ <p class="link">Object</p>
59
+
60
+ </div>
61
+
62
+
63
+ <!-- Namespace Contents -->
64
+
65
+
66
+ <!-- Method Quickref -->
67
+
68
+ <div id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+ <ul class="link-list">
71
+
72
+ <li><a href="#method-c-catetory_names_to_csv">::catetory_names_to_csv</a></li>
73
+
74
+ <li><a href="#method-c-catetory_names_to_delim">::catetory_names_to_delim</a></li>
75
+
76
+ <li><a href="#method-c-generate_sqlite_ddl">::generate_sqlite_ddl</a></li>
77
+
78
+ <li><a href="#method-c-generate_sqlite_load_script">::generate_sqlite_load_script</a></li>
79
+
80
+ <li><a href="#method-c-line_value">::line_value</a></li>
81
+
82
+ <li><a href="#method-c-process_file_for_transactions">::process_file_for_transactions</a></li>
83
+
84
+ <li><a href="#method-c-transactions_to_csv">::transactions_to_csv</a></li>
85
+
86
+ <li><a href="#method-c-transactions_to_delim">::transactions_to_delim</a></li>
87
+
88
+ </ul>
89
+ </div>
90
+
91
+
92
+ <!-- Included Modules -->
93
+
94
+ </div>
95
+
96
+ <div id="project-metadata">
97
+
98
+
99
+ <div id="fileindex-section" class="section project-section">
100
+ <h3 class="section-header">Files</h3>
101
+ <ul>
102
+
103
+ <li class="file"><a href="../README_rdoc.html">README.rdoc</a></li>
104
+
105
+ </ul>
106
+ </div>
107
+
108
+
109
+ <div id="classindex-section" class="section project-section">
110
+ <h3 class="section-header">Class Index
111
+ <span class="search-toggle"><img src="../images/find.png"
112
+ height="16" width="16" alt="[+]"
113
+ title="show/hide quicksearch" /></span></h3>
114
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
115
+ <fieldset>
116
+ <legend>Quicksearch</legend>
117
+ <input type="text" name="quicksearch" value=""
118
+ class="quicksearch-field" />
119
+ </fieldset>
120
+ </form>
121
+
122
+ <ul class="link-list">
123
+
124
+ <li><a href="../Qiflib.html">Qiflib</a></li>
125
+
126
+ <li><a href="../Qiflib/Category.html">Qiflib::Category</a></li>
127
+
128
+ <li><a href="../Qiflib/Date.html">Qiflib::Date</a></li>
129
+
130
+ <li><a href="../Qiflib/Money.html">Qiflib::Money</a></li>
131
+
132
+ <li><a href="../Qiflib/Transaction.html">Qiflib::Transaction</a></li>
133
+
134
+ <li><a href="../Qiflib/Util.html">Qiflib::Util</a></li>
135
+
136
+ </ul>
137
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
138
+ </div>
139
+
140
+
141
+ </div>
142
+ </div>
143
+
144
+ <div id="documentation">
145
+ <h1 class="class">Qiflib::Util</h1>
146
+
147
+ <div id="description">
148
+
149
+ </div>
150
+
151
+ <!-- Constants -->
152
+
153
+
154
+ <!-- Attributes -->
155
+
156
+
157
+ <!-- Methods -->
158
+
159
+ <div id="public-class-method-details" class="method-section section">
160
+ <h3 class="section-header">Public Class Methods</h3>
161
+
162
+
163
+ <div id="catetory-names-to-csv-method" class="method-detail ">
164
+ <a name="method-c-catetory_names_to_csv"></a>
165
+
166
+ <div class="method-heading">
167
+
168
+ <span class="method-name">catetory_names_to_csv</span><span
169
+ class="method-args">(files_list)</span>
170
+ <span class="method-click-advice">click to toggle source</span>
171
+
172
+ </div>
173
+
174
+ <div class="method-description">
175
+
176
+
177
+
178
+
179
+
180
+ <div class="method-source-code"
181
+ id="catetory-names-to-csv-source">
182
+ <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>
220
+ </div>
221
+
222
+ </div>
223
+
224
+
225
+
226
+
227
+ </div>
228
+
229
+
230
+ <div id="catetory-names-to-delim-method" class="method-detail ">
231
+ <a name="method-c-catetory_names_to_delim"></a>
232
+
233
+ <div class="method-heading">
234
+
235
+ <span class="method-name">catetory_names_to_delim</span><span
236
+ class="method-args">(files_list)</span>
237
+ <span class="method-click-advice">click to toggle source</span>
238
+
239
+ </div>
240
+
241
+ <div class="method-description">
242
+
243
+
244
+
245
+
246
+
247
+ <div class="method-source-code"
248
+ id="catetory-names-to-delim-source">
249
+ <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>
266
+ </div>
267
+
268
+ </div>
269
+
270
+
271
+
272
+
273
+ </div>
274
+
275
+
276
+ <div id="generate-sqlite-ddl-method" class="method-detail ">
277
+ <a name="method-c-generate_sqlite_ddl"></a>
278
+
279
+ <div class="method-heading">
280
+
281
+ <span class="method-name">generate_sqlite_ddl</span><span
282
+ class="method-args">()</span>
283
+ <span class="method-click-advice">click to toggle source</span>
284
+
285
+ </div>
286
+
287
+ <div class="method-description">
288
+
289
+
290
+
291
+
292
+
293
+ <div class="method-source-code"
294
+ id="generate-sqlite-ddl-source">
295
+ <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>
346
+ </div>
347
+
348
+ </div>
349
+
350
+
351
+
352
+
353
+ </div>
354
+
355
+
356
+ <div id="generate-sqlite-load-script-method" class="method-detail ">
357
+ <a name="method-c-generate_sqlite_load_script"></a>
358
+
359
+ <div class="method-heading">
360
+
361
+ <span class="method-name">generate_sqlite_load_script</span><span
362
+ class="method-args">(db_name='qiflib.db', ddl_name='qiflib.ddl')</span>
363
+ <span class="method-click-advice">click to toggle source</span>
364
+
365
+ </div>
366
+
367
+ <div class="method-description">
368
+
369
+
370
+
371
+
372
+
373
+ <div class="method-source-code"
374
+ id="generate-sqlite-load-script-source">
375
+ <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>
385
+ </div>
386
+
387
+ </div>
388
+
389
+
390
+
391
+
392
+ </div>
393
+
394
+
395
+ <div id="transactions-to-csv-method" class="method-detail ">
396
+ <a name="method-c-transactions_to_csv"></a>
397
+
398
+ <div class="method-heading">
399
+
400
+ <span class="method-name">transactions_to_csv</span><span
401
+ class="method-args">(input_list)</span>
402
+ <span class="method-click-advice">click to toggle source</span>
403
+
404
+ </div>
405
+
406
+ <div class="method-description">
407
+
408
+
409
+
410
+
411
+
412
+ <div class="method-source-code"
413
+ id="transactions-to-csv-source">
414
+ <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>
432
+ </div>
433
+
434
+ </div>
435
+
436
+
437
+
438
+
439
+ </div>
440
+
441
+
442
+ <div id="transactions-to-delim-method" class="method-detail ">
443
+ <a name="method-c-transactions_to_delim"></a>
444
+
445
+ <div class="method-heading">
446
+
447
+ <span class="method-name">transactions_to_delim</span><span
448
+ class="method-args">(input_list)</span>
449
+ <span class="method-click-advice">click to toggle source</span>
450
+
451
+ </div>
452
+
453
+ <div class="method-description">
454
+
455
+
456
+
457
+
458
+
459
+ <div class="method-source-code"
460
+ id="transactions-to-delim-source">
461
+ <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>
478
+ </div>
479
+
480
+ </div>
481
+
482
+
483
+
484
+
485
+ </div>
486
+
487
+
488
+ </div>
489
+
490
+ <div id="private-class-method-details" class="method-section section">
491
+ <h3 class="section-header">Private Class Methods</h3>
492
+
493
+
494
+ <div id="line-value-method" class="method-detail ">
495
+ <a name="method-c-line_value"></a>
496
+
497
+ <div class="method-heading">
498
+
499
+ <span class="method-name">line_value</span><span
500
+ class="method-args">(s)</span>
501
+ <span class="method-click-advice">click to toggle source</span>
502
+
503
+ </div>
504
+
505
+ <div class="method-description">
506
+
507
+
508
+
509
+
510
+
511
+ <div class="method-source-code"
512
+ id="line-value-source">
513
+ <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>
519
+ </div>
520
+
521
+ </div>
522
+
523
+
524
+
525
+
526
+ </div>
527
+
528
+
529
+ <div id="process-file-for-transactions-method" class="method-detail ">
530
+ <a name="method-c-process_file_for_transactions"></a>
531
+
532
+ <div class="method-heading">
533
+
534
+ <span class="method-name">process_file_for_transactions</span><span
535
+ class="method-args">(owner, filename, source, transactions)</span>
536
+ <span class="method-click-advice">click to toggle source</span>
537
+
538
+ </div>
539
+
540
+ <div class="method-description">
541
+
542
+
543
+
544
+
545
+
546
+ <div class="method-source-code"
547
+ id="process-file-for-transactions-source">
548
+ <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>
595
+ </div>
596
+
597
+ </div>
598
+
599
+
600
+
601
+
602
+ </div>
603
+
604
+
605
+ </div>
606
+
607
+
608
+ </div>
609
+
610
+
611
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
612
+
613
+ <p>Disabled; run with --debug to generate this.</p>
614
+
615
+ </div>
616
+
617
+ <div id="validator-badges">
618
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
619
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
620
+ Rdoc Generator</a> 1.1.6</small>.</p>
621
+ </div>
622
+
623
+ </body>
624
+ </html>
625
+