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
@@ -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>
@@ -663,32 +669,32 @@ Interval(a, a) Interval.new(iv) | -> Interval(iv.start, iv.end)
663
669
  <div class="method-source-code"
664
670
  id="new-source">
665
671
  <pre>
666
- <span class="ruby-comment cmt"># File lib/Interval.rb, line 32</span>
667
- 32: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(*<span class="ruby-identifier">args</span>)
668
- 33: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
669
- 34: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
670
- 35: <span class="ruby-comment cmt"># Just one argument, a date</span>
671
- 36: <span class="ruby-ivar">@start</span> = <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
672
- 37: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Interval</span>)
673
- 38: <span class="ruby-comment cmt"># Just one argument, an Interval</span>
674
- 39: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">start</span>
675
- 40: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">end</span>
676
- 41: <span class="ruby-keyword kw">else</span>
677
- 42: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Illegal argument&quot;</span>
678
- 43: <span class="ruby-keyword kw">end</span>
679
- 44: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
680
- 45: <span class="ruby-comment cmt"># Two arguments, a start and end date</span>
681
- 46: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
682
- 47: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>]
683
- 48: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Interval start must be a date&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
684
- 49: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Interval end must be a date&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@end</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
685
- 50: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@start</span>
686
- 51: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Invalid interval&quot;</span>
687
- 52: <span class="ruby-keyword kw">end</span>
688
- 53: <span class="ruby-keyword kw">else</span>
689
- 54: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Illegal arguments&quot;</span>
690
- 55: <span class="ruby-keyword kw">end</span>
691
- 56: <span class="ruby-keyword kw">end</span></pre>
672
+ <span class="ruby-comment cmt"># File lib/Interval.rb, line 33</span>
673
+ 33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(*<span class="ruby-identifier">args</span>)
674
+ 34: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
675
+ 35: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
676
+ 36: <span class="ruby-comment cmt"># Just one argument, a date</span>
677
+ 37: <span class="ruby-ivar">@start</span> = <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
678
+ 38: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Interval</span>)
679
+ 39: <span class="ruby-comment cmt"># Just one argument, an Interval</span>
680
+ 40: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">start</span>
681
+ 41: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">end</span>
682
+ 42: <span class="ruby-keyword kw">else</span>
683
+ 43: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Illegal argument&quot;</span>
684
+ 44: <span class="ruby-keyword kw">end</span>
685
+ 45: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
686
+ 46: <span class="ruby-comment cmt"># Two arguments, a start and end date</span>
687
+ 47: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
688
+ 48: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">1</span>]
689
+ 49: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Interval start must be a date&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
690
+ 50: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Interval end must be a date&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@end</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
691
+ 51: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@start</span>
692
+ 52: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Invalid interval&quot;</span>
693
+ 53: <span class="ruby-keyword kw">end</span>
694
+ 54: <span class="ruby-keyword kw">else</span>
695
+ 55: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Illegal arguments&quot;</span>
696
+ 56: <span class="ruby-keyword kw">end</span>
697
+ 57: <span class="ruby-keyword kw">end</span></pre>
692
698
  </div>
693
699
 
694
700
  </div>
@@ -729,15 +735,15 @@ href="Interval.html">Interval</a> objects.
729
735
  <div class="method-source-code"
730
736
  id="--source">
731
737
  <pre>
732
- <span class="ruby-comment cmt"># File lib/Interval.rb, line 107</span>
733
- 107: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;=&gt;</span>(<span class="ruby-identifier">iv</span>)
734
- 108: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>
735
- 109: <span class="ruby-value">1</span>
736
- 110: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@start</span>
737
- 111: <span class="ruby-value">1</span>
738
- 112: <span class="ruby-keyword kw">end</span>
739
- 113: <span class="ruby-value">0</span>
740
- 114: <span class="ruby-keyword kw">end</span></pre>
738
+ <span class="ruby-comment cmt"># File lib/Interval.rb, line 108</span>
739
+ 108: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;=&gt;</span>(<span class="ruby-identifier">iv</span>)
740
+ 109: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>
741
+ 110: <span class="ruby-value">1</span>
742
+ 111: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@start</span>
743
+ 112: <span class="ruby-value">1</span>
744
+ 113: <span class="ruby-keyword kw">end</span>
745
+ 114: <span class="ruby-value">0</span>
746
+ 115: <span class="ruby-keyword kw">end</span></pre>
741
747
  </div>
742
748
 
743
749
  </div>
@@ -771,10 +777,10 @@ describes an identical time period.
771
777
  <div class="method-source-code"
772
778
  id="--source">
773
779
  <pre>
774
- <span class="ruby-comment cmt"># File lib/Interval.rb, line 117</span>
775
- 117: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">iv</span>)
776
- 118: <span class="ruby-ivar">@start</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span>
777
- 119: <span class="ruby-keyword kw">end</span></pre>
780
+ <span class="ruby-comment cmt"># File lib/Interval.rb, line 118</span>
781
+ 118: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">iv</span>)
782
+ 119: <span class="ruby-ivar">@start</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span>
783
+ 120: <span class="ruby-keyword kw">end</span></pre>
778
784
  </div>
779
785
 
780
786
  </div>
@@ -808,18 +814,18 @@ self. If <em>iv</em> does not directly attach to self, just return self.
808
814
  <div class="method-source-code"
809
815
  id="combine-source">
810
816
  <pre>
