taskjuggler 0.0.2

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 (571) hide show
  1. data/COPYING +280 -0
  2. data/README +31 -0
  3. data/Rakefile +20 -0
  4. data/benchmarks/UTF-8-Strings.rb +58 -0
  5. data/benchmarks/allocate.tjp +30 -0
  6. data/benchmarks/booking.tjp +62 -0
  7. data/benchmarks/depends.tjp +112 -0
  8. data/benchmarks/htmltaskreport.tjp +45 -0
  9. data/benchmarks/runbench.rb +24 -0
  10. data/bin/tj3 +3 -0
  11. data/bin/tj3man +3 -0
  12. data/doc/classes/AppConfig.html +808 -0
  13. data/doc/classes/Arguments.html +226 -0
  14. data/doc/classes/String.html +395 -0
  15. data/doc/classes/TaskJuggler.html +1358 -0
  16. data/doc/classes/TaskJuggler/Account.html +257 -0
  17. data/doc/classes/TaskJuggler/AccountScenario.html +218 -0
  18. data/doc/classes/TaskJuggler/Allocation.html +419 -0
  19. data/doc/classes/TaskJuggler/AllocationAttribute.html +291 -0
  20. data/doc/classes/TaskJuggler/AttributeBase.html +608 -0
  21. data/doc/classes/TaskJuggler/AttributeDefinition.html +259 -0
  22. data/doc/classes/TaskJuggler/Booking.html +307 -0
  23. data/doc/classes/TaskJuggler/BookingListAttribute.html +263 -0
  24. data/doc/classes/TaskJuggler/BooleanAttribute.html +261 -0
  25. data/doc/classes/TaskJuggler/CSVFile.html +325 -0
  26. data/doc/classes/TaskJuggler/Charge.html +279 -0
  27. data/doc/classes/TaskJuggler/ChargeListAttribute.html +229 -0
  28. data/doc/classes/TaskJuggler/ChargeSet.html +440 -0
  29. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +276 -0
  30. data/doc/classes/TaskJuggler/ColumnTable.html +260 -0
  31. data/doc/classes/TaskJuggler/DateAttribute.html +194 -0
  32. data/doc/classes/TaskJuggler/DependencyListAttribute.html +267 -0
  33. data/doc/classes/TaskJuggler/DurationAttribute.html +229 -0
  34. data/doc/classes/TaskJuggler/FixnumAttribute.html +194 -0
  35. data/doc/classes/TaskJuggler/FlagListAttribute.html +263 -0
  36. data/doc/classes/TaskJuggler/FloatAttribute.html +229 -0
  37. data/doc/classes/TaskJuggler/GanttChart.html +667 -0
  38. data/doc/classes/TaskJuggler/GanttContainer.html +441 -0
  39. data/doc/classes/TaskJuggler/GanttHeader.html +280 -0
  40. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +245 -0
  41. data/doc/classes/TaskJuggler/GanttLine.html +398 -0
  42. data/doc/classes/TaskJuggler/GanttLoadStack.html +327 -0
  43. data/doc/classes/TaskJuggler/GanttMilestone.html +415 -0
  44. data/doc/classes/TaskJuggler/GanttRouter.html +425 -0
  45. data/doc/classes/TaskJuggler/GanttTaskBar.html +429 -0
  46. data/doc/classes/TaskJuggler/HTMLDocument.html +240 -0
  47. data/doc/classes/TaskJuggler/HTMLGraphics.html +231 -0
  48. data/doc/classes/TaskJuggler/Interval.html +552 -0
  49. data/doc/classes/TaskJuggler/IntervalListAttribute.html +267 -0
  50. data/doc/classes/TaskJuggler/KeywordDocumentation.html +796 -0
  51. data/doc/classes/TaskJuggler/Limits.html +416 -0
  52. data/doc/classes/TaskJuggler/Limits/Limit.html +381 -0
  53. data/doc/classes/TaskJuggler/LimitsAttribute.html +261 -0
  54. data/doc/classes/TaskJuggler/Log.html +613 -0
  55. data/doc/classes/TaskJuggler/LogicalAttribute.html +226 -0
  56. data/doc/classes/TaskJuggler/LogicalExpression.html +251 -0
  57. data/doc/classes/TaskJuggler/LogicalFlag.html +229 -0
  58. data/doc/classes/TaskJuggler/LogicalFunction.html +324 -0
  59. data/doc/classes/TaskJuggler/LogicalOperation.html +299 -0
  60. data/doc/classes/TaskJuggler/Macro.html +194 -0
  61. data/doc/classes/TaskJuggler/MacroParser.html +360 -0
  62. data/doc/classes/TaskJuggler/MacroTable.html +366 -0
  63. data/doc/classes/TaskJuggler/Message.html +281 -0
  64. data/doc/classes/TaskJuggler/MessageHandler.html +215 -0
  65. data/doc/classes/TaskJuggler/Project.html +1606 -0
  66. data/doc/classes/TaskJuggler/ProjectFileParser.html +412 -0
  67. data/doc/classes/TaskJuggler/PropertyList.html +597 -0
  68. data/doc/classes/TaskJuggler/PropertySet.html +1200 -0
  69. data/doc/classes/TaskJuggler/PropertyTreeNode.html +1449 -0
  70. data/doc/classes/TaskJuggler/Query.html +600 -0
  71. data/doc/classes/TaskJuggler/RealFormat.html +252 -0
  72. data/doc/classes/TaskJuggler/ReferenceAttribute.html +194 -0
  73. data/doc/classes/TaskJuggler/Report.html +528 -0
  74. data/doc/classes/TaskJuggler/ReportElement.html +1070 -0
  75. data/doc/classes/TaskJuggler/ReportTable.html +497 -0
  76. data/doc/classes/TaskJuggler/ReportTableCell.html +518 -0
  77. data/doc/classes/TaskJuggler/ReportTableColumn.html +364 -0
  78. data/doc/classes/TaskJuggler/ReportTableElement.html +644 -0
  79. data/doc/classes/TaskJuggler/ReportTableLegend.html +343 -0
  80. data/doc/classes/TaskJuggler/ReportTableLine.html +431 -0
  81. data/doc/classes/TaskJuggler/Resource.html +211 -0
  82. data/doc/classes/TaskJuggler/ResourceListAttribute.html +267 -0
  83. data/doc/classes/TaskJuggler/ResourceListRE.html +249 -0
  84. data/doc/classes/TaskJuggler/ResourceScenario.html +1137 -0
  85. data/doc/classes/TaskJuggler/RichText.html +537 -0
  86. data/doc/classes/TaskJuggler/RichTextAttribute.html +229 -0
  87. data/doc/classes/TaskJuggler/RichTextDocument.html +418 -0
  88. data/doc/classes/TaskJuggler/RichTextElement.html +829 -0
  89. data/doc/classes/TaskJuggler/RichTextException.html +212 -0
  90. data/doc/classes/TaskJuggler/RichTextParser.html +317 -0
  91. data/doc/classes/TaskJuggler/RichTextProtocolExample.html +303 -0
  92. data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +194 -0
  93. data/doc/classes/TaskJuggler/RichTextScanner.html +561 -0
  94. data/doc/classes/TaskJuggler/RichTextSnip.html +364 -0
  95. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +883 -0
  96. data/doc/classes/TaskJuggler/Scenario.html +163 -0
  97. data/doc/classes/TaskJuggler/ScenarioData.html +354 -0
  98. data/doc/classes/TaskJuggler/Scoreboard.html +638 -0
  99. data/doc/classes/TaskJuggler/Shift.html +255 -0
  100. data/doc/classes/TaskJuggler/ShiftAssignment.html +488 -0
  101. data/doc/classes/TaskJuggler/ShiftAssignments.html +715 -0
  102. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +261 -0
  103. data/doc/classes/TaskJuggler/ShiftScenario.html +282 -0
  104. data/doc/classes/TaskJuggler/SourceFileInfo.html +247 -0
  105. data/doc/classes/TaskJuggler/StringAttribute.html +229 -0
  106. data/doc/classes/TaskJuggler/SymbolAttribute.html +194 -0
  107. data/doc/classes/TaskJuggler/SyntaxReference.html +516 -0
  108. data/doc/classes/TaskJuggler/TOCEntry.html +242 -0
  109. data/doc/classes/TaskJuggler/TableColumnDefinition.html +273 -0
  110. data/doc/classes/TaskJuggler/TableOfContents.html +256 -0
  111. data/doc/classes/TaskJuggler/Task.html +203 -0
  112. data/doc/classes/TaskJuggler/TaskDependency.html +251 -0
  113. data/doc/classes/TaskJuggler/TaskListAttribute.html +267 -0
  114. data/doc/classes/TaskJuggler/TaskListRE.html +250 -0
  115. data/doc/classes/TaskJuggler/TaskScenario.html +2206 -0
  116. data/doc/classes/TaskJuggler/TextParser.html +670 -0
  117. data/doc/classes/TaskJuggler/TextParser/Pattern.html +923 -0
  118. data/doc/classes/TaskJuggler/TextParser/Rule.html +779 -0
  119. data/doc/classes/TaskJuggler/TextParser/StackElement.html +267 -0
  120. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +212 -0
  121. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +221 -0
  122. data/doc/classes/TaskJuggler/TextScanner.html +708 -0
  123. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +355 -0
  124. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +341 -0
  125. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +260 -0
  126. data/doc/classes/TaskJuggler/TjException.html +185 -0
  127. data/doc/classes/TaskJuggler/TjTime.html +1845 -0
  128. data/doc/classes/TaskJuggler/TjpExample.html +310 -0
  129. data/doc/classes/TaskJuggler/TjpExportRE.html +329 -0
  130. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +8928 -0
  131. data/doc/classes/TaskJuggler/UserManual.html +606 -0
  132. data/doc/classes/TaskJuggler/WorkingHours.html +582 -0
  133. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +284 -0
  134. data/doc/classes/TaskJuggler/XMLBlob.html +207 -0
  135. data/doc/classes/TaskJuggler/XMLComment.html +206 -0
  136. data/doc/classes/TaskJuggler/XMLDocument.html +293 -0
  137. data/doc/classes/TaskJuggler/XMLElement.html +341 -0
  138. data/doc/classes/TaskJuggler/XMLNamedText.html +174 -0
  139. data/doc/classes/TaskJuggler/XMLText.html +221 -0
  140. data/doc/files/COPYING.html +448 -0
  141. data/doc/files/README.html +134 -0
  142. data/doc/files/lib/AccountScenario_rb.html +116 -0
  143. data/doc/files/lib/Account_rb.html +118 -0
  144. data/doc/files/lib/Allocation_rb.html +118 -0
  145. data/doc/files/lib/AppConfig_rb.html +116 -0
  146. data/doc/files/lib/AttributeBase_rb.html +106 -0
  147. data/doc/files/lib/AttributeDefinition_rb.html +106 -0
  148. data/doc/files/lib/Attributes_rb.html +130 -0
  149. data/doc/files/lib/Booking_rb.html +106 -0
  150. data/doc/files/lib/ChargeSet_rb.html +116 -0
  151. data/doc/files/lib/Charge_rb.html +116 -0
  152. data/doc/files/lib/HTMLDocument_rb.html +116 -0
  153. data/doc/files/lib/Interval_rb.html +116 -0
  154. data/doc/files/lib/KeywordDocumentation_rb.html +122 -0
  155. data/doc/files/lib/Limits_rb.html +116 -0
  156. data/doc/files/lib/Log_rb.html +116 -0
  157. data/doc/files/lib/LogicalExpression_rb.html +122 -0
  158. data/doc/files/lib/LogicalFlag_rb.html +116 -0
  159. data/doc/files/lib/LogicalFunction_rb.html +116 -0
  160. data/doc/files/lib/LogicalOperation_rb.html +116 -0
  161. data/doc/files/lib/MacroParser_rb.html +118 -0
  162. data/doc/files/lib/MacroTable_rb.html +122 -0
  163. data/doc/files/lib/MessageHandler_rb.html +106 -0
  164. data/doc/files/lib/Message_rb.html +116 -0
  165. data/doc/files/lib/ProjectFileParser_rb.html +122 -0
  166. data/doc/files/lib/Project_rb.html +148 -0
  167. data/doc/files/lib/PropertyList_rb.html +106 -0
  168. data/doc/files/lib/PropertySet_rb.html +118 -0
  169. data/doc/files/lib/PropertyTreeNode_rb.html +106 -0
  170. data/doc/files/lib/Query_rb.html +116 -0
  171. data/doc/files/lib/RealFormat_rb.html +106 -0
  172. data/doc/files/lib/ResourceScenario_rb.html +116 -0
  173. data/doc/files/lib/Resource_rb.html +118 -0
  174. data/doc/files/lib/RichTextDocument_rb.html +120 -0
  175. data/doc/files/lib/RichTextElement_rb.html +120 -0
  176. data/doc/files/lib/RichTextParser_rb.html +120 -0
  177. data/doc/files/lib/RichTextProtocolExample_rb.html +120 -0
  178. data/doc/files/lib/RichTextProtocolHandler_rb.html +106 -0
  179. data/doc/files/lib/RichTextScanner_rb.html +116 -0
  180. data/doc/files/lib/RichTextSnip_rb.html +118 -0
  181. data/doc/files/lib/RichTextSyntaxRules_rb.html +106 -0
  182. data/doc/files/lib/RichText_rb.html +118 -0
  183. data/doc/files/lib/ScenarioData_rb.html +118 -0
  184. data/doc/files/lib/Scenario_rb.html +116 -0
  185. data/doc/files/lib/Scoreboard_rb.html +106 -0
  186. data/doc/files/lib/ShiftAssignments_rb.html +116 -0
  187. data/doc/files/lib/ShiftScenario_rb.html +116 -0
  188. data/doc/files/lib/Shift_rb.html +118 -0
  189. data/doc/files/lib/SourceFileInfo_rb.html +106 -0
  190. data/doc/files/lib/SyntaxReference_rb.html +122 -0
  191. data/doc/files/lib/TOCEntry_rb.html +118 -0
  192. data/doc/files/lib/TableColumnDefinition_rb.html +106 -0
  193. data/doc/files/lib/TableOfContents_rb.html +118 -0
  194. data/doc/files/lib/TaskDependency_rb.html +106 -0
  195. data/doc/files/lib/TaskJuggler_rb.html +120 -0
  196. data/doc/files/lib/TaskScenario_rb.html +116 -0
  197. data/doc/files/lib/Task_rb.html +118 -0
  198. data/doc/files/lib/TextParser/Pattern_rb.html +116 -0
  199. data/doc/files/lib/TextParser/Rule_rb.html +106 -0
  200. data/doc/files/lib/TextParser/StackElement_rb.html +106 -0
  201. data/doc/files/lib/TextParser/TokenDoc_rb.html +106 -0
  202. data/doc/files/lib/TextParser_rb.html +124 -0
  203. data/doc/files/lib/TextScanner_rb.html +128 -0
  204. data/doc/files/lib/Tj3Config_rb.html +118 -0
  205. data/doc/files/lib/TjException_rb.html +106 -0
  206. data/doc/files/lib/TjTime_rb.html +118 -0
  207. data/doc/files/lib/TjpExample_rb.html +116 -0
  208. data/doc/files/lib/TjpSyntaxRules_rb.html +106 -0
  209. data/doc/files/lib/UTF8String_rb.html +132 -0
  210. data/doc/files/lib/UserManual_rb.html +124 -0
  211. data/doc/files/lib/WorkingHours_rb.html +116 -0
  212. data/doc/files/lib/XMLDocument_rb.html +116 -0
  213. data/doc/files/lib/XMLElement_rb.html +116 -0
  214. data/doc/files/lib/reports/CSVFile_rb.html +116 -0
  215. data/doc/files/lib/reports/ColumnTable_rb.html +116 -0
  216. data/doc/files/lib/reports/GanttChart_rb.html +122 -0
  217. data/doc/files/lib/reports/GanttContainer_rb.html +116 -0
  218. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +106 -0
  219. data/doc/files/lib/reports/GanttHeader_rb.html +116 -0
  220. data/doc/files/lib/reports/GanttLine_rb.html +126 -0
  221. data/doc/files/lib/reports/GanttLoadStack_rb.html +116 -0
  222. data/doc/files/lib/reports/GanttMilestone_rb.html +116 -0
  223. data/doc/files/lib/reports/GanttRouter_rb.html +106 -0
  224. data/doc/files/lib/reports/GanttTaskBar_rb.html +116 -0
  225. data/doc/files/lib/reports/HTMLGraphics_rb.html +106 -0
  226. data/doc/files/lib/reports/ReportElement_rb.html +118 -0
  227. data/doc/files/lib/reports/ReportTableCell_rb.html +106 -0
  228. data/doc/files/lib/reports/ReportTableColumn_rb.html +106 -0
  229. data/doc/files/lib/reports/ReportTableElement_rb.html +122 -0
  230. data/doc/files/lib/reports/ReportTableLegend_rb.html +106 -0
  231. data/doc/files/lib/reports/ReportTableLine_rb.html +116 -0
  232. data/doc/files/lib/reports/ReportTable_rb.html +118 -0
  233. data/doc/files/lib/reports/Report_rb.html +126 -0
  234. data/doc/files/lib/reports/ResourceListRE_rb.html +122 -0
  235. data/doc/files/lib/reports/TaskListRE_rb.html +122 -0
  236. data/doc/files/lib/reports/TjpExportRE_rb.html +116 -0
  237. data/doc/files/lib/taskjuggler3_rb.html +276 -0
  238. data/doc/files/lib/tj3man_rb.html +189 -0
  239. data/doc/fr_class_index.html +285 -0
  240. data/doc/fr_file_index.html +223 -0
  241. data/doc/fr_method_index.html +1953 -0
  242. data/doc/index.html +21 -0
  243. data/doc/rdoc-style.css +299 -0
  244. data/examples/tutorial.tjp +361 -0
  245. data/gem_spec.rb +30 -0
  246. data/lib/Account.rb +50 -0
  247. data/lib/AccountScenario.rb +39 -0
  248. data/lib/Allocation.rb +102 -0
  249. data/lib/AppConfig.rb +134 -0
  250. data/lib/AttributeBase.rb +131 -0
  251. data/lib/AttributeDefinition.rb +47 -0
  252. data/lib/Attributes.rb +478 -0
  253. data/lib/BatchProcessor.rb +209 -0
  254. data/lib/Booking.rb +59 -0
  255. data/lib/Charge.rb +71 -0
  256. data/lib/ChargeSet.rb +126 -0
  257. data/lib/HTMLDocument.rb +59 -0
  258. data/lib/Interval.rb +127 -0
  259. data/lib/KeywordDocumentation.rb +560 -0
  260. data/lib/Limits.rb +219 -0
  261. data/lib/Log.rb +160 -0
  262. data/lib/LogicalExpression.rb +71 -0
  263. data/lib/LogicalFlag.rb +34 -0
  264. data/lib/LogicalFunction.rb +102 -0
  265. data/lib/LogicalOperation.rb +118 -0
  266. data/lib/MacroParser.rb +77 -0
  267. data/lib/MacroTable.rb +84 -0
  268. data/lib/Message.rb +56 -0
  269. data/lib/MessageHandler.rb +34 -0
  270. data/lib/Project.rb +662 -0
  271. data/lib/ProjectFileParser.rb +333 -0
  272. data/lib/PropertyList.rb +181 -0
  273. data/lib/PropertySet.rb +304 -0
  274. data/lib/PropertyTreeNode.rb +461 -0
  275. data/lib/Query.rb +227 -0
  276. data/lib/RealFormat.rb +73 -0
  277. data/lib/Resource.rb +42 -0
  278. data/lib/ResourceScenario.rb +511 -0
  279. data/lib/RichText.rb +147 -0
  280. data/lib/RichTextDocument.rb +139 -0
  281. data/lib/RichTextElement.rb +391 -0
  282. data/lib/RichTextParser.rb +66 -0
  283. data/lib/RichTextProtocolExample.rb +65 -0
  284. data/lib/RichTextProtocolHandler.rb +35 -0
  285. data/lib/RichTextScanner.rb +390 -0
  286. data/lib/RichTextSnip.rb +104 -0
  287. data/lib/RichTextSyntaxRules.rb +265 -0
  288. data/lib/Scenario.rb +27 -0
  289. data/lib/ScenarioData.rb +65 -0
  290. data/lib/Scoreboard.rb +141 -0
  291. data/lib/Shift.rb +48 -0
  292. data/lib/ShiftAssignments.rb +291 -0
  293. data/lib/ShiftScenario.rb +46 -0
  294. data/lib/SourceFileInfo.rb +37 -0
  295. data/lib/SyntaxReference.rb +284 -0
  296. data/lib/TOCEntry.rb +76 -0
  297. data/lib/TableColumnDefinition.rb +54 -0
  298. data/lib/TableOfContents.rb +46 -0
  299. data/lib/Task.rb +37 -0
  300. data/lib/TaskDependency.rb +39 -0
  301. data/lib/TaskJuggler.rb +84 -0
  302. data/lib/TaskScenario.rb +1622 -0
  303. data/lib/TextParser.rb +416 -0
  304. data/lib/TextParser/Pattern.rb +263 -0
  305. data/lib/TextParser/Rule.rb +171 -0
  306. data/lib/TextParser/StackElement.rb +45 -0
  307. data/lib/TextParser/TokenDoc.rb +38 -0
  308. data/lib/TextScanner.rb +682 -0
  309. data/lib/Tj3Config.rb +27 -0
  310. data/lib/TjException.rb +27 -0
  311. data/lib/TjTime.rb +395 -0
  312. data/lib/TjpExample.rb +119 -0
  313. data/lib/TjpSyntaxRules.rb +4022 -0
  314. data/lib/UTF8String.rb +100 -0
  315. data/lib/UserManual.rb +282 -0
  316. data/lib/WorkingHours.rb +323 -0
  317. data/lib/XMLDocument.rb +54 -0
  318. data/lib/XMLElement.rb +175 -0
  319. data/lib/reports/CSVFile.rb +146 -0
  320. data/lib/reports/ColumnTable.rb +66 -0
  321. data/lib/reports/GanttChart.rb +308 -0
  322. data/lib/reports/GanttContainer.rb +107 -0
  323. data/lib/reports/GanttHeader.rb +141 -0
  324. data/lib/reports/GanttHeaderScaleItem.rb +42 -0
  325. data/lib/reports/GanttLine.rb +329 -0
  326. data/lib/reports/GanttLoadStack.rb +113 -0
  327. data/lib/reports/GanttMilestone.rb +80 -0
  328. data/lib/reports/GanttRouter.rb +375 -0
  329. data/lib/reports/GanttTaskBar.rb +95 -0
  330. data/lib/reports/HTMLGraphics.rb +65 -0
  331. data/lib/reports/Report.rb +344 -0
  332. data/lib/reports/ReportElement.rb +427 -0
  333. data/lib/reports/ReportTable.rb +144 -0
  334. data/lib/reports/ReportTableCell.rb +142 -0
  335. data/lib/reports/ReportTableColumn.rb +82 -0
  336. data/lib/reports/ReportTableElement.rb +852 -0
  337. data/lib/reports/ReportTableLegend.rb +167 -0
  338. data/lib/reports/ReportTableLine.rb +87 -0
  339. data/lib/reports/ResourceListRE.rb +72 -0
  340. data/lib/reports/TaskListRE.rb +73 -0
  341. data/lib/reports/TjpExportRE.rb +394 -0
  342. data/lib/taskjuggler3.rb +106 -0
  343. data/lib/tj3man.rb +88 -0
  344. data/manual/Day_To_Day_Juggling +168 -0
  345. data/manual/Getting_Started +61 -0
  346. data/manual/How_To_Contribute +185 -0
  347. data/manual/Installation +68 -0
  348. data/manual/Intro +102 -0
  349. data/manual/Reporting_Bugs +26 -0
  350. data/manual/Rich_Text_Attributes +90 -0
  351. data/manual/TaskJuggler_2x_Migration +40 -0
  352. data/manual/Tutorial +579 -0
  353. data/manual/fdl +450 -0
  354. data/prj_cfg.rb +43 -0
  355. data/setup.rb +1585 -0
  356. data/tasks/csts.rake +72 -0
  357. data/tasks/gem.rake +14 -0
  358. data/tasks/manual.rake +10 -0
  359. data/tasks/missing.rake +21 -0
  360. data/tasks/rcov.rake +14 -0
  361. data/tasks/rdoc.rake +17 -0
  362. data/tasks/rexml_fix.rb +16 -0
  363. data/tasks/rexml_fix_19.rb +49 -0
  364. data/tasks/show.rake +21 -0
  365. data/tasks/stats.rake +25 -0
  366. data/tasks/test.rake +11 -0
  367. data/test/MessageChecker.rb +53 -0
  368. data/test/TestSuite/CSV-Reports/celltext-Reference.csv +14 -0
  369. data/test/TestSuite/CSV-Reports/celltext.tjp +7 -0
  370. data/test/TestSuite/CSV-Reports/genrefs +6 -0
  371. data/test/TestSuite/CSV-Reports/project-1.tji +57 -0
  372. data/test/TestSuite/CSV-Reports/resourcereport-Reference.csv +4 -0
  373. data/test/TestSuite/CSV-Reports/resourcereport.tjp +10 -0
  374. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks-Reference.csv +22 -0
  375. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +11 -0
  376. data/test/TestSuite/CSV-Reports/sortByTree-Reference.csv +14 -0
  377. data/test/TestSuite/CSV-Reports/sortByTree.tjp +8 -0
  378. data/test/TestSuite/CSV-Reports/sortBy_duration.down-Reference.csv +14 -0
  379. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +10 -0
  380. data/test/TestSuite/CSV-Reports/sortBy_effort.up-Reference.csv +14 -0
  381. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +10 -0
  382. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down-Reference.csv +14 -0
  383. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +10 -0
  384. data/test/TestSuite/CSV-Reports/taskreport-Reference.csv +14 -0
  385. data/test/TestSuite/CSV-Reports/taskreport.tjp +10 -0
  386. data/test/TestSuite/CSV-Reports/taskreport_with_resources-Reference.csv +24 -0
  387. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +11 -0
  388. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +86 -0
  389. data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +63 -0
  390. data/test/TestSuite/Scheduler/Correct/Booking.tjp +161 -0
  391. data/test/TestSuite/Scheduler/Correct/Depends.tjp +50 -0
  392. data/test/TestSuite/Scheduler/Correct/Duration.tjp +34 -0
  393. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +129 -0
  394. data/test/TestSuite/Scheduler/Correct/Limits.tjp +81 -0
  395. data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +43 -0
  396. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +28 -0
  397. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +33 -0
  398. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +33 -0
  399. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +34 -0
  400. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +62 -0
  401. data/test/TestSuite/Scheduler/Correct/Precedes.tjp +50 -0
  402. data/test/TestSuite/Scheduler/Correct/Shift.tjp +102 -0
  403. data/test/TestSuite/Scheduler/Errors/account_no_leaf.tjp +13 -0
  404. data/test/TestSuite/Scheduler/Errors/booking_conflict.tjp +10 -0
  405. data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +9 -0
  406. data/test/TestSuite/Scheduler/Errors/booking_on_vacation.tjp +9 -0
  407. data/test/TestSuite/Scheduler/Errors/container_booking.tjp +14 -0
  408. data/test/TestSuite/Scheduler/Errors/container_duration.tjp +11 -0
  409. data/test/TestSuite/Scheduler/Errors/effort_no_allocations.tjp +7 -0
  410. data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +19 -0
  411. data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +36 -0
  412. data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +27 -0
  413. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +20 -0
  414. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +27 -0
  415. data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +26 -0
  416. data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +24 -0
  417. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +18 -0
  418. data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +36 -0
  419. data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +37 -0
  420. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +35 -0
  421. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +46 -0
  422. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +51 -0
  423. data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +20 -0
  424. data/test/TestSuite/Scheduler/Errors/maxend.tjp +8 -0
  425. data/test/TestSuite/Scheduler/Errors/maxstart.tjp +8 -0
  426. data/test/TestSuite/Scheduler/Errors/milestone_booking.tjp +10 -0
  427. data/test/TestSuite/Scheduler/Errors/milestone_duration.tjp +8 -0
  428. data/test/TestSuite/Scheduler/Errors/milestone_start_end.tjp +8 -0
  429. data/test/TestSuite/Scheduler/Errors/minend.tjp +8 -0
  430. data/test/TestSuite/Scheduler/Errors/minstart.tjp +8 -0
  431. data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +11 -0
  432. data/test/TestSuite/Scheduler/Errors/no_tasks.tjp +6 -0
  433. data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +8 -0
  434. data/test/TestSuite/Scheduler/Errors/task_depend_child.tjp +10 -0
  435. data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +13 -0
  436. data/test/TestSuite/Scheduler/Errors/task_depend_parent.tjp +11 -0
  437. data/test/TestSuite/Scheduler/Errors/task_depend_self.tjp +10 -0
  438. data/test/TestSuite/Scheduler/Errors/task_depend_unknown.tjp +10 -0
  439. data/test/TestSuite/Scheduler/Errors/task_overspecified_1.tjp +9 -0
  440. data/test/TestSuite/Scheduler/Errors/task_overspecified_2.tjp +14 -0
  441. data/test/TestSuite/Scheduler/Errors/task_overspecified_3.tjp +14 -0
  442. data/test/TestSuite/Scheduler/Errors/task_underspecified_1.tjp +8 -0
  443. data/test/TestSuite/Scheduler/Errors/task_underspecified_2.tjp +8 -0
  444. data/test/TestSuite/Scheduler/Errors/task_underspecified_3.tjp +9 -0
  445. data/test/TestSuite/Syntax/Correct/Account.tjp +53 -0
  446. data/test/TestSuite/Syntax/Correct/Allocate-1.tjp +24 -0
  447. data/test/TestSuite/Syntax/Correct/Alternative.tjp +13 -0
  448. data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +14 -0
  449. data/test/TestSuite/Syntax/Correct/Booking.tjp +26 -0
  450. data/test/TestSuite/Syntax/Correct/Caption.tjp +33 -0
  451. data/test/TestSuite/Syntax/Correct/Celltext.tjp +28 -0
  452. data/test/TestSuite/Syntax/Correct/Comments.tjp +29 -0
  453. data/test/TestSuite/Syntax/Correct/Complete.tjp +16 -0
  454. data/test/TestSuite/Syntax/Correct/CompletedWork.tji +20 -0
  455. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +31 -0
  456. data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +12 -0
  457. data/test/TestSuite/Syntax/Correct/CustomAttributes.tjp +14 -0
  458. data/test/TestSuite/Syntax/Correct/Depends1.tjp +22 -0
  459. data/test/TestSuite/Syntax/Correct/Durations.tjp +29 -0
  460. data/test/TestSuite/Syntax/Correct/Efficiency.tjp +19 -0
  461. data/test/TestSuite/Syntax/Correct/Export.tjp +40 -0
  462. data/test/TestSuite/Syntax/Correct/Flags.tjp +32 -0
  463. data/test/TestSuite/Syntax/Correct/Freeze.tjp +28 -0
  464. data/test/TestSuite/Syntax/Correct/Gap.tjp +15 -0
  465. data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +33 -0
  466. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +71 -0
  467. data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +31 -0
  468. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +19 -0
  469. data/test/TestSuite/Syntax/Correct/Mandatory.tjp +17 -0
  470. data/test/TestSuite/Syntax/Correct/Milestone.tjp +12 -0
  471. data/test/TestSuite/Syntax/Correct/MinMax.tjp +17 -0
  472. data/test/TestSuite/Syntax/Correct/Numberformat.tjp +12 -0
  473. data/test/TestSuite/Syntax/Correct/Period.tjp +16 -0
  474. data/test/TestSuite/Syntax/Correct/Persistent.tjp +11 -0
  475. data/test/TestSuite/Syntax/Correct/Precedes1.tjp +17 -0
  476. data/test/TestSuite/Syntax/Correct/Priority.tjp +30 -0
  477. data/test/TestSuite/Syntax/Correct/Project.tjp +21 -0
  478. data/test/TestSuite/Syntax/Correct/ProjectIDs.tjp +23 -0
  479. data/test/TestSuite/Syntax/Correct/RawHTML.tjp +29 -0
  480. data/test/TestSuite/Syntax/Correct/Reports.tjp +54 -0
  481. data/test/TestSuite/Syntax/Correct/Resource.tjp +20 -0
  482. data/test/TestSuite/Syntax/Correct/Responsible.tjp +16 -0
  483. data/test/TestSuite/Syntax/Correct/Scenario.tjp +15 -0
  484. data/test/TestSuite/Syntax/Correct/Scheduling.tjp +26 -0
  485. data/test/TestSuite/Syntax/Correct/Select.tjp +27 -0
  486. data/test/TestSuite/Syntax/Correct/Shift.tjp +55 -0
  487. data/test/TestSuite/Syntax/Correct/Simple.tjp +25 -0
  488. data/test/TestSuite/Syntax/Correct/String.tjp +12 -0
  489. data/test/TestSuite/Syntax/Correct/Supplement.tjp +24 -0
  490. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +34 -0
  491. data/test/TestSuite/Syntax/Correct/TimeFrame.tjp +19 -0
  492. data/test/TestSuite/Syntax/Correct/Timezone.tjp +8 -0
  493. data/test/TestSuite/Syntax/Correct/Vacation.tjp +33 -0
  494. data/test/TestSuite/Syntax/Correct/csvtest +16 -0
  495. data/test/TestSuite/Syntax/Correct/manual2example.rb +24 -0
  496. data/test/TestSuite/Syntax/Correct/tutorial.tjp +485 -0
  497. data/test/TestSuite/Syntax/Errors/bad_include.tjp +11 -0
  498. data/test/TestSuite/Syntax/Errors/booking_group.tjp +14 -0
  499. data/test/TestSuite/Syntax/Errors/booking_milestone.tjp +13 -0
  500. data/test/TestSuite/Syntax/Errors/booking_no_leaf.tjp +13 -0
  501. data/test/TestSuite/Syntax/Errors/chargeset.tjp +14 -0
  502. data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +15 -0
  503. data/test/TestSuite/Syntax/Errors/container_attribute.tjp +13 -0
  504. data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +24 -0
  505. data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +24 -0
  506. data/test/TestSuite/Syntax/Errors/date_in_range.tjp +7 -0
  507. data/test/TestSuite/Syntax/Errors/effort_zero.tjp +8 -0
  508. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -0
  509. data/test/TestSuite/Syntax/Errors/export_bad_extn.tjp +9 -0
  510. data/test/TestSuite/Syntax/Errors/extend_id_cap.tjp +7 -0
  511. data/test/TestSuite/Syntax/Errors/interval_end_in_range.tjp +7 -0
  512. data/test/TestSuite/Syntax/Errors/interval_start_in_range.tjp +7 -0
  513. data/test/TestSuite/Syntax/Errors/leaf_resource_id_expected.tjp +12 -0
  514. data/test/TestSuite/Syntax/Errors/misaligned_date.tjp +7 -0
  515. data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +10 -0
  516. data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +10 -0
  517. data/test/TestSuite/Syntax/Errors/operand_attribute.tjp +11 -0
  518. data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +11 -0
  519. data/test/TestSuite/Syntax/Errors/operand_unkn_scen.tjp +11 -0
  520. data/test/TestSuite/Syntax/Errors/overtime_range.tjp +13 -0
  521. data/test/TestSuite/Syntax/Errors/purge_no_list.tjp +8 -0
  522. data/test/TestSuite/Syntax/Errors/purge_unknown_id.tjp +8 -0
  523. data/test/TestSuite/Syntax/Errors/report_end.tjp +10 -0
  524. data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +10 -0
  525. data/test/TestSuite/Syntax/Errors/report_start.tjp +10 -0
  526. data/test/TestSuite/Syntax/Errors/resource_exists.tjp +7 -0
  527. data/test/TestSuite/Syntax/Errors/resource_id_expected.tjp +8 -0
  528. data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +24 -0
  529. data/test/TestSuite/Syntax/Errors/scenario_exists.tjp +7 -0
  530. data/test/TestSuite/Syntax/Errors/shift_assignment_overlap.tjp +15 -0
  531. data/test/TestSuite/Syntax/Errors/shift_exists.tjp +7 -0
  532. data/test/TestSuite/Syntax/Errors/shift_id_expected.tjp +7 -0
  533. data/test/TestSuite/Syntax/Errors/sloppy_range.tjp +13 -0
  534. data/test/TestSuite/Syntax/Errors/sort_direction.tjp +11 -0
  535. data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +11 -0
  536. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +11 -0
  537. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +11 -0
  538. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +11 -0
  539. data/test/TestSuite/Syntax/Errors/start_before_end1.tjp +7 -0
  540. data/test/TestSuite/Syntax/Errors/start_before_end2.tjp +6 -0
  541. data/test/TestSuite/Syntax/Errors/task_complete.tjp +8 -0
  542. data/test/TestSuite/Syntax/Errors/task_exists.tjp +7 -0
  543. data/test/TestSuite/Syntax/Errors/task_priority.tjp +8 -0
  544. data/test/TestSuite/Syntax/Errors/task_without_chargeset.tjp +9 -0
  545. data/test/TestSuite/Syntax/Errors/time_interval.tjp +12 -0
  546. data/test/TestSuite/Syntax/Errors/too_many_bangs.tjp +10 -0
  547. data/test/TestSuite/Syntax/Errors/undecl_flag.tjp +6 -0
  548. data/test/TestSuite/Syntax/Errors/unknown_projectid.tjp +7 -0
  549. data/test/TestSuite/Syntax/Errors/unknown_scenario_id.tjp +6 -0
  550. data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +11 -0
  551. data/test/TestSuite/Syntax/Errors/unknown_task.tjp +10 -0
  552. data/test/all.rb +31 -0
  553. data/test/test_BatchProcessor.rb +54 -0
  554. data/test/test_CSV-Reports.rb +101 -0
  555. data/test/test_Limits.rb +104 -0
  556. data/test/test_LogicalExpression.rb +110 -0
  557. data/test/test_MacroTable.rb +51 -0
  558. data/test/test_Project.rb +57 -0
  559. data/test/test_PropertySet.rb +71 -0
  560. data/test/test_Query.rb +83 -0
  561. data/test/test_RealFormat.rb +83 -0
  562. data/test/test_RichText.rb +869 -0
  563. data/test/test_Scheduler.rb +42 -0
  564. data/test/test_ShiftAssignments.rb +77 -0
  565. data/test/test_Syntax.rb +41 -0
  566. data/test/test_TextScanner.rb +95 -0
  567. data/test/test_TjTime.rb +114 -0
  568. data/test/test_TjpExample.rb +169 -0
  569. data/test/test_UTF8String.rb +84 -0
  570. data/test/test_WorkingHours.rb +56 -0
  571. metadata +649 -0
