taskjuggler 0.0.10 → 0.0.11

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 (787) hide show
  1. data/CHANGELOG +115 -0
  2. data/README.rdoc +105 -0
  3. data/examples/tutorial.tjp +21 -16
  4. data/gem_spec.rb +1 -1
  5. data/lib/{Account.rb → taskjuggler/Account.rb} +2 -3
  6. data/lib/{AccountScenario.rb → taskjuggler/AccountScenario.rb} +1 -1
  7. data/lib/taskjuggler/AlgorithmDiff.rb +311 -0
  8. data/lib/{Allocation.rb → taskjuggler/Allocation.rb} +3 -3
  9. data/lib/{AppConfig.rb → taskjuggler/AppConfig.rb} +0 -1
  10. data/lib/{AttributeBase.rb → taskjuggler/AttributeBase.rb} +1 -1
  11. data/lib/{AttributeDefinition.rb → taskjuggler/AttributeDefinition.rb} +0 -0
  12. data/lib/{Attributes.rb → taskjuggler/Attributes.rb} +19 -9
  13. data/lib/{BatchProcessor.rb → taskjuggler/BatchProcessor.rb} +0 -0
  14. data/lib/{Booking.rb → taskjuggler/Booking.rb} +0 -0
  15. data/lib/{Charge.rb → taskjuggler/Charge.rb} +1 -1
  16. data/lib/{ChargeSet.rb → taskjuggler/ChargeSet.rb} +1 -1
  17. data/lib/{DataCache.rb → taskjuggler/DataCache.rb} +0 -0
  18. data/lib/{FileList.rb → taskjuggler/FileList.rb} +0 -0
  19. data/lib/{HTMLDocument.rb → taskjuggler/HTMLDocument.rb} +1 -1
  20. data/lib/{Interval.rb → taskjuggler/Interval.rb} +1 -1
  21. data/lib/{IntervalList.rb → taskjuggler/IntervalList.rb} +1 -1
  22. data/lib/{Journal.rb → taskjuggler/Journal.rb} +2 -2
  23. data/lib/{KeywordArray.rb → taskjuggler/KeywordArray.rb} +0 -0
  24. data/lib/{KeywordDocumentation.rb → taskjuggler/KeywordDocumentation.rb} +5 -5
  25. data/lib/{Limits.rb → taskjuggler/Limits.rb} +1 -1
  26. data/lib/{Log.rb → taskjuggler/Log.rb} +0 -0
  27. data/lib/{LogFile.rb → taskjuggler/LogFile.rb} +0 -0
  28. data/lib/{LogicalExpression.rb → taskjuggler/LogicalExpression.rb} +3 -3
  29. data/lib/{LogicalFunction.rb → taskjuggler/LogicalFunction.rb} +1 -1
  30. data/lib/{LogicalOperation.rb → taskjuggler/LogicalOperation.rb} +1 -1
  31. data/lib/{MessageHandler.rb → taskjuggler/MessageHandler.rb} +3 -1
  32. data/lib/{Project.rb → taskjuggler/Project.rb} +51 -48
  33. data/lib/{ProjectFileParser.rb → taskjuggler/ProjectFileParser.rb} +25 -9
  34. data/lib/{ProjectFileScanner.rb → taskjuggler/ProjectFileScanner.rb} +5 -5
  35. data/lib/{PropertyList.rb → taskjuggler/PropertyList.rb} +0 -0
  36. data/lib/{PropertySet.rb → taskjuggler/PropertySet.rb} +3 -4
  37. data/lib/{PropertyTreeNode.rb → taskjuggler/PropertyTreeNode.rb} +157 -11
  38. data/lib/{Query.rb → taskjuggler/Query.rb} +17 -7
  39. data/lib/{RealFormat.rb → taskjuggler/RealFormat.rb} +0 -0
  40. data/lib/{Resource.rb → taskjuggler/Resource.rb} +8 -6
  41. data/lib/{ResourceScenario.rb → taskjuggler/ResourceScenario.rb} +26 -65
  42. data/lib/{RichText.rb → taskjuggler/RichText.rb} +3 -3
  43. data/lib/{RichTextDocument.rb → taskjuggler/RichText/Document.rb} +3 -3
  44. data/lib/{RichTextElement.rb → taskjuggler/RichText/Element.rb} +10 -4
  45. data/lib/{RichTextFunctionExample.rb → taskjuggler/RichText/FunctionExample.rb} +3 -3
  46. data/lib/{RichTextFunctionHandler.rb → taskjuggler/RichText/FunctionHandler.rb} +0 -0
  47. data/lib/{RichTextParser.rb → taskjuggler/RichText/Parser.rb} +6 -4
  48. data/lib/{RTFHandlers.rb → taskjuggler/RichText/RTFHandlers.rb} +4 -4
  49. data/lib/{RTFNavigator.rb → taskjuggler/RichText/RTFNavigator.rb} +3 -3
  50. data/lib/{RTFQuery.rb → taskjuggler/RichText/RTFQuery.rb} +62 -39
  51. data/lib/{RTFReport.rb → taskjuggler/RichText/RTFReport.rb} +2 -2
  52. data/lib/{RTFReportLink.rb → taskjuggler/RichText/RTFReportLink.rb} +4 -4
  53. data/lib/{RTFWithQuerySupport.rb → taskjuggler/RichText/RTFWithQuerySupport.rb} +1 -1
  54. data/lib/{RichTextScanner.rb → taskjuggler/RichText/Scanner.rb} +18 -5
  55. data/lib/{RichTextSnip.rb → taskjuggler/RichText/Snip.rb} +2 -2
  56. data/lib/{RichTextSyntaxRules.rb → taskjuggler/RichText/SyntaxRules.rb} +14 -0
  57. data/lib/{TOCEntry.rb → taskjuggler/RichText/TOCEntry.rb} +2 -2
  58. data/lib/{TableOfContents.rb → taskjuggler/RichText/TableOfContents.rb} +2 -2
  59. data/lib/{RuntimeConfig.rb → taskjuggler/RuntimeConfig.rb} +18 -18
  60. data/lib/{Scenario.rb → taskjuggler/Scenario.rb} +1 -1
  61. data/lib/{ScenarioData.rb → taskjuggler/ScenarioData.rb} +2 -3
  62. data/lib/{Scoreboard.rb → taskjuggler/Scoreboard.rb} +4 -4
  63. data/lib/{SheetHandlerBase.rb → taskjuggler/SheetHandlerBase.rb} +3 -3
  64. data/lib/{SheetReceiver.rb → taskjuggler/SheetReceiver.rb} +2 -2
  65. data/lib/{SheetSender.rb → taskjuggler/SheetSender.rb} +5 -5
  66. data/lib/{Shift.rb → taskjuggler/Shift.rb} +2 -3
  67. data/lib/{ShiftAssignments.rb → taskjuggler/ShiftAssignments.rb} +1 -1
  68. data/lib/{ShiftScenario.rb → taskjuggler/ShiftScenario.rb} +1 -1
  69. data/lib/{SimpleQueryExpander.rb → taskjuggler/SimpleQueryExpander.rb} +0 -0
  70. data/lib/{StatusSheetReceiver.rb → taskjuggler/StatusSheetReceiver.rb} +1 -1
  71. data/lib/{StatusSheetSender.rb → taskjuggler/StatusSheetSender.rb} +1 -1
  72. data/lib/{SyntaxReference.rb → taskjuggler/SyntaxReference.rb} +4 -4
  73. data/lib/{TableColumnDefinition.rb → taskjuggler/TableColumnDefinition.rb} +0 -0
  74. data/lib/{Task.rb → taskjuggler/Task.rb} +2 -2
  75. data/lib/{TaskDependency.rb → taskjuggler/TaskDependency.rb} +8 -0
  76. data/lib/{TaskJuggler.rb → taskjuggler/TaskJuggler.rb} +6 -4
  77. data/lib/{TaskScenario.rb → taskjuggler/TaskScenario.rb} +211 -150
  78. data/lib/taskjuggler/TernarySearchTree.rb +203 -0
  79. data/lib/{TextFormatter.rb → taskjuggler/TextFormatter.rb} +1 -1
  80. data/lib/{TextParser.rb → taskjuggler/TextParser.rb} +6 -6
  81. data/lib/{MacroTable.rb → taskjuggler/TextParser/MacroTable.rb} +2 -12
  82. data/lib/{TextParser → taskjuggler/TextParser}/Pattern.rb +5 -2
  83. data/lib/{TextParser → taskjuggler/TextParser}/Rule.rb +1 -1
  84. data/lib/{TextScanner.rb → taskjuggler/TextParser/Scanner.rb} +34 -32
  85. data/lib/{SourceFileInfo.rb → taskjuggler/TextParser/SourceFileInfo.rb} +1 -1
  86. data/lib/{TextParser → taskjuggler/TextParser}/StackElement.rb +0 -2
  87. data/lib/{TextParser → taskjuggler/TextParser}/State.rb +0 -0
  88. data/lib/{TextParser → taskjuggler/TextParser}/TokenDoc.rb +0 -0
  89. data/lib/{TimeSheetReceiver.rb → taskjuggler/TimeSheetReceiver.rb} +1 -1
  90. data/lib/{TimeSheetSender.rb → taskjuggler/TimeSheetSender.rb} +1 -1
  91. data/lib/{TimeSheetSummary.rb → taskjuggler/TimeSheetSummary.rb} +1 -1
  92. data/lib/{TimeSheets.rb → taskjuggler/TimeSheets.rb} +23 -16
  93. data/lib/{Tj3AppBase.rb → taskjuggler/Tj3AppBase.rb} +19 -12
  94. data/lib/{Tj3Config.rb → taskjuggler/Tj3Config.rb} +3 -3
  95. data/lib/taskjuggler/Tj3Man.rb +78 -0
  96. data/lib/{Tj3SheetAppBase.rb → taskjuggler/Tj3SheetAppBase.rb} +2 -2
  97. data/lib/{TjException.rb → taskjuggler/TjException.rb} +0 -0
  98. data/lib/{TjTime.rb → taskjuggler/TjTime.rb} +279 -234
  99. data/lib/{TjpExample.rb → taskjuggler/TjpExample.rb} +0 -0
  100. data/lib/{TjpSyntaxRules.rb → taskjuggler/TjpSyntaxRules.rb} +253 -95
  101. data/lib/{URLParameter.rb → taskjuggler/URLParameter.rb} +0 -0
  102. data/lib/{UTF8String.rb → taskjuggler/UTF8String.rb} +0 -0
  103. data/lib/{UserManual.rb → taskjuggler/UserManual.rb} +6 -6
  104. data/lib/{VimSyntax.rb → taskjuggler/VimSyntax.rb} +6 -2
  105. data/lib/{WorkingHours.rb → taskjuggler/WorkingHours.rb} +14 -22
  106. data/lib/{XMLDocument.rb → taskjuggler/XMLDocument.rb} +1 -1
  107. data/lib/{XMLElement.rb → taskjuggler/XMLElement.rb} +1 -1
  108. data/lib/taskjuggler/apps/Tj3.rb +134 -0
  109. data/lib/taskjuggler/apps/Tj3Client.rb +467 -0
  110. data/lib/taskjuggler/apps/Tj3Daemon.rb +142 -0
  111. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +56 -0
  112. data/lib/taskjuggler/apps/Tj3SsSender.rb +90 -0
  113. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +59 -0
  114. data/lib/taskjuggler/apps/Tj3TsSender.rb +77 -0
  115. data/lib/taskjuggler/apps/Tj3TsSummary.rb +86 -0
  116. data/lib/{daemon → taskjuggler/daemon}/Daemon.rb +4 -3
  117. data/lib/{daemon → taskjuggler/daemon}/ProcessIntercom.rb +2 -2
  118. data/lib/{daemon → taskjuggler/daemon}/ProjectBroker.rb +5 -5
  119. data/lib/{daemon → taskjuggler/daemon}/ProjectServer.rb +16 -16
  120. data/lib/{daemon → taskjuggler/daemon}/ReportServer.rb +6 -6
  121. data/lib/{daemon → taskjuggler/daemon}/ReportServlet.rb +2 -2
  122. data/lib/{daemon → taskjuggler/daemon}/WebServer.rb +4 -4
  123. data/lib/{daemon → taskjuggler/daemon}/WelcomePage.rb +2 -1
  124. data/lib/{deep_copy.rb → taskjuggler/deep_copy.rb} +0 -0
  125. data/lib/{reports → taskjuggler/reports}/CSVFile.rb +2 -2
  126. data/lib/{reports → taskjuggler/reports}/CollisionDetector.rb +1 -1
  127. data/lib/{reports → taskjuggler/reports}/ColumnTable.rb +1 -1
  128. data/lib/{reports → taskjuggler/reports}/GanttChart.rb +4 -4
  129. data/lib/{reports → taskjuggler/reports}/GanttContainer.rb +1 -1
  130. data/lib/{reports → taskjuggler/reports}/GanttHeader.rb +1 -1
  131. data/lib/{reports → taskjuggler/reports}/GanttHeaderScaleItem.rb +0 -0
  132. data/lib/{reports → taskjuggler/reports}/GanttLine.rb +6 -6
  133. data/lib/{reports → taskjuggler/reports}/GanttLoadStack.rb +1 -1
  134. data/lib/{reports → taskjuggler/reports}/GanttMilestone.rb +1 -1
  135. data/lib/{reports → taskjuggler/reports}/GanttRouter.rb +1 -1
  136. data/lib/{reports → taskjuggler/reports}/GanttTaskBar.rb +1 -1
  137. data/lib/{reports → taskjuggler/reports}/HTMLGraphics.rb +0 -0
  138. data/lib/{reports → taskjuggler/reports}/Navigator.rb +1 -1
  139. data/lib/{reports → taskjuggler/reports}/NikuReport.rb +3 -6
  140. data/lib/{reports → taskjuggler/reports}/Report.rb +19 -14
  141. data/lib/{reports → taskjuggler/reports}/ReportBase.rb +0 -0
  142. data/lib/{reports → taskjuggler/reports}/ReportContext.rb +0 -0
  143. data/lib/{reports → taskjuggler/reports}/ReportTable.rb +2 -2
  144. data/lib/{reports → taskjuggler/reports}/ReportTableCell.rb +0 -0
  145. data/lib/{reports → taskjuggler/reports}/ReportTableColumn.rb +0 -0
  146. data/lib/{reports → taskjuggler/reports}/ReportTableLegend.rb +0 -0
  147. data/lib/{reports → taskjuggler/reports}/ReportTableLine.rb +1 -1
  148. data/lib/{reports → taskjuggler/reports}/ResourceListRE.rb +4 -4
  149. data/lib/{reports → taskjuggler/reports}/StatusSheetReport.rb +1 -1
  150. data/lib/{reports → taskjuggler/reports}/TableReport.rb +8 -7
  151. data/lib/{reports → taskjuggler/reports}/TaskListRE.rb +4 -4
  152. data/lib/{reports → taskjuggler/reports}/TextReport.rb +1 -1
  153. data/lib/{reports → taskjuggler/reports}/TimeSheetReport.rb +1 -1
  154. data/lib/{reports → taskjuggler/reports}/TjpExportRE.rb +87 -29
  155. data/lib/tj3.rb +2 -144
  156. data/lib/tj3client.rb +2 -442
  157. data/lib/tj3d.rb +1 -133
  158. data/lib/tj3man.rb +2 -75
  159. data/lib/tj3ss_receiver.rb +2 -42
  160. data/lib/tj3ss_sender.rb +1 -76
  161. data/lib/tj3ts_receiver.rb +1 -45
  162. data/lib/tj3ts_sender.rb +1 -63
  163. data/lib/tj3ts_summary.rb +1 -72
  164. data/manual/How_To_Contribute +19 -49
  165. data/manual/Installation +65 -6
  166. data/manual/Reporting_Bugs +6 -20
  167. data/manual/TaskJuggler_Internals +8 -1
  168. data/manual/Tutorial +16 -0
  169. data/prj_cfg.rb +2 -3
  170. data/spec/IntervalList_spec.rb +2 -1
  171. data/spec/ProjectBroker_spec.rb +1 -1
  172. data/spec/TernarySearchTree_spec.rb +131 -0
  173. data/spec/TimeSheets_spec.rb +129 -0
  174. data/spec/Tj3Daemon_spec.rb +51 -0
  175. data/spec/Tj3_spec.rb +36 -0
  176. data/spec/support/DaemonControl.rb +78 -0
  177. data/spec/support/StdIoWrapper.rb +43 -0
  178. data/spec/tj3client.log +23 -0
  179. data/tasks/changelog.rake +17 -2
  180. data/tasks/csts.rake +2 -2
  181. data/tasks/manual.rake +9 -5
  182. data/tasks/missing.rake +0 -4
  183. data/tasks/rdoc.rake +2 -2
  184. data/tasks/vim.rake +9 -0
  185. data/test/TestSuite/CSV-Reports/alert.tjp +9 -0
  186. data/test/TestSuite/CSV-Reports/celltext.tjp +1 -0
  187. data/test/TestSuite/CSV-Reports/inputs.tjp +19 -0
  188. data/test/TestSuite/CSV-Reports/project-1.tji +9 -0
  189. data/test/TestSuite/CSV-Reports/refs/alert.csv +15 -0
  190. data/test/TestSuite/CSV-Reports/refs/celltext.csv +1 -0
  191. data/test/TestSuite/CSV-Reports/refs/inputs.csv +6 -0
  192. data/test/TestSuite/CSV-Reports/refs/resourcereport.csv +4 -4
  193. data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +22 -22
  194. data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +1 -0
  195. data/test/TestSuite/CSV-Reports/refs/sortBy_duration.down.csv +1 -0
  196. data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +1 -0
  197. data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +14 -13
  198. data/test/TestSuite/CSV-Reports/refs/targets.csv +5 -0
  199. data/test/TestSuite/CSV-Reports/refs/taskreport.csv +15 -14
  200. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +33 -32
  201. data/test/TestSuite/CSV-Reports/resourcereport.tjp +1 -0
  202. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +1 -0
  203. data/test/TestSuite/CSV-Reports/sortByTree.tjp +1 -0
  204. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +1 -0
  205. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +1 -0
  206. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
  207. data/test/TestSuite/CSV-Reports/targets.tjp +20 -0
  208. data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
  209. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
  210. data/test/TestSuite/CSV-Reports/weekly.tjp +5 -2
  211. data/test/TestSuite/Export-Reports/export.tji +6 -0
  212. data/test/TestSuite/Export-Reports/refs/Account.tjp +92 -0
  213. data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +38 -0
  214. data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +124 -0
  215. data/test/TestSuite/Export-Reports/refs/Alternative.tjp +50 -0
  216. data/test/TestSuite/Export-Reports/refs/AutoID.tjp +45 -0
  217. data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +18 -0
  218. data/test/TestSuite/Export-Reports/refs/Booking.tjp +48 -0
  219. data/test/TestSuite/Export-Reports/refs/Caption.tjp +65 -0
  220. data/test/TestSuite/Export-Reports/refs/Celltext.tjp +45 -0
  221. data/test/TestSuite/Export-Reports/refs/Comments.tjp +67 -0
  222. data/test/TestSuite/Export-Reports/refs/Complete.tjp +50 -0
  223. data/test/TestSuite/Export-Reports/refs/CriticalPath.tjp +41 -0
  224. data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +18 -0
  225. data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +24 -0
  226. data/test/TestSuite/Export-Reports/refs/DST.tjp +89 -0
  227. data/test/TestSuite/Export-Reports/refs/Depends1.tjp +57 -0
  228. data/test/TestSuite/Export-Reports/refs/Durations.tjp +84 -0
  229. data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +58 -0
  230. data/test/TestSuite/Export-Reports/refs/Flags.tjp +51 -0
  231. data/test/TestSuite/Export-Reports/refs/Gap.tjp +38 -0
  232. data/test/TestSuite/Export-Reports/refs/HtmlTaskReport.tjp +67 -0
  233. data/test/TestSuite/Export-Reports/refs/Include.tjp +58 -0
  234. data/test/TestSuite/Export-Reports/refs/Journal.tjp +28 -0
  235. data/test/TestSuite/Export-Reports/refs/Limits-1.tjp +283 -0
  236. data/test/TestSuite/Export-Reports/refs/LoadUnits.tjp +617 -0
  237. data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +18 -0
  238. data/test/TestSuite/Export-Reports/refs/LogicalFunction.tjp +57 -0
  239. data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +91 -0
  240. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +18 -0
  241. data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +18 -0
  242. data/test/TestSuite/Export-Reports/refs/Manager.tjp +121 -0
  243. data/test/TestSuite/Export-Reports/refs/Mandatory.tjp +59 -0
  244. data/test/TestSuite/Export-Reports/refs/Milestone.tjp +27 -0
  245. data/test/TestSuite/Export-Reports/refs/MinMax.tjp +30 -0
  246. data/test/TestSuite/Export-Reports/refs/Niku.tjp +218 -0
  247. data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +18 -0
  248. data/test/TestSuite/Export-Reports/refs/Period.tjp +25 -0
  249. data/test/TestSuite/Export-Reports/refs/Persistent.tjp +49 -0
  250. data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +46 -0
  251. data/test/TestSuite/Export-Reports/refs/Priority.tjp +141 -0
  252. data/test/TestSuite/Export-Reports/refs/Project.tjp +18 -0
  253. data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +36 -0
  254. data/test/TestSuite/Export-Reports/refs/Query.tjp +49 -0
  255. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +79 -0
  256. data/test/TestSuite/Export-Reports/refs/Reports.tjp +130 -0
  257. data/test/TestSuite/Export-Reports/refs/Resource.tjp +59 -0
  258. data/test/TestSuite/Export-Reports/refs/ResourcePrefix.tjp +67 -0
  259. data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +90 -0
  260. data/test/TestSuite/Export-Reports/refs/Responsible.tjp +50 -0
  261. data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +90 -0
  262. data/test/TestSuite/Export-Reports/refs/Scenario.tjp +25 -0
  263. data/test/TestSuite/Export-Reports/refs/Scheduling.tjp +55 -0
  264. data/test/TestSuite/Export-Reports/refs/Select.tjp +89 -0
  265. data/test/TestSuite/Export-Reports/refs/Shift.tjp +39 -0
  266. data/test/TestSuite/Export-Reports/refs/Simple.tjp +67 -0
  267. data/test/TestSuite/Export-Reports/refs/StatusSheet.tjp +95 -0
  268. data/test/TestSuite/Export-Reports/refs/String.tjp +33 -0
  269. data/test/TestSuite/Export-Reports/refs/Supplement.tjp +41 -0
  270. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +49 -0
  271. data/test/TestSuite/Export-Reports/refs/TaskRoot.tjp +75 -0
  272. data/test/TestSuite/Export-Reports/refs/TimeFrame.tjp +51 -0
  273. data/test/TestSuite/Export-Reports/refs/TimeSheet1.tjp +81 -0
  274. data/test/TestSuite/Export-Reports/refs/Timezone.tjp +18 -0
  275. data/test/TestSuite/Export-Reports/refs/Vacation.tjp +69 -0
  276. data/test/TestSuite/Export-Reports/refs/tutorial.tjp +1061 -0
  277. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +3 -1
  278. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +5 -3
  279. data/test/TestSuite/Scheduler/Correct/Precedes.tjp +19 -19
  280. data/test/TestSuite/Scheduler/Correct/PriorityInversion.tjp +32 -0
  281. data/test/TestSuite/Scheduler/Correct/Scenarios.tjp +19 -0
  282. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +11 -0
  283. data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +14 -14
  284. data/test/TestSuite/Scheduler/Correct/checks.tji +5 -0
  285. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +20 -0
  286. data/test/TestSuite/StatusSheets/boss_mail +1 -1
  287. data/test/TestSuite/StatusSheets/dev2_mail +1 -1
  288. data/test/TestSuite/StatusSheets/run +2 -3
  289. data/test/TestSuite/Syntax/Correct/Account.tjp +1 -0
  290. data/test/TestSuite/Syntax/Correct/AdoptedTasks.tjp +9 -0
  291. data/test/TestSuite/Syntax/Correct/Allocate-1.tjp +3 -1
  292. data/test/TestSuite/Syntax/Correct/Alternative.tjp +3 -1
  293. data/test/TestSuite/Syntax/Correct/AutoID.tjp +3 -1
  294. data/test/TestSuite/Syntax/Correct/Booking.tjp +1 -0
  295. data/test/TestSuite/Syntax/Correct/Caption.tjp +3 -1
  296. data/test/TestSuite/Syntax/Correct/Celltext.tjp +3 -1
  297. data/test/TestSuite/Syntax/Correct/Comments.tjp +3 -1
  298. data/test/TestSuite/Syntax/Correct/Complete.tjp +1 -0
  299. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +2 -1
  300. data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +2 -1
  301. data/test/TestSuite/Syntax/Correct/CustomAttributes.tjp +3 -2
  302. data/test/TestSuite/Syntax/Correct/DST.tjp +11 -0
  303. data/test/TestSuite/Syntax/Correct/Depends1.tjp +6 -4
  304. data/test/TestSuite/Syntax/Correct/Durations.tjp +3 -1
  305. data/test/TestSuite/Syntax/Correct/Efficiency.tjp +4 -2
  306. data/test/TestSuite/Syntax/Correct/Export.tjp +6 -4
  307. data/test/TestSuite/Syntax/Correct/Flags.tjp +3 -1
  308. data/test/TestSuite/Syntax/Correct/Freeze.tjp +2 -2
  309. data/test/TestSuite/Syntax/Correct/Gap.tjp +3 -1
  310. data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +4 -2
  311. data/test/TestSuite/Syntax/Correct/Include.tjp +3 -1
  312. data/test/TestSuite/Syntax/Correct/Journal.tjp +2 -1
  313. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +13 -9
  314. data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +1 -0
  315. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +3 -1
  316. data/test/TestSuite/Syntax/Correct/LogicalFunction.tjp +3 -1
  317. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +3 -1
  318. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +3 -1
  319. data/test/TestSuite/Syntax/Correct/Macro-3.tjp +1 -0
  320. data/test/TestSuite/Syntax/Correct/Manager.tjp +4 -2
  321. data/test/TestSuite/Syntax/Correct/Mandatory.tjp +3 -1
  322. data/test/TestSuite/Syntax/Correct/Milestone.tjp +3 -1
  323. data/test/TestSuite/Syntax/Correct/MinMax.tjp +3 -1
  324. data/test/TestSuite/Syntax/Correct/Niku.tjp +1 -0
  325. data/test/TestSuite/Syntax/Correct/Numberformat.tjp +3 -2
  326. data/test/TestSuite/Syntax/Correct/Period.tjp +1 -0
  327. data/test/TestSuite/Syntax/Correct/Persistent.tjp +3 -1
  328. data/test/TestSuite/Syntax/Correct/Precedes1.tjp +6 -4
  329. data/test/TestSuite/Syntax/Correct/Priority.tjp +4 -2
  330. data/test/TestSuite/Syntax/Correct/Project.tjp +5 -4
  331. data/test/TestSuite/Syntax/Correct/ProjectIDs.tjp +3 -2
  332. data/test/TestSuite/Syntax/Correct/Query.tjp +1 -0
  333. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +3 -1
  334. data/test/TestSuite/Syntax/Correct/Reports.tjp +7 -5
  335. data/test/TestSuite/Syntax/Correct/Resource.tjp +4 -2
  336. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +4 -2
  337. data/test/TestSuite/Syntax/Correct/ResourceRoot.tjp +3 -1
  338. data/test/TestSuite/Syntax/Correct/Responsible.tjp +3 -1
  339. data/test/TestSuite/Syntax/Correct/RollupResource.tjp +3 -1
  340. data/test/TestSuite/Syntax/Correct/Scenario.tjp +2 -1
  341. data/test/TestSuite/Syntax/Correct/Scheduling.tjp +3 -1
  342. data/test/TestSuite/Syntax/Correct/Select.tjp +3 -1
  343. data/test/TestSuite/Syntax/Correct/Shift.tjp +4 -2
  344. data/test/TestSuite/Syntax/Correct/Simple.tjp +3 -1
  345. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +4 -2
  346. data/test/TestSuite/Syntax/Correct/String.tjp +3 -1
  347. data/test/TestSuite/Syntax/Correct/Supplement.tjp +3 -1
  348. data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +3 -2
  349. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +3 -1
  350. data/test/TestSuite/Syntax/Correct/TimeFrame.tjp +3 -1
  351. data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +4 -2
  352. data/test/TestSuite/Syntax/Correct/Vacation.tjp +5 -3
  353. data/test/TestSuite/Syntax/Correct/tutorial.tjp +23 -16
  354. data/test/TestSuite/Syntax/Errors/adopt_common_root.tjp +10 -0
  355. data/test/TestSuite/Syntax/Errors/adopt_duplicate_child.tjp +10 -0
  356. data/test/TestSuite/Syntax/Errors/adopt_duplicate_parent.tjp +10 -0
  357. data/test/TestSuite/{Scheduler/Errors/milestone_duration.tjp → Syntax/Errors/multiple_durations.tjp} +1 -1
  358. data/test/TestSuite/Syntax/Errors/operand_unkn_scen.tjp +6 -4
  359. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +5 -3
  360. data/test/TestSuite/TimeSheets/dev2_mail1 +1 -1
  361. data/test/TestSuite/TimeSheets/dev2_mail2 +1 -1
  362. data/test/TestSuite/TimeSheets/run +2 -2
  363. data/test/TestSuite/TimeSheets/uu.txt +29 -0
  364. data/test/test_AlgorithmDiff.rb +139 -0
  365. data/test/test_BatchProcessor.rb +2 -1
  366. data/test/test_CSV-Reports.rb +30 -19
  367. data/test/test_CSVFile.rb +2 -1
  368. data/test/test_CollisionDetector.rb +2 -1
  369. data/test/test_Export-Reports.rb +128 -0
  370. data/test/test_Journal.rb +2 -1
  371. data/test/test_Limits.rb +4 -3
  372. data/test/test_LogicalExpression.rb +2 -1
  373. data/test/test_MacroTable.rb +8 -6
  374. data/test/test_Project.rb +2 -1
  375. data/test/test_ProjectFileScanner.rb +4 -3
  376. data/test/test_PropertySet.rb +2 -1
  377. data/test/test_Query.rb +3 -2
  378. data/test/test_RealFormat.rb +2 -1
  379. data/test/test_ReportGenerator.rb +3 -2
  380. data/test/test_RichText.rb +14 -3
  381. data/test/test_Scheduler.rb +2 -1
  382. data/test/test_ShiftAssignments.rb +3 -1
  383. data/test/test_SimpleQueryExpander.rb +3 -2
  384. data/test/test_Syntax.rb +2 -1
  385. data/test/test_TextFormatter.rb +2 -1
  386. data/test/test_TjTime.rb +15 -14
  387. data/test/test_TjpExample.rb +2 -1
  388. data/test/test_URLParameter.rb +2 -1
  389. data/test/test_UTF8String.rb +2 -1
  390. data/test/test_WorkingHours.rb +3 -2
  391. data/test/test_deep_copy.rb +2 -1
  392. metadata +250 -541
  393. data/README +0 -31
  394. data/benchmarks/allocatedSlots.csv +0 -334
  395. data/benchmarks/profile.clt +0 -42974
  396. data/benchmarks/profile.html +0 -61128
  397. data/doc/AppConfig.html +0 -1471
  398. data/doc/Arguments.html +0 -720
  399. data/doc/CHANGELOG.html +0 -1987
  400. data/doc/COPYING.html +0 -879
  401. data/doc/Object.html +0 -1056
  402. data/doc/README.html +0 -565
  403. data/doc/RuntimeConfig.html +0 -804
  404. data/doc/String.html +0 -913
  405. data/doc/TaskJuggler.html +0 -2512
  406. data/doc/TaskJuggler/Account.html +0 -733
  407. data/doc/TaskJuggler/AccountAttribute.html +0 -749
  408. data/doc/TaskJuggler/AccountScenario.html +0 -692
  409. data/doc/TaskJuggler/Allocation.html +0 -943
  410. data/doc/TaskJuggler/AllocationAttribute.html +0 -779
  411. data/doc/TaskJuggler/AttributeBase.html +0 -1308
  412. data/doc/TaskJuggler/AttributeDefinition.html +0 -795
  413. data/doc/TaskJuggler/AttributeOverwrite.html +0 -586
  414. data/doc/TaskJuggler/BatchProcessor.html +0 -1158
  415. data/doc/TaskJuggler/Booking.html +0 -839
  416. data/doc/TaskJuggler/BookingListAttribute.html +0 -749
  417. data/doc/TaskJuggler/BooleanAttribute.html +0 -749
  418. data/doc/TaskJuggler/CSVFile.html +0 -1108
  419. data/doc/TaskJuggler/CellSettingPattern.html +0 -680
  420. data/doc/TaskJuggler/CellSettingPatternList.html +0 -729
  421. data/doc/TaskJuggler/Charge.html +0 -757
  422. data/doc/TaskJuggler/ChargeListAttribute.html +0 -713
  423. data/doc/TaskJuggler/ChargeSet.html +0 -929
  424. data/doc/TaskJuggler/ChargeSetListAttribute.html +0 -758
  425. data/doc/TaskJuggler/CollisionDetector.html +0 -1069
  426. data/doc/TaskJuggler/ColumnListAttribute.html +0 -713
  427. data/doc/TaskJuggler/ColumnTable.html +0 -743
  428. data/doc/TaskJuggler/Daemon.html +0 -798
  429. data/doc/TaskJuggler/DataCache.html +0 -930
  430. data/doc/TaskJuggler/DataCacheEntry.html +0 -717
  431. data/doc/TaskJuggler/DateAttribute.html +0 -717
  432. data/doc/TaskJuggler/DefinitionListAttribute.html +0 -635
  433. data/doc/TaskJuggler/DependencyListAttribute.html +0 -753
  434. data/doc/TaskJuggler/DurationAttribute.html +0 -750
  435. data/doc/TaskJuggler/FileList.html +0 -731
  436. data/doc/TaskJuggler/FileRecord.html +0 -682
  437. data/doc/TaskJuggler/FixnumAttribute.html +0 -671
  438. data/doc/TaskJuggler/FlagListAttribute.html +0 -749
  439. data/doc/TaskJuggler/FloatAttribute.html +0 -713
  440. data/doc/TaskJuggler/FormatListAttribute.html +0 -677
  441. data/doc/TaskJuggler/GanttChart.html +0 -1467
  442. data/doc/TaskJuggler/GanttContainer.html +0 -925
  443. data/doc/TaskJuggler/GanttHeader.html +0 -928
  444. data/doc/TaskJuggler/GanttHeaderScaleItem.html +0 -742
  445. data/doc/TaskJuggler/GanttLine.html +0 -1305
  446. data/doc/TaskJuggler/GanttLoadStack.html +0 -808
  447. data/doc/TaskJuggler/GanttMilestone.html +0 -906
  448. data/doc/TaskJuggler/GanttRouter.html +0 -1118
  449. data/doc/TaskJuggler/GanttTaskBar.html +0 -927
  450. data/doc/TaskJuggler/HTMLDocument.html +0 -761
  451. data/doc/TaskJuggler/HTMLGraphics.html +0 -817
  452. data/doc/TaskJuggler/Interval.html +0 -1056
  453. data/doc/TaskJuggler/IntervalList.html +0 -777
  454. data/doc/TaskJuggler/IntervalListAttribute.html +0 -753
  455. data/doc/TaskJuggler/JobInfo.html +0 -923
  456. data/doc/TaskJuggler/Journal.html +0 -1158
  457. data/doc/TaskJuggler/JournalEntry.html +0 -821
  458. data/doc/TaskJuggler/JournalEntryList.html +0 -1071
  459. data/doc/TaskJuggler/KeywordArray.html +0 -676
  460. data/doc/TaskJuggler/KeywordDocumentation.html +0 -1838
  461. data/doc/TaskJuggler/Limits.html +0 -1016
  462. data/doc/TaskJuggler/Limits/Limit.html +0 -927
  463. data/doc/TaskJuggler/LimitsAttribute.html +0 -714
  464. data/doc/TaskJuggler/ListAttributeBase.html +0 -683
  465. data/doc/TaskJuggler/Log.html +0 -1143
  466. data/doc/TaskJuggler/LogFile.html +0 -960
  467. data/doc/TaskJuggler/LogicalAttribute.html +0 -740
  468. data/doc/TaskJuggler/LogicalExpression.html +0 -781
  469. data/doc/TaskJuggler/LogicalExpressionAttribute.html +0 -671
  470. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +0 -671
  471. data/doc/TaskJuggler/LogicalFlag.html +0 -723
  472. data/doc/TaskJuggler/LogicalFunction.html +0 -1306
  473. data/doc/TaskJuggler/LogicalOperation.html +0 -1124
  474. data/doc/TaskJuggler/Macro.html +0 -688
  475. data/doc/TaskJuggler/MacroTable.html +0 -852
  476. data/doc/TaskJuggler/ManagerResponsibilities.html +0 -716
  477. data/doc/TaskJuggler/ManagerStatusRecord.html +0 -720
  478. data/doc/TaskJuggler/Message.html +0 -817
  479. data/doc/TaskJuggler/MessageHandler.html +0 -1036
  480. data/doc/TaskJuggler/Navigator.html +0 -922
  481. data/doc/TaskJuggler/NavigatorElement.html +0 -974
  482. data/doc/TaskJuggler/NikuProject.html +0 -704
  483. data/doc/TaskJuggler/NikuReport.html +0 -1449
  484. data/doc/TaskJuggler/NikuResource.html +0 -674
  485. data/doc/TaskJuggler/NodeListAttribute.html +0 -635
  486. data/doc/TaskJuggler/PlaceHolderCell.html +0 -728
  487. data/doc/TaskJuggler/ProcessIntercom.html +0 -997
  488. data/doc/TaskJuggler/ProcessIntercomIface.html +0 -753
  489. data/doc/TaskJuggler/Project.html +0 -3333
  490. data/doc/TaskJuggler/ProjectBroker.html +0 -1656
  491. data/doc/TaskJuggler/ProjectBrokerIface.html +0 -831
  492. data/doc/TaskJuggler/ProjectFileParser.html +0 -2033
  493. data/doc/TaskJuggler/ProjectFileScanner.html +0 -1816
  494. data/doc/TaskJuggler/ProjectRecord.html +0 -958
  495. data/doc/TaskJuggler/ProjectServer.html +0 -1229
  496. data/doc/TaskJuggler/ProjectServerIface.html +0 -848
  497. data/doc/TaskJuggler/PropertyAttribute.html +0 -671
  498. data/doc/TaskJuggler/PropertyList.html +0 -1379
  499. data/doc/TaskJuggler/PropertySet.html +0 -1799
  500. data/doc/TaskJuggler/PropertyTreeNode.html +0 -2579
  501. data/doc/TaskJuggler/Query.html +0 -1663
  502. data/doc/TaskJuggler/RTFHandlers.html +0 -644
  503. data/doc/TaskJuggler/RTFNavigator.html +0 -772
  504. data/doc/TaskJuggler/RTFQuery.html +0 -1040
  505. data/doc/TaskJuggler/RTFReport.html +0 -800
  506. data/doc/TaskJuggler/RTFReportLink.html +0 -792
  507. data/doc/TaskJuggler/RTFWithQuerySupport.html +0 -682
  508. data/doc/TaskJuggler/RealFormat.html +0 -785
  509. data/doc/TaskJuggler/RealFormatAttribute.html +0 -635
  510. data/doc/TaskJuggler/ReferenceAttribute.html +0 -824
  511. data/doc/TaskJuggler/Report.html +0 -1477
  512. data/doc/TaskJuggler/ReportBase.html +0 -1246
  513. data/doc/TaskJuggler/ReportContext.html +0 -816
  514. data/doc/TaskJuggler/ReportServer.html +0 -1048
  515. data/doc/TaskJuggler/ReportServerIface.html +0 -882
  516. data/doc/TaskJuggler/ReportServerRecord.html +0 -761
  517. data/doc/TaskJuggler/ReportServlet.html +0 -1024
  518. data/doc/TaskJuggler/ReportTable.html +0 -1159
  519. data/doc/TaskJuggler/ReportTableCell.html +0 -1646
  520. data/doc/TaskJuggler/ReportTableColumn.html +0 -870
  521. data/doc/TaskJuggler/ReportTableLegend.html +0 -1040
  522. data/doc/TaskJuggler/ReportTableLine.html +0 -1047
  523. data/doc/TaskJuggler/Resource.html +0 -972
  524. data/doc/TaskJuggler/ResourceListAttribute.html +0 -810
  525. data/doc/TaskJuggler/ResourceListRE.html +0 -717
  526. data/doc/TaskJuggler/ResourceScenario.html +0 -2599
  527. data/doc/TaskJuggler/RichText.html +0 -859
  528. data/doc/TaskJuggler/RichTextAttribute.html +0 -785
  529. data/doc/TaskJuggler/RichTextDocument.html +0 -1018
  530. data/doc/TaskJuggler/RichTextElement.html +0 -1754
  531. data/doc/TaskJuggler/RichTextFunctionExample.html +0 -779
  532. data/doc/TaskJuggler/RichTextFunctionHandler.html +0 -730
  533. data/doc/TaskJuggler/RichTextImage.html +0 -692
  534. data/doc/TaskJuggler/RichTextIntermediate.html +0 -1265
  535. data/doc/TaskJuggler/RichTextParser.html +0 -847
  536. data/doc/TaskJuggler/RichTextScanner.html +0 -1469
  537. data/doc/TaskJuggler/RichTextSnip.html +0 -980
  538. data/doc/TaskJuggler/RichTextSyntaxRules.html +0 -2018
  539. data/doc/TaskJuggler/Scenario.html +0 -636
  540. data/doc/TaskJuggler/ScenarioData.html +0 -818
  541. data/doc/TaskJuggler/ScenarioListAttribute.html +0 -713
  542. data/doc/TaskJuggler/Scoreboard.html +0 -1181
  543. data/doc/TaskJuggler/SheetHandlerBase.html +0 -1275
  544. data/doc/TaskJuggler/SheetReceiver.html +0 -1368
  545. data/doc/TaskJuggler/SheetSender.html +0 -1134
  546. data/doc/TaskJuggler/Shift.html +0 -731
  547. data/doc/TaskJuggler/ShiftAssignment.html +0 -988
  548. data/doc/TaskJuggler/ShiftAssignments.html +0 -1393
  549. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +0 -714
  550. data/doc/TaskJuggler/ShiftScenario.html +0 -762
  551. data/doc/TaskJuggler/SimpleQueryExpander.html +0 -713
  552. data/doc/TaskJuggler/SortListAttribute.html +0 -671
  553. data/doc/TaskJuggler/SourceFileInfo.html +0 -740
  554. data/doc/TaskJuggler/StatusSheetReceiver.html +0 -658
  555. data/doc/TaskJuggler/StatusSheetReport.html +0 -910
  556. data/doc/TaskJuggler/StatusSheetSender.html +0 -788
  557. data/doc/TaskJuggler/StringAttribute.html +0 -713
  558. data/doc/TaskJuggler/SymbolAttribute.html +0 -671
  559. data/doc/TaskJuggler/SyntaxReference.html +0 -1220
  560. data/doc/TaskJuggler/TOCEntry.html +0 -816
  561. data/doc/TaskJuggler/TSResourceRecord.html +0 -712
  562. data/doc/TaskJuggler/TSTaskRecord.html +0 -724
  563. data/doc/TaskJuggler/TableColumnDefinition.html +0 -928
  564. data/doc/TaskJuggler/TableOfContents.html +0 -770
  565. data/doc/TaskJuggler/TableReport.html +0 -2533
  566. data/doc/TaskJuggler/Task.html +0 -865
  567. data/doc/TaskJuggler/TaskDependency.html +0 -772
  568. data/doc/TaskJuggler/TaskListAttribute.html +0 -753
  569. data/doc/TaskJuggler/TaskListRE.html +0 -716
  570. data/doc/TaskJuggler/TaskScenario.html +0 -4959
  571. data/doc/TaskJuggler/TextFormatter.html +0 -953
  572. data/doc/TaskJuggler/TextParser.html +0 -1773
  573. data/doc/TaskJuggler/TextParser/Pattern.html +0 -1717
  574. data/doc/TaskJuggler/TextParser/Rule.html +0 -1399
  575. data/doc/TaskJuggler/TextParser/StackElement.html +0 -922
  576. data/doc/TaskJuggler/TextParser/State.html +0 -995
  577. data/doc/TaskJuggler/TextParser/StateTransition.html +0 -788
  578. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +0 -691
  579. data/doc/TaskJuggler/TextParser/TokenDoc.html +0 -722
  580. data/doc/TaskJuggler/TextReport.html +0 -901
  581. data/doc/TaskJuggler/TextScanner.html +0 -1482
  582. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +0 -641
  583. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +0 -707
  584. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +0 -704
  585. data/doc/TaskJuggler/TextScanner/StreamHandle.html +0 -1036
  586. data/doc/TaskJuggler/TimeSheet.html +0 -1232
  587. data/doc/TaskJuggler/TimeSheetReceiver.html +0 -655
  588. data/doc/TaskJuggler/TimeSheetRecord.html +0 -1395
  589. data/doc/TaskJuggler/TimeSheetReport.html +0 -991
  590. data/doc/TaskJuggler/TimeSheetSender.html +0 -680
  591. data/doc/TaskJuggler/TimeSheetSummary.html +0 -935
  592. data/doc/TaskJuggler/TimeSheets.html +0 -716
  593. data/doc/TaskJuggler/Tj3AppBase.html +0 -831
  594. data/doc/TaskJuggler/Tj3Client.html +0 -1477
  595. data/doc/TaskJuggler/Tj3Daemon.html +0 -884
  596. data/doc/TaskJuggler/Tj3SheetAppBase.html +0 -738
  597. data/doc/TaskJuggler/Tj3SsReceiver.html +0 -724
  598. data/doc/TaskJuggler/Tj3SsSender.html +0 -757
  599. data/doc/TaskJuggler/Tj3TsReceiver.html +0 -724
  600. data/doc/TaskJuggler/Tj3TsSender.html +0 -744
  601. data/doc/TaskJuggler/Tj3TsSummary.html +0 -752
  602. data/doc/TaskJuggler/TjException.html +0 -672
  603. data/doc/TaskJuggler/TjTime.html +0 -2807
  604. data/doc/TaskJuggler/TjpExample.html +0 -877
  605. data/doc/TaskJuggler/TjpExportRE.html +0 -1598
  606. data/doc/TaskJuggler/TjpSyntaxRules.html +0 -13611
  607. data/doc/TaskJuggler/URLParameter.html +0 -671
  608. data/doc/TaskJuggler/UserManual.html +0 -1188
  609. data/doc/TaskJuggler/VimSyntax.html +0 -1044
  610. data/doc/TaskJuggler/WebServer.html +0 -737
  611. data/doc/TaskJuggler/WelcomePage.html +0 -769
  612. data/doc/TaskJuggler/WorkingHours.html +0 -1207
  613. data/doc/TaskJuggler/WorkingHoursAttribute.html +0 -736
  614. data/doc/TaskJuggler/XMLBlob.html +0 -687
  615. data/doc/TaskJuggler/XMLComment.html +0 -682
  616. data/doc/TaskJuggler/XMLDocument.html +0 -774
  617. data/doc/TaskJuggler/XMLElement.html +0 -942
  618. data/doc/TaskJuggler/XMLNamedText.html +0 -643
  619. data/doc/TaskJuggler/XMLText.html +0 -697
  620. data/doc/index.html +0 -4127
  621. data/doc/lib/AccountScenario_rb.html +0 -69
  622. data/doc/lib/Account_rb.html +0 -71
  623. data/doc/lib/Allocation_rb.html +0 -71
  624. data/doc/lib/AppConfig_rb.html +0 -71
  625. data/doc/lib/AttributeBase_rb.html +0 -69
  626. data/doc/lib/AttributeDefinition_rb.html +0 -67
  627. data/doc/lib/Attributes_rb.html +0 -83
  628. data/doc/lib/BatchProcessor_rb.html +0 -71
  629. data/doc/lib/Booking_rb.html +0 -67
  630. data/doc/lib/ChargeSet_rb.html +0 -69
  631. data/doc/lib/Charge_rb.html +0 -69
  632. data/doc/lib/DataCache_rb.html +0 -71
  633. data/doc/lib/FileList_rb.html +0 -67
  634. data/doc/lib/HTMLDocument_rb.html +0 -69
  635. data/doc/lib/IntervalList_rb.html +0 -69
  636. data/doc/lib/Interval_rb.html +0 -69
  637. data/doc/lib/Journal_rb.html +0 -67
  638. data/doc/lib/KeywordArray_rb.html +0 -67
  639. data/doc/lib/KeywordDocumentation_rb.html +0 -77
  640. data/doc/lib/Limits_rb.html +0 -69
  641. data/doc/lib/LogFile_rb.html +0 -69
  642. data/doc/lib/Log_rb.html +0 -71
  643. data/doc/lib/LogicalExpression_rb.html +0 -73
  644. data/doc/lib/LogicalFunction_rb.html +0 -69
  645. data/doc/lib/LogicalOperation_rb.html +0 -69
  646. data/doc/lib/MacroTable_rb.html +0 -73
  647. data/doc/lib/MessageHandler_rb.html +0 -67
  648. data/doc/lib/ProjectFileParser_rb.html +0 -77
  649. data/doc/lib/ProjectFileScanner_rb.html +0 -69
  650. data/doc/lib/Project_rb.html +0 -113
  651. data/doc/lib/PropertyList_rb.html +0 -67
  652. data/doc/lib/PropertySet_rb.html +0 -71
  653. data/doc/lib/PropertyTreeNode_rb.html +0 -67
  654. data/doc/lib/Query_rb.html +0 -69
  655. data/doc/lib/RTFHandlers_rb.html +0 -75
  656. data/doc/lib/RTFNavigator_rb.html +0 -73
  657. data/doc/lib/RTFQuery_rb.html +0 -73
  658. data/doc/lib/RTFReportLink_rb.html +0 -75
  659. data/doc/lib/RTFReport_rb.html +0 -71
  660. data/doc/lib/RTFWithQuerySupport_rb.html +0 -69
  661. data/doc/lib/RealFormat_rb.html +0 -67
  662. data/doc/lib/ResourceScenario_rb.html +0 -69
  663. data/doc/lib/Resource_rb.html +0 -71
  664. data/doc/lib/RichTextDocument_rb.html +0 -73
  665. data/doc/lib/RichTextElement_rb.html +0 -75
  666. data/doc/lib/RichTextFunctionExample_rb.html +0 -73
  667. data/doc/lib/RichTextFunctionHandler_rb.html +0 -67
  668. data/doc/lib/RichTextParser_rb.html +0 -73
  669. data/doc/lib/RichTextScanner_rb.html +0 -71
  670. data/doc/lib/RichTextSnip_rb.html +0 -71
  671. data/doc/lib/RichTextSyntaxRules_rb.html +0 -67
  672. data/doc/lib/RichText_rb.html +0 -73
  673. data/doc/lib/RuntimeConfig_rb.html +0 -69
  674. data/doc/lib/ScenarioData_rb.html +0 -71
  675. data/doc/lib/Scenario_rb.html +0 -69
  676. data/doc/lib/Scoreboard_rb.html +0 -69
  677. data/doc/lib/SheetHandlerBase_rb.html +0 -75
  678. data/doc/lib/SheetReceiver_rb.html +0 -79
  679. data/doc/lib/SheetSender_rb.html +0 -77
  680. data/doc/lib/ShiftAssignments_rb.html +0 -71
  681. data/doc/lib/ShiftScenario_rb.html +0 -69
  682. data/doc/lib/Shift_rb.html +0 -71
  683. data/doc/lib/SimpleQueryExpander_rb.html +0 -69
  684. data/doc/lib/SourceFileInfo_rb.html +0 -67
  685. data/doc/lib/StatusSheetReceiver_rb.html +0 -69
  686. data/doc/lib/StatusSheetSender_rb.html +0 -69
  687. data/doc/lib/SyntaxReference_rb.html +0 -75
  688. data/doc/lib/TOCEntry_rb.html +0 -71
  689. data/doc/lib/TableColumnDefinition_rb.html +0 -67
  690. data/doc/lib/TableOfContents_rb.html +0 -71
  691. data/doc/lib/TaskDependency_rb.html +0 -67
  692. data/doc/lib/TaskJuggler_rb.html +0 -75
  693. data/doc/lib/TaskScenario_rb.html +0 -71
  694. data/doc/lib/Task_rb.html +0 -71
  695. data/doc/lib/TextFormatter_rb.html +0 -69
  696. data/doc/lib/TextParser/Pattern_rb.html +0 -71
  697. data/doc/lib/TextParser/Rule_rb.html +0 -69
  698. data/doc/lib/TextParser/StackElement_rb.html +0 -69
  699. data/doc/lib/TextParser/State_rb.html +0 -67
  700. data/doc/lib/TextParser/TokenDoc_rb.html +0 -67
  701. data/doc/lib/TextParser_rb.html +0 -79
  702. data/doc/lib/TextScanner_rb.html +0 -83
  703. data/doc/lib/TimeSheetReceiver_rb.html +0 -69
  704. data/doc/lib/TimeSheetSender_rb.html +0 -69
  705. data/doc/lib/TimeSheetSummary_rb.html +0 -69
  706. data/doc/lib/TimeSheets_rb.html +0 -67
  707. data/doc/lib/Tj3AppBase_rb.html +0 -79
  708. data/doc/lib/Tj3Config_rb.html +0 -71
  709. data/doc/lib/Tj3SheetAppBase_rb.html +0 -69
  710. data/doc/lib/TjException_rb.html +0 -67
  711. data/doc/lib/TjTime_rb.html +0 -71
  712. data/doc/lib/TjpExample_rb.html +0 -69
  713. data/doc/lib/TjpSyntaxRules_rb.html +0 -67
  714. data/doc/lib/URLParameter_rb.html +0 -69
  715. data/doc/lib/UTF8String_rb.html +0 -67
  716. data/doc/lib/UserManual_rb.html +0 -79
  717. data/doc/lib/VimSyntax_rb.html +0 -69
  718. data/doc/lib/WorkingHours_rb.html +0 -71
  719. data/doc/lib/XMLDocument_rb.html +0 -69
  720. data/doc/lib/XMLElement_rb.html +0 -69
  721. data/doc/lib/daemon/Daemon_rb.html +0 -69
  722. data/doc/lib/daemon/ProcessIntercom_rb.html +0 -71
  723. data/doc/lib/daemon/ProjectBroker_rb.html +0 -83
  724. data/doc/lib/daemon/ProjectServer_rb.html +0 -85
  725. data/doc/lib/daemon/ReportServer_rb.html +0 -73
  726. data/doc/lib/daemon/ReportServlet_rb.html +0 -69
  727. data/doc/lib/daemon/WebServer_rb.html +0 -81
  728. data/doc/lib/daemon/WelcomePage_rb.html +0 -71
  729. data/doc/lib/deep_copy_rb.html +0 -67
  730. data/doc/lib/exchangebug_rb.html +0 -69
  731. data/doc/lib/reports/CSVFile_rb.html +0 -69
  732. data/doc/lib/reports/CollisionDetector_rb.html +0 -69
  733. data/doc/lib/reports/ColumnTable_rb.html +0 -69
  734. data/doc/lib/reports/GanttChart_rb.html +0 -75
  735. data/doc/lib/reports/GanttContainer_rb.html +0 -69
  736. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +0 -67
  737. data/doc/lib/reports/GanttHeader_rb.html +0 -69
  738. data/doc/lib/reports/GanttLine_rb.html +0 -79
  739. data/doc/lib/reports/GanttLoadStack_rb.html +0 -69
  740. data/doc/lib/reports/GanttMilestone_rb.html +0 -69
  741. data/doc/lib/reports/GanttRouter_rb.html +0 -69
  742. data/doc/lib/reports/GanttTaskBar_rb.html +0 -69
  743. data/doc/lib/reports/HTMLGraphics_rb.html +0 -67
  744. data/doc/lib/reports/Navigator_rb.html +0 -69
  745. data/doc/lib/reports/NikuReport_rb.html +0 -71
  746. data/doc/lib/reports/ReportBase_rb.html +0 -67
  747. data/doc/lib/reports/ReportContext_rb.html +0 -67
  748. data/doc/lib/reports/ReportTableCell_rb.html +0 -67
  749. data/doc/lib/reports/ReportTableColumn_rb.html +0 -67
  750. data/doc/lib/reports/ReportTableLegend_rb.html +0 -67
  751. data/doc/lib/reports/ReportTableLine_rb.html +0 -69
  752. data/doc/lib/reports/ReportTable_rb.html +0 -71
  753. data/doc/lib/reports/Report_rb.html +0 -93
  754. data/doc/lib/reports/ResourceListRE_rb.html +0 -75
  755. data/doc/lib/reports/StatusSheetReport_rb.html +0 -69
  756. data/doc/lib/reports/TableReport_rb.html +0 -77
  757. data/doc/lib/reports/TaskListRE_rb.html +0 -75
  758. data/doc/lib/reports/TextReport_rb.html +0 -69
  759. data/doc/lib/reports/TimeSheetReport_rb.html +0 -69
  760. data/doc/lib/reports/TjpExportRE_rb.html +0 -69
  761. data/doc/lib/ruby-signal-bug_rb.html +0 -69
  762. data/doc/lib/test_rb.html +0 -73
  763. data/doc/lib/tj3_rb.html +0 -75
  764. data/doc/lib/tj3client_rb.html +0 -75
  765. data/doc/lib/tj3d_rb.html +0 -75
  766. data/doc/lib/tj3man_rb.html +0 -75
  767. data/doc/lib/tj3ss_receiver_rb.html +0 -71
  768. data/doc/lib/tj3ss_sender_rb.html +0 -71
  769. data/doc/lib/tj3ts_receiver_rb.html +0 -71
  770. data/doc/lib/tj3ts_sender_rb.html +0 -71
  771. data/doc/lib/tj3ts_summary_rb.html +0 -71
  772. data/doc/rdoc.css +0 -706
  773. data/lib/test.rb +0 -19
  774. data/setup.rb +0 -1585
  775. data/test/TestSuite/CSV-Reports/genrefs +0 -6
  776. data/test/TestSuite/Scheduler/Correct/Allocate.html +0 -2922
  777. data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
  778. data/test/TestSuite/Scheduler/Correct/Container.html +0 -513
  779. data/test/TestSuite/Scheduler/Correct/Precedes.html +0 -834
  780. data/test/TestSuite/Scheduler/Correct/Shift.html +0 -429
  781. data/test/TestSuite/Scheduler/Correct/Shift2.html +0 -476
  782. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
  783. data/test/TestSuite/Scheduler/Errors/task_underspecified_2.tjp +0 -8
  784. data/test/TestSuite/Syntax/Correct/ReleasePlan.html +0 -160
  785. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
  786. data/test/TestSuite/Syntax/Correct/ResourceRoot.html +0 -108
  787. data/test/TestSuite/Syntax/Correct/niku.html +0 -67
