taskjuggler 0.1.1 → 0.2.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 (563) hide show
  1. data/CHANGELOG +37 -5
  2. data/README.rdoc +4 -2
  3. data/benchmarks/UTF-8-Strings.rb +58 -0
  4. data/benchmarks/css/tjmanual.css +0 -1
  5. data/benchmarks/htmltaskreport-1.html +47702 -0
  6. data/benchmarks/htmltaskreport-2.html +23345 -0
  7. data/benchmarks/htmltaskreport-3.html +23265 -0
  8. data/benchmarks/htmltaskreport-4.html +22135 -0
  9. data/benchmarks/profile.clt +36082 -0
  10. data/benchmarks/tj3.profile +0 -0
  11. data/benchmarks/tj3.profile.grind +6185 -0
  12. data/benchmarks/tj3.profile.symbols +432 -0
  13. data/benchmarks/tj3.profile.txt +448 -0
  14. data/data/tjp.vim +689 -0
  15. data/doc/AppConfig.html +26 -2
  16. data/doc/CHANGELOG.html +60 -8
  17. data/doc/COPYING.html +26 -2
  18. data/doc/Diff/Hunk.html +26 -2
  19. data/doc/Diff.html +26 -2
  20. data/doc/Diffable.html +26 -2
  21. data/doc/DiffableString.html +26 -2
  22. data/doc/Object.html +26 -104
  23. data/doc/README_rdoc.html +39 -7
  24. data/doc/RuntimeConfig.html +26 -2
  25. data/doc/String.html +26 -2
  26. data/doc/TaskJuggler/Account.html +27 -3
  27. data/doc/TaskJuggler/AccountAttribute.html +30 -6
  28. data/doc/TaskJuggler/AccountScenario.html +28 -4
  29. data/doc/TaskJuggler/Allocation.html +33 -9
  30. data/doc/TaskJuggler/AllocationAttribute.html +31 -7
  31. data/doc/TaskJuggler/AttributeBase.html +162 -111
  32. data/doc/TaskJuggler/AttributeDefinition.html +26 -2
  33. data/doc/TaskJuggler/AttributeOverwrite.html +26 -2
  34. data/doc/TaskJuggler/BatchProcessor.html +26 -2
  35. data/doc/TaskJuggler/Booking.html +29 -5
  36. data/doc/TaskJuggler/BookingListAttribute.html +29 -5
  37. data/doc/TaskJuggler/BooleanAttribute.html +30 -6
  38. data/doc/TaskJuggler/CSVFile.html +26 -2
  39. data/doc/TaskJuggler/CellSettingPattern.html +26 -2
  40. data/doc/TaskJuggler/CellSettingPatternList.html +26 -2
  41. data/doc/TaskJuggler/Charge.html +30 -6
  42. data/doc/TaskJuggler/ChargeListAttribute.html +29 -5
  43. data/doc/TaskJuggler/ChargeSet.html +26 -2
  44. data/doc/TaskJuggler/ChargeSetListAttribute.html +30 -6
  45. data/doc/TaskJuggler/CollisionDetector.html +26 -2
  46. data/doc/TaskJuggler/ColumnListAttribute.html +28 -4
  47. data/doc/TaskJuggler/ColumnTable.html +26 -2
  48. data/doc/TaskJuggler/Daemon.html +26 -2
  49. data/doc/TaskJuggler/DataCache.html +26 -2
  50. data/doc/TaskJuggler/DataCacheEntry.html +26 -2
  51. data/doc/TaskJuggler/DateAttribute.html +30 -6
  52. data/doc/TaskJuggler/DefinitionListAttribute.html +28 -4
  53. data/doc/TaskJuggler/DependencyListAttribute.html +30 -6
  54. data/doc/TaskJuggler/DurationAttribute.html +31 -7
  55. data/doc/TaskJuggler/FileList.html +26 -2
  56. data/doc/TaskJuggler/FileRecord.html +26 -2
  57. data/doc/TaskJuggler/FixnumAttribute.html +28 -4
  58. data/doc/TaskJuggler/FlagListAttribute.html +30 -6
  59. data/doc/TaskJuggler/FloatAttribute.html +29 -5
  60. data/doc/TaskJuggler/FormatListAttribute.html +29 -5
  61. data/doc/TaskJuggler/GanttChart.html +26 -2
  62. data/doc/TaskJuggler/GanttContainer.html +26 -2
  63. data/doc/TaskJuggler/GanttHeader.html +26 -2
  64. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -2
  65. data/doc/TaskJuggler/GanttLine.html +27 -3
  66. data/doc/TaskJuggler/GanttLoadStack.html +26 -2
  67. data/doc/TaskJuggler/GanttMilestone.html +26 -2
  68. data/doc/TaskJuggler/GanttRouter.html +26 -2
  69. data/doc/TaskJuggler/GanttTaskBar.html +26 -2
  70. data/doc/TaskJuggler/HTMLDocument.html +26 -2
  71. data/doc/TaskJuggler/HTMLElements.html +623 -0
  72. data/doc/TaskJuggler/HTMLGraphics.html +26 -2
  73. data/doc/TaskJuggler/ICalReport.html +864 -0
  74. data/doc/TaskJuggler/ICalendar/Component.html +969 -0
  75. data/doc/TaskJuggler/ICalendar/Event.html +742 -0
  76. data/doc/TaskJuggler/ICalendar/Journal.html +722 -0
  77. data/doc/TaskJuggler/ICalendar/Person.html +633 -0
  78. data/doc/TaskJuggler/ICalendar/Todo.html +789 -0
  79. data/doc/TaskJuggler/ICalendar.html +1035 -0
  80. data/doc/TaskJuggler/Interval.html +99 -172
  81. data/doc/TaskJuggler/IntervalList.html +31 -7
  82. data/doc/TaskJuggler/JobInfo.html +26 -2
  83. data/doc/TaskJuggler/Journal.html +26 -2
  84. data/doc/TaskJuggler/JournalEntry.html +26 -2
  85. data/doc/TaskJuggler/JournalEntryList.html +26 -2
  86. data/doc/TaskJuggler/KeywordArray.html +26 -2
  87. data/doc/TaskJuggler/KeywordDocumentation.html +26 -2
  88. data/doc/TaskJuggler/Limits/Limit.html +124 -49
  89. data/doc/TaskJuggler/Limits.html +139 -156
  90. data/doc/TaskJuggler/LimitsAttribute.html +39 -14
  91. data/doc/TaskJuggler/ListAttributeBase.html +35 -11
  92. data/doc/TaskJuggler/Log.html +26 -2
  93. data/doc/TaskJuggler/LogFile.html +26 -2
  94. data/doc/TaskJuggler/LogicalAttribute.html +26 -2
  95. data/doc/TaskJuggler/LogicalExpression.html +26 -2
  96. data/doc/TaskJuggler/LogicalExpressionAttribute.html +35 -11
  97. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +35 -11
  98. data/doc/TaskJuggler/LogicalFlag.html +26 -2
  99. data/doc/TaskJuggler/LogicalFunction.html +28 -4
  100. data/doc/TaskJuggler/LogicalOperation.html +26 -2
  101. data/doc/TaskJuggler/ManagerResponsibilities.html +26 -2
  102. data/doc/TaskJuggler/ManagerStatusRecord.html +26 -2
  103. data/doc/TaskJuggler/Message.html +26 -2
  104. data/doc/TaskJuggler/MessageHandler.html +108 -62
  105. data/doc/TaskJuggler/Navigator.html +26 -2
  106. data/doc/TaskJuggler/NavigatorElement.html +26 -2
  107. data/doc/TaskJuggler/NikuProject.html +26 -2
  108. data/doc/TaskJuggler/NikuReport.html +27 -3
  109. data/doc/TaskJuggler/NikuResource.html +26 -2
  110. data/doc/TaskJuggler/NodeListAttribute.html +31 -7
  111. data/doc/TaskJuggler/PlaceHolderCell.html +26 -2
  112. data/doc/TaskJuggler/ProcessIntercom.html +26 -2
  113. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -2
  114. data/doc/TaskJuggler/Project.html +1236 -973
  115. data/doc/TaskJuggler/ProjectBroker.html +26 -2
  116. data/doc/TaskJuggler/ProjectBrokerIface.html +26 -2
  117. data/doc/TaskJuggler/ProjectFileParser.html +29 -4
  118. data/doc/TaskJuggler/ProjectFileScanner.html +56 -31
  119. data/doc/TaskJuggler/ProjectRecord.html +26 -2
  120. data/doc/TaskJuggler/ProjectServer.html +26 -2
  121. data/doc/TaskJuggler/ProjectServerIface.html +26 -2
  122. data/doc/TaskJuggler/PropertyAttribute.html +35 -11
  123. data/doc/TaskJuggler/PropertyList.html +26 -2
  124. data/doc/TaskJuggler/PropertySet.html +126 -106
  125. data/doc/TaskJuggler/PropertyTreeNode.html +595 -551
  126. data/doc/TaskJuggler/Query.html +127 -100
  127. data/doc/TaskJuggler/RTFHandlers.html +26 -2
  128. data/doc/TaskJuggler/RTFNavigator.html +26 -2
  129. data/doc/TaskJuggler/RTFQuery.html +28 -4
  130. data/doc/TaskJuggler/RTFReport.html +26 -2
  131. data/doc/TaskJuggler/RTFReportLink.html +26 -2
  132. data/doc/TaskJuggler/RTFWithQuerySupport.html +26 -2
  133. data/doc/TaskJuggler/RealFormat.html +26 -2
  134. data/doc/TaskJuggler/RealFormatAttribute.html +31 -7
  135. data/doc/TaskJuggler/ReferenceAttribute.html +58 -34
  136. data/doc/TaskJuggler/Report.html +427 -284
  137. data/doc/TaskJuggler/ReportBase.html +28 -102
  138. data/doc/TaskJuggler/ReportContext.html +26 -2
  139. data/doc/TaskJuggler/ReportScenario.html +633 -0
  140. data/doc/TaskJuggler/ReportServer.html +26 -2
  141. data/doc/TaskJuggler/ReportServerIface.html +26 -2
  142. data/doc/TaskJuggler/ReportServerRecord.html +26 -2
  143. data/doc/TaskJuggler/ReportServlet.html +26 -2
  144. data/doc/TaskJuggler/ReportTable.html +26 -2
  145. data/doc/TaskJuggler/ReportTableCell.html +26 -2
  146. data/doc/TaskJuggler/ReportTableColumn.html +26 -2
  147. data/doc/TaskJuggler/ReportTableLegend.html +26 -2
  148. data/doc/TaskJuggler/ReportTableLine.html +26 -2
  149. data/doc/TaskJuggler/Resource.html +225 -163
  150. data/doc/TaskJuggler/ResourceListAttribute.html +71 -47
  151. data/doc/TaskJuggler/ResourceListRE.html +26 -2
  152. data/doc/TaskJuggler/ResourceScenario.html +645 -603
  153. data/doc/TaskJuggler/RichText.html +26 -2
  154. data/doc/TaskJuggler/RichTextAttribute.html +53 -29
  155. data/doc/TaskJuggler/RichTextDocument.html +26 -2
  156. data/doc/TaskJuggler/RichTextElement.html +26 -2
  157. data/doc/TaskJuggler/RichTextFunctionExample.html +26 -2
  158. data/doc/TaskJuggler/RichTextFunctionHandler.html +26 -2
  159. data/doc/TaskJuggler/RichTextImage.html +26 -2
  160. data/doc/TaskJuggler/RichTextIntermediate.html +29 -5
  161. data/doc/TaskJuggler/RichTextParser.html +26 -2
  162. data/doc/TaskJuggler/RichTextScanner.html +26 -2
  163. data/doc/TaskJuggler/RichTextSnip.html +26 -2
  164. data/doc/TaskJuggler/RichTextSyntaxRules.html +26 -2
  165. data/doc/TaskJuggler/Scenario.html +26 -2
  166. data/doc/TaskJuggler/ScenarioData.html +95 -28
  167. data/doc/TaskJuggler/ScenarioListAttribute.html +39 -15
  168. data/doc/TaskJuggler/Scoreboard.html +137 -73
  169. data/doc/TaskJuggler/ScoreboardInterval.html +1116 -0
  170. data/doc/TaskJuggler/SheetHandlerBase.html +26 -2
  171. data/doc/TaskJuggler/SheetReceiver.html +26 -2
  172. data/doc/TaskJuggler/SheetSender.html +26 -2
  173. data/doc/TaskJuggler/Shift.html +27 -3
  174. data/doc/TaskJuggler/ShiftAssignment.html +27 -3
  175. data/doc/TaskJuggler/ShiftAssignments.html +174 -149
  176. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +41 -16
  177. data/doc/TaskJuggler/ShiftScenario.html +26 -2
  178. data/doc/TaskJuggler/SimpleQueryExpander.html +26 -2
  179. data/doc/TaskJuggler/SortListAttribute.html +35 -11
  180. data/doc/TaskJuggler/StatusSheetReceiver.html +26 -2
  181. data/doc/TaskJuggler/StatusSheetReport.html +26 -2
  182. data/doc/TaskJuggler/StatusSheetSender.html +26 -2
  183. data/doc/TaskJuggler/StdIoWrapper.html +26 -2
  184. data/doc/TaskJuggler/StringAttribute.html +39 -15
  185. data/doc/TaskJuggler/SymbolAttribute.html +35 -11
  186. data/doc/TaskJuggler/SyntaxReference.html +26 -2
  187. data/doc/TaskJuggler/TOCEntry.html +26 -2
  188. data/doc/TaskJuggler/TSResourceRecord.html +26 -2
  189. data/doc/TaskJuggler/TSTaskRecord.html +26 -2
  190. data/doc/TaskJuggler/TableColumnDefinition.html +26 -2
  191. data/doc/TaskJuggler/TableOfContents.html +26 -2
  192. data/doc/TaskJuggler/TableReport.html +239 -214
  193. data/doc/TaskJuggler/TagFile/TagFileEntry.html +841 -0
  194. data/doc/TaskJuggler/TagFile.html +817 -0
  195. data/doc/TaskJuggler/Task.html +27 -3
  196. data/doc/TaskJuggler/TaskDepListAttribute.html +47 -23
  197. data/doc/TaskJuggler/TaskDependency.html +26 -2
  198. data/doc/TaskJuggler/TaskListAttribute.html +47 -23
  199. data/doc/TaskJuggler/TaskListRE.html +26 -2
  200. data/doc/TaskJuggler/TaskScenario.html +2235 -2178
  201. data/doc/TaskJuggler/TernarySearchTree.html +26 -2
  202. data/doc/TaskJuggler/TextFormatter.html +26 -2
  203. data/doc/TaskJuggler/TextParser/Macro.html +26 -2
  204. data/doc/TaskJuggler/TextParser/MacroTable.html +26 -2
  205. data/doc/TaskJuggler/TextParser/Pattern.html +26 -2
  206. data/doc/TaskJuggler/TextParser/Rule.html +26 -2
  207. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +32 -8
  208. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +39 -15
  209. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +26 -2
  210. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +119 -86
  211. data/doc/TaskJuggler/TextParser/Scanner.html +317 -291
  212. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +26 -2
  213. data/doc/TaskJuggler/TextParser/StackElement.html +26 -2
  214. data/doc/TaskJuggler/TextParser/State.html +26 -2
  215. data/doc/TaskJuggler/TextParser/StateTransition.html +26 -2
  216. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +26 -2
  217. data/doc/TaskJuggler/TextParser/TokenDoc.html +26 -2
  218. data/doc/TaskJuggler/TextParser.html +85 -61
  219. data/doc/TaskJuggler/TextReport.html +26 -2
  220. data/doc/TaskJuggler/TimeInterval.html +841 -0
  221. data/doc/TaskJuggler/{IntervalListAttribute.html → TimeIntervalListAttribute.html} +33 -9
  222. data/doc/TaskJuggler/TimeSheet.html +26 -2
  223. data/doc/TaskJuggler/TimeSheetReceiver.html +26 -2
  224. data/doc/TaskJuggler/TimeSheetRecord.html +27 -3
  225. data/doc/TaskJuggler/TimeSheetReport.html +29 -5
  226. data/doc/TaskJuggler/TimeSheetSender.html +26 -2
  227. data/doc/TaskJuggler/TimeSheetSummary.html +26 -2
  228. data/doc/TaskJuggler/TimeSheets.html +26 -2
  229. data/doc/TaskJuggler/Tj3.html +150 -111
  230. data/doc/TaskJuggler/Tj3AppBase.html +26 -2
  231. data/doc/TaskJuggler/Tj3Client.html +26 -2
  232. data/doc/TaskJuggler/Tj3Daemon.html +26 -2
  233. data/doc/TaskJuggler/Tj3Man.html +26 -2
  234. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -2
  235. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -2
  236. data/doc/TaskJuggler/Tj3SsSender.html +26 -2
  237. data/doc/TaskJuggler/Tj3TsReceiver.html +26 -2
  238. data/doc/TaskJuggler/Tj3TsSender.html +26 -2
  239. data/doc/TaskJuggler/Tj3TsSummary.html +26 -2
  240. data/doc/TaskJuggler/TjException.html +26 -2
  241. data/doc/TaskJuggler/TjRuntimeError.html +26 -2
  242. data/doc/TaskJuggler/TjTime.html +539 -477
  243. data/doc/TaskJuggler/TjpExample.html +26 -2
  244. data/doc/TaskJuggler/TjpExportRE.html +240 -161
  245. data/doc/TaskJuggler/TjpSyntaxRules.html +4236 -3844
  246. data/doc/TaskJuggler/URLParameter.html +26 -2
  247. data/doc/TaskJuggler/UserManual.html +26 -2
  248. data/doc/TaskJuggler/VimSyntax.html +31 -7
  249. data/doc/TaskJuggler/WebServer.html +26 -2
  250. data/doc/TaskJuggler/WelcomePage.html +26 -2
  251. data/doc/TaskJuggler/WorkingHours.html +227 -152
  252. data/doc/TaskJuggler/WorkingHoursAttribute.html +62 -38
  253. data/doc/TaskJuggler/XMLBlob.html +26 -2
  254. data/doc/TaskJuggler/XMLComment.html +26 -2
  255. data/doc/TaskJuggler/XMLDocument.html +26 -2
  256. data/doc/TaskJuggler/XMLElement.html +26 -2
  257. data/doc/TaskJuggler/XMLNamedText.html +26 -2
  258. data/doc/TaskJuggler/XMLText.html +26 -2
  259. data/doc/TaskJuggler.html +486 -427
  260. data/doc/index.html +801 -659
  261. data/doc/lib/taskjuggler/AccountScenario_rb.html +1 -1
  262. data/doc/lib/taskjuggler/Account_rb.html +1 -1
  263. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +1 -1
  264. data/doc/lib/taskjuggler/Allocation_rb.html +1 -1
  265. data/doc/lib/taskjuggler/AppConfig_rb.html +1 -1
  266. data/doc/lib/taskjuggler/AttributeBase_rb.html +1 -1
  267. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +1 -1
  268. data/doc/lib/taskjuggler/Attributes_rb.html +1 -1
  269. data/doc/lib/taskjuggler/BatchProcessor_rb.html +1 -1
  270. data/doc/lib/taskjuggler/Booking_rb.html +1 -1
  271. data/doc/lib/taskjuggler/ChargeSet_rb.html +1 -1
  272. data/doc/lib/taskjuggler/Charge_rb.html +1 -1
  273. data/doc/lib/taskjuggler/DataCache_rb.html +1 -1
  274. data/doc/lib/taskjuggler/FileList_rb.html +1 -1
  275. data/doc/lib/taskjuggler/HTMLDocument_rb.html +1 -1
  276. data/doc/lib/{ruby-signal-bug_rb.html → taskjuggler/HTMLElements_rb.html} +9 -9
  277. data/doc/lib/{exchangebug_rb.html → taskjuggler/ICalendar_rb.html} +9 -9
  278. data/doc/lib/taskjuggler/IntervalList_rb.html +1 -1
  279. data/doc/lib/taskjuggler/Interval_rb.html +1 -1
  280. data/doc/lib/taskjuggler/Journal_rb.html +1 -1
  281. data/doc/lib/taskjuggler/KeywordArray_rb.html +1 -1
  282. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +1 -1
  283. data/doc/lib/taskjuggler/Limits_rb.html +1 -1
  284. data/doc/lib/taskjuggler/LogFile_rb.html +1 -1
  285. data/doc/lib/taskjuggler/Log_rb.html +1 -1
  286. data/doc/lib/taskjuggler/LogicalExpression_rb.html +1 -1
  287. data/doc/lib/taskjuggler/LogicalFunction_rb.html +1 -1
  288. data/doc/lib/taskjuggler/LogicalOperation_rb.html +1 -1
  289. data/doc/lib/taskjuggler/MessageHandler_rb.html +1 -1
  290. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +1 -1
  291. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +1 -1
  292. data/doc/lib/taskjuggler/Project_rb.html +1 -1
  293. data/doc/lib/taskjuggler/PropertyList_rb.html +1 -1
  294. data/doc/lib/taskjuggler/PropertySet_rb.html +1 -1
  295. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +1 -1
  296. data/doc/lib/taskjuggler/Query_rb.html +1 -1
  297. data/doc/lib/taskjuggler/RealFormat_rb.html +1 -1
  298. data/doc/lib/taskjuggler/ResourceScenario_rb.html +1 -1
  299. data/doc/lib/taskjuggler/Resource_rb.html +1 -1
  300. data/doc/lib/taskjuggler/RichText/Document_rb.html +1 -1
  301. data/doc/lib/taskjuggler/RichText/Element_rb.html +1 -1
  302. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +1 -1
  303. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +1 -1
  304. data/doc/lib/taskjuggler/RichText/Parser_rb.html +1 -1
  305. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +1 -1
  306. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +1 -1
  307. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +1 -1
  308. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +1 -1
  309. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +1 -1
  310. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +1 -1
  311. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +1 -1
  312. data/doc/lib/taskjuggler/RichText/Snip_rb.html +1 -1
  313. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +1 -1
  314. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +1 -1
  315. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +1 -1
  316. data/doc/lib/taskjuggler/RichText_rb.html +1 -1
  317. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +1 -1
  318. data/doc/lib/taskjuggler/ScenarioData_rb.html +1 -1
  319. data/doc/lib/taskjuggler/Scenario_rb.html +1 -1
  320. data/doc/lib/taskjuggler/Scoreboard_rb.html +1 -1
  321. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +1 -1
  322. data/doc/lib/taskjuggler/SheetReceiver_rb.html +1 -1
  323. data/doc/lib/taskjuggler/SheetSender_rb.html +1 -1
  324. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +1 -1
  325. data/doc/lib/taskjuggler/ShiftScenario_rb.html +1 -1
  326. data/doc/lib/taskjuggler/Shift_rb.html +1 -1
  327. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +1 -1
  328. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +1 -1
  329. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +1 -1
  330. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +1 -1
  331. data/doc/lib/taskjuggler/SyntaxReference_rb.html +1 -1
  332. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +1 -1
  333. data/doc/lib/taskjuggler/TaskDependency_rb.html +1 -1
  334. data/doc/lib/taskjuggler/TaskJuggler_rb.html +1 -1
  335. data/doc/lib/taskjuggler/TaskScenario_rb.html +1 -1
  336. data/doc/lib/taskjuggler/Task_rb.html +1 -1
  337. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +1 -1
  338. data/doc/lib/taskjuggler/TextFormatter_rb.html +1 -1
  339. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +1 -1
  340. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +1 -1
  341. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +1 -1
  342. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +1 -1
  343. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +1 -1
  344. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +1 -1
  345. data/doc/lib/taskjuggler/TextParser/State_rb.html +1 -1
  346. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +1 -1
  347. data/doc/lib/taskjuggler/TextParser_rb.html +1 -1
  348. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +1 -1
  349. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +1 -1
  350. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +1 -1
  351. data/doc/lib/taskjuggler/TimeSheets_rb.html +1 -1
  352. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +1 -1
  353. data/doc/lib/taskjuggler/Tj3Config_rb.html +1 -1
  354. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +1 -1
  355. data/doc/lib/taskjuggler/TjException_rb.html +1 -1
  356. data/doc/lib/taskjuggler/TjTime_rb.html +1 -1
  357. data/doc/lib/taskjuggler/TjpExample_rb.html +1 -1
  358. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +1 -1
  359. data/doc/lib/taskjuggler/URLParameter_rb.html +1 -1
  360. data/doc/lib/taskjuggler/UTF8String_rb.html +1 -1
  361. data/doc/lib/taskjuggler/UserManual_rb.html +1 -1
  362. data/doc/lib/taskjuggler/VimSyntax_rb.html +1 -1
  363. data/doc/lib/taskjuggler/WorkingHours_rb.html +1 -1
  364. data/doc/lib/taskjuggler/XMLDocument_rb.html +1 -1
  365. data/doc/lib/taskjuggler/XMLElement_rb.html +1 -1
  366. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +1 -1
  367. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +1 -1
  368. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +1 -1
  369. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +1 -1
  370. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +1 -1
  371. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +1 -1
  372. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +1 -1
  373. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +1 -1
  374. data/doc/lib/taskjuggler/apps/Tj3_rb.html +1 -1
  375. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +1 -1
  376. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +1 -1
  377. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +1 -1
  378. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +1 -1
  379. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +1 -1
  380. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +1 -1
  381. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +1 -1
  382. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +1 -1
  383. data/doc/lib/taskjuggler/deep_copy_rb.html +1 -1
  384. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +1 -1
  385. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +1 -1
  386. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +1 -1
  387. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +1 -1
  388. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +1 -1
  389. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +1 -1
  390. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +1 -1
  391. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +1 -1
  392. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +1 -1
  393. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +1 -1
  394. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +1 -1
  395. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +1 -1
  396. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +1 -1
  397. data/doc/lib/taskjuggler/reports/ICalReport_rb.html +71 -0
  398. data/doc/lib/taskjuggler/reports/Navigator_rb.html +1 -1
  399. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +1 -1
  400. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +1 -1
  401. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +1 -1
  402. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +1 -1
  403. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +1 -1
  404. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +1 -1
  405. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +1 -1
  406. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +1 -1
  407. data/doc/lib/taskjuggler/reports/Report_rb.html +5 -1
  408. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +1 -1
  409. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +1 -1
  410. data/doc/lib/taskjuggler/reports/TableReport_rb.html +1 -1
  411. data/doc/lib/taskjuggler/reports/TagFile_rb.html +71 -0
  412. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +1 -1
  413. data/doc/lib/taskjuggler/reports/TextReport_rb.html +1 -1
  414. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +1 -1
  415. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +1 -1
  416. data/doc/lib/tj3_rb.html +1 -1
  417. data/doc/lib/tj3client_rb.html +1 -1
  418. data/doc/lib/tj3d_rb.html +1 -1
  419. data/doc/lib/tj3man_rb.html +1 -1
  420. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  421. data/doc/lib/tj3ss_sender_rb.html +1 -1
  422. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  423. data/doc/lib/tj3ts_sender_rb.html +1 -1
  424. data/doc/lib/tj3ts_summary_rb.html +1 -1
  425. data/lib/taskjuggler/Account.rb +1 -1
  426. data/lib/taskjuggler/AccountScenario.rb +1 -1
  427. data/lib/taskjuggler/Allocation.rb +5 -5
  428. data/lib/taskjuggler/AttributeBase.rb +30 -22
  429. data/lib/taskjuggler/Attributes.rb +80 -78
  430. data/lib/taskjuggler/Booking.rb +2 -2
  431. data/lib/taskjuggler/Charge.rb +3 -3
  432. data/lib/taskjuggler/ICalendar.rb +251 -0
  433. data/lib/taskjuggler/Interval.rb +215 -53
  434. data/lib/taskjuggler/IntervalList.rb +5 -5
  435. data/lib/taskjuggler/Limits.rb +79 -69
  436. data/lib/taskjuggler/LogicalFunction.rb +2 -2
  437. data/lib/taskjuggler/MessageHandler.rb +11 -6
  438. data/lib/taskjuggler/Project.rb +208 -95
  439. data/lib/taskjuggler/ProjectFileParser.rb +2 -2
  440. data/lib/taskjuggler/ProjectFileScanner.rb +7 -6
  441. data/lib/taskjuggler/PropertySet.rb +1 -5
  442. data/lib/taskjuggler/PropertyTreeNode.rb +21 -16
  443. data/lib/taskjuggler/Query.rb +10 -7
  444. data/lib/taskjuggler/Resource.rb +6 -1
  445. data/lib/taskjuggler/ResourceScenario.rb +85 -69
  446. data/lib/taskjuggler/RichText/RTFQuery.rb +2 -2
  447. data/lib/taskjuggler/ScenarioData.rb +11 -1
  448. data/lib/taskjuggler/Scoreboard.rb +8 -1
  449. data/lib/taskjuggler/Shift.rb +1 -1
  450. data/lib/taskjuggler/ShiftAssignments.rb +22 -20
  451. data/lib/taskjuggler/Task.rb +1 -1
  452. data/lib/taskjuggler/TaskJuggler.rb +65 -51
  453. data/lib/taskjuggler/TaskScenario.rb +486 -419
  454. data/lib/taskjuggler/TextParser/Scanner.rb +22 -11
  455. data/lib/taskjuggler/TimeSheets.rb +1 -1
  456. data/lib/taskjuggler/Tj3Config.rb +1 -1
  457. data/lib/taskjuggler/TjTime.rb +7 -3
  458. data/lib/taskjuggler/TjpSyntaxRules.rb +157 -23
  459. data/lib/taskjuggler/VimSyntax.rb +18 -0
  460. data/lib/taskjuggler/WorkingHours.rb +20 -4
  461. data/lib/taskjuggler/apps/Tj3.rb +16 -1
  462. data/lib/taskjuggler/reports/GanttLine.rb +1 -1
  463. data/lib/taskjuggler/reports/ICalReport.rb +136 -0
  464. data/lib/taskjuggler/reports/NikuReport.rb +1 -1
  465. data/lib/taskjuggler/reports/Report.rb +59 -0
  466. data/lib/taskjuggler/reports/ReportBase.rb +2 -67
  467. data/lib/taskjuggler/reports/TableReport.rb +9 -8
  468. data/lib/taskjuggler/reports/TagFile.rb +120 -0
  469. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -3
  470. data/lib/taskjuggler/reports/TjpExportRE.rb +33 -9
  471. data/manual/Installation +126 -0
  472. data/spec/ICalendar_spec.rb +45 -0
  473. data/spec/IntervalList_spec.rb +11 -11
  474. data/tasks/changelog.rake +150 -60
  475. data/tasks/gem.rake +1 -0
  476. data/tasks/vim.rake +2 -2
  477. data/test/TestSuite/Export-Reports/refs/Booking.tjp +1 -1
  478. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  479. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +10 -1
  480. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +1 -1
  481. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  482. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  483. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  484. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  485. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  486. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  487. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  488. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  489. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  490. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  491. data/test/TestSuite/{Scheduler/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  492. data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
  493. data/test/TestSuite/Scheduler/Correct/Duration.tjp +3 -3
  494. data/test/TestSuite/Scheduler/Errors/R.html +113 -0
  495. data/test/TestSuite/Scheduler/Errors/allocate_no_assigned.tjp +15 -0
  496. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjmanual.css +0 -1
  497. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjreport.css +0 -0
  498. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/details.png +0 -0
  499. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-green.png +0 -0
  500. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-red.png +0 -0
  501. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-yellow.png +0 -0
  502. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resource.png +0 -0
  503. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resourcegroup.png +0 -0
  504. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/task.png +0 -0
  505. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/taskgroup.png +0 -0
  506. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-down.png +0 -0
  507. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-flat.png +0 -0
  508. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-up.png +0 -0
  509. data/test/TestSuite/Scheduler/Errors/overbooked_duration.tjp +11 -0
  510. data/test/TestSuite/Scheduler/Errors/overbooked_effort.tjp +11 -0
  511. data/test/TestSuite/Scheduler/Errors/overbooked_length.tjp +13 -0
  512. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/scripts/wz_tooltip.js +0 -0
  513. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  514. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  515. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +5 -2
  516. data/test/TestSuite/Syntax/Errors/scenario_after_tracking.tjp +8 -0
  517. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  518. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  519. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  520. data/test/test_Limits.rb +38 -30
  521. data/test/test_Scheduler.rb +2 -2
  522. data/test/test_ShiftAssignments.rb +8 -8
  523. data/test/test_WorkingHours.rb +4 -4
  524. metadata +1015 -1005
  525. data/lib/exchangebug.rb +0 -42
  526. data/lib/ruby-signal-bug.rb +0 -55
  527. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -60
  528. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -80
  529. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  530. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  531. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -412
  532. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -680
  533. data/test/TestSuite/ReportGenerator/Correct/DependencyList.csv +0 -4
  534. data/test/TestSuite/ReportGenerator/Correct/DependencyList.tjp +0 -25
  535. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -8
  536. data/test/TestSuite/ReportGenerator/Correct/Journal-2.csv +0 -8
  537. data/test/TestSuite/ReportGenerator/Correct/Journal-3.html +0 -28
  538. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  540. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  541. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  542. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  543. data/test/TestSuite/Scheduler/' +0 -23
  544. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  545. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  546. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  547. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  548. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  549. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  550. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  551. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  552. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  553. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  554. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  555. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  556. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  557. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  558. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  559. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  560. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  561. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  562. data/test/TestSuite/TimeSheets/receiver.log.mod +0 -1056
  563. data/test/TestSuite/TimeSheets/uu.txt +0 -29
@@ -241,12 +241,24 @@
241
241
 
242
242
  <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
243
243
 
244
+ <li><a href="../TaskJuggler/ICalReport.html">TaskJuggler::ICalReport</a></li>
245
+
246
+ <li><a href="../TaskJuggler/ICalendar.html">TaskJuggler::ICalendar</a></li>
247
+
248
+ <li><a href="../TaskJuggler/ICalendar/Component.html">TaskJuggler::ICalendar::Component</a></li>
249
+
250
+ <li><a href="../TaskJuggler/ICalendar/Event.html">TaskJuggler::ICalendar::Event</a></li>
251
+
252
+ <li><a href="../TaskJuggler/ICalendar/Journal.html">TaskJuggler::ICalendar::Journal</a></li>
253
+
254
+ <li><a href="../TaskJuggler/ICalendar/Person.html">TaskJuggler::ICalendar::Person</a></li>
255
+
256
+ <li><a href="../TaskJuggler/ICalendar/Todo.html">TaskJuggler::ICalendar::Todo</a></li>
257
+
244
258
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
245
259
 
246
260
  <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
247
261
 
248
- <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
249
-
250
262
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
251
263
 
252
264
  <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
@@ -361,6 +373,8 @@
361
373
 
362
374
  <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
363
375
 
376
+ <li><a href="../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
377
+
364
378
  <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
365
379
 
366
380
  <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
@@ -419,6 +433,8 @@
419
433
 
420
434
  <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
421
435
 
436
+ <li><a href="../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
437
+
422
438
  <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
423
439
 
424
440
  <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
@@ -465,6 +481,10 @@
465
481
 
466
482
  <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
467
483
 
484
+ <li><a href="../TaskJuggler/TagFile.html">TaskJuggler::TagFile</a></li>
485
+
486
+ <li><a href="../TaskJuggler/TagFile/TagFileEntry.html">TaskJuggler::TagFile::TagFileEntry</a></li>
487
+
468
488
  <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
469
489
 
470
490
  <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
@@ -515,6 +535,10 @@
515
535
 
516
536
  <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
517
537
 
538
+ <li><a href="../TaskJuggler/TimeInterval.html">TaskJuggler::TimeInterval</a></li>
539
+
540
+ <li><a href="../TaskJuggler/TimeIntervalListAttribute.html">TaskJuggler::TimeIntervalListAttribute</a></li>
541
+
518
542
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
519
543
 
520
544
  <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
@@ -1215,8 +1239,9 @@ optional unit as a <a href="../String.html">String</a>.
1215
1239
  <pre>
1216
1240
  <span class="ruby-comment cmt"># File lib/taskjuggler/Query.rb, line 275</span>
1217
1241
  275: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleDuration</span>(<span class="ruby-identifier">value</span>)
1218
- 276: <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, [ <span class="ruby-value">24</span> * <span class="ruby-value">60</span>, <span class="ruby-value">24</span>, <span class="ruby-value">1</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">7</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">30.42</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">365</span> ])
1219
- 277: <span class="ruby-keyword kw">end</span></pre>
1242
+ 276: <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, [ <span class="ruby-value">24</span> * <span class="ruby-value">60</span>, <span class="ruby-value">24</span>, <span class="ruby-value">1</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">7</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">30.42</span>,
1243
+ 277: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">91.25</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">365</span> ])
1244
+ 278: <span class="ruby-keyword kw">end</span></pre>
1220
1245
  </div>
1221
1246
 
1222
1247
  </div>
@@ -1251,15 +1276,16 @@ value with optional unit as a <a href="../String.html">String</a>.
1251
1276
  <div class="method-source-code"
1252
1277
  id="scale-oad-source">
1253
1278
  <pre>
1254
- <span class="ruby-comment cmt"># File lib/taskjuggler/Query.rb, line 282</span>
1255
- 282: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleLoad</span>(<span class="ruby-identifier">value</span>)
1256
- 283: <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, [ <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span> * <span class="ruby-value">60</span>,
1257
- 284: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span>,
1258
- 285: <span class="ruby-value">1.0</span>,
1259
- 286: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">weeklyWorkingDays</span>,
1260
- 287: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">monthlyWorkingDays</span>,
1261
- 288: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">yearlyWorkingDays</span> ])
1262
- 289: <span class="ruby-keyword kw">end</span></pre>
1279
+ <span class="ruby-comment cmt"># File lib/taskjuggler/Query.rb, line 283</span>
1280
+ 283: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleLoad</span>(<span class="ruby-identifier">value</span>)
1281
+ 284: <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, [ <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span> * <span class="ruby-value">60</span>,
1282
+ 285: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span>,
1283
+ 286: <span class="ruby-value">1.0</span>,
1284
+ 287: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">weeklyWorkingDays</span>,
1285
+ 288: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">monthlyWorkingDays</span>,
1286
+ 289: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> (<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">yearlyWorkingDays</span> <span class="ruby-operator">/</span> <span class="ruby-value">4</span>),
1287
+ 290: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">yearlyWorkingDays</span> ])
1288
+ 291: <span class="ruby-keyword kw">end</span></pre>
1263
1289
  </div>
1264
1290
 
1265
1291
  </div>
@@ -1570,12 +1596,12 @@ result data.
1570
1596
  <div class="method-source-code"
1571
1597
  id="reset-source">
1572
1598
  <pre>
1573
- <span class="ruby-comment cmt"># File lib/taskjuggler/Query.rb, line 383</span>
1574
- 383: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
1575
- 384: <span class="ruby-ivar">@attr</span> = <span class="ruby-ivar">@numerical</span> = <span class="ruby-ivar">@sortable</span> = <span class="ruby-ivar">@string</span> = <span class="ruby-ivar">@rti</span> = <span class="ruby-keyword kw">nil</span>
1576
- 385: <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
1577
- 386: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-keyword kw">nil</span>
1578
- 387: <span class="ruby-keyword kw">end</span></pre>
1599
+ <span class="ruby-comment cmt"># File lib/taskjuggler/Query.rb, line 386</span>
1600
+ 386: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
1601
+ 387: <span class="ruby-ivar">@attr</span> = <span class="ruby-ivar">@numerical</span> = <span class="ruby-ivar">@sortable</span> = <span class="ruby-ivar">@string</span> = <span class="ruby-ivar">@rti</span> = <span class="ruby-keyword kw">nil</span>
1602
+ 388: <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
1603
+ 389: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-keyword kw">nil</span>
1604
+ 390: <span class="ruby-keyword kw">end</span></pre>
1579
1605
  </div>
1580
1606
 
1581
1607
  </div>
@@ -1606,22 +1632,22 @@ result data.
1606
1632
  <div class="method-source-code"
1607
1633
  id="resolve-roperty-d-source">
1608
1634
  <pre>
1609
- <span class="ruby-comment cmt"># File lib/taskjuggler/Query.rb, line 293</span>
1610
- 293: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-identifier">pType</span>, <span class="ruby-identifier">pId</span>)
1611
- 294: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>
1612
- 295: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Need Project reference to process the query&quot;</span>
1613
- 296: <span class="ruby-keyword kw">end</span>
1614
- 297: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">pType</span>
1615
- 298: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:Account</span>
1616
- 299: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">account</span>(<span class="ruby-identifier">pId</span>)
1617
- 300: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:Task</span>
1618
- 301: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">task</span>(<span class="ruby-identifier">pId</span>)
1619
- 302: <span class="ruby-keyword kw">when</span><span class="ruby-value">:Resource</span>
1620
- 303: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resource</span>(<span class="ruby-identifier">pId</span>)
1621
- 304: <span class="ruby-keyword kw">else</span>
1622
- 305: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{pType}&quot;</span>
1623
- 306: <span class="ruby-keyword kw">end</span>
1624
- 307: <span class="ruby-keyword kw">end</span></pre>
1635
+ <span class="ruby-comment cmt"># File lib/taskjuggler/Query.rb, line 295</span>
1636
+ 295: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-identifier">pType</span>, <span class="ruby-identifier">pId</span>)
1637
+ 296: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>
1638
+ 297: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Need Project reference to process the query&quot;</span>
1639
+ 298: <span class="ruby-keyword kw">end</span>
1640
+ 299: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">pType</span>
1641
+ 300: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:Account</span>
1642
+ 301: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">account</span>(<span class="ruby-identifier">pId</span>)
1643
+ 302: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:Task</span>
1644
+ 303: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">task</span>(<span class="ruby-identifier">pId</span>)
1645
+ 304: <span class="ruby-keyword kw">when</span><span class="ruby-value">:Resource</span>
1646
+ 305: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resource</span>(<span class="ruby-identifier">pId</span>)
1647
+ 306: <span class="ruby-keyword kw">else</span>
1648
+ 307: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{pType}&quot;</span>
1649
+ 308: <span class="ruby-keyword kw">end</span>
1650
+ 309: <span class="ruby-keyword kw">end</span></pre>
1625
1651
  </div>
1626
1652
 
1627
1653
  </div>
@@ -1658,71 +1684,72 @@ the different units.
1658
1684
  <div class="method-source-code"
1659
1685
  id="scale-alue-source">
1660
1686
  <pre>
1661
- <span class="ruby-comment cmt"># File lib/taskjuggler/Query.rb, line 314</span>
1662
- 314: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">factors</span>)
1663
- 315: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:shortauto</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
1664
- 316: <span class="ruby-comment cmt"># We try all possible units and store the resulting strings here.</span>
1665
- 317: <span class="ruby-identifier">options</span> = []
1666
- 318: <span class="ruby-comment cmt"># For each option we also save the delta between the String value and</span>
1667
- 319: <span class="ruby-comment cmt"># the original value.</span>
1668
- 320: <span class="ruby-identifier">delta</span> = []
1669
- 321: <span class="ruby-comment cmt"># For each of the units we can define a maximum value that the value</span>
1670
- 322: <span class="ruby-comment cmt"># should not exceed. nil means no limit.</span>
1671
- 323: <span class="ruby-identifier">max</span> = [ <span class="ruby-value">60</span>, <span class="ruby-value">48</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value">8</span>, <span class="ruby-value">24</span>, <span class="ruby-keyword kw">nil</span> ]
1672
- 324:
1673
- 325: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1674
- 326: <span class="ruby-identifier">factors</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">factor</span><span class="ruby-operator">|</span>
1675
- 327: <span class="ruby-identifier">scaledValue</span> = <span class="ruby-identifier">value</span> * <span class="ruby-identifier">factor</span>
1676
- 328: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">scaledValue</span>)
1677
- 329: <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">i</span>] = ((<span class="ruby-identifier">scaledValue</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">to_f</span>).<span class="ruby-identifier">abs</span> * <span class="ruby-value">1000</span>).<span class="ruby-identifier">to_i</span>
1678
- 330: <span class="ruby-comment cmt"># We ignore results that are 0 or exceed the maximum. To ensure that</span>
1679
- 331: <span class="ruby-comment cmt"># we have at least one result the unscaled value is always taken.</span>
1680
- 332: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">factor</span> <span class="ruby-operator">!=</span> <span class="ruby-value">1.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-regexp re">/^[0.]*$/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">str</span>) <span class="ruby-operator">||</span>
1681
- 333: (<span class="ruby-identifier">max</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">scaledValue</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">max</span>[<span class="ruby-identifier">i</span>])
1682
- 334: <span class="ruby-identifier">options</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">nil</span>
1683
- 335: <span class="ruby-keyword kw">else</span>
1684
- 336: <span class="ruby-identifier">options</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">str</span>
1685
- 337: <span class="ruby-keyword kw">end</span>
1686
- 338: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1687
- 339: <span class="ruby-keyword kw">end</span>
1688
- 340:
1689
- 341: <span class="ruby-comment cmt"># Find the value that is the closest to the original value. This will be</span>
1690
- 342: <span class="ruby-comment cmt"># the default if all values have the same length.</span>
1691
- 343: <span class="ruby-identifier">shortest</span> = <span class="ruby-value">2</span>
1692
- 344: <span class="ruby-identifier">delta</span>.<span class="ruby-identifier">length</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
1693
- 345: <span class="ruby-identifier">shortest</span> = <span class="ruby-identifier">j</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>][<span class="ruby-value">0</span>, <span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'0.'</span> <span class="ruby-operator">&amp;&amp;</span>
1694
- 346: <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">shortest</span>]
1695
- 347: <span class="ruby-keyword kw">end</span>
1696
- 348:
1697
- 349: <span class="ruby-comment cmt"># Find the shortest option.</span>
1698
- 350: <span class="ruby-value">6</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
1699
- 351: <span class="ruby-identifier">shortest</span> = <span class="ruby-identifier">j</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>][<span class="ruby-value">0</span>, <span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'0.'</span> <span class="ruby-operator">&amp;&amp;</span>
1700
- 352: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>].<span class="ruby-identifier">length</span>
1701
- 353: <span class="ruby-keyword kw">end</span>
1702
- 354:
1703
- 355: <span class="ruby-identifier">str</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>]
1704
- 356: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
1705
- 357: <span class="ruby-comment cmt"># For the long units we handle singular and plural properly. For</span>
1706
- 358: <span class="ruby-comment cmt"># English we just need to append an 's', but this code will work for</span>
1707
- 359: <span class="ruby-comment cmt"># other languages as well.</span>
1708
- 360: <span class="ruby-identifier">units</span> = []
1709
- 361: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;1&quot;</span>
1710
- 362: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minute hour day week month year )</span>
1711
- 363: <span class="ruby-keyword kw">else</span>
1712
- 364: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minutes hours days weeks months years )</span>
1713
- 365: <span class="ruby-keyword kw">end</span>
1714
- 366: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">' '</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">units</span>[<span class="ruby-identifier">shortest</span>]
1715
- 367: <span class="ruby-keyword kw">else</span>
1716
- 368: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">%( min h d w m y )</span>[<span class="ruby-identifier">shortest</span>]
1717
- 369: <span class="ruby-keyword kw">end</span>
1718
- 370: <span class="ruby-keyword kw">else</span>
1719
- 371: <span class="ruby-comment cmt"># For fixed units we just need to do the conversion. No unit is</span>
1720
- 372: <span class="ruby-comment cmt"># included.</span>
1721
- 373: <span class="ruby-identifier">units</span> = [ <span class="ruby-value">:minutes</span>, <span class="ruby-value">:hours</span>, <span class="ruby-value">:days</span>, <span class="ruby-value">:weeks</span>, <span class="ruby-value">:months</span>, <span class="ruby-value">:years</span> ]
1722
- 374: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">value</span> * <span class="ruby-identifier">factors</span>[<span class="ruby-identifier">units</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@loadUnit</span>)])
1723
- 375: <span class="ruby-keyword kw">end</span>
1724
- 376: <span class="ruby-identifier">str</span>
1725
- 377: <span class="ruby-keyword kw">end</span></pre>
1687
+ <span class="ruby-comment cmt"># File lib/taskjuggler/Query.rb, line 316</span>
1688
+ 316: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">factors</span>)
1689
+ 317: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:shortauto</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
1690
+ 318: <span class="ruby-comment cmt"># We try all possible units and store the resulting strings here.</span>
1691
+ 319: <span class="ruby-identifier">options</span> = []
1692
+ 320: <span class="ruby-comment cmt"># For each option we also save the delta between the String value and</span>
1693
+ 321: <span class="ruby-comment cmt"># the original value.</span>
1694
+ 322: <span class="ruby-identifier">delta</span> = []
1695
+ 323: <span class="ruby-comment cmt"># For each of the units we can define a maximum value that the value</span>
1696
+ 324: <span class="ruby-comment cmt"># should not exceed. nil means no limit. Never use quarters since it's</span>
1697
+ 325: <span class="ruby-comment cmt"># pretty uncommon to use.</span>
1698
+ 326: <span class="ruby-identifier">max</span> = [ <span class="ruby-value">60</span>, <span class="ruby-value">48</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value">8</span>, <span class="ruby-value">24</span>, <span class="ruby-value">0</span>, <span class="ruby-keyword kw">nil</span> ]
1699
+ 327:
1700
+ 328: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1701
+ 329: <span class="ruby-identifier">factors</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">factor</span><span class="ruby-operator">|</span>
1702
+ 330: <span class="ruby-identifier">scaledValue</span> = <span class="ruby-identifier">value</span> * <span class="ruby-identifier">factor</span>
1703
+ 331: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">scaledValue</span>)
1704
+ 332: <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">i</span>] = ((<span class="ruby-identifier">scaledValue</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">to_f</span>).<span class="ruby-identifier">abs</span> * <span class="ruby-value">1000</span>).<span class="ruby-identifier">to_i</span>
1705
+ 333: <span class="ruby-comment cmt"># We ignore results that are 0 or exceed the maximum. To ensure that</span>
1706
+ 334: <span class="ruby-comment cmt"># we have at least one result the unscaled value is always taken.</span>
1707
+ 335: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">factor</span> <span class="ruby-operator">!=</span> <span class="ruby-value">1.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-regexp re">/^[0.]*$/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">str</span>) <span class="ruby-operator">||</span>
1708
+ 336: (<span class="ruby-identifier">max</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">scaledValue</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">max</span>[<span class="ruby-identifier">i</span>])
1709
+ 337: <span class="ruby-identifier">options</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">nil</span>
1710
+ 338: <span class="ruby-keyword kw">else</span>
1711
+ 339: <span class="ruby-identifier">options</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">str</span>
1712
+ 340: <span class="ruby-keyword kw">end</span>
1713
+ 341: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1714
+ 342: <span class="ruby-keyword kw">end</span>
1715
+ 343:
1716
+ 344: <span class="ruby-comment cmt"># Find the value that is the closest to the original value. This will be</span>
1717
+ 345: <span class="ruby-comment cmt"># the default if all values have the same length.</span>
1718
+ 346: <span class="ruby-identifier">shortest</span> = <span class="ruby-value">2</span>
1719
+ 347: <span class="ruby-identifier">delta</span>.<span class="ruby-identifier">length</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
1720
+ 348: <span class="ruby-identifier">shortest</span> = <span class="ruby-identifier">j</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>][<span class="ruby-value">0</span>, <span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'0.'</span> <span class="ruby-operator">&amp;&amp;</span>
1721
+ 349: <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">shortest</span>]
1722
+ 350: <span class="ruby-keyword kw">end</span>
1723
+ 351:
1724
+ 352: <span class="ruby-comment cmt"># Find the shortest option.</span>
1725
+ 353: <span class="ruby-value">6</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
1726
+ 354: <span class="ruby-identifier">shortest</span> = <span class="ruby-identifier">j</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>][<span class="ruby-value">0</span>, <span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'0.'</span> <span class="ruby-operator">&amp;&amp;</span>
1727
+ 355: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>].<span class="ruby-identifier">length</span>
1728
+ 356: <span class="ruby-keyword kw">end</span>
1729
+ 357:
1730
+ 358: <span class="ruby-identifier">str</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>]
1731
+ 359: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
1732
+ 360: <span class="ruby-comment cmt"># For the long units we handle singular and plural properly. For</span>
1733
+ 361: <span class="ruby-comment cmt"># English we just need to append an 's', but this code will work for</span>
1734
+ 362: <span class="ruby-comment cmt"># other languages as well.</span>
1735
+ 363: <span class="ruby-identifier">units</span> = []
1736
+ 364: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;1&quot;</span>
1737
+ 365: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minute hour day week month quarter year )</span>
1738
+ 366: <span class="ruby-keyword kw">else</span>
1739
+ 367: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minutes hours days weeks months quarters years )</span>
1740
+ 368: <span class="ruby-keyword kw">end</span>
1741
+ 369: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">' '</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">units</span>[<span class="ruby-identifier">shortest</span>]
1742
+ 370: <span class="ruby-keyword kw">else</span>
1743
+ 371: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">%( min h d w m q y )</span>[<span class="ruby-identifier">shortest</span>]
1744
+ 372: <span class="ruby-keyword kw">end</span>
1745
+ 373: <span class="ruby-keyword kw">else</span>
1746
+ 374: <span class="ruby-comment cmt"># For fixed units we just need to do the conversion. No unit is</span>
1747
+ 375: <span class="ruby-comment cmt"># included.</span>
1748
+ 376: <span class="ruby-identifier">units</span> = [ <span class="ruby-value">:minutes</span>, <span class="ruby-value">:hours</span>, <span class="ruby-value">:days</span>, <span class="ruby-value">:weeks</span>, <span class="ruby-value">:months</span>, <span class="ruby-value">:quarters</span>, <span class="ruby-value">:years</span> ]
1749
+ 377: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">value</span> * <span class="ruby-identifier">factors</span>[<span class="ruby-identifier">units</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@loadUnit</span>)])
1750
+ 378: <span class="ruby-keyword kw">end</span>
1751
+ 379: <span class="ruby-identifier">str</span>
1752
+ 380: <span class="ruby-keyword kw">end</span></pre>
1726
1753
  </div>