@@ -0,0 +1,416 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <title>Class: TaskJuggler::Limits [TaskJuggler III API documentation]</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
8
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
9
+ <script type="text/javascript">
10
+ // <![CDATA[
11
+
12
+ function popupCode( url ) {
13
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
14
+ }
15
+
16
+ function toggleCode( id ) {
17
+ if ( document.getElementById )
18
+ elem = document.getElementById( id );
19
+ else if ( document.all )
20
+ elem = eval( "document.all." + id );
21
+ else
22
+ return false;
23
+
24
+ elemStyle = elem.style;
25
+
26
+ if ( elemStyle.display != "block" ) {
27
+ elemStyle.display = "block"
28
+ } else {
29
+ elemStyle.display = "none"
30
+ }
31
+
32
+ return true;
33
+ }
34
+
35
+ // Make codeblocks hidden by default
36
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
37
+
38
+ // ]]>
39
+ </script>
40
+
41
+ </head>
42
+ <body>
43
+
44
+
45
+ <div id="classHeader">
46
+ <table class="header-table">
47
+ <tr class="top-aligned-row">
48
+ <td><strong>Class</strong></td>
49
+ <td class="class-name-in-header">TaskJuggler::Limits</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../files/lib/Limits_rb.html">
57
+
58
+ lib/Limits.rb
59
+
60
+ </a>
61
+
62
+
63
+ <br />
64
+
65
+ </td>
66
+ </tr>
67
+
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+
73
+ Object
74
+
75
+ </td>
76
+ </tr>
77
+
78
+ </table>
79
+ </div>
80
+ <!-- banner header -->
81
+
82
+ <div id="bodyContent">
83
+
84
+ <div id="contextContent">
85
+
86
+ <div id="description">
87
+ <p>
88
+ This class holds a set of limits. Each limit can be created individually
89
+ and must have unique name. The <a href="Limits/Limit.html">Limit</a>
90
+ objects are created when an upper or lower limit is set. All upper or lower
91
+ limits can be tested with a single function call.
92
+ </p>
93
+
94
+ </div>
95
+
96
+ </div>
97
+
98
+
99
+ <div id="method-list">
100
+ <h3 class="section-bar">Methods</h3>
101
+
102
+ <div class="name-list">
103
+
104
+ <a href="#M000536">inc</a>&nbsp;&nbsp;
105
+
106
+ <a href="#M000532">new</a>&nbsp;&nbsp;
107
+
108
+ <a href="#M000537">ok?</a>&nbsp;&nbsp;
109
+
110
+ <a href="#M000534">reset</a>&nbsp;&nbsp;
111
+
112
+ <a href="#M000535">setLimit</a>&nbsp;&nbsp;
113
+
114
+ <a href="#M000533">setProject</a>&nbsp;&nbsp;
115
+
116
+ </div>
117
+ </div>
118
+
119
+ </div>
120
+
121
+ <!-- if includes -->
122
+
123
+ <div id="section">
124
+
125
+ <div id="class-list">
126
+ <h3 class="section-bar">Classes and Modules</h3>
127
+
128
+ Class <a href="Limits/Limit.html" class="link">TaskJuggler::Limits::Limit</a><br />
129
+
130
+ </div>
131
+
132
+
133
+
134
+ <div id="attribute-list">
135
+ <h3 class="section-bar">Attributes</h3>
136
+
137
+ <div class="name-list">
138
+ <table>
139
+
140
+ <tr class="top-aligned-row context-row">
141
+ <td class="context-item-name">limits</td>
142
+
143
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
144
+
145
+ <td class="context-item-desc"></td>
146
+ </tr>
147
+
148
+ <tr class="top-aligned-row context-row">
149
+ <td class="context-item-name">project</td>
150
+
151
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
152
+
153
+ <td class="context-item-desc"></td>
154
+ </tr>
155
+
156
+ </table>
157
+ </div>
158
+ </div>
159
+
160
+
161
+ <!-- if method_list -->
162
+
163
+ <div id="methods">
164
+
165
+ <h3 class="section-bar">Public Class methods</h3>
166
+
167
+
168
+ <div id="method-M000532" class="method-detail">
169
+ <a name="M000532"></a>
170
+
171
+ <div class="method-heading">
172
+
173
+ <a href="#M000532" class="method-signature">
174
+
175
+ <span class="method-name">new</span><span class="method-args">(limits = nil)</span>
176
+
177
+ </a>
178
+
179
+ </div>
180
+
181
+ <div class="method-description">
182
+
183
+ <p>
184
+ Create a new <a href="Limits.html">Limits</a> object. If an argument is
185
+ passed, it acts as a copy contructor.
186
+ </p>
187
+
188
+ <p><a class="source-toggle" href="#"
189
+ onclick="toggleCode('M000532-source');return false;">[Source]</a></p>
190
+ <div class="method-source-code" id="M000532-source">
191
+ <pre>
192
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 105</span>
193
+ 105: <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>)
194
+ 106: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">limits</span>.<span class="ruby-identifier">nil?</span>
195
+ 107: <span class="ruby-comment cmt"># Normal initialization</span>
196
+ 108: <span class="ruby-ivar">@limits</span> = {}
197
+ 109: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
198
+ 110: <span class="ruby-keyword kw">else</span>
199
+ 111: <span class="ruby-comment cmt"># Deep copy content from other instance.</span>
200
+ 112: <span class="ruby-ivar">@limits</span> = {}
201
+ 113: <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>
202
+ 114: <span class="ruby-ivar">@limits</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">copy</span>
203
+ 115: <span class="ruby-keyword kw">end</span>
204
+ 116: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">limits</span>.<span class="ruby-identifier">project</span>
205
+ 117: <span class="ruby-keyword kw">end</span>
206
+ 118: <span class="ruby-keyword kw">end</span>
207
+ </pre>
208
+ </div>
209
+
210
+ </div>
211
+ </div>
212
+
213
+
214
+ <h3 class="section-bar">Public Instance methods</h3>
215
+
216
+
217
+ <div id="method-M000536" class="method-detail">
218
+ <a name="M000536"></a>
219
+
220
+ <div class="method-heading">
221
+
222
+ <a href="#M000536" class="method-signature">
223
+
224
+ <span class="method-name">inc</span><span class="method-args">(date, resource = nil)</span>
225
+
226
+ </a>
227
+
228
+ </div>
229
+
230
+ <div class="method-description">
231
+
232
+ <p>
233
+ This function increases the counters for all limits for a specific interval
234
+ identified by <em>date</em>.
235
+ </p>
236
+
237
+ <p><a class="source-toggle" href="#"
238
+ onclick="toggleCode('M000536-source');return false;">[Source]</a></p>
239
+ <div class="method-source-code" id="M000536-source">
240
+ <pre>
241
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 144</span>
242
+ 144: <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>)
243
+ 145: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">limit</span><span class="ruby-operator">|</span>
244
+ 146: <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">inc</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">resource</span>)
245
+ 147: <span class="ruby-keyword kw">end</span>
246
+ 148: <span class="ruby-keyword kw">end</span>
247
+ </pre>
248
+ </div>
249
+
250
+ </div>
251
+ </div>
252
+
253
+
254
+ <div id="method-M000537" class="method-detail">
255
+ <a name="M000537"></a>
256
+
257
+ <div class="method-heading">
258
+
259
+ <a href="#M000537" class="method-signature">
260
+
261
+ <span class="method-name">ok?</span><span class="method-args">(date = nil, upper = true, resource = nil)</span>
262
+
263
+ </a>
264
+
265
+ </div>
266
+
267
+ <div class="method-description">
268
+
269
+ <p>
270
+ Check all upper limits and return true if none is exceeded. If a
271
+ <em>date</em> is specified only the counter for that specific period is
272
+ tested. Otherwise all periods are tested.
273
+ </p>
274
+
275
+ <p><a class="source-toggle" href="#"
276
+ onclick="toggleCode('M000537-source');return false;">[Source]</a></p>
277
+ <div class="method-source-code" id="M000537-source">
278
+ <pre>
279
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 153</span>
280
+ 153: <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>)
281
+ 154: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">limit</span><span class="ruby-operator">|</span>
282
+ 155: <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>)
283
+ 156: <span class="ruby-keyword kw">end</span>
284
+ 157: <span class="ruby-keyword kw">true</span>
285
+ 158: <span class="ruby-keyword kw">end</span>
286
+ </pre>
287
+ </div>
288
+
289
+ </div>
290
+ </div>
291
+
292
+
293
+ <div id="method-M000534" class="method-detail">
294
+ <a name="M000534"></a>
295
+
296
+ <div class="method-heading">
297
+
298
+ <a href="#M000534" class="method-signature">
299
+
300
+ <span class="method-name">reset</span><span class="method-args">()</span>
301
+
302
+ </a>
303
+
304
+ </div>
305
+
306
+ <div class="method-description">
307
+
308
+ <p>
309
+ Reset all counter for all limits.
310
+ </p>
311
+
312
+ <p><a class="source-toggle" href="#"
313
+ onclick="toggleCode('M000534-source');return false;">[Source]</a></p>
314
+ <div class="method-source-code" id="M000534-source">
315
+ <pre>
316
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 128</span>
317
+ 128: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
318
+ 129: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">each_value</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> }
319
+ 130: <span class="ruby-keyword kw">end</span>
320
+ </pre>
321
+ </div>
322
+
323
+ </div>
324
+ </div>
325
+
326
+
327
+ <div id="method-M000535" class="method-detail">
328
+ <a name="M000535"></a>
329
+
330
+ <div class="method-heading">
331
+
332
+ <a href="#M000535" class="method-signature">
333
+
334
+ <span class="method-name">setLimit</span><span class="method-args">(name, value, interval = nil, resource = nil)</span>
335
+
336
+ </a>
337
+
338
+ </div>
339
+
340
+ <div class="method-description">
341
+
342
+ <p>
343
+ Call this function to create or change a limit. The limit must be uniquely
344
+ identified by <tt>name</tt>. <tt>value</tt> is the new limit value (in time
345
+ slots). <tt>period</tt> is the <a href="Interval.html">Interval</a> where
346
+ the limit is active. In case the interval is nil, the complete project time
347
+ frame is used.
348
+ </p>
349
+
350
+ <p><a class="source-toggle" href="#"
351
+ onclick="toggleCode('M000535-source');return false;">[Source]</a></p>
352
+ <div class="method-source-code" id="M000535-source">
353
+ <pre>
354
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 136</span>
355
+ 136: <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>)
356
+ 137: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">name</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@limits</span>[<span class="ruby-identifier">name</span>]
357
+ 138: <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">nil?</span> <span class="ruby-value">?
358
+ 139: </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>]) <span class="ruby-operator">:</span> <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">resource</span>)
359
+ 140: <span class="ruby-keyword kw">end</span>
360
+ </pre>
361
+ </div>
362
+
363
+ </div>
364
+ </div>
365
+
366
+
367
+ <div id="method-M000533" class="method-detail">
368
+ <a name="M000533"></a>
369
+
370
+ <div class="method-heading">
371
+
372
+ <a href="#M000533" class="method-signature">
373
+
374
+ <span class="method-name">setProject</span><span class="method-args">(project)</span>
375
+
376
+ </a>
377
+
378
+ </div>
379
+
380
+ <div class="method-description">
381
+
382
+ <p>
383
+ The objects need access to some project specific data like the project
384
+ period.
385
+ </p>
386
+
387
+ <p><a class="source-toggle" href="#"
388
+ onclick="toggleCode('M000533-source');return false;">[Source]</a></p>
389
+ <div class="method-source-code" id="M000533-source">
390
+ <pre>
391
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 122</span>
392
+ 122: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setProject</span>(<span class="ruby-identifier">project</span>)
393
+ 123: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Cannot change project after limits have been set!&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">empty?</span>
394
+ 124: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">project</span>
395
+ 125: <span class="ruby-keyword kw">end</span>
396
+ </pre>
397
+ </div>
398
+
399
+ </div>
400
+ </div>
401
+
402
+
403
+
404
+ </div>
405
+
406
+
407
+
408
+
409
+ </div>
410
+
411
+ <div id="validator-badges">
412
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
413
+ </div>
414
+
415
+ </body>
416
+ </html>
@@ -0,0 +1,381 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <title>Class: TaskJuggler::Limits::Limit [TaskJuggler III API documentation]</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
8
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
9
+ <script type="text/javascript">
10
+ // <![CDATA[
11
+
12
+ function popupCode( url ) {
13
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
14
+ }
15
+
16
+ function toggleCode( id ) {
17
+ if ( document.getElementById )
18
+ elem = document.getElementById( id );
19
+ else if ( document.all )
20
+ elem = eval( "document.all." + id );
21
+ else
22
+ return false;
23
+
24
+ elemStyle = elem.style;
25
+
26
+ if ( elemStyle.display != "block" ) {
27
+ elemStyle.display = "block"
28
+ } else {
29
+ elemStyle.display = "none"
30
+ }
31
+
32
+ return true;
33
+ }
34
+
35
+ // Make codeblocks hidden by default
36
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
37
+
38
+ // ]]>
39
+ </script>
40
+
41
+ </head>
42
+ <body>
43
+
44
+
45
+ <div id="classHeader">
46
+ <table class="header-table">
47
+ <tr class="top-aligned-row">
48
+ <td><strong>Class</strong></td>
49
+ <td class="class-name-in-header">TaskJuggler::Limits::Limit</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../../files/lib/Limits_rb.html">
57
+
58
+ lib/Limits.rb
59
+
60
+ </a>
61
+
62
+
63
+ <br />
64
+
65
+ </td>
66
+ </tr>
67
+
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+
73
+ Object
74
+
75
+ </td>
76
+ </tr>
77
+
78
+ </table>
79
+ </div>
80
+ <!-- banner header -->
81
+
82
+ <div id="bodyContent">
83
+
84
+ <div id="contextContent">
85
+
86
+ <div id="description">
87
+ <p>
88
+ This class implements a mechanism that can be used to limit certain events
89
+ within a certain time period. It supports an upper and a lower limit.
90
+ </p>
91
+
92
+ </div>
93
+
94
+ </div>
95
+
96
+
97
+ <div id="method-list">
98
+ <h3 class="section-bar">Methods</h3>
99
+
100
+ <div class="name-list">
101
+
102
+ <a href="#M000539">copy</a>&nbsp;&nbsp;
103
+
104
+ <a href="#M000541">inc</a>&nbsp;&nbsp;
105
+
106
+ <a href="#M000538">new</a>&nbsp;&nbsp;
107
+
108
+ <a href="#M000542">ok?</a>&nbsp;&nbsp;
109
+
110
+ <a href="#M000540">reset</a>&nbsp;&nbsp;
111
+
112
+ </div>
113
+ </div>
114
+
115
+ </div>
116
+
117
+ <!-- if includes -->
118
+
119
+ <div id="section">
120
+
121
+
122
+
123
+ <div id="attribute-list">
124
+ <h3 class="section-bar">Attributes</h3>
125
+
126
+ <div class="name-list">
127
+ <table>
128
+
129
+ <tr class="top-aligned-row context-row">
130
+ <td class="context-item-name">resource</td>
131
+
132
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
133
+
134
+ <td class="context-item-desc"></td>
135
+ </tr>
136
+
137
+ </table>
138
+ </div>
139
+ </div>
140
+
141
+
142
+ <!-- if method_list -->
143
+
144
+ <div id="methods">
145
+
146
+ <h3 class="section-bar">Public Class methods</h3>
147
+
148
+
149
+ <div id="method-M000538" class="method-detail">
150
+ <a name="M000538"></a>
151
+
152
+ <div class="method-heading">
153
+
154
+ <a href="#M000538" class="method-signature">
155
+
156
+ <span class="method-name">new</span><span class="method-args">(interval, period, value, upper, resource)</span>
157
+
158
+ </a>
159
+
160
+ </div>
161
+
162
+ <div class="method-description">
163
+
164
+ <p>
165
+ To create a new <a href="Limit.html">Limit</a> object, the <a
166
+ href="../Interval.html">Interval</a> <tt>interval</tt> and the period
167
+ duration (<tt>period</tt> in seconds) must be specified. This creates a
168
+ counter for each period within the overall interval. <tt>value</tt> is the
169
+ value of the limit. <tt>upper</tt> specifies whether the limit is an upper
170
+ or lower limit. The limit can also be restricted to certain a <a
171
+ href="../Resource.html">Resource</a> specified by <tt>resource</tt>.
172
+ </p>
173
+
174
+ <p><a class="source-toggle" href="#"
175
+ onclick="toggleCode('M000538-source');return false;">[Source]</a></p>
176
+ <div class="method-source-code" id="M000538-source">
177
+ <pre>
178
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 35</span>
179
+ 35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</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>)
180
+ 36: <span class="ruby-ivar">@interval</span> = <span class="ruby-identifier">interval</span>
181
+ 37: <span class="ruby-ivar">@period</span> = <span class="ruby-identifier">period</span>
182
+ 38: <span class="ruby-ivar">@value</span> = <span class="ruby-identifier">value</span>
183
+ 39: <span class="ruby-ivar">@upper</span> = <span class="ruby-identifier">upper</span>
184
+ 40: <span class="ruby-ivar">@resource</span> = <span class="ruby-identifier">resource</span>
185
+ 41:
186
+ 42: <span class="ruby-comment cmt"># To avoid multiple resets of untouched scoreboards we keep this dirty</span>
187
+ 43: <span class="ruby-comment cmt"># flag. It's set whenever a counter is increased.</span>
188
+ 44: <span class="ruby-ivar">@dirty</span> = <span class="ruby-keyword kw">true</span>
189
+ 45: <span class="ruby-identifier">reset</span>
190
+ 46: <span class="ruby-keyword kw">end</span>
191
+ </pre>
192
+ </div>
193
+
194
+ </div>
195
+ </div>
196
+
197
+
198
+ <h3 class="section-bar">Public Instance methods</h3>
199
+
200
+
201
+ <div id="method-M000539" class="method-detail">
202
+ <a name="M000539"></a>
203
+
204
+ <div class="method-heading">
205
+
206
+ <a href="#M000539" class="method-signature">
207
+
208
+ <span class="method-name">copy</span><span class="method-args">()</span>
209
+
210
+ </a>
211
+
212
+ </div>
213
+
214
+ <div class="method-description">
215
+
216
+ <p>
217
+ Returns a deep copy of the class instance.
218
+ </p>
219
+
220
+ <p><a class="source-toggle" href="#"
221
+ onclick="toggleCode('M000539-source');return false;">[Source]</a></p>
222
+ <div class="method-source-code" id="M000539-source">
223
+ <pre>
224
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 49</span>
225
+ 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copy</span>
226
+ 50: <span class="ruby-constant">Limit</span>.<span class="ruby-identifier">new</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>)
227
+ 51: <span class="ruby-keyword kw">end</span>
228
+ </pre>
229
+ </div>
230
+
231
+ </div>
232
+ </div>
233
+
234
+
235
+ <div id="method-M000541" class="method-detail">
236
+ <a name="M000541"></a>
237
+
238
+ <div class="method-heading">
239
+
240
+ <a href="#M000541" class="method-signature">
241
+
242
+ <span class="method-name">inc</span><span class="method-args">(date, resource)</span>
243
+
244
+ </a>
245
+
246
+ </div>
247
+
248
+ <div class="method-description">
249
+
250
+ <p>
251
+ Increase the counter for a specific period specified by <tt>date</tt>. If
252
+ <tt>resource</tt> is not nil, the counter is only increased if
253
+ <tt>resource</tt> matches resource.
254
+ </p>
255
+
256
+ <p><a class="source-toggle" href="#"
257
+ onclick="toggleCode('M000541-source');return false;">[Source]</a></p>
258
+ <div class="method-source-code" id="M000541-source">
259
+ <pre>
260
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 70</span>
261
+ 70: <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>)
262
+ 71: <span class="ruby-keyword kw">return</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>) <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">&amp;&amp;</span> <span class="ruby-ivar">@resource</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">resource</span>)
263
+ 72:
264
+ 73: <span class="ruby-ivar">@dirty</span> = <span class="ruby-keyword kw">true</span>
265
+ 74: <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>)
266
+ 75: <span class="ruby-keyword kw">end</span>
267
+ </pre>
268
+ </div>
269
+
270
+ </div>
271
+ </div>
272
+
273
+
274
+ <div id="method-M000542" class="method-detail">
275
+ <a name="M000542"></a>
276
+
277
+ <div class="method-heading">
278
+
279
+ <a href="#M000542" class="method-signature">
280
+
281
+ <span class="method-name">ok?</span><span class="method-args">(date, upper, resource)</span>
282
+
283
+ </a>
284
+
285
+ </div>
286
+
287
+ <div class="method-description">
288
+
289
+ <p>
290
+ Returns true if the counter for the time slot specified by <tt>date</tt> or
291
+ all counters are within the limit. If <tt>upper</tt> is true, only upper
292
+ limits are checked. If not, only lower limits are checked. If
293
+ <tt>resource</tt> is not nil, only limits for this resource are checked.
294
+ </p>
295
+
296
+ <p><a class="source-toggle" href="#"
297
+ onclick="toggleCode('M000542-source');return false;">[Source]</a></p>
298
+ <div class="method-source-code" id="M000542-source">
299
+ <pre>
300
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 81</span>
301
+ 81: <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>)
302
+ 82: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">nil?</span>
303
+ 83: <span class="ruby-comment cmt"># if @upper does not match, we can ignore this limit.</span>
304
+ 84: <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> (<span class="ruby-operator">!</span><span class="ruby-identifier">resource</span>.<span class="ruby-identifier">nil?</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>)
305
+ 85:
306
+ 86: <span class="ruby-comment cmt"># Check all counters.</span>
307
+ 87: <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>
308
+ 88: <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>
309
+ 89: <span class="ruby-keyword kw">end</span>
310
+ 90: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
311
+ 91: <span class="ruby-keyword kw">else</span>
312
+ 92: <span class="ruby-comment cmt"># If the date is outside the interval or @upper does not match, ignore</span>
313
+ 93: <span class="ruby-comment cmt"># this limit.</span>
314
+ 94: <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>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@upper</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">upper</span>
315
+ 95: <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> <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>
316
+ 96: <span class="ruby-keyword kw">end</span>
317
+ 97: <span class="ruby-keyword kw">end</span>
318
+ </pre>
319
+ </div>
320
+
321
+ </div>
322
+ </div>
323
+
324
+
325
+ <div id="method-M000540" class="method-detail">
326
+ <a name="M000540"></a>
327
+
328
+ <div class="method-heading">
329
+
330
+ <a href="#M000540" class="method-signature">
331
+
332
+ <span class="method-name">reset</span><span class="method-args">(date = nil)</span>
333
+
334
+ </a>
335
+
336
+ </div>
337
+
338
+ <div class="method-description">
339
+
340
+ <p>
341
+ This function can be used to reset the counter for a specific period
342
+ specified by <tt>date</tt> or to reset all counters.
343
+ </p>
344
+
345
+ <p><a class="source-toggle" href="#"
346
+ onclick="toggleCode('M000540-source');return false;">[Source]</a></p>
347
+ <div class="method-source-code" id="M000540-source">
348
+ <pre>
349
+ <span class="ruby-comment cmt"># File lib/Limits.rb, line 55</span>
350
+ 55: <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>)
351
+ 56: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@dirty</span>
352
+ 57:
353
+ 58: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">nil?</span>
354
+ 59: <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>, <span class="ruby-ivar">@period</span>, <span class="ruby-value">0</span>)
355
+ 60: <span class="ruby-keyword kw">else</span>
356
+ 61: <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>)
357
+ 62: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">date</span>, <span class="ruby-value">0</span>)
358
+ 63: <span class="ruby-keyword kw">end</span>
359
+ 64: <span class="ruby-ivar">@dirty</span> = <span class="ruby-keyword kw">false</span>
360
+ 65: <span class="ruby-keyword kw">end</span>
361
+ </pre>
362
+ </div>
363
+
364
+ </div>
365
+ </div>
366
+
367
+
368
+
369
+ </div>
370
+
371
+
372
+
373
+
374
+ </div>
375
+
376
+ <div id="validator-badges">
377
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
378
+ </div>
379
+
380
+ </body>
381
+ </html>