@@ -0,0 +1,203 @@
1
+ #!/usr/bin/env ruby -w
2
+ # encoding: UTF-8
3
+ #
4
+ # = Account.rb -- The TaskJuggler III Project Management Software
5
+ #
6
+ # Copylarger (c) 2006, 2007, 2008, 2009, 2010, 2011
7
+ # by Chris Schlaeger <chris@linux.com>
8
+ #
9
+ # This program is free software; you can redistribute it and/or modify
10
+ # it under the terms of version 2 of the GNU General Public License as
11
+ # published by the Free Software Foundation.
12
+ #
13
+
14
+ require 'taskjuggler/UTF8String'
15
+
16
+ class TaskJuggler
17
+
18
+ # Classical ternary search tree implementation. It can store any list
19
+ # objects who's elements are comparable. These are usually String or Array
20
+ # objects. Common elements (by value and index) are only stored once which
21
+ # makes it fairly efficient for large lists that have similar start
22
+ # sequences. It also provides a fast find method.
23
+ class TernarySearchTree
24
+
25
+ # Create a new TernarySearchTree object. The optional _arg_ can be an
26
+ # element to store in the new tree or a list of elements to store.
27
+ def initialize(arg = nil)
28
+ clear
29
+
30
+ if arg.nil?
31
+ return
32
+ elsif arg.is_a?(Array)
33
+ sortForBalancedTree(arg).each { |elem| insert(elem) }
34
+ else
35
+ insert(arg) if arg
36
+ end
37
+ end
38
+
39
+ # Stores _str_ in the tree. _index_ is for internal use only.
40
+ def insert(str, index = 0)
41
+ if str.nil? || str.empty?
42
+ raise ArgumentError, "Cannot insert nil or empty lists"
43
+ end
44
+ if index > (maxIdx = str.length - 1) || index < 0
45
+ raise ArgumentError, "index out of range [0..#{maxIdx}]"
46
+ end
47
+
48
+ @value = str[index] unless @value
49
+
50
+ if str[index] < @value
51
+ @smaller = TernarySearchTree.new unless @smaller
52
+ @smaller.insert(str, index)
53
+ elsif str[index] > @value
54
+ @larger = TernarySearchTree.new unless @larger
55
+ @larger.insert(str, index)
56
+ else
57
+ if index == maxIdx
58
+ @last = true
59
+ else
60
+ @equal = TernarySearchTree.new unless @equal
61
+ @equal.insert(str, index + 1)
62
+ end
63
+ end
64
+ end
65
+
66
+ alias << insert
67
+
68
+ # Insert the elements of _list_ into the tree.
69
+ def insertList(list)
70
+ list.each { |val| insert(val) }
71
+ end
72
+
73
+ # if _str_ is stored in the tree it returns _str_. If _partialMatch_ is
74
+ # true, it returns all items that start with _str_. _index_ is for
75
+ # internal use only. If nothing is found it returns either nil or an empty
76
+ # list.
77
+ def find(str, partialMatch = false, index = 0)
78
+ return nil if str.nil? || index > (maxIdx = str.length - 1)
79
+
80
+ if str[index] < @value
81
+ return @smaller.find(str, partialMatch, index) if @smaller
82
+ elsif str[index] > @value
83
+ return @larger.find(str, partialMatch, index) if @larger
84
+ else
85
+ if index == maxIdx
86
+ # We've reached the end of the search pattern.
87
+ if partialMatch
88
+ return collect { |v| str[0..-2] + v }
89
+ else
90
+ return str if @last
91
+ end
92
+ end
93
+
94
+ return @equal.find(str, partialMatch, index + 1) if @equal
95
+ end
96
+ nil
97
+ end
98
+
99
+ alias [] find
100
+
101
+ # Returns the number of elements in the tree.
102
+ def length
103
+ result = 0
104
+
105
+ result += @smaller.length if @smaller
106
+ result += 1 if @last
107
+ result += @equal.length if @equal
108
+ result += @larger.length if @larger
109
+
110
+ result
111
+ end
112
+
113
+ # Return the maximum depth of the tree.
114
+ def maxDepth(depth = 0)
115
+ depth += 1
116
+ depths = []
117
+ depths << @smaller.maxDepth(depth) if @smaller
118
+ depths << @equal.maxDepth(depth) if @equal
119
+ depths << @larger.maxDepth(depth) if @larger
120
+ depths << depth if @last
121
+
122
+ depths.max
123
+ end
124
+
125
+ # Invokes _block_ for each element and returns the results as an Array.
126
+ def collect(str = nil, &block)
127
+ result = []
128
+
129
+ result += @smaller.collect(str, &block) if @smaller
130
+ newStr = str.nil? ? @value : str + @value
131
+ result << yield(newStr) if @last
132
+ result += @equal.collect(newStr, &block) if @equal
133
+ result += @larger.collect(str, &block) if @larger
134
+
135
+ result
136
+ end
137
+
138
+ # Return an Array with all the elements stored in the tree.
139
+ def to_a
140
+ collect{ |x| x}
141
+ end
142
+
143
+ # Balance the tree for more effective data retrieval.
144
+ def balance!
145
+ list = sortForBalancedTree(to_a)
146
+ clear
147
+ list.each { |x| insert(x) }
148
+ end
149
+
150
+ # Return a balanced version of the tree.
151
+ def balanced
152
+ TernarySearchTree.new(to_a)
153
+ end
154
+
155
+ def inspect(prefix = ' ', indent = 0)
156
+ puts "#{' ' * indent}#{prefix} #{@value} #{@last ? '!' : ''}"
157
+ @smaller.inspect('<', indent + 2) if @smaller
158
+ @equal.inspect('=', indent + 2) if @equal
159
+ @larger.inspect('>', indent + 2) if @larger
160
+ end
161
+
162
+ private
163
+
164
+ # Reset the node to an empty tree.
165
+ def clear
166
+ @smaller = @equal = @larger = @value = nil
167
+ @last = false
168
+ end
169
+
170
+ # Split the list into the first element and the remaining ones.
171
+ def split(str)
172
+ # The list may not be nil or empty. This would be a bug.
173
+ raise ArgumentError if str.nil? || str.empty?
174
+
175
+ # The second element of the result may be nil.
176
+ [ str[0], str[1..-1] ]
177
+ end
178
+
179
+ # Reorder the list elements so that we get a fully balanced tree when
180
+ # inserting the elements from front to back.
181
+ def sortForBalancedTree(list)
182
+ lists = [ list.sort ]
183
+ result = []
184
+ while !lists.empty?
185
+ newLists = []
186
+ lists.each do |l|
187
+ # Split the list in half and add the center element to the result
188
+ # list.
189
+ pivot = l.length / 2
190
+ result << l[pivot]
191
+ # Add the two remaining sub lists to the newLists Array.
192
+ newLists << l[0..pivot - 1] if pivot > 0
193
+ newLists << l[pivot + 1..-1] if pivot < l.length - 1
194
+ end
195
+ lists = newLists
196
+ end
197
+ result
198
+ end
199
+
200
+ end
201
+
202
+ end
203
+
@@ -11,7 +11,7 @@
11
11
  # published by the Free Software Foundation.
