taskjuggler 3.4.0 → 3.5.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 (530) hide show
  1. data/CHANGELOG +41 -0
  2. data/data/css/tjreport.css +4 -1
  3. data/data/tjp.vim +22 -11
  4. data/examples/ToDo-List/todolist.tjp +1 -1
  5. data/lib/header.tmpl +1 -1
  6. data/lib/taskjuggler/Account.rb +1 -1
  7. data/lib/taskjuggler/AccountCredit.rb +1 -1
  8. data/lib/taskjuggler/AccountScenario.rb +1 -1
  9. data/lib/taskjuggler/AlertLevelDefinitions.rb +1 -1
  10. data/lib/taskjuggler/AlgorithmDiff.rb +1 -1
  11. data/lib/taskjuggler/Allocation.rb +1 -1
  12. data/lib/taskjuggler/AppConfig.rb +1 -1
  13. data/lib/taskjuggler/AttributeBase.rb +11 -1
  14. data/lib/taskjuggler/AttributeDefinition.rb +1 -1
  15. data/lib/taskjuggler/Attributes.rb +3 -3
  16. data/lib/taskjuggler/BatchProcessor.rb +1 -1
  17. data/lib/taskjuggler/Booking.rb +1 -1
  18. data/lib/taskjuggler/Charge.rb +1 -1
  19. data/lib/taskjuggler/ChargeSet.rb +1 -1
  20. data/lib/taskjuggler/DataCache.rb +1 -1
  21. data/lib/taskjuggler/FileList.rb +1 -1
  22. data/lib/taskjuggler/HTMLDocument.rb +2 -2
  23. data/lib/taskjuggler/HTMLElements.rb +1 -1
  24. data/lib/taskjuggler/ICalendar.rb +2 -2
  25. data/lib/taskjuggler/Interval.rb +1 -1
  26. data/lib/taskjuggler/IntervalList.rb +1 -1
  27. data/lib/taskjuggler/Journal.rb +1 -1
  28. data/lib/taskjuggler/KateSyntax.rb +1 -1
  29. data/lib/taskjuggler/KeywordArray.rb +1 -1
  30. data/lib/taskjuggler/KeywordDocumentation.rb +3 -2
  31. data/lib/taskjuggler/LeaveList.rb +1 -1
  32. data/lib/taskjuggler/Limits.rb +1 -1
  33. data/lib/taskjuggler/Log.rb +1 -1
  34. data/lib/taskjuggler/LogicalExpression.rb +1 -1
  35. data/lib/taskjuggler/LogicalFunction.rb +23 -1
  36. data/lib/taskjuggler/LogicalOperation.rb +5 -2
  37. data/lib/taskjuggler/MessageHandler.rb +9 -3
  38. data/lib/taskjuggler/PTNProxy.rb +1 -1
  39. data/lib/taskjuggler/Painter.rb +1 -1
  40. data/lib/taskjuggler/Project.rb +4 -3
  41. data/lib/taskjuggler/ProjectFileParser.rb +15 -4
  42. data/lib/taskjuggler/ProjectFileScanner.rb +1 -1
  43. data/lib/taskjuggler/PropertyList.rb +2 -2
  44. data/lib/taskjuggler/PropertySet.rb +2 -2
  45. data/lib/taskjuggler/PropertyTreeNode.rb +44 -16
  46. data/lib/taskjuggler/Query.rb +23 -10
  47. data/lib/taskjuggler/RealFormat.rb +1 -1
  48. data/lib/taskjuggler/Resource.rb +1 -1
  49. data/lib/taskjuggler/ResourceScenario.rb +6 -1
  50. data/lib/taskjuggler/RichText.rb +1 -1
  51. data/lib/taskjuggler/RichText/Document.rb +1 -1
  52. data/lib/taskjuggler/RichText/Element.rb +1 -1
  53. data/lib/taskjuggler/RichText/FunctionExample.rb +3 -3
  54. data/lib/taskjuggler/RichText/FunctionHandler.rb +1 -1
  55. data/lib/taskjuggler/RichText/Parser.rb +1 -1
  56. data/lib/taskjuggler/RichText/RTFHandlers.rb +1 -1
  57. data/lib/taskjuggler/RichText/RTFNavigator.rb +1 -1
  58. data/lib/taskjuggler/RichText/RTFQuery.rb +4 -3
  59. data/lib/taskjuggler/RichText/RTFReport.rb +1 -1
  60. data/lib/taskjuggler/RichText/RTFReportLink.rb +1 -1
  61. data/lib/taskjuggler/RichText/RTFWithQuerySupport.rb +1 -1
  62. data/lib/taskjuggler/RichText/Scanner.rb +2 -1
  63. data/lib/taskjuggler/RichText/Snip.rb +1 -1
  64. data/lib/taskjuggler/RichText/SyntaxRules.rb +1 -1
  65. data/lib/taskjuggler/RichText/TOCEntry.rb +1 -1
  66. data/lib/taskjuggler/RichText/TableOfContents.rb +1 -1
  67. data/lib/taskjuggler/RuntimeConfig.rb +1 -1
  68. data/lib/taskjuggler/Scenario.rb +1 -1
  69. data/lib/taskjuggler/ScenarioData.rb +1 -1
  70. data/lib/taskjuggler/Scoreboard.rb +10 -6
  71. data/lib/taskjuggler/SheetHandlerBase.rb +1 -1
  72. data/lib/taskjuggler/SheetReceiver.rb +1 -1
  73. data/lib/taskjuggler/SheetSender.rb +1 -1
  74. data/lib/taskjuggler/Shift.rb +1 -1
  75. data/lib/taskjuggler/ShiftAssignments.rb +1 -1
  76. data/lib/taskjuggler/ShiftScenario.rb +1 -1
  77. data/lib/taskjuggler/SimpleQueryExpander.rb +1 -1
  78. data/lib/taskjuggler/StatusSheetReceiver.rb +1 -1
  79. data/lib/taskjuggler/StatusSheetSender.rb +1 -1
  80. data/lib/taskjuggler/StdIoWrapper.rb +1 -1
  81. data/lib/taskjuggler/SyntaxReference.rb +15 -1
  82. data/lib/taskjuggler/TableColumnDefinition.rb +1 -1
  83. data/lib/taskjuggler/TableColumnSorter.rb +1 -1
  84. data/lib/taskjuggler/Task.rb +1 -1
  85. data/lib/taskjuggler/TaskDependency.rb +1 -1
  86. data/lib/taskjuggler/TaskJuggler.rb +7 -4
  87. data/lib/taskjuggler/TaskScenario.rb +95 -72
  88. data/lib/taskjuggler/TernarySearchTree.rb +1 -1
  89. data/lib/taskjuggler/TextFormatter.rb +1 -1
  90. data/lib/taskjuggler/TextParser.rb +1 -1
  91. data/lib/taskjuggler/TextParser/MacroTable.rb +1 -1
  92. data/lib/taskjuggler/TextParser/Pattern.rb +1 -1
  93. data/lib/taskjuggler/TextParser/Rule.rb +6 -1
  94. data/lib/taskjuggler/TextParser/Scanner.rb +1 -1
  95. data/lib/taskjuggler/TextParser/SourceFileInfo.rb +1 -1
  96. data/lib/taskjuggler/TextParser/StackElement.rb +1 -1
  97. data/lib/taskjuggler/TextParser/State.rb +1 -1
  98. data/lib/taskjuggler/TextParser/TokenDoc.rb +1 -1
  99. data/lib/taskjuggler/TimeSheetReceiver.rb +1 -1
  100. data/lib/taskjuggler/TimeSheetSender.rb +1 -1
  101. data/lib/taskjuggler/TimeSheetSummary.rb +1 -1
  102. data/lib/taskjuggler/TimeSheets.rb +1 -1
  103. data/lib/taskjuggler/Tj3AppBase.rb +3 -2
  104. data/lib/taskjuggler/Tj3Config.rb +3 -3
  105. data/lib/taskjuggler/Tj3SheetAppBase.rb +1 -1
  106. data/lib/taskjuggler/TjException.rb +1 -1
  107. data/lib/taskjuggler/TjTime.rb +17 -12
  108. data/lib/taskjuggler/TjpExample.rb +1 -1
  109. data/lib/taskjuggler/TjpSyntaxRules.rb +378 -303
  110. data/lib/taskjuggler/URLParameter.rb +1 -1
  111. data/lib/taskjuggler/UTF8String.rb +1 -1
  112. data/lib/taskjuggler/UserManual.rb +3 -3
  113. data/lib/taskjuggler/VimSyntax.rb +1 -1
  114. data/lib/taskjuggler/WorkingHours.rb +1 -1
  115. data/lib/taskjuggler/XMLDocument.rb +1 -1
  116. data/lib/taskjuggler/XMLElement.rb +1 -1
  117. data/lib/taskjuggler/apps/Tj3.rb +20 -6
  118. data/lib/taskjuggler/apps/Tj3Client.rb +1 -1
  119. data/lib/taskjuggler/apps/Tj3Daemon.rb +1 -1
  120. data/lib/taskjuggler/apps/Tj3Man.rb +2 -2
  121. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +1 -1
  122. data/lib/taskjuggler/apps/Tj3SsSender.rb +1 -1
  123. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +1 -1
  124. data/lib/taskjuggler/apps/Tj3TsSender.rb +1 -1
  125. data/lib/taskjuggler/apps/Tj3TsSummary.rb +1 -1
  126. data/lib/taskjuggler/apps/Tj3WebD.rb +2 -2
  127. data/lib/taskjuggler/daemon/Daemon.rb +1 -1
  128. data/lib/taskjuggler/daemon/DaemonConnector.rb +1 -1
  129. data/lib/taskjuggler/daemon/ProcessIntercom.rb +1 -1
  130. data/lib/taskjuggler/daemon/ProjectBroker.rb +1 -1
  131. data/lib/taskjuggler/daemon/ProjectServer.rb +1 -1
  132. data/lib/taskjuggler/daemon/ReportServer.rb +1 -1
  133. data/lib/taskjuggler/daemon/ReportServlet.rb +1 -1
  134. data/lib/taskjuggler/daemon/WebServer.rb +1 -1
  135. data/lib/taskjuggler/daemon/WelcomePage.rb +1 -1
  136. data/lib/taskjuggler/deep_copy.rb +1 -1
  137. data/lib/taskjuggler/reports/AccountListRE.rb +1 -1
  138. data/lib/taskjuggler/reports/CSVFile.rb +1 -1
  139. data/lib/taskjuggler/reports/ChartPlotter.rb +1 -1
  140. data/lib/taskjuggler/reports/CollisionDetector.rb +1 -1
  141. data/lib/taskjuggler/reports/ColumnTable.rb +1 -1
  142. data/lib/taskjuggler/reports/ExportRE.rb +1 -1
  143. data/lib/taskjuggler/reports/GanttChart.rb +1 -1
  144. data/lib/taskjuggler/reports/GanttContainer.rb +1 -1
  145. data/lib/taskjuggler/reports/GanttHeader.rb +1 -1
  146. data/lib/taskjuggler/reports/GanttHeaderScaleItem.rb +1 -1
  147. data/lib/taskjuggler/reports/GanttLine.rb +1 -1
  148. data/lib/taskjuggler/reports/GanttLoadStack.rb +1 -1
  149. data/lib/taskjuggler/reports/GanttMilestone.rb +1 -1
  150. data/lib/taskjuggler/reports/GanttRouter.rb +1 -1
  151. data/lib/taskjuggler/reports/GanttTaskBar.rb +1 -1
  152. data/lib/taskjuggler/reports/HTMLGraphics.rb +1 -1
  153. data/lib/taskjuggler/reports/ICalReport.rb +1 -1
  154. data/lib/taskjuggler/reports/MspXmlRE.rb +1 -1
  155. data/lib/taskjuggler/reports/Navigator.rb +1 -1
  156. data/lib/taskjuggler/reports/NikuReport.rb +1 -1
  157. data/lib/taskjuggler/reports/Report.rb +31 -19
  158. data/lib/taskjuggler/reports/ReportBase.rb +1 -1
  159. data/lib/taskjuggler/reports/ReportContext.rb +1 -1
  160. data/lib/taskjuggler/reports/ReportTable.rb +1 -1
  161. data/lib/taskjuggler/reports/ReportTableCell.rb +1 -1
  162. data/lib/taskjuggler/reports/ReportTableColumn.rb +1 -1
  163. data/lib/taskjuggler/reports/ReportTableLegend.rb +1 -1
  164. data/lib/taskjuggler/reports/ReportTableLine.rb +1 -1
  165. data/lib/taskjuggler/reports/ResourceListRE.rb +1 -1
  166. data/lib/taskjuggler/reports/StatusSheetReport.rb +1 -1
  167. data/lib/taskjuggler/reports/TableReport.rb +4 -5
  168. data/lib/taskjuggler/reports/TableReportColumn.rb +1 -1
  169. data/lib/taskjuggler/reports/TagFile.rb +1 -1
  170. data/lib/taskjuggler/reports/TaskListRE.rb +1 -1
  171. data/lib/taskjuggler/reports/TextReport.rb +1 -1
  172. data/lib/taskjuggler/reports/TimeSheetReport.rb +1 -1
  173. data/lib/taskjuggler/reports/TjpExportRE.rb +9 -2
  174. data/lib/taskjuggler/reports/TraceReport.rb +1 -1
  175. data/lib/tj3.rb +1 -1
  176. data/lib/tj3client.rb +1 -1
  177. data/lib/tj3d.rb +1 -1
  178. data/lib/tj3man.rb +1 -1
  179. data/lib/tj3ss_receiver.rb +1 -1
  180. data/lib/tj3ss_sender.rb +1 -1
  181. data/lib/tj3ts_receiver.rb +1 -1
  182. data/lib/tj3ts_sender.rb +1 -1
  183. data/lib/tj3ts_summary.rb +1 -1
  184. data/lib/tj3webd.rb +1 -1
  185. data/manual/How_To_Contribute +5 -6
  186. data/manual/Installation +3 -3
  187. data/manual/Rich_Text_Attributes +8 -3
  188. data/manual/html/Day_To_Day_Juggling.html +3 -3
  189. data/manual/html/Getting_Started.html +3 -3
  190. data/manual/html/How_To_Contribute.html +6 -7
  191. data/manual/html/Installation.html +6 -6
  192. data/manual/html/Intro.html +3 -3
  193. data/manual/html/Reporting_Bugs.html +3 -3
  194. data/manual/html/Rich_Text_Attributes.html +5 -4
  195. data/manual/html/Software.html +3 -3
  196. data/manual/html/TaskJuggler_2x_Migration.html +3 -3
  197. data/manual/html/TaskJuggler_Internals.html +3 -3
  198. data/manual/html/The_TaskJuggler_Syntax.html +3 -3
  199. data/manual/html/Tutorial.html +3 -3
  200. data/manual/html/account.html +3 -3
  201. data/manual/html/account.task.html +3 -3
  202. data/manual/html/accountprefix.html +3 -3
  203. data/manual/html/accountreport.html +5 -5
  204. data/manual/html/accountroot.html +3 -3
  205. data/manual/html/active.html +3 -3
  206. data/manual/html/adopt.task.html +3 -3
  207. data/manual/html/aggregate.html +3 -3
  208. data/manual/html/alert.html +3 -3
  209. data/manual/html/alertlevels.html +3 -3
  210. data/manual/html/allocate.html +3 -3
  211. data/manual/html/alphabet.html +11 -4
  212. data/manual/html/alternative.html +3 -3
  213. data/manual/html/author.html +3 -3
  214. data/manual/html/auxdir.html +7 -9
  215. data/manual/html/auxdir.report.html +69 -0
  216. data/manual/html/balance.html +5 -5
  217. data/manual/html/booking.resource.html +3 -3
  218. data/manual/html/booking.task.html +3 -3
  219. data/manual/html/caption.html +3 -3
  220. data/manual/html/cellcolor.column.html +4 -4
  221. data/manual/html/celltext.column.html +3 -3
  222. data/manual/html/center.html +3 -3
  223. data/manual/html/charge.html +3 -3
  224. data/manual/html/chargeset.html +3 -3
  225. data/manual/html/columnid.html +10 -6
  226. data/manual/html/columns.html +3 -3
  227. data/manual/html/complete.html +3 -3
  228. data/manual/html/copyright.html +3 -3
  229. data/manual/html/credits.html +3 -3
  230. data/manual/html/css/tjreport.css +4 -1
  231. data/manual/html/currency.html +3 -3
  232. data/manual/html/currencyformat.html +3 -3
  233. data/manual/html/dailymax.html +3 -3
  234. data/manual/html/dailymin.html +3 -3
  235. data/manual/html/dailyworkinghours.html +3 -3
  236. data/manual/html/date.extend.html +3 -3
  237. data/manual/html/date.html +4 -3
  238. data/manual/html/definitions.html +3 -3
  239. data/manual/html/depends.html +3 -3
  240. data/manual/html/details.html +3 -3
  241. data/manual/html/disabled.html +3 -3
  242. data/manual/html/duration.html +3 -3
  243. data/manual/html/efficiency.html +3 -3
  244. data/manual/html/effort.html +3 -3
  245. data/manual/html/email.html +3 -3
  246. data/manual/html/enabled.html +3 -3
  247. data/manual/html/end.column.html +3 -3
  248. data/manual/html/end.html +3 -3
  249. data/manual/html/end.limit.html +3 -3
  250. data/manual/html/end.report.html +3 -3
  251. data/manual/html/end.timesheet.html +3 -3
  252. data/manual/html/endcredit.html +3 -3
  253. data/manual/html/epilog.html +3 -3
  254. data/manual/html/export.html +3 -3
  255. data/manual/html/extend.html +58 -13
  256. data/manual/html/fail.html +4 -4
  257. data/manual/html/fdl.html +3 -3
  258. data/manual/html/flags.account.html +3 -3
  259. data/manual/html/flags.html +3 -3
  260. data/manual/html/flags.journalentry.html +3 -3
  261. data/manual/html/flags.report.html +3 -3
  262. data/manual/html/flags.resource.html +3 -3
  263. data/manual/html/flags.statussheet.html +3 -3
  264. data/manual/html/flags.task.html +3 -3
  265. data/manual/html/flags.timesheet.html +3 -3
  266. data/manual/html/fontcolor.column.html +4 -4
  267. data/manual/html/footer.html +3 -3
  268. data/manual/html/formats.export.html +3 -3
  269. data/manual/html/formats.html +3 -3
  270. data/manual/html/functions.html +4 -4
  271. data/manual/html/gapduration.html +3 -3
  272. data/manual/html/gaplength.html +3 -3
  273. data/manual/html/halign.center.html +3 -3
  274. data/manual/html/halign.column.html +4 -4
  275. data/manual/html/halign.left.html +3 -3
  276. data/manual/html/halign.right.html +3 -3
  277. data/manual/html/hasalert.html +3 -3
  278. data/manual/html/header.html +3 -3
  279. data/manual/html/headline.html +3 -3
  280. data/manual/html/height.html +3 -3
  281. data/manual/html/hideaccount.html +5 -4
  282. data/manual/html/hidejournalentry.html +3 -3
  283. data/manual/html/hidereport.html +4 -4
  284. data/manual/html/hideresource.html +5 -4
  285. data/manual/html/hidetask.html +5 -4
  286. data/manual/html/icalreport.html +3 -3
  287. data/manual/html/include.macro.html +3 -3
  288. data/manual/html/include.project.html +3 -3
  289. data/manual/html/include.properties.html +3 -3
  290. data/manual/html/index.html +2 -2
  291. data/manual/html/inherit.extend.html +4 -4
  292. data/manual/html/interval1.html +3 -3
  293. data/manual/html/interval2.html +3 -3
  294. data/manual/html/interval3.html +3 -3
  295. data/manual/html/interval4.html +3 -3
  296. data/manual/html/isactive.html +3 -3
  297. data/manual/html/ischildof.html +3 -3
  298. data/manual/html/isdependencyof.html +3 -3
  299. data/manual/html/isdutyof.html +3 -3
  300. data/manual/html/isfeatureof.html +3 -3
  301. data/manual/html/isleaf.html +3 -3
  302. data/manual/html/ismilestone.html +3 -3
  303. data/manual/html/isongoing.html +3 -3
  304. data/manual/html/isresource.html +3 -3
  305. data/manual/html/isresponsibilityof.html +3 -3
  306. data/manual/html/istask.html +5 -5
  307. data/manual/html/isvalid.html +66 -0
  308. data/manual/html/journalattributes.html +5 -5
  309. data/manual/html/journalentry.html +3 -3
  310. data/manual/html/journalmode.html +3 -3
  311. data/manual/html/leaveallowance.html +3 -3
  312. data/manual/html/leaves.html +3 -3
  313. data/manual/html/left.html +3 -3
  314. data/manual/html/length.html +5 -5
  315. data/manual/html/limits.allocate.html +3 -3
  316. data/manual/html/limits.html +3 -3
  317. data/manual/html/limits.resource.html +3 -3
  318. data/manual/html/limits.task.html +3 -3
  319. data/manual/html/listitem.column.html +3 -3
  320. data/manual/html/listtype.column.html +3 -3
  321. data/manual/html/loadunit.html +3 -3
  322. data/manual/html/logicalexpression.html +14 -4
  323. data/manual/html/logicalflagexpression.html +3 -3
  324. data/manual/html/macro.html +3 -3
  325. data/manual/html/managers.html +3 -3
  326. data/manual/html/mandatory.html +3 -3
  327. data/manual/html/maxend.html +3 -3
  328. data/manual/html/maximum.html +3 -3
  329. data/manual/html/maxstart.html +3 -3
  330. data/manual/html/milestone.html +3 -3
  331. data/manual/html/minend.html +3 -3
  332. data/manual/html/minimum.html +3 -3
  333. data/manual/html/minstart.html +3 -3
  334. data/manual/html/monthlymax.html +3 -3
  335. data/manual/html/monthlymin.html +3 -3
  336. data/manual/html/navbar.html +10 -2
  337. data/manual/html/navigator.html +3 -3
  338. data/manual/html/newtask.html +4 -4
  339. data/manual/html/nikureport.html +3 -3
  340. data/manual/html/note.task.html +3 -3
  341. data/manual/html/now.html +5 -5
  342. data/manual/html/number.extend.html +77 -0
  343. data/manual/html/numberformat.html +5 -5
  344. data/manual/html/onend.html +3 -3
  345. data/manual/html/onstart.html +3 -3
  346. data/manual/html/opennodes.html +5 -5
  347. data/manual/html/outputdir.html +67 -0
  348. data/manual/html/overtime.booking.html +5 -5
  349. data/manual/html/period.column.html +3 -3
  350. data/manual/html/period.limit.html +3 -3
  351. data/manual/html/period.report.html +3 -3
  352. data/manual/html/period.task.html +3 -3
  353. data/manual/html/persistent.html +3 -3
  354. data/manual/html/precedes.html +3 -3
  355. data/manual/html/priority.html +3 -3
  356. data/manual/html/priority.timesheet.html +3 -3
  357. data/manual/html/project.html +4 -4
  358. data/manual/html/projectid.html +3 -3
  359. data/manual/html/projectid.task.html +3 -3
  360. data/manual/html/projectids.html +3 -3
  361. data/manual/html/projection.html +3 -3
  362. data/manual/html/prolog.html +3 -3
  363. data/manual/html/properties.html +10 -4
  364. data/manual/html/purge.html +3 -3
  365. data/manual/html/rate.html +3 -3
  366. data/manual/html/rate.resource.html +3 -3
  367. data/manual/html/rawhtmlhead.html +3 -3
  368. data/manual/html/reference.extend.html +3 -3
  369. data/manual/html/remaining.html +3 -3
  370. data/manual/html/replace.html +3 -3
  371. data/manual/html/reportprefix.html +3 -3
  372. data/manual/html/resource.html +3 -3
  373. data/manual/html/resourceattributes.html +3 -3
  374. data/manual/html/resourceprefix.html +3 -3
  375. data/manual/html/resourcereport.html +5 -5
  376. data/manual/html/resourceroot.html +3 -3
  377. data/manual/html/resources.limit.html +3 -3
  378. data/manual/html/responsible.html +3 -3
  379. data/manual/html/richtext.extend.html +3 -3
  380. data/manual/html/right.html +3 -3
  381. data/manual/html/rollupaccount.html +4 -4
  382. data/manual/html/rollupresource.html +4 -4
  383. data/manual/html/rolluptask.html +4 -4
  384. data/manual/html/scale.column.html +3 -3
  385. data/manual/html/scenario.html +3 -3
  386. data/manual/html/scenario.ical.html +3 -3
  387. data/manual/html/scenarios.export.html +3 -3
  388. data/manual/html/scenarios.html +3 -3
  389. data/manual/html/scenariospecific.extend.html +4 -4
  390. data/manual/html/scheduled.html +3 -3
  391. data/manual/html/scheduling.html +3 -3
  392. data/manual/html/select.html +3 -3
  393. data/manual/html/selfcontained.html +3 -3
  394. data/manual/html/shift.allocate.html +3 -3
  395. data/manual/html/shift.html +4 -4
  396. data/manual/html/shift.resource.html +3 -3
  397. data/manual/html/shift.task.html +3 -3
  398. data/manual/html/shift.timesheet.html +3 -3
  399. data/manual/html/shifts.allocate.html +3 -3
  400. data/manual/html/shifts.resource.html +3 -3
  401. data/manual/html/shifts.task.html +3 -3
  402. data/manual/html/shorttimeformat.html +3 -3
  403. data/manual/html/sloppy.booking.html +3 -3
  404. data/manual/html/sloppy.projection.html +3 -3
  405. data/manual/html/sortaccounts.html +3 -3
  406. data/manual/html/sortjournalentries.html +3 -3
  407. data/manual/html/sortresources.html +3 -3
  408. data/manual/html/sorttasks.html +3 -3
  409. data/manual/html/start.column.html +3 -3
  410. data/manual/html/start.html +3 -3
  411. data/manual/html/start.limit.html +3 -3
  412. data/manual/html/start.report.html +3 -3
  413. data/manual/html/startcredit.html +3 -3
  414. data/manual/html/status.statussheet.html +3 -3
  415. data/manual/html/status.timesheet.html +3 -3
  416. data/manual/html/statussheet.html +3 -3
  417. data/manual/html/statussheetreport.html +3 -3
  418. data/manual/html/strict.projection.html +3 -3
  419. data/manual/html/summary.html +3 -3
  420. data/manual/html/supplement.html +3 -3
  421. data/manual/html/supplement.resource.html +3 -3
  422. data/manual/html/supplement.task.html +3 -3
  423. data/manual/html/tagfile.html +3 -3
  424. data/manual/html/task.html +3 -3
  425. data/manual/html/task.statussheet.html +3 -3
  426. data/manual/html/task.timesheet.html +3 -3
  427. data/manual/html/taskattributes.html +3 -3
  428. data/manual/html/taskprefix.html +3 -3
  429. data/manual/html/taskreport.html +5 -5
  430. data/manual/html/taskroot.export.html +3 -3
  431. data/manual/html/taskroot.html +3 -3
  432. data/manual/html/text.extend.html +3 -3
  433. data/manual/html/textreport.html +5 -5
  434. data/manual/html/timeformat.html +3 -3
  435. data/manual/html/timeformat1.html +3 -3
  436. data/manual/html/timeformat2.html +3 -3
  437. data/manual/html/timeoff.nikureport.html +3 -3
  438. data/manual/html/timesheet.html +3 -3
  439. data/manual/html/timesheetreport.html +3 -3
  440. data/manual/html/timezone.export.html +3 -3
  441. data/manual/html/timezone.html +3 -3
  442. data/manual/html/timezone.report.html +3 -3
  443. data/manual/html/timezone.shift.html +3 -3
  444. data/manual/html/timingresolution.html +3 -3
  445. data/manual/html/title.column.html +3 -3
  446. data/manual/html/title.html +3 -3
  447. data/manual/html/toc.html +276 -248
  448. data/manual/html/tooltip.column.html +4 -4
  449. data/manual/html/tracereport.html +5 -5
  450. data/manual/html/trackingscenario.html +3 -3
  451. data/manual/html/treelevel.html +3 -3
  452. data/manual/html/vacation.html +3 -3
  453. data/manual/html/vacation.resource.html +3 -3
  454. data/manual/html/vacation.shift.html +3 -3
  455. data/manual/html/warn.html +4 -4
  456. data/manual/html/weeklymax.html +3 -3
  457. data/manual/html/weeklymin.html +3 -3
  458. data/manual/html/weekstartsmonday.html +3 -3
  459. data/manual/html/weekstartssunday.html +3 -3
  460. data/manual/html/width.column.html +4 -4
  461. data/manual/html/width.html +3 -3
  462. data/manual/html/work.html +3 -3
  463. data/manual/html/workinghours.project.html +3 -3
  464. data/manual/html/workinghours.resource.html +3 -3
  465. data/manual/html/workinghours.shift.html +3 -3
  466. data/manual/html/yearlyworkingdays.html +3 -3
  467. data/spec/Color_spec.rb +2 -2
  468. data/spec/ICalendar_spec.rb +1 -1
  469. data/spec/IntervalList_spec.rb +1 -1
  470. data/spec/ProjectBroker_spec.rb +1 -1
  471. data/spec/StatusSheets_spec.rb +1 -1
  472. data/spec/TableColumnSorter_spec.rb +2 -2
  473. data/spec/TernarySearchTree_spec.rb +1 -1
  474. data/spec/TimeSheets_spec.rb +1 -1
  475. data/spec/Tj3Daemon_spec.rb +1 -1
  476. data/spec/Tj3_spec.rb +1 -1
  477. data/spec/TraceReport_spec.rb +2 -2
  478. data/spec/support/DaemonControl.rb +1 -1
  479. data/spec/support/spec_helper.rb +1 -1
  480. data/tasks/gem.rake +7 -1
  481. data/tasks/rdoc.rake +5 -1
  482. data/test/MessageChecker.rb +1 -1
  483. data/test/ReferenceGenerator.rb +1 -1
  484. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +14 -14
  485. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +1 -1
  486. data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +62 -10
  487. data/test/TestSuite/Export-Reports/refs/Shift.tjp +1 -1
  488. data/test/TestSuite/Scheduler/Correct/DateAndDep.tjp +25 -0
  489. data/test/TestSuite/Scheduler/Correct/hammock.tjp +27 -0
  490. data/test/TestSuite/Scheduler/Errors/container_milestone.tjp +13 -0
  491. data/test/TestSuite/Scheduler/Errors/{weak_end_dep.tjp → impossible_end_dep.tjp} +2 -2
  492. data/test/TestSuite/Scheduler/Errors/{weak_start_dep.tjp → impossible_start_dep.tjp} +2 -2
  493. data/test/TestSuite/Scheduler/Errors/sched_runaway.tjp +20 -0
  494. data/test/TestSuite/Scheduler/Errors/{task_pred_before_gl.tjp → task_pred_before_1.tjp} +1 -1
  495. data/test/TestSuite/Scheduler/Errors/{task_pred_before_gd.tjp → task_pred_before_2.tjp} +1 -1
  496. data/test/TestSuite/Scheduler/Errors/{task_succ_after_gl.tjp → task_succ_after_1.tjp} +1 -1
  497. data/test/TestSuite/Scheduler/Errors/{task_succ_after_gd.tjp → task_succ_after_2.tjp} +1 -1
  498. data/test/TestSuite/Syntax/Correct/CustomAttributes.tjp +53 -9
  499. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +11 -0
  500. data/test/TjpGen.rb +1 -1
  501. data/test/all.rb +1 -1
  502. data/test/test_AlgorithmDiff.rb +1 -1
  503. data/test/test_BatchProcessor.rb +1 -1
  504. data/test/test_CSV-Reports.rb +1 -1
  505. data/test/test_CSVFile.rb +1 -1
  506. data/test/test_CollisionDetector.rb +1 -1
  507. data/test/test_Export-Reports.rb +1 -1
  508. data/test/test_Journal.rb +1 -1
  509. data/test/test_Limits.rb +1 -1
  510. data/test/test_LogicalExpression.rb +1 -1
  511. data/test/test_MacroTable.rb +1 -1
  512. data/test/test_Project.rb +1 -1
  513. data/test/test_ProjectFileScanner.rb +1 -1
  514. data/test/test_PropertySet.rb +1 -1
  515. data/test/test_Query.rb +1 -1
  516. data/test/test_RealFormat.rb +1 -1
  517. data/test/test_ReportGenerator.rb +1 -1
  518. data/test/test_RichText.rb +1 -1
  519. data/test/test_Scheduler.rb +1 -1
  520. data/test/test_ShiftAssignments.rb +1 -1
  521. data/test/test_SimpleQueryExpander.rb +1 -1
  522. data/test/test_Syntax.rb +1 -1
  523. data/test/test_TextFormatter.rb +1 -1
  524. data/test/test_TjTime.rb +1 -1
  525. data/test/test_TjpExample.rb +1 -1
  526. data/test/test_URLParameter.rb +1 -1
  527. data/test/test_UTF8String.rb +1 -1
  528. data/test/test_WorkingHours.rb +1 -1
  529. data/test/test_deep_copy.rb +1 -1
  530. metadata +26 -14
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Query.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -123,7 +123,7 @@ class TaskJuggler
123
123
  reset