1727
1754
 
1728
1755
  </div>
@@ -207,12 +207,24 @@
207
207
 
208
208
  <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
209
209
 
210
+ <li><a href="../TaskJuggler/ICalReport.html">TaskJuggler::ICalReport</a></li>
211
+
212
+ <li><a href="../TaskJuggler/ICalendar.html">TaskJuggler::ICalendar</a></li>
213
+
214
+ <li><a href="../TaskJuggler/ICalendar/Component.html">TaskJuggler::ICalendar::Component</a></li>
215
+
216
+ <li><a href="../TaskJuggler/ICalendar/Event.html">TaskJuggler::ICalendar::Event</a></li>
217
+
218
+ <li><a href="../TaskJuggler/ICalendar/Journal.html">TaskJuggler::ICalendar::Journal</a></li>
219
+
220
+ <li><a href="../TaskJuggler/ICalendar/Person.html">TaskJuggler::ICalendar::Person</a></li>
221
+
222
+ <li><a href="../TaskJuggler/ICalendar/Todo.html">TaskJuggler::ICalendar::Todo</a></li>
223
+
210
224
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
211
225
 
212
226
  <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
213
227
 
214
- <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
215
-
216
228
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
217
229
 
218
230
  <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
@@ -327,6 +339,8 @@
327
339
 