12
12
  #
13
13
 
14
- require 'UTF8String'
14
+ require 'taskjuggler/UTF8String'
15
15
 
16
16
  class TaskJuggler
17
17
 
@@ -11,12 +11,12 @@
11
11
  # published by the Free Software Foundation.
12
12
  #
13
13
 
14
- require 'TextParser/Pattern'
15
- require 'TextParser/Rule'
16
- require 'TextParser/StackElement'
17
- require 'MessageHandler'
18
- require 'TjException'
19
- require 'Log'
14
+ require 'taskjuggler/TextParser/Pattern'
15
+ require 'taskjuggler/TextParser/Rule'
16
+ require 'taskjuggler/TextParser/StackElement'
17
+ require 'taskjuggler/MessageHandler'
18
+ require 'taskjuggler/TjException'
19
+ require 'taskjuggler/Log'
20
20
 
21
21
  class TaskJuggler
22
22
 
@@ -11,11 +11,7 @@
11
11
  # published by the Free Software Foundation.
12
12
  #
13
13
 
14
- require 'SourceFileInfo'
15
- require 'MessageHandler'
16
- require 'TjException'
17
-
18
- class TaskJuggler
14
+ class TaskJuggler::TextParser
19
15
 
20
16
  class Macro
21
17
 
@@ -35,8 +31,7 @@ class TaskJuggler
35
31
  # during the macro call.
