rock_books 0.1.6 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (262) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/LICENSE.txt +201 -21
  4. data/README.md +64 -142
  5. data/RELEASE_NOTES.md +38 -0
  6. data/lib/rock_books/cmd_line/command_line_interface.rb +30 -10
  7. data/lib/rock_books/documents/book_set.rb +5 -99
  8. data/lib/rock_books/documents/chart_of_accounts.rb +66 -29
  9. data/lib/rock_books/documents/journal.rb +45 -40
  10. data/lib/rock_books/documents/journal_entry_builder.rb +11 -5
  11. data/lib/rock_books/errors/date_range_error.rb +20 -0
  12. data/lib/rock_books/helpers/html_helper.rb +29 -0
  13. data/lib/rock_books/reports/balance_sheet.rb +2 -2
  14. data/lib/rock_books/reports/book_set_reporter.rb +201 -0
  15. data/lib/rock_books/reports/income_statement.rb +2 -2
  16. data/lib/rock_books/reports/index.html.erb +156 -0
  17. data/lib/rock_books/reports/receipts.html.erb +54 -0
  18. data/lib/rock_books/reports/receipts_report.rb +23 -10
  19. data/lib/rock_books/reports/report_context.rb +1 -6
  20. data/lib/rock_books/reports/reporter.rb +1 -1
  21. data/lib/rock_books/reports/transaction_report.rb +4 -2
  22. data/lib/rock_books/version.rb +1 -1
  23. data/manual.md +251 -0
  24. data/rock_books.gemspec +4 -3
  25. data/sample_data/minimal/receipts/01/2018-01-01-sample-receipt.jpg +0 -0
  26. data/sample_data/minimal/rockbooks-inputs/{2017-xyz-chart-of-accounts.txt → 2018-xyz-chart-of-accounts.txt} +3 -1
  27. data/sample_data/minimal/rockbooks-inputs/{2017-xyz-checking-journal.txt → 2018-xyz-checking-journal.txt} +3 -6
  28. data/sample_data/minimal/rockbooks-inputs/{2017-xyz-general-journal.txt → 2018-xyz-general-journal.txt} +3 -3
  29. data/sample_data/minimal/rockbooks-inputs/2018-xyz-visa-journal.txt +32 -0
  30. data/sample_data/minimal/rockbooks-reports/html/all_txns_by_acct.html +467 -454
  31. data/sample_data/minimal/rockbooks-reports/html/all_txns_by_amount.html +90 -84
  32. data/sample_data/minimal/rockbooks-reports/html/all_txns_by_date.html +89 -83
  33. data/sample_data/minimal/rockbooks-reports/html/balance_sheet.html +35 -35
  34. data/sample_data/minimal/rockbooks-reports/html/ck.hsbc.disb.html +27 -27
  35. data/sample_data/minimal/rockbooks-reports/html/ck_hsbc_disb.html +40 -0
  36. data/sample_data/minimal/rockbooks-reports/html/general.html +28 -28
  37. data/sample_data/minimal/rockbooks-reports/html/hsbc_visa.html +45 -40
  38. data/sample_data/minimal/rockbooks-reports/html/income_statement.html +33 -32
  39. data/sample_data/minimal/rockbooks-reports/html/index.html +271 -0
  40. data/sample_data/minimal/rockbooks-reports/html/receipts.html +28 -27
  41. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_accts.rec.html +14 -14
  42. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_accts_rec.html +27 -0
  43. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_bank.fees.html +14 -14
  44. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_bank_fees.html +27 -0
  45. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_books.refs.html +14 -14
  46. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_books_refs.html +27 -0
  47. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_cc.hsbc.visa.html +61 -54
  48. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_cc.proc.html +14 -14
  49. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_cc_hsbc_visa.html +74 -0
  50. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_cc_proc.html +27 -0
  51. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_ck.hsbc.html +32 -32
  52. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_ck_hsbc.html +45 -0
  53. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_conf.fees.html +23 -23
  54. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_conf_fees.html +36 -0
  55. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_cowork.fees.html +29 -29
  56. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_cowork_fees.html +42 -0
  57. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_govt.fees.html +14 -14
  58. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_govt_fees.html +27 -0
  59. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_inet.fees.html +14 -14
  60. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_inet_fees.html +27 -0
  61. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_insurance.html +23 -23
  62. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_int.exp.html +14 -14
  63. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_int_exp.html +27 -0
  64. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_loan.to.sh.html +34 -34
  65. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_loan_to_sh.html +47 -0
  66. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_meals.ent.html +14 -14
  67. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_meals_ent.html +27 -0
  68. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_misc.exp.html +14 -14
  69. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_misc_exp.html +27 -0
  70. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_mktng.exp.html +14 -14
  71. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_mktng_exp.html +27 -0
  72. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_own.equity.html +22 -22
  73. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_own_equity.html +35 -0
  74. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_paypal.html +14 -14
  75. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_prof.fees.html +14 -14
  76. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_prof_fees.html +27 -0
  77. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_repair.maint.html +14 -14
  78. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_repair_maint.html +27 -0
  79. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_ret.earn.html +14 -14
  80. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_ret_earn.html +27 -0
  81. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_ship.exp.html +14 -14
  82. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_ship_exp.html +27 -0
  83. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_sls.cons.html +22 -22
  84. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_sls_cons.html +35 -0
  85. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_supplies.html +23 -14
  86. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_sw.exp.html +14 -14
  87. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_sw_exp.html +27 -0
  88. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.airfare.html +22 -22
  89. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.autorent.html +14 -14
  90. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.gas.etc.html +14 -14
  91. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.govt.html +14 -14
  92. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.lodging.html +23 -23
  93. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.m.e.html +14 -14
  94. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.m.i.html +14 -14
  95. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.mileage.html +22 -22
  96. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.misc.html +14 -14
  97. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.parking.html +14 -14
  98. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.perdiem.mi.html +22 -22
  99. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.taxi.html +14 -14
  100. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.trainfare.html +14 -14
  101. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr.unclass.html +14 -14
  102. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_airfare.html +35 -0
  103. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_autorent.html +27 -0
  104. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_gas_etc.html +27 -0
  105. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_govt.html +27 -0
  106. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_lodging.html +36 -0
  107. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_m_e.html +27 -0
  108. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_m_i.html +27 -0
  109. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_mileage.html +35 -0
  110. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_misc.html +27 -0
  111. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_parking.html +27 -0
  112. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_perdiem_mi.html +35 -0
  113. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_taxi.html +27 -0
  114. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_trainfare.html +27 -0
  115. data/sample_data/minimal/rockbooks-reports/html/single-account/acct_tr_unclass.html +27 -0
  116. data/sample_data/minimal/rockbooks-reports/pdf/all_txns_by_acct.pdf +0 -0
  117. data/sample_data/minimal/rockbooks-reports/pdf/all_txns_by_amount.pdf +0 -0
  118. data/sample_data/minimal/rockbooks-reports/pdf/all_txns_by_date.pdf +0 -0
  119. data/sample_data/minimal/rockbooks-reports/pdf/balance_sheet.pdf +0 -0
  120. data/sample_data/minimal/rockbooks-reports/pdf/ck.hsbc.disb.pdf +0 -0
  121. data/sample_data/minimal/rockbooks-reports/pdf/ck_hsbc_disb.pdf +0 -0
  122. data/sample_data/minimal/rockbooks-reports/pdf/general.pdf +0 -0
  123. data/sample_data/minimal/rockbooks-reports/pdf/hsbc_visa.pdf +0 -0
  124. data/sample_data/minimal/rockbooks-reports/pdf/income_statement.pdf +0 -0
  125. data/sample_data/minimal/rockbooks-reports/pdf/receipts.pdf +0 -0
  126. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_accts.rec.pdf +0 -0
  127. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_accts_rec.pdf +0 -0
  128. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_bank.fees.pdf +0 -0
  129. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_bank_fees.pdf +0 -0
  130. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_books.refs.pdf +0 -0
  131. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_books_refs.pdf +0 -0
  132. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_cc.hsbc.visa.pdf +0 -0
  133. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_cc.proc.pdf +0 -0
  134. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_cc_hsbc_visa.pdf +0 -0
  135. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_cc_proc.pdf +0 -0
  136. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_ck.hsbc.pdf +0 -0
  137. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_ck_hsbc.pdf +0 -0
  138. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_conf.fees.pdf +0 -0
  139. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_conf_fees.pdf +0 -0
  140. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_cowork.fees.pdf +0 -0
  141. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_cowork_fees.pdf +0 -0
  142. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_govt.fees.pdf +0 -0
  143. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_govt_fees.pdf +0 -0
  144. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_inet.fees.pdf +0 -0
  145. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_inet_fees.pdf +0 -0
  146. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_insurance.pdf +0 -0
  147. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_int.exp.pdf +0 -0
  148. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_int_exp.pdf +0 -0
  149. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_loan.to.sh.pdf +0 -0
  150. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_loan_to_sh.pdf +0 -0
  151. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_meals.ent.pdf +0 -0
  152. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_meals_ent.pdf +0 -0
  153. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_misc.exp.pdf +0 -0
  154. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_misc_exp.pdf +0 -0
  155. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_mktng.exp.pdf +0 -0
  156. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_mktng_exp.pdf +0 -0
  157. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_own.equity.pdf +0 -0
  158. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_own_equity.pdf +0 -0
  159. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_paypal.pdf +0 -0
  160. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_prof.fees.pdf +0 -0
  161. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_prof_fees.pdf +0 -0
  162. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_repair.maint.pdf +0 -0
  163. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_repair_maint.pdf +0 -0
  164. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_ret.earn.pdf +0 -0
  165. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_ret_earn.pdf +0 -0
  166. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_ship.exp.pdf +0 -0
  167. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_ship_exp.pdf +0 -0
  168. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_sls.cons.pdf +0 -0
  169. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_sls_cons.pdf +0 -0
  170. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_supplies.pdf +0 -0
  171. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_sw.exp.pdf +0 -0
  172. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_sw_exp.pdf +0 -0
  173. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.airfare.pdf +0 -0
  174. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.autorent.pdf +0 -0
  175. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.gas.etc.pdf +0 -0
  176. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.govt.pdf +0 -0
  177. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.lodging.pdf +0 -0
  178. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.m.e.pdf +0 -0
  179. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.m.i.pdf +0 -0
  180. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.mileage.pdf +0 -0
  181. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.misc.pdf +0 -0
  182. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.parking.pdf +0 -0
  183. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.perdiem.mi.pdf +0 -0
  184. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.taxi.pdf +0 -0
  185. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.trainfare.pdf +0 -0
  186. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr.unclass.pdf +0 -0
  187. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_airfare.pdf +0 -0
  188. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_autorent.pdf +0 -0
  189. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_gas_etc.pdf +0 -0
  190. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_govt.pdf +0 -0
  191. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_lodging.pdf +0 -0
  192. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_m_e.pdf +0 -0
  193. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_m_i.pdf +0 -0
  194. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_mileage.pdf +0 -0
  195. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_misc.pdf +0 -0
  196. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_parking.pdf +0 -0
  197. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_perdiem_mi.pdf +0 -0
  198. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_taxi.pdf +0 -0
  199. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_trainfare.pdf +0 -0
  200. data/sample_data/minimal/rockbooks-reports/pdf/single-account/acct_tr_unclass.pdf +0 -0
  201. data/sample_data/minimal/rockbooks-reports/txt/all_txns_by_acct.txt +56 -43
  202. data/sample_data/minimal/rockbooks-reports/txt/all_txns_by_amount.txt +29 -23
  203. data/sample_data/minimal/rockbooks-reports/txt/all_txns_by_date.txt +29 -23
  204. data/sample_data/minimal/rockbooks-reports/txt/balance_sheet.txt +4 -4
  205. data/sample_data/minimal/rockbooks-reports/txt/ck.hsbc.disb.txt +5 -5
  206. data/sample_data/minimal/rockbooks-reports/txt/ck_hsbc_disb.txt +24 -0
  207. data/sample_data/minimal/rockbooks-reports/txt/general.txt +5 -5
  208. data/sample_data/minimal/rockbooks-reports/txt/hsbc_visa.txt +18 -13
  209. data/sample_data/minimal/rockbooks-reports/txt/income_statement.txt +4 -3
  210. data/sample_data/minimal/rockbooks-reports/txt/receipts.txt +6 -5
  211. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_accts_rec.txt +11 -0
  212. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_bank_fees.txt +11 -0
  213. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_books_refs.txt +11 -0
  214. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_cc.hsbc.visa.txt +21 -14
  215. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_cc_hsbc_visa.txt +58 -0
  216. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_cc_proc.txt +11 -0
  217. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_ck.hsbc.txt +4 -4
  218. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_ck_hsbc.txt +29 -0
  219. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_conf.fees.txt +2 -2
  220. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_conf_fees.txt +20 -0
  221. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_cowork.fees.txt +4 -4
  222. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_cowork_fees.txt +26 -0
  223. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_govt_fees.txt +11 -0
  224. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_inet_fees.txt +11 -0
  225. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_insurance.txt +3 -3
  226. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_int_exp.txt +11 -0
  227. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_loan.to.sh.txt +4 -4
  228. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_loan_to_sh.txt +31 -0
  229. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_meals_ent.txt +11 -0
  230. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_misc_exp.txt +11 -0
  231. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_mktng_exp.txt +11 -0
  232. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_own.equity.txt +1 -1
  233. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_own_equity.txt +19 -0
  234. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_prof_fees.txt +11 -0
  235. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_repair_maint.txt +11 -0
  236. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_ret_earn.txt +11 -0
  237. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_ship_exp.txt +11 -0
  238. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_sls.cons.txt +2 -2
  239. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_sls_cons.txt +19 -0
  240. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_supplies.txt +11 -2
  241. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_sw_exp.txt +11 -0
  242. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr.airfare.txt +1 -1
  243. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr.lodging.txt +2 -2
  244. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr.mileage.txt +2 -2
  245. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr.perdiem.mi.txt +1 -1
  246. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_airfare.txt +19 -0
  247. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_autorent.txt +11 -0
  248. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_gas_etc.txt +11 -0
  249. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_govt.txt +11 -0
  250. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_lodging.txt +20 -0
  251. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_m_e.txt +11 -0
  252. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_m_i.txt +11 -0
  253. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_mileage.txt +19 -0
  254. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_misc.txt +11 -0
  255. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_parking.txt +11 -0
  256. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_perdiem_mi.txt +19 -0
  257. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_taxi.txt +11 -0
  258. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_trainfare.txt +11 -0
  259. data/sample_data/minimal/rockbooks-reports/txt/single-account/acct_tr_unclass.txt +11 -0
  260. metadata +147 -15
  261. data/sample_data/minimal/receipts/01/2017-01-20-phoenix-hampton.pdf +0 -0
  262. data/sample_data/minimal/rockbooks-inputs/2017-xyz-visa-journal.txt +0 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80a8729354ab4814e6703e459d4a95ef1d2ce537cd71ab3d87c976ed45ec4b8c
