taskjuggler 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (544) hide show
  1. data/CHANGELOG +2086 -0
  2. data/benchmarks/666tasks.tjp +3183 -0
  3. data/benchmarks/booking.tjp +14 -10
  4. data/doc/AppConfig.html +95 -73
  5. data/doc/Arguments.html +22 -2
  6. data/doc/CHANGELOG.html +2587 -0
  7. data/doc/COPYING.html +21 -1
  8. data/doc/Object.html +161 -122
  9. data/doc/README.html +21 -1
  10. data/doc/RuntimeConfig.html +26 -6
  11. data/doc/String.html +38 -18
  12. data/doc/StringIO.html +579 -0
  13. data/doc/TaskJuggler.html +251 -143
  14. data/doc/TaskJuggler/Account.html +26 -6
  15. data/doc/TaskJuggler/AccountAttribute.html +28 -8
  16. data/doc/TaskJuggler/AccountScenario.html +24 -4
  17. data/doc/TaskJuggler/Allocation.html +30 -10
  18. data/doc/TaskJuggler/AllocationAttribute.html +28 -8
  19. data/doc/TaskJuggler/AttributeBase.html +46 -26
  20. data/doc/TaskJuggler/AttributeDefinition.html +22 -2
  21. data/doc/TaskJuggler/BatchProcessor.html +40 -20
  22. data/doc/TaskJuggler/Booking.html +26 -6
  23. data/doc/TaskJuggler/BookingListAttribute.html +28 -8
  24. data/doc/TaskJuggler/BooleanAttribute.html +28 -8
  25. data/doc/TaskJuggler/CSVFile.html +308 -146
  26. data/doc/TaskJuggler/CellSettingPattern.html +22 -2
  27. data/doc/TaskJuggler/CellSettingPatternList.html +26 -6
  28. data/doc/TaskJuggler/Charge.html +26 -6
  29. data/doc/TaskJuggler/ChargeListAttribute.html +26 -6
  30. data/doc/TaskJuggler/ChargeSet.html +33 -13
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +28 -8
  32. data/doc/TaskJuggler/ColumnListAttribute.html +26 -6
  33. data/doc/TaskJuggler/ColumnTable.html +24 -4
  34. data/doc/TaskJuggler/Daemon.html +26 -6
  35. data/doc/TaskJuggler/DateAttribute.html +26 -6
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +22 -2
  37. data/doc/TaskJuggler/DependencyListAttribute.html +28 -8
  38. data/doc/TaskJuggler/DurationAttribute.html +28 -8
  39. data/doc/TaskJuggler/FixnumAttribute.html +24 -4
  40. data/doc/TaskJuggler/FlagListAttribute.html +28 -8
  41. data/doc/TaskJuggler/FloatAttribute.html +26 -6
  42. data/doc/TaskJuggler/FormatListAttribute.html +24 -4
  43. data/doc/TaskJuggler/GanttChart.html +147 -126
  44. data/doc/TaskJuggler/GanttContainer.html +34 -14
  45. data/doc/TaskJuggler/GanttHeader.html +28 -8
  46. data/doc/TaskJuggler/GanttHeaderScaleItem.html +24 -4
  47. data/doc/TaskJuggler/GanttLine.html +38 -18
  48. data/doc/TaskJuggler/GanttLoadStack.html +26 -6
  49. data/doc/TaskJuggler/GanttMilestone.html +34 -14
  50. data/doc/TaskJuggler/GanttRouter.html +50 -30
  51. data/doc/TaskJuggler/GanttTaskBar.html +34 -14
  52. data/doc/TaskJuggler/HTMLDocument.html +26 -6
  53. data/doc/TaskJuggler/HTMLGraphics.html +30 -10
  54. data/doc/TaskJuggler/Interval.html +40 -22
  55. data/doc/TaskJuggler/IntervalListAttribute.html +28 -8
  56. data/doc/TaskJuggler/JobInfo.html +24 -4
  57. data/doc/TaskJuggler/Journal.html +226 -147
  58. data/doc/TaskJuggler/JournalEntry.html +22 -2
  59. data/doc/TaskJuggler/JournalEntryList.html +129 -112
  60. data/doc/TaskJuggler/KeywordArray.html +26 -6
  61. data/doc/TaskJuggler/KeywordDocumentation.html +46 -26
  62. data/doc/TaskJuggler/Limits.html +152 -123
  63. data/doc/TaskJuggler/Limits/Limit.html +149 -70
  64. data/doc/TaskJuggler/LimitsAttribute.html +36 -51
  65. data/doc/TaskJuggler/ListAttributeBase.html +24 -4
  66. data/doc/TaskJuggler/Log.html +50 -32
  67. data/doc/TaskJuggler/LogFile.html +37 -17
  68. data/doc/TaskJuggler/LogicalAttribute.html +53 -33
  69. data/doc/TaskJuggler/LogicalExpression.html +26 -6
  70. data/doc/TaskJuggler/LogicalExpressionAttribute.html +32 -12
  71. data/doc/TaskJuggler/LogicalFlag.html +42 -22
  72. data/doc/TaskJuggler/LogicalFunction.html +204 -140
  73. data/doc/TaskJuggler/LogicalOperation.html +135 -111
  74. data/doc/TaskJuggler/Macro.html +22 -2
  75. data/doc/TaskJuggler/MacroParser.html +32 -12
  76. data/doc/TaskJuggler/MacroTable.html +32 -12
  77. data/doc/TaskJuggler/ManagerResponsibilities.html +24 -4
  78. data/doc/TaskJuggler/ManagerStatusRecord.html +24 -4
  79. data/doc/TaskJuggler/Message.html +24 -4
  80. data/doc/TaskJuggler/MessageHandler.html +24 -4
  81. data/doc/TaskJuggler/Navigator.html +104 -71
  82. data/doc/TaskJuggler/NavigatorElement.html +32 -12
  83. data/doc/TaskJuggler/NikuProject.html +22 -2
  84. data/doc/TaskJuggler/NikuReport.html +310 -228
  85. data/doc/TaskJuggler/NikuResource.html +22 -2
  86. data/doc/TaskJuggler/NodeListAttribute.html +615 -0
  87. data/doc/TaskJuggler/OnShiftCache.html +32 -12
  88. data/doc/TaskJuggler/ProcessIntercom.html +205 -78
  89. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -6
  90. data/doc/TaskJuggler/Project.html +708 -660
  91. data/doc/TaskJuggler/ProjectBroker.html +506 -304
  92. data/doc/TaskJuggler/ProjectBrokerIface.html +61 -41
  93. data/doc/TaskJuggler/ProjectFileParser.html +429 -373
  94. data/doc/TaskJuggler/ProjectFileScanner.html +1790 -0
  95. data/doc/TaskJuggler/ProjectRecord.html +80 -60
  96. data/doc/TaskJuggler/ProjectServer.html +312 -237
  97. data/doc/TaskJuggler/ProjectServerIface.html +101 -43
  98. data/doc/TaskJuggler/PropertyAttribute.html +32 -12
  99. data/doc/TaskJuggler/PropertyList.html +166 -145
  100. data/doc/TaskJuggler/PropertySet.html +254 -224
  101. data/doc/TaskJuggler/PropertyTreeNode.html +670 -536
  102. data/doc/TaskJuggler/Query.html +169 -148
  103. data/doc/TaskJuggler/RTFHandlers.html +622 -0
  104. data/doc/TaskJuggler/RTFNavigator.html +28 -8
  105. data/doc/TaskJuggler/RTFQuery.html +40 -20
  106. data/doc/TaskJuggler/RTFReport.html +62 -25
  107. data/doc/TaskJuggler/RTFReportLink.html +765 -0
  108. data/doc/TaskJuggler/RealFormat.html +26 -6
  109. data/doc/TaskJuggler/RealFormatAttribute.html +26 -6
  110. data/doc/TaskJuggler/ReferenceAttribute.html +59 -39
  111. data/doc/TaskJuggler/Report.html +402 -251
  112. data/doc/TaskJuggler/ReportBase.html +162 -137
  113. data/doc/TaskJuggler/ReportContext.html +112 -29
  114. data/doc/TaskJuggler/ReportServer.html +89 -64
  115. data/doc/TaskJuggler/ReportServerIface.html +75 -55
  116. data/doc/TaskJuggler/ReportServerRecord.html +54 -31
  117. data/doc/TaskJuggler/ReportServlet.html +980 -0
  118. data/doc/TaskJuggler/ReportTable.html +41 -21
  119. data/doc/TaskJuggler/ReportTableCell.html +214 -170
  120. data/doc/TaskJuggler/ReportTableColumn.html +30 -10
  121. data/doc/TaskJuggler/ReportTableLegend.html +36 -16
  122. data/doc/TaskJuggler/ReportTableLine.html +32 -12
  123. data/doc/TaskJuggler/Resource.html +99 -87
  124. data/doc/TaskJuggler/ResourceListAttribute.html +59 -39
  125. data/doc/TaskJuggler/ResourceListRE.html +47 -26
  126. data/doc/TaskJuggler/ResourceScenario.html +403 -437
  127. data/doc/TaskJuggler/RichText.html +26 -6
  128. data/doc/TaskJuggler/RichTextAttribute.html +50 -30
  129. data/doc/TaskJuggler/RichTextDocument.html +37 -17
  130. data/doc/TaskJuggler/RichTextElement.html +475 -413
  131. data/doc/TaskJuggler/RichTextException.html +22 -2
  132. data/doc/TaskJuggler/RichTextFunctionExample.html +28 -8
  133. data/doc/TaskJuggler/RichTextFunctionHandler.html +24 -4
  134. data/doc/TaskJuggler/RichTextImage.html +22 -2
  135. data/doc/TaskJuggler/RichTextIntermediate.html +38 -18
  136. data/doc/TaskJuggler/RichTextParser.html +56 -34
  137. data/doc/TaskJuggler/RichTextScanner.html +82 -61
  138. data/doc/TaskJuggler/RichTextSnip.html +34 -14
  139. data/doc/TaskJuggler/RichTextSyntaxRules.html +507 -353
  140. data/doc/TaskJuggler/Scenario.html +22 -2
  141. data/doc/TaskJuggler/ScenarioData.html +30 -46
  142. data/doc/TaskJuggler/ScenarioListAttribute.html +38 -18
  143. data/doc/TaskJuggler/Scoreboard.html +42 -22
  144. data/doc/TaskJuggler/SheetHandlerBase.html +40 -20
  145. data/doc/TaskJuggler/SheetReceiver.html +333 -295
  146. data/doc/TaskJuggler/SheetSender.html +253 -230
  147. data/doc/TaskJuggler/Shift.html +26 -6
  148. data/doc/TaskJuggler/ShiftAssignment.html +89 -73
  149. data/doc/TaskJuggler/ShiftAssignments.html +226 -234
  150. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +39 -54
  151. data/doc/TaskJuggler/ShiftScenario.html +28 -8
  152. data/doc/TaskJuggler/SortListAttribute.html +34 -14
  153. data/doc/TaskJuggler/SourceFileInfo.html +24 -4
  154. data/doc/TaskJuggler/StatusSheetReceiver.html +24 -3
  155. data/doc/TaskJuggler/StatusSheetReport.html +168 -153
  156. data/doc/TaskJuggler/StatusSheetSender.html +24 -3
  157. data/doc/TaskJuggler/StringAttribute.html +38 -18
  158. data/doc/TaskJuggler/SymbolAttribute.html +32 -12
  159. data/doc/TaskJuggler/SyntaxReference.html +40 -20
  160. data/doc/TaskJuggler/TOCEntry.html +26 -6
  161. data/doc/TaskJuggler/TSResourceRecord.html +22 -2
  162. data/doc/TaskJuggler/TSTaskRecord.html +22 -2
  163. data/doc/TaskJuggler/TableColumnDefinition.html +59 -22
  164. data/doc/TaskJuggler/TableOfContents.html +26 -6
  165. data/doc/TaskJuggler/TableReport.html +937 -904
  166. data/doc/TaskJuggler/Task.html +55 -36
  167. data/doc/TaskJuggler/TaskDependency.html +24 -4
  168. data/doc/TaskJuggler/TaskListAttribute.html +50 -30
  169. data/doc/TaskJuggler/TaskListRE.html +27 -7
  170. data/doc/TaskJuggler/TaskScenario.html +1273 -1153
  171. data/doc/TaskJuggler/TextFormatter.html +28 -8
  172. data/doc/TaskJuggler/TextParser.html +585 -338
  173. data/doc/TaskJuggler/TextParser/Pattern.html +54 -34
  174. data/doc/TaskJuggler/TextParser/Rule.html +95 -73
  175. data/doc/TaskJuggler/TextParser/StackElement.html +39 -17
  176. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +24 -4
  177. data/doc/TaskJuggler/TextParser/TokenDoc.html +22 -2
  178. data/doc/TaskJuggler/TextReport.html +28 -8
  179. data/doc/TaskJuggler/TextScanner.html +400 -1404
  180. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +28 -240
  181. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +37 -184
  182. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +682 -0
  183. data/doc/TaskJuggler/TextScanner/StreamHandle.html +342 -67
  184. data/doc/TaskJuggler/TimeSheet.html +48 -28
  185. data/doc/TaskJuggler/TimeSheetReceiver.html +24 -3
  186. data/doc/TaskJuggler/TimeSheetRecord.html +47 -27
  187. data/doc/TaskJuggler/TimeSheetReport.html +154 -133
  188. data/doc/TaskJuggler/TimeSheetSender.html +24 -3
  189. data/doc/TaskJuggler/TimeSheetSummary.html +137 -91
  190. data/doc/TaskJuggler/TimeSheets.html +26 -6
  191. data/doc/TaskJuggler/Tj3AppBase.html +85 -58
  192. data/doc/TaskJuggler/Tj3Client.html +292 -238
  193. data/doc/TaskJuggler/Tj3Daemon.html +159 -74
  194. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -6
  195. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -6
  196. data/doc/TaskJuggler/Tj3SsSender.html +53 -26
  197. data/doc/TaskJuggler/Tj3TsReceiver.html +28 -7
  198. data/doc/TaskJuggler/Tj3TsSender.html +26 -6
  199. data/doc/TaskJuggler/Tj3TsSummary.html +26 -6
  200. data/doc/TaskJuggler/TjException.html +22 -2
  201. data/doc/TaskJuggler/TjTime.html +216 -160
  202. data/doc/TaskJuggler/TjpExample.html +34 -14
  203. data/doc/TaskJuggler/TjpExportRE.html +403 -407
  204. data/doc/TaskJuggler/TjpSyntaxRules.html +4805 -4408
  205. data/doc/TaskJuggler/URLParameter.html +649 -0
  206. data/doc/TaskJuggler/UserManual.html +42 -22
  207. data/doc/TaskJuggler/WebServer.html +702 -0
  208. data/doc/TaskJuggler/WorkingHours.html +38 -18
  209. data/doc/TaskJuggler/WorkingHoursAttribute.html +61 -41
  210. data/doc/TaskJuggler/XMLBlob.html +24 -4
  211. data/doc/TaskJuggler/XMLComment.html +24 -4
  212. data/doc/TaskJuggler/XMLDocument.html +30 -10
  213. data/doc/TaskJuggler/XMLElement.html +34 -14
  214. data/doc/TaskJuggler/XMLNamedText.html +22 -2
  215. data/doc/TaskJuggler/XMLText.html +24 -4
  216. data/doc/index.html +1841 -1666
  217. data/doc/lib/AccountScenario_rb.html +1 -1
  218. data/doc/lib/Account_rb.html +1 -1
  219. data/doc/lib/Allocation_rb.html +1 -1
  220. data/doc/lib/AppConfig_rb.html +2 -2
  221. data/doc/lib/AttributeBase_rb.html +1 -1
  222. data/doc/lib/AttributeDefinition_rb.html +1 -1
  223. data/doc/lib/Attributes_rb.html +2 -2
  224. data/doc/lib/BatchProcessor_rb.html +1 -1
  225. data/doc/lib/Booking_rb.html +1 -1
  226. data/doc/lib/ChargeSet_rb.html +1 -1
  227. data/doc/lib/Charge_rb.html +1 -1
  228. data/doc/lib/HTMLDocument_rb.html +1 -1
  229. data/doc/lib/Interval_rb.html +1 -1
  230. data/doc/lib/Journal_rb.html +2 -2
  231. data/doc/lib/KeywordArray_rb.html +1 -1
  232. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  233. data/doc/lib/Limits_rb.html +2 -2
  234. data/doc/lib/LogFile_rb.html +2 -2
  235. data/doc/lib/Log_rb.html +1 -1
  236. data/doc/lib/LogicalExpression_rb.html +1 -1
  237. data/doc/lib/LogicalFunction_rb.html +2 -2
  238. data/doc/lib/LogicalOperation_rb.html +2 -2
  239. data/doc/lib/MacroParser_rb.html +1 -1
  240. data/doc/lib/MacroTable_rb.html +1 -1
  241. data/doc/lib/MessageHandler_rb.html +1 -1
  242. data/doc/lib/Message_rb.html +1 -1
  243. data/doc/lib/ProjectFileParser_rb.html +4 -8
  244. data/doc/lib/ProjectFileScanner_rb.html +67 -0
  245. data/doc/lib/Project_rb.html +2 -2
  246. data/doc/lib/PropertyList_rb.html +2 -2
  247. data/doc/lib/PropertySet_rb.html +2 -2
  248. data/doc/lib/PropertyTreeNode_rb.html +2 -2
  249. data/doc/lib/Query_rb.html +2 -2
  250. data/doc/lib/RTFHandlers_rb.html +73 -0
  251. data/doc/lib/RTFNavigator_rb.html +1 -1
  252. data/doc/lib/RTFQuery_rb.html +1 -1
  253. data/doc/lib/RTFReportLink_rb.html +71 -0
  254. data/doc/lib/RTFReport_rb.html +2 -2
  255. data/doc/lib/RealFormat_rb.html +1 -1
  256. data/doc/lib/ResourceScenario_rb.html +2 -2
  257. data/doc/lib/Resource_rb.html +2 -2
  258. data/doc/lib/RichTextDocument_rb.html +1 -1
  259. data/doc/lib/RichTextElement_rb.html +2 -2
  260. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  261. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  262. data/doc/lib/RichTextParser_rb.html +2 -2
  263. data/doc/lib/RichTextScanner_rb.html +2 -2
  264. data/doc/lib/RichTextSnip_rb.html +1 -1
  265. data/doc/lib/RichTextSyntaxRules_rb.html +2 -2
  266. data/doc/lib/RichText_rb.html +1 -1
  267. data/doc/lib/RuntimeConfig_rb.html +1 -1
  268. data/doc/lib/ScenarioData_rb.html +2 -2
  269. data/doc/lib/Scenario_rb.html +1 -1
  270. data/doc/lib/Scoreboard_rb.html +1 -1
  271. data/doc/lib/SheetHandlerBase_rb.html +1 -1
  272. data/doc/lib/SheetReceiver_rb.html +2 -2
  273. data/doc/lib/SheetSender_rb.html +4 -2
  274. data/doc/lib/ShiftAssignments_rb.html +4 -2
  275. data/doc/lib/ShiftScenario_rb.html +1 -1
  276. data/doc/lib/Shift_rb.html +1 -1
  277. data/doc/lib/SourceFileInfo_rb.html +1 -1
  278. data/doc/lib/StatusSheetReceiver_rb.html +2 -2
  279. data/doc/lib/StatusSheetSender_rb.html +2 -2
  280. data/doc/lib/SyntaxReference_rb.html +1 -1
  281. data/doc/lib/TOCEntry_rb.html +1 -1
  282. data/doc/lib/TableColumnDefinition_rb.html +2 -2
  283. data/doc/lib/TableOfContents_rb.html +1 -1
  284. data/doc/lib/TaskDependency_rb.html +1 -1
  285. data/doc/lib/TaskJuggler_rb.html +2 -2
  286. data/doc/lib/TaskScenario_rb.html +2 -2
  287. data/doc/lib/Task_rb.html +2 -2
  288. data/doc/lib/TextFormatter_rb.html +1 -1
  289. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  290. data/doc/lib/TextParser/Rule_rb.html +2 -2
  291. data/doc/lib/TextParser/StackElement_rb.html +2 -2
  292. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  293. data/doc/lib/TextParser_rb.html +2 -2
  294. data/doc/lib/TextScanner_rb.html +6 -2
  295. data/doc/lib/TimeSheetReceiver_rb.html +2 -2
  296. data/doc/lib/TimeSheetSender_rb.html +2 -2
  297. data/doc/lib/TimeSheetSummary_rb.html +2 -2
  298. data/doc/lib/TimeSheets_rb.html +2 -2
  299. data/doc/lib/Tj3AppBase_rb.html +2 -2
  300. data/doc/lib/Tj3Config_rb.html +2 -2
  301. data/doc/lib/Tj3SheetAppBase_rb.html +2 -2
  302. data/doc/lib/TjException_rb.html +1 -1
  303. data/doc/lib/TjTime_rb.html +2 -2
  304. data/doc/lib/TjpExample_rb.html +1 -1
  305. data/doc/lib/TjpSyntaxRules_rb.html +2 -2
  306. data/doc/lib/URLParameter_rb.html +67 -0
  307. data/doc/lib/UTF8String_rb.html +1 -1
  308. data/doc/lib/UserManual_rb.html +1 -1
  309. data/doc/lib/WorkingHours_rb.html +1 -1
  310. data/doc/lib/XMLDocument_rb.html +2 -2
  311. data/doc/lib/XMLElement_rb.html +1 -1
  312. data/doc/lib/daemon/Daemon_rb.html +1 -1
  313. data/doc/lib/daemon/ProcessIntercom_rb.html +2 -2
  314. data/doc/lib/daemon/ProjectBroker_rb.html +4 -2
  315. data/doc/lib/daemon/ProjectServer_rb.html +2 -2
  316. data/doc/lib/daemon/ReportServer_rb.html +2 -2
  317. data/doc/lib/daemon/WebServer_rb.html +75 -0
  318. data/doc/lib/deep_copy_rb.html +2 -2
  319. data/doc/lib/reports/CSVFile_rb.html +2 -2
  320. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  321. data/doc/lib/reports/GanttChart_rb.html +2 -2
  322. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  323. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  324. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  325. data/doc/lib/reports/GanttLine_rb.html +1 -1
  326. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  327. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  328. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  329. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  330. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  331. data/doc/lib/reports/Navigator_rb.html +2 -2
  332. data/doc/lib/reports/NikuReport_rb.html +2 -2
  333. data/doc/lib/reports/ReportBase_rb.html +2 -2
  334. data/doc/lib/reports/ReportContext_rb.html +2 -2
  335. data/doc/lib/reports/ReportTableCell_rb.html +2 -2
  336. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  337. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  338. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  339. data/doc/lib/reports/ReportTable_rb.html +2 -2
  340. data/doc/lib/reports/Report_rb.html +2 -2
  341. data/doc/lib/reports/ResourceListRE_rb.html +2 -2
  342. data/doc/lib/reports/StatusSheetReport_rb.html +2 -2
  343. data/doc/lib/reports/TableReport_rb.html +2 -2
  344. data/doc/lib/reports/TaskListRE_rb.html +2 -2
  345. data/doc/lib/reports/TextReport_rb.html +1 -1
  346. data/doc/lib/reports/TimeSheetReport_rb.html +2 -2
  347. data/doc/lib/reports/TjpExportRE_rb.html +2 -2
  348. data/doc/lib/ruby-signal-bug_rb.html +1 -1
  349. data/doc/lib/taskjuggler3_rb.html +2 -2
  350. data/doc/lib/tj3client_rb.html +2 -2
  351. data/doc/lib/tj3d_rb.html +2 -2
  352. data/doc/lib/tj3man_rb.html +1 -1
  353. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  354. data/doc/lib/tj3ss_sender_rb.html +2 -2
  355. data/doc/lib/tj3ts_receiver_rb.html +2 -2
  356. data/doc/lib/tj3ts_sender_rb.html +1 -1
  357. data/doc/lib/tj3ts_summary_rb.html +1 -1
  358. data/doc/rdoc.css +9 -4
  359. data/examples/tutorial.tjp +17 -15
  360. data/gem_spec.rb +3 -0
  361. data/lib/AppConfig.rb +3 -1
  362. data/lib/Attributes.rb +10 -8
  363. data/lib/Journal.rb +55 -20
  364. data/lib/Limits.rb +72 -46
  365. data/lib/LogFile.rb +3 -3
  366. data/lib/LogicalFunction.rb +19 -6
  367. data/lib/LogicalOperation.rb +5 -1
  368. data/lib/Project.rb +37 -9
  369. data/lib/ProjectFileParser.rb +25 -22
  370. data/lib/ProjectFileScanner.rb +365 -0
  371. data/lib/PropertyList.rb +2 -1
  372. data/lib/PropertySet.rb +14 -4
  373. data/lib/PropertyTreeNode.rb +42 -29
  374. data/lib/Query.rb +3 -1
  375. data/lib/RTFHandlers.rb +35 -0
  376. data/lib/RTFReport.rb +23 -6
  377. data/lib/RTFReportLink.rb +72 -0
  378. data/lib/Resource.rb +8 -16
  379. data/lib/ResourceScenario.rb +1 -22
  380. data/lib/RichTextElement.rb +42 -0
  381. data/lib/RichTextParser.rb +6 -4
  382. data/lib/RichTextScanner.rb +5 -5
  383. data/lib/RichTextSyntaxRules.rb +48 -10
  384. data/lib/ScenarioData.rb +5 -3
  385. data/lib/SheetReceiver.rb +24 -6
  386. data/lib/SheetSender.rb +17 -13
  387. data/lib/ShiftAssignments.rb +56 -52
  388. data/lib/StatusSheetReceiver.rb +1 -0
  389. data/lib/StatusSheetSender.rb +1 -0
  390. data/lib/TableColumnDefinition.rb +4 -2
  391. data/lib/Task.rb +8 -9
  392. data/lib/TaskJuggler.rb +21 -11
  393. data/lib/TaskScenario.rb +61 -26
  394. data/lib/TextParser.rb +268 -106
  395. data/lib/TextParser/Rule.rb +4 -2
  396. data/lib/TextParser/StackElement.rb +6 -4
  397. data/lib/TextScanner.rb +283 -700
  398. data/lib/TimeSheetReceiver.rb +1 -0
  399. data/lib/TimeSheetSender.rb +1 -0
  400. data/lib/TimeSheetSummary.rb +51 -26
  401. data/lib/TimeSheets.rb +1 -1
  402. data/lib/Tj3AppBase.rb +8 -1
  403. data/lib/Tj3Config.rb +1 -1
  404. data/lib/TjTime.rb +5 -0
  405. data/lib/TjpSyntaxRules.rb +360 -144
  406. data/lib/URLParameter.rb +30 -0
  407. data/lib/XMLDocument.rb +2 -2
  408. data/lib/daemon/ProcessIntercom.rb +50 -9
  409. data/lib/daemon/ProjectBroker.rb +63 -10
  410. data/lib/daemon/ProjectServer.rb +47 -16
  411. data/lib/daemon/ReportServer.rb +9 -4
  412. data/lib/daemon/WebServer.rb +204 -0
  413. data/lib/deep_copy.rb +4 -1
  414. data/lib/reports/CSVFile.rb +150 -66
  415. data/lib/reports/GanttChart.rb +2 -1
  416. data/lib/reports/Navigator.rb +18 -5
  417. data/lib/reports/NikuReport.rb +32 -2
  418. data/lib/reports/Report.rb +65 -37
  419. data/lib/reports/ReportBase.rb +14 -9
  420. data/lib/reports/ReportContext.rb +19 -4
  421. data/lib/reports/ReportTable.rb +2 -2
  422. data/lib/reports/ReportTableCell.rb +54 -30
  423. data/lib/reports/ResourceListRE.rb +4 -3
  424. data/lib/reports/StatusSheetReport.rb +8 -13
  425. data/lib/reports/TableReport.rb +47 -32
  426. data/lib/reports/TaskListRE.rb +3 -3
  427. data/lib/reports/TimeSheetReport.rb +14 -5
  428. data/lib/reports/TjpExportRE.rb +14 -19
  429. data/lib/taskjuggler3.rb +15 -0
  430. data/lib/tj3client.rb +9 -7
  431. data/lib/tj3d.rb +38 -10
  432. data/lib/tj3ss_sender.rb +7 -0
  433. data/lib/tj3ts_receiver.rb +1 -0
  434. data/manual/Day_To_Day_Juggling +1 -1
  435. data/manual/Rich_Text_Attributes +8 -0
  436. data/manual/TaskJuggler_2x_Migration +7 -0
  437. data/manual/The_TaskJuggler_Syntax +20 -6
  438. data/prj_cfg.rb +3 -2
  439. data/tasks/changelog.rake +36 -0
  440. data/tasks/csts.rake +2 -3
  441. data/tasks/gem.rake +10 -0
  442. data/tasks/missing.rake +0 -17
  443. data/test/TestSuite/ReportGenerator/Correct/Journal.html +63 -0
  444. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +14 -0
  445. data/test/TestSuite/{HTML-Reports/LogicalFunctions.tjp → ReportGenerator/Correct/LogicalFunctions1.tjp} +2 -2
  446. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +3 -0
  447. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.tjp +19 -0
  448. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +66 -0
  449. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +407 -0
  450. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  451. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  452. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  453. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  454. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  455. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  456. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  457. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  458. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  459. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  460. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  461. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +2 -0
  462. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
  463. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +6 -0
  464. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions1-1.csv +7 -0
  465. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions2-1.csv +2 -0
  466. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
  467. data/test/TestSuite/ReportGenerator/Correct/scripts/wz_tooltip.js +1301 -0
  468. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +20 -0
  469. data/test/TestSuite/Scheduler/Correct/Container.html +349 -0
  470. data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -4
  471. data/test/TestSuite/Scheduler/Correct/Shift2.html +464 -150
  472. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +108 -0
  473. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +7 -0
  474. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +14 -0
  475. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +233 -21
  476. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +20 -20
  477. data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
  478. data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
  479. data/test/TestSuite/StatusSheets/run +3 -2
  480. data/test/TestSuite/Syntax/Correct/Include.tjp +1 -1
  481. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +1 -1
  482. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +6 -0
  483. data/test/TestSuite/Syntax/Correct/Macro-3.tjp +14 -0
  484. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +32 -0
  485. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +66 -0
  486. data/test/TestSuite/Syntax/Correct/css/tjreport.css +407 -0
  487. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  488. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  489. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  490. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  491. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  492. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  493. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  494. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  495. data/test/TestSuite/Syntax/Correct/icons/trend-down.png +0 -0
  496. data/test/TestSuite/Syntax/Correct/icons/trend-flat.png +0 -0
  497. data/test/TestSuite/Syntax/Correct/icons/trend-up.png +0 -0
  498. data/test/TestSuite/Syntax/Correct/include/dir1/file2.tji +3 -0
  499. data/test/TestSuite/Syntax/Correct/include/dir1/file5.tji +2 -0
  500. data/test/TestSuite/Syntax/Correct/include/dir3/all.tji +3 -0
  501. data/test/TestSuite/Syntax/Correct/include/dir3/file1.tji +2 -0
  502. data/test/TestSuite/Syntax/Correct/include/dir3/file2.tji +1 -0
  503. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  504. data/test/TestSuite/Syntax/Correct/tutorial.tjp +13 -13
  505. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  506. data/test/TestSuite/Syntax/Errors/include_recursion.tjp +1 -0
  507. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +2 -1
  508. data/test/TestSuite/Syntax/Errors/{eof_in_istring1.tjp → no_token_match1.tjp} +2 -2
  509. data/test/TestSuite/Syntax/Errors/{eof_in_istring2.tjp → no_token_match2.tjp} +2 -2
  510. data/test/TestSuite/Syntax/Errors/{eof_in_istring3.tjp → no_token_match3.tjp} +1 -1
  511. data/test/TestSuite/Syntax/Errors/{eof_in_istring4.tjp → no_token_match4.tjp} +1 -1
  512. data/test/TestSuite/Syntax/Errors/{eof_in_istring5.tjp → no_token_match5.tjp} +1 -1
  513. data/test/TestSuite/Syntax/Errors/not_scheduled.tjp +13 -0
  514. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
  515. data/test/TestSuite/TimeSheets/run +5 -5
  516. data/test/test_CSVFile.rb +75 -0
  517. data/test/test_Limits.rb +63 -5
  518. data/test/test_ProjectFileScanner.rb +163 -0
  519. data/test/test_ReportGenerator.rb +81 -0
  520. data/test/test_RichText.rb +21 -3
  521. data/test/test_Scheduler.rb +1 -1
  522. data/test/test_ShiftAssignments.rb +4 -4
  523. data/test/test_Syntax.rb +1 -1
  524. data/test/test_URLParameter.rb +30 -0
  525. metadata +126 -32
  526. data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +0 -8
  527. data/test/TestSuite/Syntax/Errors/bad_comment.tjp +0 -7
  528. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/boss_2002-03-01.tji +0 -36
  529. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev1_2002-03-01.tji +0 -48
  530. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev2_2002-03-01.tji +0 -67
  531. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev3_2002-03-01.tji +0 -67
  532. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/doc_2002-03-01.tji +0 -48
  533. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/resources.yml +0 -31
  534. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/test_2002-03-01.tji +0 -36
  535. data/test/TestSuite/TimeSheets/TimeSheetTemplates/acceptable_intervals +0 -1
  536. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/all.tji +0 -1
  537. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/dev2_2002-03-01.tji +0 -54
  538. data/test/TestSuite/TimeSheets/TimeSheets/all.tji +0 -2
  539. data/test/TestSuite/TimeSheets/receiver.log +0 -102
  540. data/test/TestSuite/TimeSheets/sender.log +0 -794
  541. data/test/TestSuite/TimeSheets/summary.log +0 -884
  542. data/test/TestSuite/TimeSheets/timesheets.log +0 -45
  543. data/test/TestSuite/TimeSheets/tj3d.log +0 -292
  544. data/test/test_TextScanner.rb +0 -95