36
32
  class MacroTable
37
33
 
38
- def initialize(messageHandler)
39
- @messageHandler = messageHandler
34
+ def initialize
40
35
  @macros = {}
41
36
  end
42
37
 
@@ -73,11 +68,6 @@ class TaskJuggler
73
68
  [ @macros[name], resolved ]
74
69
  end
75
70
 
76
- # This function sends an error message to the message handler.
77
- def error(id, text, sourceFileInfo)
78
- @messageHandler.error(id, text, sourceFileInfo)
79
- end
80
-
81
71
  end
82
72
 
83
73
  end
@@ -11,8 +11,8 @@
11
11
  # published by the Free Software Foundation.
12
12
  #
13
13
 
14
- require 'TextParser/TokenDoc'
15
- require 'TextParser/State'
14
+ require 'taskjuggler/TextParser/TokenDoc'
15
+ require 'taskjuggler/TextParser/State'
16
16
 
17
17
  class TaskJuggler::TextParser
18
18
 
@@ -43,6 +43,9 @@ class TaskJuggler::TextParser
43
43
  attr_reader :keyword, :doc, :seeAlso, :exampleFile, :exampleTag,
44
44
  :tokens, :function
45
45
 
46
+ # Create a new Pattern object. _tokens_ must be an Array of String objects
47
+ # that describe the Pattern. _function_ can be a reference to a method
48
+ # that should be called when the Pattern was recognized by the parser.
46
49
  def initialize(tokens, function = nil)
