taskjuggler 0.0.8 → 0.0.9

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 (613) hide show
  1. data/CHANGELOG +1144 -2047
  2. data/README +1 -1
  3. data/Rakefile +6 -6
  4. data/data/css/tjmanual.css +20 -0
  5. data/data/css/tjreport.css +7 -6
  6. data/doc/AppConfig.html +136 -130
  7. data/doc/Arguments.html +46 -40
  8. data/doc/CHANGELOG.html +1162 -2057
  9. data/doc/COPYING.html +8 -2
  10. data/doc/Object.html +205 -199
  11. data/doc/README.html +9 -3
  12. data/doc/RuntimeConfig.html +75 -69
  13. data/doc/String.html +69 -63
  14. data/doc/TaskJuggler.html +350 -291
  15. data/doc/TaskJuggler/Account.html +26 -20
  16. data/doc/TaskJuggler/AccountAttribute.html +24 -18
  17. data/doc/TaskJuggler/AccountScenario.html +24 -18
  18. data/doc/TaskJuggler/Allocation.html +74 -68
  19. data/doc/TaskJuggler/AllocationAttribute.html +54 -48
  20. data/doc/TaskJuggler/AttributeBase.html +172 -93
  21. data/doc/TaskJuggler/AttributeDefinition.html +22 -16
  22. data/doc/TaskJuggler/AttributeOverwrite.html +586 -0
  23. data/doc/TaskJuggler/BatchProcessor.html +263 -257
  24. data/doc/TaskJuggler/Booking.html +44 -38
  25. data/doc/TaskJuggler/BookingListAttribute.html +25 -21
  26. data/doc/TaskJuggler/BooleanAttribute.html +24 -18
  27. data/doc/TaskJuggler/CSVFile.html +193 -187
  28. data/doc/TaskJuggler/CellSettingPattern.html +13 -7
  29. data/doc/TaskJuggler/CellSettingPatternList.html +25 -19
  30. data/doc/TaskJuggler/Charge.html +49 -43
  31. data/doc/TaskJuggler/ChargeListAttribute.html +21 -15
  32. data/doc/TaskJuggler/ChargeSet.html +94 -88
  33. data/doc/TaskJuggler/ChargeSetListAttribute.html +29 -25
  34. data/doc/TaskJuggler/CollisionDetector.html +142 -136
  35. data/doc/TaskJuggler/ColumnListAttribute.html +21 -17
  36. data/doc/TaskJuggler/ColumnTable.html +50 -44
  37. data/doc/TaskJuggler/Daemon.html +71 -50
  38. data/doc/TaskJuggler/DataCache.html +110 -58
  39. data/doc/TaskJuggler/DataCacheEntry.html +22 -16
  40. data/doc/TaskJuggler/DateAttribute.html +24 -18
  41. data/doc/TaskJuggler/DefinitionListAttribute.html +12 -6
  42. data/doc/TaskJuggler/DependencyListAttribute.html +29 -25
  43. data/doc/TaskJuggler/DurationAttribute.html +25 -19
  44. data/doc/TaskJuggler/FileList.html +25 -19
  45. data/doc/TaskJuggler/FileRecord.html +17 -11
  46. data/doc/TaskJuggler/FixnumAttribute.html +16 -10
  47. data/doc/TaskJuggler/FlagListAttribute.html +25 -21
  48. data/doc/TaskJuggler/FloatAttribute.html +20 -14
  49. data/doc/TaskJuggler/FormatListAttribute.html +17 -11
  50. data/doc/TaskJuggler/GanttChart.html +242 -236
  51. data/doc/TaskJuggler/GanttContainer.html +71 -67
  52. data/doc/TaskJuggler/GanttHeader.html +113 -107
  53. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -20
  54. data/doc/TaskJuggler/GanttLine.html +217 -210
  55. data/doc/TaskJuggler/GanttLoadStack.html +89 -83
  56. data/doc/TaskJuggler/GanttMilestone.html +11 -6
  57. data/doc/TaskJuggler/GanttRouter.html +194 -186
  58. data/doc/TaskJuggler/GanttTaskBar.html +41 -34
  59. data/doc/TaskJuggler/HTMLDocument.html +52 -46
  60. data/doc/TaskJuggler/HTMLGraphics.html +58 -52
  61. data/doc/TaskJuggler/Interval.html +90 -84
  62. data/doc/TaskJuggler/IntervalList.html +777 -0
  63. data/doc/TaskJuggler/IntervalListAttribute.html +29 -25
  64. data/doc/TaskJuggler/JobInfo.html +36 -30
  65. data/doc/TaskJuggler/Journal.html +188 -177
  66. data/doc/TaskJuggler/JournalEntry.html +36 -30
  67. data/doc/TaskJuggler/JournalEntryList.html +88 -82
  68. data/doc/TaskJuggler/KeywordArray.html +12 -6
  69. data/doc/TaskJuggler/KeywordDocumentation.html +512 -503
  70. data/doc/TaskJuggler/Limits.html +111 -105
  71. data/doc/TaskJuggler/Limits/Limit.html +71 -65
  72. data/doc/TaskJuggler/LimitsAttribute.html +21 -15
  73. data/doc/TaskJuggler/ListAttributeBase.html +16 -10
  74. data/doc/TaskJuggler/Log.html +111 -105
  75. data/doc/TaskJuggler/LogFile.html +54 -48
  76. data/doc/TaskJuggler/LogicalAttribute.html +35 -29
  77. data/doc/TaskJuggler/LogicalExpression.html +32 -26
  78. data/doc/TaskJuggler/LogicalExpressionAttribute.html +16 -10
  79. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +671 -0
  80. data/doc/TaskJuggler/LogicalFlag.html +24 -18
  81. data/doc/TaskJuggler/LogicalFunction.html +164 -158
  82. data/doc/TaskJuggler/LogicalOperation.html +138 -132
  83. data/doc/TaskJuggler/Macro.html +14 -8
  84. data/doc/TaskJuggler/MacroTable.html +42 -36
  85. data/doc/TaskJuggler/ManagerResponsibilities.html +19 -13
  86. data/doc/TaskJuggler/ManagerStatusRecord.html +23 -17
  87. data/doc/TaskJuggler/Message.html +56 -50
  88. data/doc/TaskJuggler/MessageHandler.html +73 -67
  89. data/doc/TaskJuggler/Navigator.html +92 -86
  90. data/doc/TaskJuggler/NavigatorElement.html +88 -82
  91. data/doc/TaskJuggler/NikuProject.html +15 -9
  92. data/doc/TaskJuggler/NikuReport.html +405 -370
  93. data/doc/TaskJuggler/NikuResource.html +13 -7
  94. data/doc/TaskJuggler/NodeListAttribute.html +13 -9
  95. data/doc/TaskJuggler/PlaceHolderCell.html +22 -16
  96. data/doc/TaskJuggler/ProcessIntercom.html +116 -110
  97. data/doc/TaskJuggler/ProcessIntercomIface.html +39 -33
  98. data/doc/TaskJuggler/Project.html +1064 -895
  99. data/doc/TaskJuggler/ProjectBroker.html +439 -366
  100. data/doc/TaskJuggler/ProjectBrokerIface.html +63 -53
  101. data/doc/TaskJuggler/ProjectFileParser.html +329 -319
  102. data/doc/TaskJuggler/ProjectFileScanner.html +351 -345
  103. data/doc/TaskJuggler/ProjectRecord.html +66 -60
  104. data/doc/TaskJuggler/ProjectServer.html +287 -280
  105. data/doc/TaskJuggler/ProjectServerIface.html +43 -37
  106. data/doc/TaskJuggler/PropertyAttribute.html +16 -10
  107. data/doc/TaskJuggler/PropertyList.html +205 -199
  108. data/doc/TaskJuggler/PropertySet.html +264 -296
  109. data/doc/TaskJuggler/PropertyTreeNode.html +455 -505
  110. data/doc/TaskJuggler/Query.html +309 -524
  111. data/doc/TaskJuggler/RTFHandlers.html +17 -11
  112. data/doc/TaskJuggler/RTFNavigator.html +33 -27
  113. data/doc/TaskJuggler/RTFQuery.html +135 -129
  114. data/doc/TaskJuggler/RTFReport.html +63 -57
  115. data/doc/TaskJuggler/RTFReportLink.html +55 -49
  116. data/doc/TaskJuggler/RTFWithQuerySupport.html +17 -11
  117. data/doc/TaskJuggler/RealFormat.html +64 -58
  118. data/doc/TaskJuggler/RealFormatAttribute.html +12 -6
  119. data/doc/TaskJuggler/ReferenceAttribute.html +35 -29
  120. data/doc/TaskJuggler/Report.html +294 -249
  121. data/doc/TaskJuggler/ReportBase.html +229 -223
  122. data/doc/TaskJuggler/ReportContext.html +52 -46
  123. data/doc/TaskJuggler/ReportServer.html +143 -137
  124. data/doc/TaskJuggler/ReportServerIface.html +51 -43
  125. data/doc/TaskJuggler/ReportServerRecord.html +36 -30
  126. data/doc/TaskJuggler/ReportServlet.html +167 -140
  127. data/doc/TaskJuggler/ReportTable.html +137 -131
  128. data/doc/TaskJuggler/ReportTableCell.html +332 -292
  129. data/doc/TaskJuggler/ReportTableColumn.html +46 -40
  130. data/doc/TaskJuggler/ReportTableLegend.html +43 -38
  131. data/doc/TaskJuggler/ReportTableLine.html +66 -60
  132. data/doc/TaskJuggler/Resource.html +166 -160
  133. data/doc/TaskJuggler/ResourceListAttribute.html +54 -32
  134. data/doc/TaskJuggler/ResourceListRE.html +47 -41
  135. data/doc/TaskJuggler/ResourceScenario.html +671 -644
  136. data/doc/TaskJuggler/RichText.html +51 -45
  137. data/doc/TaskJuggler/RichTextAttribute.html +28 -22
  138. data/doc/TaskJuggler/RichTextDocument.html +96 -90
  139. data/doc/TaskJuggler/RichTextElement.html +503 -497
  140. data/doc/TaskJuggler/RichTextFunctionExample.html +41 -35
  141. data/doc/TaskJuggler/RichTextFunctionHandler.html +19 -13
  142. data/doc/TaskJuggler/RichTextImage.html +14 -8
  143. data/doc/TaskJuggler/RichTextIntermediate.html +86 -80
  144. data/doc/TaskJuggler/RichTextParser.html +59 -53
  145. data/doc/TaskJuggler/RichTextScanner.html +184 -178
  146. data/doc/TaskJuggler/RichTextSnip.html +69 -63
  147. data/doc/TaskJuggler/RichTextSyntaxRules.html +416 -410
  148. data/doc/TaskJuggler/Scenario.html +13 -7
  149. data/doc/TaskJuggler/ScenarioData.html +40 -34
  150. data/doc/TaskJuggler/ScenarioListAttribute.html +21 -15
  151. data/doc/TaskJuggler/Scoreboard.html +129 -107
  152. data/doc/TaskJuggler/SheetHandlerBase.html +245 -239
  153. data/doc/TaskJuggler/SheetReceiver.html +333 -327
  154. data/doc/TaskJuggler/SheetSender.html +227 -221
  155. data/doc/TaskJuggler/Shift.html +26 -20
  156. data/doc/TaskJuggler/ShiftAssignment.html +45 -39
  157. data/doc/TaskJuggler/ShiftAssignments.html +178 -172
  158. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +21 -15
  159. data/doc/TaskJuggler/ShiftScenario.html +29 -23
  160. data/doc/TaskJuggler/SimpleQueryExpander.html +36 -30
  161. data/doc/TaskJuggler/SortListAttribute.html +17 -13
  162. data/doc/TaskJuggler/SourceFileInfo.html +19 -13
  163. data/doc/TaskJuggler/StatusSheetReceiver.html +31 -25
  164. data/doc/TaskJuggler/StatusSheetReport.html +166 -159
  165. data/doc/TaskJuggler/StatusSheetSender.html +80 -74
  166. data/doc/TaskJuggler/StringAttribute.html +20 -14
  167. data/doc/TaskJuggler/SymbolAttribute.html +16 -10
  168. data/doc/TaskJuggler/SyntaxReference.html +231 -225
  169. data/doc/TaskJuggler/TOCEntry.html +46 -40
  170. data/doc/TaskJuggler/TSResourceRecord.html +15 -9
  171. data/doc/TaskJuggler/TSTaskRecord.html +16 -10
  172. data/doc/TaskJuggler/TableColumnDefinition.html +84 -39
  173. data/doc/TaskJuggler/TableOfContents.html +28 -22
  174. data/doc/TaskJuggler/TableReport.html +906 -866
  175. data/doc/TaskJuggler/Task.html +99 -93
  176. data/doc/TaskJuggler/TaskDependency.html +24 -18
  177. data/doc/TaskJuggler/TaskListAttribute.html +29 -25
  178. data/doc/TaskJuggler/TaskListRE.html +46 -39
  179. data/doc/TaskJuggler/TaskScenario.html +2218 -1965
  180. data/doc/TaskJuggler/TextFormatter.html +154 -148
  181. data/doc/TaskJuggler/TextParser.html +362 -348
  182. data/doc/TaskJuggler/TextParser/Pattern.html +313 -307
  183. data/doc/TaskJuggler/TextParser/Rule.html +147 -141
  184. data/doc/TaskJuggler/TextParser/StackElement.html +58 -52
  185. data/doc/TaskJuggler/TextParser/State.html +88 -82
  186. data/doc/TaskJuggler/TextParser/StateTransition.html +42 -36
  187. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +20 -14
  188. data/doc/TaskJuggler/TextParser/TokenDoc.html +19 -13
  189. data/doc/TaskJuggler/TextReport.html +80 -74
  190. data/doc/TaskJuggler/TextScanner.html +284 -272
  191. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +14 -8
  192. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +21 -15
  193. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +15 -9
  194. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  195. data/doc/TaskJuggler/TimeSheet.html +123 -117
  196. data/doc/TaskJuggler/TimeSheetReceiver.html +28 -22
  197. data/doc/TaskJuggler/TimeSheetRecord.html +212 -206
  198. data/doc/TaskJuggler/TimeSheetReport.html +206 -199
  199. data/doc/TaskJuggler/TimeSheetSender.html +27 -21
  200. data/doc/TaskJuggler/TimeSheetSummary.html +140 -134
  201. data/doc/TaskJuggler/TimeSheets.html +20 -14
  202. data/doc/TaskJuggler/Tj3AppBase.html +100 -94
  203. data/doc/TaskJuggler/Tj3Client.html +407 -483
  204. data/doc/TaskJuggler/Tj3Daemon.html +116 -107
  205. data/doc/TaskJuggler/Tj3SheetAppBase.html +45 -39
  206. data/doc/TaskJuggler/Tj3SsReceiver.html +31 -25
  207. data/doc/TaskJuggler/Tj3SsSender.html +64 -58
  208. data/doc/TaskJuggler/Tj3TsReceiver.html +31 -25
  209. data/doc/TaskJuggler/Tj3TsSender.html +51 -45
  210. data/doc/TaskJuggler/Tj3TsSummary.html +59 -53
  211. data/doc/TaskJuggler/TjException.html +13 -7
  212. data/doc/TaskJuggler/TjTime.html +444 -438
  213. data/doc/TaskJuggler/TjpExample.html +84 -78
  214. data/doc/TaskJuggler/TjpExportRE.html +356 -349
  215. data/doc/TaskJuggler/TjpSyntaxRules.html +4279 -4151
  216. data/doc/TaskJuggler/URLParameter.html +16 -10
  217. data/doc/TaskJuggler/UserManual.html +185 -179
  218. data/doc/TaskJuggler/VimSyntax.html +144 -138
  219. data/doc/TaskJuggler/WebServer.html +46 -39
  220. data/doc/TaskJuggler/WelcomePage.html +769 -0
  221. data/doc/TaskJuggler/WorkingHours.html +185 -179
  222. data/doc/TaskJuggler/WorkingHoursAttribute.html +42 -36
  223. data/doc/TaskJuggler/XMLBlob.html +21 -15
  224. data/doc/TaskJuggler/XMLComment.html +17 -11
  225. data/doc/TaskJuggler/XMLDocument.html +33 -27
  226. data/doc/TaskJuggler/XMLElement.html +97 -91
  227. data/doc/TaskJuggler/XMLNamedText.html +13 -7
  228. data/doc/TaskJuggler/XMLText.html +32 -26
  229. data/doc/index.html +601 -563
  230. data/doc/lib/AccountScenario_rb.html +5 -3
  231. data/doc/lib/Account_rb.html +5 -3
  232. data/doc/lib/Allocation_rb.html +5 -3
  233. data/doc/lib/AppConfig_rb.html +5 -3
  234. data/doc/lib/AttributeBase_rb.html +5 -3
  235. data/doc/lib/AttributeDefinition_rb.html +5 -3
  236. data/doc/lib/Attributes_rb.html +5 -3
  237. data/doc/lib/BatchProcessor_rb.html +5 -3
  238. data/doc/lib/Booking_rb.html +5 -3
  239. data/doc/lib/ChargeSet_rb.html +5 -3
  240. data/doc/lib/Charge_rb.html +5 -3
  241. data/doc/lib/DataCache_rb.html +5 -3
  242. data/doc/lib/FileList_rb.html +5 -3
  243. data/doc/lib/HTMLDocument_rb.html +5 -3
  244. data/doc/lib/IntervalList_rb.html +69 -0
  245. data/doc/lib/Interval_rb.html +5 -3
  246. data/doc/lib/Journal_rb.html +5 -3
  247. data/doc/lib/KeywordArray_rb.html +5 -3
  248. data/doc/lib/KeywordDocumentation_rb.html +5 -3
  249. data/doc/lib/Limits_rb.html +5 -3
  250. data/doc/lib/LogFile_rb.html +5 -3
  251. data/doc/lib/Log_rb.html +5 -3
  252. data/doc/lib/LogicalExpression_rb.html +5 -3
  253. data/doc/lib/LogicalFunction_rb.html +5 -3
  254. data/doc/lib/LogicalOperation_rb.html +5 -3
  255. data/doc/lib/MacroTable_rb.html +5 -3
  256. data/doc/lib/MessageHandler_rb.html +5 -3
  257. data/doc/lib/ProjectFileParser_rb.html +5 -3
  258. data/doc/lib/ProjectFileScanner_rb.html +5 -3
  259. data/doc/lib/Project_rb.html +5 -3
  260. data/doc/lib/PropertyList_rb.html +5 -3
  261. data/doc/lib/PropertySet_rb.html +5 -3
  262. data/doc/lib/PropertyTreeNode_rb.html +5 -3
  263. data/doc/lib/Query_rb.html +5 -3
  264. data/doc/lib/RTFHandlers_rb.html +5 -3
  265. data/doc/lib/RTFNavigator_rb.html +5 -3
  266. data/doc/lib/RTFQuery_rb.html +5 -3
  267. data/doc/lib/RTFReportLink_rb.html +5 -3
  268. data/doc/lib/RTFReport_rb.html +5 -3
  269. data/doc/lib/RTFWithQuerySupport_rb.html +5 -3
  270. data/doc/lib/RealFormat_rb.html +5 -3
  271. data/doc/lib/ResourceScenario_rb.html +5 -3
  272. data/doc/lib/Resource_rb.html +5 -3
  273. data/doc/lib/RichTextDocument_rb.html +5 -3
  274. data/doc/lib/RichTextElement_rb.html +5 -3
  275. data/doc/lib/RichTextFunctionExample_rb.html +5 -3
  276. data/doc/lib/RichTextFunctionHandler_rb.html +5 -3
  277. data/doc/lib/RichTextParser_rb.html +5 -3
  278. data/doc/lib/RichTextScanner_rb.html +5 -3
  279. data/doc/lib/RichTextSnip_rb.html +5 -3
  280. data/doc/lib/RichTextSyntaxRules_rb.html +5 -3
  281. data/doc/lib/RichText_rb.html +5 -3
  282. data/doc/lib/RuntimeConfig_rb.html +5 -3
  283. data/doc/lib/ScenarioData_rb.html +5 -3
  284. data/doc/lib/Scenario_rb.html +5 -3
  285. data/doc/lib/Scoreboard_rb.html +7 -3
  286. data/doc/lib/SheetHandlerBase_rb.html +5 -3
  287. data/doc/lib/SheetReceiver_rb.html +5 -3
  288. data/doc/lib/SheetSender_rb.html +5 -3
  289. data/doc/lib/ShiftAssignments_rb.html +5 -3
  290. data/doc/lib/ShiftScenario_rb.html +5 -3
  291. data/doc/lib/Shift_rb.html +5 -3
  292. data/doc/lib/SimpleQueryExpander_rb.html +5 -3
  293. data/doc/lib/SourceFileInfo_rb.html +5 -3
  294. data/doc/lib/StatusSheetReceiver_rb.html +5 -3
  295. data/doc/lib/StatusSheetSender_rb.html +5 -3
  296. data/doc/lib/SyntaxReference_rb.html +5 -3
  297. data/doc/lib/TOCEntry_rb.html +5 -3
  298. data/doc/lib/TableColumnDefinition_rb.html +5 -3
  299. data/doc/lib/TableOfContents_rb.html +5 -3
  300. data/doc/lib/TaskDependency_rb.html +5 -3
  301. data/doc/lib/TaskJuggler_rb.html +5 -3
  302. data/doc/lib/TaskScenario_rb.html +5 -3
  303. data/doc/lib/Task_rb.html +5 -3
  304. data/doc/lib/TextFormatter_rb.html +6 -4
  305. data/doc/lib/TextParser/Pattern_rb.html +5 -3
  306. data/doc/lib/TextParser/Rule_rb.html +5 -3
  307. data/doc/lib/TextParser/StackElement_rb.html +5 -3
  308. data/doc/lib/TextParser/State_rb.html +6 -4
  309. data/doc/lib/TextParser/TokenDoc_rb.html +5 -3
  310. data/doc/lib/TextParser_rb.html +5 -3
  311. data/doc/lib/TextScanner_rb.html +5 -3
  312. data/doc/lib/TimeSheetReceiver_rb.html +5 -3
  313. data/doc/lib/TimeSheetSender_rb.html +5 -3
  314. data/doc/lib/TimeSheetSummary_rb.html +6 -4
  315. data/doc/lib/TimeSheets_rb.html +5 -3
  316. data/doc/lib/Tj3AppBase_rb.html +5 -3
  317. data/doc/lib/Tj3Config_rb.html +5 -3
  318. data/doc/lib/Tj3SheetAppBase_rb.html +5 -3
  319. data/doc/lib/TjException_rb.html +5 -3
  320. data/doc/lib/TjTime_rb.html +5 -3
  321. data/doc/lib/TjpExample_rb.html +5 -3
  322. data/doc/lib/TjpSyntaxRules_rb.html +5 -3
  323. data/doc/lib/URLParameter_rb.html +5 -3
  324. data/doc/lib/UTF8String_rb.html +5 -3
  325. data/doc/lib/UserManual_rb.html +5 -3
  326. data/doc/lib/VimSyntax_rb.html +6 -4
  327. data/doc/lib/WorkingHours_rb.html +5 -3
  328. data/doc/lib/XMLDocument_rb.html +5 -3
  329. data/doc/lib/XMLElement_rb.html +5 -3
  330. data/doc/lib/daemon/Daemon_rb.html +5 -3
  331. data/doc/lib/daemon/ProcessIntercom_rb.html +7 -3
  332. data/doc/lib/daemon/ProjectBroker_rb.html +5 -3
  333. data/doc/lib/daemon/ProjectServer_rb.html +5 -3
  334. data/doc/lib/daemon/ReportServer_rb.html +5 -3
  335. data/doc/lib/daemon/ReportServlet_rb.html +69 -0
  336. data/doc/lib/daemon/WebServer_rb.html +9 -3
  337. data/doc/lib/daemon/WelcomePage_rb.html +71 -0
  338. data/doc/lib/deep_copy_rb.html +5 -3
  339. data/doc/lib/reports/CSVFile_rb.html +5 -3
  340. data/doc/lib/reports/CollisionDetector_rb.html +5 -3
  341. data/doc/lib/reports/ColumnTable_rb.html +5 -3
  342. data/doc/lib/reports/GanttChart_rb.html +5 -3
  343. data/doc/lib/reports/GanttContainer_rb.html +5 -3
  344. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +5 -3
  345. data/doc/lib/reports/GanttHeader_rb.html +5 -3
  346. data/doc/lib/reports/GanttLine_rb.html +5 -3
  347. data/doc/lib/reports/GanttLoadStack_rb.html +5 -3
  348. data/doc/lib/reports/GanttMilestone_rb.html +5 -3
  349. data/doc/lib/reports/GanttRouter_rb.html +5 -3
  350. data/doc/lib/reports/GanttTaskBar_rb.html +5 -3
  351. data/doc/lib/reports/HTMLGraphics_rb.html +5 -3
  352. data/doc/lib/reports/Navigator_rb.html +5 -3
  353. data/doc/lib/reports/NikuReport_rb.html +5 -3
  354. data/doc/lib/reports/ReportBase_rb.html +5 -3
  355. data/doc/lib/reports/ReportContext_rb.html +5 -3
  356. data/doc/lib/reports/ReportTableCell_rb.html +5 -3
  357. data/doc/lib/reports/ReportTableColumn_rb.html +5 -3
  358. data/doc/lib/reports/ReportTableLegend_rb.html +5 -3
  359. data/doc/lib/reports/ReportTableLine_rb.html +5 -3
  360. data/doc/lib/reports/ReportTable_rb.html +5 -3
  361. data/doc/lib/reports/Report_rb.html +5 -3
  362. data/doc/lib/reports/ResourceListRE_rb.html +5 -3
  363. data/doc/lib/reports/StatusSheetReport_rb.html +5 -3
  364. data/doc/lib/reports/TableReport_rb.html +5 -3
  365. data/doc/lib/reports/TaskListRE_rb.html +5 -3
  366. data/doc/lib/reports/TextReport_rb.html +5 -3
  367. data/doc/lib/reports/TimeSheetReport_rb.html +5 -3
  368. data/doc/lib/reports/TjpExportRE_rb.html +5 -3
  369. data/doc/lib/{taskjuggler3_rb.html → tj3_rb.html} +7 -5
  370. data/doc/lib/tj3client_rb.html +5 -3
  371. data/doc/lib/tj3d_rb.html +6 -4
  372. data/doc/lib/tj3man_rb.html +5 -3
  373. data/doc/lib/tj3ss_receiver_rb.html +5 -3
  374. data/doc/lib/tj3ss_sender_rb.html +5 -3
  375. data/doc/lib/tj3ts_receiver_rb.html +5 -3
  376. data/doc/lib/tj3ts_sender_rb.html +5 -3
  377. data/doc/lib/tj3ts_summary_rb.html +5 -3
  378. data/examples/tutorial.tjp +13 -5
  379. data/gem_spec.rb +3 -0
  380. data/lib/Account.rb +2 -1
  381. data/lib/AccountScenario.rb +2 -1
  382. data/lib/Allocation.rb +2 -1
  383. data/lib/AppConfig.rb +2 -1
  384. data/lib/AttributeBase.rb +19 -5
  385. data/lib/AttributeDefinition.rb +2 -1
  386. data/lib/Attributes.rb +49 -38
  387. data/lib/BatchProcessor.rb +2 -1
  388. data/lib/Booking.rb +2 -1
  389. data/lib/Charge.rb +2 -1
  390. data/lib/ChargeSet.rb +2 -1
  391. data/lib/DataCache.rb +15 -1
  392. data/lib/FileList.rb +2 -1
  393. data/lib/HTMLDocument.rb +2 -1
  394. data/lib/Interval.rb +2 -1
  395. data/lib/IntervalList.rb +100 -0
  396. data/lib/Journal.rb +8 -2
  397. data/lib/KeywordArray.rb +2 -1
  398. data/lib/KeywordDocumentation.rb +10 -6
  399. data/lib/Limits.rb +2 -1
  400. data/lib/Log.rb +3 -2
  401. data/lib/LogFile.rb +2 -1
  402. data/lib/LogicalExpression.rb +2 -1
  403. data/lib/LogicalFunction.rb +2 -1
  404. data/lib/LogicalOperation.rb +2 -1
  405. data/lib/MacroTable.rb +2 -1
  406. data/lib/MessageHandler.rb +2 -1
  407. data/lib/Project.rb +92 -25
  408. data/lib/ProjectFileParser.rb +7 -2
  409. data/lib/ProjectFileScanner.rb +2 -1
  410. data/lib/PropertyList.rb +2 -1
  411. data/lib/PropertySet.rb +2 -6
  412. data/lib/PropertyTreeNode.rb +22 -44
  413. data/lib/Query.rb +32 -13
  414. data/lib/RTFHandlers.rb +2 -1
  415. data/lib/RTFNavigator.rb +2 -1
  416. data/lib/RTFQuery.rb +3 -2
  417. data/lib/RTFReport.rb +2 -1
  418. data/lib/RTFReportLink.rb +2 -1
  419. data/lib/RTFWithQuerySupport.rb +2 -1
  420. data/lib/RealFormat.rb +2 -1
  421. data/lib/Resource.rb +2 -1
  422. data/lib/ResourceScenario.rb +35 -14
  423. data/lib/RichText.rb +2 -1
  424. data/lib/RichTextDocument.rb +2 -1
  425. data/lib/RichTextElement.rb +2 -1
  426. data/lib/RichTextFunctionExample.rb +2 -1
  427. data/lib/RichTextFunctionHandler.rb +2 -1
  428. data/lib/RichTextParser.rb +2 -1
  429. data/lib/RichTextScanner.rb +2 -1
  430. data/lib/RichTextSnip.rb +2 -1
  431. data/lib/RichTextSyntaxRules.rb +2 -1
  432. data/lib/RuntimeConfig.rb +2 -1
  433. data/lib/Scenario.rb +2 -1
  434. data/lib/ScenarioData.rb +2 -1
  435. data/lib/Scoreboard.rb +27 -8
  436. data/lib/SheetHandlerBase.rb +2 -1
  437. data/lib/SheetReceiver.rb +2 -1
  438. data/lib/SheetSender.rb +2 -1
  439. data/lib/Shift.rb +2 -1
  440. data/lib/ShiftAssignments.rb +2 -1
  441. data/lib/ShiftScenario.rb +2 -1
  442. data/lib/SimpleQueryExpander.rb +2 -1
  443. data/lib/SourceFileInfo.rb +2 -1
  444. data/lib/StatusSheetReceiver.rb +2 -1
  445. data/lib/StatusSheetSender.rb +2 -1
  446. data/lib/SyntaxReference.rb +2 -1
  447. data/lib/TOCEntry.rb +2 -1
  448. data/lib/TableColumnDefinition.rb +9 -2
  449. data/lib/TableOfContents.rb +2 -1
  450. data/lib/Task.rb +2 -1
  451. data/lib/TaskDependency.rb +2 -1
  452. data/lib/TaskJuggler.rb +8 -6
  453. data/lib/TaskScenario.rb +337 -153
  454. data/lib/TextFormatter.rb +3 -2
  455. data/lib/TextParser.rb +7 -2
  456. data/lib/TextParser/Pattern.rb +2 -1
  457. data/lib/TextParser/Rule.rb +2 -1
  458. data/lib/TextParser/StackElement.rb +2 -1
  459. data/lib/TextParser/State.rb +3 -2
  460. data/lib/TextParser/TokenDoc.rb +2 -1
  461. data/lib/TextScanner.rb +12 -5
  462. data/lib/TimeSheetReceiver.rb +2 -1
  463. data/lib/TimeSheetSender.rb +2 -1
  464. data/lib/TimeSheetSummary.rb +3 -2
  465. data/lib/TimeSheets.rb +2 -1
  466. data/lib/Tj3AppBase.rb +6 -5
  467. data/lib/Tj3Config.rb +5 -4
  468. data/lib/Tj3SheetAppBase.rb +2 -1
  469. data/lib/TjException.rb +2 -1
  470. data/lib/TjTime.rb +2 -1
  471. data/lib/TjpExample.rb +2 -1
  472. data/lib/TjpSyntaxRules.rb +264 -65
  473. data/lib/URLParameter.rb +2 -1
  474. data/lib/UTF8String.rb +2 -1
  475. data/lib/UserManual.rb +2 -1
  476. data/lib/VimSyntax.rb +3 -2
  477. data/lib/WorkingHours.rb +2 -1
  478. data/lib/XMLDocument.rb +2 -1
  479. data/lib/XMLElement.rb +2 -1
  480. data/lib/daemon/Daemon.rb +3 -1
  481. data/lib/daemon/ProcessIntercom.rb +3 -1
  482. data/lib/daemon/ProjectBroker.rb +84 -32
  483. data/lib/daemon/ProjectServer.rb +5 -3
  484. data/lib/daemon/ReportServer.rb +8 -5
  485. data/lib/daemon/ReportServlet.rb +166 -0
  486. data/lib/daemon/WebServer.rb +6 -150
  487. data/lib/daemon/WelcomePage.rb +80 -0
  488. data/lib/deep_copy.rb +2 -1
  489. data/lib/reports/CSVFile.rb +2 -1
  490. data/lib/reports/CollisionDetector.rb +2 -1
  491. data/lib/reports/ColumnTable.rb +2 -1
  492. data/lib/reports/GanttChart.rb +2 -1
  493. data/lib/reports/GanttContainer.rb +3 -4
  494. data/lib/reports/GanttHeader.rb +2 -1
  495. data/lib/reports/GanttHeaderScaleItem.rb +2 -1
  496. data/lib/reports/GanttLine.rb +12 -10
  497. data/lib/reports/GanttLoadStack.rb +2 -1
  498. data/lib/reports/GanttMilestone.rb +3 -3
  499. data/lib/reports/GanttRouter.rb +4 -1
  500. data/lib/reports/GanttTaskBar.rb +9 -7
  501. data/lib/reports/HTMLGraphics.rb +2 -1
  502. data/lib/reports/Navigator.rb +2 -1
  503. data/lib/reports/NikuReport.rb +79 -49
  504. data/lib/reports/Report.rb +42 -10
  505. data/lib/reports/ReportBase.rb +2 -1
  506. data/lib/reports/ReportContext.rb +2 -1
  507. data/lib/reports/ReportTable.rb +2 -1
  508. data/lib/reports/ReportTableCell.rb +63 -28
  509. data/lib/reports/ReportTableColumn.rb +2 -1
  510. data/lib/reports/ReportTableLegend.rb +5 -5
  511. data/lib/reports/ReportTableLine.rb +2 -1
  512. data/lib/reports/ResourceListRE.rb +2 -1
  513. data/lib/reports/StatusSheetReport.rb +4 -2
  514. data/lib/reports/TableReport.rb +42 -38
  515. data/lib/reports/TaskListRE.rb +4 -2
  516. data/lib/reports/TextReport.rb +2 -1
  517. data/lib/reports/TimeSheetReport.rb +4 -2
  518. data/lib/reports/TjpExportRE.rb +4 -2
  519. data/lib/{taskjuggler3.rb → tj3.rb} +6 -5
  520. data/lib/tj3client.rb +19 -36
  521. data/lib/tj3d.rb +6 -2
  522. data/lib/tj3man.rb +4 -3
  523. data/lib/tj3ss_receiver.rb +2 -1
  524. data/lib/tj3ss_sender.rb +2 -1
  525. data/lib/tj3ts_receiver.rb +2 -1
  526. data/lib/tj3ts_sender.rb +2 -1
  527. data/lib/tj3ts_summary.rb +2 -1
  528. data/manual/Day_To_Day_Juggling +36 -0
  529. data/manual/How_To_Contribute +9 -4
  530. data/manual/Installation +10 -3
  531. data/manual/TaskJuggler_Internals +0 -2
  532. data/manual/Tutorial +25 -3
  533. data/prj_cfg.rb +4 -2
  534. data/spec/IntervalList_spec.rb +138 -0
  535. data/spec/ProjectBroker_spec.rb +133 -0
  536. data/tasks/changelog.rake +41 -24
  537. data/tasks/csts.rake +1 -0
  538. data/tasks/gem.rake +1 -0
  539. data/tasks/rcov.rake +1 -1
  540. data/tasks/spec.rake +7 -0
  541. data/tasks/test.rake +1 -0
  542. data/test/MessageChecker.rb +2 -1
  543. data/test/TestSuite/CSV-Reports/niku.tjp +70 -0
  544. data/test/TestSuite/CSV-Reports/{celltext-Reference.csv → refs/celltext.csv} +0 -0
  545. data/test/TestSuite/CSV-Reports/refs/niku.csv +5 -0
  546. data/test/TestSuite/CSV-Reports/{resourcereport-Reference.csv → refs/resourcereport.csv} +0 -0
  547. data/test/TestSuite/CSV-Reports/{resourcereport_with_tasks-Reference.csv → refs/resourcereport_with_tasks.csv} +0 -0
  548. data/test/TestSuite/CSV-Reports/{sortByTree-Reference.csv → refs/sortByTree.csv} +0 -0
  549. data/test/TestSuite/CSV-Reports/{sortBy_duration.down-Reference.csv → refs/sortBy_duration.down.csv} +0 -0
  550. data/test/TestSuite/CSV-Reports/{sortBy_effort.up-Reference.csv → refs/sortBy_effort.up.csv} +0 -0
  551. data/test/TestSuite/CSV-Reports/{sortBy_plan.start.down-Reference.csv → refs/sortBy_plan.start.down.csv} +0 -0
  552. data/test/TestSuite/CSV-Reports/{taskreport-Reference.csv → refs/taskreport.csv} +0 -0
  553. data/test/TestSuite/CSV-Reports/{taskreport_with_resources-Reference.csv → refs/taskreport_with_resources.csv} +0 -0
  554. data/test/TestSuite/CSV-Reports/{weekly-Reference.csv → refs/weekly.csv} +0 -0
  555. data/test/TestSuite/HTML-Reports/Alerts.tjp +12 -0
  556. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
  557. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +1 -2
  558. data/test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp +77 -0
  559. data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +40 -0
  560. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +2 -2
  561. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +3 -4
  562. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +2 -2
  563. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +8 -7
  564. data/test/TestSuite/Scheduler/Errors/onend_wrong_direction.tjp +19 -0
  565. data/test/TestSuite/Scheduler/Errors/onstart_wrong_direction.tjp +18 -0
  566. data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +1 -2
  567. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/boss_2002-03-02.tji +46 -0
  568. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/dev2_2002-03-02.tji +22 -0
  569. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/resources.yml +11 -0
  570. data/test/TestSuite/StatusSheets/StatusSheetTemplates/acceptable_intervals +1 -0
  571. data/test/TestSuite/StatusSheets/sender.log +256 -0
  572. data/test/TestSuite/StatusSheets/statussheets.log +9 -0
  573. data/test/TestSuite/StatusSheets/tj3d.log +395 -0
  574. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +2 -0
  575. data/test/TestSuite/Syntax/Correct/Niku.tjp +6 -1
  576. data/test/TestSuite/Syntax/Correct/Scenario.tjp +4 -1
  577. data/test/TestSuite/Syntax/Correct/Supplement.tjp +12 -5
  578. data/test/TestSuite/Syntax/Correct/TaskPrefix.tji +3 -0
  579. data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +24 -0
  580. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -2
  581. data/test/TestSuite/Syntax/Correct/tutorial.tjp +15 -5
  582. data/test/all.rb +2 -4
  583. data/test/test_BatchProcessor.rb +2 -1
  584. data/test/test_CSV-Reports.rb +34 -23
  585. data/test/test_CSVFile.rb +2 -1
  586. data/test/test_CollisionDetector.rb +3 -2
  587. data/test/test_Journal.rb +2 -1
  588. data/test/test_Limits.rb +2 -1
  589. data/test/test_LogicalExpression.rb +2 -1
  590. data/test/test_MacroTable.rb +2 -1
  591. data/test/test_Project.rb +3 -2
  592. data/test/test_ProjectFileScanner.rb +2 -1
  593. data/test/test_PropertySet.rb +2 -1
  594. data/test/test_Query.rb +2 -1
  595. data/test/test_RealFormat.rb +2 -1
  596. data/test/test_ReportGenerator.rb +2 -1
  597. data/test/test_RichText.rb +2 -1
  598. data/test/test_Scheduler.rb +2 -1
  599. data/test/test_ShiftAssignments.rb +2 -1
  600. data/test/test_SimpleQueryExpander.rb +2 -1
  601. data/test/test_Syntax.rb +2 -1
  602. data/test/test_TextFormatter.rb +3 -2
  603. data/test/test_TjTime.rb +2 -1
  604. data/test/test_TjpExample.rb +2 -1
  605. data/test/test_URLParameter.rb +2 -1
  606. data/test/test_UTF8String.rb +2 -1
  607. data/test/test_WorkingHours.rb +2 -1
  608. data/test/test_deep_copy.rb +2 -1
  609. metadata +74 -20
  610. data/doc/StringIO.html +0 -595
  611. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +0 -46
  612. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +0 -51
  613. data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +0 -11
