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,229 @@
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::ChargeListAttribute [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::ChargeListAttribute</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../files/lib/Attributes_rb.html">
57
+
58
+ lib/Attributes.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
+ <a href="AttributeBase.html">
74
+
75
+ TaskJuggler::AttributeBase
76
+
77
+ </a>
78
+
79
+ </td>
80
+ </tr>
81
+
82
+ </table>
83
+ </div>
84
+ <!-- banner header -->
85
+
86
+ <div id="bodyContent">
87
+
88
+ <div id="contextContent">
89
+
90
+ </div>
91
+
92
+
93
+ <div id="method-list">
94
+ <h3 class="section-bar">Methods</h3>
95
+
96
+ <div class="name-list">
97
+
98
+ <a href="#M000714">new</a>&nbsp;&nbsp;
99
+
100
+ <a href="#M000715">tjpId</a>&nbsp;&nbsp;
101
+
102
+ <a href="#M000716">to_s</a>&nbsp;&nbsp;
103
+
104
+ </div>
105
+ </div>
106
+
107
+ </div>
108
+
109
+ <!-- if includes -->
110
+
111
+ <div id="section">
112
+
113
+
114
+
115
+
116
+ <!-- if method_list -->
117
+
118
+ <div id="methods">
119
+
120
+ <h3 class="section-bar">Public Class methods</h3>
121
+
122
+
123
+ <div id="method-M000714" class="method-detail">
124
+ <a name="M000714"></a>
125
+
126
+ <div class="method-heading">
127
+
128
+ <a href="#M000714" class="method-signature">
129
+
130
+ <span class="method-name">new</span><span class="method-args">(property, type)</span>
131
+
132
+ </a>
133
+
134
+ </div>
135
+
136
+ <div class="method-description">
137
+
138
+ <p><a class="source-toggle" href="#"
139
+ onclick="toggleCode('M000714-source');return false;">[Source]</a></p>
140
+ <div class="method-source-code" id="M000714-source">
141
+ <pre>
142
+ <span class="ruby-comment cmt"># File lib/Attributes.rb, line 114</span>
143
+ 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">property</span>, <span class="ruby-identifier">type</span>)
144
+ 115: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">property</span>, <span class="ruby-identifier">type</span>)
145
+ 116: <span class="ruby-keyword kw">end</span>
146
+ </pre>
147
+ </div>
148
+
149
+ </div>
150
+ </div>
151
+
152
+
153
+ <div id="method-M000715" class="method-detail">
154
+ <a name="M000715"></a>
155
+
156
+ <div class="method-heading">
157
+
158
+ <a href="#M000715" class="method-signature">
159
+
160
+ <span class="method-name">tjpId</span><span class="method-args">()</span>
161
+
162
+ </a>
163
+
164
+ </div>
165
+
166
+ <div class="method-description">
167
+
168
+ <p><a class="source-toggle" href="#"
169
+ onclick="toggleCode('M000715-source');return false;">[Source]</a></p>
170
+ <div class="method-source-code" id="M000715-source">
171
+ <pre>
172
+ <span class="ruby-comment cmt"># File lib/Attributes.rb, line 118</span>
173
+ 118: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">ChargeListAttribute</span><span class="ruby-operator">::</span><span class="ruby-identifier">tjpId</span>
174
+ 119: <span class="ruby-value str">'charge'</span>
175
+ 120: <span class="ruby-keyword kw">end</span>
176
+ </pre>
177
+ </div>
178
+
179
+ </div>
180
+ </div>
181
+
182
+
183
+ <h3 class="section-bar">Public Instance methods</h3>
184
+
185
+
186
+ <div id="method-M000716" class="method-detail">
187
+ <a name="M000716"></a>
188
+
189
+ <div class="method-heading">
190
+
191
+ <a href="#M000716" class="method-signature">
192
+
193
+ <span class="method-name">to_s</span><span class="method-args">()</span>
194
+
195
+ </a>
196
+
197
+ </div>
198
+
199
+ <div class="method-description">
200
+
201
+ <p><a class="source-toggle" href="#"
202
+ onclick="toggleCode('M000716-source');return false;">[Source]</a></p>
203
+ <div class="method-source-code" id="M000716-source">
204
+ <pre>
205
+ <span class="ruby-comment cmt"># File lib/Attributes.rb, line 122</span>
206
+ 122: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
207
+ 123: <span class="ruby-ivar">@value</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">', '</span>)
208
+ 124: <span class="ruby-keyword kw">end</span>
209
+ </pre>
210
+ </div>
211
+
212
+ </div>
213
+ </div>
214
+
215
+
216
+
217
+ </div>
218
+
219
+
220
+
221
+
222
+ </div>
223
+
224
+ <div id="validator-badges">
225
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
226
+ </div>
227
+
228
+ </body>
229
+ </html>
@@ -0,0 +1,440 @@
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::ChargeSet [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::ChargeSet</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../files/lib/ChargeSet_rb.html">
57
+
58
+ lib/ChargeSet.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
+ A charge set describes how a given amount is distributed over a set of
89
+ accounts. It stores the percentage share for each account. The accumulated
90
+ percentages must always be 100% for a valid charge set. For consistency
91
+ reasons, accounts must always be leaf accounts of the same top-level
92
+ account. Percentage values must range from 0.0 to 1.0.
93
+ </p>
94
+
95
+ </div>
96
+
97
+ </div>
98
+
99
+
100
+ <div id="method-list">
101
+ <h3 class="section-bar">Methods</h3>
102
+
103
+ <div class="name-list">
104
+
105
+ <a href="#M000584">addAccount</a>&nbsp;&nbsp;
106
+
107
+ <a href="#M000586">complete</a>&nbsp;&nbsp;
108
+
109
+ <a href="#M000585">each</a>&nbsp;&nbsp;
110
+
111
+ <a href="#M000583">new</a>&nbsp;&nbsp;
112
+
113
+ <a href="#M000587">share</a>&nbsp;&nbsp;
114
+
115
+ <a href="#M000588">to_s</a>&nbsp;&nbsp;
116
+
117
+ </div>
118
+ </div>
119
+
120
+ </div>
121
+
122
+ <!-- if includes -->
123
+
124
+ <div id="section">
125
+
126
+
127
+
128
+ <div id="attribute-list">
129
+ <h3 class="section-bar">Attributes</h3>
130
+
131
+ <div class="name-list">
132
+ <table>
133
+
134
+ <tr class="top-aligned-row context-row">
135
+ <td class="context-item-name">master</td>
136
+
137
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
138
+
139
+ <td class="context-item-desc"></td>
140
+ </tr>
141
+
142
+ </table>
143
+ </div>
144
+ </div>
145
+
146
+
147
+ <!-- if method_list -->
148
+
149
+ <div id="methods">
150
+
151
+ <h3 class="section-bar">Public Class methods</h3>
152
+
153
+
154
+ <div id="method-M000583" class="method-detail">
155
+ <a name="M000583"></a>
156
+
157
+ <div class="method-heading">
158
+
159
+ <a href="#M000583" class="method-signature">
160
+
161
+ <span class="method-name">new</span><span class="method-args">()</span>
162
+
163
+ </a>
164
+
165
+ </div>
166
+
167
+ <div class="method-description">
168
+
169
+ <p>
170
+ Create a new <a href="ChargeSet.html">ChargeSet</a> object.
171
+ </p>
172
+
173
+ <p><a class="source-toggle" href="#"
174
+ onclick="toggleCode('M000583-source');return false;">[Source]</a></p>
175
+ <div class="method-source-code" id="M000583-source">
176
+ <pre>
177
+ <span class="ruby-comment cmt"># File lib/ChargeSet.rb, line 27</span>
178
+ 27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
179
+ 28: <span class="ruby-ivar">@set</span> = {}
180
+ 29: <span class="ruby-ivar">@master</span> = <span class="ruby-keyword kw">nil</span>
181
+ 30: <span class="ruby-keyword kw">end</span>
182
+ </pre>
183
+ </div>
184
+
185
+ </div>
186
+ </div>
187
+
188
+
189
+ <h3 class="section-bar">Public Instance methods</h3>
190
+
191
+
192
+ <div id="method-M000584" class="method-detail">
193
+ <a name="M000584"></a>
194
+
195
+ <div class="method-heading">
196
+
197
+ <a href="#M000584" class="method-signature">
198
+
199
+ <span class="method-name">addAccount</span><span class="method-args">(account, share)</span>
200
+
201
+ </a>
202
+
203
+ </div>
204
+
205
+ <div class="method-description">
206
+
207
+ <p>
208
+ Add a new account to the set. Accounts and share rates must meet a number
209
+ of requirements. This method does some error checking and raises a <a
210
+ href="TjException.html">TjException</a> in case of problems. It cannot
211
+ check everything. Accounts can later be turned into group accounts or the
212
+ total share sum may not be 100%. This needs to be checked at a later stage.
213
+ Accounts may have a share of nil. This will be set in <a
214
+ href="ChargeSet.html#M000586">ChargeSet#complete</a> later.
215
+ </p>
216
+
217
+ <p><a class="source-toggle" href="#"
218
+ onclick="toggleCode('M000584-source');return false;">[Source]</a></p>
219
+ <div class="method-source-code" id="M000584-source">
220
+ <pre>
221
+ <span class="ruby-comment cmt"># File lib/ChargeSet.rb, line 38</span>
222
+ 38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addAccount</span>(<span class="ruby-identifier">account</span>, <span class="ruby-identifier">share</span>)
223
+ 39: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">account</span>.<span class="ruby-identifier">leaf?</span>
224
+ 40: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
225
+ 41: <span class="ruby-node">&quot;Account #{account.fullId} is a group account and cannot be used &quot;</span> <span class="ruby-operator">+</span>
226
+ 42: <span class="ruby-value str">&quot;in a chargeset.&quot;</span>
227
+ 43: <span class="ruby-keyword kw">end</span>
228
+ 44: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@set</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">account</span>)
229
+ 45: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
230
+ 46: <span class="ruby-node">&quot;Account #{account.fullId} is already a member of the charge set.&quot;</span>
231
+ 47: <span class="ruby-keyword kw">end</span>
232
+ 48: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@master</span>.<span class="ruby-identifier">nil?</span>
233
+ 49: <span class="ruby-ivar">@master</span> = <span class="ruby-identifier">account</span>.<span class="ruby-identifier">root</span>
234
+ 50: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@master</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">account</span>.<span class="ruby-identifier">root</span>
235
+ 51: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
236
+ 52: <span class="ruby-value str">&quot;All members of this charge set must belong to the &quot;</span> <span class="ruby-operator">+</span>
237
+ 53: <span class="ruby-node">&quot;#{@master.fullId} account. #{account.fullId} belongs to &quot;</span> <span class="ruby-operator">+</span>
238
+ 54: <span class="ruby-node">&quot;#{account.root.fullId}.&quot;</span>
239
+ 55: <span class="ruby-keyword kw">end</span>
240
+ 56: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">account</span>.<span class="ruby-identifier">container?</span>
241
+ 57: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
242
+ 58: <span class="ruby-node">&quot;#{account.fullId} is a group account. Only leaf accounts are &quot;</span> <span class="ruby-operator">+</span>
243
+ 59: <span class="ruby-value str">&quot;allowed for a charge set.&quot;</span>
244
+ 60: <span class="ruby-keyword kw">end</span>
245
+ 61: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">share</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">share</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span><span class="ruby-value">.0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">share</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1.0</span>)
246
+ 62: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Charge set shares must be between 0 and 100%&quot;</span>
247
+ 63: <span class="ruby-keyword kw">end</span>
248
+ 64: <span class="ruby-ivar">@set</span>[<span class="ruby-identifier">account</span>] = <span class="ruby-identifier">share</span>
249
+ 65: <span class="ruby-keyword kw">end</span>
250
+ </pre>
251
+ </div>
252
+
253
+ </div>
254
+ </div>
255
+
256
+
257
+ <div id="method-M000586" class="method-detail">
258
+ <a name="M000586"></a>
259
+
260
+ <div class="method-heading">
261
+
262
+ <a href="#M000586" class="method-signature">
263
+
264
+ <span class="method-name">complete</span><span class="method-args">()</span>
265
+
266
+ </a>
267
+
268
+ </div>
269
+
270
+ <div class="method-description">
271
+
272
+ <p>
273
+ Check for accounts that don&#8217;t have a share yet and distribute the
274
+ remainder to 100% evenly accross them.
275
+ </p>
276
+
277
+ <p><a class="source-toggle" href="#"
278
+ onclick="toggleCode('M000586-source');return false;">[Source]</a></p>
279
+ <div class="method-source-code" id="M000586-source">
280
+ <pre>
281
+ <span class="ruby-comment cmt"># File lib/ChargeSet.rb, line 75</span>
282
+ 75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">complete</span>
283
+ 76: <span class="ruby-comment cmt"># Calculate the current total share.</span>
284
+ 77: <span class="ruby-identifier">totalPercent</span> = <span class="ruby-value">0</span><span class="ruby-value">.0</span>
285
+ 78: <span class="ruby-identifier">undefined</span> = <span class="ruby-value">0</span>
286
+ 79: <span class="ruby-ivar">@set</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">share</span><span class="ruby-operator">|</span>
287
+ 80: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">share</span>
288
+ 81: <span class="ruby-identifier">totalPercent</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">share</span>
289
+ 82: <span class="ruby-keyword kw">else</span>
290
+ 83: <span class="ruby-identifier">undefined</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
291
+ 84: <span class="ruby-keyword kw">end</span>
292
+ 85: <span class="ruby-keyword kw">end</span>
293
+ 86: <span class="ruby-comment cmt"># Must be less than 100%.</span>
294
+ 87: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">totalPercent</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1.0</span>
295
+ 88: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
296
+ 89: <span class="ruby-node">&quot;Total share of this set (#{totalPercent * 100}%) excedes 100%.&quot;</span>
297
+ 90: <span class="ruby-keyword kw">end</span>
298
+ 91: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">undefined</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
299
+ 92: <span class="ruby-identifier">commonShare</span> = (<span class="ruby-value">1.0</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">totalPercent</span>) <span class="ruby-operator">/</span> <span class="ruby-identifier">undefined</span>
300
+ 93: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">commonShare</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
301
+ 94: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
302
+ 95: <span class="ruby-node">&quot;Total share is 100% but #{undefined} account(s) still exist.&quot;</span>
303
+ 96: <span class="ruby-keyword kw">end</span>
304
+ 97: <span class="ruby-ivar">@set</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">account</span>, <span class="ruby-identifier">share</span><span class="ruby-operator">|</span>
305
+ 98: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">share</span>.<span class="ruby-identifier">nil?</span>
306
+ 99: <span class="ruby-ivar">@set</span>[<span class="ruby-identifier">account</span>] = <span class="ruby-identifier">commonShare</span>
307
+ 100: <span class="ruby-keyword kw">end</span>
308
+ 101: <span class="ruby-keyword kw">end</span>
309
+ 102: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">totalPercent</span> <span class="ruby-operator">!=</span> <span class="ruby-value">1.0</span>
310
+ 103: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
311
+ 104: <span class="ruby-node">&quot;Total share of this set is #{totalPercent * 100} instead of 100%.&quot;</span>
312
+ 105: <span class="ruby-keyword kw">end</span>
313
+ 106: <span class="ruby-keyword kw">end</span>
314
+ </pre>
315
+ </div>
316
+
317
+ </div>
318
+ </div>
319
+
320
+
321
+ <div id="method-M000585" class="method-detail">
322
+ <a name="M000585"></a>
323
+
324
+ <div class="method-heading">
325
+
326
+ <a href="#M000585" class="method-signature">
327
+
328
+ <span class="method-name">each</span><span class="method-args">() {|account, share| ...}</span>
329
+
330
+ </a>
331
+
332
+ </div>
333
+
334
+ <div class="method-description">
335
+
336
+ <p><a class="source-toggle" href="#"
337
+ onclick="toggleCode('M000585-source');return false;">[Source]</a></p>
338
+ <div class="method-source-code" id="M000585-source">
339
+ <pre>
340
+ <span class="ruby-comment cmt"># File lib/ChargeSet.rb, line 67</span>
341
+ 67: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
342
+ 68: <span class="ruby-ivar">@set</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">account</span>, <span class="ruby-identifier">share</span><span class="ruby-operator">|</span>
343
+ 69: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">account</span>, <span class="ruby-identifier">share</span>
344
+ 70: <span class="ruby-keyword kw">end</span>
345
+ 71: <span class="ruby-keyword kw">end</span>
346
+ </pre>
347
+ </div>
348
+
349
+ </div>
350
+ </div>
351
+
352
+
353
+ <div id="method-M000587" class="method-detail">
354
+ <a name="M000587"></a>
355
+
356
+ <div class="method-heading">
357
+
358
+ <a href="#M000587" class="method-signature">
359
+
360
+ <span class="method-name">share</span><span class="method-args">(account)</span>
361
+
362
+ </a>
363
+
364
+ </div>
365
+
366
+ <div class="method-description">
367
+
368
+ <p>
369
+ Return the share percentage for a given <a href="Account.html">Account</a>
370
+ <em>account</em>.
371
+ </p>
372
+
373
+ <p><a class="source-toggle" href="#"
374
+ onclick="toggleCode('M000587-source');return false;">[Source]</a></p>
375
+ <div class="method-source-code" id="M000587-source">
376
+ <pre>
377
+ <span class="ruby-comment cmt"># File lib/ChargeSet.rb, line 109</span>
378
+ 109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">share</span>(<span class="ruby-identifier">account</span>)
379
+ 110: <span class="ruby-ivar">@set</span>[<span class="ruby-identifier">account</span>]
380
+ 111: <span class="ruby-keyword kw">end</span>
381
+ </pre>
382
+ </div>
383
+
384
+ </div>
385
+ </div>
386
+
387
+
388
+ <div id="method-M000588" class="method-detail">
389
+ <a name="M000588"></a>
390
+
391
+ <div class="method-heading">
392
+
393
+ <a href="#M000588" class="method-signature">
394
+
395
+ <span class="method-name">to_s</span><span class="method-args">()</span>
396
+
397
+ </a>
398
+
399
+ </div>
400
+
401
+ <div class="method-description">
402
+
403
+ <p>
404
+ Return the set as comma separated list of account ID + share pairs.
405
+ </p>
406
+
407
+ <p><a class="source-toggle" href="#"
408
+ onclick="toggleCode('M000588-source');return false;">[Source]</a></p>
409
+ <div class="method-source-code" id="M000588-source">
410
+ <pre>
411
+ <span class="ruby-comment cmt"># File lib/ChargeSet.rb, line 114</span>
412
+ 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
413
+ 115: <span class="ruby-identifier">str</span> = <span class="ruby-value str">'('</span>
414
+ 116: <span class="ruby-ivar">@set</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">account</span>, <span class="ruby-identifier">share</span><span class="ruby-operator">|</span>
415
+ 117: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">', '</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'('</span>
416
+ 118: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;#{account.fullId} #{share * 100}%&quot;</span>
417
+ 119: <span class="ruby-keyword kw">end</span>
418
+ 120: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">')'</span>
419
+ 121: <span class="ruby-keyword kw">end</span>
420
+ </pre>
421
+ </div>
422
+
423
+ </div>
424
+ </div>
425
+
426
+
427
+
428
+ </div>
429
+
430
+
431
+
432
+
433
+ </div>
434
+
435
+ <div id="validator-badges">
436
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
437
+ </div>
438
+
439
+ </body>
440
+ </html>