47
50
  # A unique name for the pattern that is used in the documentation.
48
51
  @keyword = nil
@@ -11,7 +11,7 @@
11
11
  # published by the Free Software Foundation.
12
12
  #
13
13
 
14
- require 'TextParser/State'
14
+ require 'taskjuggler/TextParser/State'
15
15
 
16
16
  class TaskJuggler::TextParser
17
17
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby -w
2
2
  # encoding: UTF-8
3
3
  #
4
- # = TextScanner.rb -- The TaskJuggler III Project Management Software
4
+ # = Scanner.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
6
  # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011
7
7
  # by Chris Schlaeger <chris@linux.com>
@@ -14,22 +14,19 @@
14
14
  require 'stringio'
15
15
  require 'strscan'
16
16
 
17
- require 'UTF8String'
18
- require 'TjTime'
19
- require 'TjException'
20
- require 'SourceFileInfo'
21
- require 'MacroTable'
22
- require 'Log'
17
+ require 'taskjuggler/UTF8String'
18
+ require 'taskjuggler/TextParser/SourceFileInfo'
19
+ require 'taskjuggler/TextParser/MacroTable'
23
20
 
24
- class TaskJuggler
21
+ class TaskJuggler::TextParser
25
22
 
26
- # The TextScanner class is an abstract text scanner with support for nested
23
+ # The Scanner class is an abstract text scanner with support for nested
27
24
  # include files and text macros. The tokenizer will operate on rules that
