taskjuggler 0.0.8 → 0.0.9

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 (613) hide show
  1. data/CHANGELOG +1144 -2047
  2. data/README +1 -1
  3. data/Rakefile +6 -6
  4. data/data/css/tjmanual.css +20 -0
  5. data/data/css/tjreport.css +7 -6
  6. data/doc/AppConfig.html +136 -130
  7. data/doc/Arguments.html +46 -40
  8. data/doc/CHANGELOG.html +1162 -2057
  9. data/doc/COPYING.html +8 -2
  10. data/doc/Object.html +205 -199
  11. data/doc/README.html +9 -3
  12. data/doc/RuntimeConfig.html +75 -69
  13. data/doc/String.html +69 -63
  14. data/doc/TaskJuggler.html +350 -291
  15. data/doc/TaskJuggler/Account.html +26 -20
  16. data/doc/TaskJuggler/AccountAttribute.html +24 -18
  17. data/doc/TaskJuggler/AccountScenario.html +24 -18
  18. data/doc/TaskJuggler/Allocation.html +74 -68
  19. data/doc/TaskJuggler/AllocationAttribute.html +54 -48
  20. data/doc/TaskJuggler/AttributeBase.html +172 -93
  21. data/doc/TaskJuggler/AttributeDefinition.html +22 -16
  22. data/doc/TaskJuggler/AttributeOverwrite.html +586 -0
  23. data/doc/TaskJuggler/BatchProcessor.html +263 -257
  24. data/doc/TaskJuggler/Booking.html +44 -38
  25. data/doc/TaskJuggler/BookingListAttribute.html +25 -21
  26. data/doc/TaskJuggler/BooleanAttribute.html +24 -18
  27. data/doc/TaskJuggler/CSVFile.html +193 -187
  28. data/doc/TaskJuggler/CellSettingPattern.html +13 -7
  29. data/doc/TaskJuggler/CellSettingPatternList.html +25 -19
  30. data/doc/TaskJuggler/Charge.html +49 -43
  31. data/doc/TaskJuggler/ChargeListAttribute.html +21 -15
  32. data/doc/TaskJuggler/ChargeSet.html +94 -88
  33. data/doc/TaskJuggler/ChargeSetListAttribute.html +29 -25
  34. data/doc/TaskJuggler/CollisionDetector.html +142 -136
  35. data/doc/TaskJuggler/ColumnListAttribute.html +21 -17
  36. data/doc/TaskJuggler/ColumnTable.html +50 -44
  37. data/doc/TaskJuggler/Daemon.html +71 -50
  38. data/doc/TaskJuggler/DataCache.html +110 -58
  39. data/doc/TaskJuggler/DataCacheEntry.html +22 -16
  40. data/doc/TaskJuggler/DateAttribute.html +24 -18
  41. data/doc/TaskJuggler/DefinitionListAttribute.html +12 -6
  42. data/doc/TaskJuggler/DependencyListAttribute.html +29 -25
  43. data/doc/TaskJuggler/DurationAttribute.html +25 -19
  44. data/doc/TaskJuggler/FileList.html +25 -19
  45. data/doc/TaskJuggler/FileRecord.html +17 -11
  46. data/doc/TaskJuggler/FixnumAttribute.html +16 -10
  47. data/doc/TaskJuggler/FlagListAttribute.html +25 -21
  48. data/doc/TaskJuggler/FloatAttribute.html +20 -14
  49. data/doc/TaskJuggler/FormatListAttribute.html +17 -11
  50. data/doc/TaskJuggler/GanttChart.html +242 -236
  51. data/doc/TaskJuggler/GanttContainer.html +71 -67
  52. data/doc/TaskJuggler/GanttHeader.html +113 -107
  53. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -20
  54. data/doc/TaskJuggler/GanttLine.html +217 -210
  55. data/doc/TaskJuggler/GanttLoadStack.html +89 -83
  56. data/doc/TaskJuggler/GanttMilestone.html +11 -6
  57. data/doc/TaskJuggler/GanttRouter.html +194 -186
  58. data/doc/TaskJuggler/GanttTaskBar.html +41 -34
  59. data/doc/TaskJuggler/HTMLDocument.html +52 -46
  60. data/doc/TaskJuggler/HTMLGraphics.html +58 -52
  61. data/doc/TaskJuggler/Interval.html +90 -84
  62. data/doc/TaskJuggler/IntervalList.html +777 -0
  63. data/doc/TaskJuggler/IntervalListAttribute.html +29 -25
  64. data/doc/TaskJuggler/JobInfo.html +36 -30
  65. data/doc/TaskJuggler/Journal.html +188 -177
  66. data/doc/TaskJuggler/JournalEntry.html +36 -30
  67. data/doc/TaskJuggler/JournalEntryList.html +88 -82
  68. data/doc/TaskJuggler/KeywordArray.html +12 -6
  69. data/doc/TaskJuggler/KeywordDocumentation.html +512 -503
  70. data/doc/TaskJuggler/Limits.html +111 -105
  71. data/doc/TaskJuggler/Limits/Limit.html +71 -65
  72. data/doc/TaskJuggler/LimitsAttribute.html +21 -15
  73. data/doc/TaskJuggler/ListAttributeBase.html +16 -10
  74. data/doc/TaskJuggler/Log.html +111 -105
  75. data/doc/TaskJuggler/LogFile.html +54 -48
  76. data/doc/TaskJuggler/LogicalAttribute.html +35 -29
  77. data/doc/TaskJuggler/LogicalExpression.html +32 -26
  78. data/doc/TaskJuggler/LogicalExpressionAttribute.html +16 -10
  79. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +671 -0
  80. data/doc/TaskJuggler/LogicalFlag.html +24 -18
  81. data/doc/TaskJuggler/LogicalFunction.html +164 -158
  82. data/doc/TaskJuggler/LogicalOperation.html +138 -132
  83. data/doc/TaskJuggler/Macro.html +14 -8
  84. data/doc/TaskJuggler/MacroTable.html +42 -36
  85. data/doc/TaskJuggler/ManagerResponsibilities.html +19 -13
  86. data/doc/TaskJuggler/ManagerStatusRecord.html +23 -17
  87. data/doc/TaskJuggler/Message.html +56 -50
  88. data/doc/TaskJuggler/MessageHandler.html +73 -67
  89. data/doc/TaskJuggler/Navigator.html +92 -86
  90. data/doc/TaskJuggler/NavigatorElement.html +88 -82
  91. data/doc/TaskJuggler/NikuProject.html +15 -9
  92. data/doc/TaskJuggler/NikuReport.html +405 -370
  93. data/doc/TaskJuggler/NikuResource.html +13 -7
  94. data/doc/TaskJuggler/NodeListAttribute.html +13 -9
  95. data/doc/TaskJuggler/PlaceHolderCell.html +22 -16
  96. data/doc/TaskJuggler/ProcessIntercom.html +116 -110
  97. data/doc/TaskJuggler/ProcessIntercomIface.html +39 -33
  98. data/doc/TaskJuggler/Project.html +1064 -895
  99. data/doc/TaskJuggler/ProjectBroker.html +439 -366
  100. data/doc/TaskJuggler/ProjectBrokerIface.html +63 -53
  101. data/doc/TaskJuggler/ProjectFileParser.html +329 -319
  102. data/doc/TaskJuggler/ProjectFileScanner.html +351 -345
  103. data/doc/TaskJuggler/ProjectRecord.html +66 -60
  104. data/doc/TaskJuggler/ProjectServer.html +287 -280
  105. data/doc/TaskJuggler/ProjectServerIface.html +43 -37
  106. data/doc/TaskJuggler/PropertyAttribute.html +16 -10
  107. data/doc/TaskJuggler/PropertyList.html +205 -199
  108. data/doc/TaskJuggler/PropertySet.html +264 -296
  109. data/doc/TaskJuggler/PropertyTreeNode.html +455 -505
  110. data/doc/TaskJuggler/Query.html +309 -524
  111. data/doc/TaskJuggler/RTFHandlers.html +17 -11
  112. data/doc/TaskJuggler/RTFNavigator.html +33 -27
  113. data/doc/TaskJuggler/RTFQuery.html +135 -129
  114. data/doc/TaskJuggler/RTFReport.html +63 -57
  115. data/doc/TaskJuggler/RTFReportLink.html +55 -49
  116. data/doc/TaskJuggler/RTFWithQuerySupport.html +17 -11
  117. data/doc/TaskJuggler/RealFormat.html +64 -58
  118. data/doc/TaskJuggler/RealFormatAttribute.html +12 -6
  119. data/doc/TaskJuggler/ReferenceAttribute.html +35 -29
  120. data/doc/TaskJuggler/Report.html +294 -249
  121. data/doc/TaskJuggler/ReportBase.html +229 -223
  122. data/doc/TaskJuggler/ReportContext.html +52 -46
  123. data/doc/TaskJuggler/ReportServer.html +143 -137
  124. data/doc/TaskJuggler/ReportServerIface.html +51 -43
  125. data/doc/TaskJuggler/ReportServerRecord.html +36 -30
  126. data/doc/TaskJuggler/ReportServlet.html +167 -140
  127. data/doc/TaskJuggler/ReportTable.html +137 -131
  128. data/doc/TaskJuggler/ReportTableCell.html +332 -292
  129. data/doc/TaskJuggler/ReportTableColumn.html +46 -40
  130. data/doc/TaskJuggler/ReportTableLegend.html +43 -38
  131. data/doc/TaskJuggler/ReportTableLine.html +66 -60
  132. data/doc/TaskJuggler/Resource.html +166 -160
  133. data/doc/TaskJuggler/ResourceListAttribute.html +54 -32
  134. data/doc/TaskJuggler/ResourceListRE.html +47 -41
  135. data/doc/TaskJuggler/ResourceScenario.html +671 -644
  136. data/doc/TaskJuggler/RichText.html +51 -45
  137. data/doc/TaskJuggler/RichTextAttribute.html +28 -22
  138. data/doc/TaskJuggler/RichTextDocument.html +96 -90
  139. data/doc/TaskJuggler/RichTextElement.html +503 -497
  140. data/doc/TaskJuggler/RichTextFunctionExample.html +41 -35
  141. data/doc/TaskJuggler/RichTextFunctionHandler.html +19 -13
  142. data/doc/TaskJuggler/RichTextImage.html +14 -8
  143. data/doc/TaskJuggler/RichTextIntermediate.html +86 -80
  144. data/doc/TaskJuggler/RichTextParser.html +59 -53
  145. data/doc/TaskJuggler/RichTextScanner.html +184 -178
  146. data/doc/TaskJuggler/RichTextSnip.html +69 -63
  147. data/doc/TaskJuggler/RichTextSyntaxRules.html +416 -410
  148. data/doc/TaskJuggler/Scenario.html +13 -7
  149. data/doc/TaskJuggler/ScenarioData.html +40 -34
  150. data/doc/TaskJuggler/ScenarioListAttribute.html +21 -15
  151. data/doc/TaskJuggler/Scoreboard.html +129 -107
  152. data/doc/TaskJuggler/SheetHandlerBase.html +245 -239
  153. data/doc/TaskJuggler/SheetReceiver.html +333 -327
  154. data/doc/TaskJuggler/SheetSender.html +227 -221
  155. data/doc/TaskJuggler/Shift.html +26 -20
  156. data/doc/TaskJuggler/ShiftAssignment.html +45 -39
  157. data/doc/TaskJuggler/ShiftAssignments.html +178 -172
  158. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +21 -15
  159. data/doc/TaskJuggler/ShiftScenario.html +29 -23
  160. data/doc/TaskJuggler/SimpleQueryExpander.html +36 -30
  161. data/doc/TaskJuggler/SortListAttribute.html +17 -13
  162. data/doc/TaskJuggler/SourceFileInfo.html +19 -13
  163. data/doc/TaskJuggler/StatusSheetReceiver.html +31 -25
  164. data/doc/TaskJuggler/StatusSheetReport.html +166 -159
  165. data/doc/TaskJuggler/StatusSheetSender.html +80 -74
  166. data/doc/TaskJuggler/StringAttribute.html +20 -14
  167. data/doc/TaskJuggler/SymbolAttribute.html +16 -10
  168. data/doc/TaskJuggler/SyntaxReference.html +231 -225
  169. data/doc/TaskJuggler/TOCEntry.html +46 -40
  170. data/doc/TaskJuggler/TSResourceRecord.html +15 -9
  171. data/doc/TaskJuggler/TSTaskRecord.html +16 -10
  172. data/doc/TaskJuggler/TableColumnDefinition.html +84 -39
  173. data/doc/TaskJuggler/TableOfContents.html +28 -22
  174. data/doc/TaskJuggler/TableReport.html +906 -866
  175. data/doc/TaskJuggler/Task.html +99 -93
  176. data/doc/TaskJuggler/TaskDependency.html +24 -18
  177. data/doc/TaskJuggler/TaskListAttribute.html +29 -25
  178. data/doc/TaskJuggler/TaskListRE.html +46 -39
  179. data/doc/TaskJuggler/TaskScenario.html +2218 -1965
  180. data/doc/TaskJuggler/TextFormatter.html +154 -148
  181. data/doc/TaskJuggler/TextParser.html +362 -348
  182. data/doc/TaskJuggler/TextParser/Pattern.html +313 -307
  183. data/doc/TaskJuggler/TextParser/Rule.html +147 -141
  184. data/doc/TaskJuggler/TextParser/StackElement.html +58 -52
  185. data/doc/TaskJuggler/TextParser/State.html +88 -82
  186. data/doc/TaskJuggler/TextParser/StateTransition.html +42 -36
  187. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +20 -14
  188. data/doc/TaskJuggler/TextParser/TokenDoc.html +19 -13
  189. data/doc/TaskJuggler/TextReport.html +80 -74
  190. data/doc/TaskJuggler/TextScanner.html +284 -272
  191. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +14 -8
  192. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +21 -15
  193. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +15 -9
  194. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  195. data/doc/TaskJuggler/TimeSheet.html +123 -117
  196. data/doc/TaskJuggler/TimeSheetReceiver.html +28 -22
  197. data/doc/TaskJuggler/TimeSheetRecord.html +212 -206
  198. data/doc/TaskJuggler/TimeSheetReport.html +206 -199
  199. data/doc/TaskJuggler/TimeSheetSender.html +27 -21
  200. data/doc/TaskJuggler/TimeSheetSummary.html +140 -134
  201. data/doc/TaskJuggler/TimeSheets.html +20 -14
  202. data/doc/TaskJuggler/Tj3AppBase.html +100 -94
  203. data/doc/TaskJuggler/Tj3Client.html +407 -483
  204. data/doc/TaskJuggler/Tj3Daemon.html +116 -107
  205. data/doc/TaskJuggler/Tj3SheetAppBase.html +45 -39
  206. data/doc/TaskJuggler/Tj3SsReceiver.html +31 -25
  207. data/doc/TaskJuggler/Tj3SsSender.html +64 -58
  208. data/doc/TaskJuggler/Tj3TsReceiver.html +31 -25
  209. data/doc/TaskJuggler/Tj3TsSender.html +51 -45
  210. data/doc/TaskJuggler/Tj3TsSummary.html +59 -53
  211. data/doc/TaskJuggler/TjException.html +13 -7
  212. data/doc/TaskJuggler/TjTime.html +444 -438
  213. data/doc/TaskJuggler/TjpExample.html +84 -78
  214. data/doc/TaskJuggler/TjpExportRE.html +356 -349
  215. data/doc/TaskJuggler/TjpSyntaxRules.html +4279 -4151
  216. data/doc/TaskJuggler/URLParameter.html +16 -10
  217. data/doc/TaskJuggler/UserManual.html +185 -179
  218. data/doc/TaskJuggler/VimSyntax.html +144 -138
  219. data/doc/TaskJuggler/WebServer.html +46 -39
  220. data/doc/TaskJuggler/WelcomePage.html +769 -0
  221. data/doc/TaskJuggler/WorkingHours.html +185 -179
  222. data/doc/TaskJuggler/WorkingHoursAttribute.html +42 -36
  223. data/doc/TaskJuggler/XMLBlob.html +21 -15
  224. data/doc/TaskJuggler/XMLComment.html +17 -11
  225. data/doc/TaskJuggler/XMLDocument.html +33 -27
  226. data/doc/TaskJuggler/XMLElement.html +97 -91
  227. data/doc/TaskJuggler/XMLNamedText.html +13 -7
  228. data/doc/TaskJuggler/XMLText.html +32 -26
  229. data/doc/index.html +601 -563
  230. data/doc/lib/AccountScenario_rb.html +5 -3
  231. data/doc/lib/Account_rb.html +5 -3
  232. data/doc/lib/Allocation_rb.html +5 -3
  233. data/doc/lib/AppConfig_rb.html +5 -3
  234. data/doc/lib/AttributeBase_rb.html +5 -3
  235. data/doc/lib/AttributeDefinition_rb.html +5 -3
  236. data/doc/lib/Attributes_rb.html +5 -3
  237. data/doc/lib/BatchProcessor_rb.html +5 -3
  238. data/doc/lib/Booking_rb.html +5 -3
  239. data/doc/lib/ChargeSet_rb.html +5 -3
  240. data/doc/lib/Charge_rb.html +5 -3
  241. data/doc/lib/DataCache_rb.html +5 -3
  242. data/doc/lib/FileList_rb.html +5 -3
  243. data/doc/lib/HTMLDocument_rb.html +5 -3
  244. data/doc/lib/IntervalList_rb.html +69 -0
  245. data/doc/lib/Interval_rb.html +5 -3
  246. data/doc/lib/Journal_rb.html +5 -3
  247. data/doc/lib/KeywordArray_rb.html +5 -3
  248. data/doc/lib/KeywordDocumentation_rb.html +5 -3
  249. data/doc/lib/Limits_rb.html +5 -3
  250. data/doc/lib/LogFile_rb.html +5 -3
  251. data/doc/lib/Log_rb.html +5 -3
  252. data/doc/lib/LogicalExpression_rb.html +5 -3
  253. data/doc/lib/LogicalFunction_rb.html +5 -3
  254. data/doc/lib/LogicalOperation_rb.html +5 -3
  255. data/doc/lib/MacroTable_rb.html +5 -3
  256. data/doc/lib/MessageHandler_rb.html +5 -3
  257. data/doc/lib/ProjectFileParser_rb.html +5 -3
  258. data/doc/lib/ProjectFileScanner_rb.html +5 -3
  259. data/doc/lib/Project_rb.html +5 -3
  260. data/doc/lib/PropertyList_rb.html +5 -3
  261. data/doc/lib/PropertySet_rb.html +5 -3
  262. data/doc/lib/PropertyTreeNode_rb.html +5 -3
  263. data/doc/lib/Query_rb.html +5 -3
  264. data/doc/lib/RTFHandlers_rb.html +5 -3
  265. data/doc/lib/RTFNavigator_rb.html +5 -3
  266. data/doc/lib/RTFQuery_rb.html +5 -3
  267. data/doc/lib/RTFReportLink_rb.html +5 -3
  268. data/doc/lib/RTFReport_rb.html +5 -3
  269. data/doc/lib/RTFWithQuerySupport_rb.html +5 -3
  270. data/doc/lib/RealFormat_rb.html +5 -3
  271. data/doc/lib/ResourceScenario_rb.html +5 -3
  272. data/doc/lib/Resource_rb.html +5 -3
  273. data/doc/lib/RichTextDocument_rb.html +5 -3
  274. data/doc/lib/RichTextElement_rb.html +5 -3
  275. data/doc/lib/RichTextFunctionExample_rb.html +5 -3
  276. data/doc/lib/RichTextFunctionHandler_rb.html +5 -3
  277. data/doc/lib/RichTextParser_rb.html +5 -3
  278. data/doc/lib/RichTextScanner_rb.html +5 -3
  279. data/doc/lib/RichTextSnip_rb.html +5 -3
  280. data/doc/lib/RichTextSyntaxRules_rb.html +5 -3
  281. data/doc/lib/RichText_rb.html +5 -3
  282. data/doc/lib/RuntimeConfig_rb.html +5 -3
  283. data/doc/lib/ScenarioData_rb.html +5 -3
  284. data/doc/lib/Scenario_rb.html +5 -3
  285. data/doc/lib/Scoreboard_rb.html +7 -3
  286. data/doc/lib/SheetHandlerBase_rb.html +5 -3
  287. data/doc/lib/SheetReceiver_rb.html +5 -3
  288. data/doc/lib/SheetSender_rb.html +5 -3
  289. data/doc/lib/ShiftAssignments_rb.html +5 -3
  290. data/doc/lib/ShiftScenario_rb.html +5 -3
  291. data/doc/lib/Shift_rb.html +5 -3
  292. data/doc/lib/SimpleQueryExpander_rb.html +5 -3
  293. data/doc/lib/SourceFileInfo_rb.html +5 -3
  294. data/doc/lib/StatusSheetReceiver_rb.html +5 -3
  295. data/doc/lib/StatusSheetSender_rb.html +5 -3
  296. data/doc/lib/SyntaxReference_rb.html +5 -3
  297. data/doc/lib/TOCEntry_rb.html +5 -3
  298. data/doc/lib/TableColumnDefinition_rb.html +5 -3
  299. data/doc/lib/TableOfContents_rb.html +5 -3
  300. data/doc/lib/TaskDependency_rb.html +5 -3
  301. data/doc/lib/TaskJuggler_rb.html +5 -3
  302. data/doc/lib/TaskScenario_rb.html +5 -3
  303. data/doc/lib/Task_rb.html +5 -3
  304. data/doc/lib/TextFormatter_rb.html +6 -4
  305. data/doc/lib/TextParser/Pattern_rb.html +5 -3
  306. data/doc/lib/TextParser/Rule_rb.html +5 -3
  307. data/doc/lib/TextParser/StackElement_rb.html +5 -3
  308. data/doc/lib/TextParser/State_rb.html +6 -4
  309. data/doc/lib/TextParser/TokenDoc_rb.html +5 -3
  310. data/doc/lib/TextParser_rb.html +5 -3
  311. data/doc/lib/TextScanner_rb.html +5 -3
  312. data/doc/lib/TimeSheetReceiver_rb.html +5 -3
  313. data/doc/lib/TimeSheetSender_rb.html +5 -3
  314. data/doc/lib/TimeSheetSummary_rb.html +6 -4
  315. data/doc/lib/TimeSheets_rb.html +5 -3
  316. data/doc/lib/Tj3AppBase_rb.html +5 -3
  317. data/doc/lib/Tj3Config_rb.html +5 -3
  318. data/doc/lib/Tj3SheetAppBase_rb.html +5 -3
  319. data/doc/lib/TjException_rb.html +5 -3
  320. data/doc/lib/TjTime_rb.html +5 -3
  321. data/doc/lib/TjpExample_rb.html +5 -3
  322. data/doc/lib/TjpSyntaxRules_rb.html +5 -3
  323. data/doc/lib/URLParameter_rb.html +5 -3
  324. data/doc/lib/UTF8String_rb.html +5 -3
  325. data/doc/lib/UserManual_rb.html +5 -3
  326. data/doc/lib/VimSyntax_rb.html +6 -4
  327. data/doc/lib/WorkingHours_rb.html +5 -3
  328. data/doc/lib/XMLDocument_rb.html +5 -3
  329. data/doc/lib/XMLElement_rb.html +5 -3
  330. data/doc/lib/daemon/Daemon_rb.html +5 -3
  331. data/doc/lib/daemon/ProcessIntercom_rb.html +7 -3
  332. data/doc/lib/daemon/ProjectBroker_rb.html +5 -3
  333. data/doc/lib/daemon/ProjectServer_rb.html +5 -3
  334. data/doc/lib/daemon/ReportServer_rb.html +5 -3
  335. data/doc/lib/daemon/ReportServlet_rb.html +69 -0
  336. data/doc/lib/daemon/WebServer_rb.html +9 -3
  337. data/doc/lib/daemon/WelcomePage_rb.html +71 -0
  338. data/doc/lib/deep_copy_rb.html +5 -3
  339. data/doc/lib/reports/CSVFile_rb.html +5 -3
  340. data/doc/lib/reports/CollisionDetector_rb.html +5 -3
  341. data/doc/lib/reports/ColumnTable_rb.html +5 -3
  342. data/doc/lib/reports/GanttChart_rb.html +5 -3
  343. data/doc/lib/reports/GanttContainer_rb.html +5 -3
  344. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +5 -3
  345. data/doc/lib/reports/GanttHeader_rb.html +5 -3
  346. data/doc/lib/reports/GanttLine_rb.html +5 -3
  347. data/doc/lib/reports/GanttLoadStack_rb.html +5 -3
  348. data/doc/lib/reports/GanttMilestone_rb.html +5 -3
  349. data/doc/lib/reports/GanttRouter_rb.html +5 -3
  350. data/doc/lib/reports/GanttTaskBar_rb.html +5 -3
  351. data/doc/lib/reports/HTMLGraphics_rb.html +5 -3
  352. data/doc/lib/reports/Navigator_rb.html +5 -3
  353. data/doc/lib/reports/NikuReport_rb.html +5 -3
  354. data/doc/lib/reports/ReportBase_rb.html +5 -3
  355. data/doc/lib/reports/ReportContext_rb.html +5 -3
  356. data/doc/lib/reports/ReportTableCell_rb.html +5 -3
  357. data/doc/lib/reports/ReportTableColumn_rb.html +5 -3
  358. data/doc/lib/reports/ReportTableLegend_rb.html +5 -3
  359. data/doc/lib/reports/ReportTableLine_rb.html +5 -3
  360. data/doc/lib/reports/ReportTable_rb.html +5 -3
  361. data/doc/lib/reports/Report_rb.html +5 -3
  362. data/doc/lib/reports/ResourceListRE_rb.html +5 -3
  363. data/doc/lib/reports/StatusSheetReport_rb.html +5 -3
  364. data/doc/lib/reports/TableReport_rb.html +5 -3
  365. data/doc/lib/reports/TaskListRE_rb.html +5 -3
  366. data/doc/lib/reports/TextReport_rb.html +5 -3
  367. data/doc/lib/reports/TimeSheetReport_rb.html +5 -3
  368. data/doc/lib/reports/TjpExportRE_rb.html +5 -3
  369. data/doc/lib/{taskjuggler3_rb.html → tj3_rb.html} +7 -5
  370. data/doc/lib/tj3client_rb.html +5 -3
  371. data/doc/lib/tj3d_rb.html +6 -4
  372. data/doc/lib/tj3man_rb.html +5 -3
  373. data/doc/lib/tj3ss_receiver_rb.html +5 -3
  374. data/doc/lib/tj3ss_sender_rb.html +5 -3
  375. data/doc/lib/tj3ts_receiver_rb.html +5 -3
  376. data/doc/lib/tj3ts_sender_rb.html +5 -3
  377. data/doc/lib/tj3ts_summary_rb.html +5 -3
  378. data/examples/tutorial.tjp +13 -5
  379. data/gem_spec.rb +3 -0
  380. data/lib/Account.rb +2 -1
  381. data/lib/AccountScenario.rb +2 -1
  382. data/lib/Allocation.rb +2 -1
  383. data/lib/AppConfig.rb +2 -1
  384. data/lib/AttributeBase.rb +19 -5
  385. data/lib/AttributeDefinition.rb +2 -1
  386. data/lib/Attributes.rb +49 -38
  387. data/lib/BatchProcessor.rb +2 -1
  388. data/lib/Booking.rb +2 -1
  389. data/lib/Charge.rb +2 -1
  390. data/lib/ChargeSet.rb +2 -1
  391. data/lib/DataCache.rb +15 -1
  392. data/lib/FileList.rb +2 -1
  393. data/lib/HTMLDocument.rb +2 -1
  394. data/lib/Interval.rb +2 -1
  395. data/lib/IntervalList.rb +100 -0
  396. data/lib/Journal.rb +8 -2
  397. data/lib/KeywordArray.rb +2 -1
  398. data/lib/KeywordDocumentation.rb +10 -6
  399. data/lib/Limits.rb +2 -1
  400. data/lib/Log.rb +3 -2
  401. data/lib/LogFile.rb +2 -1
  402. data/lib/LogicalExpression.rb +2 -1
  403. data/lib/LogicalFunction.rb +2 -1
  404. data/lib/LogicalOperation.rb +2 -1
  405. data/lib/MacroTable.rb +2 -1
  406. data/lib/MessageHandler.rb +2 -1
  407. data/lib/Project.rb +92 -25
  408. data/lib/ProjectFileParser.rb +7 -2
  409. data/lib/ProjectFileScanner.rb +2 -1
  410. data/lib/PropertyList.rb +2 -1
  411. data/lib/PropertySet.rb +2 -6
  412. data/lib/PropertyTreeNode.rb +22 -44
  413. data/lib/Query.rb +32 -13
  414. data/lib/RTFHandlers.rb +2 -1
  415. data/lib/RTFNavigator.rb +2 -1
  416. data/lib/RTFQuery.rb +3 -2
  417. data/lib/RTFReport.rb +2 -1
  418. data/lib/RTFReportLink.rb +2 -1
  419. data/lib/RTFWithQuerySupport.rb +2 -1
  420. data/lib/RealFormat.rb +2 -1
  421. data/lib/Resource.rb +2 -1
  422. data/lib/ResourceScenario.rb +35 -14
  423. data/lib/RichText.rb +2 -1
  424. data/lib/RichTextDocument.rb +2 -1
  425. data/lib/RichTextElement.rb +2 -1
  426. data/lib/RichTextFunctionExample.rb +2 -1
  427. data/lib/RichTextFunctionHandler.rb +2 -1
  428. data/lib/RichTextParser.rb +2 -1
  429. data/lib/RichTextScanner.rb +2 -1
  430. data/lib/RichTextSnip.rb +2 -1
  431. data/lib/RichTextSyntaxRules.rb +2 -1
  432. data/lib/RuntimeConfig.rb +2 -1
  433. data/lib/Scenario.rb +2 -1
  434. data/lib/ScenarioData.rb +2 -1
  435. data/lib/Scoreboard.rb +27 -8
  436. data/lib/SheetHandlerBase.rb +2 -1
  437. data/lib/SheetReceiver.rb +2 -1
  438. data/lib/SheetSender.rb +2 -1
  439. data/lib/Shift.rb +2 -1
  440. data/lib/ShiftAssignments.rb +2 -1
  441. data/lib/ShiftScenario.rb +2 -1
  442. data/lib/SimpleQueryExpander.rb +2 -1
  443. data/lib/SourceFileInfo.rb +2 -1
  444. data/lib/StatusSheetReceiver.rb +2 -1
  445. data/lib/StatusSheetSender.rb +2 -1
  446. data/lib/SyntaxReference.rb +2 -1
  447. data/lib/TOCEntry.rb +2 -1
  448. data/lib/TableColumnDefinition.rb +9 -2
  449. data/lib/TableOfContents.rb +2 -1
  450. data/lib/Task.rb +2 -1
  451. data/lib/TaskDependency.rb +2 -1
  452. data/lib/TaskJuggler.rb +8 -6
  453. data/lib/TaskScenario.rb +337 -153
  454. data/lib/TextFormatter.rb +3 -2
  455. data/lib/TextParser.rb +7 -2
  456. data/lib/TextParser/Pattern.rb +2 -1
  457. data/lib/TextParser/Rule.rb +2 -1
  458. data/lib/TextParser/StackElement.rb +2 -1
  459. data/lib/TextParser/State.rb +3 -2
  460. data/lib/TextParser/TokenDoc.rb +2 -1
  461. data/lib/TextScanner.rb +12 -5
  462. data/lib/TimeSheetReceiver.rb +2 -1
  463. data/lib/TimeSheetSender.rb +2 -1
  464. data/lib/TimeSheetSummary.rb +3 -2
  465. data/lib/TimeSheets.rb +2 -1
  466. data/lib/Tj3AppBase.rb +6 -5
  467. data/lib/Tj3Config.rb +5 -4
  468. data/lib/Tj3SheetAppBase.rb +2 -1
  469. data/lib/TjException.rb +2 -1
  470. data/lib/TjTime.rb +2 -1
  471. data/lib/TjpExample.rb +2 -1
  472. data/lib/TjpSyntaxRules.rb +264 -65
  473. data/lib/URLParameter.rb +2 -1
  474. data/lib/UTF8String.rb +2 -1
  475. data/lib/UserManual.rb +2 -1
  476. data/lib/VimSyntax.rb +3 -2
  477. data/lib/WorkingHours.rb +2 -1
  478. data/lib/XMLDocument.rb +2 -1
  479. data/lib/XMLElement.rb +2 -1
  480. data/lib/daemon/Daemon.rb +3 -1
  481. data/lib/daemon/ProcessIntercom.rb +3 -1
  482. data/lib/daemon/ProjectBroker.rb +84 -32
  483. data/lib/daemon/ProjectServer.rb +5 -3
  484. data/lib/daemon/ReportServer.rb +8 -5
  485. data/lib/daemon/ReportServlet.rb +166 -0
  486. data/lib/daemon/WebServer.rb +6 -150
  487. data/lib/daemon/WelcomePage.rb +80 -0
  488. data/lib/deep_copy.rb +2 -1
  489. data/lib/reports/CSVFile.rb +2 -1
  490. data/lib/reports/CollisionDetector.rb +2 -1
  491. data/lib/reports/ColumnTable.rb +2 -1
  492. data/lib/reports/GanttChart.rb +2 -1
  493. data/lib/reports/GanttContainer.rb +3 -4
  494. data/lib/reports/GanttHeader.rb +2 -1
  495. data/lib/reports/GanttHeaderScaleItem.rb +2 -1
  496. data/lib/reports/GanttLine.rb +12 -10
  497. data/lib/reports/GanttLoadStack.rb +2 -1
  498. data/lib/reports/GanttMilestone.rb +3 -3
  499. data/lib/reports/GanttRouter.rb +4 -1
  500. data/lib/reports/GanttTaskBar.rb +9 -7
  501. data/lib/reports/HTMLGraphics.rb +2 -1
  502. data/lib/reports/Navigator.rb +2 -1
  503. data/lib/reports/NikuReport.rb +79 -49
  504. data/lib/reports/Report.rb +42 -10
  505. data/lib/reports/ReportBase.rb +2 -1
  506. data/lib/reports/ReportContext.rb +2 -1
  507. data/lib/reports/ReportTable.rb +2 -1
  508. data/lib/reports/ReportTableCell.rb +63 -28
  509. data/lib/reports/ReportTableColumn.rb +2 -1
  510. data/lib/reports/ReportTableLegend.rb +5 -5
  511. data/lib/reports/ReportTableLine.rb +2 -1
  512. data/lib/reports/ResourceListRE.rb +2 -1
  513. data/lib/reports/StatusSheetReport.rb +4 -2
  514. data/lib/reports/TableReport.rb +42 -38
  515. data/lib/reports/TaskListRE.rb +4 -2
  516. data/lib/reports/TextReport.rb +2 -1
  517. data/lib/reports/TimeSheetReport.rb +4 -2
  518. data/lib/reports/TjpExportRE.rb +4 -2
  519. data/lib/{taskjuggler3.rb → tj3.rb} +6 -5
  520. data/lib/tj3client.rb +19 -36
  521. data/lib/tj3d.rb +6 -2
  522. data/lib/tj3man.rb +4 -3
  523. data/lib/tj3ss_receiver.rb +2 -1
  524. data/lib/tj3ss_sender.rb +2 -1
  525. data/lib/tj3ts_receiver.rb +2 -1
  526. data/lib/tj3ts_sender.rb +2 -1
  527. data/lib/tj3ts_summary.rb +2 -1
  528. data/manual/Day_To_Day_Juggling +36 -0
  529. data/manual/How_To_Contribute +9 -4
  530. data/manual/Installation +10 -3
  531. data/manual/TaskJuggler_Internals +0 -2
  532. data/manual/Tutorial +25 -3
  533. data/prj_cfg.rb +4 -2
  534. data/spec/IntervalList_spec.rb +138 -0
  535. data/spec/ProjectBroker_spec.rb +133 -0
  536. data/tasks/changelog.rake +41 -24
  537. data/tasks/csts.rake +1 -0
  538. data/tasks/gem.rake +1 -0
  539. data/tasks/rcov.rake +1 -1
  540. data/tasks/spec.rake +7 -0
  541. data/tasks/test.rake +1 -0
  542. data/test/MessageChecker.rb +2 -1
  543. data/test/TestSuite/CSV-Reports/niku.tjp +70 -0
  544. data/test/TestSuite/CSV-Reports/{celltext-Reference.csv → refs/celltext.csv} +0 -0
  545. data/test/TestSuite/CSV-Reports/refs/niku.csv +5 -0
  546. data/test/TestSuite/CSV-Reports/{resourcereport-Reference.csv → refs/resourcereport.csv} +0 -0
  547. data/test/TestSuite/CSV-Reports/{resourcereport_with_tasks-Reference.csv → refs/resourcereport_with_tasks.csv} +0 -0
  548. data/test/TestSuite/CSV-Reports/{sortByTree-Reference.csv → refs/sortByTree.csv} +0 -0
  549. data/test/TestSuite/CSV-Reports/{sortBy_duration.down-Reference.csv → refs/sortBy_duration.down.csv} +0 -0
  550. data/test/TestSuite/CSV-Reports/{sortBy_effort.up-Reference.csv → refs/sortBy_effort.up.csv} +0 -0
  551. data/test/TestSuite/CSV-Reports/{sortBy_plan.start.down-Reference.csv → refs/sortBy_plan.start.down.csv} +0 -0
  552. data/test/TestSuite/CSV-Reports/{taskreport-Reference.csv → refs/taskreport.csv} +0 -0
  553. data/test/TestSuite/CSV-Reports/{taskreport_with_resources-Reference.csv → refs/taskreport_with_resources.csv} +0 -0
  554. data/test/TestSuite/CSV-Reports/{weekly-Reference.csv → refs/weekly.csv} +0 -0
  555. data/test/TestSuite/HTML-Reports/Alerts.tjp +12 -0
  556. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
  557. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +1 -2
  558. data/test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp +77 -0
  559. data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +40 -0
  560. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +2 -2
  561. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +3 -4
  562. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +2 -2
  563. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +8 -7
  564. data/test/TestSuite/Scheduler/Errors/onend_wrong_direction.tjp +19 -0
  565. data/test/TestSuite/Scheduler/Errors/onstart_wrong_direction.tjp +18 -0
  566. data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +1 -2
  567. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/boss_2002-03-02.tji +46 -0
  568. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/dev2_2002-03-02.tji +22 -0
  569. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/resources.yml +11 -0
  570. data/test/TestSuite/StatusSheets/StatusSheetTemplates/acceptable_intervals +1 -0
  571. data/test/TestSuite/StatusSheets/sender.log +256 -0
  572. data/test/TestSuite/StatusSheets/statussheets.log +9 -0
  573. data/test/TestSuite/StatusSheets/tj3d.log +395 -0
  574. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +2 -0
  575. data/test/TestSuite/Syntax/Correct/Niku.tjp +6 -1
  576. data/test/TestSuite/Syntax/Correct/Scenario.tjp +4 -1
  577. data/test/TestSuite/Syntax/Correct/Supplement.tjp +12 -5
  578. data/test/TestSuite/Syntax/Correct/TaskPrefix.tji +3 -0
  579. data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +24 -0
  580. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -2
  581. data/test/TestSuite/Syntax/Correct/tutorial.tjp +15 -5
  582. data/test/all.rb +2 -4
  583. data/test/test_BatchProcessor.rb +2 -1
  584. data/test/test_CSV-Reports.rb +34 -23
  585. data/test/test_CSVFile.rb +2 -1
  586. data/test/test_CollisionDetector.rb +3 -2
  587. data/test/test_Journal.rb +2 -1
  588. data/test/test_Limits.rb +2 -1
  589. data/test/test_LogicalExpression.rb +2 -1
  590. data/test/test_MacroTable.rb +2 -1
  591. data/test/test_Project.rb +3 -2
  592. data/test/test_ProjectFileScanner.rb +2 -1
  593. data/test/test_PropertySet.rb +2 -1
  594. data/test/test_Query.rb +2 -1
  595. data/test/test_RealFormat.rb +2 -1
  596. data/test/test_ReportGenerator.rb +2 -1
  597. data/test/test_RichText.rb +2 -1
  598. data/test/test_Scheduler.rb +2 -1
  599. data/test/test_ShiftAssignments.rb +2 -1
  600. data/test/test_SimpleQueryExpander.rb +2 -1
  601. data/test/test_Syntax.rb +2 -1
  602. data/test/test_TextFormatter.rb +3 -2
  603. data/test/test_TjTime.rb +2 -1
  604. data/test/test_TjpExample.rb +2 -1
  605. data/test/test_URLParameter.rb +2 -1
  606. data/test/test_UTF8String.rb +2 -1
  607. data/test/test_WorkingHours.rb +2 -1
  608. data/test/test_deep_copy.rb +2 -1
  609. metadata +74 -20
  610. data/doc/StringIO.html +0 -595
  611. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +0 -46
  612. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +0 -51
  613. data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +0 -11