@@ -151,6 +151,8 @@
151
151
 
152
152
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
153
153
 
154
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
155
+
154
156
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
155
157
 
156
158
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -229,6 +231,8 @@
229
231
 
230
232
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
231
233
 
234
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
235
+
232
236
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
233
237
 
234
238
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -261,6 +265,8 @@
261
265
 
262
266
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
263
267
 
268
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
269
+
264
270
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
265
271
 
266
272
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -541,6 +547,8 @@
541
547
 
542
548
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
543
549
 
550
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
551
+
544
552
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
545
553
 
546
554
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -567,8 +575,6 @@
567
575
 
568
576
  <li><a href="../String.html">String</a></li>
569
577
 
570
- <li><a href="../StringIO.html">StringIO</a></li>
571
-
572
578
  </ul>
573
579
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
574
580
  </div>
@@ -690,21 +696,21 @@ always bound to an existing <a href="Resource.html">Resource</a>.
690
696
  <div class="method-source-code"
691
697
  id="new-source">
692
698
  <pre>
693
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 252</span>
694
- 252: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">resource</span>, <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">scenarioIdx</span>)
695
- 253: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Illegal resource&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
696
- 254: <span class="ruby-ivar">@resource</span> = <span class="ruby-identifier">resource</span>
697
- 255: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Interval undefined&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">nil?</span>
698
- 256: <span class="ruby-ivar">@interval</span> = <span class="ruby-identifier">interval</span>
699
- 257: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Sceneario index undefined&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">nil?</span>
700
- 258: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-identifier">scenarioIdx</span>
701
- 259: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>
702
- 260: <span class="ruby-comment cmt"># This flag is set to true if at least one record was reported as</span>
703
- 261: <span class="ruby-comment cmt"># percentage.</span>
704
- 262: <span class="ruby-ivar">@percentageUsed</span> = <span class="ruby-keyword kw">false</span>
705
- 263: <span class="ruby-comment cmt"># The TimeSheetRecord list.</span>
706
- 264: <span class="ruby-ivar">@records</span> = []
707
- 265: <span class="ruby-keyword kw">end</span></pre>
699
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 253</span>
700
+ 253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">resource</span>, <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">scenarioIdx</span>)
701
+ 254: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Illegal resource&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Resource</span>)
702
+ 255: <span class="ruby-ivar">@resource</span> = <span class="ruby-identifier">resource</span>
703
+ 256: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Interval undefined&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">nil?</span>
704
+ 257: <span class="ruby-ivar">@interval</span> = <span class="ruby-identifier">interval</span>
705
+ 258: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Sceneario index undefined&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">nil?</span>
706
+ 259: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-identifier">scenarioIdx</span>
707
+ 260: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>
708
+ 261: <span class="ruby-comment cmt"># This flag is set to true if at least one record was reported as</span>
709
+ 262: <span class="ruby-comment cmt"># percentage.</span>
710
+ 263: <span class="ruby-ivar">@percentageUsed</span> = <span class="ruby-keyword kw">false</span>
711
+ 264: <span class="ruby-comment cmt"># The TimeSheetRecord list.</span>
712
+ 265: <span class="ruby-ivar">@records</span> = []
713
+ 266: <span class="ruby-keyword kw">end</span></pre>
708
714
  </div>
