qiflib 0.0.4alpha → 0.0.6

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.html ADDED
@@ -0,0 +1,320 @@
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>Module: Qiflib</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="module">
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_category_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/qiflib_category.rb">lib/qiflib_category.rb</a></li>
43
+
44
+ <li><a href="./lib/qiflib_constants_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
45
+ class="thickbox" title="lib/qiflib_constants.rb">lib/qiflib_constants.rb</a></li>
46
+
47
+ <li><a href="./lib/qiflib_date_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
48
+ class="thickbox" title="lib/qiflib_date.rb">lib/qiflib_date.rb</a></li>
49
+
50
+ <li><a href="./lib/qiflib_money_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
51
+ class="thickbox" title="lib/qiflib_money.rb">lib/qiflib_money.rb</a></li>
52
+
53
+ <li><a href="./lib/qiflib_transaction_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
54
+ class="thickbox" title="lib/qiflib_transaction.rb">lib/qiflib_transaction.rb</a></li>
55
+
56
+ <li><a href="./lib/qiflib_util_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
57
+ class="thickbox" title="lib/qiflib_util.rb">lib/qiflib_util.rb</a></li>
58
+
59
+ </ul>
60
+ </div>
61
+ </div>
62
+
63
+
64
+ </div>
65
+
66
+ <div id="class-metadata">
67
+
68
+ <!-- Parent Class -->
69
+
70
+
71
+ <!-- Namespace Contents -->
72
+
73
+ <div id="namespace-list-section" class="section">
74
+ <h3 class="section-header">Namespace</h3>
75
+ <ul class="link-list">
76
+
77
+ <li><span class="type">CLASS</span> <a href="Qiflib/Category.html">Qiflib::Category</a></li>
78
+
79
+ <li><span class="type">CLASS</span> <a href="Qiflib/Date.html">Qiflib::Date</a></li>
80
+
81
+ <li><span class="type">CLASS</span> <a href="Qiflib/Money.html">Qiflib::Money</a></li>
82
+
83
+ <li><span class="type">CLASS</span> <a href="Qiflib/Transaction.html">Qiflib::Transaction</a></li>
84
+
85
+ <li><span class="type">CLASS</span> <a href="Qiflib/Util.html">Qiflib::Util</a></li>
86
+
87
+ </ul>
88
+ </div>
89
+
90
+
91
+ <!-- Method Quickref -->
92
+
93
+ <div id="method-list-section" class="section">
94
+ <h3 class="section-header">Methods</h3>
95
+ <ul class="link-list">
96
+
97
+ <li><a href="#method-c-csv_category_field_names">::csv_category_field_names</a></li>
98
+
99
+ <li><a href="#method-c-csv_transaction_field_names">::csv_transaction_field_names</a></li>
100
+
101
+ </ul>
102
+ </div>
103
+
104
+
105
+ <!-- Included Modules -->
106
+
107
+ </div>
108
+
109
+ <div id="project-metadata">
110
+
111
+
112
+ <div id="fileindex-section" class="section project-section">
113
+ <h3 class="section-header">Files</h3>
114
+ <ul>
115
+
116
+ <li class="file"><a href="./README_rdoc.html">README.rdoc</a></li>
117
+
118
+ </ul>
119
+ </div>
120
+
121
+
122
+ <div id="classindex-section" class="section project-section">
123
+ <h3 class="section-header">Class Index
124
+ <span class="search-toggle"><img src="./images/find.png"
125
+ height="16" width="16" alt="[+]"
126
+ title="show/hide quicksearch" /></span></h3>
127
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
128
+ <fieldset>
129
+ <legend>Quicksearch</legend>
130
+ <input type="text" name="quicksearch" value=""
131
+ class="quicksearch-field" />
132
+ </fieldset>
133
+ </form>
134
+
135
+ <ul class="link-list">
136
+
137
+ <li><a href="./Qiflib.html">Qiflib</a></li>
138
+
139
+ <li><a href="./Qiflib/Category.html">Qiflib::Category</a></li>
140
+
141
+ <li><a href="./Qiflib/Date.html">Qiflib::Date</a></li>
142
+
143
+ <li><a href="./Qiflib/Money.html">Qiflib::Money</a></li>
144
+
145
+ <li><a href="./Qiflib/Transaction.html">Qiflib::Transaction</a></li>
146
+
147
+ <li><a href="./Qiflib/Util.html">Qiflib::Util</a></li>
148
+
149
+ </ul>
150
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
151
+ </div>
152
+
153
+
154
+ </div>
155
+ </div>
156
+
157
+ <div id="documentation">
158
+ <h1 class="module">Qiflib</h1>
159
+
160
+ <div id="description">
161
+
162
+ </div>
163
+
164
+ <!-- Constants -->
165
+
166
+ <div id="constants-list" class="section">
167
+ <h3 class="section-header">Constants</h3>
168
+ <dl>
169
+
170
+ <dt><a name="VERSION">VERSION</a></dt>
171
+
172
+ <dd class="description"></dd>
173
+
174
+
175
+ <dt><a name="DATE">DATE</a></dt>
176
+
177
+ <dd class="description"></dd>
178
+
179
+
180
+ <dt><a name="SOURCE_QUICKEN">SOURCE_QUICKEN</a></dt>
181
+
182
+ <dd class="description"></dd>
183
+
184
+
185
+ <dt><a name="SOURCE_IBANK">SOURCE_IBANK</a></dt>
186
+
187
+ <dd class="description"></dd>
188
+
189
+
190
+ </dl>
191
+ </div>
192
+
193
+
194
+ <!-- Attributes -->
195
+
196
+
197
+ <!-- Methods -->
198
+
199
+ <div id="public-class-method-details" class="method-section section">
200
+ <h3 class="section-header">Public Class Methods</h3>
201
+
202
+
203
+ <div id="csv-category-field-names-method" class="method-detail ">
204
+ <a name="method-c-csv_category_field_names"></a>
205
+
206
+ <div class="method-heading">
207
+
208
+ <span class="method-name">csv_category_field_names</span><span
209
+ class="method-args">()</span>
210
+ <span class="method-click-advice">click to toggle source</span>
211
+
212
+ </div>
213
+
214
+ <div class="method-description">
215
+
216
+
217
+
218
+
219
+
220
+ <div class="method-source-code"
221
+ id="csv-category-field-names-source">
222
+ <pre>
223
+ <span class="ruby-comment cmt"># File lib/qiflib_constants.rb, line 7</span>
224
+ 7: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">csv_category_field_names</span>
225
+ 8: <span class="ruby-node">%( id name )</span>
226
+ 9: <span class="ruby-keyword kw">end</span></pre>
227
+ </div>
228
+
229
+ </div>
230
+
231
+
232
+
233
+
234
+ </div>
235
+
236
+
237
+ <div id="csv-transaction-field-names-method" class="method-detail ">
238
+ <a name="method-c-csv_transaction_field_names"></a>
239
+
240
+ <div class="method-heading">
241
+
242
+ <span class="method-name">csv_transaction_field_names</span><span
243
+ class="method-args">()</span>
244
+ <span class="method-click-advice">click to toggle source</span>
245
+
246
+ </div>
247
+
248
+ <div class="method-description">
249
+
250
+
251
+
252
+
253
+
254
+ <div class="method-source-code"
255
+ id="csv-transaction-field-names-source">
256
+ <pre>
257
+ <span class="ruby-comment cmt"># File lib/qiflib_constants.rb, line 11</span>
258
+ 11: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">csv_transaction_field_names</span>
259
+ 12: <span class="ruby-node">%(
260
+ 13: id
261
+ 14: acct_owner
262
+ 15: acct_name
263
+ 16: acct_type
264
+ 17: date
265
+ 18: amount
266
+ 19: number
267
+ 20: ibank_n
268
+ 21: cleared
269
+ 22: payee
270
+ 23: category
271
+ 24: memo
272
+ 25: split1_amount
273
+ 26: split1_category
274
+ 27: split1_memo
275
+ 28: split2_amount
276
+ 29: split2_category
277
+ 30: split2_memo
278
+ 31: split3_amount
279
+ 32: split3_category
280
+ 33: split3_memo
281
+ 34: address1
282
+ 35: address2
283
+ 36: address3
284
+ 37: address4
285
+ 38: address5
286
+ 39: address6
287
+ 40: eol_ind
288
+ 41: )</span>
289
+ 42: <span class="ruby-keyword kw">end</span></pre>
290
+ </div>
291
+
292
+ </div>
293
+
294
+
295
+
296
+
297
+ </div>
298
+
299
+
300
+ </div>
301
+
302
+
303
+ </div>
304
+
305
+
306
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
307
+
308
+ <p>Disabled; run with --debug to generate this.</p>
309
+
310
+ </div>
311
+
312
+ <div id="validator-badges">
313
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
314
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
315
+ Rdoc Generator</a> 1.1.6</small>.</p>
316
+ </div>
317
+
318
+ </body>
319
+ </html>
320
+
@@ -0,0 +1,241 @@
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
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
+
9
+ <title>File: README.rdoc [qiflib]</title>
10
+
11
+ <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
12
+
13
+ <script src="./js/jquery.js" type="text/javascript"
14
+ charset="utf-8"></script>
15
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
16
+ charset="utf-8"></script>
17
+ <script src="./js/quicksearch.js" type="text/javascript"
18
+ charset="utf-8"></script>
19
+ <script src="./js/darkfish.js" type="text/javascript"
20
+ charset="utf-8"></script>
21
+ </head>
22
+
23
+ <body class="file">
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="project-metadata">
36
+
37
+
38
+ <div id="fileindex-section" class="section project-section">
39
+ <h3 class="section-header">Files</h3>
40
+ <ul>
41
+
42
+ <li class="file"><a href="./README_rdoc.html">README.rdoc</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+
47
+
48
+ <div id="classindex-section" class="section project-section">
49
+ <h3 class="section-header">Class Index
50
+ <span class="search-toggle"><img src="./images/find.png"
51
+ height="16" width="16" alt="[+]"
52
+ title="show/hide quicksearch" /></span></h3>
53
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
54
+ <fieldset>
55
+ <legend>Quicksearch</legend>
56
+ <input type="text" name="quicksearch" value=""
57
+ class="quicksearch-field" />
58
+ </fieldset>
59
+ </form>
60
+
61
+ <ul class="link-list">
62
+
63
+ <li><a href="./Qiflib.html">Qiflib</a></li>
64
+
65
+ <li><a href="./Qiflib/Category.html">Qiflib::Category</a></li>
66
+
67
+ <li><a href="./Qiflib/Date.html">Qiflib::Date</a></li>
68
+
69
+ <li><a href="./Qiflib/Money.html">Qiflib::Money</a></li>
70
+
71
+ <li><a href="./Qiflib/Transaction.html">Qiflib::Transaction</a></li>
72
+
73
+ <li><a href="./Qiflib/Util.html">Qiflib::Util</a></li>
74
+
75
+ </ul>
76
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
77
+ </div>
78
+
79
+
80
+ </div>
81
+ </div>
82
+
83
+ <div id="documentation">
84
+ <h2><a href="Qiflib.html">Qiflib</a></h2>
85
+ <p>
86
+ A ruby library for reading and parsing qif files.
87
+ </p>
88
+ <p>
89
+ Transaction parsing is supported, including address fields, and up to three
90
+ &#8220;splits&#8221; per transaction.
91
+ </p>
92
+ <p>
93
+ Category-name parsing is also supported.
94
+ </p>
95
+ <p>
96
+ Also includes DDL generation for importing the parsed categories and
97
+ transactions into a sqlite3 database.
98
+ </p>
99
+ <h2>Install</h2>
100
+ <pre>
101
+ gem install qiflib
102
+ </pre>
103
+ <h2>Synopsis</h2>
104
+ <pre>
105
+
106
+ # Parse the transactions from one or more files to csv.
107
+ # Due to a discrepancy between the way iBank and Quicken export
108
+ # qif files, you need to specify either Qiflib::SOURCE_IBANK or
109
+ # Qiflib::SOURCE_QUICKEN as the :source.
110
+
111
+ input_list = []
112
+ input_list &lt;&lt; {
113
+ :owner =&gt; 'Chris',
114
+ :filename =&gt; 'data/ibank_cj.qif',
115
+ :source =&gt; Qiflib::SOURCE_IBANK }
116
+ input_list &lt;&lt; {
117
+ :owner =&gt; 'Teri',
118
+ :filename =&gt; 'data/ibank_tj.qif',
119
+ :source =&gt; Qiflib::SOURCE_QUICKEN }
120
+
121
+ csv_lines = Qiflib::Util.transactions_to_csv(input_list)
122
+
123
+ ... write csv_lines to a file
124
+
125
+ # Parse the transactions from one or more files to ^-delimited text.
126
+ # The text lines are suitable for loading to sqlite3.
127
+
128
+ input_list = []
129
+ input_list &lt;&lt; {
130
+ :owner =&gt; 'Chris',
131
+ :filename =&gt; 'data/ibank_cj.qif',
132
+ :source =&gt; Qiflib::SOURCE_IBANK }
133
+
134
+ delim_lines = Qiflib::Util.transactions_to_delim(input_list)
135
+
136
+ ... write delim_lines to a file
137
+
138
+ # Parse the categories from one or more files to csv.
139
+
140
+ input_list = [ 'data/ibank_cj.qif' ]
141
+ csv_lines = Qiflib::Util.catetory_names_to_csv(input_list)
142
+
143
+ ... write csv_lines to a file
144
+
145
+
146
+ # Parse the categories from one or more files to ^-delimited text.
147
+ # The text lines are suitable for loading to sqlite3.
148
+
149
+ input_list = [ 'data/ibank_cj.qif' ]
150
+ delim_lines = Qiflib::Util.catetory_names_to_delim(input_list)
151
+
152
+ ... write delim_lines to a file
153
+
154
+ # Generate the DDL for a sqlite3 database with categories and transactions tables.
155
+
156
+ ddl_lines = Qiflib::Util.generate_sqlite_ddl
157
+
158
+ ... write ddl_lines to a file; use it in the following bash-shell script
159
+
160
+ # Generate a bash-shell script to load the categories and transactions
161
+ # delimited files into a sqlite3 database, using the above DDL.
162
+
163
+ sh_lines = Qiflib::Util.generate_sqlite_load_script
164
+
165
+ ... write sh_lines to a file; chmod 744; run it.
166
+ </pre>
167
+ <h2>Generated DDL and shell script</h2>
168
+ <pre>
169
+ # DDL file for sqlite3
170
+
171
+ drop table if exists transactions;
172
+ drop table if exists categories;
173
+
174
+ create table transactions(
175
+ id integer,
176
+ acct_owner varchar(80),
177
+ acct_name varchar(80),
178
+ acct_type varchar(80),
179
+ date varchar(80),
180
+ amount real,
181
+ number varchar(80),
182
+ ibank_n varchar(80),
183
+ cleared varchar(80),
184
+ payee varchar(80),
185
+ category varchar(80),
186
+ memo varchar(80),
187
+ split1_amount real,
188
+ split1_category varchar(80),
189
+ split1_memo real,
190
+ split2_amount varchar(80),
191
+ split2_category varchar(80),
192
+ split2_memo varchar(80),
193
+ split3_amount real,
194
+ split3_category varchar(80),
195
+ split3_memo varchar(80),
196
+ address1 varchar(80),
197
+ address2 varchar(80),
198
+ address3 varchar(80),
199
+ address4 varchar(80),
200
+ address5 varchar(80),
201
+ address6 varchar(80),
202
+ eol_ind char(1)
203
+ );
204
+
205
+ create table categories(
206
+ id integer,
207
+ name varchar(80)
208
+ );
209
+
210
+ .separator '^'
211
+
212
+ .import qiflib_transactions.txt transactions
213
+ .import qiflib_categories.txt categories
214
+
215
+ # bash-shell script
216
+
217
+ #!/bin/bash
218
+
219
+ sqlite3 qiflib.db &lt; qiflib.ddl
220
+
221
+
222
+ </pre>
223
+ <h2>Copyright and License</h2>
224
+ <p>
225
+ Copyright 2012, Chris Joakim <cjoakim@bellsouth.net>.
226
+ </p>
227
+ <p>
228
+ GNU General Public License (GPLv3) license. See <a
229
+ href="http://www.gnu.org/copyleft/gpl.html">www.gnu.org/copyleft/gpl.html</a>
230
+ </p>
231
+
232
+ </div>
233
+
234
+ <div id="validator-badges">
235
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
236
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
237
+ Rdoc Generator</a> 1.1.6</small>.</p>
238
+ </div>
239
+ </body>
240
+ </html>
241
+