lewt 0.5.12

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.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +22 -0
  3. data/README.md +238 -0
  4. data/bin/lewt +10 -0
  5. data/lib/config/customers.yml +33 -0
  6. data/lib/config/enterprise.yml +54 -0
  7. data/lib/config/settings.yml +10 -0
  8. data/lib/config/templates/invoice.html.liquid +63 -0
  9. data/lib/config/templates/invoice.text.liquid +40 -0
  10. data/lib/config/templates/meta.html.liquid +0 -0
  11. data/lib/config/templates/meta.text.liquid +1 -0
  12. data/lib/config/templates/metastat.html.liquid +2 -0
  13. data/lib/config/templates/metastat.text.liquid +8 -0
  14. data/lib/config/templates/report.html.liquid +29 -0
  15. data/lib/config/templates/report.text.liquid +15 -0
  16. data/lib/config/templates/style.css +461 -0
  17. data/lib/extension.rb +158 -0
  18. data/lib/extensions/calendar-timekeeping/apple_extractor.rb +63 -0
  19. data/lib/extensions/calendar-timekeeping/calendar-timekeeping.rb +65 -0
  20. data/lib/extensions/calendar-timekeeping/extractor.rb +62 -0
  21. data/lib/extensions/calendar-timekeeping/gcal_extractor.rb +61 -0
  22. data/lib/extensions/calendar-timekeeping/ical_extractor.rb +52 -0
  23. data/lib/extensions/liquid-renderer.rb +106 -0
  24. data/lib/extensions/metastat/metamath.rb +108 -0
  25. data/lib/extensions/metastat/metastat.rb +161 -0
  26. data/lib/extensions/simple-expenses.rb +112 -0
  27. data/lib/extensions/simple-invoices.rb +93 -0
  28. data/lib/extensions/simple-milestones.rb +102 -0
  29. data/lib/extensions/simple-reports.rb +81 -0
  30. data/lib/extensions/store.rb +81 -0
  31. data/lib/lewt.rb +233 -0
  32. data/lib/lewt_book.rb +29 -0
  33. data/lib/lewt_ledger.rb +149 -0
  34. data/lib/lewtopts.rb +170 -0
  35. data/tests/LEWT Schedule.ics +614 -0
  36. data/tests/expenses.csv +1 -0
  37. data/tests/milestones.csv +1 -0
  38. data/tests/run_tests.rb +14 -0
  39. data/tests/tc_Billing.rb +29 -0
  40. data/tests/tc_CalExt.rb +44 -0
  41. data/tests/tc_Lewt.rb +37 -0
  42. data/tests/tc_LewtExtension.rb +31 -0
  43. data/tests/tc_LewtLedger.rb +38 -0
  44. data/tests/tc_LewtOpts.rb +26 -0
  45. metadata +158 -0