4
- data.tar.gz: aa7ac7d7ddbf5cc913631085c769e212460e5e317f884e4e847577a057c9ecc4
3
+ metadata.gz: 6a7c5d56c718ce58a0fdf060e25be5d3aaf5438ece48a76e02f912e09d203c39
4
+ data.tar.gz: b467740538a5e89504fc7e2ac6b72190181519471f898a5c26ae7cfa29a53496
5
5
  SHA512:
6
- metadata.gz: b1d621b011fc393ce025cdd0729674eb52dcb09b8e106407a35547115a44a8af21453e1159c921b9604785d27e174af84bbf6819e3b61896db0821d89e7fbe87
7
- data.tar.gz: b73f51018ef14b8db92d2e96d72ee5d08419ec119d9da753cd91861b7df827acfd922b70930f02a2fa51e3287b1c025935dc5605c2997f65ae1b9c6ea812b7ac
6
+ metadata.gz: b43529ffa215e13375538d173b939baf659b814dc07a85e7f6c9a695449a86a8dfe49d5134bca22b0c7a479d0707221c4d9bd87efdcef4ac9df95a815b148ca0
7
+ data.tar.gz: 15776062f22eeb7ad746c303289512c9f81005f04f87518c1738d3923991d45a9ef32951b930946d2c746b6b7a6a52516892f4a8cbf5811ca2d58da4fadff2d5
data/.gitignore CHANGED
@@ -7,6 +7,11 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
  /.idea/
