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,600 @@
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::Query [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::Query</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../files/lib/Query_rb.html">
57
+
58
+ lib/Query.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 query can be used to retrieve any property attribute after the scheduling
89
+ run has been completed. It is possible to make a <a
90
+ href="Query.html">Query</a> before the scheduling run has been completed,
91
+ but it only produces good results for static attributes. And for such
92
+ queries, the <a
93
+ href="PropertyTreeNode.html#M000522">PropertyTreeNode.get</a> and []
94
+ functions are a lot more efficient. # When constructing a <a
95
+ href="Query.html">Query</a>, a set of variables need to be set that is
96
+ sufficient enough to identify a unique attribute. Some attribute are
97
+ computed dynamically and further variables such as a start and end time
98
+ will be incorporated into the result computation.
99
+ </p>
100
+ <p>
101
+ The result is returned as <a href="../String.html">String</a>
102
+ (Query#result), in numerical form (Query#numericalResult) if available as
103
+ number, and as an entity that can be used for sorting
104
+ (Query#sortableResult). To get the result, <a
105
+ href="Query.html#M000599">Query#process</a> needs to be called. In case an
106
+ error occured, Query#ok is set to false and Query#errorMessage contains an
107
+ error message.
108
+ </p>
109
+
110
+ </div>
111
+
112
+ </div>
113
+
114
+
115
+ <div id="method-list">
116
+ <h3 class="section-bar">Methods</h3>
117
+
118
+ <div class="name-list">
119
+
120
+ <a href="#M000597">new</a>&nbsp;&nbsp;
121
+
122
+ <a href="#M000599">process</a>&nbsp;&nbsp;
123
+
124
+ <a href="#M000598">reset</a>&nbsp;&nbsp;
125
+
126
+ <a href="#M000600">scaleDuration</a>&nbsp;&nbsp;
127
+
128
+ <a href="#M000601">scaleLoad</a>&nbsp;&nbsp;
129
+
130
+ </div>
131
+ </div>
132
+
133
+ </div>
134
+
135
+ <!-- if includes -->
136
+
137
+ <div id="section">
138
+
139
+
140
+
141
+ <div id="attribute-list">
142
+ <h3 class="section-bar">Attributes</h3>
143
+
144
+ <div class="name-list">
145
+ <table>
146
+
147
+ <tr class="top-aligned-row context-row">
148
+ <td class="context-item-name">attributeId</td>
149
+
150
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
151
+
152
+ <td class="context-item-desc"></td>
153
+ </tr>
154
+
155
+ <tr class="top-aligned-row context-row">
156
+ <td class="context-item-name">costAccount</td>
157
+
158
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
159
+
160
+ <td class="context-item-desc"></td>
161
+ </tr>
162
+
163
+ <tr class="top-aligned-row context-row">
164
+ <td class="context-item-name">currencyFormat</td>
165
+
166
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
167
+
168
+ <td class="context-item-desc"></td>
169
+ </tr>
170
+
171
+ <tr class="top-aligned-row context-row">
172
+ <td class="context-item-name">end</td>
173
+
174
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
175
+
176
+ <td class="context-item-desc"></td>
177
+ </tr>
178
+
179
+ <tr class="top-aligned-row context-row">
180
+ <td class="context-item-name">endIdx</td>
181
+
182
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
183
+
184
+ <td class="context-item-desc"></td>
185
+ </tr>
186
+
187
+ <tr class="top-aligned-row context-row">
188
+ <td class="context-item-name">errorMessage</td>
189
+
190
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
191
+
192
+ <td class="context-item-desc"></td>
193
+ </tr>
194
+
195
+ <tr class="top-aligned-row context-row">
196
+ <td class="context-item-name">loadUnit</td>
197
+
198
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
199
+
200
+ <td class="context-item-desc"></td>
201
+ </tr>
202
+
203
+ <tr class="top-aligned-row context-row">
204
+ <td class="context-item-name">numberFormat</td>
205
+
206
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
207
+
208
+ <td class="context-item-desc"></td>
209
+ </tr>
210
+
211
+ <tr class="top-aligned-row context-row">
212
+ <td class="context-item-name">numericalResult</td>
213
+
214
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
215
+
216
+ <td class="context-item-desc"></td>
217
+ </tr>
218
+
219
+ <tr class="top-aligned-row context-row">
220
+ <td class="context-item-name">ok</td>
221
+
222
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
223
+
224
+ <td class="context-item-desc"></td>
225
+ </tr>
226
+
227
+ <tr class="top-aligned-row context-row">
228
+ <td class="context-item-name">project</td>
229
+
230
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
231
+
232
+ <td class="context-item-desc"></td>
233
+ </tr>
234
+
235
+ <tr class="top-aligned-row context-row">
236
+ <td class="context-item-name">property</td>
237
+
238
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
239
+
240
+ <td class="context-item-desc"></td>
241
+ </tr>
242
+
243
+ <tr class="top-aligned-row context-row">
244
+ <td class="context-item-name">propertyId</td>
245
+
246
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
247
+
248
+ <td class="context-item-desc"></td>
249
+ </tr>
250
+
251
+ <tr class="top-aligned-row context-row">
252
+ <td class="context-item-name">propertyType</td>
253
+
254
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
255
+
256
+ <td class="context-item-desc"></td>
257
+ </tr>
258
+
259
+ <tr class="top-aligned-row context-row">
260
+ <td class="context-item-name">result</td>
261
+
262
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
263
+
264
+ <td class="context-item-desc"></td>
265
+ </tr>
266
+
267
+ <tr class="top-aligned-row context-row">
268
+ <td class="context-item-name">revenueAccount</td>
269
+
270
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
271
+
272
+ <td class="context-item-desc"></td>
273
+ </tr>
274
+
275
+ <tr class="top-aligned-row context-row">
276
+ <td class="context-item-name">scenarioIdx</td>
277
+
278
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
279
+
280
+ <td class="context-item-desc"></td>
281
+ </tr>
282
+
283
+ <tr class="top-aligned-row context-row">
284
+ <td class="context-item-name">scopeProperty</td>
285
+
286
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
287
+
288
+ <td class="context-item-desc"></td>
289
+ </tr>
290
+
291
+ <tr class="top-aligned-row context-row">
292
+ <td class="context-item-name">scopePropertyId</td>
293
+
294
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
295
+
296
+ <td class="context-item-desc"></td>
297
+ </tr>
298
+
299
+ <tr class="top-aligned-row context-row">
300
+ <td class="context-item-name">scopePropertyType</td>
301
+
302
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
303
+
304
+ <td class="context-item-desc"></td>
305
+ </tr>
306
+
307
+ <tr class="top-aligned-row context-row">
308
+ <td class="context-item-name">sortableResult</td>
309
+
310
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
311
+
312
+ <td class="context-item-desc"></td>
313
+ </tr>
314
+
315
+ <tr class="top-aligned-row context-row">
316
+ <td class="context-item-name">start</td>
317
+
318
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
319
+
320
+ <td class="context-item-desc"></td>
321
+ </tr>
322
+
323
+ <tr class="top-aligned-row context-row">
324
+ <td class="context-item-name">startIdx</td>
325
+
326
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
327
+
328
+ <td class="context-item-desc"></td>
329
+ </tr>
330
+
331
+ </table>
332
+ </div>
333
+ </div>
334
+
335
+
336
+ <!-- if method_list -->
337
+
338
+ <div id="methods">
339
+
340
+ <h3 class="section-bar">Public Class methods</h3>
341
+
342
+
343
+ <div id="method-M000597" class="method-detail">
344
+ <a name="M000597"></a>
345
+
346
+ <div class="method-heading">
347
+
348
+ <a href="#M000597" class="method-signature">
349
+
350
+ <span class="method-name">new</span><span class="method-args">(parameters = { })</span>
351
+
352
+ </a>
353
+
354
+ </div>
355
+
356
+ <div class="method-description">
357
+
358
+ <p>
359
+ Create a new <a href="Query.html">Query</a> object. The <em>parameters</em>
360
+ need to be sufficent to uniquely identify an attribute.
361
+ </p>
362
+
363
+ <p><a class="source-toggle" href="#"
364
+ onclick="toggleCode('M000597-source');return false;">[Source]</a></p>
365
+ <div class="method-source-code" id="M000597-source">
366
+ <pre>
367
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 43</span>
368
+ 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">parameters</span> = { })
369
+ 44: <span class="ruby-identifier">ps</span> = <span class="ruby-node">%w( project propertyType propertyId property scopePropertyId
370
+ 45: scopeProperty attributeId scenarioIdx start end startIdx endIdx
371
+ 46: loadUnit numberFormat currencyFormat costAccount revenueAccount)</span>
372
+ 47: <span class="ruby-identifier">ps</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
373
+ 48: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">p</span>, <span class="ruby-identifier">parameters</span>[<span class="ruby-identifier">p</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">parameters</span>[<span class="ruby-identifier">p</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>)
374
+ 49: <span class="ruby-keyword kw">end</span>
375
+ 50:
376
+ 51: <span class="ruby-identifier">reset</span>
377
+ 52: <span class="ruby-keyword kw">end</span>
378
+ </pre>
379
+ </div>
380
+
381
+ </div>
382
+ </div>
383
+
384
+
385
+ <h3 class="section-bar">Public Instance methods</h3>
386
+
387
+
388
+ <div id="method-M000599" class="method-detail">
389
+ <a name="M000599"></a>
390
+
391
+ <div class="method-heading">
392
+
393
+ <a href="#M000599" class="method-signature">
394
+
395
+ <span class="method-name">process</span><span class="method-args">()</span>
396
+
397
+ </a>
398
+
399
+ </div>
400
+
401
+ <div class="method-description">
402
+
403
+ <p>
404
+ This method tries to resolve the query and return a result. In case it
405
+ finds an attribute that matches the query, it returns true; false
406
+ otherwise. The actual result data is put into the <a
407
+ href="Query.html">Query</a> object.
408
+ </p>
409
+
410
+ <p><a class="source-toggle" href="#"
411
+ onclick="toggleCode('M000599-source');return false;">[Source]</a></p>
412
+ <div class="method-source-code" id="M000599-source">
413
+ <pre>
414
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 68</span>
415
+ 68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process</span>
416
+ 69: <span class="ruby-keyword kw">begin</span>
417
+ 70: <span class="ruby-comment cmt"># Resolve property reference from property ID.</span>
418
+ 71: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@property</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertyId</span>.<span class="ruby-identifier">nil?</span>
419
+ 72: <span class="ruby-ivar">@property</span> = <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-ivar">@propertyType</span>, <span class="ruby-ivar">@propertyId</span>)
420
+ 73: <span class="ruby-keyword kw">end</span>
421
+ 74: <span class="ruby-comment cmt"># Same for the scope property.</span>
422
+ 75: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@scopeProperty</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@scopePropertyId</span>.<span class="ruby-identifier">nil?</span>
423
+ 76: <span class="ruby-ivar">@scopeProperty</span> = <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-ivar">@scopePropertyType</span>, <span class="ruby-ivar">@scopePropertyId</span>)
424
+ 77: <span class="ruby-keyword kw">end</span>
425
+ 78: <span class="ruby-comment cmt"># Make sure the have a reference to the project.</span>
426
+ 79: <span class="ruby-ivar">@project</span> = <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">project</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>
427
+ 80:
428
+ 81: <span class="ruby-ivar">@startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@start</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@startIdx</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@start</span>
429
+ 82: <span class="ruby-ivar">@endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-ivar">@end</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@endIdx</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@end</span>
430
+ 83:
431
+ 84: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">hasQuery?</span>(<span class="ruby-ivar">@attributeId</span>, <span class="ruby-ivar">@scenarioIdx</span>)
432
+ 85: <span class="ruby-comment cmt"># Call the property query function to get the result.</span>
433
+ 86: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioIdx</span>
434
+ 87: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value str">'query_'</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@attributeId</span>, <span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-keyword kw">self</span>)
435
+ 88: <span class="ruby-keyword kw">else</span>
436
+ 89: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value str">'query_'</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@attributeId</span>, <span class="ruby-keyword kw">self</span>)
437
+ 90: <span class="ruby-keyword kw">end</span>
438
+ 91: <span class="ruby-keyword kw">else</span>
439
+ 92: <span class="ruby-comment cmt"># There is no query function. We simply use the property attribute</span>
440
+ 93: <span class="ruby-comment cmt"># value.</span>
441
+ 94: <span class="ruby-ivar">@sortableResult</span> =
442
+ 95: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioIdx</span>
443
+ 96: <span class="ruby-ivar">@property</span>[<span class="ruby-ivar">@attributeId</span>, <span class="ruby-ivar">@scenarioIdx</span>]
444
+ 97: <span class="ruby-keyword kw">else</span>
445
+ 98: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@attributeId</span>)
446
+ 99: <span class="ruby-keyword kw">end</span>
447
+ 100: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@sortableResult</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
448
+ 101: <span class="ruby-comment cmt"># This ugly special case is needed for custom attributes of type</span>
449
+ 102: <span class="ruby-comment cmt"># reference.</span>
450
+ 103: <span class="ruby-ivar">@sortableResult</span> = <span class="ruby-ivar">@sortableResult</span>[<span class="ruby-value">0</span>]
451
+ 104: <span class="ruby-keyword kw">end</span>
452
+ 105: <span class="ruby-ivar">@result</span> = <span class="ruby-ivar">@sortableResult</span>.<span class="ruby-identifier">to_s</span>
453
+ 106: <span class="ruby-ivar">@numericalResult</span> = <span class="ruby-ivar">@result</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@result</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-keyword kw">or</span>
454
+ 107: <span class="ruby-ivar">@result</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Float</span>)
455
+ 108: <span class="ruby-keyword kw">end</span>
456
+ 109: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span>
457
+ 110: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-identifier">$!</span>
458
+ 111: <span class="ruby-ivar">@result</span> = <span class="ruby-value str">''</span>
459
+ 112: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">false</span>
460
+ 113: <span class="ruby-keyword kw">end</span>
461
+ 114: <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
462
+ 115: <span class="ruby-keyword kw">end</span>
463
+ </pre>
464
+ </div>
465
+
466
+ </div>
467
+ </div>
468
+
469
+
470
+ <div id="method-M000598" class="method-detail">
471
+ <a name="M000598"></a>
472
+
473
+ <div class="method-heading">
474
+
475
+ <a href="#M000598" class="method-signature">
476
+
477
+ <span class="method-name">reset</span><span class="method-args">()</span>
478
+
479
+ </a>
480
+
481
+ </div>
482
+
483
+ <div class="method-description">
484
+
485
+ <p>
486
+ Queries object can be reused. Calling this function will clear the query
487
+ result data.
488
+ </p>
489
+
490
+ <p><a class="source-toggle" href="#"
491
+ onclick="toggleCode('M000598-source');return false;">[Source]</a></p>
492
+ <div class="method-source-code" id="M000598-source">
493
+ <pre>
494
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 56</span>
495
+ 56: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
496
+ 57: <span class="ruby-ivar">@result</span> = <span class="ruby-keyword kw">nil</span>
497
+ 58: <span class="ruby-ivar">@numericalResult</span> = <span class="ruby-keyword kw">nil</span>
498
+ 59: <span class="ruby-ivar">@sortableResult</span> = <span class="ruby-keyword kw">nil</span>
499
+ 60: <span class="ruby-ivar">@loadUnit</span> = <span class="ruby-identifier">:days</span>
500
+ 61: <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">nil</span>
501
+ 62: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-keyword kw">nil</span>
502
+ 63: <span class="ruby-keyword kw">end</span>
503
+ </pre>
504
+ </div>
505
+
506
+ </div>
507
+ </div>
508
+
509
+
510
+ <div id="method-M000600" class="method-detail">
511
+ <a name="M000600"></a>
512
+
513
+ <div class="method-heading">
514
+
515
+ <a href="#M000600" class="method-signature">
516
+
517
+ <span class="method-name">scaleDuration</span><span class="method-args">(value)</span>
518
+
519
+ </a>
520
+
521
+ </div>
522
+
523
+ <div class="method-description">
524
+
525
+ <p>
526
+ Convert a duration to the format specified by @loadUnit. <em>work</em> is
527
+ the effort in man days. The return value is the converted value with
528
+ optional unit as a <a href="../String.html">String</a>.
529
+ </p>
530
+
531
+ <p><a class="source-toggle" href="#"
532
+ onclick="toggleCode('M000600-source');return false;">[Source]</a></p>
533
+ <div class="method-source-code" id="M000600-source">
534
+ <pre>
535
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 120</span>
536
+ 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleDuration</span>(<span class="ruby-identifier">value</span>)
537
+ 121: <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, [ <span class="ruby-value">24</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span>, <span class="ruby-value">24</span>, <span class="ruby-value">1</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">7</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">30.42</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">365</span> ])
538
+ 122: <span class="ruby-keyword kw">end</span>
539
+ </pre>
540
+ </div>
541
+
542
+ </div>
543
+ </div>
544
+
545
+
546
+ <div id="method-M000601" class="method-detail">
547
+ <a name="M000601"></a>
548
+
549
+ <div class="method-heading">
550
+
551
+ <a href="#M000601" class="method-signature">
552
+
553
+ <span class="method-name">scaleLoad</span><span class="method-args">(value)</span>
554
+
555
+ </a>
556
+
557
+ </div>
558
+
559
+ <div class="method-description">
560
+
561
+ <p>
562
+ Convert a load or effort value to the format specified by @loadUnit.
563
+ <em>work</em> is the effort in man days. The return value is the converted
564
+ value with optional unit as a <a href="../String.html">String</a>.
565
+ </p>
566
+
567
+ <p><a class="source-toggle" href="#"
568
+ onclick="toggleCode('M000601-source');return false;">[Source]</a></p>
569
+ <div class="method-source-code" id="M000601-source">
570
+ <pre>
571
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 127</span>
572
+ 127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleLoad</span>(<span class="ruby-identifier">value</span>)
573
+ 128: <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, [ <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span>,
574
+ 129: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span>,
575
+ 130: <span class="ruby-value">1.0</span>,
576
+ 131: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">weeklyWorkingDays</span>,
577
+ 132: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">monthlyWorkingDays</span>,
578
+ 133: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">yearlyWorkingDays</span> ])
579
+ 134: <span class="ruby-keyword kw">end</span>
580
+ </pre>
581
+ </div>
582
+
583
+ </div>
584
+ </div>
585
+
586
+
587
+
588
+ </div>
589
+
590
+
591
+
592
+
593
+ </div>
594
+
595
+ <div id="validator-badges">
596
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
597
+ </div>
598
+
599
+ </body>
600
+ </html>