@@ -127,6 +127,8 @@
127
127
 
128
128
  <li><a href="../../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
129
129
 
130
+ <li><a href="../../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
131
+
130
132
  <li><a href="../../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
131
133
 
132
134
  <li><a href="../../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -205,6 +207,8 @@
205
207
 
206
208
  <li><a href="../../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
207
209
 
210
+ <li><a href="../../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
211
+
208
212
  <li><a href="../../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
209
213
 
210
214
  <li><a href="../../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -237,6 +241,8 @@
237
241
 
238
242
  <li><a href="../../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
239
243
 
244
+ <li><a href="../../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
245
+
240
246
  <li><a href="../../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
241
247
 
242
248
  <li><a href="../../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -517,6 +523,8 @@
517
523
 
518
524
  <li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
519
525
 
526
+ <li><a href="../../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
527
+
520
528
  <li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
521
529
 
522
530
  <li><a href="../../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -543,8 +551,6 @@
543
551
 
544
552
  <li><a href="../../String.html">String</a></li>
545
553
 
546
- <li><a href="../../StringIO.html">StringIO</a></li>
547
-
548
554
  </ul>
549
555
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
550
556
  </div>
@@ -596,12 +602,12 @@ operations on Strings.
596
602
  <div class="method-source-code"
597
603
  id="new-source">
