taskjuggler 0.0.3 → 0.0.4

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 (495) hide show
  1. data/benchmarks/UTF-8-Strings.rb +58 -0
  2. data/data/css/tjmanual.css +52 -0
  3. data/data/css/tjreport.css +195 -0
  4. data/data/icons/details.png +0 -0
  5. data/data/icons/flag-green.png +0 -0
  6. data/data/icons/flag-red.png +0 -0
  7. data/data/icons/flag-yellow.png +0 -0
  8. data/data/icons/resource.png +0 -0
  9. data/data/icons/resourcegroup.png +0 -0
  10. data/data/icons/task.png +0 -0
  11. data/data/icons/taskgroup.png +0 -0
  12. data/data/icons/trend-down.png +0 -0
  13. data/data/icons/trend-flat.png +0 -0
  14. data/data/icons/trend-up.png +0 -0
  15. data/data/scripts/wz_tooltip.js +1301 -0
  16. data/doc/classes/AppConfig.html +298 -230
  17. data/doc/classes/Arguments.html +8 -8
  18. data/doc/classes/Object.html +7 -7
  19. data/doc/classes/String.html +89 -89
  20. data/doc/classes/TaskJuggler.html +396 -264
  21. data/doc/classes/TaskJuggler/Account.html +18 -18
  22. data/doc/classes/TaskJuggler/AccountAttribute.html +26 -26
  23. data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
  24. data/doc/classes/TaskJuggler/Allocation.html +30 -30
  25. data/doc/classes/TaskJuggler/AllocationAttribute.html +26 -26
  26. data/doc/classes/TaskJuggler/AttributeBase.html +227 -115
  27. data/doc/classes/TaskJuggler/AttributeDefinition.html +6 -6
  28. data/doc/classes/TaskJuggler/BatchProcessor.html +117 -83
  29. data/doc/classes/TaskJuggler/Booking.html +18 -18
  30. data/doc/classes/TaskJuggler/BookingListAttribute.html +26 -26
  31. data/doc/classes/TaskJuggler/BooleanAttribute.html +26 -26
  32. data/doc/classes/TaskJuggler/CSVFile.html +24 -24
  33. data/doc/classes/TaskJuggler/CellSettingPattern.html +201 -0
  34. data/doc/classes/TaskJuggler/CellSettingPatternList.html +253 -0
  35. data/doc/classes/TaskJuggler/Charge.html +18 -18
  36. data/doc/classes/TaskJuggler/ChargeListAttribute.html +20 -20
  37. data/doc/classes/TaskJuggler/ChargeSet.html +37 -37
  38. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +26 -26
  39. data/doc/classes/TaskJuggler/ColumnListAttribute.html +20 -20
  40. data/doc/classes/TaskJuggler/ColumnTable.html +40 -40
  41. data/doc/classes/TaskJuggler/DateAttribute.html +54 -15
  42. data/doc/classes/TaskJuggler/DefinitionListAttribute.html +10 -10
  43. data/doc/classes/TaskJuggler/DependencyListAttribute.html +47 -47
  44. data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
  45. data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
  46. data/doc/classes/TaskJuggler/FlagListAttribute.html +43 -43
  47. data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
  48. data/doc/classes/TaskJuggler/FormatListAttribute.html +21 -21
  49. data/doc/classes/TaskJuggler/GanttChart.html +48 -48
  50. data/doc/classes/TaskJuggler/GanttContainer.html +42 -42
  51. data/doc/classes/TaskJuggler/GanttHeader.html +12 -12
  52. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +12 -12
  53. data/doc/classes/TaskJuggler/GanttLine.html +24 -24
  54. data/doc/classes/TaskJuggler/GanttLoadStack.html +18 -18
  55. data/doc/classes/TaskJuggler/GanttMilestone.html +42 -42
  56. data/doc/classes/TaskJuggler/GanttRouter.html +24 -24
  57. data/doc/classes/TaskJuggler/GanttTaskBar.html +42 -42
  58. data/doc/classes/TaskJuggler/HTMLDocument.html +13 -13
  59. data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
  60. data/doc/classes/TaskJuggler/Interval.html +57 -57
  61. data/doc/classes/TaskJuggler/IntervalListAttribute.html +47 -47
  62. data/doc/classes/TaskJuggler/JobInfo.html +68 -12
  63. data/doc/classes/TaskJuggler/Journal.html +266 -20
  64. data/doc/classes/TaskJuggler/JournalEntry.html +79 -23
  65. data/doc/classes/TaskJuggler/JournalEntryList.html +454 -0
  66. data/doc/classes/TaskJuggler/KeywordArray.html +10 -10
  67. data/doc/classes/TaskJuggler/KeywordDocumentation.html +171 -170
  68. data/doc/classes/TaskJuggler/Limits.html +36 -36
  69. data/doc/classes/TaskJuggler/Limits/Limit.html +30 -30
  70. data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
  71. data/doc/classes/TaskJuggler/ListAttributeBase.html +20 -20
  72. data/doc/classes/TaskJuggler/Log.html +145 -107
  73. data/doc/classes/TaskJuggler/LogicalAttribute.html +65 -36
  74. data/doc/classes/TaskJuggler/LogicalExpression.html +61 -24
  75. data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +20 -20
  76. data/doc/classes/TaskJuggler/LogicalFlag.html +31 -51
  77. data/doc/classes/TaskJuggler/LogicalFunction.html +64 -53
  78. data/doc/classes/TaskJuggler/LogicalOperation.html +103 -55
  79. data/doc/classes/TaskJuggler/Macro.html +6 -6
  80. data/doc/classes/TaskJuggler/MacroParser.html +36 -36
  81. data/doc/classes/TaskJuggler/MacroTable.html +37 -37
  82. data/doc/classes/TaskJuggler/Message.html +12 -12
  83. data/doc/classes/TaskJuggler/MessageHandler.html +32 -20
  84. data/doc/classes/TaskJuggler/Navigator.html +110 -46
  85. data/doc/classes/TaskJuggler/NavigatorElement.html +449 -0
  86. data/doc/classes/TaskJuggler/OnShiftCache.html +24 -24
  87. data/doc/classes/TaskJuggler/Project.html +1158 -893
  88. data/doc/classes/TaskJuggler/ProjectFileParser.html +94 -91
  89. data/doc/classes/TaskJuggler/PropertyAttribute.html +20 -20
  90. data/doc/classes/TaskJuggler/PropertyList.html +225 -155
  91. data/doc/classes/TaskJuggler/PropertySet.html +375 -332
  92. data/doc/classes/TaskJuggler/PropertyTreeNode.html +750 -510
  93. data/doc/classes/TaskJuggler/Query.html +404 -139
  94. data/doc/classes/TaskJuggler/{RTPNavigator.html → RTFNavigator.html} +57 -56
  95. data/doc/classes/TaskJuggler/RTFQuery.html +343 -0
  96. data/doc/classes/TaskJuggler/{RTPReport.html → RTFReport.html} +70 -67
  97. data/doc/classes/TaskJuggler/RealFormat.html +18 -18
  98. data/doc/classes/TaskJuggler/RealFormatAttribute.html +10 -10
  99. data/doc/classes/TaskJuggler/ReferenceAttribute.html +107 -40
  100. data/doc/classes/TaskJuggler/RemoteServiceManager.html +335 -0
  101. data/doc/classes/TaskJuggler/Report.html +66 -64
  102. data/doc/classes/TaskJuggler/ReportBase.html +112 -123
  103. data/doc/classes/TaskJuggler/ReportContext.html +43 -38
  104. data/doc/classes/TaskJuggler/ReportServer.html +320 -0
  105. data/doc/classes/TaskJuggler/ReportTable.html +42 -42
  106. data/doc/classes/TaskJuggler/ReportTableCell.html +221 -129
  107. data/doc/classes/TaskJuggler/ReportTableColumn.html +27 -27
  108. data/doc/classes/TaskJuggler/ReportTableLegend.html +24 -24
  109. data/doc/classes/TaskJuggler/ReportTableLine.html +126 -80
  110. data/doc/classes/TaskJuggler/Resource.html +12 -12
  111. data/doc/classes/TaskJuggler/ResourceListAttribute.html +82 -47
  112. data/doc/classes/TaskJuggler/ResourceListRE.html +43 -39
  113. data/doc/classes/TaskJuggler/ResourceScenario.html +413 -321
  114. data/doc/classes/TaskJuggler/RichText.html +64 -248
  115. data/doc/classes/TaskJuggler/RichTextAttribute.html +94 -30
  116. data/doc/classes/TaskJuggler/RichTextDocument.html +87 -85
  117. data/doc/classes/TaskJuggler/RichTextElement.html +456 -363
  118. data/doc/classes/TaskJuggler/RichTextException.html +13 -13
  119. data/doc/classes/TaskJuggler/{RichTextProtocolExample.html → RichTextFunctionExample.html} +64 -63
  120. data/doc/classes/TaskJuggler/{RichTextProtocolHandler.html → RichTextFunctionHandler.html} +42 -36
  121. data/doc/classes/TaskJuggler/RichTextIntermediate.html +563 -0
  122. data/doc/classes/TaskJuggler/RichTextParser.html +54 -51
  123. data/doc/classes/TaskJuggler/RichTextScanner.html +94 -92
  124. data/doc/classes/TaskJuggler/RichTextSnip.html +96 -60
  125. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +369 -227
  126. data/doc/classes/TaskJuggler/Scenario.html +6 -6
  127. data/doc/classes/TaskJuggler/ScenarioData.html +37 -37
  128. data/doc/classes/TaskJuggler/ScenarioListAttribute.html +31 -31
  129. data/doc/classes/TaskJuggler/Scoreboard.html +66 -66
  130. data/doc/classes/TaskJuggler/Shift.html +18 -18
  131. data/doc/classes/TaskJuggler/ShiftAssignment.html +54 -54
  132. data/doc/classes/TaskJuggler/ShiftAssignments.html +78 -78
  133. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
  134. data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
  135. data/doc/classes/TaskJuggler/SortListAttribute.html +22 -22
  136. data/doc/classes/TaskJuggler/SourceFileInfo.html +12 -12
  137. data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
  138. data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
  139. data/doc/classes/TaskJuggler/SyntaxReference.html +42 -42
  140. data/doc/classes/TaskJuggler/TOCEntry.html +12 -12
  141. data/doc/classes/TaskJuggler/TSResourceRecord.html +197 -0
  142. data/doc/classes/TaskJuggler/TSTaskRecord.html +215 -0
  143. data/doc/classes/TaskJuggler/TableColumnDefinition.html +64 -43
  144. data/doc/classes/TaskJuggler/TableOfContents.html +18 -18
  145. data/doc/classes/TaskJuggler/TableReport.html +447 -468
  146. data/doc/classes/TaskJuggler/Task.html +12 -12
  147. data/doc/classes/TaskJuggler/TaskDependency.html +12 -12
  148. data/doc/classes/TaskJuggler/TaskListAttribute.html +47 -47
  149. data/doc/classes/TaskJuggler/TaskListRE.html +43 -39
  150. data/doc/classes/TaskJuggler/TaskScenario.html +529 -282
  151. data/doc/classes/TaskJuggler/TextParser.html +215 -194
  152. data/doc/classes/TaskJuggler/TextParser/Pattern.html +97 -97
  153. data/doc/classes/TaskJuggler/TextParser/Rule.html +84 -84
  154. data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -15
  155. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
  156. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +6 -6
  157. data/doc/classes/TaskJuggler/TextReport.html +77 -74
  158. data/doc/classes/TaskJuggler/TextScanner.html +294 -281
  159. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
  160. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +59 -60
  161. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +12 -12
  162. data/doc/classes/TaskJuggler/TimeSheetReport.html +406 -0
  163. data/doc/classes/TaskJuggler/TjException.html +6 -6
  164. data/doc/classes/TaskJuggler/TjTime.html +522 -513
  165. data/doc/classes/TaskJuggler/TjpExample.html +25 -25
  166. data/doc/classes/TaskJuggler/TjpExportRE.html +21 -24
  167. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +6177 -4318
  168. data/doc/classes/TaskJuggler/UserManual.html +212 -213
  169. data/doc/classes/TaskJuggler/WorkingHours.html +49 -49
  170. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -53
  171. data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
  172. data/doc/classes/TaskJuggler/XMLComment.html +21 -21
  173. data/doc/classes/TaskJuggler/XMLDocument.html +27 -26
  174. data/doc/classes/TaskJuggler/XMLElement.html +86 -50
  175. data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
  176. data/doc/classes/TaskJuggler/XMLText.html +36 -36
  177. data/doc/files/COPYING.html +1 -1
  178. data/doc/files/README.html +1 -1
  179. data/doc/files/lib/AccountScenario_rb.html +3 -2
  180. data/doc/files/lib/Account_rb.html +3 -2
  181. data/doc/files/lib/Allocation_rb.html +3 -2
  182. data/doc/files/lib/AppConfig_rb.html +5 -2
  183. data/doc/files/lib/AttributeBase_rb.html +3 -2
  184. data/doc/files/lib/AttributeDefinition_rb.html +3 -2
  185. data/doc/files/lib/Attributes_rb.html +3 -2
  186. data/doc/files/lib/BatchProcessor_rb.html +4 -3
  187. data/doc/files/lib/Booking_rb.html +3 -2
  188. data/doc/files/lib/ChargeSet_rb.html +3 -2
  189. data/doc/files/lib/Charge_rb.html +3 -2
  190. data/doc/files/lib/HTMLDocument_rb.html +3 -2
  191. data/doc/files/lib/Interval_rb.html +3 -2
  192. data/doc/files/lib/Journal_rb.html +4 -3
  193. data/doc/files/lib/KeywordArray_rb.html +3 -2
  194. data/doc/files/lib/KeywordDocumentation_rb.html +3 -2
  195. data/doc/files/lib/Limits_rb.html +3 -2
  196. data/doc/files/lib/Log_rb.html +3 -2
  197. data/doc/files/lib/LogicalExpression_rb.html +3 -2
  198. data/doc/files/lib/LogicalFunction_rb.html +3 -2
  199. data/doc/files/lib/LogicalOperation_rb.html +3 -2
  200. data/doc/files/lib/MacroParser_rb.html +3 -2
  201. data/doc/files/lib/MacroTable_rb.html +3 -2
  202. data/doc/files/lib/MessageHandler_rb.html +3 -2
  203. data/doc/files/lib/Message_rb.html +3 -2
  204. data/doc/files/lib/ProjectFileParser_rb.html +7 -4
  205. data/doc/files/lib/Project_rb.html +3 -2
  206. data/doc/files/lib/PropertyList_rb.html +3 -2
  207. data/doc/files/lib/PropertySet_rb.html +3 -2
  208. data/doc/files/lib/PropertyTreeNode_rb.html +3 -2
  209. data/doc/files/lib/Query_rb.html +3 -2
  210. data/doc/files/lib/{RTPNavigator_rb.html → RTFNavigator_rb.html} +8 -7
  211. data/doc/files/lib/RTFQuery_rb.html +121 -0
  212. data/doc/files/lib/{RTPReport_rb.html → RTFReport_rb.html} +8 -7
  213. data/doc/files/lib/RealFormat_rb.html +3 -2
  214. data/doc/files/lib/RemoteServiceManager_rb.html +117 -0
  215. data/doc/files/lib/ReportServer_rb.html +107 -0
  216. data/doc/files/lib/ResourceScenario_rb.html +3 -2
  217. data/doc/files/lib/Resource_rb.html +3 -2
  218. data/doc/files/lib/RichTextDocument_rb.html +4 -3
  219. data/doc/files/lib/RichTextElement_rb.html +3 -2
  220. data/doc/files/lib/{RichTextProtocolExample_rb.html → RichTextFunctionExample_rb.html} +8 -7
  221. data/doc/files/lib/{RichTextProtocolHandler_rb.html → RichTextFunctionHandler_rb.html} +7 -6
  222. data/doc/files/lib/RichTextParser_rb.html +3 -2
  223. data/doc/files/lib/RichTextScanner_rb.html +3 -2
  224. data/doc/files/lib/RichTextSnip_rb.html +3 -2
  225. data/doc/files/lib/RichTextSyntaxRules_rb.html +3 -2
  226. data/doc/files/lib/RichText_rb.html +3 -2
  227. data/doc/files/lib/ScenarioData_rb.html +3 -2
  228. data/doc/files/lib/Scenario_rb.html +3 -2
  229. data/doc/files/lib/Scoreboard_rb.html +3 -2
  230. data/doc/files/lib/ShiftAssignments_rb.html +3 -2
  231. data/doc/files/lib/ShiftScenario_rb.html +3 -2
  232. data/doc/files/lib/Shift_rb.html +3 -2
  233. data/doc/files/lib/SourceFileInfo_rb.html +3 -2
  234. data/doc/files/lib/SyntaxReference_rb.html +3 -2
  235. data/doc/files/lib/TOCEntry_rb.html +3 -2
  236. data/doc/files/lib/TableColumnDefinition_rb.html +3 -2
  237. data/doc/files/lib/TableOfContents_rb.html +3 -2
  238. data/doc/files/lib/TaskDependency_rb.html +3 -2
  239. data/doc/files/lib/TaskJuggler_rb.html +7 -2
  240. data/doc/files/lib/TaskScenario_rb.html +3 -2
  241. data/doc/files/lib/Task_rb.html +3 -2
  242. data/doc/files/lib/TextParser/Pattern_rb.html +4 -3
  243. data/doc/files/lib/TextParser/Rule_rb.html +4 -3
  244. data/doc/files/lib/TextParser/StackElement_rb.html +4 -3
  245. data/doc/files/lib/TextParser/TokenDoc_rb.html +4 -3
  246. data/doc/files/lib/TextParser_rb.html +3 -2
  247. data/doc/files/lib/TextScanner_rb.html +3 -2
  248. data/doc/files/lib/Tj3Config_rb.html +3 -2
  249. data/doc/files/lib/TjException_rb.html +3 -2
  250. data/doc/files/lib/TjTime_rb.html +3 -2
  251. data/doc/files/lib/TjpExample_rb.html +3 -2
  252. data/doc/files/lib/TjpSyntaxRules_rb.html +3 -2
  253. data/doc/files/lib/UTF8String_rb.html +14 -6
  254. data/doc/files/lib/UserManual_rb.html +6 -3
  255. data/doc/files/lib/WorkingHours_rb.html +3 -2
  256. data/doc/files/lib/XMLDocument_rb.html +3 -2
  257. data/doc/files/lib/XMLElement_rb.html +3 -2
  258. data/doc/files/lib/deep_copy_rb.html +3 -2
  259. data/doc/files/lib/reports/CSVFile_rb.html +3 -2
  260. data/doc/files/lib/reports/ColumnTable_rb.html +3 -2
  261. data/doc/files/lib/reports/GanttChart_rb.html +3 -2
  262. data/doc/files/lib/reports/GanttContainer_rb.html +3 -2
  263. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +3 -2
  264. data/doc/files/lib/reports/GanttHeader_rb.html +3 -2
  265. data/doc/files/lib/reports/GanttLine_rb.html +3 -2
  266. data/doc/files/lib/reports/GanttLoadStack_rb.html +3 -2
  267. data/doc/files/lib/reports/GanttMilestone_rb.html +3 -2
  268. data/doc/files/lib/reports/GanttRouter_rb.html +3 -2
  269. data/doc/files/lib/reports/GanttTaskBar_rb.html +3 -2
  270. data/doc/files/lib/reports/HTMLGraphics_rb.html +3 -2
  271. data/doc/files/lib/reports/Navigator_rb.html +3 -2
  272. data/doc/files/lib/reports/ReportBase_rb.html +3 -2
  273. data/doc/files/lib/reports/ReportContext_rb.html +3 -2
  274. data/doc/files/lib/reports/ReportTableCell_rb.html +3 -2
  275. data/doc/files/lib/reports/ReportTableColumn_rb.html +3 -2
  276. data/doc/files/lib/reports/ReportTableLegend_rb.html +3 -2
  277. data/doc/files/lib/reports/ReportTableLine_rb.html +3 -2
  278. data/doc/files/lib/reports/ReportTable_rb.html +3 -2
  279. data/doc/files/lib/reports/Report_rb.html +7 -2
  280. data/doc/files/lib/reports/ResourceListRE_rb.html +3 -2
  281. data/doc/files/lib/reports/TableReport_rb.html +3 -2
  282. data/doc/files/lib/reports/TaskListRE_rb.html +3 -2
  283. data/doc/files/lib/reports/TextReport_rb.html +4 -3
  284. data/doc/files/lib/reports/TimeSheetReport_rb.html +117 -0
  285. data/doc/files/lib/reports/TjpExportRE_rb.html +3 -2
  286. data/doc/files/lib/taskjuggler3_rb.html +94 -77
  287. data/doc/files/lib/tj3client_rb.html +280 -0
  288. data/doc/files/lib/tj3man_rb.html +10 -9
  289. data/doc/fr_class_index.html +27 -5
  290. data/doc/fr_file_index.html +15 -7
  291. data/doc/fr_method_index.html +1312 -1020
  292. data/examples/tutorial.tjp +113 -14
  293. data/gem_spec.rb +2 -1
  294. data/lib/Account.rb +1 -1
  295. data/lib/AccountScenario.rb +1 -1
  296. data/lib/Allocation.rb +1 -1
  297. data/lib/AppConfig.rb +23 -10
  298. data/lib/AttributeBase.rb +34 -6
  299. data/lib/AttributeDefinition.rb +1 -1
  300. data/lib/Attributes.rb +51 -16
  301. data/lib/BatchProcessor.rb +204 -77
  302. data/lib/Booking.rb +1 -1
  303. data/lib/Charge.rb +1 -1
  304. data/lib/ChargeSet.rb +1 -1
  305. data/lib/HTMLDocument.rb +2 -2
  306. data/lib/Interval.rb +1 -1
  307. data/lib/Journal.rb +231 -9
  308. data/lib/KeywordArray.rb +1 -1
  309. data/lib/KeywordDocumentation.rb +6 -4
  310. data/lib/Limits.rb +1 -1
  311. data/lib/Log.rb +8 -1
  312. data/lib/LogicalExpression.rb +14 -13
  313. data/lib/LogicalFunction.rb +88 -14
  314. data/lib/LogicalOperation.rb +124 -53
  315. data/lib/MacroParser.rb +1 -1
  316. data/lib/MacroTable.rb +2 -2
  317. data/lib/Message.rb +1 -1
  318. data/lib/MessageHandler.rb +7 -3
  319. data/lib/Project.rb +93 -14
  320. data/lib/ProjectFileParser.rb +30 -15
  321. data/lib/PropertyList.rb +103 -36
  322. data/lib/PropertySet.rb +22 -10
  323. data/lib/PropertyTreeNode.rb +120 -15
  324. data/lib/Query.rb +119 -48
  325. data/lib/{RTPNavigator.rb → RTFNavigator.rb} +11 -10
  326. data/lib/RTFQuery.rb +166 -0
  327. data/lib/{RTPReport.rb → RTFReport.rb} +11 -8
  328. data/lib/RealFormat.rb +1 -1
  329. data/lib/RemoteServiceManager.rb +80 -0
  330. data/lib/ReportServer.rb +66 -0
  331. data/lib/Resource.rb +1 -1
  332. data/lib/ResourceScenario.rb +48 -19
  333. data/lib/RichText.rb +98 -41
  334. data/lib/RichTextDocument.rb +10 -8
  335. data/lib/RichTextElement.rb +72 -28
  336. data/lib/{RichTextProtocolExample.rb → RichTextFunctionExample.rb} +8 -7
  337. data/lib/{RichTextProtocolHandler.rb → RichTextFunctionHandler.rb} +12 -14
  338. data/lib/RichTextParser.rb +6 -3
  339. data/lib/RichTextScanner.rb +91 -19
  340. data/lib/RichTextSnip.rb +8 -3
  341. data/lib/RichTextSyntaxRules.rb +103 -45
  342. data/lib/Scenario.rb +1 -1
  343. data/lib/ScenarioData.rb +2 -2
  344. data/lib/Scoreboard.rb +1 -1
  345. data/lib/Shift.rb +1 -1
  346. data/lib/ShiftAssignments.rb +1 -1
  347. data/lib/ShiftScenario.rb +1 -1
  348. data/lib/SourceFileInfo.rb +1 -1
  349. data/lib/SyntaxReference.rb +2 -2
  350. data/lib/TOCEntry.rb +1 -1
  351. data/lib/TableColumnDefinition.rb +59 -16
  352. data/lib/TableOfContents.rb +1 -1
  353. data/lib/Task.rb +1 -1
  354. data/lib/TaskDependency.rb +1 -1
  355. data/lib/TaskJuggler.rb +31 -8
  356. data/lib/TaskScenario.rb +165 -16
  357. data/lib/TextParser.rb +36 -22
  358. data/lib/TextParser/Pattern.rb +3 -3
  359. data/lib/TextParser/Rule.rb +2 -2
  360. data/lib/TextParser/StackElement.rb +4 -3
  361. data/lib/TextParser/TokenDoc.rb +2 -2
  362. data/lib/TextScanner.rb +52 -37
  363. data/lib/Tj3Config.rb +6 -5
  364. data/lib/TjException.rb +1 -1
  365. data/lib/TjTime.rb +12 -3
  366. data/lib/TjpExample.rb +1 -1
  367. data/lib/TjpSyntaxRules.rb +1044 -150
  368. data/lib/UTF8String.rb +2 -1
  369. data/lib/UserManual.rb +18 -70
  370. data/lib/WorkingHours.rb +3 -3
  371. data/lib/XMLDocument.rb +3 -2
  372. data/lib/XMLElement.rb +6 -1
  373. data/lib/deep_copy.rb +1 -1
  374. data/lib/reports/CSVFile.rb +1 -1
  375. data/lib/reports/ColumnTable.rb +9 -9
  376. data/lib/reports/GanttChart.rb +1 -1
  377. data/lib/reports/GanttContainer.rb +1 -1
  378. data/lib/reports/GanttHeader.rb +1 -1
  379. data/lib/reports/GanttHeaderScaleItem.rb +1 -1
  380. data/lib/reports/GanttLine.rb +40 -40
  381. data/lib/reports/GanttLoadStack.rb +1 -1
  382. data/lib/reports/GanttMilestone.rb +1 -1
  383. data/lib/reports/GanttRouter.rb +1 -1
  384. data/lib/reports/GanttTaskBar.rb +1 -1
  385. data/lib/reports/HTMLGraphics.rb +1 -1
  386. data/lib/reports/Navigator.rb +149 -22
  387. data/lib/reports/Report.rb +115 -172
  388. data/lib/reports/ReportBase.rb +22 -27
  389. data/lib/reports/ReportContext.rb +29 -15
  390. data/lib/reports/ReportTable.rb +1 -1
  391. data/lib/reports/ReportTableCell.rb +120 -27
  392. data/lib/reports/ReportTableColumn.rb +3 -3
  393. data/lib/reports/ReportTableLegend.rb +1 -1
  394. data/lib/reports/ReportTableLine.rb +10 -2
  395. data/lib/reports/ResourceListRE.rb +5 -1
  396. data/lib/reports/TableReport.rb +237 -287
  397. data/lib/reports/TaskListRE.rb +5 -1
  398. data/lib/reports/TextReport.rb +7 -4
  399. data/lib/reports/TimeSheetReport.rb +233 -0
  400. data/lib/reports/TjpExportRE.rb +2 -2
  401. data/lib/taskjuggler3.rb +27 -11
  402. data/lib/tj3client.rb +110 -0
  403. data/lib/tj3man.rb +4 -4
  404. data/manual/Getting_Started +0 -50
  405. data/manual/How_To_Contribute +6 -13
  406. data/manual/Installation +102 -28
  407. data/manual/Intro +11 -1
  408. data/manual/Reporting_Bugs +23 -7
  409. data/manual/Rich_Text_Attributes +59 -6
  410. data/manual/TaskJuggler_2x_Migration +27 -0
  411. data/manual/The_TaskJuggler_Syntax +104 -0
  412. data/manual/Tutorial +10 -9
  413. data/prj_cfg.rb +8 -2
  414. data/tasks/csts.rake +1 -1
  415. data/tasks/manual.rake +5 -3
  416. data/test/MessageChecker.rb +1 -1
  417. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  418. data/test/TestSuite/HTML-Reports/Alerts.tjp +77 -0
  419. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  420. data/test/TestSuite/HTML-Reports/CellText.tjp +75 -0
  421. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  422. data/test/TestSuite/HTML-Reports/ColumnPeriods.tjp +44 -0
  423. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  424. data/test/TestSuite/HTML-Reports/IsOngoing.tjp +34 -0
  425. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +80 -0
  426. data/test/TestSuite/HTML-Reports/LogicalFunctions.tjp +20 -0
  427. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  428. data/test/TestSuite/HTML-Reports/Query.tjp +28 -0
  429. data/test/TestSuite/HTML-Reports/Sorting.tjp +68 -0
  430. data/test/TestSuite/HTML-Reports/TimeSheet.tjp +69 -0
  431. data/test/TestSuite/HTML-Reports/UDAQuery.tjp +27 -0
  432. data/test/TestSuite/HTML-Reports/css/tjmanual.css +52 -0
  433. data/test/TestSuite/HTML-Reports/css/tjreport.css +195 -0
  434. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  435. data/test/TestSuite/HTML-Reports/icons/details.png +0 -0
  436. data/test/TestSuite/HTML-Reports/icons/flag-green.png +0 -0
  437. data/test/TestSuite/HTML-Reports/icons/flag-red.png +0 -0
  438. data/test/TestSuite/HTML-Reports/icons/flag-yellow.png +0 -0
  439. data/test/TestSuite/HTML-Reports/icons/resource.png +0 -0
  440. data/test/TestSuite/HTML-Reports/icons/resourcegroup.png +0 -0
  441. data/test/TestSuite/HTML-Reports/icons/task.png +0 -0
  442. data/test/TestSuite/HTML-Reports/icons/taskgroup.png +0 -0
  443. data/test/TestSuite/HTML-Reports/reference.tjp +7 -8
  444. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  445. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +1301 -0
  446. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +34 -0
  447. data/test/TestSuite/Syntax/Correct/Celltext.tjp +2 -1
  448. data/test/TestSuite/Syntax/Correct/Journal.tjp +2 -2
  449. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +2 -1
  450. data/test/TestSuite/Syntax/Correct/LogicalFunction.tjp +20 -0
  451. data/test/TestSuite/Syntax/Correct/Query.tjp +18 -0
  452. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +45 -0
  453. data/test/TestSuite/Syntax/Correct/TimeSheet.tjp +49 -0
  454. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  455. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  456. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  457. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  458. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  459. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  460. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  461. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  462. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  463. data/test/TestSuite/Syntax/Correct/tutorial.tjp +113 -14
  464. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +28 -0
  465. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +12 -0
  466. data/test/all.rb +2 -2
  467. data/test/test_BatchProcessor.rb +42 -13
  468. data/test/test_CSV-Reports.rb +1 -1
  469. data/test/test_Journal.rb +176 -0
  470. data/test/test_Limits.rb +1 -1
  471. data/test/test_LogicalExpression.rb +14 -5
  472. data/test/test_MacroTable.rb +1 -1
  473. data/test/test_Project.rb +1 -1
  474. data/test/test_PropertySet.rb +1 -1
  475. data/test/test_Query.rb +1 -1
  476. data/test/test_RealFormat.rb +1 -1
  477. data/test/test_RichText.rb +30 -20
  478. data/test/test_Scheduler.rb +1 -1
  479. data/test/test_ShiftAssignments.rb +2 -2
  480. data/test/test_Syntax.rb +1 -1
  481. data/test/test_TextScanner.rb +1 -1
  482. data/test/test_TjTime.rb +1 -1
  483. data/test/test_TjpExample.rb +1 -1
  484. data/test/test_UTF8String.rb +1 -1
  485. data/test/test_WorkingHours.rb +1 -1
  486. data/test/test_deep_copy.rb +2 -2
  487. metadata +610 -532
  488. data/doc/files/lib/ms_test_rb.html +0 -90
  489. data/examples/ContactList.html +0 -1467
  490. data/examples/Deliveries.html +0 -485
  491. data/examples/Development.html +0 -2525
  492. data/examples/Overview.html +0 -747
  493. data/examples/Resource Graph.html +0 -616
  494. data/lib/ms_test.rb +0 -27
  495. data/test/TestSuite/HTML-Reports/reference-export.html +0 -187
