taskjuggler 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. data/CHANGELOG +37 -5
  2. data/README.rdoc +4 -2
  3. data/benchmarks/UTF-8-Strings.rb +58 -0
  4. data/benchmarks/css/tjmanual.css +0 -1
  5. data/benchmarks/htmltaskreport-1.html +47702 -0
  6. data/benchmarks/htmltaskreport-2.html +23345 -0
  7. data/benchmarks/htmltaskreport-3.html +23265 -0
  8. data/benchmarks/htmltaskreport-4.html +22135 -0
  9. data/benchmarks/profile.clt +36082 -0
  10. data/benchmarks/tj3.profile +0 -0
  11. data/benchmarks/tj3.profile.grind +6185 -0
  12. data/benchmarks/tj3.profile.symbols +432 -0
  13. data/benchmarks/tj3.profile.txt +448 -0
  14. data/data/tjp.vim +689 -0
  15. data/doc/AppConfig.html +26 -2
  16. data/doc/CHANGELOG.html +60 -8
  17. data/doc/COPYING.html +26 -2
  18. data/doc/Diff/Hunk.html +26 -2
  19. data/doc/Diff.html +26 -2
  20. data/doc/Diffable.html +26 -2
  21. data/doc/DiffableString.html +26 -2
  22. data/doc/Object.html +26 -104
  23. data/doc/README_rdoc.html +39 -7
  24. data/doc/RuntimeConfig.html +26 -2
  25. data/doc/String.html +26 -2
  26. data/doc/TaskJuggler/Account.html +27 -3
  27. data/doc/TaskJuggler/AccountAttribute.html +30 -6
  28. data/doc/TaskJuggler/AccountScenario.html +28 -4
  29. data/doc/TaskJuggler/Allocation.html +33 -9
  30. data/doc/TaskJuggler/AllocationAttribute.html +31 -7
  31. data/doc/TaskJuggler/AttributeBase.html +162 -111
  32. data/doc/TaskJuggler/AttributeDefinition.html +26 -2
  33. data/doc/TaskJuggler/AttributeOverwrite.html +26 -2
  34. data/doc/TaskJuggler/BatchProcessor.html +26 -2
  35. data/doc/TaskJuggler/Booking.html +29 -5
  36. data/doc/TaskJuggler/BookingListAttribute.html +29 -5
  37. data/doc/TaskJuggler/BooleanAttribute.html +30 -6
  38. data/doc/TaskJuggler/CSVFile.html +26 -2
  39. data/doc/TaskJuggler/CellSettingPattern.html +26 -2
  40. data/doc/TaskJuggler/CellSettingPatternList.html +26 -2
  41. data/doc/TaskJuggler/Charge.html +30 -6
  42. data/doc/TaskJuggler/ChargeListAttribute.html +29 -5
  43. data/doc/TaskJuggler/ChargeSet.html +26 -2
  44. data/doc/TaskJuggler/ChargeSetListAttribute.html +30 -6
  45. data/doc/TaskJuggler/CollisionDetector.html +26 -2
  46. data/doc/TaskJuggler/ColumnListAttribute.html +28 -4
  47. data/doc/TaskJuggler/ColumnTable.html +26 -2
  48. data/doc/TaskJuggler/Daemon.html +26 -2
  49. data/doc/TaskJuggler/DataCache.html +26 -2
  50. data/doc/TaskJuggler/DataCacheEntry.html +26 -2
  51. data/doc/TaskJuggler/DateAttribute.html +30 -6
  52. data/doc/TaskJuggler/DefinitionListAttribute.html +28 -4
  53. data/doc/TaskJuggler/DependencyListAttribute.html +30 -6
  54. data/doc/TaskJuggler/DurationAttribute.html +31 -7
  55. data/doc/TaskJuggler/FileList.html +26 -2
  56. data/doc/TaskJuggler/FileRecord.html +26 -2
  57. data/doc/TaskJuggler/FixnumAttribute.html +28 -4
  58. data/doc/TaskJuggler/FlagListAttribute.html +30 -6
  59. data/doc/TaskJuggler/FloatAttribute.html +29 -5
  60. data/doc/TaskJuggler/FormatListAttribute.html +29 -5
  61. data/doc/TaskJuggler/GanttChart.html +26 -2
  62. data/doc/TaskJuggler/GanttContainer.html +26 -2
  63. data/doc/TaskJuggler/GanttHeader.html +26 -2
  64. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -2
  65. data/doc/TaskJuggler/GanttLine.html +27 -3
  66. data/doc/TaskJuggler/GanttLoadStack.html +26 -2
  67. data/doc/TaskJuggler/GanttMilestone.html +26 -2
  68. data/doc/TaskJuggler/GanttRouter.html +26 -2
  69. data/doc/TaskJuggler/GanttTaskBar.html +26 -2
  70. data/doc/TaskJuggler/HTMLDocument.html +26 -2
  71. data/doc/TaskJuggler/HTMLElements.html +623 -0
  72. data/doc/TaskJuggler/HTMLGraphics.html +26 -2
  73. data/doc/TaskJuggler/ICalReport.html +864 -0
  74. data/doc/TaskJuggler/ICalendar/Component.html +969 -0
  75. data/doc/TaskJuggler/ICalendar/Event.html +742 -0
  76. data/doc/TaskJuggler/ICalendar/Journal.html +722 -0
  77. data/doc/TaskJuggler/ICalendar/Person.html +633 -0
  78. data/doc/TaskJuggler/ICalendar/Todo.html +789 -0
  79. data/doc/TaskJuggler/ICalendar.html +1035 -0
  80. data/doc/TaskJuggler/Interval.html +99 -172
  81. data/doc/TaskJuggler/IntervalList.html +31 -7
  82. data/doc/TaskJuggler/JobInfo.html +26 -2
  83. data/doc/TaskJuggler/Journal.html +26 -2
  84. data/doc/TaskJuggler/JournalEntry.html +26 -2
  85. data/doc/TaskJuggler/JournalEntryList.html +26 -2
  86. data/doc/TaskJuggler/KeywordArray.html +26 -2
  87. data/doc/TaskJuggler/KeywordDocumentation.html +26 -2
  88. data/doc/TaskJuggler/Limits/Limit.html +124 -49
  89. data/doc/TaskJuggler/Limits.html +139 -156
  90. data/doc/TaskJuggler/LimitsAttribute.html +39 -14
  91. data/doc/TaskJuggler/ListAttributeBase.html +35 -11
  92. data/doc/TaskJuggler/Log.html +26 -2
  93. data/doc/TaskJuggler/LogFile.html +26 -2
  94. data/doc/TaskJuggler/LogicalAttribute.html +26 -2
  95. data/doc/TaskJuggler/LogicalExpression.html +26 -2
  96. data/doc/TaskJuggler/LogicalExpressionAttribute.html +35 -11
  97. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +35 -11
  98. data/doc/TaskJuggler/LogicalFlag.html +26 -2
  99. data/doc/TaskJuggler/LogicalFunction.html +28 -4
  100. data/doc/TaskJuggler/LogicalOperation.html +26 -2
  101. data/doc/TaskJuggler/ManagerResponsibilities.html +26 -2
  102. data/doc/TaskJuggler/ManagerStatusRecord.html +26 -2
  103. data/doc/TaskJuggler/Message.html +26 -2
  104. data/doc/TaskJuggler/MessageHandler.html +108 -62
  105. data/doc/TaskJuggler/Navigator.html +26 -2
  106. data/doc/TaskJuggler/NavigatorElement.html +26 -2
  107. data/doc/TaskJuggler/NikuProject.html +26 -2
  108. data/doc/TaskJuggler/NikuReport.html +27 -3
  109. data/doc/TaskJuggler/NikuResource.html +26 -2
  110. data/doc/TaskJuggler/NodeListAttribute.html +31 -7
  111. data/doc/TaskJuggler/PlaceHolderCell.html +26 -2
  112. data/doc/TaskJuggler/ProcessIntercom.html +26 -2
  113. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -2
  114. data/doc/TaskJuggler/Project.html +1236 -973
  115. data/doc/TaskJuggler/ProjectBroker.html +26 -2
  116. data/doc/TaskJuggler/ProjectBrokerIface.html +26 -2
  117. data/doc/TaskJuggler/ProjectFileParser.html +29 -4
  118. data/doc/TaskJuggler/ProjectFileScanner.html +56 -31
  119. data/doc/TaskJuggler/ProjectRecord.html +26 -2
  120. data/doc/TaskJuggler/ProjectServer.html +26 -2
  121. data/doc/TaskJuggler/ProjectServerIface.html +26 -2
  122. data/doc/TaskJuggler/PropertyAttribute.html +35 -11
  123. data/doc/TaskJuggler/PropertyList.html +26 -2
  124. data/doc/TaskJuggler/PropertySet.html +126 -106
  125. data/doc/TaskJuggler/PropertyTreeNode.html +595 -551
  126. data/doc/TaskJuggler/Query.html +127 -100
  127. data/doc/TaskJuggler/RTFHandlers.html +26 -2
  128. data/doc/TaskJuggler/RTFNavigator.html +26 -2
  129. data/doc/TaskJuggler/RTFQuery.html +28 -4
  130. data/doc/TaskJuggler/RTFReport.html +26 -2
  131. data/doc/TaskJuggler/RTFReportLink.html +26 -2
  132. data/doc/TaskJuggler/RTFWithQuerySupport.html +26 -2
  133. data/doc/TaskJuggler/RealFormat.html +26 -2
  134. data/doc/TaskJuggler/RealFormatAttribute.html +31 -7
  135. data/doc/TaskJuggler/ReferenceAttribute.html +58 -34
  136. data/doc/TaskJuggler/Report.html +427 -284
  137. data/doc/TaskJuggler/ReportBase.html +28 -102
  138. data/doc/TaskJuggler/ReportContext.html +26 -2
  139. data/doc/TaskJuggler/ReportScenario.html +633 -0
  140. data/doc/TaskJuggler/ReportServer.html +26 -2
  141. data/doc/TaskJuggler/ReportServerIface.html +26 -2
  142. data/doc/TaskJuggler/ReportServerRecord.html +26 -2
  143. data/doc/TaskJuggler/ReportServlet.html +26 -2
  144. data/doc/TaskJuggler/ReportTable.html +26 -2
  145. data/doc/TaskJuggler/ReportTableCell.html +26 -2
  146. data/doc/TaskJuggler/ReportTableColumn.html +26 -2
  147. data/doc/TaskJuggler/ReportTableLegend.html +26 -2
  148. data/doc/TaskJuggler/ReportTableLine.html +26 -2
  149. data/doc/TaskJuggler/Resource.html +225 -163
  150. data/doc/TaskJuggler/ResourceListAttribute.html +71 -47
  151. data/doc/TaskJuggler/ResourceListRE.html +26 -2
  152. data/doc/TaskJuggler/ResourceScenario.html +645 -603
  153. data/doc/TaskJuggler/RichText.html +26 -2
  154. data/doc/TaskJuggler/RichTextAttribute.html +53 -29
  155. data/doc/TaskJuggler/RichTextDocument.html +26 -2
  156. data/doc/TaskJuggler/RichTextElement.html +26 -2
  157. data/doc/TaskJuggler/RichTextFunctionExample.html +26 -2
  158. data/doc/TaskJuggler/RichTextFunctionHandler.html +26 -2
  159. data/doc/TaskJuggler/RichTextImage.html +26 -2
  160. data/doc/TaskJuggler/RichTextIntermediate.html +29 -5
  161. data/doc/TaskJuggler/RichTextParser.html +26 -2
  162. data/doc/TaskJuggler/RichTextScanner.html +26 -2
  163. data/doc/TaskJuggler/RichTextSnip.html +26 -2
  164. data/doc/TaskJuggler/RichTextSyntaxRules.html +26 -2
  165. data/doc/TaskJuggler/Scenario.html +26 -2
  166. data/doc/TaskJuggler/ScenarioData.html +95 -28
  167. data/doc/TaskJuggler/ScenarioListAttribute.html +39 -15
  168. data/doc/TaskJuggler/Scoreboard.html +137 -73
  169. data/doc/TaskJuggler/ScoreboardInterval.html +1116 -0
  170. data/doc/TaskJuggler/SheetHandlerBase.html +26 -2
  171. data/doc/TaskJuggler/SheetReceiver.html +26 -2
  172. data/doc/TaskJuggler/SheetSender.html +26 -2
  173. data/doc/TaskJuggler/Shift.html +27 -3
  174. data/doc/TaskJuggler/ShiftAssignment.html +27 -3
  175. data/doc/TaskJuggler/ShiftAssignments.html +174 -149
  176. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +41 -16
  177. data/doc/TaskJuggler/ShiftScenario.html +26 -2
  178. data/doc/TaskJuggler/SimpleQueryExpander.html +26 -2
  179. data/doc/TaskJuggler/SortListAttribute.html +35 -11
  180. data/doc/TaskJuggler/StatusSheetReceiver.html +26 -2
  181. data/doc/TaskJuggler/StatusSheetReport.html +26 -2
  182. data/doc/TaskJuggler/StatusSheetSender.html +26 -2
  183. data/doc/TaskJuggler/StdIoWrapper.html +26 -2
  184. data/doc/TaskJuggler/StringAttribute.html +39 -15
  185. data/doc/TaskJuggler/SymbolAttribute.html +35 -11
  186. data/doc/TaskJuggler/SyntaxReference.html +26 -2
  187. data/doc/TaskJuggler/TOCEntry.html +26 -2
  188. data/doc/TaskJuggler/TSResourceRecord.html +26 -2
  189. data/doc/TaskJuggler/TSTaskRecord.html +26 -2
  190. data/doc/TaskJuggler/TableColumnDefinition.html +26 -2
  191. data/doc/TaskJuggler/TableOfContents.html +26 -2
  192. data/doc/TaskJuggler/TableReport.html +239 -214
  193. data/doc/TaskJuggler/TagFile/TagFileEntry.html +841 -0
  194. data/doc/TaskJuggler/TagFile.html +817 -0
  195. data/doc/TaskJuggler/Task.html +27 -3
  196. data/doc/TaskJuggler/TaskDepListAttribute.html +47 -23
  197. data/doc/TaskJuggler/TaskDependency.html +26 -2
  198. data/doc/TaskJuggler/TaskListAttribute.html +47 -23
  199. data/doc/TaskJuggler/TaskListRE.html +26 -2
  200. data/doc/TaskJuggler/TaskScenario.html +2235 -2178
  201. data/doc/TaskJuggler/TernarySearchTree.html +26 -2
  202. data/doc/TaskJuggler/TextFormatter.html +26 -2
  203. data/doc/TaskJuggler/TextParser/Macro.html +26 -2
  204. data/doc/TaskJuggler/TextParser/MacroTable.html +26 -2
  205. data/doc/TaskJuggler/TextParser/Pattern.html +26 -2
  206. data/doc/TaskJuggler/TextParser/Rule.html +26 -2
  207. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +32 -8
  208. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +39 -15
  209. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +26 -2
  210. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +119 -86
  211. data/doc/TaskJuggler/TextParser/Scanner.html +317 -291
  212. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +26 -2
  213. data/doc/TaskJuggler/TextParser/StackElement.html +26 -2
  214. data/doc/TaskJuggler/TextParser/State.html +26 -2
  215. data/doc/TaskJuggler/TextParser/StateTransition.html +26 -2
  216. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +26 -2
  217. data/doc/TaskJuggler/TextParser/TokenDoc.html +26 -2
  218. data/doc/TaskJuggler/TextParser.html +85 -61
  219. data/doc/TaskJuggler/TextReport.html +26 -2
  220. data/doc/TaskJuggler/TimeInterval.html +841 -0
  221. data/doc/TaskJuggler/{IntervalListAttribute.html → TimeIntervalListAttribute.html} +33 -9
  222. data/doc/TaskJuggler/TimeSheet.html +26 -2
  223. data/doc/TaskJuggler/TimeSheetReceiver.html +26 -2
  224. data/doc/TaskJuggler/TimeSheetRecord.html +27 -3
  225. data/doc/TaskJuggler/TimeSheetReport.html +29 -5
  226. data/doc/TaskJuggler/TimeSheetSender.html +26 -2
  227. data/doc/TaskJuggler/TimeSheetSummary.html +26 -2
  228. data/doc/TaskJuggler/TimeSheets.html +26 -2
  229. data/doc/TaskJuggler/Tj3.html +150 -111
  230. data/doc/TaskJuggler/Tj3AppBase.html +26 -2
  231. data/doc/TaskJuggler/Tj3Client.html +26 -2
  232. data/doc/TaskJuggler/Tj3Daemon.html +26 -2
  233. data/doc/TaskJuggler/Tj3Man.html +26 -2
  234. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -2
  235. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -2
  236. data/doc/TaskJuggler/Tj3SsSender.html +26 -2
  237. data/doc/TaskJuggler/Tj3TsReceiver.html +26 -2
  238. data/doc/TaskJuggler/Tj3TsSender.html +26 -2
  239. data/doc/TaskJuggler/Tj3TsSummary.html +26 -2
  240. data/doc/TaskJuggler/TjException.html +26 -2
  241. data/doc/TaskJuggler/TjRuntimeError.html +26 -2
  242. data/doc/TaskJuggler/TjTime.html +539 -477
  243. data/doc/TaskJuggler/TjpExample.html +26 -2
  244. data/doc/TaskJuggler/TjpExportRE.html +240 -161
  245. data/doc/TaskJuggler/TjpSyntaxRules.html +4236 -3844
  246. data/doc/TaskJuggler/URLParameter.html +26 -2
  247. data/doc/TaskJuggler/UserManual.html +26 -2
  248. data/doc/TaskJuggler/VimSyntax.html +31 -7
  249. data/doc/TaskJuggler/WebServer.html +26 -2
  250. data/doc/TaskJuggler/WelcomePage.html +26 -2
  251. data/doc/TaskJuggler/WorkingHours.html +227 -152
  252. data/doc/TaskJuggler/WorkingHoursAttribute.html +62 -38
  253. data/doc/TaskJuggler/XMLBlob.html +26 -2
  254. data/doc/TaskJuggler/XMLComment.html +26 -2
  255. data/doc/TaskJuggler/XMLDocument.html +26 -2
  256. data/doc/TaskJuggler/XMLElement.html +26 -2
  257. data/doc/TaskJuggler/XMLNamedText.html +26 -2
  258. data/doc/TaskJuggler/XMLText.html +26 -2
  259. data/doc/TaskJuggler.html +486 -427
  260. data/doc/index.html +801 -659
  261. data/doc/lib/taskjuggler/AccountScenario_rb.html +1 -1
  262. data/doc/lib/taskjuggler/Account_rb.html +1 -1
  263. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +1 -1
  264. data/doc/lib/taskjuggler/Allocation_rb.html +1 -1
  265. data/doc/lib/taskjuggler/AppConfig_rb.html +1 -1
  266. data/doc/lib/taskjuggler/AttributeBase_rb.html +1 -1
  267. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +1 -1
  268. data/doc/lib/taskjuggler/Attributes_rb.html +1 -1
  269. data/doc/lib/taskjuggler/BatchProcessor_rb.html +1 -1
  270. data/doc/lib/taskjuggler/Booking_rb.html +1 -1
  271. data/doc/lib/taskjuggler/ChargeSet_rb.html +1 -1
  272. data/doc/lib/taskjuggler/Charge_rb.html +1 -1
  273. data/doc/lib/taskjuggler/DataCache_rb.html +1 -1
  274. data/doc/lib/taskjuggler/FileList_rb.html +1 -1
  275. data/doc/lib/taskjuggler/HTMLDocument_rb.html +1 -1
  276. data/doc/lib/{ruby-signal-bug_rb.html → taskjuggler/HTMLElements_rb.html} +9 -9
  277. data/doc/lib/{exchangebug_rb.html → taskjuggler/ICalendar_rb.html} +9 -9
  278. data/doc/lib/taskjuggler/IntervalList_rb.html +1 -1
  279. data/doc/lib/taskjuggler/Interval_rb.html +1 -1
  280. data/doc/lib/taskjuggler/Journal_rb.html +1 -1
  281. data/doc/lib/taskjuggler/KeywordArray_rb.html +1 -1
  282. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +1 -1
  283. data/doc/lib/taskjuggler/Limits_rb.html +1 -1
  284. data/doc/lib/taskjuggler/LogFile_rb.html +1 -1
  285. data/doc/lib/taskjuggler/Log_rb.html +1 -1
  286. data/doc/lib/taskjuggler/LogicalExpression_rb.html +1 -1
  287. data/doc/lib/taskjuggler/LogicalFunction_rb.html +1 -1
  288. data/doc/lib/taskjuggler/LogicalOperation_rb.html +1 -1
  289. data/doc/lib/taskjuggler/MessageHandler_rb.html +1 -1
  290. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +1 -1
  291. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +1 -1
  292. data/doc/lib/taskjuggler/Project_rb.html +1 -1
  293. data/doc/lib/taskjuggler/PropertyList_rb.html +1 -1
  294. data/doc/lib/taskjuggler/PropertySet_rb.html +1 -1
  295. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +1 -1
  296. data/doc/lib/taskjuggler/Query_rb.html +1 -1
  297. data/doc/lib/taskjuggler/RealFormat_rb.html +1 -1
  298. data/doc/lib/taskjuggler/ResourceScenario_rb.html +1 -1
  299. data/doc/lib/taskjuggler/Resource_rb.html +1 -1
  300. data/doc/lib/taskjuggler/RichText/Document_rb.html +1 -1
  301. data/doc/lib/taskjuggler/RichText/Element_rb.html +1 -1
  302. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +1 -1
  303. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +1 -1
  304. data/doc/lib/taskjuggler/RichText/Parser_rb.html +1 -1
  305. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +1 -1
  306. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +1 -1
  307. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +1 -1
  308. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +1 -1
  309. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +1 -1
  310. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +1 -1
  311. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +1 -1
  312. data/doc/lib/taskjuggler/RichText/Snip_rb.html +1 -1
  313. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +1 -1
  314. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +1 -1
  315. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +1 -1
  316. data/doc/lib/taskjuggler/RichText_rb.html +1 -1
  317. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +1 -1
  318. data/doc/lib/taskjuggler/ScenarioData_rb.html +1 -1
  319. data/doc/lib/taskjuggler/Scenario_rb.html +1 -1
  320. data/doc/lib/taskjuggler/Scoreboard_rb.html +1 -1
  321. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +1 -1
  322. data/doc/lib/taskjuggler/SheetReceiver_rb.html +1 -1
  323. data/doc/lib/taskjuggler/SheetSender_rb.html +1 -1
  324. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +1 -1
  325. data/doc/lib/taskjuggler/ShiftScenario_rb.html +1 -1
  326. data/doc/lib/taskjuggler/Shift_rb.html +1 -1
  327. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +1 -1
  328. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +1 -1
  329. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +1 -1
  330. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +1 -1
  331. data/doc/lib/taskjuggler/SyntaxReference_rb.html +1 -1
  332. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +1 -1
  333. data/doc/lib/taskjuggler/TaskDependency_rb.html +1 -1
  334. data/doc/lib/taskjuggler/TaskJuggler_rb.html +1 -1
  335. data/doc/lib/taskjuggler/TaskScenario_rb.html +1 -1
  336. data/doc/lib/taskjuggler/Task_rb.html +1 -1
  337. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +1 -1
  338. data/doc/lib/taskjuggler/TextFormatter_rb.html +1 -1
  339. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +1 -1
  340. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +1 -1
  341. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +1 -1
  342. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +1 -1
  343. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +1 -1
  344. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +1 -1
  345. data/doc/lib/taskjuggler/TextParser/State_rb.html +1 -1
  346. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +1 -1
  347. data/doc/lib/taskjuggler/TextParser_rb.html +1 -1
  348. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +1 -1
  349. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +1 -1
  350. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +1 -1
  351. data/doc/lib/taskjuggler/TimeSheets_rb.html +1 -1
  352. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +1 -1
  353. data/doc/lib/taskjuggler/Tj3Config_rb.html +1 -1
  354. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +1 -1
  355. data/doc/lib/taskjuggler/TjException_rb.html +1 -1
  356. data/doc/lib/taskjuggler/TjTime_rb.html +1 -1
  357. data/doc/lib/taskjuggler/TjpExample_rb.html +1 -1
  358. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +1 -1
  359. data/doc/lib/taskjuggler/URLParameter_rb.html +1 -1
  360. data/doc/lib/taskjuggler/UTF8String_rb.html +1 -1
  361. data/doc/lib/taskjuggler/UserManual_rb.html +1 -1
  362. data/doc/lib/taskjuggler/VimSyntax_rb.html +1 -1
  363. data/doc/lib/taskjuggler/WorkingHours_rb.html +1 -1
  364. data/doc/lib/taskjuggler/XMLDocument_rb.html +1 -1
  365. data/doc/lib/taskjuggler/XMLElement_rb.html +1 -1
  366. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +1 -1
  367. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +1 -1
  368. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +1 -1
  369. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +1 -1
  370. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +1 -1
  371. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +1 -1
  372. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +1 -1
  373. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +1 -1
  374. data/doc/lib/taskjuggler/apps/Tj3_rb.html +1 -1
  375. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +1 -1
  376. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +1 -1
  377. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +1 -1
  378. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +1 -1
  379. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +1 -1
  380. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +1 -1
  381. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +1 -1
  382. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +1 -1
  383. data/doc/lib/taskjuggler/deep_copy_rb.html +1 -1
  384. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +1 -1
  385. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +1 -1
  386. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +1 -1
  387. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +1 -1
  388. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +1 -1
  389. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +1 -1
  390. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +1 -1
  391. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +1 -1
  392. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +1 -1
  393. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +1 -1
  394. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +1 -1
  395. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +1 -1
  396. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +1 -1
  397. data/doc/lib/taskjuggler/reports/ICalReport_rb.html +71 -0
  398. data/doc/lib/taskjuggler/reports/Navigator_rb.html +1 -1
  399. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +1 -1
  400. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +1 -1
  401. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +1 -1
  402. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +1 -1
  403. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +1 -1
  404. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +1 -1
  405. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +1 -1
  406. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +1 -1
  407. data/doc/lib/taskjuggler/reports/Report_rb.html +5 -1
  408. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +1 -1
  409. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +1 -1
  410. data/doc/lib/taskjuggler/reports/TableReport_rb.html +1 -1
  411. data/doc/lib/taskjuggler/reports/TagFile_rb.html +71 -0
  412. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +1 -1
  413. data/doc/lib/taskjuggler/reports/TextReport_rb.html +1 -1
  414. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +1 -1
  415. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +1 -1
  416. data/doc/lib/tj3_rb.html +1 -1
  417. data/doc/lib/tj3client_rb.html +1 -1
  418. data/doc/lib/tj3d_rb.html +1 -1
  419. data/doc/lib/tj3man_rb.html +1 -1
  420. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  421. data/doc/lib/tj3ss_sender_rb.html +1 -1
  422. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  423. data/doc/lib/tj3ts_sender_rb.html +1 -1
  424. data/doc/lib/tj3ts_summary_rb.html +1 -1
  425. data/lib/taskjuggler/Account.rb +1 -1
  426. data/lib/taskjuggler/AccountScenario.rb +1 -1
  427. data/lib/taskjuggler/Allocation.rb +5 -5
  428. data/lib/taskjuggler/AttributeBase.rb +30 -22
  429. data/lib/taskjuggler/Attributes.rb +80 -78
  430. data/lib/taskjuggler/Booking.rb +2 -2
  431. data/lib/taskjuggler/Charge.rb +3 -3
  432. data/lib/taskjuggler/ICalendar.rb +251 -0
  433. data/lib/taskjuggler/Interval.rb +215 -53
  434. data/lib/taskjuggler/IntervalList.rb +5 -5
  435. data/lib/taskjuggler/Limits.rb +79 -69
  436. data/lib/taskjuggler/LogicalFunction.rb +2 -2
  437. data/lib/taskjuggler/MessageHandler.rb +11 -6
  438. data/lib/taskjuggler/Project.rb +208 -95
  439. data/lib/taskjuggler/ProjectFileParser.rb +2 -2
  440. data/lib/taskjuggler/ProjectFileScanner.rb +7 -6
  441. data/lib/taskjuggler/PropertySet.rb +1 -5
  442. data/lib/taskjuggler/PropertyTreeNode.rb +21 -16
  443. data/lib/taskjuggler/Query.rb +10 -7
  444. data/lib/taskjuggler/Resource.rb +6 -1
  445. data/lib/taskjuggler/ResourceScenario.rb +85 -69
  446. data/lib/taskjuggler/RichText/RTFQuery.rb +2 -2
  447. data/lib/taskjuggler/ScenarioData.rb +11 -1
  448. data/lib/taskjuggler/Scoreboard.rb +8 -1
  449. data/lib/taskjuggler/Shift.rb +1 -1
  450. data/lib/taskjuggler/ShiftAssignments.rb +22 -20
  451. data/lib/taskjuggler/Task.rb +1 -1
  452. data/lib/taskjuggler/TaskJuggler.rb +65 -51
  453. data/lib/taskjuggler/TaskScenario.rb +486 -419
  454. data/lib/taskjuggler/TextParser/Scanner.rb +22 -11
  455. data/lib/taskjuggler/TimeSheets.rb +1 -1
  456. data/lib/taskjuggler/Tj3Config.rb +1 -1
  457. data/lib/taskjuggler/TjTime.rb +7 -3
  458. data/lib/taskjuggler/TjpSyntaxRules.rb +157 -23
  459. data/lib/taskjuggler/VimSyntax.rb +18 -0
  460. data/lib/taskjuggler/WorkingHours.rb +20 -4
  461. data/lib/taskjuggler/apps/Tj3.rb +16 -1
  462. data/lib/taskjuggler/reports/GanttLine.rb +1 -1
  463. data/lib/taskjuggler/reports/ICalReport.rb +136 -0
  464. data/lib/taskjuggler/reports/NikuReport.rb +1 -1
  465. data/lib/taskjuggler/reports/Report.rb +59 -0
  466. data/lib/taskjuggler/reports/ReportBase.rb +2 -67
  467. data/lib/taskjuggler/reports/TableReport.rb +9 -8
  468. data/lib/taskjuggler/reports/TagFile.rb +120 -0
  469. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -3
  470. data/lib/taskjuggler/reports/TjpExportRE.rb +33 -9
  471. data/manual/Installation +126 -0
  472. data/spec/ICalendar_spec.rb +45 -0
  473. data/spec/IntervalList_spec.rb +11 -11
  474. data/tasks/changelog.rake +150 -60
  475. data/tasks/gem.rake +1 -0
  476. data/tasks/vim.rake +2 -2
  477. data/test/TestSuite/Export-Reports/refs/Booking.tjp +1 -1
  478. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  479. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +10 -1
  480. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +1 -1
  481. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  482. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  483. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  484. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  485. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  486. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  487. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  488. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  489. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  490. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  491. data/test/TestSuite/{Scheduler/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  492. data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
  493. data/test/TestSuite/Scheduler/Correct/Duration.tjp +3 -3
  494. data/test/TestSuite/Scheduler/Errors/R.html +113 -0
  495. data/test/TestSuite/Scheduler/Errors/allocate_no_assigned.tjp +15 -0
  496. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjmanual.css +0 -1
  497. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjreport.css +0 -0
  498. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/details.png +0 -0
  499. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-green.png +0 -0
  500. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-red.png +0 -0
  501. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-yellow.png +0 -0
  502. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resource.png +0 -0
  503. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resourcegroup.png +0 -0
  504. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/task.png +0 -0
  505. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/taskgroup.png +0 -0
  506. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-down.png +0 -0
  507. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-flat.png +0 -0
  508. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-up.png +0 -0
  509. data/test/TestSuite/Scheduler/Errors/overbooked_duration.tjp +11 -0
  510. data/test/TestSuite/Scheduler/Errors/overbooked_effort.tjp +11 -0
  511. data/test/TestSuite/Scheduler/Errors/overbooked_length.tjp +13 -0
  512. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/scripts/wz_tooltip.js +0 -0
  513. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  514. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  515. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +5 -2
  516. data/test/TestSuite/Syntax/Errors/scenario_after_tracking.tjp +8 -0
  517. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  518. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  519. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  520. data/test/test_Limits.rb +38 -30
  521. data/test/test_Scheduler.rb +2 -2
  522. data/test/test_ShiftAssignments.rb +8 -8
  523. data/test/test_WorkingHours.rb +4 -4
  524. metadata +1015 -1005
  525. data/lib/exchangebug.rb +0 -42
  526. data/lib/ruby-signal-bug.rb +0 -55
  527. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -60
  528. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -80
  529. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  530. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  531. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -412
  532. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -680
  533. data/test/TestSuite/ReportGenerator/Correct/DependencyList.csv +0 -4
  534. data/test/TestSuite/ReportGenerator/Correct/DependencyList.tjp +0 -25
  535. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -8
  536. data/test/TestSuite/ReportGenerator/Correct/Journal-2.csv +0 -8
  537. data/test/TestSuite/ReportGenerator/Correct/Journal-3.html +0 -28
  538. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  540. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  541. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  542. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  543. data/test/TestSuite/Scheduler/' +0 -23
  544. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  545. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  546. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  547. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  548. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  549. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  550. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  551. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  552. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  553. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  554. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  555. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  556. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  557. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  558. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  559. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  560. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  561. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  562. data/test/TestSuite/TimeSheets/receiver.log.mod +0 -1056
  563. data/test/TestSuite/TimeSheets/uu.txt +0 -29
@@ -207,12 +207,24 @@
207
207
 
208
208
  <li><a href="../../../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
209
209
 
210
+ <li><a href="../../../TaskJuggler/ICalReport.html">TaskJuggler::ICalReport</a></li>
211
+
212
+ <li><a href="../../../TaskJuggler/ICalendar.html">TaskJuggler::ICalendar</a></li>
213
+
214
+ <li><a href="../../../TaskJuggler/ICalendar/Component.html">TaskJuggler::ICalendar::Component</a></li>
215
+
216
+ <li><a href="../../../TaskJuggler/ICalendar/Event.html">TaskJuggler::ICalendar::Event</a></li>
217
+
218
+ <li><a href="../../../TaskJuggler/ICalendar/Journal.html">TaskJuggler::ICalendar::Journal</a></li>
219
+
220
+ <li><a href="../../../TaskJuggler/ICalendar/Person.html">TaskJuggler::ICalendar::Person</a></li>
221
+
222
+ <li><a href="../../../TaskJuggler/ICalendar/Todo.html">TaskJuggler::ICalendar::Todo</a></li>
223
+
210
224
  <li><a href="../../../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
211
225
 
212
226
  <li><a href="../../../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
213
227
 
214
- <li><a href="../../../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
215
-
216
228
  <li><a href="../../../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
217
229
 
218
230
  <li><a href="../../../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
@@ -327,6 +339,8 @@
327
339
 
328
340
  <li><a href="../../../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
329
341
 
342
+ <li><a href="../../../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
343
+
330
344
  <li><a href="../../../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
331
345
 
332
346
  <li><a href="../../../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
@@ -385,6 +399,8 @@
385
399
 
386
400
  <li><a href="../../../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
387
401
 
402
+ <li><a href="../../../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
403
+
388
404
  <li><a href="../../../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
389
405
 
390
406
  <li><a href="../../../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
@@ -431,6 +447,10 @@
431
447
 
432
448
  <li><a href="../../../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
433
449
 
450
+ <li><a href="../../../TaskJuggler/TagFile.html">TaskJuggler::TagFile</a></li>
451
+
452
+ <li><a href="../../../TaskJuggler/TagFile/TagFileEntry.html">TaskJuggler::TagFile::TagFileEntry</a></li>
453
+
434
454
  <li><a href="../../../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
435
455
 
436
456
  <li><a href="../../../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
@@ -481,6 +501,10 @@
481
501
 
482
502
  <li><a href="../../../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
483
503
 
504
+ <li><a href="../../../TaskJuggler/TimeInterval.html">TaskJuggler::TimeInterval</a></li>
505
+
506
+ <li><a href="../../../TaskJuggler/TimeIntervalListAttribute.html">TaskJuggler::TimeIntervalListAttribute</a></li>
507
+
484
508
  <li><a href="../../../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
485
509
 
486
510
  <li><a href="../../../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
@@ -225,12 +225,24 @@
225
225
 
226
226
  <li><a href="../../../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
227
227
 
228
+ <li><a href="../../../TaskJuggler/ICalReport.html">TaskJuggler::ICalReport</a></li>
229
+
230
+ <li><a href="../../../TaskJuggler/ICalendar.html">TaskJuggler::ICalendar</a></li>
231
+
232
+ <li><a href="../../../TaskJuggler/ICalendar/Component.html">TaskJuggler::ICalendar::Component</a></li>
233
+
234
+ <li><a href="../../../TaskJuggler/ICalendar/Event.html">TaskJuggler::ICalendar::Event</a></li>
235
+
236
+ <li><a href="../../../TaskJuggler/ICalendar/Journal.html">TaskJuggler::ICalendar::Journal</a></li>
237
+
238
+ <li><a href="../../../TaskJuggler/ICalendar/Person.html">TaskJuggler::ICalendar::Person</a></li>
239
+
240
+ <li><a href="../../../TaskJuggler/ICalendar/Todo.html">TaskJuggler::ICalendar::Todo</a></li>
241
+
228
242
  <li><a href="../../../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
229
243
 
230
244
  <li><a href="../../../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
231
245
 
232
- <li><a href="../../../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
233
-
234
246
  <li><a href="../../../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
235
247
 
236
248
  <li><a href="../../../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
@@ -345,6 +357,8 @@
345
357
 
346
358
  <li><a href="../../../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
347
359
 
360
+ <li><a href="../../../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
361
+
348
362
  <li><a href="../../../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
349
363
 
350
364
  <li><a href="../../../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
@@ -403,6 +417,8 @@
403
417
 
404
418
  <li><a href="../../../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
405
419
 
420
+ <li><a href="../../../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
421
+
406
422
  <li><a href="../../../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
407
423
 
408
424
  <li><a href="../../../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
@@ -449,6 +465,10 @@
449
465
 
450
466
  <li><a href="../../../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
451
467
 
468
+ <li><a href="../../../TaskJuggler/TagFile.html">TaskJuggler::TagFile</a></li>
469
+
470
+ <li><a href="../../../TaskJuggler/TagFile/TagFileEntry.html">TaskJuggler::TagFile::TagFileEntry</a></li>
471
+
452
472
  <li><a href="../../../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
453
473
 
454
474
  <li><a href="../../../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
@@ -499,6 +519,10 @@
499
519
 
500
520
  <li><a href="../../../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
501
521
 
522
+ <li><a href="../../../TaskJuggler/TimeInterval.html">TaskJuggler::TimeInterval</a></li>
523
+
524
+ <li><a href="../../../TaskJuggler/TimeIntervalListAttribute.html">TaskJuggler::TimeIntervalListAttribute</a></li>
525
+
502
526
  <li><a href="../../../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
503
527
 
504
528
  <li><a href="../../../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
@@ -762,10 +786,10 @@ enclosing file once the included files has been completely processed.
762
786
  <div class="method-source-code"
763
787
  id="dirname-source">
764
788
  <pre>
765
- <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 136</span>
766
- 136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dirname</span>
767
- 137: <span class="ruby-ivar">@fileName</span> <span class="ruby-operator">?</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-ivar">@fileName</span>) <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>
768
- 138: <span class="ruby-keyword kw">end</span></pre>
789
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 145</span>
790
+ 145: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dirname</span>
791
+ 146: <span class="ruby-ivar">@fileName</span> <span class="ruby-operator">?</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-ivar">@fileName</span>) <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>
792
+ 147: <span class="ruby-keyword kw">end</span></pre>
769
793
  </div>
770
794
 
771
795
  </div>
@@ -796,10 +820,10 @@ enclosing file once the included files has been completely processed.
796
820
  <div class="method-source-code"
797
821
  id="eof--source">
798
822
  <pre>
799
- <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 132</span>
800
- 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eof?</span>
801
- 133: <span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">eof?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">eos?</span>
802
- 134: <span class="ruby-keyword kw">end</span></pre>
823
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 141</span>
824
+ 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eof?</span>
825
+ 142: <span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">eof?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">eos?</span>
826
+ 143: <span class="ruby-keyword kw">end</span></pre>
803
827
  </div>
804
828
 
805
829
  </div>
@@ -816,7 +840,7 @@ enclosing file once the included files has been completely processed.
816
840
  <div class="method-heading">
817
841
 
818
842
  <span class="method-name">injectMacro</span><span
819
- class="method-args">(macro, args, text)</span>
843
+ class="method-args">(macro, args, text, callLength)</span>
820
844
  <span class="method-click-advice">click to toggle source</span>
821
845
 
822
846
  </div>
@@ -830,16 +854,17 @@ enclosing file once the included files has been completely processed.
830
854
  <div class="method-source-code"
831
855
  id="inject-acro-source">
832
856
  <pre>
833
- <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 80</span>
834
- 80: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">injectMacro</span>(<span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>)
835
- 81: <span class="ruby-identifier">injectText</span>(<span class="ruby-identifier">text</span>)
836
- 82:
837
- 83: <span class="ruby-comment cmt"># Simple detection for recursive macro calls.</span>
838
- 84: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">20</span>
839
- 85:
840
- 86: <span class="ruby-ivar">@macroStack</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">MacroStackEntry</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>, <span class="ruby-ivar">@nextMacroEnd</span>)
841
- 87: <span class="ruby-keyword kw">true</span>
842
- 88: <span class="ruby-keyword kw">end</span></pre>
857
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 88</span>
858
+ 88: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">injectMacro</span>(<span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">callLength</span>)
859
+ 89: <span class="ruby-comment cmt"># We add 3 chars more for the ${}.</span>
860
+ 90: <span class="ruby-identifier">injectText</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">callLength</span>)
861
+ 91:
862
+ 92: <span class="ruby-comment cmt"># Simple detection for recursive macro calls.</span>
863
+ 93: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">20</span>
864
+ 94:
865
+ 95: <span class="ruby-ivar">@macroStack</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">MacroStackEntry</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>, <span class="ruby-ivar">@nextMacroEnd</span>)
866
+ 96: <span class="ruby-keyword kw">true</span>
867
+ 97: <span class="ruby-keyword kw">end</span></pre>
843
868
  </div>