598
604
  <pre>
599
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 177</span>
600
- 177: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">buffer</span>)
601
- 178: <span class="ruby-keyword kw">super</span>()
602
- 179: <span class="ruby-ivar">@stream</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">buffer</span>)
603
- 180: <span class="ruby-constant">Log</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Parsing buffer #{buffer[0, 20]} ...&quot;</span>
604
- 181: <span class="ruby-keyword kw">end</span></pre>
605
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 178</span>
606
+ 178: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">buffer</span>)
607
+ 179: <span class="ruby-keyword kw">super</span>()
608
+ 180: <span class="ruby-ivar">@stream</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">buffer</span>)
609
+ 181: <span class="ruby-constant">Log</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Parsing buffer #{buffer[0, 20]} ...&quot;</span>
610
+ 182: <span class="ruby-keyword kw">end</span></pre>
605
611
  </div>
606
612
 
607
613
  </div>
@@ -129,6 +129,8 @@
129
129
 
130
130
  <li><a href="../../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
131
131
 
132
+ <li><a href="../../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
133
+
132
134
  <li><a href="../../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
133
135
 
134
136
  <li><a href="../../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -207,6 +209,8 @@
207
209
 
208
210
  <li><a href="../../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
209
211
 
212
+ <li><a href="../../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
213
+
210
214
  <li><a href="../../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