328
340
  <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
329
341
 
342
+ <li><a href="../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
343
+
330
344
  <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
331
345
 
332
346
  <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
@@ -385,6 +399,8 @@
385
399
 
386
400
  <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
387
401
 
402
+ <li><a href="../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
403
+
388
404
  <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
389
405
 
390
406
  <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
@@ -431,6 +447,10 @@
431
447
 
432
448
  <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
433
449
 
450
+ <li><a href="../TaskJuggler/TagFile.html">TaskJuggler::TagFile</a></li>
451
+
452
+ <li><a href="../TaskJuggler/TagFile/TagFileEntry.html">TaskJuggler::TagFile::TagFileEntry</a></li>
453
+
434
454
  <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
435
455
 
436
456
  <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
@@ -481,6 +501,10 @@
481
501
 
482
502
  <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
483
503
 
504
+ <li><a href="../TaskJuggler/TimeInterval.html">TaskJuggler::TimeInterval</a></li>
505
+
506
+ <li><a href="../TaskJuggler/TimeIntervalListAttribute.html">TaskJuggler::TimeIntervalListAttribute</a></li>
507
+
484
508
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
485
509
 
486
510
  <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
@@ -213,12 +213,24 @@
213
213
 
214
214
  <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
215
215
 
216
+ <li><a href="../TaskJuggler/ICalReport.html">TaskJuggler::ICalReport</a></li>
217
+
218
+ <li><a href="../TaskJuggler/ICalendar.html">TaskJuggler::ICalendar</a></li>
219
+
220
+ <li><a href="../TaskJuggler/ICalendar/Component.html">TaskJuggler::ICalendar::Component</a></li>
221
+
222
+ <li><a href="../TaskJuggler/ICalendar/Event.html">TaskJuggler::ICalendar::Event</a></li>
223
+
224
+ <li><a href="../TaskJuggler/ICalendar/Journal.html">TaskJuggler::ICalendar::Journal</a></li>
225
+
226
+ <li><a href="../TaskJuggler/ICalendar/Person.html">TaskJuggler::ICalendar::Person</a></li>
227
+
228
+ <li><a href="../TaskJuggler/ICalendar/Todo.html">TaskJuggler::ICalendar::Todo</a></li>
229
+
216
230
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
217
231
 