28
25
  # must be provided by a derived class. The scanner is modal. Each mode
29
26
  # operates only with the subset of token patterns that are assigned to the
30
27
  # current mode. The current line is tracked accurately and can be used for
31
28
  # error reporting. The scanner can operate on Strings or Files.
32
- class TextScanner
29
+ class Scanner
33
30
 
34
31
  class MacroStackEntry
35
32
 
@@ -46,7 +43,7 @@ class TaskJuggler
46
43
 
47
44
  # This class is used to handle the low-level input operations. It knows
48
45
  # whether it deals with a text buffer or a file and abstracts this to the
49
- # TextScanner. For each nested file the scanner puts an StreamHandle on the
46
+ # Scanner. For each nested file the scanner puts an StreamHandle on the
50
47
  # stack while the file is scanned. With this stack the scanner can resume
51
48
  # the processing of the enclosing file once the included files has been
52
49
  # completely processed.
@@ -54,7 +51,8 @@ class TaskJuggler
54
51
 
55
52
  attr_reader :fileName, :macroStack
56
53
 
57
- def initialize
54
+ def initialize(log)
55
+ @log = log
58
56
  @fileName = nil
59
57
  @stream = nil
60
58
  @line = nil
@@ -89,7 +87,7 @@ class TaskJuggler
89
87
  if @scanner.nil? || @scanner.eos?