211
215
 
212
216
  <li><a href="../../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -239,6 +243,8 @@
239
243
 
240
244
  <li><a href="../../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
241
245
 
246
+ <li><a href="../../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
247
+
242
248
  <li><a href="../../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
243
249
 
244
250
  <li><a href="../../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -519,6 +525,8 @@
519
525
 
520
526
  <li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
521
527
 
528
+ <li><a href="../../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
529
+
522
530
  <li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
523
531
 
524
532
  <li><a href="../../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -545,8 +553,6 @@
545
553
 
546
554
  <li><a href="../../String.html">String</a></li>
547
555
 
548
- <li><a href="../../StringIO.html">StringIO</a></li>
549
-
550
556
  </ul>
551
557
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
552
558
  </div>
@@ -619,14 +625,14 @@ operations on files.
619
625
  <div class="method-source-code"
620
626
  id="new-source">
621
627
  <pre>
622
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 159</span>
623
- 159: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">fileName</span>)
624
- 160: <span class="ruby-keyword kw">super</span>()
625
- 161: <span class="ruby-ivar">@fileName</span> = <span class="ruby-identifier">fileName</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">untaint</span>
626
- 162: <span class="ruby-ivar">@stream</span> = <span class="ruby-identifier">fileName</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">$stdin</span> <span class="ruby-operator">:</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@fileName</span>, <span class="ruby-value str">'r'</span>)
627
- 163: <span class="ruby-constant">Log</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Parsing file #{@fileName} ...&quot;</span>
628
- 164: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">&quot;Reading file #{fileName}&quot;</span>)
629
- 165: <span class="ruby-keyword kw">end</span></pre>
628
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 160</span>
629
+ 160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">fileName</span>)
630
+ 161: <span class="ruby-keyword kw">super</span>()
631
+ 162: <span class="ruby-ivar">@fileName</span> = <span class="ruby-identifier">fileName</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">untaint</span>
632
+ 163: <span class="ruby-ivar">@stream</span> = <span class="ruby-identifier">fileName</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">$stdin</span> <span class="ruby-operator">:</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@fileName</span>, <span class="ruby-value str">'r'</span>)
633
+ 164: <span class="ruby-constant">Log</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Parsing file #{@fileName} ...&quot;</span>
634
+ 165: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">&quot;Reading file #{fileName}&quot;</span>)
635
+ 166: <span class="ruby-keyword kw">end</span></pre>
630
636
  </div>