@@ -69,13 +69,13 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#M000549">::new</a></li>
72
+ <li><a href="#method-c-new">::new</a></li>
73
73
 
74
- <li><a href="#M000552">#getResourceJournal</a></li>
74
+ <li><a href="#method-i-getResourceJournal">#getResourceJournal</a></li>
75
75
 
76
- <li><a href="#M000551">#sendReminder</a></li>
76
+ <li><a href="#method-i-sendReminder">#sendReminder</a></li>
77
77
 
78
- <li><a href="#M000550">#sendSummary</a></li>
78
+ <li><a href="#method-i-sendSummary">#sendSummary</a></li>
79
79
 
80
80
  </ul>
81
81
  </div>
@@ -92,6 +92,8 @@
92
92
  <h3 class="section-header">Files</h3>
93
93
  <ul>
94
94
 
95
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
96
+
95
97
  <li class="file"><a href="../COPYING.html">COPYING</a></li>
96
98
 
97
99
  <li class="file"><a href="../README.html">README</a></li>
@@ -261,6 +263,8 @@
261
263
 
262
264
  <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
263
265
 
266
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
267
+
264
268
  <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
265
269
 
266
270
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
@@ -275,6 +279,8 @@
275
279
 
276
280
  <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
277
281
 
282
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
283
+
278
284
  <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
