taskjuggler 0.1.1 → 0.2.0

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 (563) hide show
  1. data/CHANGELOG +37 -5
  2. data/README.rdoc +4 -2
  3. data/benchmarks/UTF-8-Strings.rb +58 -0
  4. data/benchmarks/css/tjmanual.css +0 -1
  5. data/benchmarks/htmltaskreport-1.html +47702 -0
  6. data/benchmarks/htmltaskreport-2.html +23345 -0
  7. data/benchmarks/htmltaskreport-3.html +23265 -0
  8. data/benchmarks/htmltaskreport-4.html +22135 -0
  9. data/benchmarks/profile.clt +36082 -0
  10. data/benchmarks/tj3.profile +0 -0
  11. data/benchmarks/tj3.profile.grind +6185 -0
  12. data/benchmarks/tj3.profile.symbols +432 -0
  13. data/benchmarks/tj3.profile.txt +448 -0
  14. data/data/tjp.vim +689 -0
  15. data/doc/AppConfig.html +26 -2
  16. data/doc/CHANGELOG.html +60 -8
  17. data/doc/COPYING.html +26 -2
  18. data/doc/Diff/Hunk.html +26 -2
  19. data/doc/Diff.html +26 -2
  20. data/doc/Diffable.html +26 -2
  21. data/doc/DiffableString.html +26 -2
  22. data/doc/Object.html +26 -104
  23. data/doc/README_rdoc.html +39 -7
  24. data/doc/RuntimeConfig.html +26 -2
  25. data/doc/String.html +26 -2
  26. data/doc/TaskJuggler/Account.html +27 -3
  27. data/doc/TaskJuggler/AccountAttribute.html +30 -6
  28. data/doc/TaskJuggler/AccountScenario.html +28 -4
  29. data/doc/TaskJuggler/Allocation.html +33 -9
  30. data/doc/TaskJuggler/AllocationAttribute.html +31 -7
  31. data/doc/TaskJuggler/AttributeBase.html +162 -111
  32. data/doc/TaskJuggler/AttributeDefinition.html +26 -2
  33. data/doc/TaskJuggler/AttributeOverwrite.html +26 -2
  34. data/doc/TaskJuggler/BatchProcessor.html +26 -2
  35. data/doc/TaskJuggler/Booking.html +29 -5
  36. data/doc/TaskJuggler/BookingListAttribute.html +29 -5
  37. data/doc/TaskJuggler/BooleanAttribute.html +30 -6
  38. data/doc/TaskJuggler/CSVFile.html +26 -2
  39. data/doc/TaskJuggler/CellSettingPattern.html +26 -2
  40. data/doc/TaskJuggler/CellSettingPatternList.html +26 -2
  41. data/doc/TaskJuggler/Charge.html +30 -6
  42. data/doc/TaskJuggler/ChargeListAttribute.html +29 -5
  43. data/doc/TaskJuggler/ChargeSet.html +26 -2
  44. data/doc/TaskJuggler/ChargeSetListAttribute.html +30 -6
  45. data/doc/TaskJuggler/CollisionDetector.html +26 -2
  46. data/doc/TaskJuggler/ColumnListAttribute.html +28 -4
  47. data/doc/TaskJuggler/ColumnTable.html +26 -2
  48. data/doc/TaskJuggler/Daemon.html +26 -2
  49. data/doc/TaskJuggler/DataCache.html +26 -2
  50. data/doc/TaskJuggler/DataCacheEntry.html +26 -2
  51. data/doc/TaskJuggler/DateAttribute.html +30 -6
  52. data/doc/TaskJuggler/DefinitionListAttribute.html +28 -4
  53. data/doc/TaskJuggler/DependencyListAttribute.html +30 -6
  54. data/doc/TaskJuggler/DurationAttribute.html +31 -7
  55. data/doc/TaskJuggler/FileList.html +26 -2
  56. data/doc/TaskJuggler/FileRecord.html +26 -2
  57. data/doc/TaskJuggler/FixnumAttribute.html +28 -4
  58. data/doc/TaskJuggler/FlagListAttribute.html +30 -6
  59. data/doc/TaskJuggler/FloatAttribute.html +29 -5
  60. data/doc/TaskJuggler/FormatListAttribute.html +29 -5
  61. data/doc/TaskJuggler/GanttChart.html +26 -2
  62. data/doc/TaskJuggler/GanttContainer.html +26 -2
  63. data/doc/TaskJuggler/GanttHeader.html +26 -2
  64. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -2
  65. data/doc/TaskJuggler/GanttLine.html +27 -3
  66. data/doc/TaskJuggler/GanttLoadStack.html +26 -2
  67. data/doc/TaskJuggler/GanttMilestone.html +26 -2
  68. data/doc/TaskJuggler/GanttRouter.html +26 -2
  69. data/doc/TaskJuggler/GanttTaskBar.html +26 -2
  70. data/doc/TaskJuggler/HTMLDocument.html +26 -2
  71. data/doc/TaskJuggler/HTMLElements.html +623 -0
  72. data/doc/TaskJuggler/HTMLGraphics.html +26 -2
  73. data/doc/TaskJuggler/ICalReport.html +864 -0
  74. data/doc/TaskJuggler/ICalendar/Component.html +969 -0
  75. data/doc/TaskJuggler/ICalendar/Event.html +742 -0
  76. data/doc/TaskJuggler/ICalendar/Journal.html +722 -0
  77. data/doc/TaskJuggler/ICalendar/Person.html +633 -0
  78. data/doc/TaskJuggler/ICalendar/Todo.html +789 -0
  79. data/doc/TaskJuggler/ICalendar.html +1035 -0
  80. data/doc/TaskJuggler/Interval.html +99 -172
  81. data/doc/TaskJuggler/IntervalList.html +31 -7
  82. data/doc/TaskJuggler/JobInfo.html +26 -2
  83. data/doc/TaskJuggler/Journal.html +26 -2
  84. data/doc/TaskJuggler/JournalEntry.html +26 -2
  85. data/doc/TaskJuggler/JournalEntryList.html +26 -2
  86. data/doc/TaskJuggler/KeywordArray.html +26 -2
  87. data/doc/TaskJuggler/KeywordDocumentation.html +26 -2
  88. data/doc/TaskJuggler/Limits/Limit.html +124 -49
  89. data/doc/TaskJuggler/Limits.html +139 -156
  90. data/doc/TaskJuggler/LimitsAttribute.html +39 -14
  91. data/doc/TaskJuggler/ListAttributeBase.html +35 -11
  92. data/doc/TaskJuggler/Log.html +26 -2
  93. data/doc/TaskJuggler/LogFile.html +26 -2
  94. data/doc/TaskJuggler/LogicalAttribute.html +26 -2
  95. data/doc/TaskJuggler/LogicalExpression.html +26 -2
  96. data/doc/TaskJuggler/LogicalExpressionAttribute.html +35 -11
  97. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +35 -11
  98. data/doc/TaskJuggler/LogicalFlag.html +26 -2
  99. data/doc/TaskJuggler/LogicalFunction.html +28 -4
  100. data/doc/TaskJuggler/LogicalOperation.html +26 -2
  101. data/doc/TaskJuggler/ManagerResponsibilities.html +26 -2
  102. data/doc/TaskJuggler/ManagerStatusRecord.html +26 -2
  103. data/doc/TaskJuggler/Message.html +26 -2
  104. data/doc/TaskJuggler/MessageHandler.html +108 -62
  105. data/doc/TaskJuggler/Navigator.html +26 -2
  106. data/doc/TaskJuggler/NavigatorElement.html +26 -2
  107. data/doc/TaskJuggler/NikuProject.html +26 -2
  108. data/doc/TaskJuggler/NikuReport.html +27 -3
  109. data/doc/TaskJuggler/NikuResource.html +26 -2
  110. data/doc/TaskJuggler/NodeListAttribute.html +31 -7
  111. data/doc/TaskJuggler/PlaceHolderCell.html +26 -2
  112. data/doc/TaskJuggler/ProcessIntercom.html +26 -2
  113. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -2
  114. data/doc/TaskJuggler/Project.html +1236 -973
  115. data/doc/TaskJuggler/ProjectBroker.html +26 -2
  116. data/doc/TaskJuggler/ProjectBrokerIface.html +26 -2
  117. data/doc/TaskJuggler/ProjectFileParser.html +29 -4
  118. data/doc/TaskJuggler/ProjectFileScanner.html +56 -31
  119. data/doc/TaskJuggler/ProjectRecord.html +26 -2
  120. data/doc/TaskJuggler/ProjectServer.html +26 -2
  121. data/doc/TaskJuggler/ProjectServerIface.html +26 -2
  122. data/doc/TaskJuggler/PropertyAttribute.html +35 -11
  123. data/doc/TaskJuggler/PropertyList.html +26 -2
  124. data/doc/TaskJuggler/PropertySet.html +126 -106
  125. data/doc/TaskJuggler/PropertyTreeNode.html +595 -551
  126. data/doc/TaskJuggler/Query.html +127 -100
  127. data/doc/TaskJuggler/RTFHandlers.html +26 -2
  128. data/doc/TaskJuggler/RTFNavigator.html +26 -2
  129. data/doc/TaskJuggler/RTFQuery.html +28 -4
  130. data/doc/TaskJuggler/RTFReport.html +26 -2
  131. data/doc/TaskJuggler/RTFReportLink.html +26 -2
  132. data/doc/TaskJuggler/RTFWithQuerySupport.html +26 -2
  133. data/doc/TaskJuggler/RealFormat.html +26 -2
  134. data/doc/TaskJuggler/RealFormatAttribute.html +31 -7
  135. data/doc/TaskJuggler/ReferenceAttribute.html +58 -34
  136. data/doc/TaskJuggler/Report.html +427 -284
  137. data/doc/TaskJuggler/ReportBase.html +28 -102
  138. data/doc/TaskJuggler/ReportContext.html +26 -2
  139. data/doc/TaskJuggler/ReportScenario.html +633 -0
  140. data/doc/TaskJuggler/ReportServer.html +26 -2
  141. data/doc/TaskJuggler/ReportServerIface.html +26 -2
  142. data/doc/TaskJuggler/ReportServerRecord.html +26 -2
  143. data/doc/TaskJuggler/ReportServlet.html +26 -2
  144. data/doc/TaskJuggler/ReportTable.html +26 -2
  145. data/doc/TaskJuggler/ReportTableCell.html +26 -2
  146. data/doc/TaskJuggler/ReportTableColumn.html +26 -2
  147. data/doc/TaskJuggler/ReportTableLegend.html +26 -2
  148. data/doc/TaskJuggler/ReportTableLine.html +26 -2
  149. data/doc/TaskJuggler/Resource.html +225 -163
  150. data/doc/TaskJuggler/ResourceListAttribute.html +71 -47
  151. data/doc/TaskJuggler/ResourceListRE.html +26 -2
  152. data/doc/TaskJuggler/ResourceScenario.html +645 -603
  153. data/doc/TaskJuggler/RichText.html +26 -2
  154. data/doc/TaskJuggler/RichTextAttribute.html +53 -29
  155. data/doc/TaskJuggler/RichTextDocument.html +26 -2
  156. data/doc/TaskJuggler/RichTextElement.html +26 -2
  157. data/doc/TaskJuggler/RichTextFunctionExample.html +26 -2
  158. data/doc/TaskJuggler/RichTextFunctionHandler.html +26 -2
  159. data/doc/TaskJuggler/RichTextImage.html +26 -2
  160. data/doc/TaskJuggler/RichTextIntermediate.html +29 -5
  161. data/doc/TaskJuggler/RichTextParser.html +26 -2
  162. data/doc/TaskJuggler/RichTextScanner.html +26 -2
  163. data/doc/TaskJuggler/RichTextSnip.html +26 -2
  164. data/doc/TaskJuggler/RichTextSyntaxRules.html +26 -2
  165. data/doc/TaskJuggler/Scenario.html +26 -2
  166. data/doc/TaskJuggler/ScenarioData.html +95 -28
  167. data/doc/TaskJuggler/ScenarioListAttribute.html +39 -15
  168. data/doc/TaskJuggler/Scoreboard.html +137 -73
  169. data/doc/TaskJuggler/ScoreboardInterval.html +1116 -0
  170. data/doc/TaskJuggler/SheetHandlerBase.html +26 -2
  171. data/doc/TaskJuggler/SheetReceiver.html +26 -2
  172. data/doc/TaskJuggler/SheetSender.html +26 -2
  173. data/doc/TaskJuggler/Shift.html +27 -3
  174. data/doc/TaskJuggler/ShiftAssignment.html +27 -3
  175. data/doc/TaskJuggler/ShiftAssignments.html +174 -149
  176. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +41 -16
  177. data/doc/TaskJuggler/ShiftScenario.html +26 -2
  178. data/doc/TaskJuggler/SimpleQueryExpander.html +26 -2
  179. data/doc/TaskJuggler/SortListAttribute.html +35 -11
  180. data/doc/TaskJuggler/StatusSheetReceiver.html +26 -2
  181. data/doc/TaskJuggler/StatusSheetReport.html +26 -2
  182. data/doc/TaskJuggler/StatusSheetSender.html +26 -2
  183. data/doc/TaskJuggler/StdIoWrapper.html +26 -2
  184. data/doc/TaskJuggler/StringAttribute.html +39 -15
  185. data/doc/TaskJuggler/SymbolAttribute.html +35 -11
  186. data/doc/TaskJuggler/SyntaxReference.html +26 -2
  187. data/doc/TaskJuggler/TOCEntry.html +26 -2
  188. data/doc/TaskJuggler/TSResourceRecord.html +26 -2
  189. data/doc/TaskJuggler/TSTaskRecord.html +26 -2
  190. data/doc/TaskJuggler/TableColumnDefinition.html +26 -2
  191. data/doc/TaskJuggler/TableOfContents.html +26 -2
  192. data/doc/TaskJuggler/TableReport.html +239 -214
  193. data/doc/TaskJuggler/TagFile/TagFileEntry.html +841 -0
  194. data/doc/TaskJuggler/TagFile.html +817 -0
  195. data/doc/TaskJuggler/Task.html +27 -3
  196. data/doc/TaskJuggler/TaskDepListAttribute.html +47 -23
  197. data/doc/TaskJuggler/TaskDependency.html +26 -2
  198. data/doc/TaskJuggler/TaskListAttribute.html +47 -23
  199. data/doc/TaskJuggler/TaskListRE.html +26 -2
  200. data/doc/TaskJuggler/TaskScenario.html +2235 -2178
  201. data/doc/TaskJuggler/TernarySearchTree.html +26 -2
  202. data/doc/TaskJuggler/TextFormatter.html +26 -2
  203. data/doc/TaskJuggler/TextParser/Macro.html +26 -2
  204. data/doc/TaskJuggler/TextParser/MacroTable.html +26 -2
  205. data/doc/TaskJuggler/TextParser/Pattern.html +26 -2
  206. data/doc/TaskJuggler/TextParser/Rule.html +26 -2
  207. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +32 -8
  208. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +39 -15
  209. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +26 -2
  210. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +119 -86
  211. data/doc/TaskJuggler/TextParser/Scanner.html +317 -291
  212. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +26 -2
  213. data/doc/TaskJuggler/TextParser/StackElement.html +26 -2
  214. data/doc/TaskJuggler/TextParser/State.html +26 -2
  215. data/doc/TaskJuggler/TextParser/StateTransition.html +26 -2
  216. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +26 -2
  217. data/doc/TaskJuggler/TextParser/TokenDoc.html +26 -2
  218. data/doc/TaskJuggler/TextParser.html +85 -61
  219. data/doc/TaskJuggler/TextReport.html +26 -2
  220. data/doc/TaskJuggler/TimeInterval.html +841 -0
  221. data/doc/TaskJuggler/{IntervalListAttribute.html → TimeIntervalListAttribute.html} +33 -9
  222. data/doc/TaskJuggler/TimeSheet.html +26 -2
  223. data/doc/TaskJuggler/TimeSheetReceiver.html +26 -2
  224. data/doc/TaskJuggler/TimeSheetRecord.html +27 -3
  225. data/doc/TaskJuggler/TimeSheetReport.html +29 -5
  226. data/doc/TaskJuggler/TimeSheetSender.html +26 -2
  227. data/doc/TaskJuggler/TimeSheetSummary.html +26 -2
  228. data/doc/TaskJuggler/TimeSheets.html +26 -2
  229. data/doc/TaskJuggler/Tj3.html +150 -111
  230. data/doc/TaskJuggler/Tj3AppBase.html +26 -2
  231. data/doc/TaskJuggler/Tj3Client.html +26 -2
  232. data/doc/TaskJuggler/Tj3Daemon.html +26 -2
  233. data/doc/TaskJuggler/Tj3Man.html +26 -2
  234. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -2
  235. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -2
  236. data/doc/TaskJuggler/Tj3SsSender.html +26 -2
  237. data/doc/TaskJuggler/Tj3TsReceiver.html +26 -2
  238. data/doc/TaskJuggler/Tj3TsSender.html +26 -2
  239. data/doc/TaskJuggler/Tj3TsSummary.html +26 -2
  240. data/doc/TaskJuggler/TjException.html +26 -2
  241. data/doc/TaskJuggler/TjRuntimeError.html +26 -2
  242. data/doc/TaskJuggler/TjTime.html +539 -477
  243. data/doc/TaskJuggler/TjpExample.html +26 -2
  244. data/doc/TaskJuggler/TjpExportRE.html +240 -161
  245. data/doc/TaskJuggler/TjpSyntaxRules.html +4236 -3844
  246. data/doc/TaskJuggler/URLParameter.html +26 -2
  247. data/doc/TaskJuggler/UserManual.html +26 -2
  248. data/doc/TaskJuggler/VimSyntax.html +31 -7
  249. data/doc/TaskJuggler/WebServer.html +26 -2
  250. data/doc/TaskJuggler/WelcomePage.html +26 -2
  251. data/doc/TaskJuggler/WorkingHours.html +227 -152
  252. data/doc/TaskJuggler/WorkingHoursAttribute.html +62 -38
  253. data/doc/TaskJuggler/XMLBlob.html +26 -2
  254. data/doc/TaskJuggler/XMLComment.html +26 -2
  255. data/doc/TaskJuggler/XMLDocument.html +26 -2
  256. data/doc/TaskJuggler/XMLElement.html +26 -2
  257. data/doc/TaskJuggler/XMLNamedText.html +26 -2
  258. data/doc/TaskJuggler/XMLText.html +26 -2
  259. data/doc/TaskJuggler.html +486 -427
  260. data/doc/index.html +801 -659
  261. data/doc/lib/taskjuggler/AccountScenario_rb.html +1 -1
  262. data/doc/lib/taskjuggler/Account_rb.html +1 -1
  263. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +1 -1
  264. data/doc/lib/taskjuggler/Allocation_rb.html +1 -1
  265. data/doc/lib/taskjuggler/AppConfig_rb.html +1 -1
  266. data/doc/lib/taskjuggler/AttributeBase_rb.html +1 -1
  267. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +1 -1
  268. data/doc/lib/taskjuggler/Attributes_rb.html +1 -1
  269. data/doc/lib/taskjuggler/BatchProcessor_rb.html +1 -1
  270. data/doc/lib/taskjuggler/Booking_rb.html +1 -1
  271. data/doc/lib/taskjuggler/ChargeSet_rb.html +1 -1
  272. data/doc/lib/taskjuggler/Charge_rb.html +1 -1
  273. data/doc/lib/taskjuggler/DataCache_rb.html +1 -1
  274. data/doc/lib/taskjuggler/FileList_rb.html +1 -1
  275. data/doc/lib/taskjuggler/HTMLDocument_rb.html +1 -1
  276. data/doc/lib/{ruby-signal-bug_rb.html → taskjuggler/HTMLElements_rb.html} +9 -9
  277. data/doc/lib/{exchangebug_rb.html → taskjuggler/ICalendar_rb.html} +9 -9
  278. data/doc/lib/taskjuggler/IntervalList_rb.html +1 -1
  279. data/doc/lib/taskjuggler/Interval_rb.html +1 -1
  280. data/doc/lib/taskjuggler/Journal_rb.html +1 -1
  281. data/doc/lib/taskjuggler/KeywordArray_rb.html +1 -1
  282. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +1 -1
  283. data/doc/lib/taskjuggler/Limits_rb.html +1 -1
  284. data/doc/lib/taskjuggler/LogFile_rb.html +1 -1
  285. data/doc/lib/taskjuggler/Log_rb.html +1 -1
  286. data/doc/lib/taskjuggler/LogicalExpression_rb.html +1 -1
  287. data/doc/lib/taskjuggler/LogicalFunction_rb.html +1 -1
  288. data/doc/lib/taskjuggler/LogicalOperation_rb.html +1 -1
  289. data/doc/lib/taskjuggler/MessageHandler_rb.html +1 -1
  290. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +1 -1
  291. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +1 -1
  292. data/doc/lib/taskjuggler/Project_rb.html +1 -1
  293. data/doc/lib/taskjuggler/PropertyList_rb.html +1 -1
  294. data/doc/lib/taskjuggler/PropertySet_rb.html +1 -1
  295. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +1 -1
  296. data/doc/lib/taskjuggler/Query_rb.html +1 -1
  297. data/doc/lib/taskjuggler/RealFormat_rb.html +1 -1
  298. data/doc/lib/taskjuggler/ResourceScenario_rb.html +1 -1
  299. data/doc/lib/taskjuggler/Resource_rb.html +1 -1
  300. data/doc/lib/taskjuggler/RichText/Document_rb.html +1 -1
  301. data/doc/lib/taskjuggler/RichText/Element_rb.html +1 -1
  302. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +1 -1
  303. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +1 -1
  304. data/doc/lib/taskjuggler/RichText/Parser_rb.html +1 -1
  305. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +1 -1
  306. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +1 -1
  307. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +1 -1
  308. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +1 -1
  309. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +1 -1
  310. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +1 -1
  311. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +1 -1
  312. data/doc/lib/taskjuggler/RichText/Snip_rb.html +1 -1
  313. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +1 -1
  314. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +1 -1
  315. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +1 -1
  316. data/doc/lib/taskjuggler/RichText_rb.html +1 -1
  317. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +1 -1
  318. data/doc/lib/taskjuggler/ScenarioData_rb.html +1 -1
  319. data/doc/lib/taskjuggler/Scenario_rb.html +1 -1
  320. data/doc/lib/taskjuggler/Scoreboard_rb.html +1 -1
  321. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +1 -1
  322. data/doc/lib/taskjuggler/SheetReceiver_rb.html +1 -1
  323. data/doc/lib/taskjuggler/SheetSender_rb.html +1 -1
  324. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +1 -1
  325. data/doc/lib/taskjuggler/ShiftScenario_rb.html +1 -1
  326. data/doc/lib/taskjuggler/Shift_rb.html +1 -1
  327. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +1 -1
  328. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +1 -1
  329. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +1 -1
  330. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +1 -1
  331. data/doc/lib/taskjuggler/SyntaxReference_rb.html +1 -1
  332. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +1 -1
  333. data/doc/lib/taskjuggler/TaskDependency_rb.html +1 -1
  334. data/doc/lib/taskjuggler/TaskJuggler_rb.html +1 -1
  335. data/doc/lib/taskjuggler/TaskScenario_rb.html +1 -1
  336. data/doc/lib/taskjuggler/Task_rb.html +1 -1
  337. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +1 -1
  338. data/doc/lib/taskjuggler/TextFormatter_rb.html +1 -1
  339. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +1 -1
  340. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +1 -1
  341. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +1 -1
  342. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +1 -1
  343. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +1 -1
  344. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +1 -1
  345. data/doc/lib/taskjuggler/TextParser/State_rb.html +1 -1
  346. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +1 -1
  347. data/doc/lib/taskjuggler/TextParser_rb.html +1 -1
  348. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +1 -1
  349. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +1 -1
  350. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +1 -1
  351. data/doc/lib/taskjuggler/TimeSheets_rb.html +1 -1
  352. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +1 -1
  353. data/doc/lib/taskjuggler/Tj3Config_rb.html +1 -1
  354. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +1 -1
  355. data/doc/lib/taskjuggler/TjException_rb.html +1 -1
  356. data/doc/lib/taskjuggler/TjTime_rb.html +1 -1
  357. data/doc/lib/taskjuggler/TjpExample_rb.html +1 -1
  358. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +1 -1
  359. data/doc/lib/taskjuggler/URLParameter_rb.html +1 -1
  360. data/doc/lib/taskjuggler/UTF8String_rb.html +1 -1
  361. data/doc/lib/taskjuggler/UserManual_rb.html +1 -1
  362. data/doc/lib/taskjuggler/VimSyntax_rb.html +1 -1
  363. data/doc/lib/taskjuggler/WorkingHours_rb.html +1 -1
  364. data/doc/lib/taskjuggler/XMLDocument_rb.html +1 -1
  365. data/doc/lib/taskjuggler/XMLElement_rb.html +1 -1
  366. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +1 -1
  367. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +1 -1
  368. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +1 -1
  369. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +1 -1
  370. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +1 -1
  371. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +1 -1
  372. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +1 -1
  373. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +1 -1
  374. data/doc/lib/taskjuggler/apps/Tj3_rb.html +1 -1
  375. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +1 -1
  376. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +1 -1
  377. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +1 -1
  378. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +1 -1
  379. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +1 -1
  380. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +1 -1
  381. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +1 -1
  382. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +1 -1
  383. data/doc/lib/taskjuggler/deep_copy_rb.html +1 -1
  384. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +1 -1
  385. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +1 -1
  386. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +1 -1
  387. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +1 -1
  388. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +1 -1
  389. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +1 -1
  390. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +1 -1
  391. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +1 -1
  392. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +1 -1
  393. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +1 -1
  394. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +1 -1
  395. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +1 -1
  396. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +1 -1
  397. data/doc/lib/taskjuggler/reports/ICalReport_rb.html +71 -0
  398. data/doc/lib/taskjuggler/reports/Navigator_rb.html +1 -1
  399. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +1 -1
  400. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +1 -1
  401. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +1 -1
  402. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +1 -1
  403. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +1 -1
  404. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +1 -1
  405. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +1 -1
  406. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +1 -1
  407. data/doc/lib/taskjuggler/reports/Report_rb.html +5 -1
  408. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +1 -1
  409. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +1 -1
  410. data/doc/lib/taskjuggler/reports/TableReport_rb.html +1 -1
  411. data/doc/lib/taskjuggler/reports/TagFile_rb.html +71 -0
  412. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +1 -1
  413. data/doc/lib/taskjuggler/reports/TextReport_rb.html +1 -1
  414. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +1 -1
  415. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +1 -1
  416. data/doc/lib/tj3_rb.html +1 -1
  417. data/doc/lib/tj3client_rb.html +1 -1
  418. data/doc/lib/tj3d_rb.html +1 -1
  419. data/doc/lib/tj3man_rb.html +1 -1
  420. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  421. data/doc/lib/tj3ss_sender_rb.html +1 -1
  422. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  423. data/doc/lib/tj3ts_sender_rb.html +1 -1
  424. data/doc/lib/tj3ts_summary_rb.html +1 -1
  425. data/lib/taskjuggler/Account.rb +1 -1
  426. data/lib/taskjuggler/AccountScenario.rb +1 -1
  427. data/lib/taskjuggler/Allocation.rb +5 -5
  428. data/lib/taskjuggler/AttributeBase.rb +30 -22
  429. data/lib/taskjuggler/Attributes.rb +80 -78
  430. data/lib/taskjuggler/Booking.rb +2 -2
  431. data/lib/taskjuggler/Charge.rb +3 -3
  432. data/lib/taskjuggler/ICalendar.rb +251 -0
  433. data/lib/taskjuggler/Interval.rb +215 -53
  434. data/lib/taskjuggler/IntervalList.rb +5 -5
  435. data/lib/taskjuggler/Limits.rb +79 -69
  436. data/lib/taskjuggler/LogicalFunction.rb +2 -2
  437. data/lib/taskjuggler/MessageHandler.rb +11 -6
  438. data/lib/taskjuggler/Project.rb +208 -95
  439. data/lib/taskjuggler/ProjectFileParser.rb +2 -2
  440. data/lib/taskjuggler/ProjectFileScanner.rb +7 -6
  441. data/lib/taskjuggler/PropertySet.rb +1 -5
  442. data/lib/taskjuggler/PropertyTreeNode.rb +21 -16
  443. data/lib/taskjuggler/Query.rb +10 -7
  444. data/lib/taskjuggler/Resource.rb +6 -1
  445. data/lib/taskjuggler/ResourceScenario.rb +85 -69
  446. data/lib/taskjuggler/RichText/RTFQuery.rb +2 -2
  447. data/lib/taskjuggler/ScenarioData.rb +11 -1
  448. data/lib/taskjuggler/Scoreboard.rb +8 -1
  449. data/lib/taskjuggler/Shift.rb +1 -1
  450. data/lib/taskjuggler/ShiftAssignments.rb +22 -20
  451. data/lib/taskjuggler/Task.rb +1 -1
  452. data/lib/taskjuggler/TaskJuggler.rb +65 -51
  453. data/lib/taskjuggler/TaskScenario.rb +486 -419
  454. data/lib/taskjuggler/TextParser/Scanner.rb +22 -11
  455. data/lib/taskjuggler/TimeSheets.rb +1 -1
  456. data/lib/taskjuggler/Tj3Config.rb +1 -1
  457. data/lib/taskjuggler/TjTime.rb +7 -3
  458. data/lib/taskjuggler/TjpSyntaxRules.rb +157 -23
  459. data/lib/taskjuggler/VimSyntax.rb +18 -0
  460. data/lib/taskjuggler/WorkingHours.rb +20 -4
  461. data/lib/taskjuggler/apps/Tj3.rb +16 -1
  462. data/lib/taskjuggler/reports/GanttLine.rb +1 -1
  463. data/lib/taskjuggler/reports/ICalReport.rb +136 -0
  464. data/lib/taskjuggler/reports/NikuReport.rb +1 -1
  465. data/lib/taskjuggler/reports/Report.rb +59 -0
  466. data/lib/taskjuggler/reports/ReportBase.rb +2 -67
  467. data/lib/taskjuggler/reports/TableReport.rb +9 -8
  468. data/lib/taskjuggler/reports/TagFile.rb +120 -0
  469. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -3
  470. data/lib/taskjuggler/reports/TjpExportRE.rb +33 -9
  471. data/manual/Installation +126 -0
  472. data/spec/ICalendar_spec.rb +45 -0
  473. data/spec/IntervalList_spec.rb +11 -11
  474. data/tasks/changelog.rake +150 -60
  475. data/tasks/gem.rake +1 -0
  476. data/tasks/vim.rake +2 -2
  477. data/test/TestSuite/Export-Reports/refs/Booking.tjp +1 -1
  478. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  479. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +10 -1
  480. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +1 -1
  481. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  482. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  483. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  484. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  485. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  486. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  487. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  488. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  489. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  490. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  491. data/test/TestSuite/{Scheduler/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  492. data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
  493. data/test/TestSuite/Scheduler/Correct/Duration.tjp +3 -3
  494. data/test/TestSuite/Scheduler/Errors/R.html +113 -0
  495. data/test/TestSuite/Scheduler/Errors/allocate_no_assigned.tjp +15 -0
  496. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjmanual.css +0 -1
  497. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjreport.css +0 -0
  498. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/details.png +0 -0
  499. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-green.png +0 -0
  500. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-red.png +0 -0
  501. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-yellow.png +0 -0
  502. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resource.png +0 -0
  503. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resourcegroup.png +0 -0
  504. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/task.png +0 -0
  505. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/taskgroup.png +0 -0
  506. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-down.png +0 -0
  507. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-flat.png +0 -0
  508. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-up.png +0 -0
  509. data/test/TestSuite/Scheduler/Errors/overbooked_duration.tjp +11 -0
  510. data/test/TestSuite/Scheduler/Errors/overbooked_effort.tjp +11 -0
  511. data/test/TestSuite/Scheduler/Errors/overbooked_length.tjp +13 -0
  512. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/scripts/wz_tooltip.js +0 -0
  513. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  514. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  515. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +5 -2
  516. data/test/TestSuite/Syntax/Errors/scenario_after_tracking.tjp +8 -0
  517. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  518. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  519. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  520. data/test/test_Limits.rb +38 -30
  521. data/test/test_Scheduler.rb +2 -2
  522. data/test/test_ShiftAssignments.rb +8 -8
  523. data/test/test_WorkingHours.rb +4 -4
  524. metadata +1015 -1005
  525. data/lib/exchangebug.rb +0 -42
  526. data/lib/ruby-signal-bug.rb +0 -55
  527. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -60
  528. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -80
  529. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  530. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  531. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -412
  532. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -680
  533. data/test/TestSuite/ReportGenerator/Correct/DependencyList.csv +0 -4
  534. data/test/TestSuite/ReportGenerator/Correct/DependencyList.tjp +0 -25
  535. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -8
  536. data/test/TestSuite/ReportGenerator/Correct/Journal-2.csv +0 -8
  537. data/test/TestSuite/ReportGenerator/Correct/Journal-3.html +0 -28
  538. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  540. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  541. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  542. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  543. data/test/TestSuite/Scheduler/' +0 -23
  544. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  545. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  546. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  547. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  548. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  549. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  550. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  551. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  552. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  553. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  554. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  555. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  556. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  557. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  558. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  559. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  560. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  561. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  562. data/test/TestSuite/TimeSheets/receiver.log.mod +0 -1056
  563. data/test/TestSuite/TimeSheets/uu.txt +0 -29
data/manual/Installation CHANGED
@@ -49,6 +49,9 @@ work. For users that are not interested in multi-core support, the web
49
49
  server, the time sheet infrastructure and daemon Ruby 1.8.7 is still
50
50
  ok to use. On Windows you need at least Ruby 1.9.2.
51
51
 
52
+ See below for instructions on how to use the latest and greates Ruby
53
+ version in parallel with your distribution Ruby.
54
+
52
55
  * '''RubyGems:''' If it did not come with your OS or the Ruby
53
56
  installation, see [http://docs.rubygems.org here] how to get and
54
57
  install it.
@@ -210,3 +213,126 @@ manual and some other parts do require a build step.
210
213
 
211
214
  will do it all and even create installable gem files again.
212
215
 
216
+ === Installing a newer Ruby version ===
217
+
218
+ New Ruby versions are released usually about once or twice a year.
219
+ Unfortunately, it takes some time before Linux distributions pick up
220
+ the new release. Depending on your distribution, this can take
221
+ anything from a few weeks to several years. Many distributions still
222
+ have not yet made the switch to Ruby 1.9. The core part of
223
+ TaskJuggler can be used with Ruby 1.8.9, but it is at least 3 times
224
+ slower. Therefor it is recommended, that you install the latest
225
+ stable release of Ruby to use TaskJuggler. This can easily and safely
226
+ being done in parallel to your distribution Ruby. Both versions can
227
+ be used in parallel without interfering each other.
228
+
229
+ This section only covers Linux. For other operating system, please
230
+ search the web for instructions. If you want to contribute the
231
+ description for another OS, please see [[How_To_Contribute]].
232
+
233
+ First, you need to download the source code of the latest stable
234
+ release from
235
+ [http://www.ruby-lang.org/en/downloads/ www.ruby-lang.org].
236
+
237
+ The source code is distributed as zipped tarfile. You can extract it
238
+ like this. Change the file name to the actual version you have
239
+ downloaded.
240
+
241
+ tar -Zxvf ruby-X.X.X-*.tar.gz
242
+
243
+ This will create a directory with the same name as the archive, but
244
+ without the ''''.tar.gz'''' extension. Now change into this directory
245
+ and configure the source code for your specific OS and compile it.
246
+ For this to work, you need to have the GNU C compiler and related
247
+ utilities installed. We configure Ruby to append ''''19'''' to all
248
+ executable names. This way, you can easily choose if you want to run
249
+ the old or the new Ruby. ''''ruby'''' runs your distribution Ruby,
250
+ ''''ruby19'''' runs your new ruby.
251
+
252
+ cd ruby-X.X.X-*
253
+ ./configure --program-suffix=19
254
+ make
255
+
256
+ If all goes well, you can install it now. This requires root
257
+ permission, so you need to enter the root password. All executables
258
+ will be installed into ''''/usr/local/bin''''.
259
+
260
+ sudo make install
261
+
262
+ As a final step, you need to install the ''''mail'''' gem.
263
+
264
+ sudo gem19 install mail
265
+
266
+ If you don't want to use TaskJuggler from the git repository, you can
267
+ install the TaskJuggler gem as well.
268
+
269
+ sudo gem19 install taskjuggler
270
+
271
+ That's it. You now have the latest Ruby installed and are ready to
272
+ use TaskJuggler.
273
+
274
+ === Installing the Vim Support ===
275
+
276
+ TaskJuggler can be used with any text editor that supports UTF-8 text
277
+ file editing. If you don't have a preference yet, we recommend to try
278
+ the [http://www.vim.org Vim] text editor. It's a very powerful editor
279
+ and it has been customized for better integration with TaskJuggler.
280
+ This section describes, how to activate and use the Vim integration.
281
+ Vim is provided by pretty much any Linux distribution and also works
282
+ well on MacOX and Windows. See the web page for how to install it if
283
+ you don't have it yet.
284
+
285
+ This section describes the integration on Linux. Please see the
286
+ [[How_To_Contribute]] section if you want to contribute the
287
+ description for another OS.
288
+
289
+ If you have never customized Vim, you need to create a few
290
+ directories first.
291
+
292
+ cd ${HOME}
293
+ mkdir .vim
294
+ mkdir .vim/syntax
295
+
296
+ Then copy the syntax file ''''tjp.vim'''' into the vim syntax
297
+ directory. The following command works if you have installed
298
+ TaskJuggler as a gem with the system provided Ruby. For other cases,
299
+ you may have to modify it accordingly.
300
+
301
+ cp `gem contents taskjuggler | fgrep tjp.vim` .vim/syntax
302
+
303
+ Now we have to make sure, Vim detects the file. Edit the
304
+ ''''.vim/filetype.vim'''' file to contain the following section.
305
+
306
+ augroup filetypedetect
307
+ au BufNewFile,BufRead *.tjp,*.tji setf tjp
308
+ augroup END
309
+
310
+ And edit the ''''.vim/syntax.vim'''' file to contain the following line.
311
+
312
+ au! Syntax tjp so ~/.vim/syntax/tjp.vim
313
+
314
+ When you now open a ''''.tjp'''' or ''''.tji'''' file in Vim, you
315
+ should have the following features available:
316
+
317
+ * Syntax highlighting. TJP keywords should be colored in different colors.
318
+ * Syntax folding. The optional parts of properties within the curly
319
+ braces can be collapsed. For this to work, the opening brace needs
320
+ to be on the same line as the property keyword. The closing brace
321
+ must be the first non-blank character of the last line of the
322
+ block. See the '''':help fold'''' Vim help command for details how
323
+ to open and close folds.
324
+ * Tag navigation. If you include a [tagfile] report in your project,
325
+ Vim will know all property IDs and can jump to them. If you have a
326
+ task with the ID ''''foo.bar'''', the command '''':ta foo.bar''''
327
+ will put the cursor right where task ''''foo.bar'''' was declared.
328
+ * ID completion. If you include a [tagfile] report in your project,
329
+ Vim can tell you the full hierarchical ID of a property. Just move
330
+ the cursor to the first line of the property definition and press
331
+ ''''Ctrl-]''''.
332
+ * Run tj3 from within vim. Just type '''':make your_project.tjp'''' to
333
+ start the scheduling process. In case of errors or warnings, you
334
+ will be able to navigate the errors with '''':cn'''' and
335
+ '''':cp''''.
336
+ * Move the cursor over any TaskJuggler syntax keyword and press
337
+ ''''shift-k'''' to get the manual page for this keyword.
338
+
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env ruby -w
2
+ # encoding: UTF-8
3
+ #
4
+ # = IntervalList_spec.rb -- The TaskJuggler III Project Management Software
5
+ #
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011
7
+ # by Chris Schlaeger <chris@linux.com>
8
+ #
9
+ # This program is free software; you can redistribute it and/or modify
10
+ # it under the terms of version 2 of the GNU General Public License as
11
+ # published by the Free Software Foundation.
12
+ #
13
+
14
+ require 'rubygems'
15
+
16
+ require 'taskjuggler/ICalendar'
17
+
18
+ class TaskJuggler
19
+
20
+ describe ICalendar do
21
+
22
+ describe ICalendar::Component do
23
+
24
+ it 'should quote properly' do
25
+ c = ICalendar::Component.new(nil, '', nil, nil)
26
+ [
27
+ [ '', '' ],
28
+ [ 'foo', 'foo' ],
29
+ [ '"', '\"' ],
30
+ [ ';', '\;' ],
31
+ [ ',', '\,' ],
32
+ [ "\n", '\n' ],
33
+ [ "foo\nbar", 'foo\nbar' ],
34
+ [ 'a"b"c', 'a\"b\"c' ]
35
+ ].each do |i, o|
36
+ c.send('quoted', i).should == o
37
+ end
38
+ end
39
+
40
+ end
41
+
42
+ end
43
+
44
+ end
45
+
@@ -27,17 +27,17 @@ class TaskJuggler
27
27
  @t4 = TjTime.new('2011-01-05').freeze
28
28
  @t5 = TjTime.new('2011-01-06').freeze
29
29
  @t6 = TjTime.new('2011-01-07').freeze
30
- @i0_1 = Interval.new(@t0, @t1).freeze
31
- @i0_2 = Interval.new(@t0, @t2).freeze
32
- @i0_3 = Interval.new(@t0, @t3).freeze
33
- @i1_2 = Interval.new(@t1, @t2).freeze
34
- @i1_3 = Interval.new(@t1, @t3).freeze
35
- @i2_3 = Interval.new(@t2, @t3).freeze
36
- @i3_4 = Interval.new(@t3, @t4).freeze
37
- @i3_6 = Interval.new(@t3, @t6).freeze
38
- @i4_5 = Interval.new(@t4, @t5).freeze
39
- @i4_6 = Interval.new(@t4, @t6).freeze
40
- @i5_6 = Interval.new(@t5, @t6).freeze
30
+ @i0_1 = TimeInterval.new(@t0, @t1).freeze
31
+ @i0_2 = TimeInterval.new(@t0, @t2).freeze
32
+ @i0_3 = TimeInterval.new(@t0, @t3).freeze
33
+ @i1_2 = TimeInterval.new(@t1, @t2).freeze
34
+ @i1_3 = TimeInterval.new(@t1, @t3).freeze
35
+ @i2_3 = TimeInterval.new(@t2, @t3).freeze
36
+ @i3_4 = TimeInterval.new(@t3, @t4).freeze
37
+ @i3_6 = TimeInterval.new(@t3, @t6).freeze
38
+ @i4_5 = TimeInterval.new(@t4, @t5).freeze
39
+ @i4_6 = TimeInterval.new(@t4, @t6).freeze
40
+ @i5_6 = TimeInterval.new(@t5, @t6).freeze
41
41
  end
42
42
 
43
43
  describe "#<<" do
data/tasks/changelog.rake CHANGED
@@ -3,76 +3,166 @@ require 'time'
3
3
  desc 'update changelog'
4
4
  task :CHANGELOG do
5
5
 
6
- # 'git tag' is not sorted numerically. This function implements a numerical
7
- # comparison for tag versions of the format 'release-X.X.X'. X can be a
8
- # multi-digit number.
9
- def compareTags(a, b)
10
-
11
- def versionToComparable(v)
12
- /\d+\.\d+\.\d+/.match(v)[0].split('.').map{ |l| sprintf("%03d", l.to_i)}.
13
- join('.')
6
+ class Entry
7
+
8
+ attr_reader :type
9
+
10
+ def initialize(ref, author, time, message)
11
+ @ref = ref
12
+ @author = author
13
+ @time = time
14
+ @message = message
15
+ if (m = /New: (.*)/.match(@message))
16
+ @type = :feature
17
+ @message = m[1]
18
+ elsif (m = /Fix: (.*)/.match(@message))
19
+ @type = :bugfix
20
+ @message = m[1]
21
+ else
22
+ @type = :other
23
+ end
24
+ end
25
+
26
+ def to_s
27
+ " * #{@message}\n"
28
+ end
29
+
30
+ end
31
+
32
+ class Release
33
+
34
+ attr_reader :date, :version, :tag
35
+
36
+ def initialize(tag, predecessor)
37
+ @tag = tag
38
+ # We only support release tags in the form X.X.X
39
+ @version = /\d+\.\d+\.\d+/.match(tag)
40
+
41
+ # Construct a Git range.
42
+ interval = predecessor ? "#{predecessor.tag}..#{@tag}" : @tag
43
+
44
+ # Get the date of the release
45
+ date = Time.parse(/Date: (.*)/.match(`git show #{tag}`)[1]).utc
46
+ @date = date.strftime("%Y-%m-%d")
47
+
48
+ @entries = []
49
+ # Use -z option for git-log to get 0 bytes as separators.
50
+ `git log -z #{interval}`.split("\0").each do |commit|
51
+ # We ignore merges.
52
+ next if commit =~ /^Merge: \d*/
53
+
54
+ ref, author, time, _, message = commit.split("\n", 5)
55
+ ref = ref[/commit ([0-9a-f]+)/, 1]
56
+ author = author[/Author: (.*)/, 1].strip
57
+ time = Time.parse(time[/Date: (.*)/, 1]).utc
58
+ # Eleminate git-svn-id: lines
59
+ message.gsub!(/git-svn-id: .*\n/, '')
60
+ # Eliminate Signed-off-by: lines
61
+ message.gsub!(/Signed-off-by: .*\n/, '')
62
+ message.strip!
63
+ @entries << Entry.new(ref, author, time, message)
64
+ end
65
+ end
66
+
67
+ def empty?
68
+ @entries.empty?
69
+ end
70
+
71
+ def to_s
72
+ s = ''
73
+ if hasFeatures? || hasFixes?
74
+ if hasFeatures?
75
+ s << "== New Features\n\n"
76
+ @entries.each do |entry|
77
+ s << entry.to_s if entry.type == :feature
78
+ end
79
+ s << "\n"
80
+ end
81
+ if hasFixes?
82
+ s << "== Bug Fixes\n\n"
83
+ @entries.each do |entry|
84
+ s << entry.to_s if entry.type == :bugfix
85
+ end
86
+ s << "\n"
87
+ end
88
+ else
89
+ @entries.each do |entry|
90
+ s << entry.to_s
91
+ end
92
+ end
93
+ s
94
+ end
95
+
96
+ private
97
+
98
+ def hasFeatures?
99
+ @entries.each do |entry|
100
+ return true if entry.type == :feature
101
+ end
102
+ false
103
+ end
104
+
105
+ def hasFixes?
106
+ @entries.each do |entry|
107
+ return true if entry.type == :bugfix
108
+ end
109
+ false
14
110
  end
15
111
 
16
- versionToComparable(a) <=> versionToComparable(b)
17
112
  end
18
113
 
19
- # Get list of release tags from Git repository
20
- releases = `git tag`.split("\n").map { |r| r.chomp }.
21
- sort{ |a, b| compareTags(a, b) }
22
- releases << 'HEAD'
23
-
24
- # Now we get the commit entries for each release
25
- sections = []
26
- prevRelease = nil
27
- releases.each do |release|
28
- # This buffer holds the final text for the release section. It will
29
- # contain the commit messages in RDoc format.
30
- text = ''
31
- # We only support release tags in the form X.X.X
32
- version = /\d+\.\d+\.\d+/.match(release)
33
- # Construct a Git range.
34
- interval = prevRelease ? "#{prevRelease}..#{release}" : release
35
- prevRelease = release
36
-
37
- # Get the date of the release
38
- date = Time.parse(/Date: (.*)/.match(`git show #{release}`)[1]).utc
39
- date = date.strftime("%Y-%m-%d")
40
-
41
- logText = ''
42
- # Use -z option for git-log to get 0 bytes as separators.
43
- `git log -z #{interval}`.split("\0").each do |commit|
44
- # We ignore merges.
45
- next if commit =~ /^Merge: \d*/
46
-
47
- ref, author, time, _, message = commit.split("\n", 5)
48
- ref = ref[/commit ([0-9a-f]+)/, 1]
49
- author = author[/Author: (.*)/, 1].strip
50
- time = Time.parse(time[/Date: (.*)/, 1]).utc
51
- # Eleminate git-svn-id: lines
52
- message.gsub!(/git-svn-id: .*\n/, '')
53
- # Eliminate Signed-off-by: lines
54
- message.gsub!(/Signed-off-by: .*\n/, '')
55
- message.strip!
56
-
57
- logText += " * #{message}\n"
114
+ class ChangeLog
115
+
116
+ def initialize
117
+ @releases = []
118
+ predecessor = nil
119
+ getReleaseVersions.each do |version|
120
+ @releases << (predecessor = Release.new(version, predecessor))
121
+ end
58
122
  end
59
123
 
60
- # Skip the release if there are no changes. E. g. HEAD at release.
61
- next if logText.empty?
124
+ def to_s
125
+ s = ''
126
+ @releases.reverse.each do |release|
127
+ next if release.empty?
62
128
 
63
- # We use RDOC markup syntax to generate a title
64
- if version
65
- text += "= Release #{version} (#{date})\n\n" + logText
66
- else
67
- text += "= Next Release (Some Day)\n\n" + logText
129
+ # We use RDOC markup syntax to generate a title
130
+ if release.version
131
+ s << "= Release #{release.version} (#{release.date})\n\n"
132
+ else
133
+ s << "= Next Release (Some Day)\n\n"
134
+ end
135
+ s << release.to_s + "\n"
136
+ end
137
+ s
68
138
  end
69
- sections << text
139
+
140
+ private
141
+
142
+ # 'git tag' is not sorted numerically. This function implements a
143
+ # numerical comparison for tag versions of the format 'release-X.X.X'. X
144
+ # can be a multi-digit number.
145
+ def compareTags(a, b)
146
+
147
+ def versionToComparable(v)
148
+ /\d+\.\d+\.\d+/.match(v)[0].split('.').map{ |l| sprintf("%03d", l.to_i)}.
149
+ join('.')
150
+ end
151
+
152
+ versionToComparable(a) <=> versionToComparable(b)
153
+ end
154
+
155
+ def getReleaseVersions
156
+ # Get list of release tags from Git repository
157
+ releaseVersions = `git tag`.split("\n").map { |r| r.chomp }.
158
+ sort{ |a, b| compareTags(a, b) }
159
+ releaseVersions << 'HEAD'
160
+ end
161
+
70
162
  end
71
163
 
72
164
  File.open('CHANGELOG', 'w+') do |changelog|
73
- # List releases from last to first.
74
- sections.reverse.each do |section|
75
- changelog.puts section + "\n"
76
- end
165
+ changelog.puts ChangeLog.new.to_s
77
166
  end
167
+
78
168
  end
data/tasks/gem.rake CHANGED
@@ -12,6 +12,7 @@ execs = Dir.glob('./bin/*') + Dir.glob('./**/run') +
12
12
 
13
13
  task :release => [:clobber] do
14
14
  puts "Preparing release of #{PROJECT_NAME} version #{PROJECT_VERSION}"
15
+ Rake::Task[:vim].invoke
15
16
  Rake::Task[:spec].invoke
16
17
  Rake::Task[:test].invoke
17
18
  Rake::Task[:rdoc].invoke
data/tasks/vim.rake CHANGED
@@ -1,9 +1,9 @@
1
- # TASK VIM SYNTAX
1
+ # TASK VIM SYNTAX
2
2
 
3
3
  require 'taskjuggler/VimSyntax'
4
4
 
5
5
  desc 'Generate vim.tjp Vim syntax file'
6
6
  task :vim do
7
- TaskJuggler::VimSyntax.new.generate('tjp.vim')
7
+ TaskJuggler::VimSyntax.new.generate('data/tjp.vim')
8
8
  end
9
9
 
@@ -10,7 +10,7 @@ projectids project
10
10
  resource tux "Tux"
11
11
 
12
12
  task test "Testing" {
13
- start 2007-01-05-07:00-+0000
13
+ start 2007-01-08-20:00-+0000
14
14
  end 2007-01-24-22:00-+0000
15
15
  scheduling asap
16
16
  scheduled
@@ -0,0 +1,40 @@
1
+ project prj "Project" "1.0" 2000-01-01-00:00-+0000 - 2000-03-01-00:00-+0000 {
2
+ timezone "Europe/Berlin"
3
+ scenario plan "Plan Scenario" {
4
+ active yes
5
+ }
6
+ }
7
+
8
+ projectids prj
9
+
10
+ resource r "Resource"
11
+
12
+ task t "Task" {
13
+ start 2000-01-01-00:00-+0000
14
+ end 2000-01-14-17:00-+0000
15
+ scheduling asap
16
+ scheduled
17
+ }
18
+ supplement task t {
19
+ booking r 2000-01-03-08:00-+0000 + 3.0h,
20
+ 2000-01-03-12:00-+0000 + 5.0h,
21
+ 2000-01-04-08:00-+0000 + 3.0h,
22
+ 2000-01-04-12:00-+0000 + 5.0h,
23
+ 2000-01-05-08:00-+0000 + 3.0h,
24
+ 2000-01-05-12:00-+0000 + 5.0h,
25
+ 2000-01-06-08:00-+0000 + 3.0h,
26
+ 2000-01-06-12:00-+0000 + 5.0h,
27
+ 2000-01-07-08:00-+0000 + 3.0h,
28
+ 2000-01-07-12:00-+0000 + 5.0h { overtime 2 }
29
+ priority 500
30
+ projectid prj
31
+ }
32
+ supplement resource r {
33
+ workinghours sun off
34
+ workinghours mon 9:00 - 12:00, 13:00 - 18:00
35
+ workinghours tue 9:00 - 12:00, 13:00 - 18:00
36
+ workinghours wed 9:00 - 12:00, 13:00 - 18:00
37
+ workinghours thu 9:00 - 12:00, 13:00 - 18:00
38
+ workinghours fri 9:00 - 12:00, 13:00 - 18:00
39
+ workinghours sat off
40
+ }
@@ -8,7 +8,12 @@ project prj "Test" "1.0" 2010-04-28-00:00-+0000 - 2010-05-05-00:00-+0000 {
8
8
  projectids prj
9
9
 
10
10
 
11
- task _Task_1 "task" {
11
+ task _Task_1 " Crème brûlée Prepare " {
12
+ start 2010-04-28-00:00-+0000
13
+ milestone
14
+ scheduled
15
+ }
16
+ task _Task_2 "task" {
12
17
  start 2010-04-28-00:00-+0000
13
18
  milestone
14
19
  scheduled
@@ -17,3 +22,7 @@ supplement task _Task_1 {
17
22
  priority 500
18
23
  projectid prj
19
24
  }
25
+ supplement task _Task_2 {
26
+ priority 500
27
+ projectid prj
28
+ }
@@ -18,7 +18,7 @@ task parent_task "Parent task" {
18
18
  }
19
19
  }
20
20
  task other_task "Other task" {
21
- start 2010-12-01-00:00-+0000
21
+ start 2010-12-02-08:00-+0000
22
22
  end 2010-12-02-16:00-+0000
23
23
  scheduling asap
24
24
  scheduled