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
@@ -148,6 +148,8 @@
148
148
 
149
149
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
150
150
 
151
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
152
+
151
153
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
152
154
 
153
155
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -226,6 +228,8 @@
226
228
 
227
229
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
228
230
 
231
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
232
+
229
233
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
230
234
 
231
235
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -258,6 +262,8 @@
258
262
 
259
263
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
260
264
 
265
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
266
+
261
267
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
262
268
 
263
269
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -538,6 +544,8 @@
538
544
 
539
545
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
540
546
 
547
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
548
+
541
549
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
542
550
 
543
551
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -564,8 +572,6 @@
564
572
 
565
573
  <li><a href="../String.html">String</a></li>
566
574
 
567
- <li><a href="../StringIO.html">StringIO</a></li>
568
-
569
575
  </ul>
570
576
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
571
577
  </div>
@@ -658,21 +664,21 @@ passed, it acts as a copy contructor.
658
664
  <div class="method-source-code"
659
665
  id="new-source">
660
666
  <pre>
661
- <span class="ruby-comment cmt"># File lib/Limits.rb, line 121</span>
662
- 121: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">limits</span> = <span class="ruby-keyword kw">nil</span>)
663
- 122: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">limits</span>.<span class="ruby-identifier">nil?</span>
664
- 123: <span class="ruby-comment cmt"># Normal initialization</span>
665
- 124: <span class="ruby-ivar">@limits</span> = []
666
- 125: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
667
- 126: <span class="ruby-keyword kw">else</span>
668
- 127: <span class="ruby-comment cmt"># Deep copy content from other instance.</span>
669
- 128: <span class="ruby-ivar">@limits</span> = []
670
- 129: <span class="ruby-identifier">limits</span>.<span class="ruby-identifier">limits</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">limit</span><span class="ruby-operator">|</span>
671
- 130: <span class="ruby-ivar">@limits</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">copy</span>
672
- 131: <span class="ruby-keyword kw">end</span>
673
- 132: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">limits</span>.<span class="ruby-identifier">project</span>
674
- 133: <span class="ruby-keyword kw">end</span>
675
- 134: <span class="ruby-keyword kw">end</span></pre>
667
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 122</span>
668
+ 122: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">limits</span> = <span class="ruby-keyword kw">nil</span>)
669
+ 123: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">limits</span>.<span class="ruby-identifier">nil?</span>
670
+ 124: <span class="ruby-comment cmt"># Normal initialization</span>
671
+ 125: <span class="ruby-ivar">@limits</span> = []
672
+ 126: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
673
+ 127: <span class="ruby-keyword kw">else</span>
674
+ 128: <span class="ruby-comment cmt"># Deep copy content from other instance.</span>
675
+ 129: <span class="ruby-ivar">@limits</span> = []
676
+ 130: <span class="ruby-identifier">limits</span>.<span class="ruby-identifier">limits</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">limit</span><span class="ruby-operator">|</span>
677
+ 131: <span class="ruby-ivar">@limits</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">copy</span>
678
+ 132: <span class="ruby-keyword kw">end</span>
679
+ 133: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">limits</span>.<span class="ruby-identifier">project</span>
680
+ 134: <span class="ruby-keyword kw">end</span>
681
+ 135: <span class="ruby-keyword kw">end</span></pre>
676
682
  </div>
677
683
 
678
684
  </div>
@@ -712,12 +718,12 @@ identified by <em>date</em>.
712
718
  <div class="method-source-code"
713
719
  id="inc-source">
714
720
  <pre>
715
- <span class="ruby-comment cmt"># File lib/Limits.rb, line 168</span>
716
- 168: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inc</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">resource</span> = <span class="ruby-keyword kw">nil</span>)
717
- 169: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">limit</span><span class="ruby-operator">|</span>
718
- 170: <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">inc</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">resource</span>)
719
- 171: <span class="ruby-keyword kw">end</span>
720
- 172: <span class="ruby-keyword kw">end</span></pre>
721
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 169</span>
722
+ 169: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inc</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">resource</span> = <span class="ruby-keyword kw">nil</span>)
723
+ 170: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">limit</span><span class="ruby-operator">|</span>
724
+ 171: <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">inc</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">resource</span>)
725
+ 172: <span class="ruby-keyword kw">end</span>
726
+ 173: <span class="ruby-keyword kw">end</span></pre>
721
727
  </div>