218
232
  <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
219
233
 
220
- <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
221
-
222
234
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
223
235
 
224
236
  <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
@@ -333,6 +345,8 @@
333
345
 
334
346
  <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
335
347
 
348
+ <li><a href="../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
349
+
336
350
  <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
337
351
 
338
352
  <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
@@ -391,6 +405,8 @@
391
405
 
392
406
  <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
393
407
 
408
+ <li><a href="../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
409
+
394
410
  <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
395
411
 
396
412
  <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
@@ -437,6 +453,10 @@
437
453
 
438
454
  <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
439
455
 
456
+ <li><a href="../TaskJuggler/TagFile.html">TaskJuggler::TagFile</a></li>
457
+
458
+ <li><a href="../TaskJuggler/TagFile/TagFileEntry.html">TaskJuggler::TagFile::TagFileEntry</a></li>
459
+
440
460
  <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
441
461
 
442
462
  <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
@@ -487,6 +507,10 @@
487
507
 
488
508
  <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
489
509
 
510
+ <li><a href="../TaskJuggler/TimeInterval.html">TaskJuggler::TimeInterval</a></li>
511
+
512
+ <li><a href="../TaskJuggler/TimeIntervalListAttribute.html">TaskJuggler::TimeIntervalListAttribute</a></li>
513
+
490
514
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
491
515
 