10
+ .DS_Store
10
11
 
11
12
  # rspec failure tracking
12
13
  .rspec_status
14
+
15
+ Gemfile.lock
16
+ projectFilesBackup
17
+ *.gem
@@ -1,21 +1,201 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2018 Keith Bennett
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright 2019 Bennett Business Solutions, Inc.
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
data/README.md CHANGED
@@ -1,183 +1,105 @@
1
1
  # RockBooks
2
2
 
3
- A super primitive bookkeeping system using text files as input documents and console output
4
- for reporting.
3
+ | Note: |
4
+ | ---- |
5
+ | The [manual.md file](manual.md) has more detailed information about RockBooks usage. |
5
6
 
6
- A supreme goal of this project is to give _you_ control over your data.
7
- Want to serialize it to YAML, JSON, CSV, or manipulate it in your custom code?
8
- No problem!
7
+ **A simple but useful accounting software application for very small entities.**
9
8
 
10
- It assumes the traditional double entry bookkeeping system, with debits and credits.
11
- In general, assets and expenses are debit balance accounts, and income, liabilities and equity
12
- are credit balance accounts.
9
+ A supreme goal of this project is to give _you_ control over your data. Want to serialize it to YAML, JSON, CSV, or manipulate it in your custom code? No problem!
13
10
 