844
869
 
845
870
  </div>
@@ -856,7 +881,7 @@ enclosing file once the included files has been completely processed.
856
881
  <div class="method-heading">
857
882
 
858
883
  <span class="method-name">injectText</span><span
859
- class="method-args">(text)</span>
884
+ class="method-args">(text, callLength)</span>
860
885
  <span class="method-click-advice">click to toggle source</span>
861
886
 
862
887
  </div>
@@ -874,13 +899,21 @@ input stream at the current cursor position.
874
899
  id="inject-ext-source">
875
900
  <pre>
876
901
  <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 72</span>
877
- 72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">injectText</span>(<span class="ruby-identifier">text</span>)
878
- 73: <span class="ruby-identifier">pos</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span>
879
- 74: <span class="ruby-ivar">@nextMacroEnd</span> = <span class="ruby-identifier">pos</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">length</span>
880
- 75: <span class="ruby-ivar">@line</span> = <span class="ruby-ivar">@line</span>[<span class="ruby-value">0</span>, <span class="ruby-identifier">pos</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@line</span>[<span class="ruby-identifier">pos</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
881
- 76: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">StringScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@line</span>)
882
- 77: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">pos</span>
883
- 78: <span class="ruby-keyword kw">end</span></pre>
902
+ 72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">injectText</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">callLength</span>)
903
+ 73: <span class="ruby-comment cmt"># Current scanner position in _bytes_ form start</span>
904
+ 74: <span class="ruby-identifier">pos</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span>
905
+ 75: <span class="ruby-comment cmt"># Remove the macro call from the end of the already parsed input.</span>
906
+ 76: <span class="ruby-identifier">preCall</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pre_match</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-operator">-</span>(<span class="ruby-identifier">callLength</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)]
907
+ 77: <span class="ruby-comment cmt"># Store the end position of the inserted macro in bytes.</span>
908
+ 78: <span class="ruby-ivar">@nextMacroEnd</span> = <span class="ruby-identifier">preCall</span>.<span class="ruby-identifier">bytesize</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">bytesize</span>
909
+ 79: <span class="ruby-comment cmt"># Compose the new @line from the cleaned input, the injected text and</span>
910
+ 80: <span class="ruby-comment cmt"># the remainer of the old @line.</span>
911
+ 81: <span class="ruby-ivar">@line</span> = <span class="ruby-identifier">preCall</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">post_match</span>
912
+ 82: <span class="ruby-comment cmt"># Start the StringScanner again at the first character of the injected</span>
913
+ 83: <span class="ruby-comment cmt"># text.</span>
914
+ 84: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">StringScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@line</span>)
915
+ 85: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">preCall</span>.<span class="ruby-identifier">bytesize</span>
916
+ 86: <span class="ruby-keyword kw">end</span></pre>
884
917
  </div>
885
918
 
886
919
  </div>
@@ -913,12 +946,12 @@ Return the already processed part of the current line.
913
946
  <div class="method-source-code"
914
947
  id="line-source">
915
948
  <pre>
916
- <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 151</span>
917
- 151: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">line</span>
918
- 152: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@line</span>
919
- 153:
920
- 154: <span class="ruby-ivar">@line</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span>(<span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)]
921
- 155: <span class="ruby-keyword kw">end</span></pre>
949
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 160</span>
950
+ 160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">line</span>
951
+ 161: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@line</span>
952
+ 162:
953
+ 163: (<span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pre_match</span> <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>) <span class="ruby-operator">+</span> (<span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">matched</span> <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>)
954
+ 164: <span class="ruby-keyword kw">end</span></pre>
922
955
  </div>
923
956
 
924
957
  </div>
@@ -951,15 +984,15 @@ Return the number of the currently processed line.
951
984
  <div class="method-source-code"
952
985
  id="line-o-source">
953
986
  <pre>
954
- <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 141</span>
955
- 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lineNo</span>
956
- 142: <span class="ruby-comment cmt"># The IO object counts the lines for us by counting the gets() calls.</span>
957
- 143: <span class="ruby-identifier">currentLine</span> = <span class="ruby-ivar">@stream</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scanner</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">lineno</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
958
- 144: <span class="ruby-comment cmt"># If we've just read the LF, we have to add 1. The LF can only be the</span>
959
- 145: <span class="ruby-comment cmt"># last character of the line.</span>
960
- 146: <span class="ruby-identifier">currentLine</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@wrapped</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@line</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scanner</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">eos?</span>
961
- 147: <span class="ruby-identifier">currentLine</span>
962
- 148: <span class="ruby-keyword kw">end</span></pre>
987
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 150</span>
988
+ 150: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lineNo</span>
989
+ 151: <span class="ruby-comment cmt"># The IO object counts the lines for us by counting the gets() calls.</span>
990
+ 152: <span class="ruby-identifier">currentLine</span> = <span class="ruby-ivar">@stream</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scanner</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">lineno</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
991
+ 153: <span class="ruby-comment cmt"># If we've just read the LF, we have to add 1. The LF can only be the</span>
992
+ 154: <span class="ruby-comment cmt"># last character of the line.</span>
993
+ 155: <span class="ruby-identifier">currentLine</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@wrapped</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@line</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scanner</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">eos?</span>
994
+ 156: <span class="ruby-identifier">currentLine</span>
995
+ 157: <span class="ruby-keyword kw">end</span></pre>
963
996
  </div>
964
997
 
965
998
  </div>
@@ -990,10 +1023,10 @@ Return the number of the currently processed line.
990
1023
  <div class="method-source-code"
991
1024
  id="peek-source">
992
1025
  <pre>
993
- <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 128</span>
994
- 128: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">peek</span>(<span class="ruby-identifier">n</span>)
995
- 129: <span class="ruby-ivar">@scanner</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">peek</span>(<span class="ruby-identifier">n</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
996
- 130: <span class="ruby-keyword kw">end</span></pre>
1026
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 137</span>
1027
+ 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">peek</span>(<span class="ruby-identifier">n</span>)
1028
+ 138: <span class="ruby-ivar">@scanner</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">peek</span>(<span class="ruby-identifier">n</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1029
+ 139: <span class="ruby-keyword kw">end</span></pre>
997
1030
  </div>
998
1031
 
999
1032
  </div>
@@ -1024,44 +1057,44 @@ Return the number of the currently processed line.
1024
1057
  <div class="method-source-code"
1025
1058
  id="scan-source">
1026
1059
  <pre>
1027
- <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 90</span>
1028
- 90: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>)
1029
- 91: <span class="ruby-comment cmt"># We read the file line by line with gets(). If we don't have a line</span>
1030
- 92: <span class="ruby-comment cmt"># yet or we've reached the end of a line, we get the next one.</span>
1031
- 93: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">eos?</span>
1032
- 94: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@line</span> = <span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">gets</span>)
1033
- 95: <span class="ruby-comment cmt"># Update activity meter about every 1024 lines.</span>
1034
- 96: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">lineno</span> &amp; <span class="ruby-value">0x3FF</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1035
- 97: <span class="ruby-comment cmt"># Check for DOS or Mac end of line signatures.</span>
1036
- 98: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@line</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\r\</span>
1037
- 99: <span class="ruby-comment cmt"># Mac: Convert CR into LF</span>
1038
- 100: <span class="ruby-ivar">@line</span>[<span class="ruby-value">1</span>] = <span class="ruby-value">\n\</span>
1039
- 101: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@line</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\r\</span>
1040
- 102: <span class="ruby-comment cmt"># DOS: Convert CR+LF into LF</span>
1041
- 103: <span class="ruby-ivar">@line</span> = <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">chomp</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
1042
- 104: <span class="ruby-keyword kw">end</span>
1043
- 105: <span class="ruby-keyword kw">else</span>
1044
- 106: <span class="ruby-comment cmt"># We've reached the end of the current file.</span>
1045
- 107: <span class="ruby-ivar">@scanner</span> = <span class="ruby-keyword kw">nil</span>
1046
- 108: <span class="ruby-comment cmt"># Return special EOF symbol.</span>
1047
- 109: <span class="ruby-keyword kw">return</span> <span class="ruby-value">:scannerEOF</span>
1048
- 110: <span class="ruby-keyword kw">end</span>
1049
- 111: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">StringScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@line</span>)
1050
- 112: <span class="ruby-ivar">@wrapped</span> = <span class="ruby-ivar">@line</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\n\</span>
1051
- 113: <span class="ruby-keyword kw">end</span>
1052
- 114: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">token</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>)).<span class="ruby-identifier">nil?</span>
1053
- 115: <span class="ruby-comment cmt">#puts &quot;#{re.to_s[0..20]}: [#{token}]&quot;</span>
1054
- 116:
1055
- 117: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@nextMacroEnd</span>
1056
- 118: <span class="ruby-identifier">pos</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span>
1057
- 119: <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@nextMacroEnd</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@nextMacroEnd</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">pos</span>
1058
- 120: <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">pop</span>
1059
- 121: <span class="ruby-ivar">@nextMacroEnd</span> = <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">endPos</span>
1060
- 122: <span class="ruby-keyword kw">end</span>
1061
- 123: <span class="ruby-keyword kw">end</span>
1062
- 124:
1063
- 125: <span class="ruby-identifier">token</span>
1064
- 126: <span class="ruby-keyword kw">end</span></pre>
1060
+ <span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 99</span>
1061
+ 99: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>)
1062
+ 100: <span class="ruby-comment cmt"># We read the file line by line with gets(). If we don't have a line</span>
1063
+ 101: <span class="ruby-comment cmt"># yet or we've reached the end of a line, we get the next one.</span>
1064
+ 102: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">eos?</span>
1065
+ 103: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@line</span> = <span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">gets</span>)
1066
+ 104: <span class="ruby-comment cmt"># Update activity meter about every 1024 lines.</span>
1067
+ 105: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">lineno</span> &amp; <span class="ruby-value">0x3FF</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1068
+ 106: <span class="ruby-comment cmt"># Check for DOS or Mac end of line signatures.</span>
1069
+ 107: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@line</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\r\</span>
1070
+ 108: <span class="ruby-comment cmt"># Mac: Convert CR into LF</span>
1071
+ 109: <span class="ruby-ivar">@line</span>[<span class="ruby-value">1</span>] = <span class="ruby-value">\n\</span>
1072
+ 110: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@line</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\r\</span>
1073
+ 111: <span class="ruby-comment cmt"># DOS: Convert CR+LF into LF</span>
1074
+ 112: <span class="ruby-ivar">@line</span> = <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">chomp</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
1075
+ 113: <span class="ruby-keyword kw">end</span>
1076
+ 114: <span class="ruby-keyword kw">else</span>
1077
+ 115: <span class="ruby-comment cmt"># We've reached the end of the current file.</span>
1078
+ 116: <span class="ruby-ivar">@scanner</span> = <span class="ruby-keyword kw">nil</span>
1079
+ 117: <span class="ruby-comment cmt"># Return special EOF symbol.</span>
1080
+ 118: <span class="ruby-keyword kw">return</span> <span class="ruby-value">:scannerEOF</span>
1081
+ 119: <span class="ruby-keyword kw">end</span>
1082
+ 120: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">StringScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@line</span>)
1083
+ 121: <span class="ruby-ivar">@wrapped</span> = <span class="ruby-ivar">@line</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\n\</span>
1084
+ 122: <span class="ruby-keyword kw">end</span>
1085
+ 123: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">token</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>)).<span class="ruby-identifier">nil?</span>
1086
+ 124: <span class="ruby-comment cmt">#puts &quot;#{re.to_s[0..20]}: [#{token}]&quot;</span>
1087
+ 125:
1088
+ 126: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@nextMacroEnd</span>
1089
+ 127: <span class="ruby-identifier">pos</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span>
1090
+ 128: <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@nextMacroEnd</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@nextMacroEnd</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">pos</span>
1091
+ 129: <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">pop</span>
1092
+ 130: <span class="ruby-ivar">@nextMacroEnd</span> = <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">endPos</span>
1093
+ 131: <span class="ruby-keyword kw">end</span>
1094
+ 132: <span class="ruby-keyword kw">end</span>
1095
+ 133:
1096
+ 134: <span class="ruby-identifier">token</span>
1097
+ 135: <span class="ruby-keyword kw">end</span></pre>
1065
1098
  </div>
1066
1099
 
1067
1100
  </div>