492
516
  <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
@@ -223,12 +223,24 @@
223
223
 
224
224
  <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
225
225
 
226
+ <li><a href="../TaskJuggler/ICalReport.html">TaskJuggler::ICalReport</a></li>
227
+
228
+ <li><a href="../TaskJuggler/ICalendar.html">TaskJuggler::ICalendar</a></li>
229
+
230
+ <li><a href="../TaskJuggler/ICalendar/Component.html">TaskJuggler::ICalendar::Component</a></li>
231
+
232
+ <li><a href="../TaskJuggler/ICalendar/Event.html">TaskJuggler::ICalendar::Event</a></li>
233
+
234
+ <li><a href="../TaskJuggler/ICalendar/Journal.html">TaskJuggler::ICalendar::Journal</a></li>
235
+
236
+ <li><a href="../TaskJuggler/ICalendar/Person.html">TaskJuggler::ICalendar::Person</a></li>
237
+
238
+ <li><a href="../TaskJuggler/ICalendar/Todo.html">TaskJuggler::ICalendar::Todo</a></li>
239
+
226
240
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
227
241
 
228
242
  <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
229
243
 
230
- <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
231
-
232
244
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
233
245
 
234
246
  <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
@@ -343,6 +355,8 @@
343
355
 
344
356
  <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