14
- So, to really have this software make sense to you, you should probably understand
15
- the double entry bookkeeping paradigm pretty well.
11
+ After entering the data in input files, there is a processing step (a single command) that is done to validate the input and generate the reports and home page. (This could be automated using `guard`, etc.) An `index.html` is generated that links to the reports, input documents, receipts, invoices, statements, worksheets, etc., in a unified interface. This `index.html` can be opened locally using a `file:///` URL but the directory tree can easily be copied to a web server for shared and/or remote access.
16
12
 
17
- # Terminology Usage
13
+ #### How RockBooks Is Different
18
14
 
19
- * document - a RockBooks logical document such as a chart of accounts, a journal, etc.,
20
- usually containing information parsed from a data file
15
+ Mainstream accounting packages like QuickBooks have lots of bells and whistles, but are opinionated and not customizable; if you want to use your data _your_ way, or do something differently, you're out of luck.
21
16
 
22
- * data file - a RockBooks data file, which is a text file with the extension `.txt`
17
+ RockBooks is different in many ways.
23
18
 
19
+ The software is in the form of Ruby classes and objects that can be incorporated into your own code for your own customizations. The data is available to programmers as Ruby objects (and therefore JSON, YAML, etc.) In addition, RockBooks could be used as an engine with alternate pluggable UI's. Feel free to write a web app for inputting the data!
24
20
 