811
- <span class="ruby-comment cmt"># File lib/Interval.rb, line 93</span>
812
- 93: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">combine</span>(<span class="ruby-identifier">iv</span>)
813
- 94: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@start</span>
814
- 95: <span class="ruby-comment cmt"># Prepend iv</span>
815
- 96: <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span> <span class="ruby-constant">Interval</span>(<span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>, <span class="ruby-ivar">@end</span>)
816
- 97: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>
817
- 98: <span class="ruby-comment cmt"># Append iv</span>
818
- 99: <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span> <span class="ruby-constant">Interval</span>(<span class="ruby-ivar">@start</span>, <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span>)
819
- 100: <span class="ruby-keyword kw">else</span>
820
- 101: <span class="ruby-keyword kw">self</span>
821
- 102: <span class="ruby-keyword kw">end</span>
822
- 103: <span class="ruby-keyword kw">end</span></pre>
817
+ <span class="ruby-comment cmt"># File lib/Interval.rb, line 94</span>
818
+ 94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">combine</span>(<span class="ruby-identifier">iv</span>)
819
+ 95: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@start</span>
820
+ 96: <span class="ruby-comment cmt"># Prepend iv</span>
821
+ 97: <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span> <span class="ruby-constant">Interval</span>(<span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>, <span class="ruby-ivar">@end</span>)
822
+ 98: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>
823
+ 99: <span class="ruby-comment cmt"># Append iv</span>
824
+ 100: <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span> <span class="ruby-constant">Interval</span>(<span class="ruby-ivar">@start</span>, <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span>)
825
+ 101: <span class="ruby-keyword kw">else</span>
826
+ 102: <span class="ruby-keyword kw">self</span>
827
+ 103: <span class="ruby-keyword kw">end</span>
828
+ 104: <span class="ruby-keyword kw">end</span></pre>
823
829
  </div>
824
830
 
825
831
  </div>
@@ -855,14 +861,14 @@ href="Interval.html">Interval</a>.
855
861
  <div class="method-source-code"
856
862
  id="contains--source">
857
863
  <pre>
858
- <span class="ruby-comment cmt"># File lib/Interval.rb, line 65</span>
859
- 65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">contains?</span>(<span class="ruby-identifier">arg</span>)
860
- 66: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
861
- 67: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
862
- 68: <span class="ruby-keyword kw">else</span>
863
- 69: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-ivar">@end</span>
864
- 70: <span class="ruby-keyword kw">end</span>
865
- 71: <span class="ruby-keyword kw">end</span></pre>
864
+ <span class="ruby-comment cmt"># File lib/Interval.rb, line 66</span>
865
+ 66: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">contains?</span>(<span class="ruby-identifier">arg</span>)
866
+ 67: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
867
+ 68: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
868
+ 69: <span class="ruby-keyword kw">else</span>
869
+ 70: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-ivar">@end</span>
870
+ 71: <span class="ruby-keyword kw">end</span>
871
+ 72: <span class="ruby-keyword kw">end</span></pre>
866
872
  </div>
867
873
 
868
874
  </div>
@@ -895,10 +901,10 @@ Return the duration of the <a href="Interval.html">Interval</a>.
895
901
  <div class="method-source-code"
896
902
  id="duration-source">
897
903
  <pre>
898
- <span class="ruby-comment cmt"># File lib/Interval.rb, line 59</span>
899
- 59: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">duration</span>
900
- 60: <span class="ruby-ivar">@end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span>
901
- 61: <span class="ruby-keyword kw">end</span></pre>
904
+ <span class="ruby-comment cmt"># File lib/Interval.rb, line 60</span>
905
+ 60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">duration</span>
906
+ 61: <span class="ruby-ivar">@end</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@start</span>
907
+ 62: <span class="ruby-keyword kw">end</span></pre>
902
908
  </div>
903
909
 
904
910
  </div>
@@ -933,12 +939,12 @@ there is no overlap, nil is returned.
933
939
  <div class="method-source-code"
934
940
  id="intersection-source">
935
941
  <pre>
936
- <span class="ruby-comment cmt"># File lib/Interval.rb, line 85</span>
937
- 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">intersection</span>(<span class="ruby-identifier">iv</span>)
938
- 86: <span class="ruby-identifier">newStart</span> = <span class="ruby-ivar">@start</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>
939
- 87: <span class="ruby-identifier">newEnd</span> = <span class="ruby-ivar">@end</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span>
940
- 88: <span class="ruby-identifier">newStart</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">newEnd</span> <span class="ruby-operator">?</span> <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">newStart</span>, <span class="ruby-identifier">newEnd</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
941
- 89: <span class="ruby-keyword kw">end</span></pre>
942
+ <span class="ruby-comment cmt"># File lib/Interval.rb, line 86</span>
943
+ 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">intersection</span>(<span class="ruby-identifier">iv</span>)
944
+ 87: <span class="ruby-identifier">newStart</span> = <span class="ruby-ivar">@start</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>
945
+ 88: <span class="ruby-identifier">newEnd</span> = <span class="ruby-ivar">@end</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@end</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span>
946
+ 89: <span class="ruby-identifier">newStart</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">newEnd</span> <span class="ruby-operator">?</span> <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">newStart</span>, <span class="ruby-identifier">newEnd</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
947
+ 90: <span class="ruby-keyword kw">end</span></pre>
942
948
  </div>
943
949
 
944
950
  </div>
@@ -972,15 +978,15 @@ overlaps with this interval.
972
978
  <div class="method-source-code"