345
357
 
358
+ <li><a href="../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
359
+
346
360
  <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
347
361
 
348
362
  <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
@@ -401,6 +415,8 @@
401
415
 
402
416
  <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
403
417
 
418
+ <li><a href="../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
419
+
404
420
  <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
405
421
 
406
422
  <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
@@ -447,6 +463,10 @@
447
463
 
448
464
  <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
449
465
 
466
+ <li><a href="../TaskJuggler/TagFile.html">TaskJuggler::TagFile</a></li>
467
+
468
+ <li><a href="../TaskJuggler/TagFile/TagFileEntry.html">TaskJuggler::TagFile::TagFileEntry</a></li>
469
+
450
470
  <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
451
471
 
452
472
  <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
@@ -497,6 +517,10 @@
497
517
 
498
518
  <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
499
519
 
520
+ <li><a href="../TaskJuggler/TimeInterval.html">TaskJuggler::TimeInterval</a></li>
521
+
522
+ <li><a href="../TaskJuggler/TimeIntervalListAttribute.html">TaskJuggler::TimeIntervalListAttribute</a></li>
523
+
500
524
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
501
525
 
502
526
  <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
@@ -953,8 +977,8 @@ Regenerate the original query text based on the argument list.
953
977
  159: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setLoadUnit</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">args</span>)