631
637
 
632
638
  </div>
@@ -663,11 +669,11 @@ operations on files.
663
669
  <div class="method-source-code"
664
670
  id="close-source">
665
671
  <pre>
666
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 167</span>
667
- 167: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
668
- 168: <span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@stream</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">$stdin</span>
669
- 169: <span class="ruby-keyword kw">super</span>
670
- 170: <span class="ruby-keyword kw">end</span></pre>
672
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 168</span>
673
+ 168: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
674
+ 169: <span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@stream</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">$stdin</span>
675
+ 170: <span class="ruby-keyword kw">super</span>
676
+ 171: <span class="ruby-keyword kw">end</span></pre>
671
677
  </div>
672
678
 
673
679
  </div>
@@ -127,6 +127,8 @@
127
127
 
128
128
  <li><a href="../../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
129
129
 
130
+ <li><a href="../../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
131
+
130
132
  <li><a href="../../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
131
133
 
132
134
  <li><a href="../../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -205,6 +207,8 @@
205
207
 
206
208
  <li><a href="../../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
207
209
 
210
+ <li><a href="../../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
211
+
208
212
  <li><a href="../../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
209
213
 
210
214
  <li><a href="../../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -237,6 +241,8 @@
237
241
 
238
242
  <li><a href="../../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