90
88
  if (@line = @stream.gets)
91
89
  # Update activity meter about every 1024 lines.
92
- Log.activity if (@stream.lineno & 0x3FF) == 0
90
+ @log.activity if (@stream.lineno & 0x3FF) == 0
93
91
  # Check for DOS or Mac end of line signatures.
94
92
  if @line[-1] == ?\r
95
93
  # Mac: Convert CR into LF
@@ -157,12 +155,12 @@ class TaskJuggler
157
155
 
158
156
  attr_reader :fileName
159
157
 
160
- def initialize(fileName)
161
- super()
158
+ def initialize(fileName, log)
159
+ super(log)
162
160
  @fileName = fileName.dup.untaint
163
161
  @stream = fileName == '.' ? $stdin : File.new(@fileName, 'r')
164
- Log << "Parsing file #{@fileName} ..."
165
- Log.startProgressMeter("Reading file #{fileName}")
162
+ @log << "Parsing file #{@fileName} ..."
163
+ @log.startProgressMeter("Reading file #{fileName}")
166
164
  end
167
165
 
168
166
  def close
@@ -175,23 +173,25 @@ class TaskJuggler
175
173
  # Specialized version of StreamHandle for operations on Strings.
176
174
  class BufferStreamHandle < StreamHandle
177
175
 