722
728
 
723
729
  </div>
@@ -754,13 +760,13 @@ match the <em>resource</em>.
754
760
  <div class="method-source-code"
755
761
  id="ok--source">
756
762
  <pre>
757
- <span class="ruby-comment cmt"># File lib/Limits.rb, line 179</span>
758
- 179: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ok?</span>(<span class="ruby-identifier">date</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">resource</span> = <span class="ruby-keyword kw">nil</span>)
759
- 180: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">limit</span><span class="ruby-operator">|</span>
760
- 181: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">ok?</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">upper</span>, <span class="ruby-identifier">resource</span>)
761
- 182: <span class="ruby-keyword kw">end</span>
762
- 183: <span class="ruby-keyword kw">true</span>
763
- 184: <span class="ruby-keyword kw">end</span></pre>
763
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 180</span>
764
+ 180: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ok?</span>(<span class="ruby-identifier">date</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">resource</span> = <span class="ruby-keyword kw">nil</span>)
765
+ 181: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">limit</span><span class="ruby-operator">|</span>
766
+ 182: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">ok?</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">upper</span>, <span class="ruby-identifier">resource</span>)
767
+ 183: <span class="ruby-keyword kw">end</span>
768
+ 184: <span class="ruby-keyword kw">true</span>
769
+ 185: <span class="ruby-keyword kw">end</span></pre>
764
770
  </div>
765
771
 
766
772
  </div>
@@ -793,10 +799,10 @@ Reset all counter for all limits.
793
799
  <div class="method-source-code"
794
800
  id="reset-source">
795
801
  <pre>
796
- <span class="ruby-comment cmt"># File lib/Limits.rb, line 146</span>
797
- 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
798
- 147: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">limit</span><span class="ruby-operator">|</span> <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">reset</span> }
799
- 148: <span class="ruby-keyword kw">end</span></pre>
802
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 147</span>
803
+ 147: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
804
+ 148: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">limit</span><span class="ruby-operator">|</span> <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">reset</span> }
805
+ 149: <span class="ruby-keyword kw">end</span></pre>
800
806
  </div>
801
807
 
802
808
  </div>
@@ -832,18 +838,18 @@ In case the interval is nil, the complete project time frame is used.
832
838
  <div class="method-source-code"
833
839
  id="set-imit-source">
834
840
  <pre>
835
- <span class="ruby-comment cmt"># File lib/Limits.rb, line 154</span>
836
- 154: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">resource</span> = <span class="ruby-keyword kw">nil</span>)
837
- 155: <span class="ruby-identifier">iv</span> = <span class="ruby-identifier">interval</span> <span class="ruby-operator">||</span> <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>], <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>])
838
- 156: <span class="ruby-comment cmt"># If we have already a limit for the name + interval + resource</span>
839
- 157: <span class="ruby-comment cmt"># combination, we delete it first.</span>
840
- 158: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">delete_if</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span>
841
- 159: <span class="ruby-identifier">l</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">l</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">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>
842
- 160: <span class="ruby-identifier">l</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">l</span>.<span class="ruby-identifier">resource</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">resource</span>
843
- 161: <span class="ruby-keyword kw">end</span>
844
- 162:
845
- 163: <span class="ruby-identifier">newLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">iv</span>, <span class="ruby-identifier">resource</span>)
846
- 164: <span class="ruby-keyword kw">end</span></pre>
841
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 155</span>
842
+ 155: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">resource</span> = <span class="ruby-keyword kw">nil</span>)
843
+ 156: <span class="ruby-identifier">iv</span> = <span class="ruby-identifier">interval</span> <span class="ruby-operator">||</span> <span class="ruby-constant">Interval</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>], <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>])
844
+ 157: <span class="ruby-comment cmt"># If we have already a limit for the name + interval + resource</span>
845
+ 158: <span class="ruby-comment cmt"># combination, we delete it first.</span>
846
+ 159: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">delete_if</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span>
847
+ 160: <span class="ruby-identifier">l</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">l</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">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>
848
+ 161: <span class="ruby-identifier">l</span>.<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">l</span>.<span class="ruby-identifier">resource</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">resource</span>
849
+ 162: <span class="ruby-keyword kw">end</span>
850
+ 163:
851
+ 164: <span class="ruby-identifier">newLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">iv</span>, <span class="ruby-identifier">resource</span>)
852
+ 165: <span class="ruby-keyword kw">end</span></pre>
847
853
  </div>