239
243
 
244
+ <li><a href="../../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
245
+
240
246
  <li><a href="../../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
241
247
 
242
248
  <li><a href="../../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -517,6 +523,8 @@
517
523
 
518
524
  <li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
519
525
 
526
+ <li><a href="../../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
527
+
520
528
  <li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
521
529
 
522
530
  <li><a href="../../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -543,8 +551,6 @@
543
551
 
544
552
  <li><a href="../../String.html">String</a></li>
545
553
 
546
- <li><a href="../../StringIO.html">StringIO</a></li>
547
-
548
554
  </ul>
549
555
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
550
556
  </div>
@@ -658,13 +664,13 @@
658
664
  <div class="method-source-code"
659
665
  id="new-source">
660
666
  <pre>
661
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 37</span>
662
- 37: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">endPos</span>)
663
- 38: <span class="ruby-ivar">@macro</span> = <span class="ruby-identifier">macro</span>
664
- 39: <span class="ruby-ivar">@args</span> = <span class="ruby-identifier">args</span>
665
- 40: <span class="ruby-ivar">@text</span> = <span class="ruby-identifier">text</span>
666
- 41: <span class="ruby-ivar">@endPos</span> = <span class="ruby-identifier">endPos</span>
667
- 42: <span class="ruby-keyword kw">end</span></pre>
667
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 38</span>
668
+ 38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">endPos</span>)
669
+ 39: <span class="ruby-ivar">@macro</span> = <span class="ruby-identifier">macro</span>
670
+ 40: <span class="ruby-ivar">@args</span> = <span class="ruby-identifier">args</span>
671
+ 41: <span class="ruby-ivar">@text</span> = <span class="ruby-identifier">text</span>
672
+ 42: <span class="ruby-ivar">@endPos</span> = <span class="ruby-identifier">endPos</span>
673
+ 43: <span class="ruby-keyword kw">end</span></pre>
668
674
  </div>