279
285
 
280
286
  <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
@@ -291,12 +297,16 @@
291
297
 
292
298
  <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
293
299
 
300
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
301
+
294
302
  <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
295
303
 
296
304
  <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
297
305
 
298
306
  <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
299
307
 
308
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
309
+
300
310
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
301
311
 
302
312
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -315,6 +325,8 @@
315
325
 
316
326
  <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
317
327
 
328
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
329
+
318
330
  <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
319
331
 
320
332
  <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
@@ -443,6 +455,8 @@
443
455
 
444
456
  <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
445
457
 
458
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
459
+
446
460
  <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
447
461
 
448
462
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
@@ -487,8 +501,12 @@
487
501
 
488
502
  <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
489
503
 
504
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
505
+
490
506
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
491
507
 
508
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
509
+
492
510
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
493
511
 
494
512
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -515,6 +533,8 @@
515
533
 
516
534
  <li><a href="../String.html">String</a></li>
517
535
 
536
+ <li><a href="../StringIO.html">StringIO</a></li>
537
+
518
538
  </ul>
519
539
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
520
540
  </div>
@@ -607,7 +627,7 @@ project data is accessed via tj3client on a tj3 server process.
607
627
 
608
628
 
609
629
  <div id="new-method" class="method-detail ">
610
- <a name="M000549"></a>
630
+ <a name="method-c-new"></a>
611
631
 