@@ -0,0 +1,614 @@
1
+ BEGIN:VCALENDAR
2
+ METHOD:PUBLISH
3
+ VERSION:2.0
4
+ X-WR-CALNAME:LEWT Schedule
5
+ PRODID:-//Apple Inc.//Mac OS X 10.9.4//EN
6
+ X-APPLE-CALENDAR-COLOR:#711A76
7
+ X-WR-TIMEZONE:Australia/Brisbane
8
+ CALSCALE:GREGORIAN
9
+ BEGIN:VTIMEZONE
10
+ TZID:Australia/Brisbane
11
+ BEGIN:DAYLIGHT
12
+ TZOFFSETFROM:+1000
13
+ RRULE:FREQ=YEARLY;UNTIL=19911026T160000Z;BYMONTH=10;BYDAY=-1SU
14
+ DTSTART:19891029T020000
15
+ TZNAME:AEDT
16
+ TZOFFSETTO:+1100
17
+ END:DAYLIGHT
18
+ BEGIN:STANDARD
19
+ TZOFFSETFROM:+1100
20
+ DTSTART:19920301T030000
21
+ TZNAME:AEST
22
+ TZOFFSETTO:+1000
23
+ END:STANDARD
24
+ END:VTIMEZONE
25
+ BEGIN:VEVENT
26
+ TRANSP:OPAQUE
27
+ DTEND;TZID=Australia/Brisbane:20131230T170000
28
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
29
+ DTSTAMP:20140915T071546Z
30
+ LOCATION:
31
+ DESCRIPTION:Doing the grind…
32
+ STATUS:CONFIRMED
33
+ SEQUENCE:7
34
+ SUMMARY:Working @ ACME
35
+ LAST-MODIFIED:20140915T065556Z
36
+ DTSTART;TZID=Australia/Brisbane:20131230T090000
37
+ CREATED:20140915T065555Z
38
+ RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20141231T135959Z;BYDAY=MO,TU,FR;WKST=
39
+ MO
40
+ END:VEVENT
41
+ BEGIN:VEVENT
42
+ TRANSP:OPAQUE
43
+ DTEND;TZID=Australia/Brisbane:20140401T170000
44
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
45
+ DTSTAMP:20140915T071110Z
46
+ LOCATION:
47
+ DESCRIPTION:Doing the grind… happiness=7/10
48
+ STATUS:CONFIRMED
49
+ SEQUENCE:8
50
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140401T090000
51
+ SUMMARY:Working @ ACME
52
+ LAST-MODIFIED:20140915T065556Z
53
+ DTSTART;TZID=Australia/Brisbane:20140401T090000
54
+ CREATED:20140915T065555Z
55
+ END:VEVENT
56
+ BEGIN:VEVENT
57
+ TRANSP:OPAQUE
58
+ DTEND;TZID=Australia/Brisbane:20131230T170000
59
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
60
+ DTSTAMP:20140915T070229Z
61
+ LOCATION:
62
+ DESCRIPTION:Doing the grind… #happiness=7/10
63
+ STATUS:CONFIRMED
64
+ SEQUENCE:8
65
+ RECURRENCE-ID;TZID=Australia/Brisbane:20131230T090000
66
+ SUMMARY:Working @ ACME
67
+ LAST-MODIFIED:20140915T065556Z
68
+ DTSTART;TZID=Australia/Brisbane:20131230T090000
69
+ CREATED:20140915T065555Z
70
+ END:VEVENT
71
+ BEGIN:VEVENT
72
+ TRANSP:OPAQUE
73
+ DTEND;TZID=Australia/Brisbane:20140120T170000
74
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
75
+ DTSTAMP:20140915T070451Z
76
+ LOCATION:
77
+ DESCRIPTION:Doing the grind… #awesome-day
78
+ STATUS:CONFIRMED
79
+ SEQUENCE:8
80
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140120T090000
81
+ SUMMARY:Working @ ACME
82
+ LAST-MODIFIED:20140915T065556Z
83
+ DTSTART;TZID=Australia/Brisbane:20140120T090000
84
+ CREATED:20140915T065555Z
85
+ END:VEVENT
86
+ BEGIN:VEVENT
87
+ TRANSP:OPAQUE
88
+ DTEND;TZID=Australia/Brisbane:20140203T170000
89
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
90
+ DTSTAMP:20140915T070532Z
91
+ LOCATION:
92
+ DESCRIPTION:Doing the grind… #bad-day
93
+ STATUS:CONFIRMED
94
+ SEQUENCE:8
95
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140203T090000
96
+ SUMMARY:Working @ ACME
97
+ LAST-MODIFIED:20140915T065556Z
98
+ DTSTART;TZID=Australia/Brisbane:20140203T090000
99
+ CREATED:20140915T065555Z
100
+ END:VEVENT
101
+ BEGIN:VEVENT
102
+ TRANSP:OPAQUE
103
+ DTEND;TZID=Australia/Brisbane:20140408T153000
104
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
105
+ DTSTAMP:20140915T071135Z
106
+ LOCATION:
107
+ DESCRIPTION:Doing the grind… #good-day
108
+ STATUS:CONFIRMED
109
+ SEQUENCE:9
110
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140408T090000
111
+ SUMMARY:Working @ ACME
112
+ LAST-MODIFIED:20140915T065556Z
113
+ DTSTART;TZID=Australia/Brisbane:20140408T090000
114
+ CREATED:20140915T065555Z
115
+ END:VEVENT
116
+ BEGIN:VEVENT
117
+ TRANSP:OPAQUE
118
+ DTEND;TZID=Australia/Brisbane:20140214T230000
119
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
120
+ DTSTAMP:20140915T070611Z
121
+ LOCATION:
122
+ DESCRIPTION:Doing the grind… #bad-day
123
+ STATUS:CONFIRMED
124
+ SEQUENCE:9
125
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140214T090000
126
+ SUMMARY:Working @ ACME
127
+ LAST-MODIFIED:20140915T065556Z
128
+ DTSTART;TZID=Australia/Brisbane:20140214T090000
129
+ CREATED:20140915T065555Z
130
+ END:VEVENT
131
+ BEGIN:VEVENT
132
+ TRANSP:OPAQUE
133
+ DTEND;TZID=Australia/Brisbane:20140328T120000
134
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
135
+ DTSTAMP:20140915T071044Z
136
+ LOCATION:
137
+ DESCRIPTION:Doing the grind… #good-day
138
+ STATUS:CONFIRMED
139
+ SEQUENCE:9
140
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140328T090000
141
+ SUMMARY:Working @ ACME
142
+ LAST-MODIFIED:20140915T065556Z
143
+ DTSTART;TZID=Australia/Brisbane:20140328T090000
144
+ CREATED:20140915T065555Z
145
+ END:VEVENT
146
+ BEGIN:VEVENT
147
+ TRANSP:OPAQUE
148
+ DTEND;TZID=Australia/Brisbane:20140225T170000
149
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
150
+ DTSTAMP:20140915T070915Z
151
+ LOCATION:
152
+ DESCRIPTION:Doing the grind… #good-day
153
+ STATUS:CONFIRMED
154
+ SEQUENCE:8
155
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140225T090000
156
+ SUMMARY:Working @ ACME
157
+ LAST-MODIFIED:20140915T065556Z
158
+ DTSTART;TZID=Australia/Brisbane:20140225T090000
159
+ CREATED:20140915T065555Z
160
+ END:VEVENT
161
+ BEGIN:VEVENT
162
+ TRANSP:OPAQUE
163
+ DTEND;TZID=Australia/Brisbane:20140422T170000
164
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
165
+ DTSTAMP:20140915T071221Z
166
+ LOCATION:
167
+ DESCRIPTION:Doing the grind… #happiness=7/10
168
+ STATUS:CONFIRMED
169
+ SEQUENCE:8
170
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140422T090000
171
+ SUMMARY:Working @ ACME
172
+ LAST-MODIFIED:20140915T065556Z
173
+ DTSTART;TZID=Australia/Brisbane:20140422T090000
174
+ CREATED:20140915T065555Z
175
+ END:VEVENT
176
+ BEGIN:VEVENT
177
+ TRANSP:OPAQUE
178
+ DTEND;TZID=Australia/Brisbane:20140711T170000
179
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
180
+ DTSTAMP:20140915T071503Z
181
+ LOCATION:
182
+ DESCRIPTION:Doing the grind… #happiness=8/10
183
+ STATUS:CONFIRMED
184
+ SEQUENCE:8
185
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140711T090000
186
+ SUMMARY:Working @ ACME
187
+ LAST-MODIFIED:20140915T065556Z
188
+ DTSTART;TZID=Australia/Brisbane:20140711T090000
189
+ CREATED:20140915T065555Z
190
+ END:VEVENT
191
+ BEGIN:VEVENT
192
+ TRANSP:OPAQUE
193
+ DTEND;TZID=Australia/Brisbane:20140210T170000
194
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
195
+ DTSTAMP:20140915T070542Z
196
+ LOCATION:
197
+ DESCRIPTION:Doing the grind… #bad-day
198
+ STATUS:CONFIRMED
199
+ SEQUENCE:8
200
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140210T090000
201
+ SUMMARY:Working @ ACME
202
+ LAST-MODIFIED:20140915T065556Z
203
+ DTSTART;TZID=Australia/Brisbane:20140210T090000
204
+ CREATED:20140915T065555Z
205
+ END:VEVENT
206
+ BEGIN:VEVENT
207
+ TRANSP:OPAQUE
208
+ DTEND;TZID=Australia/Brisbane:20140526T170000
209
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
210
+ DTSTAMP:20140915T071331Z
211
+ LOCATION:
212
+ DESCRIPTION:Doing the grind… #bad-day
213
+ STATUS:CONFIRMED
214
+ SEQUENCE:9
215
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140526T090000
216
+ SUMMARY:Working @ ACME
217
+ LAST-MODIFIED:20140915T065556Z
218
+ DTSTART;TZID=Australia/Brisbane:20140526T063000
219
+ CREATED:20140915T065555Z
220
+ END:VEVENT
221
+ BEGIN:VEVENT
222
+ TRANSP:OPAQUE
223
+ DTEND;TZID=Australia/Brisbane:20140815T170000
224
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
225
+ DTSTAMP:20140915T071546Z
226
+ LOCATION:
227
+ DESCRIPTION:Doing the grind… #good-day
228
+ STATUS:CONFIRMED
229
+ SEQUENCE:8
230
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140815T090000
231
+ SUMMARY:Working @ ACME
232
+ LAST-MODIFIED:20140915T065556Z
233
+ DTSTART;TZID=Australia/Brisbane:20140815T090000
234
+ CREATED:20140915T065555Z
235
+ END:VEVENT
236
+ BEGIN:VEVENT
237
+ TRANSP:OPAQUE
238
+ DTEND;TZID=Australia/Brisbane:20140107T234500
239
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
240
+ DTSTAMP:20140915T070357Z
241
+ LOCATION:
242
+ DESCRIPTION:Doing the grind… #bad-day
243
+ STATUS:CONFIRMED
244
+ SEQUENCE:9
245
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140107T090000
246
+ SUMMARY:Working @ ACME
247
+ LAST-MODIFIED:20140915T065556Z
248
+ DTSTART;TZID=Australia/Brisbane:20140107T090000
249
+ CREATED:20140915T065555Z
250
+ END:VEVENT
251
+ BEGIN:VEVENT
252
+ TRANSP:OPAQUE
253
+ DTEND;TZID=Australia/Brisbane:20140609T170000
254
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
255
+ DTSTAMP:20140915T071410Z
256
+ LOCATION:
257
+ DESCRIPTION:Doing the grind… #bad-day
258
+ STATUS:CONFIRMED
259
+ SEQUENCE:8
260
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140609T090000
261
+ SUMMARY:Working @ ACME
262
+ LAST-MODIFIED:20140915T065556Z
263
+ DTSTART;TZID=Australia/Brisbane:20140609T090000
264
+ CREATED:20140915T065555Z
265
+ END:VEVENT
266
+ BEGIN:VEVENT
267
+ TRANSP:OPAQUE
268
+ DTEND;TZID=Australia/Brisbane:20140616T170000
269
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
270
+ DTSTAMP:20140915T071433Z
271
+ LOCATION:
272
+ DESCRIPTION:Doing the grind… #bad-day
273
+ STATUS:CONFIRMED
274
+ SEQUENCE:8
275
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140616T090000
276
+ SUMMARY:Working @ ACME
277
+ LAST-MODIFIED:20140915T065556Z
278
+ DTSTART;TZID=Australia/Brisbane:20140616T090000
279
+ CREATED:20140915T065555Z
280
+ END:VEVENT
281
+ BEGIN:VEVENT
282
+ TRANSP:OPAQUE
283
+ DTEND;TZID=Australia/Brisbane:20140620T143000
284
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
285
+ DTSTAMP:20140915T071445Z
286
+ LOCATION:
287
+ DESCRIPTION:Doing the grind… #good-day
288
+ STATUS:CONFIRMED
289
+ SEQUENCE:10
290
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140620T090000
291
+ SUMMARY:Working @ ACME
292
+ LAST-MODIFIED:20140915T065556Z
293
+ DTSTART;TZID=Australia/Brisbane:20140620T090000
294
+ CREATED:20140915T065555Z
295
+ END:VEVENT
296
+ BEGIN:VEVENT
297
+ TRANSP:OPAQUE
298
+ DTEND;TZID=Australia/Brisbane:20140310T170000
299
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
300
+ DTSTAMP:20140915T070958Z
301
+ LOCATION:
302
+ DESCRIPTION:Doing the grind… #bad-day #happiness=4/10
303
+ STATUS:CONFIRMED
304
+ SEQUENCE:8
305
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140310T090000
306
+ SUMMARY:Working @ ACME
307
+ LAST-MODIFIED:20140915T065556Z
308
+ DTSTART;TZID=Australia/Brisbane:20140310T090000
309
+ CREATED:20140915T065555Z
310
+ END:VEVENT
311
+ BEGIN:VEVENT
312
+ TRANSP:OPAQUE
313
+ DTEND;TZID=Australia/Brisbane:20140228T170000
314
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
315
+ DTSTAMP:20140915T070928Z
316
+ LOCATION:
317
+ DESCRIPTION:Doing the grind… #bad-day
318
+ STATUS:CONFIRMED
319
+ SEQUENCE:8
320
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140228T090000
321
+ SUMMARY:Working @ ACME
322
+ LAST-MODIFIED:20140915T065556Z
323
+ DTSTART;TZID=Australia/Brisbane:20140228T090000
324
+ CREATED:20140915T065555Z
325
+ END:VEVENT
326
+ BEGIN:VEVENT
327
+ TRANSP:OPAQUE
328
+ DTEND;TZID=Australia/Brisbane:20140324T170000
329
+ UID:62FD9DF2-E3F9-4930-B16D-ED33322EEA86
330
+ DTSTAMP:20140915T071058Z
331
+ LOCATION:
332
+ DESCRIPTION:Doing the grind… #bad-day
333
+ STATUS:CONFIRMED
334
+ SEQUENCE:10
335
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140324T090000
336
+ SUMMARY:Working @ ACME
337
+ LAST-MODIFIED:20140915T065556Z
338
+ DTSTART;TZID=Australia/Brisbane:20140324T090000
339
+ CREATED:20140915T065555Z
340
+ END:VEVENT
341
+ BEGIN:VEVENT
342
+ TRANSP:OPAQUE
343
+ DTEND;TZID=Australia/Brisbane:20140101T170000
344
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
345
+ DTSTAMP:20140915T071614Z
346
+ LOCATION:
347
+ DESCRIPTION:Hacking on the bat mobile in secrecy.
348
+ STATUS:CONFIRMED
349
+ SEQUENCE:6
350
+ SUMMARY:Working @ Wcorp
351
+ LAST-MODIFIED:20140915T065749Z
352
+ DTSTART;TZID=Australia/Brisbane:20140101T090000
353
+ CREATED:20140915T065749Z
354
+ RRULE:FREQ=WEEKLY;INTERVAL=1;UNTIL=20141202T135959Z;BYDAY=WE,TH;WKST=MO
355
+ END:VEVENT
356
+ BEGIN:VEVENT
357
+ TRANSP:OPAQUE
358
+ DTEND;TZID=Australia/Brisbane:20140116T234500
359
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
360
+ DTSTAMP:20140915T070431Z
361
+ LOCATION:
362
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #awesome-day #happines
363
+ s=10/10
364
+ STATUS:CONFIRMED
365
+ SEQUENCE:8
366
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140116T090000
367
+ SUMMARY:Working @ Wcorp
368
+ LAST-MODIFIED:20140915T065749Z
369
+ DTSTART;TZID=Australia/Brisbane:20140116T090000
370
+ CREATED:20140915T065749Z
371
+ END:VEVENT
372
+ BEGIN:VEVENT
373
+ TRANSP:OPAQUE
374
+ DTEND;TZID=Australia/Brisbane:20140814T170000
375
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
376
+ DTSTAMP:20140915T071539Z
377
+ LOCATION:
378
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #happiness=10/10 #good
379
+ -day
380
+ STATUS:CONFIRMED
381
+ SEQUENCE:7
382
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140814T090000
383
+ SUMMARY:Working @ Wcorp
384
+ LAST-MODIFIED:20140915T065749Z
385
+ DTSTART;TZID=Australia/Brisbane:20140814T090000
386
+ CREATED:20140915T065749Z
387
+ END:VEVENT
388
+ BEGIN:VEVENT
389
+ TRANSP:OPAQUE
390
+ DTEND;TZID=Australia/Brisbane:20140529T223000
391
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
392
+ DTSTAMP:20140915T071344Z
393
+ LOCATION:
394
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #bad-day
395
+ STATUS:CONFIRMED
396
+ SEQUENCE:8
397
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140529T090000
398
+ SUMMARY:Working @ Wcorp
399
+ LAST-MODIFIED:20140915T065749Z
400
+ DTSTART;TZID=Australia/Brisbane:20140529T090000
401
+ CREATED:20140915T065749Z
402
+ END:VEVENT
403
+ BEGIN:VEVENT
404
+ TRANSP:OPAQUE
405
+ DTEND;TZID=Australia/Brisbane:20140109T170000
406
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
407
+ DTSTAMP:20140915T070345Z
408
+ LOCATION:
409
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #happiness=8/10
410
+ STATUS:CONFIRMED
411
+ SEQUENCE:7
412
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140109T090000
413
+ SUMMARY:Working @ Wcorp
414
+ LAST-MODIFIED:20140915T065749Z
415
+ DTSTART;TZID=Australia/Brisbane:20140109T090000
416
+ CREATED:20140915T065749Z
417
+ END:VEVENT
418
+ BEGIN:VEVENT
419
+ TRANSP:OPAQUE
420
+ DTEND;TZID=Australia/Brisbane:20140903T194500
421
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
422
+ DTSTAMP:20140915T071600Z
423
+ LOCATION:
424
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #bad-day
425
+ STATUS:CONFIRMED
426
+ SEQUENCE:8
427
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140903T090000
428
+ SUMMARY:Working @ Wcorp
429
+ LAST-MODIFIED:20140915T065749Z
430
+ DTSTART;TZID=Australia/Brisbane:20140903T090000
431
+ CREATED:20140915T065749Z
432
+ END:VEVENT
433
+ BEGIN:VEVENT
434
+ TRANSP:OPAQUE
435
+ DTEND;TZID=Australia/Brisbane:20140710T170000
436
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
437
+ DTSTAMP:20140915T071514Z
438
+ LOCATION:
439
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #happiness=9/10
440
+ STATUS:CONFIRMED
441
+ SEQUENCE:7
442
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140710T090000
443
+ SUMMARY:Working @ Wcorp
444
+ LAST-MODIFIED:20140915T065749Z
445
+ DTSTART;TZID=Australia/Brisbane:20140710T090000
446
+ CREATED:20140915T065749Z
447
+ END:VEVENT
448
+ BEGIN:VEVENT
449
+ TRANSP:OPAQUE
450
+ DTEND;TZID=Australia/Brisbane:20140514T170000
451
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
452
+ DTSTAMP:20140915T071314Z
453
+ LOCATION:
454
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #bad-day
455
+ STATUS:CONFIRMED
456
+ SEQUENCE:8
457
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140514T090000
458
+ SUMMARY:Working @ Wcorp
459
+ LAST-MODIFIED:20140915T065749Z
460
+ DTSTART;TZID=Australia/Brisbane:20140514T070000
461
+ CREATED:20140915T065749Z
462
+ END:VEVENT
463
+ BEGIN:VEVENT
464
+ TRANSP:OPAQUE
465
+ DTEND;TZID=Australia/Brisbane:20140730T170000
466
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
467
+ DTSTAMP:20140915T071526Z
468
+ LOCATION:
469
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #good-day
470
+ STATUS:CONFIRMED
471
+ SEQUENCE:7
472
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140730T090000
473
+ SUMMARY:Working @ Wcorp
474
+ LAST-MODIFIED:20140915T065749Z
475
+ DTSTART;TZID=Australia/Brisbane:20140730T090000
476
+ CREATED:20140915T065749Z
477
+ END:VEVENT
478
+ BEGIN:VEVENT
479
+ TRANSP:OPAQUE
480
+ DTEND;TZID=Australia/Brisbane:20140423T170000
481
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
482
+ DTSTAMP:20140915T071208Z
483
+ LOCATION:
484
+ DESCRIPTION:Hacking on the bat mobile in secrecy. happiness=7/10
485
+ STATUS:CONFIRMED
486
+ SEQUENCE:7
487
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140423T090000
488
+ SUMMARY:Working @ Wcorp
489
+ LAST-MODIFIED:20140915T065749Z
490
+ DTSTART;TZID=Australia/Brisbane:20140423T090000
491
+ CREATED:20140915T065749Z
492
+ END:VEVENT
493
+ BEGIN:VEVENT
494
+ TRANSP:OPAQUE
495
+ DTEND;TZID=Australia/Brisbane:20140403T170000
496
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
497
+ DTSTAMP:20140915T071121Z
498
+ LOCATION:
499
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #happiness=7/10
500
+ STATUS:CONFIRMED
501
+ SEQUENCE:7
502
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140403T090000
503
+ SUMMARY:Working @ Wcorp
504
+ LAST-MODIFIED:20140915T065749Z
505
+ DTSTART;TZID=Australia/Brisbane:20140403T090000
506
+ CREATED:20140915T065749Z
507
+ END:VEVENT
508
+ BEGIN:VEVENT
509
+ TRANSP:OPAQUE
510
+ DTEND;TZID=Australia/Brisbane:20140410T151500
511
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
512
+ DTSTAMP:20140915T071150Z
513
+ LOCATION:
514
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #good-day
515
+ STATUS:CONFIRMED
516
+ SEQUENCE:8
517
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140410T090000
518
+ SUMMARY:Working @ Wcorp
519
+ LAST-MODIFIED:20140915T065749Z
520
+ DTSTART;TZID=Australia/Brisbane:20140410T090000
521
+ CREATED:20140915T065749Z
522
+ END:VEVENT
523
+ BEGIN:VEVENT
524
+ TRANSP:OPAQUE
525
+ DTEND;TZID=Australia/Brisbane:20140611T170000
526
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
527
+ DTSTAMP:20140915T071403Z
528
+ LOCATION:
529
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #happiness=7/10
530
+ STATUS:CONFIRMED
531
+ SEQUENCE:7
532
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140611T090000
533
+ SUMMARY:Working @ Wcorp
534
+ LAST-MODIFIED:20140915T065749Z
535
+ DTSTART;TZID=Australia/Brisbane:20140611T090000
536
+ CREATED:20140915T065749Z
537
+ END:VEVENT
538
+ BEGIN:VEVENT
539
+ TRANSP:OPAQUE
540
+ DTEND;TZID=Australia/Brisbane:20140507T143000
541
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
542
+ DTSTAMP:20140915T071253Z
543
+ LOCATION:
544
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #happiness=8/10 #good-
545
+ day
546
+ STATUS:CONFIRMED
547
+ SEQUENCE:8
548
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140507T090000
549
+ SUMMARY:Working @ Wcorp
550
+ LAST-MODIFIED:20140915T065749Z
551
+ DTSTART;TZID=Australia/Brisbane:20140507T090000
552
+ CREATED:20140915T065749Z
553
+ END:VEVENT
554
+ BEGIN:VEVENT
555
+ TRANSP:OPAQUE
556
+ DTEND;TZID=Australia/Brisbane:20140312T130000
557
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
558
+ DTSTAMP:20140915T071016Z
559
+ LOCATION:
560
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #good-day
561
+ STATUS:CONFIRMED
562
+ SEQUENCE:8
563
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140312T090000
564
+ SUMMARY:Working @ Wcorp
565
+ LAST-MODIFIED:20140915T065749Z
566
+ DTSTART;TZID=Australia/Brisbane:20140312T090000
567
+ CREATED:20140915T065749Z
568
+ END:VEVENT
569
+ BEGIN:VEVENT
570
+ TRANSP:OPAQUE
571
+ DTEND;TZID=Australia/Brisbane:20140102T170000
572
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
573
+ DTSTAMP:20140915T070252Z
574
+ LOCATION:
575
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #happiness=8/10
576
+ STATUS:CONFIRMED
577
+ SEQUENCE:7
578
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140102T090000
579
+ SUMMARY:Working @ Wcorp
580
+ LAST-MODIFIED:20140915T065749Z
581
+ DTSTART;TZID=Australia/Brisbane:20140102T090000
582
+ CREATED:20140915T065749Z
583
+ END:VEVENT
584
+ BEGIN:VEVENT
585
+ TRANSP:OPAQUE
586
+ DTEND;TZID=Australia/Brisbane:20140205T170000
587
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
588
+ DTSTAMP:20140915T070522Z
589
+ LOCATION:
590
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #happiness=8/10
591
+ STATUS:CONFIRMED
592
+ SEQUENCE:7
593
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140205T090000
594
+ SUMMARY:Working @ Wcorp
595
+ LAST-MODIFIED:20140915T065749Z
596
+ DTSTART;TZID=Australia/Brisbane:20140205T090000
597
+ CREATED:20140915T065749Z
598
+ END:VEVENT
599
+ BEGIN:VEVENT
600
+ TRANSP:OPAQUE
601
+ DTEND;TZID=Australia/Brisbane:20140910T170000
602
+ UID:BFDDED62-3415-425A-9731-3488CE90239D
603
+ DTSTAMP:20140915T071614Z
604
+ LOCATION:
605
+ DESCRIPTION:Hacking on the bat mobile in secrecy. #bad-day
606
+ STATUS:CONFIRMED
607
+ SEQUENCE:7
608
+ RECURRENCE-ID;TZID=Australia/Brisbane:20140910T090000
609
+ SUMMARY:Working @ Wcorp
610
+ LAST-MODIFIED:20140915T065749Z
611
+ DTSTART;TZID=Australia/Brisbane:20140910T090000
612
+ CREATED:20140915T065749Z
613
+ END:VEVENT
614
+ END:VCALENDAR
@@ -0,0 +1 @@
1
+ Date,Description,Context,Cost
@@ -0,0 +1 @@
1
+ Id,Date,Description,Context,Amount
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # This script can be invoked to run the tests separately from the rake build.
4
+ require 'rubygems'
5
+ require 'test/unit'
6
+
7
+ # Run all of LEWT's test cases.
8
+ load 'tc_Lewt.rb'
9
+ load 'tc_Billing.rb'
10
+ load 'tc_LewtExtension.rb'
11
+ load 'tc_LewtLedger.rb'
12
+ load 'tc_LewtOpts.rb'
13
+ load 'tc_CalExt.rb'
14
+
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Test Cases for the Billing core extension.
4
+ # ./lib/extension.rb
5
+ #
6
+ # Written by: jdw <4 July 2014>
7
+ #
8
+ # ********************************************
9
+
10
+ require "test/unit"
11
+
12
+ require_relative "../lib/extension.rb"
13
+ require_relative "../lib/extensions/simple-invoices.rb"
14
+
15
+ class TestBilling < Test::Unit::TestCase
16
+
17
+ def test_initialize
18
+ billing = LEWT::SimpleInvoices.new
19
+ assert_kind_of( Array || Hash , billing.customers, "@clients is not an *Array*")
20
+ assert_kind_of( Hash, billing.enterprise, "@company not a *Hash*")
21
+ end
22
+
23
+ end
24
+
25
+
26
+
27
+
28
+
29
+
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Test Cases for the Billing core extension.
4
+ # ./lib/extension.rb
5
+ #
6
+ # Written by: jdw <4 July 2014>
7
+ #
8
+ # ********************************************
9
+
10
+ require "test/unit"
11
+
12
+ require_relative "../lib/extension.rb"
13
+ require_relative "../lib/extensions/calendar-timekeeping/calendar-timekeeping.rb"
14
+
15
+ class TestCalendarTimekeeping < Test::Unit::TestCase
16
+
17
+ def test_initialize
18
+ caltime = LEWT::CalendarTimekeeping.new
19
+ assert_instance_of( LEWT::CalendarTimekeeping, caltime, "Extension CalandarTimekeeping not initialising properly." )
20
+ calext = CalendarExtractors::CalExtractor.new( (DateTime.now - 8).to_s, DateTime.now.to_s, "ACME" )
21
+ assert_instance_of( CalendarExtractors::CalExtractor, calext, "Extension CalandarTimekeeping sub-module CalExtractor not initialising properly." )
22
+ end
23
+
24
+ def test_filtering_methods
25
+ calext = CalendarExtractors::CalExtractor.new( (DateTime.now - 8)::to_s, DateTime.now::to_s, LEWT::Extension.new::get_matched_customers("ACME") )
26
+ assert_instance_of(Hash, calext.isTargetCustomer?("ACME"), "#{calext.class.name} not matching customer names properly.")
27
+ assert_instance_of(Hash, calext.isTargetCustomer?("ACME doing some stuff"), "#{calext.class.name} not matching customer names properly.")
28
+ assert_instance_of(Hash, calext.isTargetCustomer?("making thing! ACME"), "#{calext.class.name} not matching customer names properly.")
29
+ assert_instance_of(Hash, calext.isTargetCustomer?("AC"), "#{calext.class.name} not matching customer alias' properly.")
30
+ assert_instance_of(Hash, calext.isTargetCustomer?("AC: building stuff"), "#{calext.class.name} not matching customer alias' properly.")
31
+ assert_instance_of(Hash, calext.isTargetCustomer?("creating features AC"), "#{calext.class.name} not matching customer alias' properly.")
32
+ assert_equal(true, calext.isTargetDate?( DateTime.now - 2 ), "#{calext.class.name} not matching targeted dates properly.")
33
+ assert_equal(false, calext.isTargetDate?( DateTime.now - 50 ), "#{calext.class.name} not ignoring un-targeted dates properly.")
34
+ end
35
+
36
+
37
+
38
+ end
39
+
40
+
41
+
42
+
43
+
44
+