848
854
 
849
855
  </div>
@@ -877,13 +883,13 @@ period.
877
883
  <div class="method-source-code"
878
884
  id="set-roject-source">
879
885
  <pre>
880
- <span class="ruby-comment cmt"># File lib/Limits.rb, line 138</span>
881
- 138: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setProject</span>(<span class="ruby-identifier">project</span>)
882
- 139: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">empty?</span>
883
- 140: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Cannot change project after limits have been set!&quot;</span>
884
- 141: <span class="ruby-keyword kw">end</span>
885
- 142: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">project</span>
886
- 143: <span class="ruby-keyword kw">end</span></pre>
886
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 139</span>
887
+ 139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setProject</span>(<span class="ruby-identifier">project</span>)
888
+ 140: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">empty?</span>
889
+ 141: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Cannot change project after limits have been set!&quot;</span>
890
+ 142: <span class="ruby-keyword kw">end</span>
891
+ 143: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">project</span>
892
+ 144: <span class="ruby-keyword kw">end</span></pre>
887
893
  </div>
888
894
 
889
895
  </div>
@@ -925,58 +931,58 @@ interval is used for the period length.
925
931
  <div class="method-source-code"
926
932
  id="new-imit-source">
927
933
  <pre>
928
- <span class="ruby-comment cmt"># File lib/Limits.rb, line 191</span>
929
- 191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">resource</span>)
930
- 192: <span class="ruby-comment cmt"># The known intervals are aligned to start at their respective start.</span>
931
- 193: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>.<span class="ruby-identifier">midnight</span>
932
- 194: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>.<span class="ruby-identifier">midnight</span>
933
- 195: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">name</span>
934
- 196: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'dailymax'</span>
935
- 197: <span class="ruby-identifier">period</span> = <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>
936
- 198: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">true</span>
937
- 199: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'dailymin'</span>
938
- 200: <span class="ruby-identifier">period</span> = <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>
939
- 201: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">false</span>
940
- 202: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'weeklymax'</span>
941
- 203: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>.<span class="ruby-identifier">beginOfWeek</span>(
942
- 204: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'weekStartsMonday'</span>])
943
- 205: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>.<span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'weekStartsMonday'</span>])
944
- 206: <span class="ruby-identifier">period</span> = <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>
945
- 207: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">true</span>
946
- 208: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'weeklymin'</span>
947
- 209: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>.<span class="ruby-identifier">beginOfWeek</span>(
948
- 210: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'weekStartsMonday'</span>])
949
- 211: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>.<span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'weekStartsMonday'</span>])
950
- 212: <span class="ruby-identifier">period</span> = <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>
951
- 213: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">false</span>
952
- 214: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'monthlymax'</span>
953
- 215: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>.<span class="ruby-identifier">beginOfMonth</span>
954
- 216: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>.<span class="ruby-identifier">beginOfMonth</span>
955
- 217: <span class="ruby-comment cmt"># We use 30 days intervals here. This will cause the interval to drift</span>
956
- 218: <span class="ruby-comment cmt"># away from calendar months. But it's better than using 30.4167 which</span>
957
- 219: <span class="ruby-comment cmt"># does not align with day boundaries.</span>
958
- 220: <span class="ruby-identifier">period</span> = <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">30</span>
959
- 221: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">true</span>
960
- 222: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'monthlymin'</span>
961
- 223: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>.<span class="ruby-identifier">beginOfMonth</span>
962
- 224: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>.<span class="ruby-identifier">beginOfMonth</span>
963
- 225: <span class="ruby-comment cmt"># We use 30 days intervals here. This will cause the interval to drift</span>
964
- 226: <span class="ruby-comment cmt"># away from calendar months. But it's better than using 30.4167 which</span>
965
- 227: <span class="ruby-comment cmt"># does not align with day boundaries.</span>
966
- 228: <span class="ruby-identifier">period</span> = <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">30</span>
967
- 229: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">false</span>
968
- 230: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'maximum'</span>
969
- 231: <span class="ruby-identifier">period</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>
970
- 232: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">true</span>
971
- 233: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'minimum'</span>
972
- 234: <span class="ruby-identifier">period</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>
973
- 235: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">false</span>
974
- 236: <span class="ruby-keyword kw">else</span>
975
- 237: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Limit period undefined&quot;</span>
976
- 238: <span class="ruby-keyword kw">end</span>
977
- 239:
978
- 240: <span class="ruby-ivar">@limits</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Limit</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">period</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">upper</span>, <span class="ruby-identifier">resource</span>)
979
- 241: <span class="ruby-keyword kw">end</span></pre>
934
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 192</span>
935
+ 192: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">resource</span>)
936
+ 193: <span class="ruby-comment cmt"># The known intervals are aligned to start at their respective start.</span>
937
+ 194: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>.<span class="ruby-identifier">midnight</span>
938
+ 195: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>.<span class="ruby-identifier">midnight</span>
939
+ 196: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">name</span>
940
+ 197: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'dailymax'</span>
941
+ 198: <span class="ruby-identifier">period</span> = <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>
942
+ 199: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">true</span>
943
+ 200: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'dailymin'</span>
944
+ 201: <span class="ruby-identifier">period</span> = <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span>
945
+ 202: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">false</span>
946
+ 203: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'weeklymax'</span>
947
+ 204: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>.<span class="ruby-identifier">beginOfWeek</span>(
948
+ 205: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'weekStartsMonday'</span>])
949
+ 206: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>.<span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'weekStartsMonday'</span>])
950
+ 207: <span class="ruby-identifier">period</span> = <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>
951
+ 208: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">true</span>
952
+ 209: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'weeklymin'</span>
953
+ 210: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>.<span class="ruby-identifier">beginOfWeek</span>(
954
+ 211: <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'weekStartsMonday'</span>])
955
+ 212: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>.<span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'weekStartsMonday'</span>])
956
+ 213: <span class="ruby-identifier">period</span> = <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">7</span>
957
+ 214: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">false</span>
958
+ 215: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'monthlymax'</span>
959
+ 216: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>.<span class="ruby-identifier">beginOfMonth</span>
960
+ 217: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>.<span class="ruby-identifier">beginOfMonth</span>
961
+ 218: <span class="ruby-comment cmt"># We use 30 days intervals here. This will cause the interval to drift</span>
962
+ 219: <span class="ruby-comment cmt"># away from calendar months. But it's better than using 30.4167 which</span>
963
+ 220: <span class="ruby-comment cmt"># does not align with day boundaries.</span>
964
+ 221: <span class="ruby-identifier">period</span> = <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">30</span>
965
+ 222: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">true</span>
966
+ 223: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'monthlymin'</span>
967
+ 224: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>.<span class="ruby-identifier">beginOfMonth</span>
968
+ 225: <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>.<span class="ruby-identifier">beginOfMonth</span>
969
+ 226: <span class="ruby-comment cmt"># We use 30 days intervals here. This will cause the interval to drift</span>
970
+ 227: <span class="ruby-comment cmt"># away from calendar months. But it's better than using 30.4167 which</span>
971
+ 228: <span class="ruby-comment cmt"># does not align with day boundaries.</span>
972
+ 229: <span class="ruby-identifier">period</span> = <span class="ruby-value">60</span> * <span class="ruby-value">60</span> * <span class="ruby-value">24</span> * <span class="ruby-value">30</span>
973
+ 230: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">false</span>
974
+ 231: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'maximum'</span>
975
+ 232: <span class="ruby-identifier">period</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>
976
+ 233: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">true</span>
977
+ 234: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'minimum'</span>
978
+ 235: <span class="ruby-identifier">period</span> = <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>
979
+ 236: <span class="ruby-identifier">upper</span> = <span class="ruby-keyword kw">false</span>
980
+ 237: <span class="ruby-keyword kw">else</span>
981
+ 238: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Limit period undefined&quot;</span>
982
+ 239: <span class="ruby-keyword kw">end</span>
983
+ 240:
984
+ 241: <span class="ruby-ivar">@limits</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Limit</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">period</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">upper</span>, <span class="ruby-identifier">resource</span>)
985
+ 242: <span class="ruby-keyword kw">end</span></pre>
980
986
  </div>