669
675
 
670
676
  </div>
@@ -143,6 +143,8 @@
143
143
 
144
144
  <li><a href="../../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
145
145
 
146
+ <li><a href="../../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
147
+
146
148
  <li><a href="../../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
147
149
 
148
150
  <li><a href="../../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -221,6 +223,8 @@
221
223
 
222
224
  <li><a href="../../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
223
225
 
226
+ <li><a href="../../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
227
+
224
228
  <li><a href="../../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
225
229
 
226
230
  <li><a href="../../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -253,6 +257,8 @@
253
257
 
254
258
  <li><a href="../../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
255
259
 
260
+ <li><a href="../../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
261
+
256
262
  <li><a href="../../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
257
263
 
258
264
  <li><a href="../../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -533,6 +539,8 @@
533
539
 
534
540
  <li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
535
541
 
542
+ <li><a href="../../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
543
+
536
544
  <li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
537
545
 
538
546
  <li><a href="../../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -559,8 +567,6 @@
559
567
 
560
568
  <li><a href="../../String.html">String</a></li>
561
569
 
562
- <li><a href="../../StringIO.html">StringIO</a></li>
563
-
564
570
  </ul>
565
571
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
566
572
  </div>
@@ -653,17 +659,17 @@ completely processed.
653
659
  <div class="method-source-code"
654
660
  id="new-source">
655
661
  <pre>
656
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 56</span>
657
- 56: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
658
- 57: <span class="ruby-ivar">@fileName</span> = <span class="ruby-keyword kw">nil</span>
659
- 58: <span class="ruby-ivar">@stream</span> = <span class="ruby-keyword kw">nil</span>
660
- 59: <span class="ruby-ivar">@line</span> = <span class="ruby-keyword kw">nil</span>
661
- 60: <span class="ruby-ivar">@endPos</span> = <span class="ruby-value">1</span>
662
- 61: <span class="ruby-ivar">@scanner</span> = <span class="ruby-keyword kw">nil</span>
663
- 62: <span class="ruby-ivar">@wrapped</span> = <span class="ruby-keyword kw">false</span>
664
- 63: <span class="ruby-ivar">@macroStack</span> = []
665
- 64: <span class="ruby-ivar">@nextMacroEnd</span> = <span class="ruby-keyword kw">nil</span>
666
- 65: <span class="ruby-keyword kw">end</span></pre>
662
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 57</span>
663
+ 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
664
+ 58: <span class="ruby-ivar">@fileName</span> = <span class="ruby-keyword kw">nil</span>
665
+ 59: <span class="ruby-ivar">@stream</span> = <span class="ruby-keyword kw">nil</span>
666
+ 60: <span class="ruby-ivar">@line</span> = <span class="ruby-keyword kw">nil</span>
667
+ 61: <span class="ruby-ivar">@endPos</span> = <span class="ruby-value">1</span>
668
+ 62: <span class="ruby-ivar">@scanner</span> = <span class="ruby-keyword kw">nil</span>
669
+ 63: <span class="ruby-ivar">@wrapped</span> = <span class="ruby-keyword kw">false</span>
670
+ 64: <span class="ruby-ivar">@macroStack</span> = []
671
+ 65: <span class="ruby-ivar">@nextMacroEnd</span> = <span class="ruby-keyword kw">nil</span>
672
+ 66: <span class="ruby-keyword kw">end</span></pre>
667
673
  </div>
668
674
 
669
675
  </div>
@@ -700,10 +706,10 @@ completely processed.
700
706
  <div class="method-source-code"
701
707
  id="close-source">
702
708
  <pre>
703
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 67</span>
704
- 67: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
705
- 68: <span class="ruby-ivar">@stream</span> = <span class="ruby-keyword kw">nil</span>
706
- 69: <span class="ruby-keyword kw">end</span></pre>
709
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 68</span>
710
+ 68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
711
+ 69: <span class="ruby-ivar">@stream</span> = <span class="ruby-keyword kw">nil</span>
712
+ 70: <span class="ruby-keyword kw">end</span></pre>
707
713
  </div>
708
714
 
709
715
  </div>
@@ -734,10 +740,10 @@ completely processed.
734
740
  <div class="method-source-code"
735
741
  id="dirname-source">
736
742
  <pre>
737
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 131</span>
738
- 131: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dirname</span>
739
- 132: <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>
740
- 133: <span class="ruby-keyword kw">end</span></pre>
743
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 132</span>
744
+ 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dirname</span>
745
+ 133: <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>
746
+ 134: <span class="ruby-keyword kw">end</span></pre>
741
747
  </div>
742
748
 
743
749
  </div>
@@ -768,10 +774,10 @@ completely processed.
768
774
  <div class="method-source-code"
769
775
  id="eof--source">
770
776
  <pre>
771
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 127</span>
772
- 127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eof?</span>
773
- 128: <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>
774
- 129: <span class="ruby-keyword kw">end</span></pre>
777
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 128</span>
778
+ 128: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eof?</span>
779
+ 129: <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>
780
+ 130: <span class="ruby-keyword kw">end</span></pre>
775
781
  </div>
776
782
 
777
783
  </div>
@@ -802,20 +808,20 @@ completely processed.
802
808
  <div class="method-source-code"
803
809
  id="inject-acro-source">
804
810
  <pre>
805
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 71</span>
806
- 71: <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>)
807
- 72: <span class="ruby-identifier">pos</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span>
808
- 73: <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>
809
- 74: <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>]
810
- 75: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">StringScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@line</span>)
811
- 76: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">pos</span>
812
- 77:
813
- 78: <span class="ruby-comment cmt"># Simple detection for recursive macro calls.</span>
814
- 79: <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>
815
- 80:
816
- 81: <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>)
817
- 82: <span class="ruby-keyword kw">true</span>
818
- 83: <span class="ruby-keyword kw">end</span></pre>
811
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 72</span>
812
+ 72: <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>)
813
+ 73: <span class="ruby-identifier">pos</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span>
814
+ 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>
815
+ 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>]
816
+ 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>)
817
+ 77: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">pos</span>
818
+ 78:
819
+ 79: <span class="ruby-comment cmt"># Simple detection for recursive macro calls.</span>
820
+ 80: <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>
821
+ 81:
822
+ 82: <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>)
823
+ 83: <span class="ruby-keyword kw">true</span>
824
+ 84: <span class="ruby-keyword kw">end</span></pre>
819
825
  </div>