709
715
 
710
716
  </div>
@@ -743,16 +749,16 @@ Add a new <a href="TimeSheetRecord.html">TimeSheetRecord</a> to the list.
743
749
  <div class="method-source-code"
744
750
  id="--source">
745
751
  <pre>
746
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 268</span>
747
- 268: <span class="ruby-keyword kw">def</span><span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">record</span>)
748
- 269: <span class="ruby-ivar">@records</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
749
- 270: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">task</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">task</span>
750
- 271: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_duplicate_task'</span>,
751
- 272: <span class="ruby-node">&quot;Duplicate records for task #{r.taskId}&quot;</span>)
752
- 273: <span class="ruby-keyword kw">end</span>
753
- 274: <span class="ruby-keyword kw">end</span>
754
- 275: <span class="ruby-ivar">@records</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">record</span>
755
- 276: <span class="ruby-keyword kw">end</span></pre>
752
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 269</span>
753
+ 269: <span class="ruby-keyword kw">def</span><span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">record</span>)
754
+ 270: <span class="ruby-ivar">@records</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
755
+ 271: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">task</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">task</span>
756
+ 272: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_duplicate_task'</span>,
757
+ 273: <span class="ruby-node">&quot;Duplicate records for task #{r.taskId}&quot;</span>)
758
+ 274: <span class="ruby-keyword kw">end</span>
759
+ 275: <span class="ruby-keyword kw">end</span>
760
+ 276: <span class="ruby-ivar">@records</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">record</span>
761
+ 277: <span class="ruby-keyword kw">end</span></pre>
756
762
  </div>