954
978
  160: <span class="ruby-identifier">units</span> = {
955
979
  161: <span class="ruby-value str">'days'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:days</span>, <span class="ruby-value str">'hours'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:hours</span>, <span class="ruby-value str">'longauto'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:longauto</span>,
956
- 162: <span class="ruby-value str">'minutes'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:minutes</span>, <span class="ruby-value str">'months'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:months</span>, <span class="ruby-value str">'shortauto'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:shortauto</span>,
957
- 163: <span class="ruby-value str">'weeks'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:weeks</span>, <span class="ruby-value str">'years'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:years</span>
980
+ 162: <span class="ruby-value str">'minutes'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:minutes</span>, <span class="ruby-value str">'months'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:months</span>, <span class="ruby-value str">'quarters'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:quarters</span>,
981
+ 163: <span class="ruby-value str">'shortauto'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:shortauto</span>, <span class="ruby-value str">'weeks'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:weeks</span>, <span class="ruby-value str">'years'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:years</span>
958
982
  164: }
959
983
  165: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">loadUnit</span> = <span class="ruby-identifier">units</span>[<span class="ruby-identifier">args</span>[<span class="ruby-value str">'loadunit'</span>]] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>[<span class="ruby-value str">'loadunit'</span>]
960
984
  166: <span class="ruby-keyword kw">end</span></pre>