612
632
  <div class="method-heading">
613
633
 
@@ -631,7 +651,7 @@ project data is accessed via tj3client on a tj3 server process.
631
651
  27: <span class="ruby-keyword kw">super</span>(<span class="ruby-value str">'tj3ts_summary'</span>, <span class="ruby-value str">'summary'</span>)
632
652
  28:
633
653
  29: <span class="ruby-comment cmt"># This is a LogicalExpression string that controls what resources should</span>
634
- 30: <span class="ruby-comment cmt"># not be getting a time sheet.</span>
654
+ 30: <span class="ruby-comment cmt"># not be considered in the summary.</span>
635
655
  31: <span class="ruby-ivar">@hideResource</span> = <span class="ruby-value str">'0'</span>
636
656
  32: <span class="ruby-comment cmt"># The base directory of the time sheet templates.</span>
637
657
  33: <span class="ruby-ivar">@templateDir</span> = <span class="ruby-value str">'TimeSheetTemplates'</span>
@@ -648,9 +668,11 @@ project data is accessed via tj3client on a tj3 server process.
648
668
  44: <span class="ruby-ivar">@resourceIntro</span> = <span class="ruby-value str">&quot; Weekly Report from %s\n\n&quot;</span>
649
669
  45: <span class="ruby-ivar">@resourceSheetSubject</span> = <span class="ruby-value str">&quot;Weekly report %s&quot;</span>