757
763
 
758
764
  </div>
@@ -785,31 +791,31 @@ Perform all kinds of consitency checks.
785
791
  <div class="method-source-code"
786
792
  id="check-source">
787
793
  <pre>
788
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 279</span>
789
- 279: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span>
790
- 280: <span class="ruby-identifier">totalSlots</span> = <span class="ruby-value">0</span>
791
- 281: <span class="ruby-ivar">@records</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record</span><span class="ruby-operator">|</span>
792
- 282: <span class="ruby-identifier">record</span>.<span class="ruby-identifier">check</span>
793
- 283: <span class="ruby-identifier">totalSlots</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">work</span>
794
- 284: <span class="ruby-keyword kw">end</span>
795
- 285:
796
- 286: <span class="ruby-identifier">targetSlots</span> = <span class="ruby-identifier">totalNetWorkingSlots</span>
797
- 287: <span class="ruby-comment cmt"># This is acceptable rounding error when checking the total reported</span>
798
- 288: <span class="ruby-comment cmt"># work.</span>
799
- 289: <span class="ruby-identifier">delta</span> = <span class="ruby-value">1</span>
800
- 290: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">totalSlots</span> <span class="ruby-operator">&lt;</span> (<span class="ruby-identifier">targetSlots</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">delta</span>)
801
- 291: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_work_too_low'</span>,
802
- 292: <span class="ruby-value str">&quot;The total work to be reported for this time sheet &quot;</span> <span class="ruby-operator">+</span>
803
- 293: <span class="ruby-node">&quot;is #{workWithUnit(targetSlots)} but only &quot;</span> <span class="ruby-operator">+</span>
804
- 294: <span class="ruby-node">&quot;#{workWithUnit(totalSlots)} were reported.&quot;</span>)
805
- 295: <span class="ruby-keyword kw">end</span>
806
- 296: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">totalSlots</span> <span class="ruby-operator">&gt;</span> (<span class="ruby-identifier">targetSlots</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">delta</span>)
807
- 297: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_work_too_high'</span>,
808
- 298: <span class="ruby-value str">&quot;The total work to be reported for this time sheet &quot;</span> <span class="ruby-operator">+</span>
809
- 299: <span class="ruby-node">&quot;is #{workWithUnit(targetSlots)} but &quot;</span> <span class="ruby-operator">+</span>
810
- 300: <span class="ruby-node">&quot;#{workWithUnit(totalSlots)} were reported.&quot;</span>)
811
- 301: <span class="ruby-keyword kw">end</span>
812
- 302: <span class="ruby-keyword kw">end</span></pre>
794
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 280</span>
795
+ 280: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span>
796
+ 281: <span class="ruby-identifier">totalSlots</span> = <span class="ruby-value">0</span>
797
+ 282: <span class="ruby-ivar">@records</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record</span><span class="ruby-operator">|</span>
798
+ 283: <span class="ruby-identifier">record</span>.<span class="ruby-identifier">check</span>
799
+ 284: <span class="ruby-identifier">totalSlots</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">work</span>
800
+ 285: <span class="ruby-keyword kw">end</span>
801
+ 286:
802
+ 287: <span class="ruby-identifier">targetSlots</span> = <span class="ruby-identifier">totalNetWorkingSlots</span>
803
+ 288: <span class="ruby-comment cmt"># This is acceptable rounding error when checking the total reported</span>
804
+ 289: <span class="ruby-comment cmt"># work.</span>
805
+ 290: <span class="ruby-identifier">delta</span> = <span class="ruby-value">1</span>
806
+ 291: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">totalSlots</span> <span class="ruby-operator">&lt;</span> (<span class="ruby-identifier">targetSlots</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">delta</span>)
807
+ 292: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_work_too_low'</span>,
808
+ 293: <span class="ruby-value str">&quot;The total work to be reported for this time sheet &quot;</span> <span class="ruby-operator">+</span>
809
+ 294: <span class="ruby-node">&quot;is #{workWithUnit(targetSlots)} but only &quot;</span> <span class="ruby-operator">+</span>
810
+ 295: <span class="ruby-node">&quot;#{workWithUnit(totalSlots)} were reported.&quot;</span>)
811
+ 296: <span class="ruby-keyword kw">end</span>
812
+ 297: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">totalSlots</span> <span class="ruby-operator">&gt;</span> (<span class="ruby-identifier">targetSlots</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">delta</span>)
813
+ 298: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_work_too_high'</span>,
814
+ 299: <span class="ruby-value str">&quot;The total work to be reported for this time sheet &quot;</span> <span class="ruby-operator">+</span>
815
+ 300: <span class="ruby-node">&quot;is #{workWithUnit(targetSlots)} but &quot;</span> <span class="ruby-operator">+</span>
816
+ 301: <span class="ruby-node">&quot;#{workWithUnit(totalSlots)} were reported.&quot;</span>)
817
+ 302: <span class="ruby-keyword kw">end</span>
818
+ 303: <span class="ruby-keyword kw">end</span></pre>
813
819
  </div>
814
820
 
815
821
  </div>
@@ -840,11 +846,11 @@ Perform all kinds of consitency checks.
840
846
  <div class="method-source-code"
841
847
  id="days-o-lots-source">
842
848
  <pre>
843
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 353</span>
844
- 353: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">daysToSlots</span>(<span class="ruby-identifier">days</span>)
845
- 354: ((<span class="ruby-identifier">days</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">dailyWorkingHours</span>) <span class="ruby-operator">/</span>
846
- 355: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>]).<span class="ruby-identifier">to_i</span>
847
- 356: <span class="ruby-keyword kw">end</span></pre>
849
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 354</span>
850
+ 354: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">daysToSlots</span>(<span class="ruby-identifier">days</span>)
851
+ 355: ((<span class="ruby-identifier">days</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">dailyWorkingHours</span>) <span class="ruby-operator">/</span>
852
+ 356: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>]).<span class="ruby-identifier">to_i</span>
853
+ 357: <span class="ruby-keyword kw">end</span></pre>
848
854
  </div>
849
855
 
850
856
  </div>