973
979
  id="overlaps--source">
974
980
  <pre>
975
- <span class="ruby-comment cmt"># File lib/Interval.rb, line 74</span>
976
- 74: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">arg</span>)
977
- 75: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
978
- 76: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
979
- 77: <span class="ruby-keyword kw">else</span>
980
- 78: <span class="ruby-keyword kw">return</span> (<span class="ruby-ivar">@start</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>) <span class="ruby-operator">||</span>
981
- 79: (<span class="ruby-identifier">arg</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">end</span>)
982
- 80: <span class="ruby-keyword kw">end</span>
983
- 81: <span class="ruby-keyword kw">end</span></pre>
981
+ <span class="ruby-comment cmt"># File lib/Interval.rb, line 75</span>
982
+ 75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">overlaps?</span>(<span class="ruby-identifier">arg</span>)
983
+ 76: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
984
+ 77: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>
985
+ 78: <span class="ruby-keyword kw">else</span>
986
+ 79: <span class="ruby-keyword kw">return</span> (<span class="ruby-ivar">@start</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@end</span>) <span class="ruby-operator">||</span>
987
+ 80: (<span class="ruby-identifier">arg</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@start</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">end</span>)
988
+ 81: <span class="ruby-keyword kw">end</span>
989
+ 82: <span class="ruby-keyword kw">end</span></pre>
984
990
  </div>
985
991
 
986
992
  </div>
@@ -1013,10 +1019,10 @@ Turn the <a href="Interval.html">Interval</a> into a human readable form.
1013
1019
  <div class="method-source-code"
1014
1020
  id="to-s-source">
1015
1021
  <pre>
1016
- <span class="ruby-comment cmt"># File lib/Interval.rb, line 122</span>
1017
- 122: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1018
- 123: <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">' - '</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@end</span>.<span class="ruby-identifier">to_s</span>
1019
- 124: <span class="ruby-keyword kw">end</span></pre>
1022
+ <span class="ruby-comment cmt"># File lib/Interval.rb, line 123</span>
1023
+ 123: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1024
+ 124: <span class="ruby-ivar">@start</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">' - '</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@end</span>.<span class="ruby-identifier">to_s</span>
1025
+ 125: <span class="ruby-keyword kw">end</span></pre>
1020
1026
  </div>
1021
1027
 
1022
1028
  </div>
@@ -0,0 +1,777 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: TaskJuggler::IntervalList</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="../js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="../js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="../index.html">Home</a>
29
+ <a href="../index.html#classes">Classes</a>
30
+ <a href="../index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="../lib/IntervalList_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/IntervalList.rb">lib/IntervalList.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+ <div id="parent-class-section" class="section">
56
+ <h3 class="section-header">Parent</h3>
57
+
58
+ <p class="link">Array</p>
59
+
60
+ </div>
61
+
62
+
63
+ <!-- Namespace Contents -->
64
+
65
+
66
+ <!-- Method Quickref -->
67
+
68
+ <div id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+ <ul class="link-list">
71
+
72
+ <li><a href="#method-i-%26">#&</a></li>
73
+
74
+ <li><a href="#method-i-%3C%3C">#<<</a></li>
75
+
76
+ <li><a href="#method-i-append">#append</a></li>
77
+
78
+ </ul>
79
+ </div>
80
+
81
+
82
+ <!-- Included Modules -->
83
+
84
+ </div>
85
+
86
+ <div id="project-metadata">
87
+
88
+
89
+ <div id="fileindex-section" class="section project-section">
90
+ <h3 class="section-header">Files</h3>
91
+ <ul>
92
+
93
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
94
+
95
+ <li class="file"><a href="../COPYING.html">COPYING</a></li>
96
+
97
+ <li class="file"><a href="../README.html">README</a></li>
98
+
99
+ </ul>
100
+ </div>
101
+
102
+
103
+ <div id="classindex-section" class="section project-section">
104
+ <h3 class="section-header">Class Index
105
+ <span class="search-toggle"><img src="../images/find.png"
106
+ height="16" width="16" alt="[+]"
107
+ title="show/hide quicksearch" /></span></h3>
108
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
109
+ <fieldset>
110
+ <legend>Quicksearch</legend>
111
+ <input type="text" name="quicksearch" value=""
112
+ class="quicksearch-field" />
113
+ </fieldset>
114
+ </form>
115
+
116
+ <ul class="link-list">
117
+
118
+ <li><a href="../TaskJuggler.html">TaskJuggler</a></li>
119
+
120
+ <li><a href="../TaskJuggler/Account.html">TaskJuggler::Account</a></li>
121
+
122
+ <li><a href="../TaskJuggler/AccountAttribute.html">TaskJuggler::AccountAttribute</a></li>
123
+
124
+ <li><a href="../TaskJuggler/AccountScenario.html">TaskJuggler::AccountScenario</a></li>
125
+
126
+ <li><a href="../TaskJuggler/Allocation.html">TaskJuggler::Allocation</a></li>
127
+
128
+ <li><a href="../TaskJuggler/AllocationAttribute.html">TaskJuggler::AllocationAttribute</a></li>
129
+
130
+ <li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li>
131
+
132
+ <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
133
+
134
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
135
+
136
+ <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
137
+
138
+ <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
139
+
140
+ <li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li>
141
+
142
+ <li><a href="../TaskJuggler/BooleanAttribute.html">TaskJuggler::BooleanAttribute</a></li>
143
+
144
+ <li><a href="../TaskJuggler/CSVFile.html">TaskJuggler::CSVFile</a></li>
145
+
146
+ <li><a href="../TaskJuggler/CellSettingPattern.html">TaskJuggler::CellSettingPattern</a></li>
147
+
148
+ <li><a href="../TaskJuggler/CellSettingPatternList.html">TaskJuggler::CellSettingPatternList</a></li>
149
+
150
+ <li><a href="../TaskJuggler/Charge.html">TaskJuggler::Charge</a></li>
151
+
152
+ <li><a href="../TaskJuggler/ChargeListAttribute.html">TaskJuggler::ChargeListAttribute</a></li>
153
+
154
+ <li><a href="../TaskJuggler/ChargeSet.html">TaskJuggler::ChargeSet</a></li>
155
+
156
+ <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
157
+
158
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
159
+
160
+ <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
161
+
162
+ <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
163
+
164
+ <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
165
+
166
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
167
+
168
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
169
+
170
+ <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
171
+
172
+ <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
173
+
174
+ <li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li>
175
+
176
+ <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
177
+
178
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
179
+
180
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
181
+
182
+ <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
183
+
184
+ <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
185
+
186
+ <li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li>
187
+
188
+ <li><a href="../TaskJuggler/FormatListAttribute.html">TaskJuggler::FormatListAttribute</a></li>
189
+
190
+ <li><a href="../TaskJuggler/GanttChart.html">TaskJuggler::GanttChart</a></li>
191
+
192
+ <li><a href="../TaskJuggler/GanttContainer.html">TaskJuggler::GanttContainer</a></li>
193
+
194
+ <li><a href="../TaskJuggler/GanttHeader.html">TaskJuggler::GanttHeader</a></li>
195
+
196
+ <li><a href="../TaskJuggler/GanttHeaderScaleItem.html">TaskJuggler::GanttHeaderScaleItem</a></li>
197
+
198
+ <li><a href="../TaskJuggler/GanttLine.html">TaskJuggler::GanttLine</a></li>
199
+
200
+ <li><a href="../TaskJuggler/GanttLoadStack.html">TaskJuggler::GanttLoadStack</a></li>
201
+
202
+ <li><a href="../TaskJuggler/GanttMilestone.html">TaskJuggler::GanttMilestone</a></li>
203
+
204
+ <li><a href="../TaskJuggler/GanttRouter.html">TaskJuggler::GanttRouter</a></li>
205
+
206
+ <li><a href="../TaskJuggler/GanttTaskBar.html">TaskJuggler::GanttTaskBar</a></li>
207
+
208
+ <li><a href="../TaskJuggler/HTMLDocument.html">TaskJuggler::HTMLDocument</a></li>
209
+
210
+ <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
211
+
212
+ <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
213
+
214
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
215
+
216
+ <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
217
+
218
+ <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
219
+
220
+ <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
221
+
222
+ <li><a href="../TaskJuggler/JournalEntry.html">TaskJuggler::JournalEntry</a></li>
223
+
224
+ <li><a href="../TaskJuggler/JournalEntryList.html">TaskJuggler::JournalEntryList</a></li>
225
+
226
+ <li><a href="../TaskJuggler/KeywordArray.html">TaskJuggler::KeywordArray</a></li>
227
+
228
+ <li><a href="../TaskJuggler/KeywordDocumentation.html">TaskJuggler::KeywordDocumentation</a></li>
229
+
230
+ <li><a href="../TaskJuggler/Limits.html">TaskJuggler::Limits</a></li>
231
+
232
+ <li><a href="../TaskJuggler/Limits/Limit.html">TaskJuggler::Limits::Limit</a></li>
233
+
234
+ <li><a href="../TaskJuggler/LimitsAttribute.html">TaskJuggler::LimitsAttribute</a></li>
235
+
236
+ <li><a href="../TaskJuggler/ListAttributeBase.html">TaskJuggler::ListAttributeBase</a></li>
237
+
238
+ <li><a href="../TaskJuggler/Log.html">TaskJuggler::Log</a></li>
239
+
240
+ <li><a href="../TaskJuggler/LogFile.html">TaskJuggler::LogFile</a></li>
241
+
242
+ <li><a href="../TaskJuggler/LogicalAttribute.html">TaskJuggler::LogicalAttribute</a></li>
243
+
244
+ <li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li>
245
+
246
+ <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
247
+
248
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
249
+
250
+ <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
251
+
252
+ <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
253
+
254
+ <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li>
255
+
256
+ <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
257
+
258
+ <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
259
+
260
+ <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
261
+
262
+ <li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li>
263
+
264
+ <li><a href="../TaskJuggler/Message.html">TaskJuggler::Message</a></li>
265
+
266
+ <li><a href="../TaskJuggler/MessageHandler.html">TaskJuggler::MessageHandler</a></li>
267
+
268
+ <li><a href="../TaskJuggler/Navigator.html">TaskJuggler::Navigator</a></li>
269
+
270
+ <li><a href="../TaskJuggler/NavigatorElement.html">TaskJuggler::NavigatorElement</a></li>
271
+
272
+ <li><a href="../TaskJuggler/NikuProject.html">TaskJuggler::NikuProject</a></li>
273
+
274
+ <li><a href="../TaskJuggler/NikuReport.html">TaskJuggler::NikuReport</a></li>
275
+
276
+ <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
277
+
278
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
279
+
280
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
281
+
282
+ <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
283
+
284
+ <li><a href="../TaskJuggler/ProcessIntercomIface.html">TaskJuggler::ProcessIntercomIface</a></li>
285
+
286
+ <li><a href="../TaskJuggler/Project.html">TaskJuggler::Project</a></li>
287
+
288
+ <li><a href="../TaskJuggler/ProjectBroker.html">TaskJuggler::ProjectBroker</a></li>
289
+
290
+ <li><a href="../TaskJuggler/ProjectBrokerIface.html">TaskJuggler::ProjectBrokerIface</a></li>
291
+
292
+ <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
293
+
294
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
295
+
296
+ <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
297
+
298
+ <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
299
+
300
+ <li><a href="../TaskJuggler/ProjectServerIface.html">TaskJuggler::ProjectServerIface</a></li>
301
+
302
+ <li><a href="../TaskJuggler/PropertyAttribute.html">TaskJuggler::PropertyAttribute</a></li>
303
+
304
+ <li><a href="../TaskJuggler/PropertyList.html">TaskJuggler::PropertyList</a></li>
305
+
306
+ <li><a href="../TaskJuggler/PropertySet.html">TaskJuggler::PropertySet</a></li>
307
+
308
+ <li><a href="../TaskJuggler/PropertyTreeNode.html">TaskJuggler::PropertyTreeNode</a></li>
309
+
310
+ <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
311
+
312
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
313
+
314
+ <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
315
+
316
+ <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
317
+
318
+ <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
319
+
320
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
321
+
322
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
323
+
324
+ <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
325
+
326
+ <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
327
+
328
+ <li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li>
329
+
330
+ <li><a href="../TaskJuggler/Report.html">TaskJuggler::Report</a></li>
331
+
332
+ <li><a href="../TaskJuggler/ReportBase.html">TaskJuggler::ReportBase</a></li>
333
+
334
+ <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
335
+
336
+ <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
337
+
338
+ <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
339
+
340
+ <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
341
+
342
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
343
+
344
+ <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
345
+
346
+ <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
347
+
348
+ <li><a href="../TaskJuggler/ReportTableColumn.html">TaskJuggler::ReportTableColumn</a></li>
349
+
350
+ <li><a href="../TaskJuggler/ReportTableLegend.html">TaskJuggler::ReportTableLegend</a></li>
351
+
352
+ <li><a href="../TaskJuggler/ReportTableLine.html">TaskJuggler::ReportTableLine</a></li>
353
+
354
+ <li><a href="../TaskJuggler/Resource.html">TaskJuggler::Resource</a></li>
355
+
356
+ <li><a href="../TaskJuggler/ResourceListAttribute.html">TaskJuggler::ResourceListAttribute</a></li>
357
+
358
+ <li><a href="../TaskJuggler/ResourceListRE.html">TaskJuggler::ResourceListRE</a></li>
359
+
360
+ <li><a href="../TaskJuggler/ResourceScenario.html">TaskJuggler::ResourceScenario</a></li>
361
+
362
+ <li><a href="../TaskJuggler/RichText.html">TaskJuggler::RichText</a></li>
363
+
364
+ <li><a href="../TaskJuggler/RichTextAttribute.html">TaskJuggler::RichTextAttribute</a></li>
365
+
366
+ <li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li>
367
+
368
+ <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
369
+
370
+ <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
371
+
372
+ <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
373
+
374
+ <li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li>
375
+
376
+ <li><a href="../TaskJuggler/RichTextIntermediate.html">TaskJuggler::RichTextIntermediate</a></li>
377
+
378
+ <li><a href="../TaskJuggler/RichTextParser.html">TaskJuggler::RichTextParser</a></li>
379
+
380
+ <li><a href="../TaskJuggler/RichTextScanner.html">TaskJuggler::RichTextScanner</a></li>
381
+
382
+ <li><a href="../TaskJuggler/RichTextSnip.html">TaskJuggler::RichTextSnip</a></li>
383
+
384
+ <li><a href="../TaskJuggler/RichTextSyntaxRules.html">TaskJuggler::RichTextSyntaxRules</a></li>
385
+
386
+ <li><a href="../TaskJuggler/Scenario.html">TaskJuggler::Scenario</a></li>
387
+
388
+ <li><a href="../TaskJuggler/ScenarioData.html">TaskJuggler::ScenarioData</a></li>
389
+
390
+ <li><a href="../TaskJuggler/ScenarioListAttribute.html">TaskJuggler::ScenarioListAttribute</a></li>
391
+
392
+ <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
393
+
394
+ <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
395
+
396
+ <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
397
+
398
+ <li><a href="../TaskJuggler/SheetSender.html">TaskJuggler::SheetSender</a></li>
399
+
400
+ <li><a href="../TaskJuggler/Shift.html">TaskJuggler::Shift</a></li>
401
+
402
+ <li><a href="../TaskJuggler/ShiftAssignment.html">TaskJuggler::ShiftAssignment</a></li>
403
+
404
+ <li><a href="../TaskJuggler/ShiftAssignments.html">TaskJuggler::ShiftAssignments</a></li>
405
+
406
+ <li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li>
407
+
408
+ <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
409
+
410
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
411
+
412
+ <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
413
+
414
+ <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
415
+
416
+ <li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li>
417
+
418
+ <li><a href="../TaskJuggler/StatusSheetReport.html">TaskJuggler::StatusSheetReport</a></li>
419
+
420
+ <li><a href="../TaskJuggler/StatusSheetSender.html">TaskJuggler::StatusSheetSender</a></li>
421
+
422
+ <li><a href="../TaskJuggler/StringAttribute.html">TaskJuggler::StringAttribute</a></li>
423
+
424
+ <li><a href="../TaskJuggler/SymbolAttribute.html">TaskJuggler::SymbolAttribute</a></li>
425
+
426
+ <li><a href="../TaskJuggler/SyntaxReference.html">TaskJuggler::SyntaxReference</a></li>
427
+
428
+ <li><a href="../TaskJuggler/TOCEntry.html">TaskJuggler::TOCEntry</a></li>
429
+
430
+ <li><a href="../TaskJuggler/TSResourceRecord.html">TaskJuggler::TSResourceRecord</a></li>
431
+
432
+ <li><a href="../TaskJuggler/TSTaskRecord.html">TaskJuggler::TSTaskRecord</a></li>
433
+
434
+ <li><a href="../TaskJuggler/TableColumnDefinition.html">TaskJuggler::TableColumnDefinition</a></li>
435
+
436
+ <li><a href="../TaskJuggler/TableOfContents.html">TaskJuggler::TableOfContents</a></li>
437
+
438
+ <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
439
+
440
+ <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
441
+
442
+ <li><a href="../TaskJuggler/TaskDependency.html">TaskJuggler::TaskDependency</a></li>
443
+
444
+ <li><a href="../TaskJuggler/TaskListAttribute.html">TaskJuggler::TaskListAttribute</a></li>
445
+
446
+ <li><a href="../TaskJuggler/TaskListRE.html">TaskJuggler::TaskListRE</a></li>
447
+
448
+ <li><a href="../TaskJuggler/TaskScenario.html">TaskJuggler::TaskScenario</a></li>
449
+
450
+ <li><a href="../TaskJuggler/TextFormatter.html">TaskJuggler::TextFormatter</a></li>
451
+
452
+ <li><a href="../TaskJuggler/TextParser.html">TaskJuggler::TextParser</a></li>
453
+
454
+ <li><a href="../TaskJuggler/TextParser/Pattern.html">TaskJuggler::TextParser::Pattern</a></li>
455
+
456
+ <li><a href="../TaskJuggler/TextParser/Rule.html">TaskJuggler::TextParser::Rule</a></li>
457
+
458
+ <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
459
+
460
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
461
+
462
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
463
+
464
+ <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
465
+
466
+ <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
467
+
468
+ <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
469
+
470
+ <li><a href="../TaskJuggler/TextScanner.html">TaskJuggler::TextScanner</a></li>
471
+
472
+ <li><a href="../TaskJuggler/TextScanner/BufferStreamHandle.html">TaskJuggler::TextScanner::BufferStreamHandle</a></li>
473
+
474
+ <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
475
+
476
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
477
+
478
+ <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
479
+
480
+ <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
481
+
482
+ <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
483
+
484
+ <li><a href="../TaskJuggler/TimeSheetRecord.html">TaskJuggler::TimeSheetRecord</a></li>
485
+
486
+ <li><a href="../TaskJuggler/TimeSheetReport.html">TaskJuggler::TimeSheetReport</a></li>
487
+
488
+ <li><a href="../TaskJuggler/TimeSheetSender.html">TaskJuggler::TimeSheetSender</a></li>
489
+
490
+ <li><a href="../TaskJuggler/TimeSheetSummary.html">TaskJuggler::TimeSheetSummary</a></li>
491
+
492
+ <li><a href="../TaskJuggler/TimeSheets.html">TaskJuggler::TimeSheets</a></li>
493
+
494
+ <li><a href="../TaskJuggler/Tj3AppBase.html">TaskJuggler::Tj3AppBase</a></li>
495
+
496
+ <li><a href="../TaskJuggler/Tj3Client.html">TaskJuggler::Tj3Client</a></li>
497
+
498
+ <li><a href="../TaskJuggler/Tj3Daemon.html">TaskJuggler::Tj3Daemon</a></li>
499
+
500
+ <li><a href="../TaskJuggler/Tj3SheetAppBase.html">TaskJuggler::Tj3SheetAppBase</a></li>
501
+
502
+ <li><a href="../TaskJuggler/Tj3SsReceiver.html">TaskJuggler::Tj3SsReceiver</a></li>
503
+
504
+ <li><a href="../TaskJuggler/Tj3SsSender.html">TaskJuggler::Tj3SsSender</a></li>
505
+
506
+ <li><a href="../TaskJuggler/Tj3TsReceiver.html">TaskJuggler::Tj3TsReceiver</a></li>
507
+
508
+ <li><a href="../TaskJuggler/Tj3TsSender.html">TaskJuggler::Tj3TsSender</a></li>
509
+
510
+ <li><a href="../TaskJuggler/Tj3TsSummary.html">TaskJuggler::Tj3TsSummary</a></li>
511
+
512
+ <li><a href="../TaskJuggler/TjException.html">TaskJuggler::TjException</a></li>
513
+
514
+ <li><a href="../TaskJuggler/TjTime.html">TaskJuggler::TjTime</a></li>
515
+
516
+ <li><a href="../TaskJuggler/TjpExample.html">TaskJuggler::TjpExample</a></li>
517
+
518
+ <li><a href="../TaskJuggler/TjpExportRE.html">TaskJuggler::TjpExportRE</a></li>
519
+
520
+ <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
521
+
522
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
523
+
524
+ <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
525
+
526
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
527
+
528
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
529
+
530
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
531
+
532
+ <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
533
+
534
+ <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
535
+
536
+ <li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li>
537
+
538
+ <li><a href="../TaskJuggler/XMLComment.html">TaskJuggler::XMLComment</a></li>
539
+
540
+ <li><a href="../TaskJuggler/XMLDocument.html">TaskJuggler::XMLDocument</a></li>
541
+
542
+ <li><a href="../TaskJuggler/XMLElement.html">TaskJuggler::XMLElement</a></li>
543
+
544
+ <li><a href="../TaskJuggler/XMLNamedText.html">TaskJuggler::XMLNamedText</a></li>
545
+
546
+ <li><a href="../TaskJuggler/XMLText.html">TaskJuggler::XMLText</a></li>
547
+
548
+ <li><a href="../AppConfig.html">AppConfig</a></li>
549
+
550
+ <li><a href="../Arguments.html">Arguments</a></li>
551
+
552
+ <li><a href="../Object.html">Object</a></li>
553
+
554
+ <li><a href="../RuntimeConfig.html">RuntimeConfig</a></li>
555
+
556
+ <li><a href="../String.html">String</a></li>
557
+
558
+ </ul>
559
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
560
+ </div>
561
+
562
+
563
+ </div>
564
+ </div>
565
+
566
+ <div id="documentation">
567
+ <h1 class="class">TaskJuggler::IntervalList</h1>
568
+
569
+ <div id="description">
570
+ <p>
571
+ A list of Intervals. The intervals in the list must not overlap and must be
572
+ in ascending order.
573
+ </p>
574
+
575
+ </div>
576
+
577
+ <!-- Constants -->
578
+
579
+
580
+ <!-- Attributes -->
581
+
582
+
583
+ <!-- Methods -->
584
+
585
+ <div id="public-instance-method-details" class="method-section section">
586
+ <h3 class="section-header">Public Instance Methods</h3>
587
+
588
+
589
+ <div id="--method" class="method-detail ">
590
+ <a name="method-i-%26"></a>
591
+
592
+ <div class="method-heading">
593
+
594
+ <span class="method-name">&amp;</span><span
595
+ class="method-args">(list)</span>
596
+ <span class="method-click-advice">click to toggle source</span>
597
+
598
+ </div>
599
+
600
+ <div class="method-description">
601
+
602
+
603
+
604
+
605
+
606
+ <div class="method-source-code"
607
+ id="--source">
608
+ <pre>
609
+ <span class="ruby-comment cmt"># File lib/IntervalList.rb, line 24</span>
610
+ 24: <span class="ruby-keyword kw">def</span> &amp;(<span class="ruby-identifier">list</span>)
611
+ 25: <span class="ruby-identifier">res</span> = <span class="ruby-constant">IntervalList</span>.<span class="ruby-identifier">new</span>
612
+ 26: <span class="ruby-identifier">si</span> = <span class="ruby-identifier">li</span> = <span class="ruby-value">0</span>
613
+ 27: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">si</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">li</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">list</span>.<span class="ruby-identifier">length</span> <span class="ruby-keyword kw">do</span>
614
+ 28: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>].<span class="ruby-identifier">start</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>].<span class="ruby-identifier">start</span>
615
+ 29: <span class="ruby-comment cmt"># The current Interval of self starts earlier than the current</span>
616
+ 30: <span class="ruby-comment cmt"># Interval of list.</span>
617
+ 31: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>].<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>].<span class="ruby-identifier">start</span>
618
+ 32: <span class="ruby-comment cmt"># self[si] does not overlap with list[li]. Ignore it.</span>
619
+ 33: <span class="ruby-identifier">si</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
620
+ 34: <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>].<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>].<span class="ruby-identifier">end</span>
621
+ 35: <span class="ruby-comment cmt"># self[si] does overlap with list[li] but list[li] goes further</span>
622
+ 36: <span class="ruby-identifier">res</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>].<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>].<span class="ruby-identifier">end</span>)
623
+ 37: <span class="ruby-identifier">si</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
624
+ 38: <span class="ruby-keyword kw">else</span>
625
+ 39: <span class="ruby-comment cmt"># self[si] does overlap with list[li] but self[si] goes further</span>
626
+ 40: <span class="ruby-identifier">res</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>].<span class="ruby-identifier">start</span>, <span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>].<span class="ruby-identifier">end</span>)
627
+ 41: <span class="ruby-identifier">li</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
628
+ 42: <span class="ruby-keyword kw">end</span>
629
+ 43: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>].<span class="ruby-identifier">start</span> <span class="ruby-operator">&lt;</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>].<span class="ruby-identifier">start</span>
630
+ 44: <span class="ruby-comment cmt"># The current Interval of list starts earlier than the current</span>
631
+ 45: <span class="ruby-comment cmt"># Interval of self.</span>
632
+ 46: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>].<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>].<span class="ruby-identifier">start</span>
633
+ 47: <span class="ruby-comment cmt"># list[li] does not overlap with self[si]. Ignore it.</span>
634
+ 48: <span class="ruby-identifier">li</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
635
+ 49: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>].<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>].<span class="ruby-identifier">end</span>
636
+ 50: <span class="ruby-comment cmt"># list[li] does overlap with self[si] but self[si] goes further</span>
637
+ 51: <span class="ruby-identifier">res</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>].<span class="ruby-identifier">start</span>, <span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>].<span class="ruby-identifier">end</span>)
638
+ 52: <span class="ruby-identifier">li</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
639
+ 53: <span class="ruby-keyword kw">else</span>
640
+ 54: <span class="ruby-comment cmt"># list[li] does overlap with self[si] but list[li] goes further</span>
641
+ 55: <span class="ruby-identifier">res</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>].<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>].<span class="ruby-identifier">end</span>)
642
+ 56: <span class="ruby-identifier">si</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
643
+ 57: <span class="ruby-keyword kw">end</span>
644
+ 58: <span class="ruby-keyword kw">else</span>
645
+ 59: <span class="ruby-comment cmt"># self[si].start and list[li].start are identical</span>
646
+ 60: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>].<span class="ruby-identifier">end</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>].<span class="ruby-identifier">end</span>
647
+ 61: <span class="ruby-comment cmt"># self[si] and list[li] are identical. Add the Interval and</span>
648
+ 62: <span class="ruby-comment cmt"># increase both pointers.</span>
649
+ 63: <span class="ruby-identifier">res</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>]
650
+ 64: <span class="ruby-identifier">li</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
651
+ 65: <span class="ruby-identifier">si</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
652
+ 66: <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>].<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>].<span class="ruby-identifier">end</span>
653
+ 67: <span class="ruby-comment cmt"># self[si] ends earlier.</span>
654
+ 68: <span class="ruby-identifier">res</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">si</span>]
655
+ 69: <span class="ruby-identifier">si</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
656
+ 70: <span class="ruby-keyword kw">else</span>
657
+ 71: <span class="ruby-comment cmt"># list[li] ends earlier.</span>
658
+ 72: <span class="ruby-identifier">res</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">list</span>[<span class="ruby-identifier">li</span>]
659
+ 73: <span class="ruby-identifier">li</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
660
+ 74: <span class="ruby-keyword kw">end</span>
661
+ 75: <span class="ruby-keyword kw">end</span>
662
+ 76: <span class="ruby-keyword kw">end</span>
663
+ 77:
664
+ 78: <span class="ruby-identifier">res</span>
665
+ 79: <span class="ruby-keyword kw">end</span></pre>
666
+ </div>
667
+
668
+ </div>
669
+
670
+
671
+
672
+
673
+ </div>
674
+
675
+
676
+ <div id="--method" class="method-detail ">
677
+ <a name="method-i-%3C%3C"></a>
678
+
679
+ <div class="method-heading">
680
+
681
+ <span class="method-name">&lt;&lt;</span><span
682
+ class="method-args">(iv)</span>
683
+ <span class="method-click-advice">click to toggle source</span>
684
+
685
+ </div>
686
+
687
+ <div class="method-description">
688
+
689
+ <p>
690
+ Append the <a href="Interval.html">Interval</a> <em>iv</em>. If the start
691
+ of <em>iv</em> matches the end of the list list item, <em>iv</em> is merged
692
+ with the last item.
693
+ </p>
694
+
695
+
696
+
697
+ <div class="method-source-code"
698
+ id="--source">
699
+ <pre>
700
+ <span class="ruby-comment cmt"># File lib/IntervalList.rb, line 83</span>
701
+ 83: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">iv</span>)
702
+ 84: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">last</span>
703
+ 85: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">last</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>
704
+ 86: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Intervals may not overlap and must be added in &quot;</span> <span class="ruby-operator">+</span>
705
+ 87: <span class="ruby-value str">&quot;ascending order.&quot;</span>
706
+ 88: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">last</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span>
707
+ 89: <span class="ruby-keyword kw">self</span>[<span class="ruby-value">1</span>] = <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">last</span>.<span class="ruby-identifier">start</span>, <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span>)
708
+ 90: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
709
+ 91: <span class="ruby-keyword kw">end</span>
710
+ 92: <span class="ruby-keyword kw">end</span>
711
+ 93:
712
+ 94: <span class="ruby-identifier">append</span>(<span class="ruby-identifier">iv</span>)
713
+ 95: <span class="ruby-keyword kw">end</span></pre>
714
+ </div>
715
+
716
+ </div>
717
+
718
+
719
+ <div class="aliases">
720
+ Also aliased as: <a href="IntervalList.html#method-i-append">append</a>
721
+ </div>
722
+
723
+
724
+
725
+ </div>
726
+
727
+
728
+ <div id="append-method" class="method-detail method-alias">
729
+ <a name="method-i-append"></a>
730
+
731
+ <div class="method-heading">
732
+
733
+ <span class="method-name">append</span><span
734
+ class="method-args">(iv)</span>
735
+ <span class="method-click-advice">click to toggle source</span>
736
+
737
+ </div>
738
+
739
+ <div class="method-description">
740
+
741
+
742
+
743
+
744
+
745
+ </div>
746
+
747
+
748
+
749
+
750
+ <div class="aliases">
751
+ Alias for: <a href="IntervalList.html#method-i-%3C%3C">&lt;&lt;</a>
752
+ </div>
753
+
754
+ </div>
755
+
756
+
757
+ </div>
758
+
759
+
760
+ </div>
761
+
762
+
763
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
764
+
765
+ <p>Disabled; run with --debug to generate this.</p>
766
+
767
+ </div>
768
+
769
+ <div id="validator-badges">
770
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
771
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
772
+ Rdoc Generator</a> 1.1.6</small>.</p>
773
+ </div>
774
+
775
+ </body>
776
+ </html>
777
+