178
- def initialize(buffer)
179
- super()
176
+ def initialize(buffer, log)
177
+ super(log)
180
178
  @stream = StringIO.new(buffer)
181
- Log << "Parsing buffer #{buffer[0, 20]} ..."
179
+ @log << "Parsing buffer #{buffer[0, 20]} ..."
182
180
  end
183
181
 
184
182
  end
185
183
 
186
- # Create a new instance of TextScanner. _masterFile_ must be a String that
184
+ # Create a new instance of Scanner. _masterFile_ must be a String that
187
185
  # either contains the name of the file to start with or the text itself.
188
186
  # _messageHandler_ is a MessageHandler that is used for error messages.
189
- def initialize(masterFile, messageHandler, tokenPatterns, defaultMode)
187
+ # _log_ is a Log to report progress and status.
188
+ def initialize(masterFile, messageHandler, log, tokenPatterns, defaultMode)
190
189
  @masterFile = masterFile
191
190
  @messageHandler = messageHandler
191
+ @log = log
192
192
  # This table contains all macros that may be expanded when found in the
193
193
  # text.
194
- @macroTable = MacroTable.new(messageHandler)
194
+ @macroTable = MacroTable.new
195
195
  # The currently processed IO object.
196
196
  @cf = nil
197
197
  # This Array stores the currently processed nested files. It's an Array
@@ -263,10 +263,12 @@ class TaskJuggler
263
263
  def open(fileNameIsBuffer = false)
264
264
  @fileNameIsBuffer = fileNameIsBuffer
265
265
  if fileNameIsBuffer
266
- @fileStack = [ [ @cf = BufferStreamHandle.new(@masterFile), nil, nil ] ]
266
+ @fileStack = [ [ @cf = BufferStreamHandle.new(@masterFile, @log),
267
+ nil, nil ] ]
267
268
  else
268
269
  begin
269
- @fileStack = [ [ @cf = FileStreamHandle.new(@masterFile), nil, nil ] ]
270
+ @fileStack = [ [ @cf = FileStreamHandle.new(@masterFile, @log),
271
+ nil, nil ] ]
270
272
  rescue StandardError
271
273
  error('open_file', "Cannot open file #{@masterFile}")
272
274
  end
@@ -278,8 +280,8 @@ class TaskJuggler
278
280
  # Finish processing and reset all data structures.
279
281
  def close
280
282
  unless @fileNameIsBuffer
281
- Log.startProgressMeter("Reading file #{@masterFile}")
282
- Log.stopProgressMeter
283
+ @log.startProgressMeter("Reading file #{@masterFile}")
284
+ @log.stopProgressMeter
283
285
  end
284
286
  @fileStack = []
285
287
  @cf = @tokenBuffer = nil
@@ -314,9 +316,9 @@ class TaskJuggler
314
316
 
315
317
  # Open the new file and push the handle on the @fileStack.
316
318
  begin
317
- @fileStack << [ (@cf = FileStreamHandle.new(includeFileName)),
319
+ @fileStack << [ (@cf = FileStreamHandle.new(includeFileName, @log)),
318
320
  nil, block ]
319
- Log << "Parsing file #{includeFileName}"
321
+ @log << "Parsing file #{includeFileName}"
320
322
  rescue StandardError
321
323
  error('bad_include', "Cannot open include file #{includeFileName}", sfi)
322
324
  end
@@ -365,7 +367,7 @@ class TaskJuggler
365
367
  # completion. Close it and remove the corresponding entry from the
366
368
  # @fileStack.
367
369
  @finishLastFile = false
368
- #Log << "Completed file #{@cf.fileName}"
370
+ #@log << "Completed file #{@cf.fileName}"
369
371
 
370
372
  # If we have a block to be executed on EOF, we call it now.
371
373
  onEof = @fileStack.last[2]
@@ -382,7 +384,7 @@ class TaskJuggler
382
384
  else
383
385
  # Continue parsing the file that included the current file.
384
386
  @cf, tokenBuffer = @fileStack.last
385
- Log << "Parsing file #{@cf.fileName} ..."
387
+ @log << "Parsing file #{@cf.fileName} ..."
386
388
  # If we have a left over token from previously processing this file,
387
389
  # return it now.
388
390
  if tokenBuffer
@@ -435,7 +437,7 @@ class TaskJuggler
435
437
  # Return a token to retrieve it with the next nextToken() call again. Only 1
436
438
  # token can be returned before the next nextToken() call.
437
439
  def returnToken(token)
438
- #Log << "-> Returning Token: [#{token[0]}][#{token[1]}]"
440
+ #@log << "-> Returning Token: [#{token[0]}][#{token[1]}]"
439
441
  unless @tokenBuffer.nil?
440
442
  $stderr.puts @tokenBuffer
441
443
  raise "Fatal Error: Cannot return more than 1 token in a row"