25
- ## Data File Format
21
+ Rather than hiding accounting concepts from the user, RockBooks embraces and exposes them. There is no attempt to hide the traditional double entry bookkeeping system, with debits and credits. Accounting terminology is used throughout (e.g. "chart of accounts", "journals"). Some understanding of accounting or bookkeeping principles is helpful but not absolutely necessary.
26
22
 
27
- Lines beginning with `#` will be ignored.
23
+ To simplify its implementation, RockBooks assumes some conventions:
28
24
 
29
- Data lines that contain the value of document properties,
30
- as opposed to transactions, etc., will be expressed as lines beginning with `@`:
25
+ * Input documents (chart of accounts, journals) are assumed to be in the `rockbooks-inputs` directory.
31
26
 
32
- ```
33
- @doc_type: journal
34
- @title: "ABC Bank Checking Account Disbursements Journal"
35
- @account: ck_abc
36
- ```
37
-
38
- Repeating data types such as entries in journals, and accounts in the chart of accounts,
39
- should in general be input after the properties.
40
-
41
- Data lines will contain fields that an be separated with an arbitrary number of spaces, e.g.:
42
-
43
- ```
44
- 2018-05-18 123.45 703
45
- ```
46
-
47
- In journals, all entries will begin with dates, and all dates begin with numerals, so the
48
- presence of a numeral in the first column will be interpreted as the beginning of a new
49
- transaction (entry). Any lines following it not beginning with a `#` or number will be
50
- assumed to be the textual description of the transaction, and will be saved along with
51
- its other data.
52
-
53
- In order to make the entry of dates more convenient, many documents will support
54
- a `@date_prefix` property that will be prepended to dates. For example, if this prefix
55
- contains `2018-`, then subsequent dates must exclude that prefix since it will be
56
- automatically prepended. So, for example, a journal might contain the following lines:
57
-
58
- ```
59
- @date_prefix: 2018-
60
- # ...more lines...
61
- 05-29 37.50 ofc.spls
62
- 05-30 22.20 tr.taxi
63
- ```
64
-
65
- All date strings must use the format `YYYY-MM-DD`, because that's what will be expected
66
- by the application when it converts the date strings into numeric dates.
67
-
68
-
69
-
70
- ### Chart of Accounts
71
-
72
- Pretty much everything in this application assumes the presence of a chart of accounts
73
- listing the accounts, including their codes, types, and names.
74
-
75
- You'll need to provide a chart of accounts file that includes the following line in the header:
76
-
77
- `@document_type: chart_of_accounts`
78
-
79
- This file should contain the accounts
80
- that will be used. Each account should contain the following fields:
27
+ * The following directories are assumed to contain the appropriate content, or nothing at all. They are simply presented on the reports web page as directories in the filesystem, so you can feel free to organize files in subdirectories as you see fit:
81
28
 