981
987
 
982
988
  </div>
@@ -135,6 +135,8 @@
135
135
 
136
136
  <li><a href="../../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
137
137
 
138
+ <li><a href="../../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
139
+
138
140
  <li><a href="../../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
139
141
 
140
142
  <li><a href="../../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -213,6 +215,8 @@
213
215
 
214
216
  <li><a href="../../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
215
217
 
218
+ <li><a href="../../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
219
+
216
220
  <li><a href="../../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
217
221
 
218
222
  <li><a href="../../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -245,6 +249,8 @@
245
249
 
246
250
  <li><a href="../../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
247
251
 
252
+ <li><a href="../../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
253
+
248
254
  <li><a href="../../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
249
255
 
250
256
  <li><a href="../../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -525,6 +531,8 @@
525
531
 
526
532
  <li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
527
533
 
534
+ <li><a href="../../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
535
+
528
536
  <li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
529
537
 
530
538
  <li><a href="../../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -551,8 +559,6 @@
551
559
 
552
560
  <li><a href="../../String.html">String</a></li>
553
561
 
554
- <li><a href="../../StringIO.html">StringIO</a></li>
555
-
556
562
  </ul>
557
563
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
558
564
  </div>
@@ -680,20 +686,20 @@ href="../Resource.html">Resource</a> specified by <tt>resource</tt>.
680
686
  <div class="method-source-code"