650
670
  46: <span class="ruby-ivar">@summarySubject</span> = <span class="ruby-value str">&quot;Weekly staff reports %s&quot;</span>
651
- 47: <span class="ruby-ivar">@reminderSubject</span> = <span class="ruby-value str">&quot;Your weekly report %s is overdue!&quot;</span>
652
- 48: <span class="ruby-ivar">@reminderText</span> = <span class="ruby-value str">The deadline for your report submission has passed but we haven'treceived it yet. Please submit your report immediately so the contentcan still be included in the management reports. Please send a copyof your submission noticiation email to your manager. If possible,your manager will still try to include your report data in his/herreport.Please be aware that post deadline submissions must be processedmanually and create an additional load for your manager and/orproject manager. Please try to submit in time in the future.Thanks for your cooperation!</span>
653
- 49: <span class="ruby-keyword kw">end</span></pre>
671
+ 47: <span class="ruby-ivar">@reminderSubject</span> = <span class="ruby-value str">&quot;Your time sheet for the period ending %s is overdue!&quot;</span>
672
+ 48: <span class="ruby-ivar">@reminderText</span> = <span class="ruby-value str">The deadline for your time sheet submission has passed but we haven't receivedit yet. Please submit your time sheet immediately so the content can still beincluded in the management reports. Please send a copy of your submissionnotification email to your manager. If possible, your manager will still tryto include your report data in his/her report.Please be aware that post deadline submissions must be processed manually andcreate an additional load for your manager and/or project manager. Please tryto submit in time in the future.Thanks for your cooperation!</span>
673
+ 49: <span class="ruby-ivar">@defaulterHeader</span> = <span class="ruby-value str">&quot;The following %d person(s) have not yet submitted &quot;</span> <span class="ruby-operator">+</span>
674
+ 50: <span class="ruby-value str">&quot;their time sheets:\n\n&quot;</span>
675
+ 51: <span class="ruby-keyword kw">end</span></pre>
654
676
  </div>
