taskjuggler 0.0.11 → 0.1.0

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 (697) hide show
  1. data/CHANGELOG +6 -1550
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/benchmarks/profile.clt +36082 -0
  4. data/benchmarks/profile.html +58182 -0
  5. data/benchmarks/runbench.rb +2 -2
  6. data/data/css/tjmanual.css +0 -1
  7. data/doc/AppConfig.html +1491 -0
  8. data/doc/CHANGELOG.html +557 -0
  9. data/doc/COPYING.html +899 -0
  10. data/doc/Diff.html +1193 -0
  11. data/doc/Diff/Hunk.html +1026 -0
  12. data/doc/Diffable.html +684 -0
  13. data/doc/DiffableString.html +684 -0
  14. data/doc/Object.html +720 -0
  15. data/doc/README_rdoc.html +742 -0
  16. data/doc/RuntimeConfig.html +856 -0
  17. data/doc/String.html +1005 -0
  18. data/doc/TaskJuggler.html +2639 -0
  19. data/doc/TaskJuggler/Account.html +753 -0
  20. data/doc/TaskJuggler/AccountAttribute.html +769 -0
  21. data/doc/TaskJuggler/AccountScenario.html +712 -0
  22. data/doc/TaskJuggler/Allocation.html +963 -0
  23. data/doc/TaskJuggler/AllocationAttribute.html +799 -0
  24. data/doc/TaskJuggler/AttributeBase.html +1328 -0
  25. data/doc/TaskJuggler/AttributeDefinition.html +815 -0
  26. data/doc/TaskJuggler/AttributeOverwrite.html +606 -0
  27. data/doc/TaskJuggler/BatchProcessor.html +1178 -0
  28. data/doc/TaskJuggler/Booking.html +859 -0
  29. data/doc/TaskJuggler/BookingListAttribute.html +769 -0
  30. data/doc/TaskJuggler/BooleanAttribute.html +769 -0
  31. data/doc/TaskJuggler/CSVFile.html +1128 -0
  32. data/doc/TaskJuggler/CellSettingPattern.html +700 -0
  33. data/doc/TaskJuggler/CellSettingPatternList.html +749 -0
  34. data/doc/TaskJuggler/Charge.html +777 -0
  35. data/doc/TaskJuggler/ChargeListAttribute.html +733 -0
  36. data/doc/TaskJuggler/ChargeSet.html +949 -0
  37. data/doc/TaskJuggler/ChargeSetListAttribute.html +778 -0
  38. data/doc/TaskJuggler/CollisionDetector.html +1089 -0
  39. data/doc/TaskJuggler/ColumnListAttribute.html +733 -0
  40. data/doc/TaskJuggler/ColumnTable.html +763 -0
  41. data/doc/TaskJuggler/Daemon.html +819 -0
  42. data/doc/TaskJuggler/DataCache.html +1025 -0
  43. data/doc/TaskJuggler/DataCacheEntry.html +737 -0
  44. data/doc/TaskJuggler/DateAttribute.html +737 -0
  45. data/doc/TaskJuggler/DefinitionListAttribute.html +655 -0
  46. data/doc/TaskJuggler/DependencyListAttribute.html +773 -0
  47. data/doc/TaskJuggler/DurationAttribute.html +770 -0
  48. data/doc/TaskJuggler/FileList.html +793 -0
  49. data/doc/TaskJuggler/FileRecord.html +702 -0
  50. data/doc/TaskJuggler/FixnumAttribute.html +691 -0
  51. data/doc/TaskJuggler/FlagListAttribute.html +769 -0
  52. data/doc/TaskJuggler/FloatAttribute.html +733 -0
  53. data/doc/TaskJuggler/FormatListAttribute.html +697 -0
  54. data/doc/TaskJuggler/GanttChart.html +1487 -0
  55. data/doc/TaskJuggler/GanttContainer.html +945 -0
  56. data/doc/TaskJuggler/GanttHeader.html +948 -0
  57. data/doc/TaskJuggler/GanttHeaderScaleItem.html +762 -0
  58. data/doc/TaskJuggler/GanttLine.html +1325 -0
  59. data/doc/TaskJuggler/GanttLoadStack.html +828 -0
  60. data/doc/TaskJuggler/GanttMilestone.html +926 -0
  61. data/doc/TaskJuggler/GanttRouter.html +1136 -0
  62. data/doc/TaskJuggler/GanttTaskBar.html +948 -0
  63. data/doc/TaskJuggler/HTMLDocument.html +754 -0
  64. data/doc/TaskJuggler/HTMLElements.html +599 -0
  65. data/doc/TaskJuggler/HTMLGraphics.html +837 -0
  66. data/doc/TaskJuggler/Interval.html +1076 -0
  67. data/doc/TaskJuggler/IntervalList.html +797 -0
  68. data/doc/TaskJuggler/IntervalListAttribute.html +773 -0
  69. data/doc/TaskJuggler/JobInfo.html +943 -0
  70. data/doc/TaskJuggler/Journal.html +1248 -0
  71. data/doc/TaskJuggler/JournalEntry.html +860 -0
  72. data/doc/TaskJuggler/JournalEntryList.html +1229 -0
  73. data/doc/TaskJuggler/KeywordArray.html +696 -0
  74. data/doc/TaskJuggler/KeywordDocumentation.html +2250 -0
  75. data/doc/TaskJuggler/Limits.html +1036 -0
  76. data/doc/TaskJuggler/Limits/Limit.html +947 -0
  77. data/doc/TaskJuggler/LimitsAttribute.html +734 -0
  78. data/doc/TaskJuggler/ListAttributeBase.html +703 -0
  79. data/doc/TaskJuggler/Log.html +1163 -0
  80. data/doc/TaskJuggler/LogFile.html +980 -0
  81. data/doc/TaskJuggler/LogicalAttribute.html +760 -0
  82. data/doc/TaskJuggler/LogicalExpression.html +801 -0
  83. data/doc/TaskJuggler/LogicalExpressionAttribute.html +691 -0
  84. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +691 -0
  85. data/doc/TaskJuggler/LogicalFlag.html +753 -0
  86. data/doc/TaskJuggler/LogicalFunction.html +1409 -0
  87. data/doc/TaskJuggler/LogicalOperation.html +1144 -0
  88. data/doc/TaskJuggler/ManagerResponsibilities.html +736 -0
  89. data/doc/TaskJuggler/ManagerStatusRecord.html +740 -0
  90. data/doc/TaskJuggler/Message.html +837 -0
  91. data/doc/TaskJuggler/MessageHandler.html +1056 -0
  92. data/doc/TaskJuggler/Navigator.html +943 -0
  93. data/doc/TaskJuggler/NavigatorElement.html +994 -0
  94. data/doc/TaskJuggler/NikuProject.html +724 -0
  95. data/doc/TaskJuggler/NikuReport.html +1470 -0
  96. data/doc/TaskJuggler/NikuResource.html +694 -0
  97. data/doc/TaskJuggler/NodeListAttribute.html +655 -0
  98. data/doc/TaskJuggler/PlaceHolderCell.html +748 -0
  99. data/doc/TaskJuggler/ProcessIntercom.html +1017 -0
  100. data/doc/TaskJuggler/ProcessIntercomIface.html +773 -0
  101. data/doc/TaskJuggler/Project.html +3478 -0
  102. data/doc/TaskJuggler/ProjectBroker.html +1676 -0
  103. data/doc/TaskJuggler/ProjectBrokerIface.html +851 -0
  104. data/doc/TaskJuggler/ProjectFileParser.html +2102 -0
  105. data/doc/TaskJuggler/ProjectFileScanner.html +1896 -0
  106. data/doc/TaskJuggler/ProjectRecord.html +978 -0
  107. data/doc/TaskJuggler/ProjectServer.html +1249 -0
  108. data/doc/TaskJuggler/ProjectServerIface.html +868 -0
  109. data/doc/TaskJuggler/PropertyAttribute.html +691 -0
  110. data/doc/TaskJuggler/PropertyList.html +1399 -0
  111. data/doc/TaskJuggler/PropertySet.html +1796 -0
  112. data/doc/TaskJuggler/PropertyTreeNode.html +2851 -0
  113. data/doc/TaskJuggler/Query.html +1756 -0
  114. data/doc/TaskJuggler/RTFHandlers.html +664 -0
  115. data/doc/TaskJuggler/RTFNavigator.html +792 -0
  116. data/doc/TaskJuggler/RTFQuery.html +1083 -0
  117. data/doc/TaskJuggler/RTFReport.html +820 -0
  118. data/doc/TaskJuggler/RTFReportLink.html +812 -0
  119. data/doc/TaskJuggler/RTFWithQuerySupport.html +702 -0
  120. data/doc/TaskJuggler/RealFormat.html +805 -0
  121. data/doc/TaskJuggler/RealFormatAttribute.html +655 -0
  122. data/doc/TaskJuggler/ReferenceAttribute.html +880 -0
  123. data/doc/TaskJuggler/Report.html +1501 -0
  124. data/doc/TaskJuggler/ReportBase.html +1266 -0
  125. data/doc/TaskJuggler/ReportContext.html +837 -0
  126. data/doc/TaskJuggler/ReportServer.html +1068 -0
  127. data/doc/TaskJuggler/ReportServerIface.html +902 -0
  128. data/doc/TaskJuggler/ReportServerRecord.html +781 -0
  129. data/doc/TaskJuggler/ReportServlet.html +1029 -0
  130. data/doc/TaskJuggler/ReportTable.html +1179 -0
  131. data/doc/TaskJuggler/ReportTableCell.html +1666 -0
  132. data/doc/TaskJuggler/ReportTableColumn.html +890 -0
  133. data/doc/TaskJuggler/ReportTableLegend.html +1060 -0
  134. data/doc/TaskJuggler/ReportTableLine.html +1067 -0
  135. data/doc/TaskJuggler/Resource.html +1004 -0
  136. data/doc/TaskJuggler/ResourceListAttribute.html +829 -0
  137. data/doc/TaskJuggler/ResourceListRE.html +737 -0
  138. data/doc/TaskJuggler/ResourceScenario.html +2549 -0
  139. data/doc/TaskJuggler/RichText.html +879 -0
  140. data/doc/TaskJuggler/RichTextAttribute.html +811 -0
  141. data/doc/TaskJuggler/RichTextDocument.html +1038 -0
  142. data/doc/TaskJuggler/RichTextElement.html +1780 -0
  143. data/doc/TaskJuggler/RichTextFunctionExample.html +799 -0
  144. data/doc/TaskJuggler/RichTextFunctionHandler.html +750 -0
  145. data/doc/TaskJuggler/RichTextImage.html +712 -0
  146. data/doc/TaskJuggler/RichTextIntermediate.html +1285 -0
  147. data/doc/TaskJuggler/RichTextParser.html +868 -0
  148. data/doc/TaskJuggler/RichTextScanner.html +1565 -0
  149. data/doc/TaskJuggler/RichTextSnip.html +1000 -0
  150. data/doc/TaskJuggler/RichTextSyntaxRules.html +2052 -0
  151. data/doc/TaskJuggler/Scenario.html +656 -0
  152. data/doc/TaskJuggler/ScenarioData.html +838 -0
  153. data/doc/TaskJuggler/ScenarioListAttribute.html +733 -0
  154. data/doc/TaskJuggler/Scoreboard.html +1201 -0
  155. data/doc/TaskJuggler/SheetHandlerBase.html +1297 -0
  156. data/doc/TaskJuggler/SheetReceiver.html +1398 -0
  157. data/doc/TaskJuggler/SheetSender.html +1168 -0
  158. data/doc/TaskJuggler/Shift.html +751 -0
  159. data/doc/TaskJuggler/ShiftAssignment.html +1008 -0
  160. data/doc/TaskJuggler/ShiftAssignments.html +1413 -0
  161. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +734 -0
  162. data/doc/TaskJuggler/ShiftScenario.html +782 -0
  163. data/doc/TaskJuggler/SimpleQueryExpander.html +732 -0
  164. data/doc/TaskJuggler/SortListAttribute.html +691 -0
  165. data/doc/TaskJuggler/StatusSheetReceiver.html +678 -0
  166. data/doc/TaskJuggler/StatusSheetReport.html +935 -0
  167. data/doc/TaskJuggler/StatusSheetSender.html +808 -0
  168. data/doc/TaskJuggler/StdIoWrapper.html +696 -0
  169. data/doc/TaskJuggler/StringAttribute.html +733 -0
  170. data/doc/TaskJuggler/SymbolAttribute.html +691 -0
  171. data/doc/TaskJuggler/SyntaxReference.html +1240 -0
  172. data/doc/TaskJuggler/TOCEntry.html +836 -0
  173. data/doc/TaskJuggler/TSResourceRecord.html +732 -0
  174. data/doc/TaskJuggler/TSTaskRecord.html +744 -0
  175. data/doc/TaskJuggler/TableColumnDefinition.html +949 -0
  176. data/doc/TaskJuggler/TableOfContents.html +790 -0
  177. data/doc/TaskJuggler/TableReport.html +2555 -0
  178. data/doc/TaskJuggler/Task.html +890 -0
  179. data/doc/TaskJuggler/TaskDepListAttribute.html +773 -0
  180. data/doc/TaskJuggler/TaskDependency.html +832 -0
  181. data/doc/TaskJuggler/TaskListAttribute.html +773 -0
  182. data/doc/TaskJuggler/TaskListRE.html +736 -0
  183. data/doc/TaskJuggler/TaskScenario.html +5180 -0
  184. data/doc/TaskJuggler/TernarySearchTree.html +1341 -0
  185. data/doc/TaskJuggler/TextFormatter.html +973 -0
  186. data/doc/TaskJuggler/TextParser.html +1862 -0
  187. data/doc/TaskJuggler/TextParser/Macro.html +708 -0
  188. data/doc/TaskJuggler/TextParser/MacroTable.html +832 -0
  189. data/doc/TaskJuggler/TextParser/Pattern.html +1743 -0
  190. data/doc/TaskJuggler/TextParser/Rule.html +1419 -0
  191. data/doc/TaskJuggler/TextParser/Scanner.html +1516 -0
  192. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +661 -0
  193. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +727 -0
  194. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +724 -0
  195. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +1095 -0
  196. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +760 -0
  197. data/doc/TaskJuggler/TextParser/StackElement.html +940 -0
  198. data/doc/TaskJuggler/TextParser/State.html +1015 -0
  199. data/doc/TaskJuggler/TextParser/StateTransition.html +808 -0
  200. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +711 -0
  201. data/doc/TaskJuggler/TextParser/TokenDoc.html +742 -0
  202. data/doc/TaskJuggler/TextReport.html +921 -0
  203. data/doc/TaskJuggler/TimeSheet.html +1264 -0
  204. data/doc/TaskJuggler/TimeSheetReceiver.html +675 -0
  205. data/doc/TaskJuggler/TimeSheetRecord.html +1415 -0
  206. data/doc/TaskJuggler/TimeSheetReport.html +1013 -0
  207. data/doc/TaskJuggler/TimeSheetSender.html +700 -0
  208. data/doc/TaskJuggler/TimeSheetSummary.html +959 -0
  209. data/doc/TaskJuggler/TimeSheets.html +736 -0
  210. data/doc/TaskJuggler/Tj3.html +857 -0
  211. data/doc/TaskJuggler/Tj3AppBase.html +942 -0
  212. data/doc/TaskJuggler/Tj3Client.html +1510 -0
  213. data/doc/TaskJuggler/Tj3Daemon.html +870 -0
  214. data/doc/TaskJuggler/Tj3Man.html +768 -0
  215. data/doc/TaskJuggler/Tj3SheetAppBase.html +758 -0
  216. data/doc/TaskJuggler/Tj3SsReceiver.html +747 -0
  217. data/doc/TaskJuggler/Tj3SsSender.html +780 -0
  218. data/doc/TaskJuggler/Tj3TsReceiver.html +747 -0
  219. data/doc/TaskJuggler/Tj3TsSender.html +767 -0
  220. data/doc/TaskJuggler/Tj3TsSummary.html +775 -0
  221. data/doc/TaskJuggler/TjException.html +692 -0
  222. data/doc/TaskJuggler/TjRuntimeError.html +606 -0
  223. data/doc/TaskJuggler/TjTime.html +3117 -0
  224. data/doc/TaskJuggler/TjpExample.html +897 -0
  225. data/doc/TaskJuggler/TjpExportRE.html +1772 -0
  226. data/doc/TaskJuggler/TjpSyntaxRules.html +14329 -0
  227. data/doc/TaskJuggler/URLParameter.html +691 -0
  228. data/doc/TaskJuggler/UserManual.html +1224 -0
  229. data/doc/TaskJuggler/VimSyntax.html +1064 -0
  230. data/doc/TaskJuggler/WebServer.html +757 -0
  231. data/doc/TaskJuggler/WelcomePage.html +789 -0
  232. data/doc/TaskJuggler/WorkingHours.html +1218 -0
  233. data/doc/TaskJuggler/WorkingHoursAttribute.html +756 -0
  234. data/doc/TaskJuggler/XMLBlob.html +707 -0
  235. data/doc/TaskJuggler/XMLComment.html +702 -0
  236. data/doc/TaskJuggler/XMLDocument.html +803 -0
  237. data/doc/TaskJuggler/XMLElement.html +990 -0
  238. data/doc/TaskJuggler/XMLNamedText.html +663 -0
  239. data/doc/TaskJuggler/XMLText.html +717 -0
  240. data/doc/index.html +4518 -0
  241. data/doc/lib/taskjuggler/AccountScenario_rb.html +69 -0
  242. data/doc/lib/taskjuggler/Account_rb.html +71 -0
  243. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +67 -0
  244. data/doc/lib/taskjuggler/Allocation_rb.html +71 -0
  245. data/doc/lib/taskjuggler/AppConfig_rb.html +69 -0
  246. data/doc/lib/taskjuggler/AttributeBase_rb.html +69 -0
  247. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +67 -0
  248. data/doc/lib/taskjuggler/Attributes_rb.html +83 -0
  249. data/doc/lib/taskjuggler/BatchProcessor_rb.html +71 -0
  250. data/doc/lib/taskjuggler/Booking_rb.html +67 -0
  251. data/doc/lib/taskjuggler/ChargeSet_rb.html +69 -0
  252. data/doc/lib/taskjuggler/Charge_rb.html +69 -0
  253. data/doc/lib/taskjuggler/DataCache_rb.html +71 -0
  254. data/doc/lib/taskjuggler/FileList_rb.html +67 -0
  255. data/doc/lib/taskjuggler/HTMLDocument_rb.html +71 -0
  256. data/doc/lib/taskjuggler/HTMLElements_rb.html +69 -0
  257. data/doc/lib/taskjuggler/IntervalList_rb.html +69 -0
  258. data/doc/lib/taskjuggler/Interval_rb.html +69 -0
  259. data/doc/lib/taskjuggler/Journal_rb.html +67 -0
  260. data/doc/lib/taskjuggler/KeywordArray_rb.html +67 -0
  261. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +77 -0
  262. data/doc/lib/taskjuggler/Limits_rb.html +69 -0
  263. data/doc/lib/taskjuggler/LogFile_rb.html +69 -0
  264. data/doc/lib/taskjuggler/Log_rb.html +71 -0
  265. data/doc/lib/taskjuggler/LogicalExpression_rb.html +73 -0
  266. data/doc/lib/taskjuggler/LogicalFunction_rb.html +69 -0
  267. data/doc/lib/taskjuggler/LogicalOperation_rb.html +69 -0
  268. data/doc/lib/taskjuggler/MessageHandler_rb.html +69 -0
  269. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +77 -0
  270. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +69 -0
  271. data/doc/lib/taskjuggler/Project_rb.html +113 -0
  272. data/doc/lib/taskjuggler/PropertyList_rb.html +67 -0
  273. data/doc/lib/taskjuggler/PropertySet_rb.html +71 -0
  274. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +67 -0
  275. data/doc/lib/taskjuggler/Query_rb.html +69 -0
  276. data/doc/lib/taskjuggler/RealFormat_rb.html +67 -0
  277. data/doc/lib/taskjuggler/ResourceScenario_rb.html +69 -0
  278. data/doc/lib/taskjuggler/Resource_rb.html +71 -0
  279. data/doc/lib/taskjuggler/RichText/Document_rb.html +73 -0
  280. data/doc/lib/taskjuggler/RichText/Element_rb.html +75 -0
  281. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +73 -0
  282. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +67 -0
  283. data/doc/lib/taskjuggler/RichText/Parser_rb.html +75 -0
  284. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +75 -0
  285. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +73 -0
  286. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +73 -0
  287. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +75 -0
  288. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +71 -0
  289. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +69 -0
  290. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +71 -0
  291. data/doc/lib/taskjuggler/RichText/Snip_rb.html +71 -0
  292. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +67 -0
  293. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +71 -0
  294. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +71 -0
  295. data/doc/lib/taskjuggler/RichText_rb.html +73 -0
  296. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +69 -0
  297. data/doc/lib/taskjuggler/ScenarioData_rb.html +71 -0
  298. data/doc/lib/taskjuggler/Scenario_rb.html +69 -0
  299. data/doc/lib/taskjuggler/Scoreboard_rb.html +69 -0
  300. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +75 -0
  301. data/doc/lib/taskjuggler/SheetReceiver_rb.html +81 -0
  302. data/doc/lib/taskjuggler/SheetSender_rb.html +79 -0
  303. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +71 -0
  304. data/doc/lib/taskjuggler/ShiftScenario_rb.html +69 -0
  305. data/doc/lib/taskjuggler/Shift_rb.html +71 -0
  306. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +69 -0
  307. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +69 -0
  308. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +69 -0
  309. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +67 -0
  310. data/doc/lib/taskjuggler/SyntaxReference_rb.html +75 -0
  311. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +67 -0
  312. data/doc/lib/taskjuggler/TaskDependency_rb.html +67 -0
  313. data/doc/lib/taskjuggler/TaskJuggler_rb.html +75 -0
  314. data/doc/lib/taskjuggler/TaskScenario_rb.html +71 -0
  315. data/doc/lib/taskjuggler/Task_rb.html +71 -0
  316. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +69 -0
  317. data/doc/lib/taskjuggler/TextFormatter_rb.html +69 -0
  318. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +67 -0
  319. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +71 -0
  320. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +69 -0
  321. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +77 -0
  322. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +67 -0
  323. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +67 -0
  324. data/doc/lib/taskjuggler/TextParser/State_rb.html +67 -0
  325. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +67 -0
  326. data/doc/lib/taskjuggler/TextParser_rb.html +79 -0
  327. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +69 -0
  328. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +69 -0
  329. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +69 -0
  330. data/doc/lib/taskjuggler/TimeSheets_rb.html +67 -0
  331. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +79 -0
  332. data/doc/lib/taskjuggler/Tj3Config_rb.html +71 -0
  333. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +69 -0
  334. data/doc/lib/taskjuggler/TjException_rb.html +67 -0
  335. data/doc/lib/taskjuggler/TjTime_rb.html +71 -0
  336. data/doc/lib/taskjuggler/TjpExample_rb.html +69 -0
  337. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +67 -0
  338. data/doc/lib/taskjuggler/URLParameter_rb.html +69 -0
  339. data/doc/lib/taskjuggler/UTF8String_rb.html +69 -0
  340. data/doc/lib/taskjuggler/UserManual_rb.html +81 -0
  341. data/doc/lib/taskjuggler/VimSyntax_rb.html +69 -0
  342. data/doc/lib/taskjuggler/WorkingHours_rb.html +71 -0
  343. data/doc/lib/taskjuggler/XMLDocument_rb.html +69 -0
  344. data/doc/lib/taskjuggler/XMLElement_rb.html +69 -0
  345. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +75 -0
  346. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +75 -0
  347. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +75 -0
  348. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +71 -0
  349. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +71 -0
  350. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +71 -0
  351. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +71 -0
  352. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +71 -0
  353. data/doc/lib/taskjuggler/apps/Tj3_rb.html +71 -0
  354. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +69 -0
  355. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +71 -0
  356. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +83 -0
  357. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +85 -0
  358. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +73 -0
  359. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +69 -0
  360. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +81 -0
  361. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +71 -0
  362. data/doc/lib/taskjuggler/deep_copy_rb.html +67 -0
  363. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +69 -0
  364. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +69 -0
  365. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +69 -0
  366. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +75 -0
  367. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +69 -0
  368. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +67 -0
  369. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +69 -0
  370. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +79 -0
  371. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +69 -0
  372. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +69 -0
  373. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +69 -0
  374. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +69 -0
  375. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +67 -0
  376. data/doc/lib/taskjuggler/reports/Navigator_rb.html +69 -0
  377. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +71 -0
  378. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +67 -0
  379. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +67 -0
  380. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +67 -0
  381. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +67 -0
  382. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +67 -0
  383. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +69 -0
  384. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +71 -0
  385. data/doc/lib/taskjuggler/reports/Report_rb.html +93 -0
  386. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +75 -0
  387. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +69 -0
  388. data/doc/lib/taskjuggler/reports/TableReport_rb.html +77 -0
  389. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +75 -0
  390. data/doc/lib/taskjuggler/reports/TextReport_rb.html +69 -0
  391. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +69 -0
  392. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +69 -0
  393. data/doc/lib/tj3_rb.html +69 -0
  394. data/doc/lib/tj3client_rb.html +69 -0
  395. data/doc/lib/tj3d_rb.html +69 -0
  396. data/doc/lib/tj3man_rb.html +69 -0
  397. data/doc/lib/tj3ss_receiver_rb.html +69 -0
  398. data/doc/lib/tj3ss_sender_rb.html +69 -0
  399. data/doc/lib/tj3ts_receiver_rb.html +69 -0
  400. data/doc/lib/tj3ts_sender_rb.html +69 -0
  401. data/doc/lib/tj3ts_summary_rb.html +69 -0
  402. data/doc/rdoc.css +706 -0
  403. data/examples/tutorial.tjp +2 -1
  404. data/lib/taskjuggler/Attributes.rb +33 -12
  405. data/lib/taskjuggler/DataCache.rb +17 -0
  406. data/lib/taskjuggler/FileList.rb +9 -0
  407. data/lib/taskjuggler/HTMLDocument.rb +19 -21
  408. data/lib/taskjuggler/HTMLElements.rb +46 -0
  409. data/lib/taskjuggler/Journal.rb +95 -46
  410. data/lib/taskjuggler/KeywordDocumentation.rb +248 -185
  411. data/lib/taskjuggler/LogicalExpression.rb +2 -2
  412. data/lib/taskjuggler/LogicalFunction.rb +22 -1
  413. data/lib/taskjuggler/LogicalOperation.rb +15 -5
  414. data/lib/taskjuggler/Project.rb +73 -16
  415. data/lib/taskjuggler/ProjectFileParser.rb +1 -1
  416. data/lib/taskjuggler/ProjectFileScanner.rb +27 -0
  417. data/lib/taskjuggler/PropertySet.rb +22 -45
  418. data/lib/taskjuggler/PropertyTreeNode.rb +99 -128
  419. data/lib/taskjuggler/Query.rb +39 -8
  420. data/lib/taskjuggler/Resource.rb +15 -6
  421. data/lib/taskjuggler/RichText/Document.rb +3 -3
  422. data/lib/taskjuggler/RichText/RTFQuery.rb +4 -4
  423. data/lib/taskjuggler/SheetHandlerBase.rb +14 -12
  424. data/lib/taskjuggler/SheetReceiver.rb +17 -15
  425. data/lib/taskjuggler/SheetSender.rb +16 -10
  426. data/{spec/support → lib/taskjuggler}/StdIoWrapper.rb +17 -0
  427. data/lib/taskjuggler/SyntaxReference.rb +2 -2
  428. data/lib/taskjuggler/TableColumnDefinition.rb +4 -3
  429. data/lib/taskjuggler/Task.rb +7 -2
  430. data/lib/taskjuggler/TaskJuggler.rb +74 -0
  431. data/lib/taskjuggler/TaskScenario.rb +62 -83
  432. data/lib/taskjuggler/TextParser.rb +20 -13
  433. data/lib/taskjuggler/TextParser/Scanner.rb +17 -1
  434. data/lib/taskjuggler/TimeSheetSummary.rb +9 -5
  435. data/lib/taskjuggler/TimeSheets.rb +6 -1
  436. data/lib/taskjuggler/Tj3AppBase.rb +41 -18
  437. data/lib/taskjuggler/Tj3Config.rb +1 -1
  438. data/lib/taskjuggler/TjTime.rb +6 -1
  439. data/lib/taskjuggler/TjpSyntaxRules.rb +408 -227
  440. data/lib/taskjuggler/UTF8String.rb +10 -0
  441. data/lib/taskjuggler/UserManual.rb +89 -81
  442. data/lib/taskjuggler/WorkingHours.rb +2 -3
  443. data/lib/taskjuggler/XMLDocument.rb +13 -4
  444. data/lib/taskjuggler/XMLElement.rb +31 -3
  445. data/lib/taskjuggler/apps/Tj3.rb +53 -21
  446. data/lib/taskjuggler/apps/Tj3Client.rb +19 -17
  447. data/lib/taskjuggler/apps/Tj3Daemon.rb +24 -21
  448. data/lib/taskjuggler/{Tj3Man.rb → apps/Tj3Man.rb} +2 -2
  449. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +14 -11
  450. data/lib/taskjuggler/apps/Tj3SsSender.rb +17 -14
  451. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +14 -11
  452. data/lib/taskjuggler/apps/Tj3TsSender.rb +16 -13
  453. data/lib/taskjuggler/apps/Tj3TsSummary.rb +16 -13
  454. data/lib/taskjuggler/reports/GanttChart.rb +1 -1
  455. data/lib/taskjuggler/reports/GanttRouter.rb +0 -2
  456. data/lib/taskjuggler/reports/GanttTaskBar.rb +2 -1
  457. data/lib/taskjuggler/reports/Navigator.rb +2 -1
  458. data/lib/taskjuggler/reports/NikuReport.rb +11 -7
  459. data/lib/taskjuggler/reports/ReportContext.rb +1 -0
  460. data/lib/taskjuggler/reports/StatusSheetReport.rb +7 -2
  461. data/lib/taskjuggler/reports/TableReport.rb +6 -4
  462. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -0
  463. data/lib/taskjuggler/reports/TjpExportRE.rb +4 -4
  464. data/lib/tj3man.rb +1 -1
  465. data/manual/Day_To_Day_Juggling +134 -137
  466. data/manual/TaskJuggler_2x_Migration +39 -32
  467. data/manual/The_TaskJuggler_Syntax +6 -0
  468. data/prj_cfg.rb +2 -3
  469. data/spec/StatusSheets_spec.rb +314 -0
  470. data/spec/TimeSheets_spec.rb +237 -16
  471. data/spec/Tj3_spec.rb +1 -1
  472. data/spec/support/DaemonControl.rb +1 -1
  473. data/tasks/changelog.rake +13 -3
  474. data/tasks/manual.rake +1 -1
  475. data/test/TestSuite/CSV-Reports/refs/celltext.csv +1 -1
  476. data/test/TestSuite/CSV-Reports/refs/resourcereport.csv +1 -1
  477. data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +1 -1
  478. data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +1 -1
  479. data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +1 -1
  480. data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +1 -1
  481. data/test/TestSuite/CSV-Reports/refs/taskreport.csv +1 -1
  482. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +1 -1
  483. data/test/TestSuite/CSV-Reports/sortByTree.tjp +3 -1
  484. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +4 -1
  485. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +1 -1
  486. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +4 -1
  487. data/test/TestSuite/CSV-Reports/taskreport.tjp +3 -1
  488. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +3 -1
  489. data/test/TestSuite/CSV-Reports/weekly.tjp +1 -0
  490. data/test/TestSuite/Export-Reports/refs/Account.tjp +25 -30
  491. data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +1 -0
  492. data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +43 -72
  493. data/test/TestSuite/Export-Reports/refs/Alternative.tjp +17 -22
  494. data/test/TestSuite/Export-Reports/refs/AutoID.tjp +11 -10
  495. data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +1 -0
  496. data/test/TestSuite/Export-Reports/refs/Booking.tjp +16 -23
  497. data/test/TestSuite/Export-Reports/refs/Caption.tjp +13 -16
  498. data/test/TestSuite/Export-Reports/refs/Celltext.tjp +12 -16
  499. data/test/TestSuite/Export-Reports/refs/Comments.tjp +15 -19
  500. data/test/TestSuite/Export-Reports/refs/Complete.tjp +17 -26
  501. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  502. data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +1 -0
  503. data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +1 -0
  504. data/test/TestSuite/Export-Reports/refs/Depends1.tjp +5 -4
  505. data/test/TestSuite/Export-Reports/refs/Durations.tjp +18 -27
  506. data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +21 -20
  507. data/test/TestSuite/Export-Reports/refs/EnvVar.tjp +21 -0
  508. data/test/TestSuite/Export-Reports/refs/Flags.tjp +6 -5
  509. data/test/TestSuite/Export-Reports/refs/Gap.tjp +2 -1
  510. data/test/TestSuite/Export-Reports/refs/HtmlTaskReport.tjp +15 -19
  511. data/test/TestSuite/Export-Reports/refs/Include.tjp +21 -20
  512. data/test/TestSuite/Export-Reports/refs/Journal.tjp +6 -5
  513. data/test/TestSuite/Export-Reports/refs/Limits-1.tjp +92 -140
  514. data/test/TestSuite/Export-Reports/refs/LoadUnits.tjp +293 -566
  515. data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +1 -0
  516. data/test/TestSuite/Export-Reports/refs/LogicalFunction.tjp +17 -22
  517. data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +32 -53
  518. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +1 -0
  519. data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +1 -0
  520. data/test/TestSuite/Export-Reports/refs/Manager.tjp +51 -50
  521. data/test/TestSuite/Export-Reports/refs/Mandatory.tjp +22 -31
  522. data/test/TestSuite/Export-Reports/refs/Milestone.tjp +1 -0
  523. data/test/TestSuite/Export-Reports/refs/MinMax.tjp +2 -1
  524. data/test/TestSuite/Export-Reports/refs/Niku.tjp +80 -139
  525. data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +1 -0
  526. data/test/TestSuite/Export-Reports/refs/Period.tjp +1 -0
  527. data/test/TestSuite/Export-Reports/refs/Persistent.tjp +17 -21
  528. data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +1 -0
  529. data/test/TestSuite/Export-Reports/refs/Priority.tjp +121 -107
  530. data/test/TestSuite/Export-Reports/refs/Project.tjp +1 -0
  531. data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +1 -0
  532. data/test/TestSuite/Export-Reports/refs/Query.tjp +17 -26
  533. data/test/TestSuite/Export-Reports/refs/Reports.tjp +42 -61
  534. data/test/TestSuite/Export-Reports/refs/Resource.tjp +21 -20
  535. data/test/TestSuite/Export-Reports/refs/ResourcePrefix.tjp +16 -20
  536. data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +36 -35
  537. data/test/TestSuite/Export-Reports/refs/Responsible.tjp +17 -21
  538. data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +36 -35
  539. data/test/TestSuite/Export-Reports/refs/Scenario.tjp +3 -1
  540. data/test/TestSuite/Export-Reports/refs/Scheduling.tjp +1 -0
  541. data/test/TestSuite/Export-Reports/refs/Select.tjp +29 -43
  542. data/test/TestSuite/Export-Reports/refs/Shift.tjp +12 -11
  543. data/test/TestSuite/Export-Reports/refs/Simple.tjp +15 -19
  544. data/test/TestSuite/Export-Reports/refs/StatusSheet.tjp +33 -47
  545. data/test/TestSuite/Export-Reports/refs/String.tjp +9 -10
  546. data/test/TestSuite/Export-Reports/refs/Supplement.tjp +7 -8
  547. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +10 -11
  548. data/test/TestSuite/Export-Reports/refs/TaskRoot.tjp +10 -9
  549. data/test/TestSuite/Export-Reports/refs/TimeFrame.tjp +9 -9
  550. data/test/TestSuite/Export-Reports/refs/TimeSheet1.tjp +25 -37
  551. data/test/TestSuite/Export-Reports/refs/Timezone.tjp +1 -0
  552. data/test/TestSuite/Export-Reports/refs/Vacation.tjp +26 -25
  553. data/test/TestSuite/Export-Reports/refs/tutorial.tjp +453 -821
  554. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  555. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  556. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  557. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  558. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  559. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  560. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  561. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  562. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  563. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  564. data/test/TestSuite/{ReportGenerator/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  565. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +27 -3
  566. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions3.tjp +20 -0
  567. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions4.tjp +16 -0
  568. data/test/TestSuite/ReportGenerator/Correct/refs/DependencyList-1.csv +4 -0
  569. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +2 -0
  570. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-2.csv +8 -0
  571. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions3-1.csv +4 -0
  572. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions4-1.csv +2 -0
  573. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +3 -1
  574. data/test/TestSuite/Scheduler/Correct/Booking.tjp +8 -7
  575. data/test/TestSuite/Scheduler/Correct/Booking2.tjp +16 -9
  576. data/test/TestSuite/Scheduler/Correct/Booking3.tjp +28 -0
  577. data/test/TestSuite/Scheduler/Correct/Container.tjp +2 -2
  578. data/test/TestSuite/Scheduler/Correct/Depends.tjp +3 -3
  579. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +4 -4
  580. data/test/TestSuite/Scheduler/Correct/Limits.tjp +3 -1
  581. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +2 -2
  582. data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +2 -2
  583. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +2 -2
  584. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +3 -3
  585. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +3 -3
  586. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +3 -3
  587. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +7 -7
  588. data/test/TestSuite/Scheduler/Correct/Scenarios.tjp +2 -2
  589. data/test/TestSuite/Scheduler/Correct/Shift.tjp +7 -5
  590. data/test/TestSuite/Scheduler/Correct/Shift2.tjp +1 -1
  591. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +5 -2
  592. data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +1 -1
  593. data/test/TestSuite/Scheduler/Errors/ts_alert1_more_details.tjp +4 -2
  594. data/test/TestSuite/Scheduler/Errors/ts_alert2_more_details.tjp +4 -2
  595. data/test/TestSuite/Scheduler/Errors/ts_no_expected_end.tjp +4 -2
  596. data/test/TestSuite/Scheduler/Errors/ts_no_headline1.tjp +4 -2
  597. data/test/TestSuite/Scheduler/Errors/ts_no_rem_or_end.tjp +4 -2
  598. data/test/TestSuite/Scheduler/Errors/ts_no_remaining.tjp +4 -2
  599. data/test/TestSuite/Scheduler/Errors/ts_no_status_work.tjp +4 -2
  600. data/test/TestSuite/Scheduler/Errors/ts_no_work.tjp +4 -2
  601. data/test/TestSuite/Scheduler/Errors/ts_res_new_task.tjp +5 -2
  602. data/test/TestSuite/Scheduler/Errors/ts_work_too_high.tjp +4 -2
  603. data/test/TestSuite/Scheduler/Errors/ts_work_too_low.tjp +4 -2
  604. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  605. data/test/TestSuite/StatusSheets/run +1 -1
  606. data/test/TestSuite/Syntax/Correct/Booking.tjp +0 -5
  607. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  608. data/test/TestSuite/Syntax/Correct/EnvVar.tjp +12 -0
  609. data/test/TestSuite/Syntax/Correct/Freeze.tjp +1 -3
  610. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +9 -5
  611. data/test/TestSuite/Syntax/Correct/Priority.tjp +22 -11
  612. data/test/TestSuite/Syntax/Correct/Scenario.tjp +1 -1
  613. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +2 -0
  614. data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +4 -4
  615. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +20 -0
  616. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -6
  617. data/test/TestSuite/Syntax/Correct/tutorial.tjp +2 -1
  618. data/test/TestSuite/Syntax/Errors/no_own_resource_booking.tjp +16 -0
  619. data/test/TestSuite/Syntax/Errors/no_own_task_booking.tjp +16 -0
  620. data/test/TestSuite/Syntax/Errors/resourceroot_leaf.tjp +10 -0
  621. data/test/TestSuite/Syntax/Errors/runaway_token.tjp +8 -0
  622. data/test/TestSuite/Syntax/Errors/sorting_bsi.tjp +11 -0
  623. data/test/TestSuite/Syntax/Errors/ss_no_tracking_scenario.tjp +14 -0
  624. data/test/TestSuite/Syntax/Errors/taskroot_leaf.tjp +8 -0
  625. data/test/TestSuite/Syntax/Errors/ts_bad_priority.tjp +4 -2
  626. data/test/TestSuite/Syntax/Errors/ts_default_details.tjp +4 -2
  627. data/test/TestSuite/Syntax/Errors/ts_default_summary.tjp +4 -2
  628. data/test/TestSuite/Syntax/Errors/ts_duplicate_task.tjp +4 -2
  629. data/test/TestSuite/Syntax/Errors/ts_end_too_early.tjp +4 -2
  630. data/test/TestSuite/Syntax/Errors/ts_headline_too_long.tjp +4 -2
  631. data/test/TestSuite/Syntax/Errors/ts_no_headline2.tjp +4 -2
  632. data/test/TestSuite/Syntax/Errors/ts_no_tracking_scenario.tjp +14 -0
  633. data/test/TestSuite/Syntax/Errors/ts_summary_too_long.tjp +4 -2
  634. data/test/TestSuite/Syntax/Errors/unknown_env_var.tjp +7 -0
  635. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  636. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  637. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  638. data/test/test_Export-Reports.rb +3 -0
  639. data/test/test_Journal.rb +4 -4
  640. data/test/test_PropertySet.rb +5 -5
  641. data/test/test_Syntax.rb +3 -0
  642. data/test/test_WorkingHours.rb +11 -18
  643. metadata +1012 -649
  644. data/lib/exchangebug.rb +0 -42
  645. data/lib/ruby-signal-bug.rb +0 -55
  646. data/spec/tj3client.log +0 -23
  647. data/test/TestSuite/CSV-Reports/alert.tjp +0 -9
  648. data/test/TestSuite/CSV-Reports/refs/alert.csv +0 -15
  649. data/test/TestSuite/Export-Reports/refs/CriticalPath.tjp +0 -41
  650. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -89
  651. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -79
  652. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  653. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  654. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -1
  655. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -78
  656. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -6
  657. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  658. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +0 -66
  659. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +0 -413
  660. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  661. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  662. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  663. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  664. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  665. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  666. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  667. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  668. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  669. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  670. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  671. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  672. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  673. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  674. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  675. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  676. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  677. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  678. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  679. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  680. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  681. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  682. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  683. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  684. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  685. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  686. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  687. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  688. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
  689. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  690. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  691. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  692. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +0 -33
  693. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  694. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  695. data/test/TestSuite/Syntax/Correct/niku.xml +0 -30
  696. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +0 -11
  697. data/test/TestSuite/TimeSheets/uu.txt +0 -29
@@ -0,0 +1,1413 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: TaskJuggler::ShiftAssignments</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="../js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="../js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="../index.html">Home</a>
29
+ <a href="../index.html#classes">Classes</a>
30
+ <a href="../index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="../lib/taskjuggler/ShiftAssignments_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/taskjuggler/ShiftAssignments.rb">lib/taskjuggler/ShiftAssignments.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+ <div id="parent-class-section" class="section">
56
+ <h3 class="section-header">Parent</h3>
57
+
58
+ <p class="link">Monitor</p>
59
+
60
+ </div>
61
+
62
+
63
+ <!-- Namespace Contents -->
64
+
65
+
66
+ <!-- Method Quickref -->
67
+
68
+ <div id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+ <ul class="link-list">
71
+
72
+ <li><a href="#method-c-deleteScoreboard">::deleteScoreboard</a></li>
73
+
74
+ <li><a href="#method-c-new">::new</a></li>
75
+
76
+ <li><a href="#method-c-sbClear">::sbClear</a></li>
77
+
78
+ <li><a href="#method-c-scoreboards">::scoreboards</a></li>
79
+
80
+ <li><a href="#method-i-addAssignment">#addAssignment</a></li>
81
+
82
+ <li><a href="#method-i-assigned%3F">#assigned?</a></li>
83
+
84
+ <li><a href="#method-i-collectTimeOffIntervals">#collectTimeOffIntervals</a></li>
85
+
86
+ <li><a href="#method-i-getSbSlot">#getSbSlot</a></li>
87
+
88
+ <li><a href="#method-i-hashKey">#hashKey</a></li>
89
+
90
+ <li><a href="#method-i-newScoreboard">#newScoreboard</a></li>
91
+
92
+ <li><a href="#method-i-onShift%3F">#onShift?</a></li>
93
+
94
+ <li><a href="#method-i-onVacation%3F">#onVacation?</a></li>
95
+
96
+ <li><a href="#method-i-overlaps%3F">#overlaps?</a></li>
97
+
98
+ <li><a href="#method-i-timeOff%3F">#timeOff?</a></li>
99
+
100
+ <li><a href="#method-i-to_s">#to_s</a></li>
101
+
102
+ </ul>
103
+ </div>
104
+
105
+
106
+ <!-- Included Modules -->
107
+
108
+ <div id="includes-section" class="section">
109
+ <h3 class="section-header">Included Modules</h3>
110
+ <ul class="link-list">
111
+
112
+
113
+ <li><span class="include">ObjectSpace</span></li>
114
+
115
+
116
+ </ul>
117
+ </div>
118
+
119
+ </div>
120
+
121
+ <div id="project-metadata">
122
+
123
+
124
+ <div id="fileindex-section" class="section project-section">
125
+ <h3 class="section-header">Files</h3>
126
+ <ul>
127
+
128
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
129
+
130
+ <li class="file"><a href="../COPYING.html">COPYING</a></li>
131
+
132
+ <li class="file"><a href="../README_rdoc.html">README.rdoc</a></li>
133
+
134
+ </ul>
135
+ </div>
136
+
137
+
138
+ <div id="classindex-section" class="section project-section">
139
+ <h3 class="section-header">Class Index
140
+ <span class="search-toggle"><img src="../images/find.png"
141
+ height="16" width="16" alt="[+]"
142
+ title="show/hide quicksearch" /></span></h3>
143
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
144
+ <fieldset>
145
+ <legend>Quicksearch</legend>
146
+ <input type="text" name="quicksearch" value=""
147
+ class="quicksearch-field" />
148
+ </fieldset>
149
+ </form>
150
+
151
+ <ul class="link-list">
152
+
153
+ <li><a href="../TaskJuggler.html">TaskJuggler</a></li>
154
+
155
+ <li><a href="../TaskJuggler/Account.html">TaskJuggler::Account</a></li>
156
+
157
+ <li><a href="../TaskJuggler/AccountAttribute.html">TaskJuggler::AccountAttribute</a></li>
158
+
159
+ <li><a href="../TaskJuggler/AccountScenario.html">TaskJuggler::AccountScenario</a></li>
160
+
161
+ <li><a href="../TaskJuggler/Allocation.html">TaskJuggler::Allocation</a></li>
162
+
163
+ <li><a href="../TaskJuggler/AllocationAttribute.html">TaskJuggler::AllocationAttribute</a></li>
164
+
165
+ <li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li>
166
+
167
+ <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
168
+
169
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
170
+
171
+ <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
172
+
173
+ <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
174
+
175
+ <li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li>
176
+
177
+ <li><a href="../TaskJuggler/BooleanAttribute.html">TaskJuggler::BooleanAttribute</a></li>
178
+
179
+ <li><a href="../TaskJuggler/CSVFile.html">TaskJuggler::CSVFile</a></li>
180
+
181
+ <li><a href="../TaskJuggler/CellSettingPattern.html">TaskJuggler::CellSettingPattern</a></li>
182
+
183
+ <li><a href="../TaskJuggler/CellSettingPatternList.html">TaskJuggler::CellSettingPatternList</a></li>
184
+
185
+ <li><a href="../TaskJuggler/Charge.html">TaskJuggler::Charge</a></li>
186
+
187
+ <li><a href="../TaskJuggler/ChargeListAttribute.html">TaskJuggler::ChargeListAttribute</a></li>
188
+
189
+ <li><a href="../TaskJuggler/ChargeSet.html">TaskJuggler::ChargeSet</a></li>
190
+
191
+ <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
192
+
193
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
194
+
195
+ <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
196
+
197
+ <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
198
+
199
+ <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
200
+
201
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
202
+
203
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
204
+
205
+ <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
206
+
207
+ <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
208
+
209
+ <li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li>
210
+
211
+ <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
212
+
213
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
214
+
215
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
216
+
217
+ <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
218
+
219
+ <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
220
+
221
+ <li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li>
222
+
223
+ <li><a href="../TaskJuggler/FormatListAttribute.html">TaskJuggler::FormatListAttribute</a></li>
224
+
225
+ <li><a href="../TaskJuggler/GanttChart.html">TaskJuggler::GanttChart</a></li>
226
+
227
+ <li><a href="../TaskJuggler/GanttContainer.html">TaskJuggler::GanttContainer</a></li>
228
+
229
+ <li><a href="../TaskJuggler/GanttHeader.html">TaskJuggler::GanttHeader</a></li>
230
+
231
+ <li><a href="../TaskJuggler/GanttHeaderScaleItem.html">TaskJuggler::GanttHeaderScaleItem</a></li>
232
+
233
+ <li><a href="../TaskJuggler/GanttLine.html">TaskJuggler::GanttLine</a></li>
234
+
235
+ <li><a href="../TaskJuggler/GanttLoadStack.html">TaskJuggler::GanttLoadStack</a></li>
236
+
237
+ <li><a href="../TaskJuggler/GanttMilestone.html">TaskJuggler::GanttMilestone</a></li>
238
+
239
+ <li><a href="../TaskJuggler/GanttRouter.html">TaskJuggler::GanttRouter</a></li>
240
+
241
+ <li><a href="../TaskJuggler/GanttTaskBar.html">TaskJuggler::GanttTaskBar</a></li>
242
+
243
+ <li><a href="../TaskJuggler/HTMLDocument.html">TaskJuggler::HTMLDocument</a></li>
244
+
245
+ <li><a href="../TaskJuggler/HTMLElements.html">TaskJuggler::HTMLElements</a></li>
246
+
247
+ <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
248
+
249
+ <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
250
+
251
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
252
+
253
+ <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
254
+
255
+ <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
256
+
257
+ <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
258
+
259
+ <li><a href="../TaskJuggler/JournalEntry.html">TaskJuggler::JournalEntry</a></li>
260
+
261
+ <li><a href="../TaskJuggler/JournalEntryList.html">TaskJuggler::JournalEntryList</a></li>
262
+
263
+ <li><a href="../TaskJuggler/KeywordArray.html">TaskJuggler::KeywordArray</a></li>
264
+
265
+ <li><a href="../TaskJuggler/KeywordDocumentation.html">TaskJuggler::KeywordDocumentation</a></li>
266
+
267
+ <li><a href="../TaskJuggler/Limits.html">TaskJuggler::Limits</a></li>
268
+
269
+ <li><a href="../TaskJuggler/Limits/Limit.html">TaskJuggler::Limits::Limit</a></li>
270
+
271
+ <li><a href="../TaskJuggler/LimitsAttribute.html">TaskJuggler::LimitsAttribute</a></li>
272
+
273
+ <li><a href="../TaskJuggler/ListAttributeBase.html">TaskJuggler::ListAttributeBase</a></li>
274
+
275
+ <li><a href="../TaskJuggler/Log.html">TaskJuggler::Log</a></li>
276
+
277
+ <li><a href="../TaskJuggler/LogFile.html">TaskJuggler::LogFile</a></li>
278
+
279
+ <li><a href="../TaskJuggler/LogicalAttribute.html">TaskJuggler::LogicalAttribute</a></li>
280
+
281
+ <li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li>
282
+
283
+ <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
284
+
285
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
286
+
287
+ <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
288
+
289
+ <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
290
+
291
+ <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li>
292
+
293
+ <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
294
+
295
+ <li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li>
296
+
297
+ <li><a href="../TaskJuggler/Message.html">TaskJuggler::Message</a></li>
298
+
299
+ <li><a href="../TaskJuggler/MessageHandler.html">TaskJuggler::MessageHandler</a></li>
300
+
301
+ <li><a href="../TaskJuggler/Navigator.html">TaskJuggler::Navigator</a></li>
302
+
303
+ <li><a href="../TaskJuggler/NavigatorElement.html">TaskJuggler::NavigatorElement</a></li>
304
+
305
+ <li><a href="../TaskJuggler/NikuProject.html">TaskJuggler::NikuProject</a></li>
306
+
307
+ <li><a href="../TaskJuggler/NikuReport.html">TaskJuggler::NikuReport</a></li>
308
+
309
+ <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
310
+
311
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
312
+
313
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
314
+
315
+ <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
316
+
317
+ <li><a href="../TaskJuggler/ProcessIntercomIface.html">TaskJuggler::ProcessIntercomIface</a></li>
318
+
319
+ <li><a href="../TaskJuggler/Project.html">TaskJuggler::Project</a></li>
320
+
321
+ <li><a href="../TaskJuggler/ProjectBroker.html">TaskJuggler::ProjectBroker</a></li>
322
+
323
+ <li><a href="../TaskJuggler/ProjectBrokerIface.html">TaskJuggler::ProjectBrokerIface</a></li>
324
+
325
+ <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
326
+
327
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
328
+
329
+ <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
330
+
331
+ <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
332
+
333
+ <li><a href="../TaskJuggler/ProjectServerIface.html">TaskJuggler::ProjectServerIface</a></li>
334
+
335
+ <li><a href="../TaskJuggler/PropertyAttribute.html">TaskJuggler::PropertyAttribute</a></li>
336
+
337
+ <li><a href="../TaskJuggler/PropertyList.html">TaskJuggler::PropertyList</a></li>
338
+
339
+ <li><a href="../TaskJuggler/PropertySet.html">TaskJuggler::PropertySet</a></li>
340
+
341
+ <li><a href="../TaskJuggler/PropertyTreeNode.html">TaskJuggler::PropertyTreeNode</a></li>
342
+
343
+ <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
344
+
345
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
346
+
347
+ <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
348
+
349
+ <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
350
+
351
+ <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
352
+
353
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
354
+
355
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
356
+
357
+ <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
358
+
359
+ <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
360
+
361
+ <li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li>
362
+
363
+ <li><a href="../TaskJuggler/Report.html">TaskJuggler::Report</a></li>
364
+
365
+ <li><a href="../TaskJuggler/ReportBase.html">TaskJuggler::ReportBase</a></li>
366
+
367
+ <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
368
+
369
+ <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
370
+
371
+ <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
372
+
373
+ <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
374
+
375
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
376
+
377
+ <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
378
+
379
+ <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
380
+
381
+ <li><a href="../TaskJuggler/ReportTableColumn.html">TaskJuggler::ReportTableColumn</a></li>
382
+
383
+ <li><a href="../TaskJuggler/ReportTableLegend.html">TaskJuggler::ReportTableLegend</a></li>
384
+
385
+ <li><a href="../TaskJuggler/ReportTableLine.html">TaskJuggler::ReportTableLine</a></li>
386
+
387
+ <li><a href="../TaskJuggler/Resource.html">TaskJuggler::Resource</a></li>
388
+
389
+ <li><a href="../TaskJuggler/ResourceListAttribute.html">TaskJuggler::ResourceListAttribute</a></li>
390
+
391
+ <li><a href="../TaskJuggler/ResourceListRE.html">TaskJuggler::ResourceListRE</a></li>
392
+
393
+ <li><a href="../TaskJuggler/ResourceScenario.html">TaskJuggler::ResourceScenario</a></li>
394
+
395
+ <li><a href="../TaskJuggler/RichText.html">TaskJuggler::RichText</a></li>
396
+
397
+ <li><a href="../TaskJuggler/RichTextAttribute.html">TaskJuggler::RichTextAttribute</a></li>
398
+
399
+ <li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li>
400
+
401
+ <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
402
+
403
+ <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
404
+
405
+ <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
406
+
407
+ <li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li>
408
+
409
+ <li><a href="../TaskJuggler/RichTextIntermediate.html">TaskJuggler::RichTextIntermediate</a></li>
410
+
411
+ <li><a href="../TaskJuggler/RichTextParser.html">TaskJuggler::RichTextParser</a></li>
412
+
413
+ <li><a href="../TaskJuggler/RichTextScanner.html">TaskJuggler::RichTextScanner</a></li>
414
+
415
+ <li><a href="../TaskJuggler/RichTextSnip.html">TaskJuggler::RichTextSnip</a></li>
416
+
417
+ <li><a href="../TaskJuggler/RichTextSyntaxRules.html">TaskJuggler::RichTextSyntaxRules</a></li>
418
+
419
+ <li><a href="../TaskJuggler/Scenario.html">TaskJuggler::Scenario</a></li>
420
+
421
+ <li><a href="../TaskJuggler/ScenarioData.html">TaskJuggler::ScenarioData</a></li>
422
+
423
+ <li><a href="../TaskJuggler/ScenarioListAttribute.html">TaskJuggler::ScenarioListAttribute</a></li>
424
+
425
+ <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
426
+
427
+ <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
428
+
429
+ <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
430
+
431
+ <li><a href="../TaskJuggler/SheetSender.html">TaskJuggler::SheetSender</a></li>
432
+
433
+ <li><a href="../TaskJuggler/Shift.html">TaskJuggler::Shift</a></li>
434
+
435
+ <li><a href="../TaskJuggler/ShiftAssignment.html">TaskJuggler::ShiftAssignment</a></li>
436
+
437
+ <li><a href="../TaskJuggler/ShiftAssignments.html">TaskJuggler::ShiftAssignments</a></li>
438
+
439
+ <li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li>
440
+
441
+ <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
442
+
443
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
444
+
445
+ <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
446
+
447
+ <li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li>
448
+
449
+ <li><a href="../TaskJuggler/StatusSheetReport.html">TaskJuggler::StatusSheetReport</a></li>
450
+
451
+ <li><a href="../TaskJuggler/StatusSheetSender.html">TaskJuggler::StatusSheetSender</a></li>
452
+
453
+ <li><a href="../TaskJuggler/StdIoWrapper.html">TaskJuggler::StdIoWrapper</a></li>
454
+
455
+ <li><a href="../TaskJuggler/StringAttribute.html">TaskJuggler::StringAttribute</a></li>
456
+
457
+ <li><a href="../TaskJuggler/SymbolAttribute.html">TaskJuggler::SymbolAttribute</a></li>
458
+
459
+ <li><a href="../TaskJuggler/SyntaxReference.html">TaskJuggler::SyntaxReference</a></li>
460
+
461
+ <li><a href="../TaskJuggler/TOCEntry.html">TaskJuggler::TOCEntry</a></li>
462
+
463
+ <li><a href="../TaskJuggler/TSResourceRecord.html">TaskJuggler::TSResourceRecord</a></li>
464
+
465
+ <li><a href="../TaskJuggler/TSTaskRecord.html">TaskJuggler::TSTaskRecord</a></li>
466
+
467
+ <li><a href="../TaskJuggler/TableColumnDefinition.html">TaskJuggler::TableColumnDefinition</a></li>
468
+
469
+ <li><a href="../TaskJuggler/TableOfContents.html">TaskJuggler::TableOfContents</a></li>
470
+
471
+ <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
472
+
473
+ <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
474
+
475
+ <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
476
+
477
+ <li><a href="../TaskJuggler/TaskDependency.html">TaskJuggler::TaskDependency</a></li>
478
+
479
+ <li><a href="../TaskJuggler/TaskListAttribute.html">TaskJuggler::TaskListAttribute</a></li>
480
+
481
+ <li><a href="../TaskJuggler/TaskListRE.html">TaskJuggler::TaskListRE</a></li>
482
+
483
+ <li><a href="../TaskJuggler/TaskScenario.html">TaskJuggler::TaskScenario</a></li>
484
+
485
+ <li><a href="../TaskJuggler/TernarySearchTree.html">TaskJuggler::TernarySearchTree</a></li>
486
+
487
+ <li><a href="../TaskJuggler/TextFormatter.html">TaskJuggler::TextFormatter</a></li>
488
+
489
+ <li><a href="../TaskJuggler/TextParser.html">TaskJuggler::TextParser</a></li>
490
+
491
+ <li><a href="../TaskJuggler/TextParser/Macro.html">TaskJuggler::TextParser::Macro</a></li>
492
+
493
+ <li><a href="../TaskJuggler/TextParser/MacroTable.html">TaskJuggler::TextParser::MacroTable</a></li>
494
+
495
+ <li><a href="../TaskJuggler/TextParser/Pattern.html">TaskJuggler::TextParser::Pattern</a></li>
496
+
497
+ <li><a href="../TaskJuggler/TextParser/Rule.html">TaskJuggler::TextParser::Rule</a></li>
498
+
499
+ <li><a href="../TaskJuggler/TextParser/Scanner.html">TaskJuggler::TextParser::Scanner</a></li>
500
+
501
+ <li><a href="../TaskJuggler/TextParser/Scanner/BufferStreamHandle.html">TaskJuggler::TextParser::Scanner::BufferStreamHandle</a></li>
502
+
503
+ <li><a href="../TaskJuggler/TextParser/Scanner/FileStreamHandle.html">TaskJuggler::TextParser::Scanner::FileStreamHandle</a></li>
504
+
505
+ <li><a href="../TaskJuggler/TextParser/Scanner/MacroStackEntry.html">TaskJuggler::TextParser::Scanner::MacroStackEntry</a></li>
506
+
507
+ <li><a href="../TaskJuggler/TextParser/Scanner/StreamHandle.html">TaskJuggler::TextParser::Scanner::StreamHandle</a></li>
508
+
509
+ <li><a href="../TaskJuggler/TextParser/SourceFileInfo.html">TaskJuggler::TextParser::SourceFileInfo</a></li>
510
+
511
+ <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
512
+
513
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
514
+
515
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
516
+
517
+ <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
518
+
519
+ <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
520
+
521
+ <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
522
+
523
+ <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
524
+
525
+ <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
526
+
527
+ <li><a href="../TaskJuggler/TimeSheetRecord.html">TaskJuggler::TimeSheetRecord</a></li>
528
+
529
+ <li><a href="../TaskJuggler/TimeSheetReport.html">TaskJuggler::TimeSheetReport</a></li>
530
+
531
+ <li><a href="../TaskJuggler/TimeSheetSender.html">TaskJuggler::TimeSheetSender</a></li>
532
+
533
+ <li><a href="../TaskJuggler/TimeSheetSummary.html">TaskJuggler::TimeSheetSummary</a></li>
534
+
535
+ <li><a href="../TaskJuggler/TimeSheets.html">TaskJuggler::TimeSheets</a></li>
536
+
537
+ <li><a href="../TaskJuggler/Tj3.html">TaskJuggler::Tj3</a></li>
538
+
539
+ <li><a href="../TaskJuggler/Tj3AppBase.html">TaskJuggler::Tj3AppBase</a></li>
540
+
541
+ <li><a href="../TaskJuggler/Tj3Client.html">TaskJuggler::Tj3Client</a></li>
542
+
543
+ <li><a href="../TaskJuggler/Tj3Daemon.html">TaskJuggler::Tj3Daemon</a></li>
544
+
545
+ <li><a href="../TaskJuggler/Tj3Man.html">TaskJuggler::Tj3Man</a></li>
546
+
547
+ <li><a href="../TaskJuggler/Tj3SheetAppBase.html">TaskJuggler::Tj3SheetAppBase</a></li>
548
+
549
+ <li><a href="../TaskJuggler/Tj3SsReceiver.html">TaskJuggler::Tj3SsReceiver</a></li>
550
+
551
+ <li><a href="../TaskJuggler/Tj3SsSender.html">TaskJuggler::Tj3SsSender</a></li>
552
+
553
+ <li><a href="../TaskJuggler/Tj3TsReceiver.html">TaskJuggler::Tj3TsReceiver</a></li>
554
+
555
+ <li><a href="../TaskJuggler/Tj3TsSender.html">TaskJuggler::Tj3TsSender</a></li>
556
+
557
+ <li><a href="../TaskJuggler/Tj3TsSummary.html">TaskJuggler::Tj3TsSummary</a></li>
558
+
559
+ <li><a href="../TaskJuggler/TjException.html">TaskJuggler::TjException</a></li>
560
+
561
+ <li><a href="../TaskJuggler/TjRuntimeError.html">TaskJuggler::TjRuntimeError</a></li>
562
+
563
+ <li><a href="../TaskJuggler/TjTime.html">TaskJuggler::TjTime</a></li>
564
+
565
+ <li><a href="../TaskJuggler/TjpExample.html">TaskJuggler::TjpExample</a></li>
566
+
567
+ <li><a href="../TaskJuggler/TjpExportRE.html">TaskJuggler::TjpExportRE</a></li>
568
+
569
+ <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
570
+
571
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
572
+
573
+ <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
574
+
575
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
576
+
577
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
578
+
579
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
580
+
581
+ <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
582
+
583
+ <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
584
+
585
+ <li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li>
586
+
587
+ <li><a href="../TaskJuggler/XMLComment.html">TaskJuggler::XMLComment</a></li>
588
+
589
+ <li><a href="../TaskJuggler/XMLDocument.html">TaskJuggler::XMLDocument</a></li>
590
+
591
+ <li><a href="../TaskJuggler/XMLElement.html">TaskJuggler::XMLElement</a></li>
592
+
593
+ <li><a href="../TaskJuggler/XMLNamedText.html">TaskJuggler::XMLNamedText</a></li>
594
+
595
+ <li><a href="../TaskJuggler/XMLText.html">TaskJuggler::XMLText</a></li>
596
+
597
+ <li><a href="../Diff.html">Diff</a></li>
598
+
599
+ <li><a href="../Diff/Hunk.html">Diff::Hunk</a></li>
600
+
601
+ <li><a href="../AppConfig.html">AppConfig</a></li>
602
+
603
+ <li><a href="../Diffable.html">Diffable</a></li>
604
+
605
+ <li><a href="../DiffableString.html">DiffableString</a></li>
606
+
607
+ <li><a href="../Object.html">Object</a></li>
608
+
609
+ <li><a href="../RuntimeConfig.html">RuntimeConfig</a></li>
610
+
611
+ <li><a href="../String.html">String</a></li>
612
+
613
+ </ul>
614
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
615
+ </div>
616
+
617
+
618
+ </div>
619
+ </div>
620
+
621
+ <div id="documentation">
622
+ <h1 class="class">TaskJuggler::ShiftAssignments</h1>
623
+
624
+ <div id="description">
625
+ <p>
626
+ This class manages a list of <a
627
+ href="ShiftAssignment.html">ShiftAssignment</a> elements. The intervals of
628
+ the assignments must not overlap.
629
+ </p>
630
+ <p>
631
+ Since it is fairly costly to determine the on<a href="Shift.html">Shift</a>
632
+ and onVacation values for a given date we use a scoreboard to cache all
633
+ computed values. Changes to the assigment set invalidate the cache again.
634
+ </p>
635
+ <p>
636
+ To optimize memory usage and computation time the <a
637
+ href="Scoreboard.html">Scoreboard</a> objects for similar <a
638
+ href="ShiftAssignments.html">ShiftAssignments</a> are shared.
639
+ </p>
640
+ <p>
641
+ <a href="Scoreboard.html">Scoreboard</a> may be nil or a bit vector encoded
642
+ as a Fixnum nil: Value has not been determined yet. Bit 0: 0: No
643
+ assignment
644
+ </p>
645
+ <pre>
646
+ 1: Has assignement
647
+ </pre>
648
+ <p>
649
+ Bit 1: 0: Work time
650
+ </p>
651
+ <pre>
652
+ 1: Off time
653
+ </pre>
654
+ <p>
655
+ Bit 2 - 5: 0: No vacation or leave time
656
+ </p>
657
+ <pre>
658
+ 1: Regular vacation
659
+ 2 - 15: Reserved
660
+ </pre>
661
+ <p>
662
+ Bit 6: Reserved Bit 7: 0: No global override
663
+ </p>
664
+ <pre>
665
+ 1: Override global setting</pre>
666
+
667
+ </div>
668
+
669
+ <!-- Constants -->
670
+
671
+
672
+ <!-- Attributes -->
673
+
674
+ <div id="attribute-method-details" class="method-section section">
675
+ <h3 class="section-header">Attributes</h3>
676
+
677
+
678
+ <div id="project-attribute-method" class="method-detail">
679
+ <a name="project"></a>
680
+
681
+ <a name="project="></a>
682
+
683
+ <div class="method-heading attribute-method-heading">
684
+ <span class="method-name">project</span><span
685
+ class="attribute-access-type">[RW]</span>
686
+ </div>
687
+
688
+ <div class="method-description">
689
+
690
+
691
+
692
+ </div>
693
+ </div>
694
+
695
+ <div id="assignments-attribute-method" class="method-detail">
696
+ <a name="assignments"></a>
697
+
698
+ <div class="method-heading attribute-method-heading">
699
+ <span class="method-name">assignments</span><span
700
+ class="attribute-access-type">[R]</span>
701
+ </div>
702
+
703
+ <div class="method-description">
704
+
705
+
706
+
707
+ </div>
708
+ </div>
709
+
710
+ </div>
711
+
712
+
713
+ <!-- Methods -->
714
+
715
+ <div id="public-class-method-details" class="method-section section">
716
+ <h3 class="section-header">Public Class Methods</h3>
717
+
718
+
719
+ <div id="new-method" class="method-detail ">
720
+ <a name="method-c-new"></a>
721
+
722
+ <div class="method-heading">
723
+
724
+ <span class="method-name">new</span><span
725
+ class="method-args">(sa = nil)</span>
726
+ <span class="method-click-advice">click to toggle source</span>
727
+
728
+ </div>
729
+
730
+ <div class="method-description">
731
+
732
+
733
+
734
+
735
+
736
+ <div class="method-source-code"
737
+ id="new-source">
738
+ <pre>
739
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 108</span>
740
+ 108: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">sa</span> = <span class="ruby-keyword kw">nil</span>)
741
+ 109: <span class="ruby-identifier">define_finalizer</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">method</span>(<span class="ruby-value">:deleteScoreboard</span>).<span class="ruby-identifier">to_proc</span>)
742
+ 110:
743
+ 111: <span class="ruby-comment cmt"># An Array of ShiftAssignment objects.</span>
744
+ 112: <span class="ruby-ivar">@assignments</span> = []
745
+ 113:
746
+ 114: <span class="ruby-comment cmt"># A String that uniquely identifies the content of this ShiftAssignment</span>
747
+ 115: <span class="ruby-comment cmt"># object.</span>
748
+ 116: <span class="ruby-ivar">@hashKey</span> = <span class="ruby-keyword kw">nil</span>
749
+ 117:
750
+ 118: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sa</span>
751
+ 119: <span class="ruby-comment cmt"># A ShiftAssignments object was passed to the contructor. We create a</span>
752
+ 120: <span class="ruby-comment cmt"># deep copy of it.</span>
753
+ 121: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">project</span>
754
+ 122: <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">assignments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">assignment</span><span class="ruby-operator">|</span>
755
+ 123: <span class="ruby-ivar">@assignments</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">assignment</span>.<span class="ruby-identifier">copy</span>
756
+ 124: <span class="ruby-keyword kw">end</span>
757
+ 125: <span class="ruby-comment cmt"># Create a new ScoreBoard or share one with a ShiftAssignments object</span>
758
+ 126: <span class="ruby-comment cmt"># that has the same set of shift assignments.</span>
759
+ 127: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-identifier">newScoreboard</span>
760
+ 128: <span class="ruby-keyword kw">else</span>
761
+ 129: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
762
+ 130: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
763
+ 131: <span class="ruby-keyword kw">end</span>
764
+ 132: <span class="ruby-keyword kw">end</span></pre>
765
+ </div>
766
+
767
+ </div>
768
+
769
+
770
+
771
+
772
+ </div>
773
+
774
+
775
+ <div id="sb-lear-method" class="method-detail ">
776
+ <a name="method-c-sbClear"></a>
777
+
778
+ <div class="method-heading">
779
+
780
+ <span class="method-name">sbClear</span><span
781
+ class="method-args">()</span>
782
+ <span class="method-click-advice">click to toggle source</span>
783
+
784
+ </div>
785
+
786
+ <div class="method-description">
787
+
788
+
789
+
790
+
791
+
792
+ <div class="method-source-code"
793
+ id="sb-lear-source">
794
+ <pre>
795
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 213</span>
796
+ 213: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">ShiftAssignments</span>.<span class="ruby-identifier">sbClear</span>
797
+ 214: <span class="ruby-identifier">@@scoreboards</span> = {}
798
+ 215: <span class="ruby-keyword kw">end</span></pre>
799
+ </div>
800
+
801
+ </div>
802
+
803
+
804
+
805
+
806
+ </div>
807
+
808
+
809
+ <div id="scoreboards-method" class="method-detail ">
810
+ <a name="method-c-scoreboards"></a>
811
+
812
+ <div class="method-heading">
813
+
814
+ <span class="method-name">scoreboards</span><span
815
+ class="method-args">()</span>
816
+ <span class="method-click-advice">click to toggle source</span>
817
+
818
+ </div>
819
+
820
+ <div class="method-description">
821
+
822
+
823
+
824
+
825
+
826
+ <div class="method-source-code"
827
+ id="scoreboards-source">
828
+ <pre>
829
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 209</span>
830
+ 209: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">ShiftAssignments</span>.<span class="ruby-identifier">scoreboards</span>
831
+ 210: <span class="ruby-identifier">@@scoreboards</span>
832
+ 211: <span class="ruby-keyword kw">end</span></pre>
833
+ </div>
834
+
835
+ </div>
836
+
837
+
838
+
839
+
840
+ </div>
841
+
842
+
843
+ </div>
844
+
845
+ <div id="private-class-method-details" class="method-section section">
846
+ <h3 class="section-header">Private Class Methods</h3>
847
+
848
+
849
+ <div id="delete-coreboard-method" class="method-detail ">
850
+ <a name="method-c-deleteScoreboard"></a>
851
+
852
+ <div class="method-heading">
853
+
854
+ <span class="method-name">deleteScoreboard</span><span
855
+ class="method-args">(objId)</span>
856
+ <span class="method-click-advice">click to toggle source</span>
857
+
858
+ </div>
859
+
860
+ <div class="method-description">
861
+
862
+ <p>
863
+ This function is called whenever a <a
864
+ href="ShiftAssignments.html">ShiftAssignments</a> object gets destroyed by
865
+ the GC.
866
+ </p>
867
+
868
+
869
+
870
+ <div class="method-source-code"
871
+ id="delete-coreboard-source">
872
+ <pre>
873
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 271</span>
874
+ 271: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">ShiftAssignments</span>.<span class="ruby-identifier">deleteScoreboard</span>(<span class="ruby-identifier">objId</span>)
875
+ 272: <span class="ruby-comment cmt"># Attention: Due to the way this class is called, there will be no</span>
876
+ 273: <span class="ruby-comment cmt"># visible exceptions here. All runtime errors will go unnoticed!</span>
877
+ 274: <span class="ruby-comment cmt">#</span>
878
+ 275: <span class="ruby-comment cmt"># We'll search the @@scoreboards for an entry that holds a reference to</span>
879
+ 276: <span class="ruby-comment cmt"># the deleted ShiftAssignments object. If it's the last in the record,</span>
880
+ 277: <span class="ruby-comment cmt"># we delete the whole record. If not, we'll just remove the reference</span>
881
+ 278: <span class="ruby-comment cmt"># form the record.</span>
882
+ 279: <span class="ruby-identifier">@@scoreboards</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record</span><span class="ruby-operator">|</span>
883
+ 280: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">record</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">objId</span>)
884
+ 281: <span class="ruby-comment cmt"># Remove the ShiftAssignments object as user of this Scoreboard</span>
885
+ 282: <span class="ruby-comment cmt"># object.</span>
886
+ 283: <span class="ruby-identifier">record</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">objId</span>)
887
+ 284: <span class="ruby-comment cmt"># We've found what we were looking for.</span>
888
+ 285: <span class="ruby-keyword kw">break</span>
889
+ 286: <span class="ruby-keyword kw">end</span>
890
+ 287: <span class="ruby-keyword kw">end</span>
891
+ 288:
892
+ 289: <span class="ruby-comment cmt"># Delete all entries which have empty reference lists.</span>
893
+ 290: <span class="ruby-identifier">@@scoreboards</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">record</span><span class="ruby-operator">|</span> <span class="ruby-identifier">record</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">empty?</span> }
894
+ 291: <span class="ruby-keyword kw">end</span></pre>
895
+ </div>
896
+
897
+ </div>
898
+
899
+
900
+
901
+
902
+ </div>
903
+
904
+
905
+ </div>
906
+
907
+ <div id="public-instance-method-details" class="method-section section">
908
+ <h3 class="section-header">Public Instance Methods</h3>
909
+
910
+
911
+ <div id="add-ssignment-method" class="method-detail ">
912
+ <a name="method-i-addAssignment"></a>
913
+
914
+ <div class="method-heading">
915
+
916
+ <span class="method-name">addAssignment</span><span
917
+ class="method-args">(shiftAssignment)</span>
918
+ <span class="method-click-advice">click to toggle source</span>
919
+
920
+ </div>
921
+
922
+ <div class="method-description">
923
+
924
+ <p>
925
+ Add a new assignment to the list. In case there was no overlap the function
926
+ returns true. Otherwise false.
927
+ </p>
928
+
929
+
930
+
931
+ <div class="method-source-code"
932
+ id="add-ssignment-source">
933
+ <pre>
934
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 136</span>
935
+ 136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addAssignment</span>(<span class="ruby-identifier">shiftAssignment</span>)
936
+ 137: <span class="ruby-comment cmt"># Make sure we don't insert overlapping assignments.</span>
937
+ 138: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">shiftAssignment</span>.<span class="ruby-identifier">interval</span>)
938
+ 139:
939
+ 140: <span class="ruby-ivar">@assignments</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">shiftAssignment</span>
940
+ 141: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-identifier">newScoreboard</span>
941
+ 142: <span class="ruby-keyword kw">true</span>
942
+ 143: <span class="ruby-keyword kw">end</span></pre>
943
+ </div>
944
+
945
+ </div>
946
+
947
+
948
+
949
+
950
+ </div>
951
+
952
+
953
+ <div id="assigned--method" class="method-detail ">
954
+ <a name="method-i-assigned%3F"></a>
955
+
956
+ <div class="method-heading">
957
+
958
+ <span class="method-name">assigned?</span><span
959
+ class="method-args">(date)</span>
960
+ <span class="method-click-advice">click to toggle source</span>
961
+
962
+ </div>
963
+
964
+ <div class="method-description">
965
+
966
+ <p>
967
+ Returns true if any of the defined shift periods overlaps with the date or
968
+ interval specified by <em>date</em>.
969
+ </p>
970
+
971
+
972
+
973
+ <div class="method-source-code"
974
+ id="assigned--source">
975
+ <pre>
976
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 179</span>
977
+ 179: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">assigned?</span>(<span class="ruby-identifier">date</span>)
978
+ 180: (<span class="ruby-identifier">getSbSlot</span>(<span class="ruby-identifier">date</span>) &amp; <span class="ruby-value">1</span>) <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
979
+ 181: <span class="ruby-keyword kw">end</span></pre>
980
+ </div>
981
+
982
+ </div>
983
+
984
+
985
+
986
+
987
+ </div>
988
+
989
+
990
+ <div id="collect-ime-ff-ntervals-method" class="method-detail ">
991
+ <a name="method-i-collectTimeOffIntervals"></a>
992
+
993
+ <div class="method-heading">
994
+
995
+ <span class="method-name">collectTimeOffIntervals</span><span
996
+ class="method-args">(iv, minDuration)</span>
997
+ <span class="method-click-advice">click to toggle source</span>
998
+
999
+ </div>
1000
+
1001
+ <div class="method-description">
1002
+
1003
+ <p>
1004
+ Return a list of intervals that lay within <em>iv</em> and are at least
1005
+ minDuration long and contain no working time.
1006
+ </p>
1007
+
1008
+
1009
+
1010
+ <div class="method-source-code"
1011
+ id="collect-ime-ff-ntervals-source">
1012
+ <pre>
1013
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 203</span>
1014
+ 203: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collectTimeOffIntervals</span>(<span class="ruby-identifier">iv</span>, <span class="ruby-identifier">minDuration</span>)
1015
+ 204: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">collectIntervals</span>(<span class="ruby-identifier">iv</span>, <span class="ruby-identifier">minDuration</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
1016
+ 205: (<span class="ruby-identifier">val</span> &amp; <span class="ruby-value">0x3E</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
1017
+ 206: <span class="ruby-keyword kw">end</span>
1018
+ 207: <span class="ruby-keyword kw">end</span></pre>
1019
+ </div>
1020
+
1021
+ </div>
1022
+
1023
+
1024
+
1025
+
1026
+ </div>
1027
+
1028
+
1029
+ <div id="get-b-lot-method" class="method-detail ">
1030
+ <a name="method-i-getSbSlot"></a>
1031
+
1032
+ <div class="method-heading">
1033
+
1034
+ <span class="method-name">getSbSlot</span><span
1035
+ class="method-args">(date)</span>
1036
+ <span class="method-click-advice">click to toggle source</span>
1037
+
1038
+ </div>
1039
+
1040
+ <div class="method-description">
1041
+
1042
+ <p>
1043
+ This function returns the entry in the scoreboard that corresponds to
1044
+ <em>date</em>. If the slot has not yet been determined, it&#8217;s
1045
+ calculated first.
1046
+ </p>
1047
+
1048
+
1049
+
1050
+ <div class="method-source-code"
1051
+ id="get-b-lot-source">
1052
+ <pre>
1053
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 147</span>
1054
+ 147: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getSbSlot</span>(<span class="ruby-identifier">date</span>)
1055
+ 148: <span class="ruby-identifier">idx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>)
1056
+ 149: <span class="ruby-comment cmt"># Check if we have a value already for this slot.</span>
1057
+ 150: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>].<span class="ruby-identifier">nil?</span>
1058
+ 151:
1059
+ 152:
1060
+ 153: <span class="ruby-comment cmt"># If not, compute it.</span>
1061
+ 154: <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sa</span><span class="ruby-operator">|</span>
1062
+ 155: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">assigned?</span>(<span class="ruby-identifier">date</span>)
1063
+ 156:
1064
+ 157: <span class="ruby-comment cmt"># Mark the slot as 'assigned'. Meaning, the rest of the bits are valid</span>
1065
+ 158: <span class="ruby-comment cmt"># for this time slot.</span>
1066
+ 159: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] = <span class="ruby-value">1</span>
1067
+ 160:
1068
+ 161: <span class="ruby-comment cmt"># Set bit 1 if the shift is not active</span>
1069
+ 162: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">|=</span> <span class="ruby-value">1</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
1070
+ 163:
1071
+ 164: <span class="ruby-comment cmt"># Set bits 2 - 5 to 1 if it's a vacation slot.</span>
1072
+ 165: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">|=</span> <span class="ruby-value">1</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">3</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">onVacation?</span>(<span class="ruby-identifier">date</span>)
1073
+ 166:
1074
+ 167: <span class="ruby-comment cmt"># Set the 8th bit if the shift replaces global vacations.</span>
1075
+ 168: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">|=</span> <span class="ruby-value">1</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">8</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">replace?</span>(<span class="ruby-identifier">date</span>)
1076
+ 169:
1077
+ 170: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>]
1078
+ 171: <span class="ruby-keyword kw">end</span>
1079
+ 172:
1080
+ 173: <span class="ruby-comment cmt"># The slot is not covered by any assignment.</span>
1081
+ 174: <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">idx</span>] = <span class="ruby-value">0</span>
1082
+ 175: <span class="ruby-keyword kw">end</span></pre>
1083
+ </div>
1084
+
1085
+ </div>
1086
+
1087
+
1088
+
1089
+
1090
+ </div>
1091
+
1092
+
1093
+ <div id="hash-ey-method" class="method-detail ">
1094
+ <a name="method-i-hashKey"></a>
1095
+
1096
+ <div class="method-heading">
1097
+
1098
+ <span class="method-name">hashKey</span><span
1099
+ class="method-args">()</span>
1100
+ <span class="method-click-advice">click to toggle source</span>
1101
+
1102
+ </div>
1103
+
1104
+ <div class="method-description">
1105
+
1106
+
1107
+
1108
+
1109
+
1110
+ <div class="method-source-code"
1111
+ id="hash-ey-source">
1112
+ <pre>
1113
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 234</span>
1114
+ 234: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hashKey</span>
1115
+ 235: <span class="ruby-ivar">@hashKey</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@hashKey</span>
1116
+ 236:
1117
+ 237: <span class="ruby-ivar">@hashKey</span> = <span class="ruby-node">&quot;#{@project.object_id}|&quot;</span>
1118
+ 238: <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">sort!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> }
1119
+ 239: <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@hashKey</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">hashKey</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'||'</span> }
1120
+ 240: <span class="ruby-ivar">@hashKey</span>
1121
+ 241: <span class="ruby-keyword kw">end</span></pre>
1122
+ </div>
1123
+
1124
+ </div>
1125
+
1126
+
1127
+
1128
+
1129
+ </div>
1130
+
1131
+
1132
+ <div id="on-hift--method" class="method-detail ">
1133
+ <a name="method-i-onShift%3F"></a>
1134
+
1135
+ <div class="method-heading">
1136
+
1137
+ <span class="method-name">onShift?</span><span
1138
+ class="method-args">(date)</span>
1139
+ <span class="method-click-advice">click to toggle source</span>
1140
+
1141
+ </div>
1142
+
1143
+ <div class="method-description">
1144
+
1145
+ <p>
1146
+ Returns true if any of the defined shift periods contains the <em>date</em>
1147
+ and the shift has working hours defined for that <em>date</em>.
1148
+ </p>
1149
+
1150
+
1151
+
1152
+ <div class="method-source-code"
1153
+ id="on-hift--source">
1154
+ <pre>
1155
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 185</span>
1156
+ 185: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
1157
+ 186: (<span class="ruby-identifier">getSbSlot</span>(<span class="ruby-identifier">date</span>) &amp; (<span class="ruby-value">1</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">1</span>)) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1158
+ 187: <span class="ruby-keyword kw">end</span></pre>
1159
+ </div>
1160
+
1161
+ </div>
1162
+
1163
+
1164
+
1165
+
1166
+ </div>
1167
+
1168
+
1169
+ <div id="on-acation--method" class="method-detail ">
1170
+ <a name="method-i-onVacation%3F"></a>
1171
+
1172
+ <div class="method-heading">
1173
+
1174
+ <span class="method-name">onVacation?</span><span
1175
+ class="method-args">(date)</span>
1176
+ <span class="method-click-advice">click to toggle source</span>
1177
+
1178
+ </div>
1179
+
1180
+ <div class="method-description">
1181
+
1182
+ <p>
1183
+ Returns true if any of the defined shift periods contains the <em>date</em>
1184
+ and if the shift has a vacation defined for the <em>date</em>.
1185
+ </p>
1186
+
1187
+
1188
+
1189
+ <div class="method-source-code"
1190
+ id="on-acation--source">
1191
+ <pre>
1192
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 197</span>
1193
+ 197: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">onVacation?</span>(<span class="ruby-identifier">date</span>)
1194
+ 198: (<span class="ruby-identifier">getSbSlot</span>(<span class="ruby-identifier">date</span>) &amp; <span class="ruby-value">0x3C</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
1195
+ 199: <span class="ruby-keyword kw">end</span></pre>
1196
+ </div>
1197
+
1198
+ </div>
1199
+
1200
+
1201
+
1202
+
1203
+ </div>
1204
+
1205
+
1206
+ <div id="time-ff--method" class="method-detail ">
1207
+ <a name="method-i-timeOff%3F"></a>
1208
+
1209
+ <div class="method-heading">
1210
+
1211
+ <span class="method-name">timeOff?</span><span
1212
+ class="method-args">(date)</span>
1213
+ <span class="method-click-advice">click to toggle source</span>
1214
+
1215
+ </div>
1216
+
1217
+ <div class="method-description">
1218
+
1219
+ <p>
1220
+ Returns true if any of the defined shift periods contains the <em>date</em>
1221
+ and the shift has a vacation defined or all off hours defined for that
1222
+ <em>date</em>.
1223
+ </p>
1224
+
1225
+
1226
+
1227
+ <div class="method-source-code"
1228
+ id="time-ff--source">
1229
+ <pre>
1230
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 191</span>
1231
+ 191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">timeOff?</span>(<span class="ruby-identifier">date</span>)
1232
+ 192: (<span class="ruby-identifier">getSbSlot</span>(<span class="ruby-identifier">date</span>) &amp; <span class="ruby-value">0x3E</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
1233
+ 193: <span class="ruby-keyword kw">end</span></pre>
1234
+ </div>
1235
+
1236
+ </div>
1237
+
1238
+
1239
+
1240
+
1241
+ </div>
1242
+
1243
+
1244
+ <div id="to-s-method" class="method-detail ">
1245
+ <a name="method-i-to_s"></a>
1246
+
1247
+ <div class="method-heading">
1248
+
1249
+ <span class="method-name">to_s</span><span
1250
+ class="method-args">()</span>
1251
+ <span class="method-click-advice">click to toggle source</span>
1252
+
1253
+ </div>
1254
+
1255
+ <div class="method-description">
1256
+
1257
+ <p>
1258
+ This function is primarily used for debugging purposes.
1259
+ </p>
1260
+
1261
+
1262
+
1263
+ <div class="method-source-code"
1264
+ id="to-s-source">
1265
+ <pre>
1266
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 218</span>
1267
+ 218: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1268
+ 219: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">empty?</span>
1269
+ 220:
1270
+ 221: <span class="ruby-identifier">out</span> = <span class="ruby-value str">&quot;shifts &quot;</span>
1271
+ 222: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
1272
+ 223: <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sa</span><span class="ruby-operator">|</span>
1273
+ 224: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
1274
+ 225: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
1275
+ 226: <span class="ruby-keyword kw">else</span>
1276
+ 227: <span class="ruby-identifier">out</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">', '</span>
1277
+ 228: <span class="ruby-keyword kw">end</span>
1278
+ 229: <span class="ruby-identifier">out</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">to_s</span>
1279
+ 230: <span class="ruby-keyword kw">end</span>
1280
+ 231: <span class="ruby-identifier">out</span>
1281
+ 232: <span class="ruby-keyword kw">end</span></pre>
1282
+ </div>
1283
+
1284
+ </div>
1285
+
1286
+
1287
+
1288
+
1289
+ </div>
1290
+
1291
+
1292
+ </div>
1293
+
1294
+ <div id="private-instance-method-details" class="method-section section">
1295
+ <h3 class="section-header">Private Instance Methods</h3>
1296
+
1297
+
1298
+ <div id="new-coreboard-method" class="method-detail ">
1299
+ <a name="method-i-newScoreboard"></a>
1300
+
1301
+ <div class="method-heading">
1302
+
1303
+ <span class="method-name">newScoreboard</span><span
1304
+ class="method-args">()</span>
1305
+ <span class="method-click-advice">click to toggle source</span>
1306
+
1307
+ </div>
1308
+
1309
+ <div class="method-description">
1310
+
1311
+ <p>
1312
+ This function either returns a new <a href="Scoreboard.html">Scoreboard</a>
1313
+ or a reference to an existing one in case we already have one for the same
1314
+ assigment patterns.
1315
+ </p>
1316
+
1317
+
1318
+
1319
+ <div class="method-source-code"
1320
+ id="new-coreboard-source">
1321
+ <pre>
1322
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 247</span>
1323
+ 247: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newScoreboard</span>
1324
+ 248: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">record</span> = <span class="ruby-identifier">@@scoreboards</span>[<span class="ruby-identifier">hashKey</span>])
1325
+ 249: <span class="ruby-comment cmt"># If we already have a Scoreboard object for the hashKey of this</span>
1326
+ 250: <span class="ruby-comment cmt"># ShiftAssignments object, we can re-use this. We just need to</span>
1327
+ 251: <span class="ruby-comment cmt"># register the object as a user of it.</span>
1328
+ 252: <span class="ruby-identifier">record</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">object_id</span>
1329
+ 253:
1330
+ 254: <span class="ruby-comment cmt"># Return the re-used Scoreboard object.</span>
1331
+ 255: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">record</span>[<span class="ruby-value">1</span>]
1332
+ 256: <span class="ruby-keyword kw">end</span>
1333
+ 257:
1334
+ 258: <span class="ruby-comment cmt"># We have not found a matching scoreboard, so we have to create a new one.</span>
1335
+ 259: <span class="ruby-identifier">newSb</span> = <span class="ruby-constant">Scoreboard</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>], <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>],
1336
+ 260: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'scheduleGranularity'</span>])
1337
+ 261: <span class="ruby-comment cmt"># Create a new record for it and register the ShiftAssignments object as</span>
1338
+ 262: <span class="ruby-comment cmt"># first user. Add the record to the @@scoreboards list.</span>
1339
+ 263: <span class="ruby-identifier">@@scoreboards</span>[<span class="ruby-identifier">hashKey</span>] = [ [ <span class="ruby-identifier">object_id</span> ], <span class="ruby-identifier">newSb</span> ]
1340
+ 264:
1341
+ 265: <span class="ruby-comment cmt"># Append the new record to the list.</span>
1342
+ 266: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">newSb</span>
1343
+ 267: <span class="ruby-keyword kw">end</span></pre>
1344
+ </div>
1345
+
1346
+ </div>
1347
+
1348
+
1349
+
1350
+
1351
+ </div>
1352
+
1353
+
1354
+ <div id="overlaps--method" class="method-detail ">
1355
+ <a name="method-i-overlaps%3F"></a>
1356
+
1357
+ <div class="method-heading">
1358
+
1359
+ <span class="method-name">overlaps?</span><span
1360
+ class="method-args">(iv)</span>
1361
+ <span class="method-click-advice">click to toggle source</span>
1362
+
1363
+ </div>
1364
+
1365
+ <div class="method-description">
1366
+
1367
+ <p>
1368
+ Returns true if the interval overlaps with any of the assignment periods.
1369
+ </p>
1370
+
1371
+
1372
+
1373
+ <div class="method-source-code"
1374
+ id="overlaps--source">
1375
+ <pre>
1376
+ <span class="ruby-comment cmt"># File lib/taskjuggler/ShiftAssignments.rb, line 294</span>
1377
+ 294: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">iv</span>)
1378
+ 295: <span class="ruby-ivar">@assignments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sa</span><span class="ruby-operator">|</span>
1379
+ 296: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sa</span>.<span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">iv</span>)
1380
+ 297: <span class="ruby-keyword kw">end</span>
1381
+ 298: <span class="ruby-keyword kw">false</span>
1382
+ 299: <span class="ruby-keyword kw">end</span></pre>
1383
+ </div>
1384
+
1385
+ </div>
1386
+
1387
+
1388
+
1389
+
1390
+ </div>
1391
+
1392
+
1393
+ </div>
1394
+
1395
+
1396
+ </div>
1397
+
1398
+
1399
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
1400
+
1401
+ <p>Disabled; run with --debug to generate this.</p>
1402
+
1403
+ </div>
1404
+
1405
+ <div id="validator-badges">
1406
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1407
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
1408
+ Rdoc Generator</a> 1.1.6</small>.</p>
1409
+ </div>
1410
+
1411
+ </body>
1412
+ </html>
1413
+