@@ -62,6 +62,11 @@ account rev "Payments"
62
62
  # The Profit&Loss analysis should be rev - cost accounts.
63
63
  balance cost rev
64
64
 
65
+ resource boss "Paul Henry Bullock" {
66
+ Email "phb@crappysoftware.com"
67
+ Phone "x100"
68
+ rate 480
69
+ }
65
70
  resource dev "Developers" {
66
71
  resource dev1 "Paul Smith" {
67
72
  Email "paul@crappysoftware.com"
@@ -142,6 +147,18 @@ task AcSo "Accounting Software" {
142
147
  task database "Database coupling" {
143
148
  effort 20d
144
149
  allocate dev1, dev2
150
+ journalentry 2002-02-03 "Problems with the SQL Libary" {
151
+ author dev1
152
+ alert yellow
153
+ summary -8<-
154
+ We ran into some compatibility problems with the SQL
155
+ Library.
156
+ ->8-
157
+ details -8<-
158
+ We have already contacted the vendor and are now waiting for
159
+ their advise.
160
+ ->8-
161
+ }
145
162
  }
146
163
 
147
164
  task gui "Graphical User Interface" {
@@ -181,6 +198,17 @@ task AcSo "Accounting Software" {
181
198
  depends !!software
182
199
  allocate test, dev2
183
200
  note "Hopefully most bugs will be found and fixed here."
201
+ journalentry 2002-03-01 "Contract with Peter not yet signed" {
202
+ author boss
203
+ alert red
204
+ summary -8<-
205
+ The paperwork is stuck with HR and I can't hunt it down.
206
+ ->8-
207
+ details -8<-
208
+ If we don't get the contract closed within the next week,
209
+ the start of the testing is at risk.
210
+ ->8-
211
+ }
184
212
  }
185
213
 
186
214
  task beta "Beta Test" {
@@ -196,6 +224,10 @@ task AcSo "Accounting Software" {
196
224
  allocate doc, dev3
197
225
  purge chargeset
198
226
  chargeset doc
227
+ journalentry 2002-02-28 "User manual completed" {
228
+ author boss
229
+ summary "The doc writers did a really great job to finish on time."
230
+ }
199
231
  }
200
232
 
201
233
  task deliveries "Milestones" {
@@ -254,28 +286,50 @@ navigator navbar {
254
286
  hidereport 0
255
287
  }
256
288
 
257
- textreport "Overview" {
258
- formats html
289
+ textreport "" {
259
290
  header -8<-
260
291
  == Accounting Software Project ==
261
292
  ----
262
293
  <[navigator id="navbar"]>
263
294
  ----
264
295
  ->8-
265
- center '<[report id="overview"]>'
296
+ footer "----"
297
+ textreport "Overview" {
298
+ formats html
299
+ center '<[report id="overview"]>'
300
+ }
301
+
302
+ textreport "Status" {
303
+ formats html
304
+ center -8<-
305
+ <[report id="status.dashboard"]>
306
+ ----
307
+ <[report id="status.completed"]>
308
+ ----
309
+ <[report id="status.ongoing"]>
310
+ ----
311
+ <[report id="status.future"]>
312
+ ->8-
313
+ }
266
314
 
267
315
  textreport "Development" {
316
+ formats html
268
317
  center '<[report id="development"]>'
269
318
  }
270
319
 
271
320
  textreport "Deliveries" {
321
+ formats html
272
322
  center '<[report id="deliveries"]>'
273
323
  }
274
324
 
275
325
  textreport "ContactList" {
326
+ formats html
327
+ title "Contact List"
276
328
  center '<[report id="contactList"]>'
277
329
  }
278
- textreport "Resource Graph" {
330
+ textreport "ResourceGraph" {
331
+ formats html
332
+ title "Resource Graph"
279
333
  center '<[report id="resourceGraph"]>'
280
334
  }
281
335
  }
@@ -291,9 +345,11 @@ taskreport overview "" {
291
345
  # [[Development]]
292
346
  # Testing
293
347
 
294
- === Project Plan ===
348
+ === Original Project Plan ===
295
349
  ->8-
296
- columns hierarchindex, name, start, end, effort, duration, cost,
350
+ columns hierarchindex,
351
+ name { tooltip 1 "'''ID''': <-query attribute='id'->" },
352
+ start, end, effort, duration, cost,
297
353
  revenue, chart
298
354
  # For this report we like to have the abbreviated weekday in front
299
355
  # of the date. %a is the tag for this.
@@ -317,29 +373,69 @@ taskreport overview "" {
317
373
  ->8-
318
374
  }
319
375
 
376
+ # Macro to set the background color of a cell according to the alert
377
+ # level of the task.
378
+ macro AlertColor [
379
+ cellcolor plan.alert = 0 "#00D000" # green
380
+ cellcolor plan.alert = 1 "#D0D000" # yellow
381
+ cellcolor plan.alert = 2 "#D00000" # red
382
+ ]
383
+
384
+ taskreport status "" {
385
+ columns wbs, name, start, end, effort, alert, status
386
+ scenarios delayed
387
+
388
+ taskreport dashboard "" {
389
+ headline "Project Dashboard (<-query attribute='now'->)"
390
+ columns name { title "Task" ${AlertColor} },
391
+ resources { width 200 ${AlertColor}
392
+ start ${projectstart} end ${projectend} },
393
+ alerttrend { title "Trend" ${AlertColor} },
394
+ alertmessage { width 260 ${AlertColor} }
395
+ hidetask ~hasalert(0)
396
+ sorttasks alert.down, delayed.end.up
397
+ period %{${now} - 1w} +1w
398
+ }
399
+ taskreport completed "" {
400
+ headline "Already completed tasks"
401
+ hidetask ~(delayed.end <= ${now})
402
+ }
403
+ taskreport ongoing "" {
404
+ headline "Ongoing tasks"
405
+ hidetask ~((delayed.start <= ${now}) & (delayed.end > ${now}))
406
+ }
407
+ taskreport future "" {
408
+ headline "Future tasks"
409
+ hidetask ~(delayed.start > ${now})
410
+ }
411
+ }
412
+
320
413
  # A list of tasks showing the resources assigned to each task.
321
414
  taskreport development "" {
415
+ scenarios delayed
322
416
  headline "Development - Resource Allocation Report"
323
417
  columns hierarchindex, name, start, end, effort { title "Work" },
324
- duration, chart { scale day }
418
+ duration, chart { scale day width 500 }
325
419
  timeformat "%Y-%m-%d"
326
- hideresource ~isleaf()
420
+ hideresource ~(isleaf() & isleaf_())
327
421
  sortresources name.up
328
422
  }
329
423
 
330
424
  # A list of all tasks with the percentage completed for each task
331
425
  taskreport deliveries "" {
332
- headline "Project Deliveries"
333
- columns hierarchindex, name, start, end, note, complete, chart
426
+ headline "Project Deliverables"
427
+ columns hierarchindex, name, start, end, note { width 150 }, complete, chart
334
428
  taskroot AcSo.deliveries
335
- loadunit days
336
429
  hideresource 1
337
430
  scenarios plan, delayed
338
431
  }
339
432
  # A list of all employees with their contact details.
340
433
  resourcereport contactList "" {
434
+ scenarios delayed
341
435
  headline "Contact list and duty plan"
342
- columns name, Email { cellurl "mailto:$${Email}" }, Phone,
436
+ columns name,
437
+ Email { celltext 1 "[mailto:<-Email-> <-Email->]" },
438
+ Phone,
343
439
  chart { scale day }
344
440
  hideresource ~isleaf()
345
441
  sortresources name.up
@@ -349,9 +445,12 @@ resourcereport contactList "" {
349
445
  # A graph showing resource allocation. It identifies whether each
350
446
  # resource is under- or over-allocated for.
351
447
  resourcereport resourceGraph "" {
448
+ scenarios delayed
352
449
  headline "Resource Allocation Graph"
353
- columns no, name, effort, rate, weekly #, utilization, freeload, chart
450
+ columns no, name, effort, rate, weekly
354
451
  loadunit shortauto
355
- hidetask ~isleaf()
452
+ # We only like to show leaf tasks for leaf resources.
453
+ hidetask ~(isleaf() & isleaf_())
356
454
  sorttasks plan.start.up
357
455
  }
456
+
data/gem_spec.rb CHANGED
@@ -3,6 +3,7 @@ GEM_SPEC = Gem::Specification.new { |s|
3
3
  s.name = UNIX_NAME
4
4
  s.version = PROJECT_VERSION
5
5
  s.summary = PROJECT_SUMMARY
6
+ s.description = DESCRIPTION
6
7
  s.rubyforge_project = UNIX_NAME
7
8
  s.homepage = PROJECT_HOMEPAGE
8
9
  s.author = USER_NAME
@@ -25,6 +26,6 @@ GEM_SPEC = Gem::Specification.new { |s|
25
26
  s.cert_chain = [CERT_PUBLIC]
26
27
  end
27
28
  s.platform = Gem::Platform::RUBY
28
- s.required_ruby_version = '>= 1.8.5'
29
+ s.required_ruby_version = '>= 1.8.6'
29
30
  }
30
31
 
data/lib/Account.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Account.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
7
7
  #
8
8
  # This program is free software; you can redistribute it and/or modify
9
9
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = AccountScenario.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
7
7
  #
8
8
  # This program is free software; you can redistribute it and/or modify
9
9
  # it under the terms of version 2 of the GNU General Public License as
data/lib/Allocation.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Allocation.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
7
7
  #
8
8
  # This program is free software; you can redistribute it and/or modify
9
9
  # it under the terms of version 2 of the GNU General Public License as
data/lib/AppConfig.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = AppConfig.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
7
7
  #
8
8
  # This program is free software; you can redistribute it and/or modify
9
9
  # it under the terms of version 2 of the GNU General Public License as
@@ -11,6 +11,7 @@
11
11
  #
12
12
 
13
13
  require 'rbconfig'
14
+ require 'rbconfig/datadir'
14
15
 
15
16
  # This class provides central management of configuration data to an
16
17
  # application. It stores the version number, the name of the application and
@@ -23,6 +24,7 @@ class AppConfig
23
24
  def initialize
24
25
  @@version = '0.0.0'
25
26
  @@packageName = 'unnamed'
27
+ @@softwareName = 'unnamed'
26
28
  @@packageInfo = 'no info'
27
29
  @@appName = 'unnamed'
28
30
  @@authors = []
@@ -47,6 +49,14 @@ class AppConfig
47
49
  @@packageName
48
50
  end
49
51
 
52
+ def AppConfig.softwareName=(name)
53
+ @@softwareName = name
54
+ end
55
+
56
+ def AppConfig.softwareName
57
+ @@softwareName
58
+ end
59
+
50
60
  def AppConfig.packageInfo=(info)
51
61
  @@packageInfo = info
52
62
  end
@@ -96,21 +106,24 @@ class AppConfig
96
106
  end
97
107
 
98
108
  def AppConfig.dataDirs(baseDir = 'data')
99
- siteLibDir = ::Config::CONFIG['sitelibdir']
100
- siteBaseDir, rubyVersionDir = siteLibDir.scan(/(.*\/)(.*)/)[0]
109
+ rubyLibDir = RbConfig::CONFIG['rubylibdir']
110
+ rubyBaseDir, versionDir = rubyLibDir.scan(/(.*\/)(.*)/)[0]
111
+
101
112
  dirs = []
102
- # This is for the development version. We assume that we run the app
103
- # from the source base directory.
104
- dirs << "#{baseDir}/"
105
- # Or from the lib directory.
106
- dirs << "../#{baseDir}/"
113
+ if ENV['TASKJUGGLER_DATA_PATH']
114
+ dirs << ENV['TASKJUGGLER_DATA_PATH'] + "/#{baseDir}/"
115
+ end
107
116
  # This hopefully works for all setups. Otherwise we have to add more
108
117
  # alternative pathes.
109
- dirs << siteBaseDir + "gems/" + rubyVersionDir + '/gems/' \
118
+ # This one is for RPM based distros like Novell
119
+ dirs << rubyBaseDir + "gems/" + versionDir + '/gems/' \
120
+ + @@packageName + '-' + @@version + "/#{baseDir}/"
121
+ # This one is for Debian based distros
122
+ dirs << rubyLibDir + '/gems/' \
110
123
  + @@packageName + '-' + @@version + "/#{baseDir}/"
111
124
  # Remove non-existing directories from the list again
112
125
  dirs.delete_if do |dir|
113
- !File.exists?(dir)
126
+ !File.exists?(dir.untaint)
114
127
  end
115
128
  dirs
116
129
  end
data/lib/AttributeBase.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = AttributeBase.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
7
7
  #
8
8
  # This program is free software; you can redistribute it and/or modify
9
9
  # it under the terms of version 2 of the GNU General Public License as
@@ -37,12 +37,17 @@ class TaskJuggler
37
37
  # Flag that marks whether the value of this attribute was inherited from
38
38
  # the parent PropertyTreeNode.
39
39
  @inherited = false
40
- # Flat that marks whether the value of this attribute was provided by the
40
+ # Flag that marks whether the value of this attribute was provided by the
41
41
  # user (in contrast to being calculated).
42
42
  @provided = false
43
- # Create the initial value according to the specified default for this
44
- # type.
45
- @value = @type.default.deep_clone
43
+ # If type is an AttributeDefinition, create the initial value according
44
+ # to the specified default for this type. Otherwise type is the initial
45
+ # value.
46
+ if @type.is_a?(AttributeDefinition)
47
+ @value = @type.default.deep_clone
48
+ else
49
+ @value = @type
50
+ end
46
51
  # The mode is flag that controls how value assignments affect the flags.
47
52
  @@mode = 0
48
53
  end
@@ -98,10 +103,33 @@ class TaskJuggler
98
103
  end
99
104
 
100
105
  # Return the value as String.
101
- def to_s
106
+ def to_s(query = nil)
102
107
  @value.to_s
103
108
  end
104
109
 
110
+ def to_num
111
+ if @value.is_a?(Fixnum) || @value.is_a?(Bignum) || @value.is_a?(Float)
112
+ @value
113
+ else
114
+ nil
115
+ end
116
+ end
117
+
118
+ def to_sort
119
+ if @value.is_a?(Fixnum) || @value.is_a?(Bignum) ||
120
+ @value.is_a?(Float)
121
+ @value
122
+ elsif @value.respond_to?('to_s')
123
+ @value.to_s
124
+ else
125
+ nil
126
+ end
127
+ end
128
+
129
+ def to_rti(query)
130
+ @value.is_a?(RichTextIntermediate) ? !value : nil
131
+ end
132
+
105
133
  # Return the value in TJP file syntax.
106
134
  def to_tjp
107
135
  @type.id + " " + @value.to_s
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = AttributeDefinition.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
7
7
  #
8
8
  # This program is free software; you can redistribute it and/or modify
9
9
  # it under the terms of version 2 of the GNU General Public License as
data/lib/Attributes.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = Attributes.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
7
7
  #
8
8
  # This program is free software; you can redistribute it and/or modify
9
9
  # it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@ class TaskJuggler
30
30
  'account'
31
31
  end
32
32
 
33
- def to_s
33
+ def to_s(query = nil)
34
34
  @value ? @value.id : ''
35
35
  end
36
36
 
@@ -60,7 +60,7 @@ class TaskJuggler
60
60
  out
61
61
  end
62
62
 
63
- def to_s
63
+ def to_s(query = nil)
64
64
  out = ''
65
65
  first = true
66
66
  @value.each do |allocation|
@@ -100,7 +100,7 @@ class TaskJuggler
100
100
  'bookinglist'
101
101
  end
102
102
 
103
- def to_s
103
+ def to_s(query = nil)
104
104
  @value.collect{ |x| x.to_s }.join(', ')
105
105
  end
106
106
 
@@ -119,7 +119,7 @@ class TaskJuggler
119
119
  'boolean'
120
120
  end
121
121
 
122
- def to_s
122
+ def to_s(query = nil)
123
123
  @value ? 'true' : 'false'
124
124
  end
125
125
 
@@ -138,7 +138,7 @@ class TaskJuggler
138
138
  'charge'
139
139
  end
140
140
 
141
- def to_s
141
+ def to_s(query = nil)
142
142
  @value.join(', ')
143
143
  end
144
144
 
@@ -158,7 +158,7 @@ class TaskJuggler
158
158
  'chargeset'
159
159
  end
160
160
 
161
- def to_s
161
+ def to_s(query = nil)
162
162
  out = []
163
163
  @value.each { |i| out << i.to_s }
164
164
  out.join(", ")
@@ -184,7 +184,7 @@ class TaskJuggler
184
184
  'columns'
185
185
  end
186
186
 
187
- def to_s
187
+ def to_s(query = nil)
188
188
  "TODO"
189
189
  end
190
190
  end
@@ -194,6 +194,14 @@ class TaskJuggler
194
194
  super
195
195
  end
196
196
 
197
+ def to_s(query)
198
+ if @value
199
+ @value.to_s(query.timeFormat)
200
+ else
201
+ 'Error'
202
+ end
203
+ end
204
+
197
205
  def DateAttribute::tjpId
198
206
  'date'
199
207
  end
@@ -216,7 +224,7 @@ class TaskJuggler
216
224
  'dependencylist'
217
225
  end
218
226
 
219
- def to_s
227
+ def to_s(query = nil)
220
228
  out = []
221
229
  @value.each { |t| out << t.task.fullId if t.task }
222
230
  out.join(', ')
@@ -266,7 +274,7 @@ class TaskJuggler
266
274
  'flaglist'
267
275
  end
268
276
 
269
- def to_s
277
+ def to_s(query = nil)
270
278
  @value.join(', ')
271
279
  end
272
280
 
@@ -297,7 +305,7 @@ class TaskJuggler
297
305
  super
298
306
  end
299
307
 
300
- def to_s
308
+ def to_s(query = nil)
301
309
  @value.join(', ')
302
310
  end
303
311
 
@@ -314,7 +322,7 @@ class TaskJuggler
314
322
  'intervallist'
315
323
  end
316
324
 
317
- def to_s
325
+ def to_s(query = nil)
318
326
  out = []
319
327
  @value.each { |i| out << i.to_s }
320
328
  out.join(", ")
@@ -387,13 +395,25 @@ class TaskJuggler
387
395
  'reference'
388
396
  end
389
397
 
398
+ def to_s(query)
399
+ url || ''
400
+ end
401
+
402
+ def to_rti(query)
403
+ return nil unless @value
404
+
405
+ rText = RichText.new("[#{url} #{label}]")
406
+ rText.generateIntermediateFormat
407
+ end
408
+
390
409
  def url
391
410
  @value ? @value[0] : nil
392
411
  end
393
412
 
394
413
  def label
395
- @value ? @value[1][0] : nil
414
+ @value ? (@value[1] ? @value[1][0] : @value[0]) : nil
396
415
  end
416
+
397
417
  end
398
418
 
399
419
  class ResourceListAttribute < AttributeBase
@@ -407,12 +427,19 @@ class TaskJuggler
407
427
  'resourcelist'
408
428
  end
409
429
 
410
- def to_s
430
+ def to_s(query = nil)
411
431
  out = []
412
432
  @value.each { |r| out << r.fullId }
413
433
  out.join(", ")
414
434
  end
415
435
 
436
+ def to_rti(query = nil)
437
+ out = []
438
+ @value.each { |r| out << r.name }
439
+ rText = RichText.new(out.join(', '))
440
+ rText.generateIntermediateFormat
441
+ end
442
+
416
443
  def to_tjp
417
444
  out = []
418
445
  @value.each { |r| out << r.fullId }
@@ -426,10 +453,18 @@ class TaskJuggler
426
453
  super
427
454
  end
428
455
 
456
+ def inputText
457
+ @value ? @value.richText.inputText : ''
458
+ end
459
+
429
460
  def RichTextAttribute::tjpId
430
461
  'richtext'
431
462
  end
432
463
 
464
+ def to_s(query = nil)
465
+ @value ? @value.to_s : ''
466
+ end
467
+
433
468
  def to_tjp
434
469
  "#{@type.id} \"#{@value.to_s}\""
435
470
  end
@@ -445,7 +480,7 @@ class TaskJuggler
445
480
  'scenarios'
446
481
  end
447
482
 
448
- def to_s
483
+ def to_s(query = nil)
449
484
  @value.join(', ')
450
485
  end
451
486
 
@@ -522,7 +557,7 @@ class TaskJuggler
522
557
  'tasklist'
523
558
  end
524
559
 
525
- def to_s
560
+ def to_s(query = nil)
526
561
  out = []
527
562
  @value.each { |t, onEnd| out << t.fullId }
528
563
  out.join(", ")