655
677
 
656
678
  </div>
@@ -668,7 +690,7 @@ project data is accessed via tj3client on a tj3 server process.
668
690
 
669
691
 
670
692
  <div id="send-ummary-method" class="method-detail ">
671
- <a name="M000550"></a>
693
+ <a name="method-i-sendSummary"></a>
672
694
 
673
695
  <div class="method-heading">
674
696
 
@@ -687,54 +709,78 @@ project data is accessed via tj3client on a tj3 server process.
687
709
  <div class="method-source-code"
688
710
  id="send-ummary-source">
689
711
  <pre>
690
- <span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line 65</span>
691
- 65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendSummary</span>(<span class="ruby-identifier">resourceIds</span>)
692
- 66: <span class="ruby-identifier">setWorkingDir</span>
693
- 67:
694
- 68: <span class="ruby-identifier">summary</span> = <span class="ruby-value str">''</span>
695
- 69: <span class="ruby-identifier">defaulterList</span> = []
696
- 70: <span class="ruby-identifier">getResourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
697
- 71: <span class="ruby-identifier">resourceId</span> = <span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>]
698
- 72: <span class="ruby-identifier">resourceName</span> = <span class="ruby-identifier">resource</span>[<span class="ruby-value">1</span>]
699
- 73: <span class="ruby-identifier">resourceEmail</span> = <span class="ruby-identifier">resource</span>[<span class="ruby-value">2</span>]
700
- 74: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">resourceIds</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">resourceIds</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">resourceId</span>)
701
- 75:
702
- 76: <span class="ruby-identifier">templateFile</span> = <span class="ruby-node">&quot;#{@templateDir}/#{@date}/#{resourceId}_#{@date}.tji&quot;</span>
703
- 77: <span class="ruby-identifier">sheetFile</span> = <span class="ruby-node">&quot;#{@sheetDir}/#{@date}/#{resourceId}_#{@date}.tji&quot;</span>
704
- 78: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">templateFile</span>)
705
- 79: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">sheetFile</span>)
706
- 80: <span class="ruby-comment cmt"># Resource has submitted a time sheet</span>
707
- 81: <span class="ruby-identifier">sheet</span> = <span class="ruby-identifier">getResourceJournal</span>(<span class="ruby-identifier">sheetFile</span>)
708
- 82: <span class="ruby-identifier">summary</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@resourceIntro</span>, <span class="ruby-identifier">resourceName</span>)
709
- 83: <span class="ruby-identifier">summary</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sheet</span>
710
- 84: <span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Adding report from #{resourceName} to summary&quot;</span>)
711
- 85:
712
- 86: <span class="ruby-ivar">@sheetRecipients</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">to</span><span class="ruby-operator">|</span>
713
- 87: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@resourceSheetSubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">sheet</span>,
714
- 88: <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">resourceEmail</span>)
715
- 89: <span class="ruby-keyword kw">end</span>
716
- 90: <span class="ruby-keyword kw">else</span>
717
- 91: <span class="ruby-identifier">defaulterList</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">resource</span>
718
- 92: <span class="ruby-comment cmt"># Resource did not submit a time sheet</span>
719
- 93: <span class="ruby-identifier">summary</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;\n Report from #{resourceName} is missing\n\n&quot;</span>
720
- 94: <span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Report from #{resourceId} is missing&quot;</span>)
721
- 95: <span class="ruby-keyword kw">end</span>
722
- 96: <span class="ruby-identifier">summary</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;\n#{'-' * 74}\n\n&quot;</span>
723
- 97: <span class="ruby-keyword kw">end</span>
724
- 98: <span class="ruby-keyword kw">end</span>
725
- 99:
726
- 100: <span class="ruby-comment cmt"># If there is a reminder text defined, resend the template to those</span>
727
- 101: <span class="ruby-comment cmt"># individuals that have not yet submitted their report yet.</span>
728
- 102: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@reminderText</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@reminderText</span>.<span class="ruby-identifier">empty?</span>
729
- 103: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
730
- 104: <span class="ruby-identifier">sendReminder</span>(<span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">resource</span>[<span class="ruby-value">1</span>], <span class="ruby-identifier">resource</span>[<span class="ruby-value">2</span>])
731
- 105: <span class="ruby-keyword kw">end</span>
732
- 106: <span class="ruby-keyword kw">end</span>
733
- 107:
734
- 108: <span class="ruby-ivar">@digestRecipients</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">to</span><span class="ruby-operator">|</span>
735
- 109: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@summarySubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">summary</span>)
736
- 110: <span class="ruby-keyword kw">end</span>
737
- 111: <span class="ruby-keyword kw">end</span></pre>
712
+ <span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line 66</span>
713
+ 66: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendSummary</span>(<span class="ruby-identifier">resourceIds</span>)
714
+ 67: <span class="ruby-identifier">setWorkingDir</span>
715
+ 68:
716
+ 69: <span class="ruby-identifier">summary</span> = <span class="ruby-value str">''</span>
717
+ 70: <span class="ruby-identifier">defaulterList</span> = []
718
+ 71: <span class="ruby-identifier">getResourceList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
719
+ 72: <span class="ruby-identifier">resourceId</span> = <span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>]
720
+ 73: <span class="ruby-identifier">resourceName</span> = <span class="ruby-identifier">resource</span>[<span class="ruby-value">1</span>]
721
+ 74: <span class="ruby-identifier">resourceEmail</span> = <span class="ruby-identifier">resource</span>[<span class="ruby-value">2</span>]
722
+ 75: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">resourceIds</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">resourceIds</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">resourceId</span>)
723
+ 76:
724
+ 77: <span class="ruby-identifier">templateFile</span> = <span class="ruby-node">&quot;#{@templateDir}/#{@date}/#{resourceId}_#{@date}.tji&quot;</span>
725
+ 78: <span class="ruby-identifier">sheetFile</span> = <span class="ruby-node">&quot;#{@sheetDir}/#{@date}/#{resourceId}_#{@date}.tji&quot;</span>
726
+ 79: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">templateFile</span>)
727
+ 80: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">sheetFile</span>)
728
+ 81: <span class="ruby-comment cmt"># If there are no recipients specified, we don't need to compile</span>
729
+ 82: <span class="ruby-comment cmt"># the summary.</span>
730
+ 83: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@digestRecipients</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@sheetRecipients</span>.<span class="ruby-identifier">empty?</span>
731
+ 84: <span class="ruby-comment cmt"># Resource has submitted a time sheet</span>
732
+ 85: <span class="ruby-identifier">sheet</span> = <span class="ruby-identifier">getResourceJournal</span>(<span class="ruby-identifier">sheetFile</span>)
733
+ 86: <span class="ruby-identifier">summary</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@resourceIntro</span>, <span class="ruby-identifier">resourceName</span>)
734
+ 87: <span class="ruby-identifier">summary</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sheet</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;\n#{'-' * 74}\n\n&quot;</span>
735
+ 88: <span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Adding report from #{resourceName} to summary&quot;</span>)
736
+ 89:
737
+ 90: <span class="ruby-ivar">@sheetRecipients</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">to</span><span class="ruby-operator">|</span>
738
+ 91: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@resourceSheetSubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">sheet</span>,
739
+ 92: <span class="ruby-keyword kw">nil</span>, <span class="ruby-node">&quot;#{resourceName} &lt;#{resourceEmail}&gt;&quot;</span>)
740
+ 93: <span class="ruby-keyword kw">end</span>
741
+ 94: <span class="ruby-keyword kw">end</span>
742
+ 95: <span class="ruby-keyword kw">else</span>
743
+ 96: <span class="ruby-identifier">defaulterList</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">resource</span>
744
+ 97: <span class="ruby-comment cmt"># Resource did not submit a time sheet</span>
745
+ 98: <span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Report from #{resourceId} is missing&quot;</span>)
746
+ 99: <span class="ruby-keyword kw">end</span>
747
+ 100: <span class="ruby-keyword kw">end</span>
748
+ 101: <span class="ruby-keyword kw">end</span>
749
+ 102:
750
+ 103: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">empty?</span>
751
+ 104: <span class="ruby-comment cmt"># Prepend the defaulter list to the summary.</span>
752
+ 105: <span class="ruby-identifier">text</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@defaulterHeader</span>, <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">length</span>)
753
+ 106: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
754
+ 107: <span class="ruby-identifier">text</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot; * #{resource[1]}\n&quot;</span>
755
+ 108: <span class="ruby-keyword kw">end</span>
756
+ 109: <span class="ruby-identifier">text</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;\n#{'-' * 74}\n\n&quot;</span>
757
+ 110: <span class="ruby-identifier">summary</span> = <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">summary</span>
758
+ 111:
759
+ 112: <span class="ruby-comment cmt"># Create a file with the IDs of the resources who's reports are</span>
760
+ 113: <span class="ruby-comment cmt"># missing.</span>
761
+ 114: <span class="ruby-identifier">missingFile</span> = <span class="ruby-node">&quot;#{@sheetDir}/#{@date}/missing-reports&quot;</span>
762
+ 115: <span class="ruby-keyword kw">begin</span>
763
+ 116: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">missingFile</span>, <span class="ruby-value str">'w'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
764
+ 117: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>] }
765
+ 118: <span class="ruby-keyword kw">end</span>
766
+ 119: <span class="ruby-keyword kw">rescue</span>
767
+ 120: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Cannot write file with missing reports (#missingFile): #{$!}&quot;</span>)
768
+ 121: <span class="ruby-keyword kw">end</span>
769
+ 122: <span class="ruby-keyword kw">end</span>
770
+ 123:
771
+ 124: <span class="ruby-comment cmt"># Send out the summary text to the list of digest recipients.</span>
772
+ 125: <span class="ruby-ivar">@digestRecipients</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">to</span><span class="ruby-operator">|</span>
773
+ 126: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@summarySubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">summary</span>)
774
+ 127: <span class="ruby-keyword kw">end</span>
775
+ 128:
776
+ 129: <span class="ruby-comment cmt"># If there is a reminder text defined, resend the template to those</span>
777
+ 130: <span class="ruby-comment cmt"># individuals that have not yet submitted their report yet.</span>
778
+ 131: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@reminderText</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@reminderText</span>.<span class="ruby-identifier">empty?</span>
779
+ 132: <span class="ruby-identifier">defaulterList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
780
+ 133: <span class="ruby-identifier">sendReminder</span>(<span class="ruby-identifier">resource</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">resource</span>[<span class="ruby-value">1</span>], <span class="ruby-identifier">resource</span>[<span class="ruby-value">2</span>])
781
+ 134: <span class="ruby-keyword kw">end</span>
782
+ 135: <span class="ruby-keyword kw">end</span>
783
+ 136: <span class="ruby-keyword kw">end</span></pre>
738
784
  </div>
739
785
 
740
786
  </div>
@@ -752,7 +798,7 @@ project data is accessed via tj3client on a tj3 server process.
752
798
 
753
799
 
754
800
  <div id="get-esource-ournal-method" class="method-detail ">
755
- <a name="M000552"></a>
801
+ <a name="method-i-getResourceJournal"></a>
756
802
 
757
803
  <div class="method-heading">
758
804
 
@@ -771,25 +817,25 @@ project data is accessed via tj3client on a tj3 server process.
771
817
  <div class="method-source-code"
772
818
  id="get-esource-ournal-source">
773
819
  <pre>
774
- <span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line 127</span>
775
- 127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getResourceJournal</span>(<span class="ruby-identifier">sheetFile</span>)
776
- 128: <span class="ruby-identifier">err</span> = <span class="ruby-value str">''</span>
777
- 129: <span class="ruby-identifier">status</span> = <span class="ruby-keyword kw">nil</span>
778
- 130: <span class="ruby-identifier">report</span> = <span class="ruby-keyword kw">nil</span>
779
- 131: <span class="ruby-identifier">warnings</span> = <span class="ruby-keyword kw">nil</span>
780
- 132: <span class="ruby-keyword kw">begin</span>
781
- 133: <span class="ruby-comment cmt"># Save a copy of the sheet for debugging purposes.</span>
782
- 134: <span class="ruby-identifier">command</span> = <span class="ruby-node">&quot;tj3client --silent check-ts #{@projectId} #{sheetFile}&quot;</span>
783
- 135: <span class="ruby-identifier">status</span> = <span class="ruby-constant">Open4</span>.<span class="ruby-identifier">popen4</span>(<span class="ruby-identifier">command</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pid</span>, <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span><span class="ruby-operator">|</span>
784
- 136: <span class="ruby-comment cmt"># Send the report to the tj3client process via stdin.</span>
785
- 137: <span class="ruby-identifier">report</span> = <span class="ruby-identifier">stdout</span>.<span class="ruby-identifier">read</span>
786
- 138: <span class="ruby-identifier">warnings</span> = <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">read</span>
787
- 139: <span class="ruby-keyword kw">end</span>
788
- 140: <span class="ruby-keyword kw">rescue</span>
789
- 141: <span class="ruby-identifier">fatal</span>(<span class="ruby-node">&quot;Cannot summarize sheet: #{$!}&quot;</span>)
790
- 142: <span class="ruby-keyword kw">end</span>
791
- 143: <span class="ruby-identifier">report</span>
792
- 144: <span class="ruby-keyword kw">end</span></pre>
820
+ <span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line 152</span>
821
+ 152: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getResourceJournal</span>(<span class="ruby-identifier">sheetFile</span>)
822
+ 153: <span class="ruby-identifier">err</span> = <span class="ruby-value str">''</span>
823
+ 154: <span class="ruby-identifier">status</span> = <span class="ruby-keyword kw">nil</span>
824
+ 155: <span class="ruby-identifier">report</span> = <span class="ruby-keyword kw">nil</span>
825
+ 156: <span class="ruby-identifier">warnings</span> = <span class="ruby-keyword kw">nil</span>
826
+ 157: <span class="ruby-keyword kw">begin</span>
827
+ 158: <span class="ruby-comment cmt"># Save a copy of the sheet for debugging purposes.</span>
828
+ 159: <span class="ruby-identifier">command</span> = <span class="ruby-node">&quot;tj3client --silent check-ts #{@projectId} #{sheetFile}&quot;</span>
829
+ 160: <span class="ruby-identifier">status</span> = <span class="ruby-constant">Open4</span>.<span class="ruby-identifier">popen4</span>(<span class="ruby-identifier">command</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pid</span>, <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span><span class="ruby-operator">|</span>
830
+ 161: <span class="ruby-comment cmt"># Send the report to the tj3client process via stdin.</span>
831
+ 162: <span class="ruby-identifier">report</span> = <span class="ruby-identifier">stdout</span>.<span class="ruby-identifier">read</span>
832
+ 163: <span class="ruby-identifier">warnings</span> = <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">read</span>
833
+ 164: <span class="ruby-keyword kw">end</span>
834
+ 165: <span class="ruby-keyword kw">rescue</span>
835
+ 166: <span class="ruby-identifier">fatal</span>(<span class="ruby-node">&quot;Cannot summarize sheet: #{$!}&quot;</span>)
836
+ 167: <span class="ruby-keyword kw">end</span>
837
+ 168: <span class="ruby-identifier">report</span>
838
+ 169: <span class="ruby-keyword kw">end</span></pre>
793
839
  </div>
794
840
 
795
841
  </div>
@@ -801,7 +847,7 @@ project data is accessed via tj3client on a tj3 server process.
801
847
 
802
848
 
803
849
  <div id="send-eminder-method" class="method-detail ">
804
- <a name="M000551"></a>
850
+ <a name="method-i-sendReminder"></a>
805
851
 
806
852
  <div class="method-heading">
807
853
 
@@ -820,18 +866,18 @@ project data is accessed via tj3client on a tj3 server process.
820
866
  <div class="method-source-code"
821
867
  id="send-eminder-source">
822
868
  <pre>
823
- <span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line 115</span>
824
- 115: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendReminder</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">email</span>)
825
- 116: <span class="ruby-identifier">attachment</span> = <span class="ruby-node">&quot;#{@templateDir}/#{@date}/#{id}_#{@date}.tji&quot;</span>
826
- 117: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">attachment</span>)
827
- 118: <span class="ruby-identifier">error</span>(<span class="ruby-value str">&quot;sendReportTemplates: &quot;</span> <span class="ruby-operator">+</span>
828
- 119: <span class="ruby-node">&quot;#{@sheetType} sheet #{attachment} for #{name} not found&quot;</span>)
829
- 120: <span class="ruby-keyword kw">end</span>
830
- 121:
831
- 122: <span class="ruby-identifier">message</span> = <span class="ruby-node">&quot;Hello #{name}!\n\n#{@reminderText}&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">attachment</span>)
832
- 123:
833
- 124: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">email</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@reminderSubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">message</span>, <span class="ruby-identifier">attachment</span>)
834
- 125: <span class="ruby-keyword kw">end</span></pre>
869
+ <span class="ruby-comment cmt"># File lib/TimeSheetSummary.rb, line 140</span>
870
+ 140: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendReminder</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">email</span>)
871
+ 141: <span class="ruby-identifier">attachment</span> = <span class="ruby-node">&quot;#{@templateDir}/#{@date}/#{id}_#{@date}.tji&quot;</span>
872
+ 142: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">attachment</span>)
873
+ 143: <span class="ruby-identifier">error</span>(<span class="ruby-value str">&quot;sendReportTemplates: &quot;</span> <span class="ruby-operator">+</span>
874
+ 144: <span class="ruby-node">&quot;#{@sheetType} sheet #{attachment} for #{name} not found&quot;</span>)
875
+ 145: <span class="ruby-keyword kw">end</span>
876
+ 146:
877
+ 147: <span class="ruby-identifier">message</span> = <span class="ruby-node">&quot;Hello #{name}!\n\n#{@reminderText}&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">attachment</span>)
878
+ 148:
879
+ 149: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">email</span>, <span class="ruby-identifier">sprintf</span>(<span class="ruby-ivar">@reminderSubject</span>, <span class="ruby-ivar">@date</span>), <span class="ruby-identifier">message</span>, <span class="ruby-identifier">attachment</span>)
880
+ 150: <span class="ruby-keyword kw">end</span></pre>
835
881
  </div>
836
882
 
837
883
  </div>
@@ -69,11 +69,11 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#M001077">::new</a></li>
72
+ <li><a href="#method-c-new">::new</a></li>
73
73
 
74
- <li><a href="#M001078">#check</a></li>
74
+ <li><a href="#method-i-check">#check</a></li>
75
75
 
76
- <li><a href="#M001079">#warnOnDelta</a></li>
76
+ <li><a href="#method-i-warnOnDelta">#warnOnDelta</a></li>
77
77
 
78
78
  </ul>
79
79
  </div>
@@ -90,6 +90,8 @@
90
90
  <h3 class="section-header">Files</h3>
91
91
  <ul>
92
92
 
93
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
94
+
93
95
  <li class="file"><a href="../COPYING.html">COPYING</a></li>
94
96
 
95
97
  <li class="file"><a href="../README.html">README</a></li>
@@ -259,6 +261,8 @@
259
261
 
260
262
  <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
261
263
 
264
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
265
+
262
266
  <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
263
267
 
264
268
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
@@ -273,6 +277,8 @@
273
277
 
274
278
  <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
275
279
 
280
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
281
+
276
282
  <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
277
283
 
278
284
  <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
@@ -289,12 +295,16 @@
289
295
 
290
296
  <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
291
297
 
298
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
299
+
292
300
  <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
293
301
 
294
302
  <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
295
303
 
296
304
  <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
297
305
 
306
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
307
+
298
308
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
299
309
 
300
310
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -313,6 +323,8 @@
313
323
 
314
324
  <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
315
325
 
326
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
327
+
316
328
  <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
317
329
 
318
330
  <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
@@ -441,6 +453,8 @@
441
453
 
442
454
  <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
443
455
 
456
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
457
+
444
458
  <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
445
459
 
446
460
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
@@ -485,8 +499,12 @@
485
499
 
486
500
  <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
487
501
 
502
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
503
+
488
504
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
489
505
 
506
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
507
+
490
508
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
491
509
 
492
510
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -513,6 +531,8 @@
513
531
 
514
532
  <li><a href="../String.html">String</a></li>
515
533
 
534
+ <li><a href="../StringIO.html">StringIO</a></li>
535
+
516
536
  </ul>
517
537
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
518
538
  </div>
@@ -544,7 +564,7 @@ A class to hold all time sheets of a project.
544
564
 
545
565
 
546
566
  <div id="new-method" class="method-detail ">
547
- <a name="M001077"></a>
567
+ <a name="method-c-new"></a>
548
568
 
549
569
  <div class="method-heading">
550
570
 
@@ -584,7 +604,7 @@ A class to hold all time sheets of a project.
584
604
 
585
605
 
586
606
  <div id="check-method" class="method-detail ">
587
- <a name="M001078"></a>
607
+ <a name="method-i-check"></a>
588
608
 
589
609
  <div class="method-heading">
590
610
 
@@ -618,7 +638,7 @@ A class to hold all time sheets of a project.
618
638
 
619
639
 
620
640
  <div id="warn-n-elta-method" class="method-detail ">
621
- <a name="M001079"></a>
641
+ <a name="method-i-warnOnDelta"></a>
622
642
 
623
643
  <div class="method-heading">
624
644