@@ -875,11 +881,11 @@ Perform all kinds of consitency checks.
875
881
  <div class="method-source-code"
876
882
  id="error-source">
877
883
  <pre>
878
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 358</span>
879
- 358: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>)
880
- 359: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">error</span>(
881
- 360: <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@sourceFileInfo</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@resource</span>)
882
- 361: <span class="ruby-keyword kw">end</span></pre>
884
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 359</span>
885
+ 359: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>)
886
+ 360: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">error</span>(
887
+ 361: <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@sourceFileInfo</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@resource</span>)
888
+ 362: <span class="ruby-keyword kw">end</span></pre>
883
889
  </div>
884
890
 
885
891
  </div>
@@ -912,11 +918,11 @@ Converts allocation percentage into time slots.
912
918
  <div class="method-source-code"
913
919
  id="percent-o-lots-source">
914
920
  <pre>
915
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 337</span>
916
- 337: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">percentToSlots</span>(<span class="ruby-identifier">value</span>)
917
- 338: <span class="ruby-ivar">@percentageUsed</span> = <span class="ruby-keyword kw">true</span>
918
- 339: (<span class="ruby-identifier">totalGrossWorkingSlots</span> * <span class="ruby-identifier">value</span>).<span class="ruby-identifier">to_i</span>
919
- 340: <span class="ruby-keyword kw">end</span></pre>
921
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 338</span>
922
+ 338: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">percentToSlots</span>(<span class="ruby-identifier">value</span>)
923
+ 339: <span class="ruby-ivar">@percentageUsed</span> = <span class="ruby-keyword kw">true</span>
924
+ 340: (<span class="ruby-identifier">totalGrossWorkingSlots</span> * <span class="ruby-identifier">value</span>).<span class="ruby-identifier">to_i</span>
925
+ 341: <span class="ruby-keyword kw">end</span></pre>
920
926
  </div>
921
927
 
922
928
  </div>
@@ -947,11 +953,11 @@ Converts allocation percentage into time slots.
947
953
  <div class="method-source-code"
948
954
  id="slots-o-ays-source">
949
955
  <pre>
950
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 348</span>
951
- 348: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slotsToDays</span>(<span class="ruby-identifier">slots</span>)
952
- 349: <span class="ruby-identifier">slots</span> * <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>] <span class="ruby-operator">/</span>
953
- 350: (<span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">dailyWorkingHours</span>)
954
- 351: <span class="ruby-keyword kw">end</span></pre>
956
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 349</span>
957
+ 349: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slotsToDays</span>(<span class="ruby-identifier">slots</span>)
958
+ 350: <span class="ruby-identifier">slots</span> * <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>] <span class="ruby-operator">/</span>
959
+ 351: (<span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">dailyWorkingHours</span>)
960
+ 352: <span class="ruby-keyword kw">end</span></pre>
955
961
  </div>
956
962
 
957
963
  </div>
@@ -985,10 +991,10 @@ in the report time frame.
985
991
  <div class="method-source-code"
986
992
  id="slots-o-ercent-source">
987
993
  <pre>
988
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 344</span>
989
- 344: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slotsToPercent</span>(<span class="ruby-identifier">slots</span>)
990
- 345: <span class="ruby-identifier">slots</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">totalGrossWorkingSlots</span>
991
- 346: <span class="ruby-keyword kw">end</span></pre>
994
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 345</span>
995
+ 345: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slotsToPercent</span>(<span class="ruby-identifier">slots</span>)
996
+ 346: <span class="ruby-identifier">slots</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">totalGrossWorkingSlots</span>
997
+ 347: <span class="ruby-keyword kw">end</span></pre>
992
998
  </div>
993
999
 
994
1000
  </div>
@@ -1022,16 +1028,16 @@ period. This value is not resource specific.
1022
1028
  <div class="method-source-code"
1023
1029
  id="total-ross-orking-lots-source">
1024
1030
  <pre>
1025
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 316</span>
1026
- 316: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">totalGrossWorkingSlots</span>
1027
- 317: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>
1028
- 318: <span class="ruby-comment cmt"># Calculate the average working days per week (usually 5)</span>
1029
- 319: <span class="ruby-identifier">weeklyWorkingDays</span> = <span class="ruby-identifier">project</span>[<span class="ruby-value str">'yearlyworkingdays'</span>] <span class="ruby-operator">/</span> <span class="ruby-value">52.1428</span>
1030
- 320: <span class="ruby-comment cmt"># Calculate the number of weeks in the report</span>
1031
- 321: <span class="ruby-identifier">weeksToReport</span> = (<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">start</span>) <span class="ruby-operator">/</span> (<span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>)
1032
- 322:
1033
- 323: <span class="ruby-identifier">daysToSlots</span>(<span class="ruby-identifier">weeklyWorkingDays</span> * <span class="ruby-identifier">weeksToReport</span>)
1034
- 324: <span class="ruby-keyword kw">end</span></pre>
1031
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 317</span>
1032
+ 317: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">totalGrossWorkingSlots</span>
1033
+ 318: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>
1034
+ 319: <span class="ruby-comment cmt"># Calculate the average working days per week (usually 5)</span>
1035
+ 320: <span class="ruby-identifier">weeklyWorkingDays</span> = <span class="ruby-identifier">project</span>[<span class="ruby-value str">'yearlyworkingdays'</span>] <span class="ruby-operator">/</span> <span class="ruby-value">52.1428</span>
1036
+ 321: <span class="ruby-comment cmt"># Calculate the number of weeks in the report</span>
1037
+ 322: <span class="ruby-identifier">weeksToReport</span> = (<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">start</span>) <span class="ruby-operator">/</span> (<span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>)
1038
+ 323:
1039
+ 324: <span class="ruby-identifier">daysToSlots</span>(<span class="ruby-identifier">weeklyWorkingDays</span> * <span class="ruby-identifier">weeksToReport</span>)
1040
+ 325: <span class="ruby-keyword kw">end</span></pre>
1035
1041
  </div>
1036
1042
 
1037
1043
  </div>
@@ -1066,14 +1072,14 @@ slots.
1066
1072
  <div class="method-source-code"
1067
1073
  id="total-et-orking-lots-source">
1068
1074
  <pre>
1069
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 328</span>
1070
- 328: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">totalNetWorkingSlots</span>
1071
- 329: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>
1072
- 330: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">start</span>)
1073
- 331: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">end</span>)
1074
- 332: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">getAllocatedSlots</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-keyword kw">nil</span>) <span class="ruby-operator">+</span>
1075
- 333: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">getFreeSlots</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
1076
- 334: <span class="ruby-keyword kw">end</span></pre>
1075
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 329</span>
1076
+ 329: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">totalNetWorkingSlots</span>
1077
+ 330: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>
1078
+ 331: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">start</span>)
1079
+ 332: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">end</span>)
1080
+ 333: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">getAllocatedSlots</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-keyword kw">nil</span>) <span class="ruby-operator">+</span>
1081
+ 334: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">getFreeSlots</span>(<span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
1082
+ 335: <span class="ruby-keyword kw">end</span></pre>
1077
1083
  </div>
1078
1084
 
1079
1085
  </div>
@@ -1104,16 +1110,16 @@ slots.
1104
1110
  <div class="method-source-code"
1105
1111
  id="warn-n-elta-source">
1106
1112
  <pre>
1107
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 304</span>
1108
- 304: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warnOnDelta</span>
1109
- 305: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>
1110
- 306: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">start</span>)
1111
- 307: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">end</span>)
1112
- 308:
1113
- 309: <span class="ruby-ivar">@records</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record</span><span class="ruby-operator">|</span>
1114
- 310: <span class="ruby-identifier">record</span>.<span class="ruby-identifier">warnOnDelta</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
1115
- 311: <span class="ruby-keyword kw">end</span>
1116
- 312: <span class="ruby-keyword kw">end</span></pre>
1113
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 305</span>
1114
+ 305: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warnOnDelta</span>
1115
+ 306: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>
1116
+ 307: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">start</span>)
1117
+ 308: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">end</span>)
1118
+ 309:
1119
+ 310: <span class="ruby-ivar">@records</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record</span><span class="ruby-operator">|</span>
1120
+ 311: <span class="ruby-identifier">record</span>.<span class="ruby-identifier">warnOnDelta</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
1121
+ 312: <span class="ruby-keyword kw">end</span>
1122
+ 313: <span class="ruby-keyword kw">end</span></pre>
1117
1123
  </div>
1118
1124
 
1119
1125
  </div>
@@ -1144,11 +1150,11 @@ slots.
1144
1150
  <div class="method-source-code"
1145
1151
  id="warning-source">
1146
1152
  <pre>
1147
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 363</span>
1148
- 363: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>)
1149
- 364: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span>, <span class="ruby-keyword kw">nil</span>,
1150
- 365: <span class="ruby-ivar">@resource</span>)
1151
- 366: <span class="ruby-keyword kw">end</span></pre>
1153
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 364</span>
1154
+ 364: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>)
1155
+ 365: <span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span>, <span class="ruby-keyword kw">nil</span>,
1156
+ 366: <span class="ruby-ivar">@resource</span>)
1157
+ 367: <span class="ruby-keyword kw">end</span></pre>
1152
1158
  </div>
1153
1159
 
1154
1160
  </div>
@@ -1185,14 +1191,14 @@ slots.
1185
1191
  <div class="method-source-code"
1186
1192
  id="work-ith-nit-source">
1187
1193
  <pre>
1188
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 370</span>
1189
- 370: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">workWithUnit</span>(<span class="ruby-identifier">slots</span>)
1190
- 371: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@percentageUsed</span>
1191
- 372: <span class="ruby-node">&quot;#{(slotsToPercent(slots) * 100.0).to_i}%&quot;</span>
1192
- 373: <span class="ruby-keyword kw">else</span>
1193
- 374: <span class="ruby-node">&quot;#{slotsToDays(slots)} days&quot;</span>
1194
- 375: <span class="ruby-keyword kw">end</span>
1195
- 376: <span class="ruby-keyword kw">end</span></pre>
1194
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 371</span>
1195
+ 371: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">workWithUnit</span>(<span class="ruby-identifier">slots</span>)
1196
+ 372: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@percentageUsed</span>
1197
+ 373: <span class="ruby-node">&quot;#{(slotsToPercent(slots) * 100.0).to_i}%&quot;</span>
1198
+ 374: <span class="ruby-keyword kw">else</span>
1199
+ 375: <span class="ruby-node">&quot;#{slotsToDays(slots)} days&quot;</span>
1200
+ 376: <span class="ruby-keyword kw">end</span>
1201
+ 377: <span class="ruby-keyword kw">end</span></pre>
1196
1202
  </div>
1197
1203
 
1198
1204
  </div>
@@ -127,6 +127,8 @@
127
127
 
128
128
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
129
129
 
130
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
131
+
130
132
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
131
133
 
132
134
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -205,6 +207,8 @@
205
207
 
206
208
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
207
209
 
210
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
211
+
208
212
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
209
213
 
210
214
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -237,6 +241,8 @@
237
241
 
238
242
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
239
243
 
244
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
245
+
240
246
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
241
247
 
242
248
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -517,6 +523,8 @@
517
523
 
518
524
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
519
525
 
526
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
527
+
520
528
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
521
529
 
522
530
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -543,8 +551,6 @@
543
551
 
544
552
  <li><a href="../String.html">String</a></li>
545
553
 
546
- <li><a href="../StringIO.html">StringIO</a></li>
547
-
548
554
  </ul>
549
555
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
550
556
  </div>
@@ -596,26 +602,26 @@ process time sheets.
596
602
  <div class="method-source-code"
597
603
  id="new-source">
598
604
  <pre>