82
- | Property Name | Description |
83
- | ------------- | ------------- |
84
- | code | a short string with which to identify an account, e.g. `ret.earn` for retained earnings
85
- | type | 'A' for asset, 'L' for liability, 'O' for (owners) equity, 'I' for income, and 'E' for expenses.
86
- | name | a longer more descriptive name, used in reports, so no more than 30 or so characters long is recommended
29
+ * `receipts` - receipts documenting expenses & other transactions
30
+ * `invoices` - sales/services invoices
31
+ * `statements` - statements from banks, etc.
32
+ * `worksheets` - spreadsheets, etc., e.g. mileage and per diem calculations
87
33
 
34
+ #### Supported Operating Systems
88
35
 
89
- So, the chart of accounts data might include something like this:
36
+ At this time, RockBooks is supported only on Mac OS and Linux. (It's really the external tools that is the issue, not the Ruby code.) It should probably work with Windows Subsystem for Linux (WSL) but it hasn't been tested. If you're unsuccessful trying to use RockBooks with WSL, give me as much information as possible and I'll try to resolve the issue.
90
37
 
91
- ```
92
- ck.xyz A XYZ Bank Checking Account
93
- loan.owner L Loan Payable to Owner
94
- o.equity O Owner's Equity
95
- sls.cons I Consulting Sales
96
- tr.airfare E Travel - Air Fare
97
- ```
98
-
99
- Although hyphens and underscores are typically used to logically separate string fragments,
100
- we recommend periods; they're much easier to type, and you'll be doing a lot of that.
101
-
102
- There is no maximum length for account codes, and reports will automatically align based
103
- on the longest account code. However, keep in mind that you will need to type these codes,
104
- and they will consume space in reports.
105
-
106
- ### Journals
107
-
108
- Journals (also referred to as _documents_ by this application)
109
- are used to record transactions of, for example:
110
-
111
- * cash disbursements (expenditures for a single checking account)
112
- * cash receipts (funds coming into a single checking account)
113
- * combined cash disbursements and receipts
114
- * a credit card account
115
- * a Paypal account
116
- * sales
38
+ If you get an error message saying that an external command is missing, install that command using your system's package manager (e.g. `sudo apt install txt2html`).
39
+
40
+ #### Text Files as Input
117
41
 
118
- Each journal data file needs to contain:
42
+ Instead of a web interface, data input is done in plain text files. This isn't as fancy but has the following advantages:
119
43
 
120
- `@doc_type: journal`
44
+ * Data can be tracked in git or other version control software, offering a readable and easily accessible audit trail, manageable collaboration, with free cloud backup including history with Github, Gitlab, Bitbucket, etc.
121
45
 
122
- Also, it needs to identify the code of the account the journal is representing.
123
- So for example, if it is a journal of a PayPal account, and the PayPal
124
- account's code is `paypal`, then you'll need a line like this in your journal file:
46
+ * Text notes of arbitrary length can be included in input files, and included or excluded in reports. This can be useful, for example, in explaining the context of a transaction more thoroughly than could be done in a conventional accounting application. This can be helpful to accountants, auditors, etc., saving the time, and you money, and can demonstrate your helpfulness and transparency.
125
47
 
126
- `@account_code: paypal`
48
+ * Data will be longer lived, as it is readable and printable without any special software.
127
49
 
128
- For your convenience, when entering transactions in a journal (but _not_ a _general_ journal),
129
- you may enter all numbers going in the direction natural for that journal as positive numbers.
50
+ * Users can use their favorite text editors.
130
51
 
131
- For example, a _Cash Disbursements Journal_ (something like a
132
- check register) may contain a transaction like this:
52
+ * All data entry can be done without moving the hands away from the keyboard.
133
53
 
134
- ```
135
- 05-29 37.50 ofc.spls
136
- ```
137
54
 
138
- There may be many transactions in your journal, and it would be cumbersome to have to
139
- type minus signs in front of all of them if they were credits.
55
+ #### The Accounting Period
140
56
 
141
- Because of this, the program allows you to configure each journal as to the direction
142
- (debit or credit) of the transaction. This is done with the `@debit_or_credit` property.
57
+ There is no handling of end of year closings or the like; the entire set of data in the input files is considered included in the reporting period when generating the reports. Therefore, the best approach is to create a new data set for each year. The chart of accounts and journal files can be copied and modified as necessary.
143
58
 
144
- For an asset journal whose numbers will be crediting the main account
145
- (e.g. a cash disbursements journal whose entries will primarily be crediting
146
- the cash account), you would set the property to `debit`:
59
+ #### RockBooks Help Text
147
60
 
148
61
  ```
149
- @debit_or_credit: debit
62
+ Command Line Switches: [rock-books version 0.2.1 at https://github.com/keithrbennett/rock_books]
63
+
64
+ -i input directory specification, default: './rockbooks-inputs'
65
+ -o output (reports) directory specification, default: './rockbooks-reports'
66
+ -r receipts directory, default: './receipts'
67
+ -s run in shell mode
68
+
69
+ Commands:
70
+
71
+ rec[eipts] - receipts: a/:a all, m/:m missing, e/:e existing
72
+ rep[orts] - return an OpenStruct containing all reports (interactive shell mode only)
73
+ d[isplay_reports] - display all reports on stdout
74
+ w[rite_reports] - write all reports to the output directory (see -o option)
75
+ c[hart_of_accounts] - chart of accounts
76
+ h[elp] - prints this help
77
+ jo[urnals] - list of the journals' short names
78
+ proj[ect_page] - open the RockBooks Github project page in a browser
79
+ rel[oad_data] - reload data from input files
80
+ q[uit] - exits this program (interactive shell mode only) (see also 'x')
81
+ x[it] - exits this program (interactive shell mode only) (see also 'q')
82
+
83
+ When in interactive shell mode:
84
+ * use quotes for string parameters such as method names.
85
+ * for pry commands, use prefix `%`.
86
+ * you can use the global variable $filter to filter reports
150
87
  ```
151
88
 
89
+ ----
152
90
 
153
- #### General Journal
91
+ ## What RockBooks Is Not
154
92
 
155
- The general journal is a special form of journal that does not have a primary account.
156
-
157
- In this journal, debits and credits need to be specified literally as account code/amount
158
- pairs, where positive numbers will result in debits, and negative numbers will result in credits, e.g.:
159
-
160
- ```
161
- 03-10 tr.perdiem.mi 495.00 loan.to.sh -495.00
162
- Per Diem allowance for conference trip
163
- ```
93
+ As a product written by a single developer in his spare time, RockBooks lacks some conveniences of traditional accounting software programs, such as:
164
94
 
95
+ * Import of data from financial institutions
96
+ * On the fly data validation
97
+ * Data entry conveniences such as drop down selection lists for data such as accounts
98
+ * Fancy reporting and graphing -- however, RockBooks' bringing links to all the entity's documentation and output into a single web page may well be more useful
165
99
 
166
100
 
167
101
  ## Installation
168
102
 
169
- Add this line to your application's Gemfile:
170
-
171
- ```ruby
172
- gem 'rock_books'
173
- ```
174
-
175
- And then execute:
176
-
177
- $ bundle
178
-
179
- Or install it yourself as:
180
-
181
103
  $ gem install rock_books
182
104
 
183
105
  ## Contributing