681
687
  id="new-source">
682
688
  <pre>
683
- <span class="ruby-comment cmt"># File lib/Limits.rb, line 36</span>
684
- 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">period</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">upper</span>, <span class="ruby-identifier">resource</span>)
685
- 37: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
686
- 38: <span class="ruby-ivar">@interval</span> = <span class="ruby-identifier">interval</span>
687
- 39: <span class="ruby-ivar">@period</span> = <span class="ruby-identifier">period</span>
688
- 40: <span class="ruby-ivar">@value</span> = <span class="ruby-identifier">value</span>
689
- 41: <span class="ruby-ivar">@upper</span> = <span class="ruby-identifier">upper</span>
690
- 42: <span class="ruby-ivar">@resource</span> = <span class="ruby-identifier">resource</span>
691
- 43:
692
- 44: <span class="ruby-comment cmt"># To avoid multiple resets of untouched scoreboards we keep this dirty</span>
693
- 45: <span class="ruby-comment cmt"># flag. It's set whenever a counter is increased.</span>
694
- 46: <span class="ruby-ivar">@dirty</span> = <span class="ruby-keyword kw">true</span>
695
- 47: <span class="ruby-identifier">reset</span>
696
- 48: <span class="ruby-keyword kw">end</span></pre>
689
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 37</span>
690
+ 37: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">period</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">upper</span>, <span class="ruby-identifier">resource</span>)
691
+ 38: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
692
+ 39: <span class="ruby-ivar">@interval</span> = <span class="ruby-identifier">interval</span>
693
+ 40: <span class="ruby-ivar">@period</span> = <span class="ruby-identifier">period</span>
694
+ 41: <span class="ruby-ivar">@value</span> = <span class="ruby-identifier">value</span>
695
+ 42: <span class="ruby-ivar">@upper</span> = <span class="ruby-identifier">upper</span>
696
+ 43: <span class="ruby-ivar">@resource</span> = <span class="ruby-identifier">resource</span>
697
+ 44:
698
+ 45: <span class="ruby-comment cmt"># To avoid multiple resets of untouched scoreboards we keep this dirty</span>
699
+ 46: <span class="ruby-comment cmt"># flag. It's set whenever a counter is increased.</span>
700
+ 47: <span class="ruby-ivar">@dirty</span> = <span class="ruby-keyword kw">true</span>
701
+ 48: <span class="ruby-identifier">reset</span>
702
+ 49: <span class="ruby-keyword kw">end</span></pre>
697
703
  </div>
698
704
 
699
705
  </div>
@@ -732,10 +738,10 @@ Returns a deep copy of the class instance.
732
738
  <div class="method-source-code"
733
739
  id="copy-source">
734
740
  <pre>