599
- <span class="ruby-comment cmt"># File lib/TimeSheetReceiver.rb, line 20</span>
600
- 20: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">appName</span>)
601
- 21: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">appName</span>, <span class="ruby-value str">'time'</span>)
602
- 22:
603
- 23: <span class="ruby-ivar">@tj3clientOption</span> = <span class="ruby-value str">'check-ts'</span>
604
- 24:
605
- 25: <span class="ruby-comment cmt"># File name and directory settings.</span>
606
- 26: <span class="ruby-ivar">@sheetDir</span> = <span class="ruby-value str">'TimeSheets'</span>
607
- 27: <span class="ruby-ivar">@templateDir</span> = <span class="ruby-value str">'TimeSheetTemplates'</span>
608
- 28: <span class="ruby-ivar">@failedMailsDir</span> = <span class="ruby-node">&quot;#{@sheetDir}/FailedMails&quot;</span>
609
- 29: <span class="ruby-ivar">@failedSheetsDir</span> = <span class="ruby-node">&quot;#{@sheetDir}/FailedSheets&quot;</span>
610
- 30: <span class="ruby-ivar">@signatureFile</span> = <span class="ruby-node">&quot;#{@templateDir}/acceptable_intervals&quot;</span>
611
- 31: <span class="ruby-ivar">@logFile</span> = <span class="ruby-value str">'timesheets.log'</span>
612
- 32:
613
- 33: <span class="ruby-comment cmt"># Regular expression to identify time sheets.</span>
614
- 34: <span class="ruby-ivar">@sheetHeader</span> = <span class="ruby-regexp re">/^[ ]*timesheet\s([a-z][a-z0-9_]*)\s[0-9\-:+]*\s-\s([0-9]*-[0-9]*-[0-9]*)/</span>
615
- 35: <span class="ruby-comment cmt"># Regular expression to extract the sheet signature (time period).</span>
616
- 36: <span class="ruby-ivar">@signatureFilter</span> = <span class="ruby-regexp re">/^[ ]*timesheet\s[a-z][a-z0-9_]*\s([0-9:\-+]*\s-\s[0-9:\-+]*)/</span>
617
- 37: <span class="ruby-ivar">@emailSubject</span> = <span class="ruby-value str">&quot;Report from %s for %s&quot;</span>
618
- 38: <span class="ruby-keyword kw">end</span></pre>
605
+ <span class="ruby-comment cmt"># File lib/TimeSheetReceiver.rb, line 21</span>
606
+ 21: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">appName</span>)
607
+ 22: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">appName</span>, <span class="ruby-value str">'time'</span>)
608
+ 23:
609
+ 24: <span class="ruby-ivar">@tj3clientOption</span> = <span class="ruby-value str">'check-ts'</span>
610
+ 25:
611
+ 26: <span class="ruby-comment cmt"># File name and directory settings.</span>
612
+ 27: <span class="ruby-ivar">@sheetDir</span> = <span class="ruby-value str">'TimeSheets'</span>
613
+ 28: <span class="ruby-ivar">@templateDir</span> = <span class="ruby-value str">'TimeSheetTemplates'</span>
614
+ 29: <span class="ruby-ivar">@failedMailsDir</span> = <span class="ruby-node">&quot;#{@sheetDir}/FailedMails&quot;</span>
615
+ 30: <span class="ruby-ivar">@failedSheetsDir</span> = <span class="ruby-node">&quot;#{@sheetDir}/FailedSheets&quot;</span>
616
+ 31: <span class="ruby-ivar">@signatureFile</span> = <span class="ruby-node">&quot;#{@templateDir}/acceptable_intervals&quot;</span>
617
+ 32: <span class="ruby-ivar">@logFile</span> = <span class="ruby-value str">'timesheets.log'</span>
618
+ 33:
619
+ 34: <span class="ruby-comment cmt"># Regular expression to identify time sheets.</span>
620
+ 35: <span class="ruby-ivar">@sheetHeader</span> = <span class="ruby-regexp re">/^[ ]*timesheet\s([a-z][a-z0-9_]*)\s[0-9\-:+]*\s-\s([0-9]*-[0-9]*-[0-9]*)/</span>
621
+ 36: <span class="ruby-comment cmt"># Regular expression to extract the sheet signature (time period).</span>
622
+ 37: <span class="ruby-ivar">@signatureFilter</span> = <span class="ruby-regexp re">/^[ ]*timesheet\s[a-z][a-z0-9_]*\s([0-9:\-+]*\s-\s[0-9:\-+]*)/</span>
623
+ 38: <span class="ruby-ivar">@emailSubject</span> = <span class="ruby-value str">&quot;Report from %s for %s&quot;</span>
624
+ 39: <span class="ruby-keyword kw">end</span></pre>
619
625
  </div>
620
626
 
621
627
  </div>
@@ -151,6 +151,8 @@
151
151
 
152
152
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
153
153
 
154
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
155
+
154
156
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
155
157
 
156
158
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -229,6 +231,8 @@
229
231
 
230
232
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
231
233
 
234
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
235
+
232
236
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
233
237
 
234
238
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -261,6 +265,8 @@
261
265
 
262
266
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
263
267
 
268
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
269
+
264
270
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
265
271
 
266
272
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -541,6 +547,8 @@
541
547
 
542
548
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
543
549
 
550
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
551
+
544
552
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
545
553
 
546
554
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -567,8 +575,6 @@
567
575
 
568
576
  <li><a href="../String.html">String</a></li>
569
577
 
570
- <li><a href="../StringIO.html">StringIO</a></li>
571
-
572
578
  </ul>
573
579
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
574
580
  </div>
@@ -762,26 +768,26 @@ stores the completed work during the reporting time frame.
762
768
  <div class="method-source-code"
763
769
  id="new-source">
764
770
  <pre>
765
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 26</span>
766
- 26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">timeSheet</span>, <span class="ruby-identifier">task</span>)
767
- 27: <span class="ruby-comment cmt"># This is a reference to a Task object for existing tasks or an ID as</span>
768
- 28: <span class="ruby-comment cmt"># String for new tasks.</span>
769
- 29: <span class="ruby-ivar">@task</span> = <span class="ruby-identifier">task</span>
770
- 30: <span class="ruby-comment cmt"># Add the new TimeSheetRecord to the TimeSheet it belongs to.</span>
771
- 31: (<span class="ruby-ivar">@timeSheet</span> = <span class="ruby-identifier">timeSheet</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>
772
- 32: <span class="ruby-comment cmt"># Work done will be measured in time slots.</span>
773
- 33: <span class="ruby-ivar">@work</span> = <span class="ruby-keyword kw">nil</span>
774
- 34: <span class="ruby-comment cmt"># Remaining work will be measured in time slots.</span>
775
- 35: <span class="ruby-ivar">@remaining</span> = <span class="ruby-keyword kw">nil</span>
776
- 36: <span class="ruby-ivar">@expectedEnd</span> = <span class="ruby-keyword kw">nil</span>
777
- 37: <span class="ruby-comment cmt"># For new task, we also need to store the name.</span>
778
- 38: <span class="ruby-ivar">@name</span> = <span class="ruby-keyword kw">nil</span>
779
- 39: <span class="ruby-comment cmt"># Reference to the JournalEntry object that holds the status for this</span>
780
- 40: <span class="ruby-comment cmt"># record.</span>
781
- 41: <span class="ruby-ivar">@status</span> = <span class="ruby-keyword kw">nil</span>
782
- 42: <span class="ruby-ivar">@priority</span> = <span class="ruby-value">0</span>
783
- 43: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>
784
- 44: <span class="ruby-keyword kw">end</span></pre>
771
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 27</span>
772
+ 27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">timeSheet</span>, <span class="ruby-identifier">task</span>)
773
+ 28: <span class="ruby-comment cmt"># This is a reference to a Task object for existing tasks or an ID as</span>
774
+ 29: <span class="ruby-comment cmt"># String for new tasks.</span>
775
+ 30: <span class="ruby-ivar">@task</span> = <span class="ruby-identifier">task</span>
776
+ 31: <span class="ruby-comment cmt"># Add the new TimeSheetRecord to the TimeSheet it belongs to.</span>
777
+ 32: (<span class="ruby-ivar">@timeSheet</span> = <span class="ruby-identifier">timeSheet</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>
778
+ 33: <span class="ruby-comment cmt"># Work done will be measured in time slots.</span>
779
+ 34: <span class="ruby-ivar">@work</span> = <span class="ruby-keyword kw">nil</span>
780
+ 35: <span class="ruby-comment cmt"># Remaining work will be measured in time slots.</span>
781
+ 36: <span class="ruby-ivar">@remaining</span> = <span class="ruby-keyword kw">nil</span>
782
+ 37: <span class="ruby-ivar">@expectedEnd</span> = <span class="ruby-keyword kw">nil</span>
783
+ 38: <span class="ruby-comment cmt"># For new task, we also need to store the name.</span>
784
+ 39: <span class="ruby-ivar">@name</span> = <span class="ruby-keyword kw">nil</span>
785
+ 40: <span class="ruby-comment cmt"># Reference to the JournalEntry object that holds the status for this</span>
786
+ 41: <span class="ruby-comment cmt"># record.</span>
787
+ 42: <span class="ruby-ivar">@status</span> = <span class="ruby-keyword kw">nil</span>
788
+ 43: <span class="ruby-ivar">@priority</span> = <span class="ruby-value">0</span>
789
+ 44: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>
790
+ 45: <span class="ruby-keyword kw">end</span></pre>
785
791
  </div>
786
792
 
787
793
  </div>
@@ -820,10 +826,10 @@ The reported expected end of the task.
820
826
  <div class="method-source-code"
821
827
  id="actual-nd-source">
822
828
  <pre>
823
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 223</span>
824
- 223: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualEnd</span>
825
- 224: <span class="ruby-ivar">@expectedEnd</span>
826
- 225: <span class="ruby-keyword kw">end</span></pre>
829
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 224</span>
830
+ 224: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualEnd</span>
831
+ 225: <span class="ruby-ivar">@expectedEnd</span>
832
+ 226: <span class="ruby-keyword kw">end</span></pre>
827
833
  </div>
828
834
 
829
835
  </div>
@@ -856,11 +862,11 @@ The reporting remaining effort in days.
856
862
  <div class="method-source-code"
857
863
  id="actual-emaining-source">
858
864
  <pre>
859
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 207</span>
860
- 207: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualRemaining</span>
861
- 208: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span>
862
- 209: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-ivar">@remaining</span> * <span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
863
- 210: <span class="ruby-keyword kw">end</span></pre>
865
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 208</span>
866
+ 208: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualRemaining</span>
867
+ 209: <span class="ruby-identifier">project</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span>
868
+ 210: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-ivar">@remaining</span> * <span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
869
+ 211: <span class="ruby-keyword kw">end</span></pre>
864
870
  </div>
865
871
 
866
872
  </div>
@@ -893,10 +899,10 @@ The reported work in % (0.0 - 100.0) of the average working time.
893
899
  <div class="method-source-code"
894
900
  id="actual-ork-ercent-source">
895
901
  <pre>
896
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 190</span>
897
- 190: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualWorkPercent</span>
898
- 191: (<span class="ruby-ivar">@work</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">totalGrossWorkingSlots</span>) * <span class="ruby-value">100.0</span>
899
- 192: <span class="ruby-keyword kw">end</span></pre>
902
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 191</span>
903
+ 191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">actualWorkPercent</span>
904
+ 192: (<span class="ruby-ivar">@work</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">totalGrossWorkingSlots</span>) * <span class="ruby-value">100.0</span>
905
+ 193: <span class="ruby-keyword kw">end</span></pre>
900
906
  </div>
901
907
 
902
908
  </div>
@@ -929,73 +935,73 @@ Perform all kinds of consistency checks.
929
935
  <div class="method-source-code"
930
936
  id="check-source">
931
937
  <pre>
932
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 59</span>
933
- 59: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span>
934
- 60: <span class="ruby-identifier">scIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>
935
- 61: <span class="ruby-identifier">taskId</span> = <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>) <span class="ruby-operator">?</span> <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">fullId</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@task</span>
936
- 62: <span class="ruby-comment cmt"># All TimeSheetRecords must have a 'work' attribute.</span>
937
- 63: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@work</span>.<span class="ruby-identifier">nil?</span>
938
- 64: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_work'</span>,
939
- 65: <span class="ruby-node">&quot;The time sheet record for task #{taskId} must &quot;</span> <span class="ruby-operator">+</span>
940
- 66: <span class="ruby-value str">&quot;have a 'work' attribute to specify how much was done &quot;</span> <span class="ruby-operator">+</span>
941
- 67: <span class="ruby-value str">&quot;for this task during the reported period.&quot;</span>)
942
- 68: <span class="ruby-keyword kw">end</span>
943
- 69: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
944
- 70: <span class="ruby-comment cmt"># This is already known tasks.</span>
945
- 71: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@task</span>[<span class="ruby-value str">'effort'</span>, <span class="ruby-identifier">scIdx</span>] <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
946
- 72: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@remaining</span>
947
- 73: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_remaining'</span>,
948
- 74: <span class="ruby-node">&quot;The time sheet record for task #{taskId} must &quot;</span> <span class="ruby-operator">+</span>
949
- 75: <span class="ruby-value str">&quot;have a 'remaining' attribute to specify how much &quot;</span> <span class="ruby-operator">+</span>
950
- 76: <span class="ruby-value str">&quot;effort is left for this task.&quot;</span>)
951
- 77: <span class="ruby-keyword kw">end</span>
952
- 78: <span class="ruby-keyword kw">else</span>
953
- 79: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@expectedEnd</span>
954
- 80: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_expected_end'</span>,
955
- 81: <span class="ruby-node">&quot;The time sheet record for task #{taskId} must &quot;</span> <span class="ruby-operator">+</span>
956
- 82: <span class="ruby-value str">&quot;have an 'end' attribute to specify the expected end &quot;</span> <span class="ruby-operator">+</span>
957
- 83: <span class="ruby-value str">&quot;of this task.&quot;</span>)
958
- 84: <span class="ruby-keyword kw">end</span>
959
- 85: <span class="ruby-keyword kw">end</span>
960
- 86: <span class="ruby-keyword kw">else</span>
961
- 87: <span class="ruby-comment cmt"># This is for new tasks.</span>
962
- 88: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@remaining</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@expectedEnd</span>.<span class="ruby-identifier">nil?</span>
963
- 89: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_rem_or_end'</span>,
964
- 90: <span class="ruby-node">&quot;New task #{taskId} requires either a 'remaining' or a &quot;</span> <span class="ruby-operator">+</span>
965
- 91: <span class="ruby-value str">&quot;'end' attribute.&quot;</span>)
966
- 92: <span class="ruby-keyword kw">end</span>
967
- 93: <span class="ruby-keyword kw">end</span>
968
- 94:
969
- 95: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@work</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">daysToSlots</span>(<span class="ruby-value">1</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">nil?</span>
970
- 96: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_status_work'</span>,
971
- 97: <span class="ruby-node">&quot;You must specify a status for task #{taskId}.&quot;</span>)
972
- 98: <span class="ruby-keyword kw">end</span>
973
- 99:
974
- 100: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>
975
- 101: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">headline</span>.<span class="ruby-identifier">empty?</span>
976
- 102: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_headline'</span>,
977
- 103: <span class="ruby-value str">&quot;You must provide a headline for the status of &quot;</span> <span class="ruby-operator">+</span>
978
- 104: <span class="ruby-node">&quot;task #{@task.fullId}&quot;</span>)
979
- 105: <span class="ruby-keyword kw">end</span>
980
- 106: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span> <span class="ruby-operator">&amp;&amp;</span>
981
- 107: <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;A summary text\n&quot;</span>
982
- 108: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_default_summary'</span>,
983
- 109: <span class="ruby-value str">&quot;You must change the default summary text of the status &quot;</span> <span class="ruby-operator">+</span>
984
- 110: <span class="ruby-node">&quot;for task #{taskId}.&quot;</span>)
985
- 111: <span class="ruby-keyword kw">end</span>
986
- 112: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span>
987
- 113: <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">nil?</span>
988
- 114: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_alert1_more_details'</span>,
989
- 115: <span class="ruby-node">&quot;Task #{taskId} has an elevated alert level and must &quot;</span> <span class="ruby-operator">+</span>
990
- 116: <span class="ruby-value str">&quot;have a summary or details section.&quot;</span>)
991
- 117: <span class="ruby-keyword kw">end</span>
992
- 118: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">nil?</span>
993
- 119: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_alert2_more_details'</span>,
994
- 120: <span class="ruby-node">&quot;Task #{taskId} has a high alert level and must have &quot;</span> <span class="ruby-operator">+</span>
995
- 121: <span class="ruby-value str">&quot;a details section.&quot;</span>)
996
- 122: <span class="ruby-keyword kw">end</span>
997
- 123: <span class="ruby-keyword kw">end</span>
998
- 124: <span class="ruby-keyword kw">end</span></pre>
938
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 60</span>
939
+ 60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span>
940
+ 61: <span class="ruby-identifier">scIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>
941
+ 62: <span class="ruby-identifier">taskId</span> = <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>) <span class="ruby-operator">?</span> <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">fullId</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@task</span>
942
+ 63: <span class="ruby-comment cmt"># All TimeSheetRecords must have a 'work' attribute.</span>
943
+ 64: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@work</span>.<span class="ruby-identifier">nil?</span>
944
+ 65: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_work'</span>,
945
+ 66: <span class="ruby-node">&quot;The time sheet record for task #{taskId} must &quot;</span> <span class="ruby-operator">+</span>
946
+ 67: <span class="ruby-value str">&quot;have a 'work' attribute to specify how much was done &quot;</span> <span class="ruby-operator">+</span>
947
+ 68: <span class="ruby-value str">&quot;for this task during the reported period.&quot;</span>)
948
+ 69: <span class="ruby-keyword kw">end</span>
949
+ 70: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
950
+ 71: <span class="ruby-comment cmt"># This is already known tasks.</span>
951
+ 72: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@task</span>[<span class="ruby-value str">'effort'</span>, <span class="ruby-identifier">scIdx</span>] <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
952
+ 73: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@remaining</span>
953
+ 74: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_remaining'</span>,
954
+ 75: <span class="ruby-node">&quot;The time sheet record for task #{taskId} must &quot;</span> <span class="ruby-operator">+</span>
955
+ 76: <span class="ruby-value str">&quot;have a 'remaining' attribute to specify how much &quot;</span> <span class="ruby-operator">+</span>
956
+ 77: <span class="ruby-value str">&quot;effort is left for this task.&quot;</span>)
957
+ 78: <span class="ruby-keyword kw">end</span>
958
+ 79: <span class="ruby-keyword kw">else</span>
959
+ 80: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@expectedEnd</span>
960
+ 81: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_expected_end'</span>,
961
+ 82: <span class="ruby-node">&quot;The time sheet record for task #{taskId} must &quot;</span> <span class="ruby-operator">+</span>
962
+ 83: <span class="ruby-value str">&quot;have an 'end' attribute to specify the expected end &quot;</span> <span class="ruby-operator">+</span>
963
+ 84: <span class="ruby-value str">&quot;of this task.&quot;</span>)
964
+ 85: <span class="ruby-keyword kw">end</span>
965
+ 86: <span class="ruby-keyword kw">end</span>
966
+ 87: <span class="ruby-keyword kw">else</span>
967
+ 88: <span class="ruby-comment cmt"># This is for new tasks.</span>
968
+ 89: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@remaining</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@expectedEnd</span>.<span class="ruby-identifier">nil?</span>
969
+ 90: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_rem_or_end'</span>,
970
+ 91: <span class="ruby-node">&quot;New task #{taskId} requires either a 'remaining' or a &quot;</span> <span class="ruby-operator">+</span>
971
+ 92: <span class="ruby-value str">&quot;'end' attribute.&quot;</span>)
972
+ 93: <span class="ruby-keyword kw">end</span>
973
+ 94: <span class="ruby-keyword kw">end</span>
974
+ 95:
975
+ 96: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@work</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">daysToSlots</span>(<span class="ruby-value">1</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">nil?</span>
976
+ 97: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_status_work'</span>,
977
+ 98: <span class="ruby-node">&quot;You must specify a status for task #{taskId}.&quot;</span>)
978
+ 99: <span class="ruby-keyword kw">end</span>
979
+ 100:
980
+ 101: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>
981
+ 102: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">headline</span>.<span class="ruby-identifier">empty?</span>
982
+ 103: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_no_headline'</span>,
983
+ 104: <span class="ruby-value str">&quot;You must provide a headline for the status of &quot;</span> <span class="ruby-operator">+</span>
984
+ 105: <span class="ruby-node">&quot;task #{@task.fullId}&quot;</span>)
985
+ 106: <span class="ruby-keyword kw">end</span>
986
+ 107: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span> <span class="ruby-operator">&amp;&amp;</span>
987
+ 108: <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;A summary text\n&quot;</span>
988
+ 109: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_default_summary'</span>,
989
+ 110: <span class="ruby-value str">&quot;You must change the default summary text of the status &quot;</span> <span class="ruby-operator">+</span>
990
+ 111: <span class="ruby-node">&quot;for task #{taskId}.&quot;</span>)
991
+ 112: <span class="ruby-keyword kw">end</span>
992
+ 113: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span>
993
+ 114: <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">nil?</span>
994
+ 115: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_alert1_more_details'</span>,
995
+ 116: <span class="ruby-node">&quot;Task #{taskId} has an elevated alert level and must &quot;</span> <span class="ruby-operator">+</span>
996
+ 117: <span class="ruby-value str">&quot;have a summary or details section.&quot;</span>)
997
+ 118: <span class="ruby-keyword kw">end</span>
998
+ 119: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">alertLevel</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">nil?</span>
999
+ 120: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'ts_alert2_more_details'</span>,
1000
+ 121: <span class="ruby-node">&quot;Task #{taskId} has a high alert level and must have &quot;</span> <span class="ruby-operator">+</span>
1001
+ 122: <span class="ruby-value str">&quot;a details section.&quot;</span>)
1002
+ 123: <span class="ruby-keyword kw">end</span>
1003
+ 124: <span class="ruby-keyword kw">end</span>
1004
+ 125: <span class="ruby-keyword kw">end</span></pre>
999
1005
  </div>
