qiflib 0.1.0 → 0.2.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/README.rdoc +1 -1
- data/html/Qiflib/Category.html +338 -354
- data/html/Qiflib/Date.html +362 -368
- data/html/Qiflib/Money.html +284 -291
- data/html/Qiflib/Transaction.html +800 -813
- data/html/Qiflib/Util.html +478 -623
- data/html/Qiflib.html +308 -314
- data/html/README_rdoc.html +210 -218
- data/html/index.html +234 -246
- data/html/lib/qiflib_category_rb.html +38 -38
- data/html/lib/qiflib_constants_rb.html +40 -41
- data/html/lib/qiflib_date_rb.html +38 -38
- data/html/lib/qiflib_money_rb.html +38 -38
- data/html/lib/qiflib_rb.html +50 -51
- data/html/lib/qiflib_transaction_rb.html +38 -38
- data/html/lib/qiflib_util_rb.html +38 -38
- data/html/rdoc.css +365 -308
- data/lib/qiflib_constants.rb +2 -2
- metadata +12 -7
data/html/Qiflib/Util.html
CHANGED
|
@@ -1,652 +1,507 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
3
|
-
|
|
3
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
4
4
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
5
5
|
<head>
|
|
6
|
-
|
|
6
|
+
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
<title>Class: Qiflib::Util</title>
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
<link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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>
|
|
12
|
+
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
|
|
13
|
+
<script src="../js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script>
|
|
14
|
+
<script src="../js/quicksearch.js" type="text/javascript" charset="utf-8"></script>
|
|
15
|
+
<script src="../js/darkfish.js" type="text/javascript" charset="utf-8"></script>
|
|
20
16
|
|
|
21
17
|
</head>
|
|
22
|
-
<body class="class">
|
|
18
|
+
<body id="top" class="class">
|
|
23
19
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
<div id="metadata">
|
|
21
|
+
<div id="home-metadata">
|
|
22
|
+
<div id="home-section" class="section">
|
|
27
23
|
<h3 class="section-header">
|
|
28
24
|
<a href="../index.html">Home</a>
|
|
29
25
|
<a href="../index.html#classes">Classes</a>
|
|
30
26
|
<a href="../index.html#methods">Methods</a>
|
|
31
27
|
</h3>
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
<div class="method-source-code"
|
|
188
|
-
id="catetory-names-to-csv-source">
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<div id="file-metadata">
|
|
32
|
+
<div id="file-list-section" class="section">
|
|
33
|
+
<h3 class="section-header">In Files</h3>
|
|
34
|
+
<div class="section-body">
|
|
35
|
+
<ul>
|
|
36
|
+
|
|
37
|
+
<li><a href="../lib/qiflib_util_rb.html?TB_iframe=true&height=550&width=785"
|
|
38
|
+
class="thickbox" title="lib/qiflib_util.rb">lib/qiflib_util.rb</a></li>
|
|
39
|
+
|
|
40
|
+
</ul>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<div id="class-metadata">
|
|
48
|
+
|
|
49
|
+
<!-- Parent Class -->
|
|
50
|
+
<div id="parent-class-section" class="section">
|
|
51
|
+
<h3 class="section-header">Parent</h3>
|
|
52
|
+
|
|
53
|
+
<p class="link">Object</p>
|
|
54
|
+
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
<!-- Method Quickref -->
|
|
64
|
+
<div id="method-list-section" class="section">
|
|
65
|
+
<h3 class="section-header">Methods</h3>
|
|
66
|
+
<ul class="link-list">
|
|
67
|
+
|
|
68
|
+
<li><a href="#method-c-catetory_names_to_csv">::catetory_names_to_csv</a></li>
|
|
69
|
+
|
|
70
|
+
<li><a href="#method-c-catetory_names_to_delim">::catetory_names_to_delim</a></li>
|
|
71
|
+
|
|
72
|
+
<li><a href="#method-c-generate_sqlite_ddl">::generate_sqlite_ddl</a></li>
|
|
73
|
+
|
|
74
|
+
<li><a href="#method-c-generate_sqlite_load_script">::generate_sqlite_load_script</a></li>
|
|
75
|
+
|
|
76
|
+
<li><a href="#method-c-transactions_to_csv">::transactions_to_csv</a></li>
|
|
77
|
+
|
|
78
|
+
<li><a href="#method-c-transactions_to_delim">::transactions_to_delim</a></li>
|
|
79
|
+
|
|
80
|
+
</ul>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
<div id="project-metadata">
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
<div id="fileindex-section" class="section project-section">
|
|
91
|
+
<h3 class="section-header">Files</h3>
|
|
92
|
+
<ul>
|
|
93
|
+
|
|
94
|
+
<li class="file"><a href="../README_rdoc.html">README.rdoc</a></li>
|
|
95
|
+
|
|
96
|
+
</ul>
|
|
97
|
+
</div>
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
<div id="classindex-section" class="section project-section">
|
|
101
|
+
<h3 class="section-header">Class/Module Index
|
|
102
|
+
<span class="search-toggle"><img src="../images/find.png"
|
|
103
|
+
height="16" width="16" alt="[+]"
|
|
104
|
+
title="show/hide quicksearch" /></span></h3>
|
|
105
|
+
<form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
|
|
106
|
+
<fieldset>
|
|
107
|
+
<legend>Quicksearch</legend>
|
|
108
|
+
<input type="text" name="quicksearch" value=""
|
|
109
|
+
class="quicksearch-field" />
|
|
110
|
+
</fieldset>
|
|
111
|
+
</form>
|
|
112
|
+
|
|
113
|
+
<ul class="link-list">
|
|
114
|
+
|
|
115
|
+
<li><a href="../Qiflib.html">Qiflib</a></li>
|
|
116
|
+
|
|
117
|
+
<li><a href="../Qiflib/Category.html">Qiflib::Category</a></li>
|
|
118
|
+
|
|
119
|
+
<li><a href="../Qiflib/Date.html">Qiflib::Date</a></li>
|
|
120
|
+
|
|
121
|
+
<li><a href="../Qiflib/Money.html">Qiflib::Money</a></li>
|
|
122
|
+
|
|
123
|
+
<li><a href="../Qiflib/Transaction.html">Qiflib::Transaction</a></li>
|
|
124
|
+
|
|
125
|
+
<li><a href="../Qiflib/Util.html">Qiflib::Util</a></li>
|
|
126
|
+
|
|
127
|
+
</ul>
|
|
128
|
+
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
|
129
|
+
</div>
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
<div id="documentation">
|
|
136
|
+
<h1 class="class">Qiflib::Util</h1>
|
|
137
|
+
|
|
138
|
+
<div id="description" class="description">
|
|
139
|
+
|
|
140
|
+
<p>This is the API class of the ‘qiflib’ library; all functionality is
|
|
141
|
+
accessed via the class/static methods of this class.</p>
|
|
142
|
+
|
|
143
|
+
</div><!-- description -->
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
<div id="5Buntitled-5D" class="documentation-section">
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
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
|
+
|
|
167
|
+
<div class="method-heading">
|
|
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
|
+
</div>
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
<div class="method-description">
|
|
175
|
+
|
|
176
|
+
<p>Return lines in CSV format which contain the list of categories within the
|
|
177
|
+
given Array of filenames.</p>
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
<div class="method-source-code" id="catetory_names_to_csv-source">
|
|
189
182
|
<pre>
|
|
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
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
<div class="method-source-code"
|
|
258
|
-
id="catetory-names-to-delim-source">
|
|
183
|
+
<span class="ruby-comment"># File lib/qiflib_util.rb, line 12</span>
|
|
184
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">catetory_names_to_csv</span>(<span class="ruby-identifier">files_list</span>)
|
|
185
|
+
<span class="ruby-identifier">categories</span>, <span class="ruby-identifier">csv_lines</span> = [], []
|
|
186
|
+
<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>
|
|
187
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">files_list</span>
|
|
188
|
+
<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
|
+
<span class="ruby-keyword">begin</span>
|
|
190
|
+
<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-string">'r'</span>), <span class="ruby-keyword">false</span>
|
|
191
|
+
<span class="ruby-keyword">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">gets</span>)
|
|
192
|
+
<span class="ruby-identifier">stripped</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip</span>
|
|
193
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/^!Type:Cat/</span>)
|
|
194
|
+
<span class="ruby-identifier">in_cats</span> = <span class="ruby-keyword">true</span>
|
|
195
|
+
<span class="ruby-keyword">else</span>
|
|
196
|
+
<span class="ruby-keyword">if</span> (<span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/^!/</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>)
|
|
197
|
+
<span class="ruby-identifier">in_cats</span> = <span class="ruby-keyword">false</span>
|
|
198
|
+
<span class="ruby-keyword">else</span>
|
|
199
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">in_cats</span>
|
|
200
|
+
<span class="ruby-keyword">if</span> (<span class="ruby-identifier">stripped</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/^N/</span>))
|
|
201
|
+
<span class="ruby-identifier">categories</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">line_value</span>(<span class="ruby-identifier">stripped</span>)
|
|
202
|
+
<span class="ruby-keyword">end</span>
|
|
203
|
+
<span class="ruby-keyword">end</span>
|
|
204
|
+
<span class="ruby-keyword">end</span>
|
|
205
|
+
<span class="ruby-keyword">end</span>
|
|
206
|
+
<span class="ruby-keyword">end</span>
|
|
207
|
+
<span class="ruby-identifier">file</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">file</span>
|
|
208
|
+
<span class="ruby-keyword">rescue</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">err</span>
|
|
209
|
+
<span class="ruby-identifier">file</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">file</span>
|
|
210
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-node">"Exception: #{err.class.name} #{err.message} #{err.inspect}"</span>
|
|
211
|
+
<span class="ruby-keyword">end</span>
|
|
212
|
+
}
|
|
213
|
+
<span class="ruby-keyword">end</span>
|
|
214
|
+
<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
|
+
<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
|
+
<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>)
|
|
217
|
+
}
|
|
218
|
+
<span class="ruby-identifier">csv_lines</span>
|
|
219
|
+
<span class="ruby-keyword">end</span></pre>
|
|
220
|
+
</div><!-- catetory_names_to_csv-source -->
|
|
221
|
+
|
|
222
|
+
</div>
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
</div><!-- catetory_names_to_csv-method -->
|
|
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
|
+
|
|
234
|
+
<div class="method-heading">
|
|
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
|
+
</div>
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
<div class="method-description">
|
|
242
|
+
|
|
243
|
+
<p>Return lines in ^-delimited format which contain the list of categories
|
|
244
|
+
within the given Array of filenames.</p>
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
<div class="method-source-code" id="catetory_names_to_delim-source">
|
|
259
249
|
<pre>
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
<div class="method-source-code"
|
|
308
|
-
id="generate-sqlite-ddl-source">
|
|
250
|
+
<span class="ruby-comment"># File lib/qiflib_util.rb, line 52</span>
|
|
251
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">catetory_names_to_delim</span>(<span class="ruby-identifier">files_list</span>)
|
|
252
|
+
<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
|
+
<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
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
255
|
+
<span class="ruby-identifier">sio</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
|
|
256
|
+
<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
|
+
<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
|
+
<span class="ruby-identifier">sio</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">field</span>
|
|
259
|
+
<span class="ruby-identifier">sio</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'^'</span>
|
|
260
|
+
}
|
|
261
|
+
<span class="ruby-identifier">delim_lines</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{sio.string.strip.chop}\n"</span>
|
|
262
|
+
<span class="ruby-keyword">end</span>
|
|
263
|
+
}
|
|
264
|
+
<span class="ruby-identifier">delim_lines</span>
|
|
265
|
+
<span class="ruby-keyword">end</span></pre>
|
|
266
|
+
</div><!-- catetory_names_to_delim-source -->
|
|
267
|
+
|
|
268
|
+
</div>
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
</div><!-- catetory_names_to_delim-method -->
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
<div id="generate_sqlite_ddl-method" class="method-detail ">
|
|
277
|
+
<a name="method-c-generate_sqlite_ddl"></a>
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
<div class="method-heading">
|
|
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
|
+
</div>
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
<div class="method-description">
|
|
288
|
+
|
|
289
|
+
<p>Return the lines of DDL for a sqlite3 database, with ‘categories’ and
|
|
290
|
+
‘transactions’ tables. The DDL will also import the ^-delimited files.</p>
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
<div class="method-source-code" id="generate_sqlite_ddl-source">
|
|
309
295
|
<pre>
|
|
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
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
<div class="method-source-code"
|
|
392
|
-
id="generate-sqlite-load-script-source">
|
|
296
|
+
<span class="ruby-comment"># File lib/qiflib_util.rb, line 114</span>
|
|
297
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">generate_sqlite_ddl</span>
|
|
298
|
+
<span class="ruby-identifier">lines</span> = []
|
|
299
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">''</span>
|
|
300
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'drop table if exists transactions;'</span>
|
|
301
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'drop table if exists categories;'</span>
|
|
302
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">''</span>
|
|
303
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'create table transactions('</span>
|
|
304
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' id integer,'</span>
|
|
305
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' acct_owner varchar(80),'</span>
|
|
306
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' acct_name varchar(80),'</span>
|
|
307
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' acct_type varchar(80),'</span>
|
|
308
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' date varchar(80),'</span>
|
|
309
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' amount real,'</span>
|
|
310
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' number varchar(80),'</span>
|
|
311
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' ibank_n varchar(80),'</span>
|
|
312
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' cleared varchar(80),'</span>
|
|
313
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' payee varchar(80),'</span>
|
|
314
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' category varchar(80),'</span>
|
|
315
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' memo varchar(80),'</span>
|
|
316
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' split1_amount real,'</span>
|
|
317
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' split1_category varchar(80),'</span>
|
|
318
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' split1_memo real,'</span>
|
|
319
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' split2_amount varchar(80),'</span>
|
|
320
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' split2_category varchar(80),'</span>
|
|
321
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' split2_memo varchar(80),'</span>
|
|
322
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' split3_amount real,'</span>
|
|
323
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' split3_category varchar(80),'</span>
|
|
324
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' split3_memo varchar(80),'</span>
|
|
325
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' address1 varchar(80),'</span>
|
|
326
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' address2 varchar(80),'</span>
|
|
327
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' address3 varchar(80),'</span>
|
|
328
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' address4 varchar(80),'</span>
|
|
329
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' address5 varchar(80),'</span>
|
|
330
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' address6 varchar(80),'</span>
|
|
331
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' eol_ind char(1)'</span>
|
|
332
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">');'</span>
|
|
333
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">''</span>
|
|
334
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'create table categories('</span>
|
|
335
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' id integer,'</span>
|
|
336
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">' name varchar(80)'</span>
|
|
337
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">');'</span>
|
|
338
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">''</span>
|
|
339
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">".separator '^'"</span>
|
|
340
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">''</span>
|
|
341
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'.import qiflib_transactions.txt transactions'</span>
|
|
342
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'.import qiflib_categories.txt categories'</span>
|
|
343
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">''</span>
|
|
344
|
+
<span class="ruby-identifier">lines</span>
|
|
345
|
+
<span class="ruby-keyword">end</span></pre>
|
|
346
|
+
</div><!-- generate_sqlite_ddl-source -->
|
|
347
|
+
|
|
348
|
+
</div>
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
</div><!-- generate_sqlite_ddl-method -->
|
|
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
|
+
|
|
360
|
+
<div class="method-heading">
|
|
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
|
+
</div>
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
<div class="method-description">
|
|
368
|
+
|
|
369
|
+
<p>Return the lines of bash-shell script to load the sqlite3 database via the
|
|
370
|
+
DDL generated in method ‘<a
|
|
371
|
+
href="Util.html#method-c-generate_sqlite_ddl">generate_sqlite_ddl</a>’.</p>
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
<div class="method-source-code" id="generate_sqlite_load_script-source">
|
|
393
376
|
<pre>
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
Return lines in CSV format which contain the list of transactions within
|
|
377
|
+
<span class="ruby-comment"># File lib/qiflib_util.rb, line 167</span>
|
|
378
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">generate_sqlite_load_script</span>(<span class="ruby-identifier">db_name</span>=<span class="ruby-string">'qiflib.db'</span>, <span class="ruby-identifier">ddl_name</span>=<span class="ruby-string">'qiflib.ddl'</span>)
|
|
379
|
+
<span class="ruby-identifier">lines</span> = []
|
|
380
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'#!/bin/bash'</span>
|
|
381
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">''</span>
|
|
382
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"sqlite3 #{db_name} < #{ddl_name}"</span>
|
|
383
|
+
<span class="ruby-identifier">lines</span> <span class="ruby-operator"><<</span> <span class="ruby-string">''</span>
|
|
384
|
+
<span class="ruby-identifier">lines</span>
|
|
385
|
+
<span class="ruby-keyword">end</span></pre>
|
|
386
|
+
</div><!-- generate_sqlite_load_script-source -->
|
|
387
|
+
|
|
388
|
+
</div>
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
</div><!-- generate_sqlite_load_script-method -->
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
<div id="transactions_to_csv-method" class="method-detail ">
|
|
397
|
+
<a name="method-c-transactions_to_csv"></a>
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
<div class="method-heading">
|
|
401
|
+
<span class="method-name">transactions_to_csv</span><span
|
|
402
|
+
class="method-args">(input_list)</span>
|
|
403
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
404
|
+
</div>
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
<div class="method-description">
|
|
408
|
+
|
|
409
|
+
<p>Return lines in CSV format which contain the list of transactions within
|
|
428
410
|
the given input_list Array. Each Hash within the input_list should contain
|
|
429
411
|
keys :owner, :filename, and :source. Specify either the value
|
|
430
|
-
Qiflib::SOURCE_IBANK or Qiflib::SOURCE_QUICKEN for :source
|
|
431
|
-
|
|
432
|
-
|
|
412
|
+
Qiflib::SOURCE_IBANK or Qiflib::SOURCE_QUICKEN for :source.</p>
|
|
413
|
+
|
|
433
414
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
id="transactions-to-csv-source">
|
|
415
|
+
|
|
416
|
+
<div class="method-source-code" id="transactions_to_csv-source">
|
|
437
417
|
<pre>
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
Return lines in ^-delimited format which contain the list of transactions
|
|
418
|
+
<span class="ruby-comment"># File lib/qiflib_util.rb, line 73</span>
|
|
419
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">transactions_to_csv</span>(<span class="ruby-identifier">input_list</span>)
|
|
420
|
+
<span class="ruby-identifier">transactions</span>, <span class="ruby-identifier">csv_lines</span> = [], []
|
|
421
|
+
<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>
|
|
422
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">input_list</span>
|
|
423
|
+
<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>
|
|
424
|
+
<span class="ruby-identifier">owner</span> = <span class="ruby-identifier">input_hash</span>[<span class="ruby-value">:owner</span>]
|
|
425
|
+
<span class="ruby-identifier">filename</span> = <span class="ruby-identifier">input_hash</span>[<span class="ruby-value">:filename</span>]
|
|
426
|
+
<span class="ruby-identifier">source</span> = <span class="ruby-identifier">input_hash</span>[<span class="ruby-value">:source</span>]
|
|
427
|
+
<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>)
|
|
428
|
+
}
|
|
429
|
+
<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>
|
|
430
|
+
<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>)
|
|
431
|
+
}
|
|
432
|
+
<span class="ruby-keyword">end</span>
|
|
433
|
+
<span class="ruby-identifier">csv_lines</span>
|
|
434
|
+
<span class="ruby-keyword">end</span></pre>
|
|
435
|
+
</div><!-- transactions_to_csv-source -->
|
|
436
|
+
|
|
437
|
+
</div>
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
</div><!-- transactions_to_csv-method -->
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
<div id="transactions_to_delim-method" class="method-detail ">
|
|
446
|
+
<a name="method-c-transactions_to_delim"></a>
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
<div class="method-heading">
|
|
450
|
+
<span class="method-name">transactions_to_delim</span><span
|
|
451
|
+
class="method-args">(input_list)</span>
|
|
452
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
453
|
+
</div>
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
<div class="method-description">
|
|
457
|
+
|
|
458
|
+
<p>Return lines in ^-delimited format which contain the list of transactions
|
|
480
459
|
within the given input_list Array. Each Hash within the input_list should
|
|
481
460
|
contain keys :owner, :filename, and :source. Specify either the value
|
|
482
|
-
Qiflib::SOURCE_IBANK or Qiflib::SOURCE_QUICKEN for :source
|
|
483
|
-
|
|
484
|
-
|
|
461
|
+
Qiflib::SOURCE_IBANK or Qiflib::SOURCE_QUICKEN for :source.</p>
|
|
462
|
+
|
|
485
463
|
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
id="transactions-to-delim-source">
|
|
464
|
+
|
|
465
|
+
<div class="method-source-code" id="transactions_to_delim-source">
|
|
489
466
|
<pre>
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
class="method-args">(s)</span>
|
|
529
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
530
|
-
|
|
531
|
-
</div>
|
|
532
|
-
|
|
533
|
-
<div class="method-description">
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
<div class="method-source-code"
|
|
540
|
-
id="line-value-source">
|
|
541
|
-
<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"><</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>
|
|
547
|
-
</div>
|
|
548
|
-
|
|
549
|
-
</div>
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
</div>
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
<div id="process-file-for-transactions-method" class="method-detail ">
|
|
558
|
-
<a name="method-c-process_file_for_transactions"></a>
|
|
559
|
-
|
|
560
|
-
<div class="method-heading">
|
|
561
|
-
|
|
562
|
-
<span class="method-name">process_file_for_transactions</span><span
|
|
563
|
-
class="method-args">(owner, filename, source, transactions)</span>
|
|
564
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
565
|
-
|
|
566
|
-
</div>
|
|
567
|
-
|
|
568
|
-
<div class="method-description">
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
<div class="method-source-code"
|
|
575
|
-
id="process-file-for-transactions-source">
|
|
576
|
-
<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"><<</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>
|
|
623
|
-
</div>
|
|
624
|
-
|
|
625
|
-
</div>
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
</div>
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
</div>
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
</div>
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
<div id="rdoc-debugging-section-dump" class="debugging-section">
|
|
640
|
-
|
|
641
|
-
<p>Disabled; run with --debug to generate this.</p>
|
|
642
|
-
|
|
643
|
-
</div>
|
|
644
|
-
|
|
645
|
-
<div id="validator-badges">
|
|
646
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
647
|
-
<p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
|
|
648
|
-
Rdoc Generator</a> 1.1.6</small>.</p>
|
|
649
|
-
</div>
|
|
467
|
+
<span class="ruby-comment"># File lib/qiflib_util.rb, line 95</span>
|
|
468
|
+
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">transactions_to_delim</span>(<span class="ruby-identifier">input_list</span>)
|
|
469
|
+
<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>)
|
|
470
|
+
<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>
|
|
471
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">idx</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
472
|
+
<span class="ruby-identifier">sio</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
|
|
473
|
+
<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>]
|
|
474
|
+
<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>
|
|
475
|
+
<span class="ruby-identifier">sio</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">field</span>
|
|
476
|
+
<span class="ruby-identifier">sio</span> <span class="ruby-operator"><<</span> <span class="ruby-string">'^'</span>
|
|
477
|
+
}
|
|
478
|
+
<span class="ruby-identifier">delim_lines</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{sio.string.strip.chop}\n"</span>
|
|
479
|
+
<span class="ruby-keyword">end</span>
|
|
480
|
+
}
|
|
481
|
+
<span class="ruby-identifier">delim_lines</span>
|
|
482
|
+
<span class="ruby-keyword">end</span></pre>
|
|
483
|
+
</div><!-- transactions_to_delim-source -->
|
|
484
|
+
|
|
485
|
+
</div>
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
</div><!-- transactions_to_delim-method -->
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
</div><!-- public-class-method-details -->
|
|
494
|
+
|
|
495
|
+
</div><!-- 5Buntitled-5D -->
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
</div><!-- documentation -->
|
|
499
|
+
|
|
500
|
+
<div id="validator-badges">
|
|
501
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
502
|
+
<p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
|
|
503
|
+
Rdoc Generator</a> 2</small>.</p>
|
|
504
|
+
</div>
|
|
650
505
|
|
|
651
506
|
</body>
|
|
652
507
|
</html>
|