124
124
  begin
125
125
  # Resolve property reference from property ID.
126
- if @property.nil? && !@propertyId.nil?
126
+ if @propertyId && (@property.nil? || @propertyId[0] == '!')
127
127
  @property = resolvePropertyId(@propertyType, @propertyId)
128
128
  unless @property
129
129
  @errorMessage = "Unknown property #{@propertyId} queried"
@@ -297,15 +297,28 @@ class TaskJuggler
297
297
  unless @project
298
298
  raise "Need Project reference to process the query"
299
299
  end
300
- case pType
301
- when :Account
302
- @project.account(pId)
303
- when :Task
304
- @project.task(pId)
305
- when:Resource
306
- @project.resource(pId)
300
+ if pId[0] == '!'
301
+ # This is the case where the property ID is just a sequence of
302
+ # exclamation marks. Each one moves the scope 1 level up from the
303
+ # current level.
304
+ pId.each_utf8_char do |c|
305
+ if c == '!'
306
+ @property = @property.parent
307
+ end
308
+ break unless @property
309
+ end
310
+ @property
307
311
  else
308
- raise "Unknown property type #{pType}"
312
+ case pType
313
+ when :Account
314
+ @project.account(pId)
315
+ when :Task
316
+ @project.task(pId)
317
+ when:Resource
318
+ @project.resource(pId)
319
+ else
320
+ raise "Unknown property type #{pType}"
321
+ end
309
322
  end