1000
1006
 
1001
1007
  </div>
@@ -1028,10 +1034,10 @@ The planned end of the task.
1028
1034
  <div class="method-source-code"
1029
1035
  id="plan-nd-source">
1030
1036
  <pre>
1031
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 228</span>
1032
- 228: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planEnd</span>
1033
- 229: <span class="ruby-ivar">@task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>]
1034
- 230: <span class="ruby-keyword kw">end</span></pre>
1037
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 229</span>
1038
+ 229: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planEnd</span>
1039
+ 230: <span class="ruby-ivar">@task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>]
1040
+ 231: <span class="ruby-keyword kw">end</span></pre>
1035
1041
  </div>
1036
1042
 
1037
1043
  </div>
@@ -1064,15 +1070,15 @@ The remaining effort according to the plan.
1064
1070
  <div class="method-source-code"
1065
1071
  id="plan-emaining-source">
1066
1072
  <pre>
1067
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 213</span>
1068
- 213: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planRemaining</span>
1069
- 214: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>
1070
- 215: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span>
1071
- 216: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>
1072
- 217: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">project</span>[<span class="ruby-value str">'now'</span>], <span class="ruby-keyword kw">true</span>)
1073
- 218: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>])
1074
- 219: <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">resource</span>)
1075
- 220: <span class="ruby-keyword kw">end</span></pre>
1073
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 214</span>
1074
+ 214: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planRemaining</span>
1075
+ 215: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>
1076
+ 216: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span>
1077
+ 217: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>
1078
+ 218: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">project</span>[<span class="ruby-value str">'now'</span>], <span class="ruby-keyword kw">true</span>)
1079
+ 219: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>])
1080
+ 220: <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>, <span class="ruby-identifier">resource</span>)
1081
+ 221: <span class="ruby-keyword kw">end</span></pre>
1076
1082
  </div>
1077
1083
 
1078
1084
  </div>
@@ -1105,17 +1111,17 @@ The planned work in % (0.0 - 100.0) of the average working time.
1105
1111
  <div class="method-source-code"
1106
1112
  id="plan-ork-ercent-source">
1107
1113
  <pre>
1108
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 195</span>
1109
- 195: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planWorkPercent</span>
1110
- 196: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>
1111
- 197: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span>
1112
- 198: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>
1113
- 199: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>)
1114
- 200: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>)
1115
- 201: (<span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>.<span class="ruby-identifier">getAllocatedSlots</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>,
1116
- 202: <span class="ruby-ivar">@task</span>).<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span>
1117
- 203: <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">totalGrossWorkingSlots</span>) * <span class="ruby-value">100.0</span>
1118
- 204: <span class="ruby-keyword kw">end</span></pre>
1114
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 196</span>
1115
+ 196: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">planWorkPercent</span>
1116
+ 197: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>
1117
+ 198: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span>
1118
+ 199: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>
1119
+ 200: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>)
1120
+ 201: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>)
1121
+ 202: (<span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>.<span class="ruby-identifier">getAllocatedSlots</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>,
1122
+ 203: <span class="ruby-ivar">@task</span>).<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span>
1123
+ 204: <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">totalGrossWorkingSlots</span>) * <span class="ruby-value">100.0</span>
1124
+ 205: <span class="ruby-keyword kw">end</span></pre>
1119
1125
  </div>
1120
1126
 
1121
1127
  </div>
@@ -1146,10 +1152,10 @@ The planned work in % (0.0 - 100.0) of the average working time.
1146
1152
  <div class="method-source-code"
1147
1153
  id="task-d-source">
1148
1154
  <pre>
1149
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 185</span>
1150
- 185: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">taskId</span>
1151
- 186: <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>) <span class="ruby-operator">?</span> <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">fullId</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">task</span>
1152
- 187: <span class="ruby-keyword kw">end</span></pre>
1155
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 186</span>
1156
+ 186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">taskId</span>
1157
+ 187: <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>) <span class="ruby-operator">?</span> <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">fullId</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">task</span>
1158
+ 188: <span class="ruby-keyword kw">end</span></pre>
1153
1159
  </div>
1154
1160
 
1155
1161
  </div>
@@ -1180,65 +1186,65 @@ The planned work in % (0.0 - 100.0) of the average working time.
1180
1186
  <div class="method-source-code"
1181
1187
  id="warn-n-elta-source">
1182
1188
  <pre>