735
- <span class="ruby-comment cmt"># File lib/Limits.rb, line 51</span>
736
- 51: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copy</span>
737
- 52: <span class="ruby-constant">Limit</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@name</span>, <span class="ruby-ivar">@interval</span>, <span class="ruby-ivar">@period</span>, <span class="ruby-ivar">@value</span>, <span class="ruby-ivar">@upper</span>, <span class="ruby-ivar">@resource</span>)
738
- 53: <span class="ruby-keyword kw">end</span></pre>
741
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 52</span>
742
+ 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copy</span>
743
+ 53: <span class="ruby-constant">Limit</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@name</span>, <span class="ruby-ivar">@interval</span>, <span class="ruby-ivar">@period</span>, <span class="ruby-ivar">@value</span>, <span class="ruby-ivar">@upper</span>, <span class="ruby-ivar">@resource</span>)
744
+ 54: <span class="ruby-keyword kw">end</span></pre>
739
745
  </div>
740
746
 
741
747
  </div>
@@ -772,15 +778,15 @@ relationship between @resource and <em>resource</em> is described below. @r
772
778
  <div class="method-source-code"
773
779
  id="inc-source">
774
780
  <pre>
775
- <span class="ruby-comment cmt"># File lib/Limits.rb, line 75</span>
776
- 75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inc</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">resource</span>)
777
- 76: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">contains?</span>(<span class="ruby-identifier">date</span>) <span class="ruby-operator">&amp;&amp;</span>
778
- 77: (<span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@resource</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">resource</span>)
779
- 78: <span class="ruby-comment cmt"># The condition is met, increment the counter for the interval.</span>
780
- 79: <span class="ruby-ivar">@dirty</span> = <span class="ruby-keyword kw">true</span>
781
- 80: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">date</span>, <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">date</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
782
- 81: <span class="ruby-keyword kw">end</span>
783
- 82: <span class="ruby-keyword kw">end</span></pre>
781
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 76</span>
782
+ 76: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inc</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">resource</span>)
783
+ 77: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">contains?</span>(<span class="ruby-identifier">date</span>) <span class="ruby-operator">&amp;&amp;</span>
784
+ 78: (<span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@resource</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">resource</span>)
785
+ 79: <span class="ruby-comment cmt"># The condition is met, increment the counter for the interval.</span>
786
+ 80: <span class="ruby-ivar">@dirty</span> = <span class="ruby-keyword kw">true</span>
787
+ 81: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">date</span>, <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">date</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
788
+ 82: <span class="ruby-keyword kw">end</span>
789
+ 83: <span class="ruby-keyword kw">end</span></pre>
784
790
  </div>
785
791
 
786
792
  </div>
@@ -819,29 +825,29 @@ between <em>resource</em> and @resource is described in the matrix below:
819
825
  <div class="method-source-code"
820
826
  id="ok--source">
821
827
  <pre>
822
- <span class="ruby-comment cmt"># File lib/Limits.rb, line 92</span>
823
- 92: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ok?</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">upper</span>, <span class="ruby-identifier">resource</span>)
824
- 93: <span class="ruby-comment cmt"># if @upper does not match or the provided resource does not match,</span>
825
- 94: <span class="ruby-comment cmt"># we can ignore this limit.</span>
826
- 95: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@upper</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">upper</span> <span class="ruby-operator">||</span>
827
- 96: (<span class="ruby-operator">!</span><span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">^</span> <span class="ruby-operator">!</span><span class="ruby-identifier">resource</span>.<span class="ruby-identifier">nil?</span>) <span class="ruby-operator">||</span>
828
- 97: (<span class="ruby-ivar">@resource</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">resource</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@resource</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">resource</span>)
829
- 98:
830
- 99: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">nil?</span>
831
- 100: <span class="ruby-comment cmt"># No date given. We need to check all counters.</span>
832
- 101: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
833
- 102: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@upper</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@value</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@value</span>
834
- 103: <span class="ruby-keyword kw">end</span>
835
- 104: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
836
- 105: <span class="ruby-keyword kw">else</span>
837
- 106: <span class="ruby-comment cmt"># If the date is outside the interval we don't have to check</span>
838
- 107: <span class="ruby-comment cmt"># anything. Everything is ok.</span>
839
- 108: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">contains?</span>(<span class="ruby-identifier">date</span>)
840
- 109:
841
- 110: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@upper</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">date</span>) <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@value</span> <span class="ruby-operator">:</span>
842
- 111: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">date</span>) <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@value</span>
843
- 112: <span class="ruby-keyword kw">end</span>
844
- 113: <span class="ruby-keyword kw">end</span></pre>
828
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 93</span>
829
+ 93: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ok?</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">upper</span>, <span class="ruby-identifier">resource</span>)
830
+ 94: <span class="ruby-comment cmt"># if @upper does not match or the provided resource does not match,</span>
831
+ 95: <span class="ruby-comment cmt"># we can ignore this limit.</span>
832
+ 96: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@upper</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">upper</span> <span class="ruby-operator">||</span>
833
+ 97: (<span class="ruby-operator">!</span><span class="ruby-ivar">@resource</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">^</span> <span class="ruby-operator">!</span><span class="ruby-identifier">resource</span>.<span class="ruby-identifier">nil?</span>) <span class="ruby-operator">||</span>
834
+ 98: (<span class="ruby-ivar">@resource</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">resource</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@resource</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">resource</span>)
835
+ 99:
836
+ 100: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">nil?</span>
837
+ 101: <span class="ruby-comment cmt"># No date given. We need to check all counters.</span>
838
+ 102: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
839
+ 103: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@upper</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@value</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@value</span>
840
+ 104: <span class="ruby-keyword kw">end</span>
841
+ 105: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
842
+ 106: <span class="ruby-keyword kw">else</span>
843
+ 107: <span class="ruby-comment cmt"># If the date is outside the interval we don't have to check</span>
844
+ 108: <span class="ruby-comment cmt"># anything. Everything is ok.</span>
845
+ 109: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">contains?</span>(<span class="ruby-identifier">date</span>)
846
+ 110:
847
+ 111: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@upper</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">date</span>) <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@value</span> <span class="ruby-operator">:</span>
848
+ 112: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">date</span>) <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@value</span>
849
+ 113: <span class="ruby-keyword kw">end</span>
850
+ 114: <span class="ruby-keyword kw">end</span></pre>
845
851
  </div>
846
852
 
847
853
  </div>
@@ -875,19 +881,19 @@ specified by <tt>date</tt> or to reset all counters.
875
881
  <div class="method-source-code"
876
882
  id="reset-source">
877
883
  <pre>
878
- <span class="ruby-comment cmt"># File lib/Limits.rb, line 57</span>
879
- 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>(<span class="ruby-identifier">date</span> = <span class="ruby-keyword kw">nil</span>)
880
- 58: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@dirty</span>
881
- 59:
882
- 60: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">nil?</span>
883
- 61: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-constant">Scoreboard</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">start</span>, <span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">end</span>,
884
- 62: <span class="ruby-ivar">@period</span>, <span class="ruby-value">0</span>)
885
- 63: <span class="ruby-keyword kw">else</span>
886
- 64: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">contains?</span>(<span class="ruby-identifier">date</span>)
887
- 65: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">0</span>)
888
- 66: <span class="ruby-keyword kw">end</span>
889
- 67: <span class="ruby-ivar">@dirty</span> = <span class="ruby-keyword kw">false</span>
890
- 68: <span class="ruby-keyword kw">end</span></pre>
884
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 58</span>
885
+ 58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>(<span class="ruby-identifier">date</span> = <span class="ruby-keyword kw">nil</span>)
886
+ 59: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@dirty</span>
887
+ 60:
888
+ 61: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">nil?</span>
889
+ 62: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-constant">Scoreboard</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">start</span>, <span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">end</span>,
890
+ 63: <span class="ruby-ivar">@period</span>, <span class="ruby-value">0</span>)
891
+ 64: <span class="ruby-keyword kw">else</span>
892
+ 65: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@interval</span>.<span class="ruby-identifier">contains?</span>(<span class="ruby-identifier">date</span>)
893
+ 66: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">0</span>)
894
+ 67: <span class="ruby-keyword kw">end</span>
895
+ 68: <span class="ruby-ivar">@dirty</span> = <span class="ruby-keyword kw">false</span>
896
+ 69: <span class="ruby-keyword kw">end</span></pre>
891
897
  </div>
892
898
 
893
899
  </div>