310
323
  end
311
324
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = RealFormat.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Resource.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = ResourceScenario.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -199,6 +199,7 @@ class TaskJuggler
199
199
  # Track the total allocated slots for this resource.
200
200
  @effort += @efficiency
201
201
  @limits.inc(sbIdx) if @limits
202
+ task.incLimits(@scenarioIdx, sbIdx, @property)
202
203
 
203
204
  # Scoreboard iterations are fairly expensive but they are very frequent
204
205
  # operations in later processing. To limit the interations to the
@@ -742,11 +743,15 @@ class TaskJuggler
742
743
 
743
744
  # Get the first available slot of the resource.
744
745
  def getMinSlot
746
+ initScoreboard unless @minslot
747
+
745
748
  @minslot
746
749
  end
747
750
 
748
751
  # Get the last available slot of the resource.
749
752
  def getMaxSlot
753
+ initScoreboard unless @maxslot
754
+
750
755
  @maxslot
751
756
  end
752
757
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = RichText.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Document.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Element.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = FunctionExample.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -40,8 +40,8 @@ class TaskJuggler
40
40
  tag = args['tag']
41
41
 
42
42
  example = TjpExample.new
43
- fileName = AppConfig.dataDirs('test')[0] +
44
- "TestSuite/Syntax/Correct/#{file}.tjp"
43
+ fileName = File.join(AppConfig.dataDirs('test')[0], 'TestSuite',
44
+ 'Syntax', 'Correct', "#{file}.tjp")
45
45
  example.open(fileName)