1183
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 126</span>
1184
- 126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warnOnDelta</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
1185
- 127: <span class="ruby-comment cmt"># Ignore personal entries.</span>
1186
- 128: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@task</span>
1187
- 129:
1188
- 130: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>
1189
- 131: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
1190
- 132: <span class="ruby-comment cmt"># A resource has requested a new Task to be created.</span>
1191
- 133: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_new_task'</span>,
1192
- 134: <span class="ruby-node">&quot;#{resource.name} is requesting a new task:\n&quot;</span> <span class="ruby-operator">+</span>
1193
- 135: <span class="ruby-node">&quot; ID: #{@task}\n&quot;</span> <span class="ruby-operator">+</span>
1194
- 136: <span class="ruby-node">&quot; Name: #{@name}\n&quot;</span> <span class="ruby-operator">+</span>
1195
- 137: <span class="ruby-node">&quot; Work: #{@timeSheet.slotsToDays(@work)}d &quot;</span> <span class="ruby-operator">+</span>
1196
- 138: (<span class="ruby-ivar">@remaining</span> <span class="ruby-operator">?</span>
1197
- 139: <span class="ruby-node">&quot;Remaining: #{@timeSheet.slotsToDays(@remaining)}d&quot;</span> <span class="ruby-operator">:</span>
1198
- 140: <span class="ruby-node">&quot;End: #{@end.to_s}&quot;</span>))
1199
- 141: <span class="ruby-keyword kw">return</span>
1200
- 142: <span class="ruby-keyword kw">end</span>
1201
- 143:
1202
- 144: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>
1203
- 145: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span>
1204
- 146: <span class="ruby-identifier">plannedWork</span> = <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>,
1205
- 147: <span class="ruby-identifier">resource</span>)
1206
- 148: <span class="ruby-comment cmt"># Convert the @work slots into a daily load.</span>
1207
- 149: <span class="ruby-identifier">work</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-ivar">@work</span> * <span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
1208
- 150:
1209
- 151: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">work</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">plannedWork</span>
1210
- 152: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_work_delta'</span>,
1211
- 153: <span class="ruby-node">&quot;#{resource.name} worked &quot;</span> <span class="ruby-operator">+</span>
1212
- 154: <span class="ruby-node">&quot;#{work &lt; plannedWork ? 'less' : 'more'} &quot;</span> <span class="ruby-operator">+</span>
1213
- 155: <span class="ruby-node">&quot;on #{@task.fullId}\n&quot;</span> <span class="ruby-operator">+</span>
1214
- 156: <span class="ruby-node">&quot;#{work}d instead of #{plannedWork}d&quot;</span>)
1215
- 157: <span class="ruby-keyword kw">end</span>
1216
- 158: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@task</span>[<span class="ruby-value str">'effort'</span>, <span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
1217
- 159: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">endIdx</span>
1218
- 160: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>])
1219
- 161: <span class="ruby-identifier">remainingWork</span> = <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>,
1220
- 162: <span class="ruby-identifier">resource</span>)
1221
- 163: <span class="ruby-comment cmt"># Convert the @remaining slots into a daily load.</span>
1222
- 164: <span class="ruby-identifier">remaining</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-ivar">@remaining</span> *
1223
- 165: <span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
1224
- 166: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">remaining</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">remainingWork</span>
1225
- 167: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_remain_delta'</span>,
1226
- 168: <span class="ruby-node">&quot;#{resource.name} requests &quot;</span> <span class="ruby-operator">+</span>
1227
- 169: <span class="ruby-node">&quot;#{remaining &lt; remainingWork ? 'less' : 'more'} &quot;</span> <span class="ruby-operator">+</span>
1228
- 170: <span class="ruby-node">&quot;remaining effort for task #{@task.fullId}\n&quot;</span> <span class="ruby-operator">+</span>
1229
- 171: <span class="ruby-node">&quot;#{remaining}d instead of #{remainingWork}d&quot;</span>)
1230
- 172: <span class="ruby-keyword kw">end</span>
1231
- 173: <span class="ruby-keyword kw">else</span>
1232
- 174: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@expectedEnd</span> <span class="ruby-operator">!=</span> <span class="ruby-ivar">@task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>]
1233
- 175: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_end_delta'</span>,
1234
- 176: <span class="ruby-node">&quot;#{resource.name} requests &quot;</span> <span class="ruby-operator">+</span>
1235
- 177: <span class="ruby-node">&quot;#{@expectedEnd &lt; @task['end', scenarioIdx] ?
1236
- 178: 'earlier' : 'later'} end (#{@expectedEnd}) for task &quot;</span> <span class="ruby-operator">+</span>
1237
- 179: <span class="ruby-node">&quot;#{@task.fullId}. Planned end is &quot;</span> <span class="ruby-operator">+</span>
1238
- 180: <span class="ruby-node">&quot;#{@task['end', scenarioIdx]}.&quot;</span>)
1239
- 181: <span class="ruby-keyword kw">end</span>
1240
- 182: <span class="ruby-keyword kw">end</span>
1241
- 183: <span class="ruby-keyword kw">end</span></pre>
1189
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 127</span>
1190
+ 127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warnOnDelta</span>(<span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>)
1191
+ 128: <span class="ruby-comment cmt"># Ignore personal entries.</span>
1192
+ 129: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@task</span>
1193
+ 130:
1194
+ 131: <span class="ruby-identifier">resource</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">resource</span>
1195
+ 132: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
1196
+ 133: <span class="ruby-comment cmt"># A resource has requested a new Task to be created.</span>
1197
+ 134: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_new_task'</span>,
1198
+ 135: <span class="ruby-node">&quot;#{resource.name} is requesting a new task:\n&quot;</span> <span class="ruby-operator">+</span>
1199
+ 136: <span class="ruby-node">&quot; ID: #{@task}\n&quot;</span> <span class="ruby-operator">+</span>
1200
+ 137: <span class="ruby-node">&quot; Name: #{@name}\n&quot;</span> <span class="ruby-operator">+</span>
1201
+ 138: <span class="ruby-node">&quot; Work: #{@timeSheet.slotsToDays(@work)}d &quot;</span> <span class="ruby-operator">+</span>
1202
+ 139: (<span class="ruby-ivar">@remaining</span> <span class="ruby-operator">?</span>
1203
+ 140: <span class="ruby-node">&quot;Remaining: #{@timeSheet.slotsToDays(@remaining)}d&quot;</span> <span class="ruby-operator">:</span>
1204
+ 141: <span class="ruby-node">&quot;End: #{@end.to_s}&quot;</span>))
1205
+ 142: <span class="ruby-keyword kw">return</span>
1206
+ 143: <span class="ruby-keyword kw">end</span>
1207
+ 144:
1208
+ 145: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">scenarioIdx</span>
1209
+ 146: <span class="ruby-identifier">project</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">project</span>
1210
+ 147: <span class="ruby-identifier">plannedWork</span> = <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>,
1211
+ 148: <span class="ruby-identifier">resource</span>)
1212
+ 149: <span class="ruby-comment cmt"># Convert the @work slots into a daily load.</span>
1213
+ 150: <span class="ruby-identifier">work</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-ivar">@work</span> * <span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
1214
+ 151:
1215
+ 152: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">work</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">plannedWork</span>
1216
+ 153: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_work_delta'</span>,
1217
+ 154: <span class="ruby-node">&quot;#{resource.name} worked &quot;</span> <span class="ruby-operator">+</span>
1218
+ 155: <span class="ruby-node">&quot;#{work &lt; plannedWork ? 'less' : 'more'} &quot;</span> <span class="ruby-operator">+</span>
1219
+ 156: <span class="ruby-node">&quot;on #{@task.fullId}\n&quot;</span> <span class="ruby-operator">+</span>
1220
+ 157: <span class="ruby-node">&quot;#{work}d instead of #{plannedWork}d&quot;</span>)
1221
+ 158: <span class="ruby-keyword kw">end</span>
1222
+ 159: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@task</span>[<span class="ruby-value str">'effort'</span>, <span class="ruby-identifier">scenarioIdx</span>] <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
1223
+ 160: <span class="ruby-identifier">startIdx</span> = <span class="ruby-identifier">endIdx</span>
1224
+ 161: <span class="ruby-identifier">endIdx</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>])
1225
+ 162: <span class="ruby-identifier">remainingWork</span> = <span class="ruby-ivar">@task</span>.<span class="ruby-identifier">getEffectiveWork</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">startIdx</span>, <span class="ruby-identifier">endIdx</span>,
1226
+ 163: <span class="ruby-identifier">resource</span>)
1227
+ 164: <span class="ruby-comment cmt"># Convert the @remaining slots into a daily load.</span>
1228
+ 165: <span class="ruby-identifier">remaining</span> = <span class="ruby-identifier">project</span>.<span class="ruby-identifier">convertToDailyLoad</span>(<span class="ruby-ivar">@remaining</span> *
1229
+ 166: <span class="ruby-identifier">project</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
1230
+ 167: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">remaining</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">remainingWork</span>
1231
+ 168: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_remain_delta'</span>,
1232
+ 169: <span class="ruby-node">&quot;#{resource.name} requests &quot;</span> <span class="ruby-operator">+</span>
1233
+ 170: <span class="ruby-node">&quot;#{remaining &lt; remainingWork ? 'less' : 'more'} &quot;</span> <span class="ruby-operator">+</span>
1234
+ 171: <span class="ruby-node">&quot;remaining effort for task #{@task.fullId}\n&quot;</span> <span class="ruby-operator">+</span>
1235
+ 172: <span class="ruby-node">&quot;#{remaining}d instead of #{remainingWork}d&quot;</span>)
1236
+ 173: <span class="ruby-keyword kw">end</span>
1237
+ 174: <span class="ruby-keyword kw">else</span>
1238
+ 175: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@expectedEnd</span> <span class="ruby-operator">!=</span> <span class="ruby-ivar">@task</span>[<span class="ruby-value str">'end'</span>, <span class="ruby-identifier">scenarioIdx</span>]
1239
+ 176: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ts_res_end_delta'</span>,
1240
+ 177: <span class="ruby-node">&quot;#{resource.name} requests &quot;</span> <span class="ruby-operator">+</span>
1241
+ 178: <span class="ruby-node">&quot;#{@expectedEnd &lt; @task['end', scenarioIdx] ?
1242
+ 179: 'earlier' : 'later'} end (#{@expectedEnd}) for task &quot;</span> <span class="ruby-operator">+</span>
1243
+ 180: <span class="ruby-node">&quot;#{@task.fullId}. Planned end is &quot;</span> <span class="ruby-operator">+</span>
1244
+ 181: <span class="ruby-node">&quot;#{@task['end', scenarioIdx]}.&quot;</span>)
1245
+ 182: <span class="ruby-keyword kw">end</span>
1246
+ 183: <span class="ruby-keyword kw">end</span>
1247
+ 184: <span class="ruby-keyword kw">end</span></pre>
1242
1248
  </div>
1243
1249
 
1244
1250
  </div>
@@ -1273,15 +1279,15 @@ rage of 0.0 to 1.0.
1273
1279
  <div class="method-source-code"
1274
1280
  id="work--source">
1275
1281
  <pre>
1276
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 49</span>
1277
- 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">work=</span>(<span class="ruby-identifier">value</span>)
1278
- 50: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>)
1279
- 51: <span class="ruby-ivar">@work</span> = <span class="ruby-identifier">value</span>
1280
- 52: <span class="ruby-keyword kw">else</span>
1281
- 53: <span class="ruby-comment cmt"># Must be percent value</span>
1282
- 54: <span class="ruby-ivar">@work</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">percentToSlots</span>(<span class="ruby-identifier">value</span>)
1283
- 55: <span class="ruby-keyword kw">end</span>
1284
- 56: <span class="ruby-keyword kw">end</span></pre>
1282
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 50</span>
1283
+ 50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">work=</span>(<span class="ruby-identifier">value</span>)
1284
+ 51: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>)
1285
+ 52: <span class="ruby-ivar">@work</span> = <span class="ruby-identifier">value</span>
1286
+ 53: <span class="ruby-keyword kw">else</span>
1287
+ 54: <span class="ruby-comment cmt"># Must be percent value</span>
1288
+ 55: <span class="ruby-ivar">@work</span> = <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">percentToSlots</span>(<span class="ruby-identifier">value</span>)
1289
+ 56: <span class="ruby-keyword kw">end</span>
1290
+ 57: <span class="ruby-keyword kw">end</span></pre>
1285
1291
  </div>
1286
1292
 
1287
1293
  </div>
@@ -1318,10 +1324,10 @@ rage of 0.0 to 1.0.
1318
1324
  <div class="method-source-code"
1319
1325
  id="error-source">
1320
1326
  <pre>
1321
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 234</span>
1322
- 234: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>)
1323
- 235: <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-ivar">@sourceFileInfo</span>)
1324
- 236: <span class="ruby-keyword kw">end</span></pre>
1327
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 235</span>
1328
+ 235: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>)
1329
+ 236: <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-ivar">@sourceFileInfo</span>)
1330
+ 237: <span class="ruby-keyword kw">end</span></pre>
1325
1331
  </div>
1326
1332
 
1327
1333
  </div>
@@ -1352,10 +1358,10 @@ rage of 0.0 to 1.0.
1352
1358
  <div class="method-source-code"
1353
1359
  id="warning-source">
1354
1360
  <pre>
1355
- <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 238</span>
1356
- 238: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>)
1357
- 239: <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-ivar">@sourceFileInfo</span>)
1358
- 240: <span class="ruby-keyword kw">end</span></pre>
1361
+ <span class="ruby-comment cmt"># File lib/TimeSheets.rb, line 239</span>
1362
+ 239: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>)
1363
+ 240: <span class="ruby-ivar">@timeSheet</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-ivar">@sourceFileInfo</span>)
1364
+ 241: <span class="ruby-keyword kw">end</span></pre>
1359
1365
  </div>
1360
1366
 
1361
1367
  </div>