820
826
 
821
827
  </div>
@@ -848,12 +854,12 @@ Return the already processed part of the current line.
848
854
  <div class="method-source-code"
849
855
  id="line-source">
850
856
  <pre>
851
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 146</span>
852
- 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">line</span>
853
- 147: <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>
854
- 148:
855
- 149: <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>)]
856
- 150: <span class="ruby-keyword kw">end</span></pre>
857
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 147</span>
858
+ 147: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">line</span>
859
+ 148: <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>
860
+ 149:
861
+ 150: <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>)]
862
+ 151: <span class="ruby-keyword kw">end</span></pre>
857
863
  </div>
858
864
 
859
865
  </div>
@@ -886,15 +892,15 @@ Return the number of the currently processed line.
886
892
  <div class="method-source-code"
887
893
  id="line-o-source">
888
894
  <pre>
889
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 136</span>
890
- 136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lineNo</span>
891
- 137: <span class="ruby-comment cmt"># The IO object counts the lines for us by counting the gets() calls.</span>
892
- 138: <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>
893
- 139: <span class="ruby-comment cmt"># If we've just read the LF, we have to add 1. The LF can only be the</span>
894
- 140: <span class="ruby-comment cmt"># last character of the line.</span>
895
- 141: <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>
896
- 142: <span class="ruby-identifier">currentLine</span>
897
- 143: <span class="ruby-keyword kw">end</span></pre>
895
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 137</span>
896
+ 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lineNo</span>
897
+ 138: <span class="ruby-comment cmt"># The IO object counts the lines for us by counting the gets() calls.</span>
898
+ 139: <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>
899
+ 140: <span class="ruby-comment cmt"># If we've just read the LF, we have to add 1. The LF can only be the</span>
900
+ 141: <span class="ruby-comment cmt"># last character of the line.</span>
901
+ 142: <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>
902
+ 143: <span class="ruby-identifier">currentLine</span>
903
+ 144: <span class="ruby-keyword kw">end</span></pre>
898
904
  </div>
899
905
 
900
906
  </div>
@@ -925,10 +931,10 @@ Return the number of the currently processed line.
925
931
  <div class="method-source-code"
926
932
  id="peek-source">
927
933
  <pre>
928
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 123</span>
929
- 123: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">peek</span>(<span class="ruby-identifier">n</span>)
930
- 124: <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>
931
- 125: <span class="ruby-keyword kw">end</span></pre>
934
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 124</span>
935
+ 124: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">peek</span>(<span class="ruby-identifier">n</span>)
936
+ 125: <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>
937
+ 126: <span class="ruby-keyword kw">end</span></pre>
932
938
  </div>
933
939
 
934
940
  </div>
@@ -959,44 +965,44 @@ Return the number of the currently processed line.
959
965
  <div class="method-source-code"
960
966
  id="scan-source">
961
967
  <pre>
962
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 85</span>
963
- 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>)
964
- 86: <span class="ruby-comment cmt"># We read the file line by line with gets(). If we don't have a line</span>
965
- 87: <span class="ruby-comment cmt"># yet or we've reached the end of a line, we get the next one.</span>
966
- 88: <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>
967
- 89: <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>)
968
- 90: <span class="ruby-comment cmt"># Update activity meter about every 1024 lines.</span>
969
- 91: <span class="ruby-constant">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>
970
- 92: <span class="ruby-comment cmt"># Check for DOS or Mac end of line signatures.</span>
971
- 93: <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>
972
- 94: <span class="ruby-comment cmt"># Mac: Convert CR into LF</span>
973
- 95: <span class="ruby-ivar">@line</span>[<span class="ruby-value">1</span>] = <span class="ruby-value">\n\</span>
974
- 96: <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>
975
- 97: <span class="ruby-comment cmt"># DOS: Convert CR+LF into LF</span>
976
- 98: <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>
977
- 99: <span class="ruby-keyword kw">end</span>
978
- 100: <span class="ruby-keyword kw">else</span>
979
- 101: <span class="ruby-comment cmt"># We've reached the end of the current file.</span>
980
- 102: <span class="ruby-ivar">@scanner</span> = <span class="ruby-keyword kw">nil</span>
981
- 103: <span class="ruby-comment cmt"># Return special EOF symbol.</span>
982
- 104: <span class="ruby-keyword kw">return</span> <span class="ruby-value">:scannerEOF</span>
983
- 105: <span class="ruby-keyword kw">end</span>
984
- 106: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">StringScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@line</span>)
985
- 107: <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>
986
- 108: <span class="ruby-keyword kw">end</span>
987
- 109: <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>
988
- 110: <span class="ruby-comment cmt">#puts &quot;#{re.to_s[0..20]}: [#{token}]&quot;</span>
989
- 111:
990
- 112: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@nextMacroEnd</span>
991
- 113: <span class="ruby-identifier">pos</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span>
992
- 114: <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>
993
- 115: <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">pop</span>
994
- 116: <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>
995
- 117: <span class="ruby-keyword kw">end</span>
996
- 118: <span class="ruby-keyword kw">end</span>
997
- 119:
998
- 120: <span class="ruby-identifier">token</span>
999
- 121: <span class="ruby-keyword kw">end</span></pre>
968
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 86</span>
969
+ 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>)
970
+ 87: <span class="ruby-comment cmt"># We read the file line by line with gets(). If we don't have a line</span>
971
+ 88: <span class="ruby-comment cmt"># yet or we've reached the end of a line, we get the next one.</span>
972
+ 89: <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>
973
+ 90: <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>)
974
+ 91: <span class="ruby-comment cmt"># Update activity meter about every 1024 lines.</span>
975
+ 92: <span class="ruby-constant">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>
976
+ 93: <span class="ruby-comment cmt"># Check for DOS or Mac end of line signatures.</span>
977
+ 94: <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>
978
+ 95: <span class="ruby-comment cmt"># Mac: Convert CR into LF</span>
979
+ 96: <span class="ruby-ivar">@line</span>[<span class="ruby-value">1</span>] = <span class="ruby-value">\n\</span>
980
+ 97: <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>
981
+ 98: <span class="ruby-comment cmt"># DOS: Convert CR+LF into LF</span>
982
+ 99: <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>
983
+ 100: <span class="ruby-keyword kw">end</span>
984
+ 101: <span class="ruby-keyword kw">else</span>
985
+ 102: <span class="ruby-comment cmt"># We've reached the end of the current file.</span>
986
+ 103: <span class="ruby-ivar">@scanner</span> = <span class="ruby-keyword kw">nil</span>
987
+ 104: <span class="ruby-comment cmt"># Return special EOF symbol.</span>
988
+ 105: <span class="ruby-keyword kw">return</span> <span class="ruby-value">:scannerEOF</span>
989
+ 106: <span class="ruby-keyword kw">end</span>
990
+ 107: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">StringScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@line</span>)
991
+ 108: <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>
992
+ 109: <span class="ruby-keyword kw">end</span>
993
+ 110: <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>
994
+ 111: <span class="ruby-comment cmt">#puts &quot;#{re.to_s[0..20]}: [#{token}]&quot;</span>
995
+ 112:
996
+ 113: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@nextMacroEnd</span>
997
+ 114: <span class="ruby-identifier">pos</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span>
998
+ 115: <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>
999
+ 116: <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">pop</span>
1000
+ 117: <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>
1001
+ 118: <span class="ruby-keyword kw">end</span>
1002
+ 119: <span class="ruby-keyword kw">end</span>
1003
+ 120:
1004
+ 121: <span class="ruby-identifier">token</span>
1005
+ 122: <span class="ruby-keyword kw">end</span></pre>
1000
1006
  </div>
1001
1007
 
1002
1008
  </div>