46
46
  frame = XMLElement.new('div', 'class' => 'codeframe')
47
47
  frame << (pre = XMLElement.new('pre', 'class' => 'code'))
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = FunctionHandler.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Parser.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = RTFHandlers.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = RTFNavigator.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = RTFQuery.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -86,7 +86,8 @@ class TaskJuggler
86
86
  SimpleQueryExpander.new(value, @query, @sourceFileInfo).expand
87
87
  end
88
88
 
89
- if (expandedArgs['property'] || expandedArgs['scopeproperty']) &&
89
+ if ((expandedArgs['property'] && expandedArgs['property'][0] != '!') ||
90
+ expandedArgs['scopeproperty']) &&
90
91
  !(expandedArgs['family'] || @query.propertyType)
91
92
  error('missing_family',
92
93
  "If you provide a property or scope property you need to " +
@@ -99,7 +100,7 @@ class TaskJuggler
99
100
  # with the easy ones.
100
101
  if expandedArgs['property']
101
102
  query.propertyId = expandedArgs['property']
102
- query.property = nil
103
+ query.property = nil unless query.propertyId[0] == '!'
103
104
  end
104
105
  if expandedArgs['scopeproperty']
105
106
  query.scopePropertyId = expandedArgs['scopeproperty']
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = RTFReport.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = RTFReportLink.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = RTFWithQuerySupport.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Scanner.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -145,6 +145,7 @@ class TaskJuggler
145
145
  end
146
146
 
147
147
  def fontColorStart(type, match)
148
+ self.mode = :inline
148
149
  # Extract color name from <fcol:colname>
149
150
  colName = match[6..-2]
150
151
  if colName =~ /#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})/
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Snip.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = SyntaxRules.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = TOCEntry.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = TableOfContents.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = RuntimeConfig.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Scenario.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = ScenarioData.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Scoreboard.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -144,16 +144,18 @@ class TaskJuggler
144
144
  # index.
145
145
  duration = start = 0
146
146
 
147
- startIdx.upto(endIdx) do |idx|
148
- # Check whether the scoreboard slot matches any of the target values.
149
- if yield(@sb[idx])
147
+ idx = startIdx
148
+ loop do
149
+ # Check whether the scoreboard slot matches any of the target values
150
+ # and we have not yet reached the last slot.
151
+ if yield(@sb[idx]) && idx < endIdx
150
152
  # If so, save the start position if this is the first slot and start
151
153
  # counting the matching slots.
152
154
  start = idx if start == 0
153
155
  duration += 1
154
156
  else
155
- # If we don't have a match, check if we've just finished a matching
156
- # interval.
157
+ # If we don't have a match or are at the end of the interval, check
158
+ # if we've just finished a matching interval.
157
159
  if duration > 0
158
160
  if duration >= minDuration
159
161
  # Make sure that all intervals are within the originally
@@ -166,7 +168,9 @@ class TaskJuggler
166
168
  duration = start = 0
167
169
  end
168
170
  end
171
+ break if (idx += 1) > endIdx
169
172
  end
173
+
170
174
  intervals
171
175
  end
172
176
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = SheetHandlerBase.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = SheetReceiver.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = SheetSender.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Shift.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = ShiftAssignments.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = ShiftScenario.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = SimpleQueryExpander.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
7
  # by Chris Schlaeger <chris@linux.com>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify