taskjuggler 0.0.11 → 0.1.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 (697) hide show
  1. data/CHANGELOG +6 -1550
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/benchmarks/profile.clt +36082 -0
  4. data/benchmarks/profile.html +58182 -0
  5. data/benchmarks/runbench.rb +2 -2
  6. data/data/css/tjmanual.css +0 -1
  7. data/doc/AppConfig.html +1491 -0
  8. data/doc/CHANGELOG.html +557 -0
  9. data/doc/COPYING.html +899 -0
  10. data/doc/Diff.html +1193 -0
  11. data/doc/Diff/Hunk.html +1026 -0
  12. data/doc/Diffable.html +684 -0
  13. data/doc/DiffableString.html +684 -0
  14. data/doc/Object.html +720 -0
  15. data/doc/README_rdoc.html +742 -0
  16. data/doc/RuntimeConfig.html +856 -0
  17. data/doc/String.html +1005 -0
  18. data/doc/TaskJuggler.html +2639 -0
  19. data/doc/TaskJuggler/Account.html +753 -0
  20. data/doc/TaskJuggler/AccountAttribute.html +769 -0
  21. data/doc/TaskJuggler/AccountScenario.html +712 -0
  22. data/doc/TaskJuggler/Allocation.html +963 -0
  23. data/doc/TaskJuggler/AllocationAttribute.html +799 -0
  24. data/doc/TaskJuggler/AttributeBase.html +1328 -0
  25. data/doc/TaskJuggler/AttributeDefinition.html +815 -0
  26. data/doc/TaskJuggler/AttributeOverwrite.html +606 -0
  27. data/doc/TaskJuggler/BatchProcessor.html +1178 -0
  28. data/doc/TaskJuggler/Booking.html +859 -0
  29. data/doc/TaskJuggler/BookingListAttribute.html +769 -0
  30. data/doc/TaskJuggler/BooleanAttribute.html +769 -0
  31. data/doc/TaskJuggler/CSVFile.html +1128 -0
  32. data/doc/TaskJuggler/CellSettingPattern.html +700 -0
  33. data/doc/TaskJuggler/CellSettingPatternList.html +749 -0
  34. data/doc/TaskJuggler/Charge.html +777 -0
  35. data/doc/TaskJuggler/ChargeListAttribute.html +733 -0
  36. data/doc/TaskJuggler/ChargeSet.html +949 -0
  37. data/doc/TaskJuggler/ChargeSetListAttribute.html +778 -0
  38. data/doc/TaskJuggler/CollisionDetector.html +1089 -0
  39. data/doc/TaskJuggler/ColumnListAttribute.html +733 -0
  40. data/doc/TaskJuggler/ColumnTable.html +763 -0
  41. data/doc/TaskJuggler/Daemon.html +819 -0
  42. data/doc/TaskJuggler/DataCache.html +1025 -0
  43. data/doc/TaskJuggler/DataCacheEntry.html +737 -0
  44. data/doc/TaskJuggler/DateAttribute.html +737 -0
  45. data/doc/TaskJuggler/DefinitionListAttribute.html +655 -0
  46. data/doc/TaskJuggler/DependencyListAttribute.html +773 -0
  47. data/doc/TaskJuggler/DurationAttribute.html +770 -0
  48. data/doc/TaskJuggler/FileList.html +793 -0
  49. data/doc/TaskJuggler/FileRecord.html +702 -0
  50. data/doc/TaskJuggler/FixnumAttribute.html +691 -0
  51. data/doc/TaskJuggler/FlagListAttribute.html +769 -0
  52. data/doc/TaskJuggler/FloatAttribute.html +733 -0
  53. data/doc/TaskJuggler/FormatListAttribute.html +697 -0
  54. data/doc/TaskJuggler/GanttChart.html +1487 -0
  55. data/doc/TaskJuggler/GanttContainer.html +945 -0
  56. data/doc/TaskJuggler/GanttHeader.html +948 -0
  57. data/doc/TaskJuggler/GanttHeaderScaleItem.html +762 -0
  58. data/doc/TaskJuggler/GanttLine.html +1325 -0
  59. data/doc/TaskJuggler/GanttLoadStack.html +828 -0
  60. data/doc/TaskJuggler/GanttMilestone.html +926 -0
  61. data/doc/TaskJuggler/GanttRouter.html +1136 -0
  62. data/doc/TaskJuggler/GanttTaskBar.html +948 -0
  63. data/doc/TaskJuggler/HTMLDocument.html +754 -0
  64. data/doc/TaskJuggler/HTMLElements.html +599 -0
  65. data/doc/TaskJuggler/HTMLGraphics.html +837 -0
  66. data/doc/TaskJuggler/Interval.html +1076 -0
  67. data/doc/TaskJuggler/IntervalList.html +797 -0
  68. data/doc/TaskJuggler/IntervalListAttribute.html +773 -0
  69. data/doc/TaskJuggler/JobInfo.html +943 -0
  70. data/doc/TaskJuggler/Journal.html +1248 -0
  71. data/doc/TaskJuggler/JournalEntry.html +860 -0
  72. data/doc/TaskJuggler/JournalEntryList.html +1229 -0
  73. data/doc/TaskJuggler/KeywordArray.html +696 -0
  74. data/doc/TaskJuggler/KeywordDocumentation.html +2250 -0
  75. data/doc/TaskJuggler/Limits.html +1036 -0
  76. data/doc/TaskJuggler/Limits/Limit.html +947 -0
  77. data/doc/TaskJuggler/LimitsAttribute.html +734 -0
  78. data/doc/TaskJuggler/ListAttributeBase.html +703 -0
  79. data/doc/TaskJuggler/Log.html +1163 -0
  80. data/doc/TaskJuggler/LogFile.html +980 -0
  81. data/doc/TaskJuggler/LogicalAttribute.html +760 -0
  82. data/doc/TaskJuggler/LogicalExpression.html +801 -0
  83. data/doc/TaskJuggler/LogicalExpressionAttribute.html +691 -0
  84. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +691 -0
  85. data/doc/TaskJuggler/LogicalFlag.html +753 -0
  86. data/doc/TaskJuggler/LogicalFunction.html +1409 -0
  87. data/doc/TaskJuggler/LogicalOperation.html +1144 -0
  88. data/doc/TaskJuggler/ManagerResponsibilities.html +736 -0
  89. data/doc/TaskJuggler/ManagerStatusRecord.html +740 -0
  90. data/doc/TaskJuggler/Message.html +837 -0
  91. data/doc/TaskJuggler/MessageHandler.html +1056 -0
  92. data/doc/TaskJuggler/Navigator.html +943 -0
  93. data/doc/TaskJuggler/NavigatorElement.html +994 -0
  94. data/doc/TaskJuggler/NikuProject.html +724 -0
  95. data/doc/TaskJuggler/NikuReport.html +1470 -0
  96. data/doc/TaskJuggler/NikuResource.html +694 -0
  97. data/doc/TaskJuggler/NodeListAttribute.html +655 -0
  98. data/doc/TaskJuggler/PlaceHolderCell.html +748 -0
  99. data/doc/TaskJuggler/ProcessIntercom.html +1017 -0
  100. data/doc/TaskJuggler/ProcessIntercomIface.html +773 -0
  101. data/doc/TaskJuggler/Project.html +3478 -0
  102. data/doc/TaskJuggler/ProjectBroker.html +1676 -0
  103. data/doc/TaskJuggler/ProjectBrokerIface.html +851 -0
  104. data/doc/TaskJuggler/ProjectFileParser.html +2102 -0
  105. data/doc/TaskJuggler/ProjectFileScanner.html +1896 -0
  106. data/doc/TaskJuggler/ProjectRecord.html +978 -0
  107. data/doc/TaskJuggler/ProjectServer.html +1249 -0
  108. data/doc/TaskJuggler/ProjectServerIface.html +868 -0
  109. data/doc/TaskJuggler/PropertyAttribute.html +691 -0
  110. data/doc/TaskJuggler/PropertyList.html +1399 -0
  111. data/doc/TaskJuggler/PropertySet.html +1796 -0
  112. data/doc/TaskJuggler/PropertyTreeNode.html +2851 -0
  113. data/doc/TaskJuggler/Query.html +1756 -0
  114. data/doc/TaskJuggler/RTFHandlers.html +664 -0
  115. data/doc/TaskJuggler/RTFNavigator.html +792 -0
  116. data/doc/TaskJuggler/RTFQuery.html +1083 -0
  117. data/doc/TaskJuggler/RTFReport.html +820 -0
  118. data/doc/TaskJuggler/RTFReportLink.html +812 -0
  119. data/doc/TaskJuggler/RTFWithQuerySupport.html +702 -0
  120. data/doc/TaskJuggler/RealFormat.html +805 -0
  121. data/doc/TaskJuggler/RealFormatAttribute.html +655 -0
  122. data/doc/TaskJuggler/ReferenceAttribute.html +880 -0
  123. data/doc/TaskJuggler/Report.html +1501 -0
  124. data/doc/TaskJuggler/ReportBase.html +1266 -0
  125. data/doc/TaskJuggler/ReportContext.html +837 -0
  126. data/doc/TaskJuggler/ReportServer.html +1068 -0
  127. data/doc/TaskJuggler/ReportServerIface.html +902 -0
  128. data/doc/TaskJuggler/ReportServerRecord.html +781 -0
  129. data/doc/TaskJuggler/ReportServlet.html +1029 -0
  130. data/doc/TaskJuggler/ReportTable.html +1179 -0
  131. data/doc/TaskJuggler/ReportTableCell.html +1666 -0
  132. data/doc/TaskJuggler/ReportTableColumn.html +890 -0
  133. data/doc/TaskJuggler/ReportTableLegend.html +1060 -0
  134. data/doc/TaskJuggler/ReportTableLine.html +1067 -0
  135. data/doc/TaskJuggler/Resource.html +1004 -0
  136. data/doc/TaskJuggler/ResourceListAttribute.html +829 -0
  137. data/doc/TaskJuggler/ResourceListRE.html +737 -0
  138. data/doc/TaskJuggler/ResourceScenario.html +2549 -0
  139. data/doc/TaskJuggler/RichText.html +879 -0
  140. data/doc/TaskJuggler/RichTextAttribute.html +811 -0
  141. data/doc/TaskJuggler/RichTextDocument.html +1038 -0
  142. data/doc/TaskJuggler/RichTextElement.html +1780 -0
  143. data/doc/TaskJuggler/RichTextFunctionExample.html +799 -0
  144. data/doc/TaskJuggler/RichTextFunctionHandler.html +750 -0
  145. data/doc/TaskJuggler/RichTextImage.html +712 -0
  146. data/doc/TaskJuggler/RichTextIntermediate.html +1285 -0
  147. data/doc/TaskJuggler/RichTextParser.html +868 -0
  148. data/doc/TaskJuggler/RichTextScanner.html +1565 -0
  149. data/doc/TaskJuggler/RichTextSnip.html +1000 -0
  150. data/doc/TaskJuggler/RichTextSyntaxRules.html +2052 -0
  151. data/doc/TaskJuggler/Scenario.html +656 -0
  152. data/doc/TaskJuggler/ScenarioData.html +838 -0
  153. data/doc/TaskJuggler/ScenarioListAttribute.html +733 -0
  154. data/doc/TaskJuggler/Scoreboard.html +1201 -0
  155. data/doc/TaskJuggler/SheetHandlerBase.html +1297 -0
  156. data/doc/TaskJuggler/SheetReceiver.html +1398 -0
  157. data/doc/TaskJuggler/SheetSender.html +1168 -0
  158. data/doc/TaskJuggler/Shift.html +751 -0
  159. data/doc/TaskJuggler/ShiftAssignment.html +1008 -0
  160. data/doc/TaskJuggler/ShiftAssignments.html +1413 -0
  161. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +734 -0
  162. data/doc/TaskJuggler/ShiftScenario.html +782 -0
  163. data/doc/TaskJuggler/SimpleQueryExpander.html +732 -0
  164. data/doc/TaskJuggler/SortListAttribute.html +691 -0
  165. data/doc/TaskJuggler/StatusSheetReceiver.html +678 -0
  166. data/doc/TaskJuggler/StatusSheetReport.html +935 -0
  167. data/doc/TaskJuggler/StatusSheetSender.html +808 -0
  168. data/doc/TaskJuggler/StdIoWrapper.html +696 -0
  169. data/doc/TaskJuggler/StringAttribute.html +733 -0
  170. data/doc/TaskJuggler/SymbolAttribute.html +691 -0
  171. data/doc/TaskJuggler/SyntaxReference.html +1240 -0
  172. data/doc/TaskJuggler/TOCEntry.html +836 -0
  173. data/doc/TaskJuggler/TSResourceRecord.html +732 -0
  174. data/doc/TaskJuggler/TSTaskRecord.html +744 -0
  175. data/doc/TaskJuggler/TableColumnDefinition.html +949 -0
  176. data/doc/TaskJuggler/TableOfContents.html +790 -0
  177. data/doc/TaskJuggler/TableReport.html +2555 -0
  178. data/doc/TaskJuggler/Task.html +890 -0
  179. data/doc/TaskJuggler/TaskDepListAttribute.html +773 -0
  180. data/doc/TaskJuggler/TaskDependency.html +832 -0
  181. data/doc/TaskJuggler/TaskListAttribute.html +773 -0
  182. data/doc/TaskJuggler/TaskListRE.html +736 -0
  183. data/doc/TaskJuggler/TaskScenario.html +5180 -0
  184. data/doc/TaskJuggler/TernarySearchTree.html +1341 -0
  185. data/doc/TaskJuggler/TextFormatter.html +973 -0
  186. data/doc/TaskJuggler/TextParser.html +1862 -0
  187. data/doc/TaskJuggler/TextParser/Macro.html +708 -0
  188. data/doc/TaskJuggler/TextParser/MacroTable.html +832 -0
  189. data/doc/TaskJuggler/TextParser/Pattern.html +1743 -0
  190. data/doc/TaskJuggler/TextParser/Rule.html +1419 -0
  191. data/doc/TaskJuggler/TextParser/Scanner.html +1516 -0
  192. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +661 -0
  193. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +727 -0
  194. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +724 -0
  195. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +1095 -0
  196. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +760 -0
  197. data/doc/TaskJuggler/TextParser/StackElement.html +940 -0
  198. data/doc/TaskJuggler/TextParser/State.html +1015 -0
  199. data/doc/TaskJuggler/TextParser/StateTransition.html +808 -0
  200. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +711 -0
  201. data/doc/TaskJuggler/TextParser/TokenDoc.html +742 -0
  202. data/doc/TaskJuggler/TextReport.html +921 -0
  203. data/doc/TaskJuggler/TimeSheet.html +1264 -0
  204. data/doc/TaskJuggler/TimeSheetReceiver.html +675 -0
  205. data/doc/TaskJuggler/TimeSheetRecord.html +1415 -0
  206. data/doc/TaskJuggler/TimeSheetReport.html +1013 -0
  207. data/doc/TaskJuggler/TimeSheetSender.html +700 -0
  208. data/doc/TaskJuggler/TimeSheetSummary.html +959 -0
  209. data/doc/TaskJuggler/TimeSheets.html +736 -0
  210. data/doc/TaskJuggler/Tj3.html +857 -0
  211. data/doc/TaskJuggler/Tj3AppBase.html +942 -0
  212. data/doc/TaskJuggler/Tj3Client.html +1510 -0
  213. data/doc/TaskJuggler/Tj3Daemon.html +870 -0
  214. data/doc/TaskJuggler/Tj3Man.html +768 -0
  215. data/doc/TaskJuggler/Tj3SheetAppBase.html +758 -0
  216. data/doc/TaskJuggler/Tj3SsReceiver.html +747 -0
  217. data/doc/TaskJuggler/Tj3SsSender.html +780 -0
  218. data/doc/TaskJuggler/Tj3TsReceiver.html +747 -0
  219. data/doc/TaskJuggler/Tj3TsSender.html +767 -0
  220. data/doc/TaskJuggler/Tj3TsSummary.html +775 -0
  221. data/doc/TaskJuggler/TjException.html +692 -0
  222. data/doc/TaskJuggler/TjRuntimeError.html +606 -0
  223. data/doc/TaskJuggler/TjTime.html +3117 -0
  224. data/doc/TaskJuggler/TjpExample.html +897 -0
  225. data/doc/TaskJuggler/TjpExportRE.html +1772 -0
  226. data/doc/TaskJuggler/TjpSyntaxRules.html +14329 -0
  227. data/doc/TaskJuggler/URLParameter.html +691 -0
  228. data/doc/TaskJuggler/UserManual.html +1224 -0
  229. data/doc/TaskJuggler/VimSyntax.html +1064 -0
  230. data/doc/TaskJuggler/WebServer.html +757 -0
  231. data/doc/TaskJuggler/WelcomePage.html +789 -0
  232. data/doc/TaskJuggler/WorkingHours.html +1218 -0
  233. data/doc/TaskJuggler/WorkingHoursAttribute.html +756 -0
  234. data/doc/TaskJuggler/XMLBlob.html +707 -0
  235. data/doc/TaskJuggler/XMLComment.html +702 -0
  236. data/doc/TaskJuggler/XMLDocument.html +803 -0
  237. data/doc/TaskJuggler/XMLElement.html +990 -0
  238. data/doc/TaskJuggler/XMLNamedText.html +663 -0
  239. data/doc/TaskJuggler/XMLText.html +717 -0
  240. data/doc/index.html +4518 -0
  241. data/doc/lib/taskjuggler/AccountScenario_rb.html +69 -0
  242. data/doc/lib/taskjuggler/Account_rb.html +71 -0
  243. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +67 -0
  244. data/doc/lib/taskjuggler/Allocation_rb.html +71 -0
  245. data/doc/lib/taskjuggler/AppConfig_rb.html +69 -0
  246. data/doc/lib/taskjuggler/AttributeBase_rb.html +69 -0
  247. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +67 -0
  248. data/doc/lib/taskjuggler/Attributes_rb.html +83 -0
  249. data/doc/lib/taskjuggler/BatchProcessor_rb.html +71 -0
  250. data/doc/lib/taskjuggler/Booking_rb.html +67 -0
  251. data/doc/lib/taskjuggler/ChargeSet_rb.html +69 -0
  252. data/doc/lib/taskjuggler/Charge_rb.html +69 -0
  253. data/doc/lib/taskjuggler/DataCache_rb.html +71 -0
  254. data/doc/lib/taskjuggler/FileList_rb.html +67 -0
  255. data/doc/lib/taskjuggler/HTMLDocument_rb.html +71 -0
  256. data/doc/lib/taskjuggler/HTMLElements_rb.html +69 -0
  257. data/doc/lib/taskjuggler/IntervalList_rb.html +69 -0
  258. data/doc/lib/taskjuggler/Interval_rb.html +69 -0
  259. data/doc/lib/taskjuggler/Journal_rb.html +67 -0
  260. data/doc/lib/taskjuggler/KeywordArray_rb.html +67 -0
  261. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +77 -0
  262. data/doc/lib/taskjuggler/Limits_rb.html +69 -0
  263. data/doc/lib/taskjuggler/LogFile_rb.html +69 -0
  264. data/doc/lib/taskjuggler/Log_rb.html +71 -0
  265. data/doc/lib/taskjuggler/LogicalExpression_rb.html +73 -0
  266. data/doc/lib/taskjuggler/LogicalFunction_rb.html +69 -0
  267. data/doc/lib/taskjuggler/LogicalOperation_rb.html +69 -0
  268. data/doc/lib/taskjuggler/MessageHandler_rb.html +69 -0
  269. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +77 -0
  270. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +69 -0
  271. data/doc/lib/taskjuggler/Project_rb.html +113 -0
  272. data/doc/lib/taskjuggler/PropertyList_rb.html +67 -0
  273. data/doc/lib/taskjuggler/PropertySet_rb.html +71 -0
  274. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +67 -0
  275. data/doc/lib/taskjuggler/Query_rb.html +69 -0
  276. data/doc/lib/taskjuggler/RealFormat_rb.html +67 -0
  277. data/doc/lib/taskjuggler/ResourceScenario_rb.html +69 -0
  278. data/doc/lib/taskjuggler/Resource_rb.html +71 -0
  279. data/doc/lib/taskjuggler/RichText/Document_rb.html +73 -0
  280. data/doc/lib/taskjuggler/RichText/Element_rb.html +75 -0
  281. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +73 -0
  282. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +67 -0
  283. data/doc/lib/taskjuggler/RichText/Parser_rb.html +75 -0
  284. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +75 -0
  285. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +73 -0
  286. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +73 -0
  287. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +75 -0
  288. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +71 -0
  289. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +69 -0
  290. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +71 -0
  291. data/doc/lib/taskjuggler/RichText/Snip_rb.html +71 -0
  292. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +67 -0
  293. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +71 -0
  294. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +71 -0
  295. data/doc/lib/taskjuggler/RichText_rb.html +73 -0
  296. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +69 -0
  297. data/doc/lib/taskjuggler/ScenarioData_rb.html +71 -0
  298. data/doc/lib/taskjuggler/Scenario_rb.html +69 -0
  299. data/doc/lib/taskjuggler/Scoreboard_rb.html +69 -0
  300. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +75 -0
  301. data/doc/lib/taskjuggler/SheetReceiver_rb.html +81 -0
  302. data/doc/lib/taskjuggler/SheetSender_rb.html +79 -0
  303. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +71 -0
  304. data/doc/lib/taskjuggler/ShiftScenario_rb.html +69 -0
  305. data/doc/lib/taskjuggler/Shift_rb.html +71 -0
  306. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +69 -0
  307. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +69 -0
  308. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +69 -0
  309. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +67 -0
  310. data/doc/lib/taskjuggler/SyntaxReference_rb.html +75 -0
  311. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +67 -0
  312. data/doc/lib/taskjuggler/TaskDependency_rb.html +67 -0
  313. data/doc/lib/taskjuggler/TaskJuggler_rb.html +75 -0
  314. data/doc/lib/taskjuggler/TaskScenario_rb.html +71 -0
  315. data/doc/lib/taskjuggler/Task_rb.html +71 -0
  316. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +69 -0
  317. data/doc/lib/taskjuggler/TextFormatter_rb.html +69 -0
  318. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +67 -0
  319. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +71 -0
  320. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +69 -0
  321. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +77 -0
  322. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +67 -0
  323. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +67 -0
  324. data/doc/lib/taskjuggler/TextParser/State_rb.html +67 -0
  325. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +67 -0
  326. data/doc/lib/taskjuggler/TextParser_rb.html +79 -0
  327. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +69 -0
  328. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +69 -0
  329. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +69 -0
  330. data/doc/lib/taskjuggler/TimeSheets_rb.html +67 -0
  331. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +79 -0
  332. data/doc/lib/taskjuggler/Tj3Config_rb.html +71 -0
  333. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +69 -0
  334. data/doc/lib/taskjuggler/TjException_rb.html +67 -0
  335. data/doc/lib/taskjuggler/TjTime_rb.html +71 -0
  336. data/doc/lib/taskjuggler/TjpExample_rb.html +69 -0
  337. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +67 -0
  338. data/doc/lib/taskjuggler/URLParameter_rb.html +69 -0
  339. data/doc/lib/taskjuggler/UTF8String_rb.html +69 -0
  340. data/doc/lib/taskjuggler/UserManual_rb.html +81 -0
  341. data/doc/lib/taskjuggler/VimSyntax_rb.html +69 -0
  342. data/doc/lib/taskjuggler/WorkingHours_rb.html +71 -0
  343. data/doc/lib/taskjuggler/XMLDocument_rb.html +69 -0
  344. data/doc/lib/taskjuggler/XMLElement_rb.html +69 -0
  345. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +75 -0
  346. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +75 -0
  347. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +75 -0
  348. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +71 -0
  349. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +71 -0
  350. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +71 -0
  351. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +71 -0
  352. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +71 -0
  353. data/doc/lib/taskjuggler/apps/Tj3_rb.html +71 -0
  354. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +69 -0
  355. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +71 -0
  356. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +83 -0
  357. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +85 -0
  358. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +73 -0
  359. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +69 -0
  360. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +81 -0
  361. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +71 -0
  362. data/doc/lib/taskjuggler/deep_copy_rb.html +67 -0
  363. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +69 -0
  364. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +69 -0
  365. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +69 -0
  366. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +75 -0
  367. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +69 -0
  368. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +67 -0
  369. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +69 -0
  370. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +79 -0
  371. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +69 -0
  372. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +69 -0
  373. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +69 -0
  374. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +69 -0
  375. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +67 -0
  376. data/doc/lib/taskjuggler/reports/Navigator_rb.html +69 -0
  377. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +71 -0
  378. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +67 -0
  379. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +67 -0
  380. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +67 -0
  381. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +67 -0
  382. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +67 -0
  383. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +69 -0
  384. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +71 -0
  385. data/doc/lib/taskjuggler/reports/Report_rb.html +93 -0
  386. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +75 -0
  387. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +69 -0
  388. data/doc/lib/taskjuggler/reports/TableReport_rb.html +77 -0
  389. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +75 -0
  390. data/doc/lib/taskjuggler/reports/TextReport_rb.html +69 -0
  391. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +69 -0
  392. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +69 -0
  393. data/doc/lib/tj3_rb.html +69 -0
  394. data/doc/lib/tj3client_rb.html +69 -0
  395. data/doc/lib/tj3d_rb.html +69 -0
  396. data/doc/lib/tj3man_rb.html +69 -0
  397. data/doc/lib/tj3ss_receiver_rb.html +69 -0
  398. data/doc/lib/tj3ss_sender_rb.html +69 -0
  399. data/doc/lib/tj3ts_receiver_rb.html +69 -0
  400. data/doc/lib/tj3ts_sender_rb.html +69 -0
  401. data/doc/lib/tj3ts_summary_rb.html +69 -0
  402. data/doc/rdoc.css +706 -0
  403. data/examples/tutorial.tjp +2 -1
  404. data/lib/taskjuggler/Attributes.rb +33 -12
  405. data/lib/taskjuggler/DataCache.rb +17 -0
  406. data/lib/taskjuggler/FileList.rb +9 -0
  407. data/lib/taskjuggler/HTMLDocument.rb +19 -21
  408. data/lib/taskjuggler/HTMLElements.rb +46 -0
  409. data/lib/taskjuggler/Journal.rb +95 -46
  410. data/lib/taskjuggler/KeywordDocumentation.rb +248 -185
  411. data/lib/taskjuggler/LogicalExpression.rb +2 -2
  412. data/lib/taskjuggler/LogicalFunction.rb +22 -1
  413. data/lib/taskjuggler/LogicalOperation.rb +15 -5
  414. data/lib/taskjuggler/Project.rb +73 -16
  415. data/lib/taskjuggler/ProjectFileParser.rb +1 -1
  416. data/lib/taskjuggler/ProjectFileScanner.rb +27 -0
  417. data/lib/taskjuggler/PropertySet.rb +22 -45
  418. data/lib/taskjuggler/PropertyTreeNode.rb +99 -128
  419. data/lib/taskjuggler/Query.rb +39 -8
  420. data/lib/taskjuggler/Resource.rb +15 -6
  421. data/lib/taskjuggler/RichText/Document.rb +3 -3
  422. data/lib/taskjuggler/RichText/RTFQuery.rb +4 -4
  423. data/lib/taskjuggler/SheetHandlerBase.rb +14 -12
  424. data/lib/taskjuggler/SheetReceiver.rb +17 -15
  425. data/lib/taskjuggler/SheetSender.rb +16 -10
  426. data/{spec/support → lib/taskjuggler}/StdIoWrapper.rb +17 -0
  427. data/lib/taskjuggler/SyntaxReference.rb +2 -2
  428. data/lib/taskjuggler/TableColumnDefinition.rb +4 -3
  429. data/lib/taskjuggler/Task.rb +7 -2
  430. data/lib/taskjuggler/TaskJuggler.rb +74 -0
  431. data/lib/taskjuggler/TaskScenario.rb +62 -83
  432. data/lib/taskjuggler/TextParser.rb +20 -13
  433. data/lib/taskjuggler/TextParser/Scanner.rb +17 -1
  434. data/lib/taskjuggler/TimeSheetSummary.rb +9 -5
  435. data/lib/taskjuggler/TimeSheets.rb +6 -1
  436. data/lib/taskjuggler/Tj3AppBase.rb +41 -18
  437. data/lib/taskjuggler/Tj3Config.rb +1 -1
  438. data/lib/taskjuggler/TjTime.rb +6 -1
  439. data/lib/taskjuggler/TjpSyntaxRules.rb +408 -227
  440. data/lib/taskjuggler/UTF8String.rb +10 -0
  441. data/lib/taskjuggler/UserManual.rb +89 -81
  442. data/lib/taskjuggler/WorkingHours.rb +2 -3
  443. data/lib/taskjuggler/XMLDocument.rb +13 -4
  444. data/lib/taskjuggler/XMLElement.rb +31 -3
  445. data/lib/taskjuggler/apps/Tj3.rb +53 -21
  446. data/lib/taskjuggler/apps/Tj3Client.rb +19 -17
  447. data/lib/taskjuggler/apps/Tj3Daemon.rb +24 -21
  448. data/lib/taskjuggler/{Tj3Man.rb → apps/Tj3Man.rb} +2 -2
  449. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +14 -11
  450. data/lib/taskjuggler/apps/Tj3SsSender.rb +17 -14
  451. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +14 -11
  452. data/lib/taskjuggler/apps/Tj3TsSender.rb +16 -13
  453. data/lib/taskjuggler/apps/Tj3TsSummary.rb +16 -13
  454. data/lib/taskjuggler/reports/GanttChart.rb +1 -1
  455. data/lib/taskjuggler/reports/GanttRouter.rb +0 -2
  456. data/lib/taskjuggler/reports/GanttTaskBar.rb +2 -1
  457. data/lib/taskjuggler/reports/Navigator.rb +2 -1
  458. data/lib/taskjuggler/reports/NikuReport.rb +11 -7
  459. data/lib/taskjuggler/reports/ReportContext.rb +1 -0
  460. data/lib/taskjuggler/reports/StatusSheetReport.rb +7 -2
  461. data/lib/taskjuggler/reports/TableReport.rb +6 -4
  462. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -0
  463. data/lib/taskjuggler/reports/TjpExportRE.rb +4 -4
  464. data/lib/tj3man.rb +1 -1
  465. data/manual/Day_To_Day_Juggling +134 -137
  466. data/manual/TaskJuggler_2x_Migration +39 -32
  467. data/manual/The_TaskJuggler_Syntax +6 -0
  468. data/prj_cfg.rb +2 -3
  469. data/spec/StatusSheets_spec.rb +314 -0
  470. data/spec/TimeSheets_spec.rb +237 -16
  471. data/spec/Tj3_spec.rb +1 -1
  472. data/spec/support/DaemonControl.rb +1 -1
  473. data/tasks/changelog.rake +13 -3
  474. data/tasks/manual.rake +1 -1
  475. data/test/TestSuite/CSV-Reports/refs/celltext.csv +1 -1
  476. data/test/TestSuite/CSV-Reports/refs/resourcereport.csv +1 -1
  477. data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +1 -1
  478. data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +1 -1
  479. data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +1 -1
  480. data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +1 -1
  481. data/test/TestSuite/CSV-Reports/refs/taskreport.csv +1 -1
  482. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +1 -1
  483. data/test/TestSuite/CSV-Reports/sortByTree.tjp +3 -1
  484. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +4 -1
  485. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +1 -1
  486. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +4 -1
  487. data/test/TestSuite/CSV-Reports/taskreport.tjp +3 -1
  488. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +3 -1
  489. data/test/TestSuite/CSV-Reports/weekly.tjp +1 -0
  490. data/test/TestSuite/Export-Reports/refs/Account.tjp +25 -30
  491. data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +1 -0
  492. data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +43 -72
  493. data/test/TestSuite/Export-Reports/refs/Alternative.tjp +17 -22
  494. data/test/TestSuite/Export-Reports/refs/AutoID.tjp +11 -10
  495. data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +1 -0
  496. data/test/TestSuite/Export-Reports/refs/Booking.tjp +16 -23
  497. data/test/TestSuite/Export-Reports/refs/Caption.tjp +13 -16
  498. data/test/TestSuite/Export-Reports/refs/Celltext.tjp +12 -16
  499. data/test/TestSuite/Export-Reports/refs/Comments.tjp +15 -19
  500. data/test/TestSuite/Export-Reports/refs/Complete.tjp +17 -26
  501. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  502. data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +1 -0
  503. data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +1 -0
  504. data/test/TestSuite/Export-Reports/refs/Depends1.tjp +5 -4
  505. data/test/TestSuite/Export-Reports/refs/Durations.tjp +18 -27
  506. data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +21 -20
  507. data/test/TestSuite/Export-Reports/refs/EnvVar.tjp +21 -0
  508. data/test/TestSuite/Export-Reports/refs/Flags.tjp +6 -5
  509. data/test/TestSuite/Export-Reports/refs/Gap.tjp +2 -1
  510. data/test/TestSuite/Export-Reports/refs/HtmlTaskReport.tjp +15 -19
  511. data/test/TestSuite/Export-Reports/refs/Include.tjp +21 -20
  512. data/test/TestSuite/Export-Reports/refs/Journal.tjp +6 -5
  513. data/test/TestSuite/Export-Reports/refs/Limits-1.tjp +92 -140
  514. data/test/TestSuite/Export-Reports/refs/LoadUnits.tjp +293 -566
  515. data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +1 -0
  516. data/test/TestSuite/Export-Reports/refs/LogicalFunction.tjp +17 -22
  517. data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +32 -53
  518. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +1 -0
  519. data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +1 -0
  520. data/test/TestSuite/Export-Reports/refs/Manager.tjp +51 -50
  521. data/test/TestSuite/Export-Reports/refs/Mandatory.tjp +22 -31
  522. data/test/TestSuite/Export-Reports/refs/Milestone.tjp +1 -0
  523. data/test/TestSuite/Export-Reports/refs/MinMax.tjp +2 -1
  524. data/test/TestSuite/Export-Reports/refs/Niku.tjp +80 -139
  525. data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +1 -0
  526. data/test/TestSuite/Export-Reports/refs/Period.tjp +1 -0
  527. data/test/TestSuite/Export-Reports/refs/Persistent.tjp +17 -21
  528. data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +1 -0
  529. data/test/TestSuite/Export-Reports/refs/Priority.tjp +121 -107
  530. data/test/TestSuite/Export-Reports/refs/Project.tjp +1 -0
  531. data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +1 -0
  532. data/test/TestSuite/Export-Reports/refs/Query.tjp +17 -26
  533. data/test/TestSuite/Export-Reports/refs/Reports.tjp +42 -61
  534. data/test/TestSuite/Export-Reports/refs/Resource.tjp +21 -20
  535. data/test/TestSuite/Export-Reports/refs/ResourcePrefix.tjp +16 -20
  536. data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +36 -35
  537. data/test/TestSuite/Export-Reports/refs/Responsible.tjp +17 -21
  538. data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +36 -35
  539. data/test/TestSuite/Export-Reports/refs/Scenario.tjp +3 -1
  540. data/test/TestSuite/Export-Reports/refs/Scheduling.tjp +1 -0
  541. data/test/TestSuite/Export-Reports/refs/Select.tjp +29 -43
  542. data/test/TestSuite/Export-Reports/refs/Shift.tjp +12 -11
  543. data/test/TestSuite/Export-Reports/refs/Simple.tjp +15 -19
  544. data/test/TestSuite/Export-Reports/refs/StatusSheet.tjp +33 -47
  545. data/test/TestSuite/Export-Reports/refs/String.tjp +9 -10
  546. data/test/TestSuite/Export-Reports/refs/Supplement.tjp +7 -8
  547. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +10 -11
  548. data/test/TestSuite/Export-Reports/refs/TaskRoot.tjp +10 -9
  549. data/test/TestSuite/Export-Reports/refs/TimeFrame.tjp +9 -9
  550. data/test/TestSuite/Export-Reports/refs/TimeSheet1.tjp +25 -37
  551. data/test/TestSuite/Export-Reports/refs/Timezone.tjp +1 -0
  552. data/test/TestSuite/Export-Reports/refs/Vacation.tjp +26 -25
  553. data/test/TestSuite/Export-Reports/refs/tutorial.tjp +453 -821
  554. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  555. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  556. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  557. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  558. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  559. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  560. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  561. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  562. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  563. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  564. data/test/TestSuite/{ReportGenerator/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  565. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +27 -3
  566. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions3.tjp +20 -0
  567. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions4.tjp +16 -0
  568. data/test/TestSuite/ReportGenerator/Correct/refs/DependencyList-1.csv +4 -0
  569. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +2 -0
  570. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-2.csv +8 -0
  571. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions3-1.csv +4 -0
  572. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions4-1.csv +2 -0
  573. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +3 -1
  574. data/test/TestSuite/Scheduler/Correct/Booking.tjp +8 -7
  575. data/test/TestSuite/Scheduler/Correct/Booking2.tjp +16 -9
  576. data/test/TestSuite/Scheduler/Correct/Booking3.tjp +28 -0
  577. data/test/TestSuite/Scheduler/Correct/Container.tjp +2 -2
  578. data/test/TestSuite/Scheduler/Correct/Depends.tjp +3 -3
  579. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +4 -4
  580. data/test/TestSuite/Scheduler/Correct/Limits.tjp +3 -1
  581. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +2 -2
  582. data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +2 -2
  583. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +2 -2
  584. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +3 -3
  585. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +3 -3
  586. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +3 -3
  587. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +7 -7
  588. data/test/TestSuite/Scheduler/Correct/Scenarios.tjp +2 -2
  589. data/test/TestSuite/Scheduler/Correct/Shift.tjp +7 -5
  590. data/test/TestSuite/Scheduler/Correct/Shift2.tjp +1 -1
  591. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +5 -2
  592. data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +1 -1
  593. data/test/TestSuite/Scheduler/Errors/ts_alert1_more_details.tjp +4 -2
  594. data/test/TestSuite/Scheduler/Errors/ts_alert2_more_details.tjp +4 -2
  595. data/test/TestSuite/Scheduler/Errors/ts_no_expected_end.tjp +4 -2
  596. data/test/TestSuite/Scheduler/Errors/ts_no_headline1.tjp +4 -2
  597. data/test/TestSuite/Scheduler/Errors/ts_no_rem_or_end.tjp +4 -2
  598. data/test/TestSuite/Scheduler/Errors/ts_no_remaining.tjp +4 -2
  599. data/test/TestSuite/Scheduler/Errors/ts_no_status_work.tjp +4 -2
  600. data/test/TestSuite/Scheduler/Errors/ts_no_work.tjp +4 -2
  601. data/test/TestSuite/Scheduler/Errors/ts_res_new_task.tjp +5 -2
  602. data/test/TestSuite/Scheduler/Errors/ts_work_too_high.tjp +4 -2
  603. data/test/TestSuite/Scheduler/Errors/ts_work_too_low.tjp +4 -2
  604. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  605. data/test/TestSuite/StatusSheets/run +1 -1
  606. data/test/TestSuite/Syntax/Correct/Booking.tjp +0 -5
  607. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  608. data/test/TestSuite/Syntax/Correct/EnvVar.tjp +12 -0
  609. data/test/TestSuite/Syntax/Correct/Freeze.tjp +1 -3
  610. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +9 -5
  611. data/test/TestSuite/Syntax/Correct/Priority.tjp +22 -11
  612. data/test/TestSuite/Syntax/Correct/Scenario.tjp +1 -1
  613. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +2 -0
  614. data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +4 -4
  615. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +20 -0
  616. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -6
  617. data/test/TestSuite/Syntax/Correct/tutorial.tjp +2 -1
  618. data/test/TestSuite/Syntax/Errors/no_own_resource_booking.tjp +16 -0
  619. data/test/TestSuite/Syntax/Errors/no_own_task_booking.tjp +16 -0
  620. data/test/TestSuite/Syntax/Errors/resourceroot_leaf.tjp +10 -0
  621. data/test/TestSuite/Syntax/Errors/runaway_token.tjp +8 -0
  622. data/test/TestSuite/Syntax/Errors/sorting_bsi.tjp +11 -0
  623. data/test/TestSuite/Syntax/Errors/ss_no_tracking_scenario.tjp +14 -0
  624. data/test/TestSuite/Syntax/Errors/taskroot_leaf.tjp +8 -0
  625. data/test/TestSuite/Syntax/Errors/ts_bad_priority.tjp +4 -2
  626. data/test/TestSuite/Syntax/Errors/ts_default_details.tjp +4 -2
  627. data/test/TestSuite/Syntax/Errors/ts_default_summary.tjp +4 -2
  628. data/test/TestSuite/Syntax/Errors/ts_duplicate_task.tjp +4 -2
  629. data/test/TestSuite/Syntax/Errors/ts_end_too_early.tjp +4 -2
  630. data/test/TestSuite/Syntax/Errors/ts_headline_too_long.tjp +4 -2
  631. data/test/TestSuite/Syntax/Errors/ts_no_headline2.tjp +4 -2
  632. data/test/TestSuite/Syntax/Errors/ts_no_tracking_scenario.tjp +14 -0
  633. data/test/TestSuite/Syntax/Errors/ts_summary_too_long.tjp +4 -2
  634. data/test/TestSuite/Syntax/Errors/unknown_env_var.tjp +7 -0
  635. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  636. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  637. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  638. data/test/test_Export-Reports.rb +3 -0
  639. data/test/test_Journal.rb +4 -4
  640. data/test/test_PropertySet.rb +5 -5
  641. data/test/test_Syntax.rb +3 -0
  642. data/test/test_WorkingHours.rb +11 -18
  643. metadata +1012 -649
  644. data/lib/exchangebug.rb +0 -42
  645. data/lib/ruby-signal-bug.rb +0 -55
  646. data/spec/tj3client.log +0 -23
  647. data/test/TestSuite/CSV-Reports/alert.tjp +0 -9
  648. data/test/TestSuite/CSV-Reports/refs/alert.csv +0 -15
  649. data/test/TestSuite/Export-Reports/refs/CriticalPath.tjp +0 -41
  650. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -89
  651. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -79
  652. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  653. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  654. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -1
  655. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -78
  656. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -6
  657. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  658. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +0 -66
  659. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +0 -413
  660. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  661. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  662. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  663. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  664. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  665. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  666. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  667. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  668. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  669. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  670. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  671. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  672. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  673. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  674. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  675. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  676. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  677. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  678. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  679. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  680. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  681. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  682. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  683. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  684. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  685. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  686. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  687. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  688. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
  689. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  690. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  691. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  692. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +0 -33
  693. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  694. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  695. data/test/TestSuite/Syntax/Correct/niku.xml +0 -30
  696. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +0 -11
  697. data/test/TestSuite/TimeSheets/uu.txt +0 -29
@@ -0,0 +1,1297 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: TaskJuggler::SheetHandlerBase</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="../js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="../js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="../index.html">Home</a>
29
+ <a href="../index.html#classes">Classes</a>
30
+ <a href="../index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="../lib/taskjuggler/SheetHandlerBase_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/taskjuggler/SheetHandlerBase.rb">lib/taskjuggler/SheetHandlerBase.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+ <div id="parent-class-section" class="section">
56
+ <h3 class="section-header">Parent</h3>
57
+
58
+ <p class="link"><a href="../Object.html">Object</a></p>
59
+
60
+ </div>
61
+
62
+
63
+ <!-- Namespace Contents -->
64
+
65
+
66
+ <!-- Method Quickref -->
67
+
68
+ <div id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+ <ul class="link-list">
71
+
72
+ <li><a href="#method-c-new">::new</a></li>
73
+
74
+ <li><a href="#method-i-addToScm">#addToScm</a></li>
75
+
76
+ <li><a href="#method-i-cutOut">#cutOut</a></li>
77
+
78
+ <li><a href="#method-i-error">#error</a></li>
79
+
80
+ <li><a href="#method-i-fixLineBreaks">#fixLineBreaks</a></li>
81
+
82
+ <li><a href="#method-i-htmlMailBody">#htmlMailBody</a></li>
83
+
84
+ <li><a href="#method-i-info">#info</a></li>
85
+
86
+ <li><a href="#method-i-log">#log</a></li>
87
+
88
+ <li><a href="#method-i-sendEmail">#sendEmail</a></li>
89
+
90
+ <li><a href="#method-i-sendRichTextEmail">#sendRichTextEmail</a></li>
91
+
92
+ <li><a href="#method-i-setWorkingDir">#setWorkingDir</a></li>
93
+
94
+ <li><a href="#method-i-warning">#warning</a></li>
95
+
96
+ </ul>
97
+ </div>
98
+
99
+
100
+ <!-- Included Modules -->
101
+
102
+ </div>
103
+
104
+ <div id="project-metadata">
105
+
106
+
107
+ <div id="fileindex-section" class="section project-section">
108
+ <h3 class="section-header">Files</h3>
109
+ <ul>
110
+
111
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
112
+
113
+ <li class="file"><a href="../COPYING.html">COPYING</a></li>
114
+
115
+ <li class="file"><a href="../README_rdoc.html">README.rdoc</a></li>
116
+
117
+ </ul>
118
+ </div>
119
+
120
+
121
+ <div id="classindex-section" class="section project-section">
122
+ <h3 class="section-header">Class Index
123
+ <span class="search-toggle"><img src="../images/find.png"
124
+ height="16" width="16" alt="[+]"
125
+ title="show/hide quicksearch" /></span></h3>
126
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
127
+ <fieldset>
128
+ <legend>Quicksearch</legend>
129
+ <input type="text" name="quicksearch" value=""
130
+ class="quicksearch-field" />
131
+ </fieldset>
132
+ </form>
133
+
134
+ <ul class="link-list">
135
+
136
+ <li><a href="../TaskJuggler.html">TaskJuggler</a></li>
137
+
138
+ <li><a href="../TaskJuggler/Account.html">TaskJuggler::Account</a></li>
139
+
140
+ <li><a href="../TaskJuggler/AccountAttribute.html">TaskJuggler::AccountAttribute</a></li>
141
+
142
+ <li><a href="../TaskJuggler/AccountScenario.html">TaskJuggler::AccountScenario</a></li>
143
+
144
+ <li><a href="../TaskJuggler/Allocation.html">TaskJuggler::Allocation</a></li>
145
+
146
+ <li><a href="../TaskJuggler/AllocationAttribute.html">TaskJuggler::AllocationAttribute</a></li>
147
+
148
+ <li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li>
149
+
150
+ <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
151
+
152
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
153
+
154
+ <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
155
+
156
+ <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
157
+
158
+ <li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li>
159
+
160
+ <li><a href="../TaskJuggler/BooleanAttribute.html">TaskJuggler::BooleanAttribute</a></li>
161
+
162
+ <li><a href="../TaskJuggler/CSVFile.html">TaskJuggler::CSVFile</a></li>
163
+
164
+ <li><a href="../TaskJuggler/CellSettingPattern.html">TaskJuggler::CellSettingPattern</a></li>
165
+
166
+ <li><a href="../TaskJuggler/CellSettingPatternList.html">TaskJuggler::CellSettingPatternList</a></li>
167
+
168
+ <li><a href="../TaskJuggler/Charge.html">TaskJuggler::Charge</a></li>
169
+
170
+ <li><a href="../TaskJuggler/ChargeListAttribute.html">TaskJuggler::ChargeListAttribute</a></li>
171
+
172
+ <li><a href="../TaskJuggler/ChargeSet.html">TaskJuggler::ChargeSet</a></li>
173
+
174
+ <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
175
+
176
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
177
+
178
+ <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
179
+
180
+ <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
181
+
182
+ <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
183
+
184
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
185
+
186
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
187
+
188
+ <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
189
+
190
+ <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
191
+
192
+ <li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li>
193
+
194
+ <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
195
+
196
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
197
+
198
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
199
+
200
+ <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
201
+
202
+ <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
203
+
204
+ <li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li>
205
+
206
+ <li><a href="../TaskJuggler/FormatListAttribute.html">TaskJuggler::FormatListAttribute</a></li>
207
+
208
+ <li><a href="../TaskJuggler/GanttChart.html">TaskJuggler::GanttChart</a></li>
209
+
210
+ <li><a href="../TaskJuggler/GanttContainer.html">TaskJuggler::GanttContainer</a></li>
211
+
212
+ <li><a href="../TaskJuggler/GanttHeader.html">TaskJuggler::GanttHeader</a></li>
213
+
214
+ <li><a href="../TaskJuggler/GanttHeaderScaleItem.html">TaskJuggler::GanttHeaderScaleItem</a></li>
215
+
216
+ <li><a href="../TaskJuggler/GanttLine.html">TaskJuggler::GanttLine</a></li>
217
+
218
+ <li><a href="../TaskJuggler/GanttLoadStack.html">TaskJuggler::GanttLoadStack</a></li>
219
+
220
+ <li><a href="../TaskJuggler/GanttMilestone.html">TaskJuggler::GanttMilestone</a></li>
221
+
222
+ <li><a href="../TaskJuggler/GanttRouter.html">TaskJuggler::GanttRouter</a></li>
223
+
224
+ <li><a href="../TaskJuggler/GanttTaskBar.html">TaskJuggler::GanttTaskBar</a></li>
225
+
226
+ <li><a href="../TaskJuggler/HTMLDocument.html">TaskJuggler::HTMLDocument</a></li>
227
+
228
+ <li><a href="../TaskJuggler/HTMLElements.html">TaskJuggler::HTMLElements</a></li>
229
+
230
+ <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
231
+
232
+ <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
233
+
234
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
235
+
236
+ <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
237
+
238
+ <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
239
+
240
+ <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
241
+
242
+ <li><a href="../TaskJuggler/JournalEntry.html">TaskJuggler::JournalEntry</a></li>
243
+
244
+ <li><a href="../TaskJuggler/JournalEntryList.html">TaskJuggler::JournalEntryList</a></li>
245
+
246
+ <li><a href="../TaskJuggler/KeywordArray.html">TaskJuggler::KeywordArray</a></li>
247
+
248
+ <li><a href="../TaskJuggler/KeywordDocumentation.html">TaskJuggler::KeywordDocumentation</a></li>
249
+
250
+ <li><a href="../TaskJuggler/Limits.html">TaskJuggler::Limits</a></li>
251
+
252
+ <li><a href="../TaskJuggler/Limits/Limit.html">TaskJuggler::Limits::Limit</a></li>
253
+
254
+ <li><a href="../TaskJuggler/LimitsAttribute.html">TaskJuggler::LimitsAttribute</a></li>
255
+
256
+ <li><a href="../TaskJuggler/ListAttributeBase.html">TaskJuggler::ListAttributeBase</a></li>
257
+
258
+ <li><a href="../TaskJuggler/Log.html">TaskJuggler::Log</a></li>
259
+
260
+ <li><a href="../TaskJuggler/LogFile.html">TaskJuggler::LogFile</a></li>
261
+
262
+ <li><a href="../TaskJuggler/LogicalAttribute.html">TaskJuggler::LogicalAttribute</a></li>
263
+
264
+ <li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li>
265
+
266
+ <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
267
+
268
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
269
+
270
+ <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
271
+
272
+ <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
273
+
274
+ <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li>
275
+
276
+ <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
277
+
278
+ <li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li>
279
+
280
+ <li><a href="../TaskJuggler/Message.html">TaskJuggler::Message</a></li>
281
+
282
+ <li><a href="../TaskJuggler/MessageHandler.html">TaskJuggler::MessageHandler</a></li>
283
+
284
+ <li><a href="../TaskJuggler/Navigator.html">TaskJuggler::Navigator</a></li>
285
+
286
+ <li><a href="../TaskJuggler/NavigatorElement.html">TaskJuggler::NavigatorElement</a></li>
287
+
288
+ <li><a href="../TaskJuggler/NikuProject.html">TaskJuggler::NikuProject</a></li>
289
+
290
+ <li><a href="../TaskJuggler/NikuReport.html">TaskJuggler::NikuReport</a></li>
291
+
292
+ <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
293
+
294
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
295
+
296
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
297
+
298
+ <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
299
+
300
+ <li><a href="../TaskJuggler/ProcessIntercomIface.html">TaskJuggler::ProcessIntercomIface</a></li>
301
+
302
+ <li><a href="../TaskJuggler/Project.html">TaskJuggler::Project</a></li>
303
+
304
+ <li><a href="../TaskJuggler/ProjectBroker.html">TaskJuggler::ProjectBroker</a></li>
305
+
306
+ <li><a href="../TaskJuggler/ProjectBrokerIface.html">TaskJuggler::ProjectBrokerIface</a></li>
307
+
308
+ <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
309
+
310
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
311
+
312
+ <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
313
+
314
+ <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
315
+
316
+ <li><a href="../TaskJuggler/ProjectServerIface.html">TaskJuggler::ProjectServerIface</a></li>
317
+
318
+ <li><a href="../TaskJuggler/PropertyAttribute.html">TaskJuggler::PropertyAttribute</a></li>
319
+
320
+ <li><a href="../TaskJuggler/PropertyList.html">TaskJuggler::PropertyList</a></li>
321
+
322
+ <li><a href="../TaskJuggler/PropertySet.html">TaskJuggler::PropertySet</a></li>
323
+
324
+ <li><a href="../TaskJuggler/PropertyTreeNode.html">TaskJuggler::PropertyTreeNode</a></li>
325
+
326
+ <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
327
+
328
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
329
+
330
+ <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
331
+
332
+ <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
333
+
334
+ <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
335
+
336
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
337
+
338
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
339
+
340
+ <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
341
+
342
+ <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
343
+
344
+ <li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li>
345
+
346
+ <li><a href="../TaskJuggler/Report.html">TaskJuggler::Report</a></li>
347
+
348
+ <li><a href="../TaskJuggler/ReportBase.html">TaskJuggler::ReportBase</a></li>
349
+
350
+ <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
351
+
352
+ <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
353
+
354
+ <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
355
+
356
+ <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
357
+
358
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
359
+
360
+ <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
361
+
362
+ <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
363
+
364
+ <li><a href="../TaskJuggler/ReportTableColumn.html">TaskJuggler::ReportTableColumn</a></li>
365
+
366
+ <li><a href="../TaskJuggler/ReportTableLegend.html">TaskJuggler::ReportTableLegend</a></li>
367
+
368
+ <li><a href="../TaskJuggler/ReportTableLine.html">TaskJuggler::ReportTableLine</a></li>
369
+
370
+ <li><a href="../TaskJuggler/Resource.html">TaskJuggler::Resource</a></li>
371
+
372
+ <li><a href="../TaskJuggler/ResourceListAttribute.html">TaskJuggler::ResourceListAttribute</a></li>
373
+
374
+ <li><a href="../TaskJuggler/ResourceListRE.html">TaskJuggler::ResourceListRE</a></li>
375
+
376
+ <li><a href="../TaskJuggler/ResourceScenario.html">TaskJuggler::ResourceScenario</a></li>
377
+
378
+ <li><a href="../TaskJuggler/RichText.html">TaskJuggler::RichText</a></li>
379
+
380
+ <li><a href="../TaskJuggler/RichTextAttribute.html">TaskJuggler::RichTextAttribute</a></li>
381
+
382
+ <li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li>
383
+
384
+ <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
385
+
386
+ <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
387
+
388
+ <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
389
+
390
+ <li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li>
391
+
392
+ <li><a href="../TaskJuggler/RichTextIntermediate.html">TaskJuggler::RichTextIntermediate</a></li>
393
+
394
+ <li><a href="../TaskJuggler/RichTextParser.html">TaskJuggler::RichTextParser</a></li>
395
+
396
+ <li><a href="../TaskJuggler/RichTextScanner.html">TaskJuggler::RichTextScanner</a></li>
397
+
398
+ <li><a href="../TaskJuggler/RichTextSnip.html">TaskJuggler::RichTextSnip</a></li>
399
+
400
+ <li><a href="../TaskJuggler/RichTextSyntaxRules.html">TaskJuggler::RichTextSyntaxRules</a></li>
401
+
402
+ <li><a href="../TaskJuggler/Scenario.html">TaskJuggler::Scenario</a></li>
403
+
404
+ <li><a href="../TaskJuggler/ScenarioData.html">TaskJuggler::ScenarioData</a></li>
405
+
406
+ <li><a href="../TaskJuggler/ScenarioListAttribute.html">TaskJuggler::ScenarioListAttribute</a></li>
407
+
408
+ <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
409
+
410
+ <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
411
+
412
+ <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
413
+
414
+ <li><a href="../TaskJuggler/SheetSender.html">TaskJuggler::SheetSender</a></li>
415
+
416
+ <li><a href="../TaskJuggler/Shift.html">TaskJuggler::Shift</a></li>
417
+
418
+ <li><a href="../TaskJuggler/ShiftAssignment.html">TaskJuggler::ShiftAssignment</a></li>
419
+
420
+ <li><a href="../TaskJuggler/ShiftAssignments.html">TaskJuggler::ShiftAssignments</a></li>
421
+
422
+ <li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li>
423
+
424
+ <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
425
+
426
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
427
+
428
+ <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
429
+
430
+ <li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li>
431
+
432
+ <li><a href="../TaskJuggler/StatusSheetReport.html">TaskJuggler::StatusSheetReport</a></li>
433
+
434
+ <li><a href="../TaskJuggler/StatusSheetSender.html">TaskJuggler::StatusSheetSender</a></li>
435
+
436
+ <li><a href="../TaskJuggler/StdIoWrapper.html">TaskJuggler::StdIoWrapper</a></li>
437
+
438
+ <li><a href="../TaskJuggler/StringAttribute.html">TaskJuggler::StringAttribute</a></li>
439
+
440
+ <li><a href="../TaskJuggler/SymbolAttribute.html">TaskJuggler::SymbolAttribute</a></li>
441
+
442
+ <li><a href="../TaskJuggler/SyntaxReference.html">TaskJuggler::SyntaxReference</a></li>
443
+
444
+ <li><a href="../TaskJuggler/TOCEntry.html">TaskJuggler::TOCEntry</a></li>
445
+
446
+ <li><a href="../TaskJuggler/TSResourceRecord.html">TaskJuggler::TSResourceRecord</a></li>
447
+
448
+ <li><a href="../TaskJuggler/TSTaskRecord.html">TaskJuggler::TSTaskRecord</a></li>
449
+
450
+ <li><a href="../TaskJuggler/TableColumnDefinition.html">TaskJuggler::TableColumnDefinition</a></li>
451
+
452
+ <li><a href="../TaskJuggler/TableOfContents.html">TaskJuggler::TableOfContents</a></li>
453
+
454
+ <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
455
+
456
+ <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
457
+
458
+ <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
459
+
460
+ <li><a href="../TaskJuggler/TaskDependency.html">TaskJuggler::TaskDependency</a></li>
461
+
462
+ <li><a href="../TaskJuggler/TaskListAttribute.html">TaskJuggler::TaskListAttribute</a></li>
463
+
464
+ <li><a href="../TaskJuggler/TaskListRE.html">TaskJuggler::TaskListRE</a></li>
465
+
466
+ <li><a href="../TaskJuggler/TaskScenario.html">TaskJuggler::TaskScenario</a></li>
467
+
468
+ <li><a href="../TaskJuggler/TernarySearchTree.html">TaskJuggler::TernarySearchTree</a></li>
469
+
470
+ <li><a href="../TaskJuggler/TextFormatter.html">TaskJuggler::TextFormatter</a></li>
471
+
472
+ <li><a href="../TaskJuggler/TextParser.html">TaskJuggler::TextParser</a></li>
473
+
474
+ <li><a href="../TaskJuggler/TextParser/Macro.html">TaskJuggler::TextParser::Macro</a></li>
475
+
476
+ <li><a href="../TaskJuggler/TextParser/MacroTable.html">TaskJuggler::TextParser::MacroTable</a></li>
477
+
478
+ <li><a href="../TaskJuggler/TextParser/Pattern.html">TaskJuggler::TextParser::Pattern</a></li>
479
+
480
+ <li><a href="../TaskJuggler/TextParser/Rule.html">TaskJuggler::TextParser::Rule</a></li>
481
+
482
+ <li><a href="../TaskJuggler/TextParser/Scanner.html">TaskJuggler::TextParser::Scanner</a></li>
483
+
484
+ <li><a href="../TaskJuggler/TextParser/Scanner/BufferStreamHandle.html">TaskJuggler::TextParser::Scanner::BufferStreamHandle</a></li>
485
+
486
+ <li><a href="../TaskJuggler/TextParser/Scanner/FileStreamHandle.html">TaskJuggler::TextParser::Scanner::FileStreamHandle</a></li>
487
+
488
+ <li><a href="../TaskJuggler/TextParser/Scanner/MacroStackEntry.html">TaskJuggler::TextParser::Scanner::MacroStackEntry</a></li>
489
+
490
+ <li><a href="../TaskJuggler/TextParser/Scanner/StreamHandle.html">TaskJuggler::TextParser::Scanner::StreamHandle</a></li>
491
+
492
+ <li><a href="../TaskJuggler/TextParser/SourceFileInfo.html">TaskJuggler::TextParser::SourceFileInfo</a></li>
493
+
494
+ <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
495
+
496
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
497
+
498
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
499
+
500
+ <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
501
+
502
+ <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
503
+
504
+ <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
505
+
506
+ <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
507
+
508
+ <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
509
+
510
+ <li><a href="../TaskJuggler/TimeSheetRecord.html">TaskJuggler::TimeSheetRecord</a></li>
511
+
512
+ <li><a href="../TaskJuggler/TimeSheetReport.html">TaskJuggler::TimeSheetReport</a></li>
513
+
514
+ <li><a href="../TaskJuggler/TimeSheetSender.html">TaskJuggler::TimeSheetSender</a></li>
515
+
516
+ <li><a href="../TaskJuggler/TimeSheetSummary.html">TaskJuggler::TimeSheetSummary</a></li>
517
+
518
+ <li><a href="../TaskJuggler/TimeSheets.html">TaskJuggler::TimeSheets</a></li>
519
+
520
+ <li><a href="../TaskJuggler/Tj3.html">TaskJuggler::Tj3</a></li>
521
+
522
+ <li><a href="../TaskJuggler/Tj3AppBase.html">TaskJuggler::Tj3AppBase</a></li>
523
+
524
+ <li><a href="../TaskJuggler/Tj3Client.html">TaskJuggler::Tj3Client</a></li>
525
+
526
+ <li><a href="../TaskJuggler/Tj3Daemon.html">TaskJuggler::Tj3Daemon</a></li>
527
+
528
+ <li><a href="../TaskJuggler/Tj3Man.html">TaskJuggler::Tj3Man</a></li>
529
+
530
+ <li><a href="../TaskJuggler/Tj3SheetAppBase.html">TaskJuggler::Tj3SheetAppBase</a></li>
531
+
532
+ <li><a href="../TaskJuggler/Tj3SsReceiver.html">TaskJuggler::Tj3SsReceiver</a></li>
533
+
534
+ <li><a href="../TaskJuggler/Tj3SsSender.html">TaskJuggler::Tj3SsSender</a></li>
535
+
536
+ <li><a href="../TaskJuggler/Tj3TsReceiver.html">TaskJuggler::Tj3TsReceiver</a></li>
537
+
538
+ <li><a href="../TaskJuggler/Tj3TsSender.html">TaskJuggler::Tj3TsSender</a></li>
539
+
540
+ <li><a href="../TaskJuggler/Tj3TsSummary.html">TaskJuggler::Tj3TsSummary</a></li>
541
+
542
+ <li><a href="../TaskJuggler/TjException.html">TaskJuggler::TjException</a></li>
543
+
544
+ <li><a href="../TaskJuggler/TjRuntimeError.html">TaskJuggler::TjRuntimeError</a></li>
545
+
546
+ <li><a href="../TaskJuggler/TjTime.html">TaskJuggler::TjTime</a></li>
547
+
548
+ <li><a href="../TaskJuggler/TjpExample.html">TaskJuggler::TjpExample</a></li>
549
+
550
+ <li><a href="../TaskJuggler/TjpExportRE.html">TaskJuggler::TjpExportRE</a></li>
551
+
552
+ <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
553
+
554
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
555
+
556
+ <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
557
+
558
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
559
+
560
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
561
+
562
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
563
+
564
+ <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
565
+
566
+ <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
567
+
568
+ <li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li>
569
+
570
+ <li><a href="../TaskJuggler/XMLComment.html">TaskJuggler::XMLComment</a></li>
571
+
572
+ <li><a href="../TaskJuggler/XMLDocument.html">TaskJuggler::XMLDocument</a></li>
573
+
574
+ <li><a href="../TaskJuggler/XMLElement.html">TaskJuggler::XMLElement</a></li>
575
+
576
+ <li><a href="../TaskJuggler/XMLNamedText.html">TaskJuggler::XMLNamedText</a></li>
577
+
578
+ <li><a href="../TaskJuggler/XMLText.html">TaskJuggler::XMLText</a></li>
579
+
580
+ <li><a href="../Diff.html">Diff</a></li>
581
+
582
+ <li><a href="../Diff/Hunk.html">Diff::Hunk</a></li>
583
+
584
+ <li><a href="../AppConfig.html">AppConfig</a></li>
585
+
586
+ <li><a href="../Diffable.html">Diffable</a></li>
587
+
588
+ <li><a href="../DiffableString.html">DiffableString</a></li>
589
+
590
+ <li><a href="../Object.html">Object</a></li>
591
+
592
+ <li><a href="../RuntimeConfig.html">RuntimeConfig</a></li>
593
+
594
+ <li><a href="../String.html">String</a></li>
595
+
596
+ </ul>
597
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
598
+ </div>
599
+
600
+
601
+ </div>
602
+ </div>
603
+
604
+ <div id="documentation">
605
+ <h1 class="class">TaskJuggler::SheetHandlerBase</h1>
606
+
607
+ <div id="description">
608
+
609
+ </div>
610
+
611
+ <!-- Constants -->
612
+
613
+
614
+ <!-- Attributes -->
615
+
616
+ <div id="attribute-method-details" class="method-section section">
617
+ <h3 class="section-header">Attributes</h3>
618
+
619
+
620
+ <div id="working-ir-attribute-method" class="method-detail">
621
+ <a name="workingDir"></a>
622
+
623
+ <a name="workingDir="></a>
624
+
625
+ <div class="method-heading attribute-method-heading">
626
+ <span class="method-name">workingDir</span><span
627
+ class="attribute-access-type">[RW]</span>
628
+ </div>
629
+
630
+ <div class="method-description">
631
+
632
+
633
+
634
+ </div>
635
+ </div>
636
+
637
+ <div id="dry-un-attribute-method" class="method-detail">
638
+ <a name="dryRun"></a>
639
+
640
+ <a name="dryRun="></a>
641
+
642
+ <div class="method-heading attribute-method-heading">
643
+ <span class="method-name">dryRun</span><span
644
+ class="attribute-access-type">[RW]</span>
645
+ </div>
646
+
647
+ <div class="method-description">
648
+
649
+
650
+
651
+ </div>
652
+ </div>
653
+
654
+ </div>
655
+
656
+
657
+ <!-- Methods -->
658
+
659
+ <div id="public-class-method-details" class="method-section section">
660
+ <h3 class="section-header">Public Class Methods</h3>
661
+
662
+
663
+ <div id="new-method" class="method-detail ">
664
+ <a name="method-c-new"></a>
665
+
666
+ <div class="method-heading">
667
+
668
+ <span class="method-name">new</span><span
669
+ class="method-args">(appName)</span>
670
+ <span class="method-click-advice">click to toggle source</span>
671
+
672
+ </div>
673
+
674
+ <div class="method-description">
675
+
676
+
677
+
678
+
679
+
680
+ <div class="method-source-code"
681
+ id="new-source">
682
+ <pre>
683
+ <span class="ruby-comment cmt"># File lib/taskjuggler/SheetHandlerBase.rb, line 25</span>
684
+ 25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">appName</span>)
685
+ 26: <span class="ruby-ivar">@appName</span> = <span class="ruby-identifier">appName</span>
686
+ 27: <span class="ruby-comment cmt"># User specific settings</span>
687
+ 28: <span class="ruby-ivar">@smtpServer</span>= <span class="ruby-keyword kw">nil</span>
688
+ 29: <span class="ruby-ivar">@senderEmail</span> = <span class="ruby-keyword kw">nil</span>
689
+ 30: <span class="ruby-ivar">@workingDir</span> = <span class="ruby-keyword kw">nil</span>
690
+ 31: <span class="ruby-ivar">@scmCommand</span> = <span class="ruby-keyword kw">nil</span>
691
+ 32: <span class="ruby-comment cmt"># The default project ID</span>
692
+ 33: <span class="ruby-ivar">@projectId</span> = <span class="ruby-value str">'prj'</span>
693
+ 34:
694
+ 35: <span class="ruby-comment cmt"># Controls the amount of output that is sent to the terminal.</span>
695
+ 36: <span class="ruby-comment cmt"># 0: No output</span>
696
+ 37: <span class="ruby-comment cmt"># 1: only errors</span>
697
+ 38: <span class="ruby-comment cmt"># 2: errors and warnings</span>
698
+ 39: <span class="ruby-comment cmt"># 3: All messages</span>
699
+ 40: <span class="ruby-ivar">@outputLevel</span> = <span class="ruby-value">2</span>
700
+ 41: <span class="ruby-comment cmt"># Controls the amount of information that is added to the log file. The</span>
701
+ 42: <span class="ruby-comment cmt"># levels are identical to @outputLevel.</span>
702
+ 43: <span class="ruby-ivar">@logLevel</span> = <span class="ruby-value">3</span>
703
+ 44: <span class="ruby-comment cmt"># Set to true to not send any emails. Instead the email (header + body) is</span>
704
+ 45: <span class="ruby-comment cmt"># printed to the terminal.</span>
705
+ 46: <span class="ruby-ivar">@dryRun</span> = <span class="ruby-keyword kw">false</span>
706
+ 47:
707
+ 48: <span class="ruby-ivar">@logFile</span> = <span class="ruby-value str">'timesheets.log'</span>
708
+ 49: <span class="ruby-ivar">@emailFailure</span> = <span class="ruby-keyword kw">false</span>
709
+ 50: <span class="ruby-keyword kw">end</span></pre>
710
+ </div>
711
+
712
+ </div>
713
+
714
+
715
+
716
+
717
+ </div>
718
+
719
+
720
+ </div>
721
+
722
+ <div id="public-instance-method-details" class="method-section section">
723
+ <h3 class="section-header">Public Instance Methods</h3>
724
+
725
+
726
+ <div id="add-o-cm-method" class="method-detail ">
727
+ <a name="method-i-addToScm"></a>
728
+
729
+ <div class="method-heading">
730
+
731
+ <span class="method-name">addToScm</span><span
732
+ class="method-args">(message, fileName)</span>
733
+ <span class="method-click-advice">click to toggle source</span>
734
+
735
+ </div>
736
+
737
+ <div class="method-description">
738
+
739
+
740
+
741
+
742
+
743
+ <div class="method-source-code"
744
+ id="add-o-cm-source">
745
+ <pre>
746
+ <span class="ruby-comment cmt"># File lib/taskjuggler/SheetHandlerBase.rb, line 121</span>
747
+ 121: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addToScm</span>(<span class="ruby-identifier">message</span>, <span class="ruby-identifier">fileName</span>)
748
+ 122: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scmCommand</span>
749
+ 123:
750
+ 124: <span class="ruby-identifier">cmd</span> = <span class="ruby-ivar">@scmCommand</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/%m/</span>, <span class="ruby-identifier">message</span>)
751
+ 125: <span class="ruby-identifier">cmd</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/%f/</span>, <span class="ruby-identifier">fileName</span>)
752
+ 126: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@dryRun</span>
753
+ 127: <span class="ruby-node">`#{cmd}`</span>
754
+ 128: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$?</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
755
+ 129: <span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Added #{fileName} to SCM&quot;</span>)
756
+ 130: <span class="ruby-keyword kw">else</span>
757
+ 131: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;SCM command #{cmd} failed: #{$?.class}&quot;</span>)
758
+ 132: <span class="ruby-keyword kw">end</span>
759
+ 133: <span class="ruby-keyword kw">end</span>
760
+ 134: <span class="ruby-keyword kw">end</span></pre>
761
+ </div>
762
+
763
+ </div>
764
+
765
+
766
+
767
+
768
+ </div>
769
+
770
+
771
+ <div id="cut-ut-method" class="method-detail ">
772
+ <a name="method-i-cutOut"></a>
773
+
774
+ <div class="method-heading">
775
+
776
+ <span class="method-name">cutOut</span><span
777
+ class="method-args">(text)</span>
778
+ <span class="method-click-advice">click to toggle source</span>
779
+
780
+ </div>
781
+
782
+ <div class="method-description">
783
+
784
+ <p>
785
+ Extract the text between the cut-marker lines and remove any email quotes
786
+ from the beginnin of the line.
787
+ </p>
788
+
789
+
790
+
791
+ <div class="method-source-code"
792
+ id="cut-ut-source">
793
+ <pre>
794
+ <span class="ruby-comment cmt"># File lib/taskjuggler/SheetHandlerBase.rb, line 54</span>
795
+ 54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cutOut</span>(<span class="ruby-identifier">text</span>)
796
+ 55: <span class="ruby-comment cmt"># Pattern for the section start marker</span>
797
+ 56: <span class="ruby-identifier">mark1</span> = <span class="ruby-node">/(.*)# --------8&lt;--------8&lt;--------/</span>
798
+ 57: <span class="ruby-comment cmt"># Pattern for the section end marker</span>
799
+ 58: <span class="ruby-identifier">mark2</span> = <span class="ruby-node">/# --------&gt;8--------&gt;8--------/</span>
800
+ 59: <span class="ruby-comment cmt"># The cutOut section</span>
801
+ 60: <span class="ruby-identifier">cutOutText</span> = <span class="ruby-keyword kw">nil</span>
802
+ 61: <span class="ruby-identifier">quoteLen</span> = <span class="ruby-value">0</span>
803
+ 62: <span class="ruby-identifier">quoteMarks</span> = <span class="ruby-identifier">emptyLine</span> = <span class="ruby-value str">''</span>
804
+ 63: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
805
+ 64: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cutOutText</span>.<span class="ruby-identifier">nil?</span>
806
+ 65: <span class="ruby-comment cmt"># We are looking for the line with the start marker (mark1)</span>
807
+ 66: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">matches</span> = <span class="ruby-identifier">mark1</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">line</span>))
808
+ 67: <span class="ruby-identifier">quoteMarks</span> = <span class="ruby-identifier">matches</span>[<span class="ruby-value">1</span>]
809
+ 68: <span class="ruby-identifier">quoteLen</span> = <span class="ruby-identifier">quoteMarks</span>.<span class="ruby-identifier">length</span>
810
+ 69: <span class="ruby-comment cmt"># Special case for quoted empty lines without trailing spaces.</span>
811
+ 70: <span class="ruby-identifier">emptyLine</span> = <span class="ruby-identifier">quoteMarks</span>.<span class="ruby-identifier">chomp</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">' '</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
812
+ 71: <span class="ruby-identifier">cutOutText</span> = <span class="ruby-identifier">line</span>[<span class="ruby-identifier">quoteLen</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
813
+ 72: <span class="ruby-keyword kw">end</span>
814
+ 73: <span class="ruby-keyword kw">else</span>
815
+ 74: <span class="ruby-comment cmt"># Remove quote marks from the beginning of the line.</span>
816
+ 75: <span class="ruby-identifier">line</span> = <span class="ruby-identifier">line</span>[<span class="ruby-identifier">quoteLen</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>[<span class="ruby-value">0</span>, <span class="ruby-identifier">quoteLen</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">quoteMarks</span>
817
+ 76: <span class="ruby-identifier">line</span> = <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">emptyLine</span>
818
+ 77:
819
+ 78: <span class="ruby-identifier">cutOutText</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>
820
+ 79: <span class="ruby-comment cmt"># We are gathering text until we hit the end marker (mark2)</span>
821
+ 80: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">cutOutText</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mark2</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">line</span>)
822
+ 81: <span class="ruby-keyword kw">end</span>
823
+ 82: <span class="ruby-keyword kw">end</span>
824
+ 83:
825
+ 84: <span class="ruby-comment cmt"># There are no cut markers. We just return the original text.</span>
826
+ 85: <span class="ruby-identifier">text</span>
827
+ 86: <span class="ruby-keyword kw">end</span></pre>
828
+ </div>
829
+
830
+ </div>
831
+
832
+
833
+
834
+
835
+ </div>
836
+
837
+
838
+ <div id="error-method" class="method-detail ">
839
+ <a name="method-i-error"></a>
840
+
841
+ <div class="method-heading">
842
+
843
+ <span class="method-name">error</span><span
844
+ class="method-args">(message)</span>
845
+ <span class="method-click-advice">click to toggle source</span>
846
+
847
+ </div>
848
+
849
+ <div class="method-description">
850
+
851
+
852
+
853
+
854
+
855
+ <div class="method-source-code"
856
+ id="error-source">
857
+ <pre>
858
+ <span class="ruby-comment cmt"># File lib/taskjuggler/SheetHandlerBase.rb, line 146</span>
859
+ 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
860
+ 147: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">message</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@outputLevel</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">1</span>
861
+ 148: <span class="ruby-identifier">log</span>(<span class="ruby-value str">&quot;ERROR&quot;</span>, <span class="ruby-identifier">message</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@logLevel</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">1</span>
862
+ 149: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjRuntimeError</span>
863
+ 150: <span class="ruby-keyword kw">end</span></pre>
864
+ </div>
865
+
866
+ </div>
867
+
868
+
869
+
870
+
871
+ </div>
872
+
873
+
874
+ <div id="fix-ine-reaks-method" class="method-detail ">
875
+ <a name="method-i-fixLineBreaks"></a>
876
+
877
+ <div class="method-heading">
878
+
879
+ <span class="method-name">fixLineBreaks</span><span
880
+ class="method-args">(text)</span>
881
+ <span class="method-click-advice">click to toggle source</span>
882
+
883
+ </div>
884
+
885
+ <div class="method-description">
886
+
887
+ <p>
888
+ Convert all CR+LF and CR line breaks into LF line breaks.
889
+ </p>
890
+
891
+
892
+
893
+ <div class="method-source-code"
894
+ id="fix-ine-reaks-source">
895
+ <pre>
896
+ <span class="ruby-comment cmt"># File lib/taskjuggler/SheetHandlerBase.rb, line 89</span>
897
+ 89: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fixLineBreaks</span>(<span class="ruby-identifier">text</span>)
898
+ 90: <span class="ruby-identifier">out</span> = <span class="ruby-value str">''</span>
899
+ 91: <span class="ruby-identifier">cr</span> = <span class="ruby-keyword kw">false</span>
900
+ 92: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">each_utf8_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
901
+ 93: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;\r&quot;</span>
902
+ 94: <span class="ruby-comment cmt"># We don't know yet if it's a CR or CR+LF.</span>
903
+ 95: <span class="ruby-identifier">cr</span> = <span class="ruby-keyword kw">true</span>
904
+ 96: <span class="ruby-keyword kw">else</span>
905
+ 97: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cr</span>
906
+ 98: <span class="ruby-comment cmt"># If we only found a CR. Replace it with a LF.</span>
907
+ 99: <span class="ruby-identifier">out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">&quot;\n&quot;</span>
908
+ 100: <span class="ruby-identifier">cr</span> = <span class="ruby-keyword kw">false</span>
909
+ 101: <span class="ruby-keyword kw">end</span>
910
+ 102: <span class="ruby-identifier">out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>
911
+ 103: <span class="ruby-keyword kw">end</span>
912
+ 104: <span class="ruby-keyword kw">end</span>
913
+ 105: <span class="ruby-identifier">out</span>
914
+ 106: <span class="ruby-keyword kw">end</span></pre>
915
+ </div>
916
+
917
+ </div>
918
+
919
+
920
+
921
+
922
+ </div>
923
+
924
+
925
+ <div id="html-ail-ody-method" class="method-detail ">
926
+ <a name="method-i-htmlMailBody"></a>
927
+
928
+ <div class="method-heading">
929
+
930
+ <span class="method-name">htmlMailBody</span><span
931
+ class="method-args">(message)</span>
932
+ <span class="method-click-advice">click to toggle source</span>
933
+
934
+ </div>
935
+
936
+ <div class="method-description">
937
+
938
+
939
+
940
+
941
+
942
+ <div class="method-source-code"
943
+ id="html-ail-ody-source">
944
+ <pre>
945
+ <span class="ruby-comment cmt"># File lib/taskjuggler/SheetHandlerBase.rb, line 243</span>
946
+ 243: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">htmlMailBody</span>(<span class="ruby-identifier">message</span>)
947
+ 244: <span class="ruby-identifier">html</span> = <span class="ruby-constant">HTMLDocument</span>.<span class="ruby-identifier">new</span>
948
+ 245: <span class="ruby-identifier">head</span> = <span class="ruby-identifier">html</span>.<span class="ruby-identifier">generateHead</span>(<span class="ruby-node">&quot;TaskJuggler Report - #{@name}&quot;</span>,
949
+ 246: <span class="ruby-value str">'description'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'TaskJuggler Report'</span>,
950
+ 247: <span class="ruby-value str">'keywords'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'taskjuggler, project, management'</span>)
951
+ 248:
952
+ 249: <span class="ruby-identifier">auxSrcDir</span> = <span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">dataDirs</span>(<span class="ruby-value str">'data/css'</span>)[<span class="ruby-value">0</span>]
953
+ 250: <span class="ruby-identifier">cssFileName</span> = (<span class="ruby-identifier">auxSrcDir</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">auxSrcDir</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/tjreport.css'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>)
954
+ 251: <span class="ruby-comment cmt"># Raise an error if we haven't found the data directory</span>
955
+ 252: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">auxSrcDir</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">cssFileName</span>)
956
+ 253: <span class="ruby-identifier">dataDirError</span>(<span class="ruby-identifier">cssFileName</span>)
957
+ 254: <span class="ruby-keyword kw">end</span>
958
+ 255: <span class="ruby-identifier">cssFile</span> = <span class="ruby-constant">IO</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">cssFileName</span>)
959
+ 256: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cssFile</span>.<span class="ruby-identifier">empty?</span>
960
+ 257: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">Cannot read '#{cssFileName}'. Make sure the file is not empty and you haveread access permission.</span>
961
+ 258: <span class="ruby-keyword kw">end</span>
962
+ 259: <span class="ruby-identifier">head</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'meta'</span>, <span class="ruby-value str">'http-equiv'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'Content-Style-Type'</span>,
963
+ 260: <span class="ruby-value str">'content'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text/css; charset=utf-8'</span>)
964
+ 261: <span class="ruby-identifier">head</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">style</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'style'</span>, <span class="ruby-value str">'type'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text/css'</span>))
965
+ 262: <span class="ruby-identifier">style</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">XMLBlob</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">cssFile</span>)
966
+ 263:
967
+ 264: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">body</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'body'</span>))
968
+ 265: <span class="ruby-identifier">body</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">message</span>.<span class="ruby-identifier">to_html</span>
969
+ 266:
970
+ 267: <span class="ruby-identifier">html</span>.<span class="ruby-identifier">to_s</span>
971
+ 268: <span class="ruby-keyword kw">end</span></pre>
972
+ </div>
973
+
974
+ </div>
975
+
976
+
977
+
978
+
979
+ </div>
980
+
981
+
982
+ <div id="info-method" class="method-detail ">
983
+ <a name="method-i-info"></a>
984
+
985
+ <div class="method-heading">
986
+
987
+ <span class="method-name">info</span><span
988
+ class="method-args">(message)</span>
989
+ <span class="method-click-advice">click to toggle source</span>
990
+
991
+ </div>
992
+
993
+ <div class="method-description">
994
+
995
+
996
+
997
+
998
+
999
+ <div class="method-source-code"
1000
+ id="info-source">
1001
+ <pre>
1002
+ <span class="ruby-comment cmt"># File lib/taskjuggler/SheetHandlerBase.rb, line 136</span>
1003
+ 136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">message</span>)
1004
+ 137: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">message</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@outputLevel</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">3</span>
1005
+ 138: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'INFO'</span>, <span class="ruby-identifier">message</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@logLevel</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">3</span>
1006
+ 139: <span class="ruby-keyword kw">end</span></pre>
1007
+ </div>
1008
+
1009
+ </div>
1010
+
1011
+
1012
+
1013
+
1014
+ </div>
1015
+
1016
+
1017
+ <div id="log-method" class="method-detail ">
1018
+ <a name="method-i-log"></a>
1019
+
1020
+ <div class="method-heading">
1021
+
1022
+ <span class="method-name">log</span><span
1023
+ class="method-args">(type, message)</span>
1024
+ <span class="method-click-advice">click to toggle source</span>
1025
+
1026
+ </div>
1027
+
1028
+ <div class="method-description">
1029
+
1030
+
1031
+
1032
+
1033
+
1034
+ <div class="method-source-code"
1035
+ id="log-source">
1036
+ <pre>
1037
+ <span class="ruby-comment cmt"># File lib/taskjuggler/SheetHandlerBase.rb, line 152</span>
1038
+ 152: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">message</span>)
1039
+ 153: <span class="ruby-identifier">timeStamp</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%Y-%m-%d %H:%M:%S&quot;</span>)
1040
+ 154: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-ivar">@logFile</span>, <span class="ruby-value str">'a'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
1041
+ 155: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-node">&quot;#{timeStamp} #{type} #{@appName}: #{message}\n&quot;</span>)
1042
+ 156: <span class="ruby-keyword kw">end</span>
1043
+ 157: <span class="ruby-keyword kw">end</span></pre>
1044
+ </div>
1045
+
1046
+ </div>
1047
+
1048
+
1049
+
1050
+
1051
+ </div>
1052
+
1053
+
1054
+ <div id="send-mail-method" class="method-detail ">
1055
+ <a name="method-i-sendEmail"></a>
1056
+
1057
+ <div class="method-heading">
1058
+
1059
+ <span class="method-name">sendEmail</span><span
1060
+ class="method-args">(to, subject, message, attachment = nil, from = nil, inReplyTo = nil)</span>
1061
+ <span class="method-click-advice">click to toggle source</span>
1062
+
1063
+ </div>
1064
+
1065
+ <div class="method-description">
1066
+
1067
+
1068
+
1069
+
1070
+
1071
+ <div class="method-source-code"
1072
+ id="send-mail-source">
1073
+ <pre>
1074
+ <span class="ruby-comment cmt"># File lib/taskjuggler/SheetHandlerBase.rb, line 177</span>
1075
+ 177: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">subject</span>, <span class="ruby-identifier">message</span>, <span class="ruby-identifier">attachment</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">from</span> = <span class="ruby-keyword kw">nil</span>,
1076
+ 178: <span class="ruby-identifier">inReplyTo</span> = <span class="ruby-keyword kw">nil</span>)
1077
+ 179: <span class="ruby-constant">Mail</span>.<span class="ruby-identifier">defaults</span> <span class="ruby-keyword kw">do</span>
1078
+ 180: <span class="ruby-identifier">delivery_method</span> <span class="ruby-value">:smtp</span>, {
1079
+ 181: <span class="ruby-value">:address</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@smtpServer</span>,
1080
+ 182: <span class="ruby-value">:port</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">25</span>
1081
+ 183: }
1082
+ 184: <span class="ruby-keyword kw">end</span>
1083
+ 185:
1084
+ 186: <span class="ruby-keyword kw">begin</span>
1085
+ 187: <span class="ruby-identifier">self_</span> = <span class="ruby-keyword kw">self</span>
1086
+ 188: <span class="ruby-identifier">mail</span> = <span class="ruby-constant">Mail</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span>
1087
+ 189: <span class="ruby-identifier">subject</span> <span class="ruby-identifier">subject</span>
1088
+ 190: <span class="ruby-identifier">text_part</span> <span class="ruby-keyword kw">do</span>
1089
+ 191: <span class="ruby-identifier">content_type</span> [ <span class="ruby-value str">'text'</span>, <span class="ruby-value str">'plain'</span>, { <span class="ruby-value str">'charset'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'UTF-8'</span> } ]
1090
+ 192: <span class="ruby-identifier">content_transfer_encoding</span> <span class="ruby-value str">'base64'</span>
1091
+ 193: <span class="ruby-identifier">body</span> <span class="ruby-identifier">message</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">to_base64</span>
1092
+ 194: <span class="ruby-keyword kw">end</span>
1093
+ 195: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">message</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RichTextIntermediate</span>)
1094
+ 196: <span class="ruby-identifier">html_part</span> <span class="ruby-keyword kw">do</span>
1095
+ 197: <span class="ruby-identifier">content_type</span> <span class="ruby-value str">'text/html; charset=UTF-8'</span>
1096
+ 198: <span class="ruby-identifier">content_transfer_encoding</span> <span class="ruby-value str">'base64'</span>
1097
+ 199: <span class="ruby-identifier">body</span> <span class="ruby-identifier">self_</span>.<span class="ruby-identifier">htmlMailBody</span>(<span class="ruby-identifier">message</span>).<span class="ruby-identifier">to_base64</span>
1098
+ 200: <span class="ruby-keyword kw">end</span>
1099
+ 201: <span class="ruby-keyword kw">end</span>
1100
+ 202: <span class="ruby-keyword kw">end</span>
1101
+ 203: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">to</span> = <span class="ruby-identifier">to</span>
1102
+ 204: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">from</span> = <span class="ruby-identifier">from</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@senderEmail</span>
1103
+ 205: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">in_reply_to</span> = <span class="ruby-identifier">inReplyTo</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">inReplyTo</span>
1104
+ 206: <span class="ruby-identifier">mail</span>[<span class="ruby-value str">'User-Agent'</span>] = <span class="ruby-node">&quot;#{AppConfig.softwareName}/#{AppConfig.version}&quot;</span>
1105
+ 207: <span class="ruby-identifier">mail</span>[<span class="ruby-value str">'X-TaskJuggler'</span>] = <span class="ruby-ivar">@appName</span>
1106
+ 208: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attachment</span>
1107
+ 209: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">add_file</span> ({
1108
+ 210: <span class="ruby-value">:filename</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">attachment</span>),
1109
+ 211: <span class="ruby-value">:content</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">attachment</span>)
1110
+ 212: })
1111
+ 213: <span class="ruby-keyword kw">end</span>
1112
+ 214: <span class="ruby-comment cmt">#raise &quot;Mail header problem&quot; unless mail.errors.empty?</span>
1113
+ 215: <span class="ruby-keyword kw">rescue</span>
1114
+ 216: <span class="ruby-ivar">@emailFailure</span> = <span class="ruby-keyword kw">true</span>
1115
+ 217: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Email processing failed: #{$!}&quot;</span>)
1116
+ 218: <span class="ruby-keyword kw">end</span>
1117
+ 219:
1118
+ 220: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@dryRun</span>
1119
+ 221: <span class="ruby-comment cmt"># For testing and debugging, we only print out the email.</span>
1120
+ 222: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;-- Email Start #{'-' * 60}\n#{mail.to_s}-- Email End #{'-' * 62}&quot;</span>
1121
+ 223: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'INFO'</span>, <span class="ruby-node">&quot;Show email '#{subject}' to #{to}&quot;</span>)
1122
+ 224: <span class="ruby-keyword kw">else</span>
1123
+ 225: <span class="ruby-comment cmt"># Actually send out the email via SMTP.</span>
1124
+ 226: <span class="ruby-keyword kw">begin</span>
1125
+ 227: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">deliver</span>
1126
+ 228: <span class="ruby-keyword kw">rescue</span>
1127
+ 229: <span class="ruby-comment cmt"># We try to send out another email. If that fails again, we abort</span>
1128
+ 230: <span class="ruby-comment cmt"># without further attempts.</span>
1129
+ 231: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@emailFailure</span>
1130
+ 232: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'ERROR'</span>, <span class="ruby-node">&quot;Email double fault: #{$!}&quot;</span>)
1131
+ 233: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjRuntimeError</span>
1132
+ 234: <span class="ruby-keyword kw">else</span>
1133
+ 235: <span class="ruby-ivar">@emailFailure</span> = <span class="ruby-keyword kw">true</span>
1134
+ 236: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Email transmission failed: #{$!}&quot;</span>)
1135
+ 237: <span class="ruby-keyword kw">end</span>
1136
+ 238: <span class="ruby-keyword kw">end</span>
1137
+ 239: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'INFO'</span>, <span class="ruby-node">&quot;Sent email '#{subject}' to #{to}&quot;</span>)
1138
+ 240: <span class="ruby-keyword kw">end</span>
1139
+ 241: <span class="ruby-keyword kw">end</span></pre>
1140
+ </div>
1141
+
1142
+ </div>
1143
+
1144
+
1145
+
1146
+
1147
+ </div>
1148
+
1149
+
1150
+ <div id="send-ich-ext-mail-method" class="method-detail ">
1151
+ <a name="method-i-sendRichTextEmail"></a>
1152
+
1153
+ <div class="method-heading">
1154
+
1155
+ <span class="method-name">sendRichTextEmail</span><span
1156
+ class="method-args">(to, subject, message, attachment = nil, from = nil, inReplyTo = nil)</span>
1157
+ <span class="method-click-advice">click to toggle source</span>
1158
+
1159
+ </div>
1160
+
1161
+ <div class="method-description">
1162
+
1163
+ <p>
1164
+ Like SheetHandlerBase::sendEmail but interpretes the <em>message</em> as <a
1165
+ href="RichText.html">RichText</a> markup. The generated mail will have a
1166
+ text/plain and a text/html part.
1167
+ </p>
1168
+
1169
+
1170
+
1171
+ <div class="method-source-code"
1172
+ id="send-ich-ext-mail-source">
1173
+ <pre>
1174
+ <span class="ruby-comment cmt"># File lib/taskjuggler/SheetHandlerBase.rb, line 162</span>
1175
+ 162: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sendRichTextEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">subject</span>, <span class="ruby-identifier">message</span>, <span class="ruby-identifier">attachment</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">from</span> = <span class="ruby-keyword kw">nil</span>,
1176
+ 163: <span class="ruby-identifier">inReplyTo</span> = <span class="ruby-keyword kw">nil</span>)
1177
+ 164: <span class="ruby-identifier">rti</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">message</span>).<span class="ruby-identifier">generateIntermediateFormat</span>
1178
+ 165: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">lineWidth</span> = <span class="ruby-value">72</span>
1179
+ 166: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">indent</span> = <span class="ruby-value">2</span>
1180
+ 167: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">titleIndent</span> = <span class="ruby-value">0</span>
1181
+ 168: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">listIndent</span> = <span class="ruby-value">2</span>
1182
+ 169: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">parIndent</span> = <span class="ruby-value">2</span>
1183
+ 170: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">preIndent</span> = <span class="ruby-value">4</span>
1184
+ 171: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
1185
+ 172:
1186
+ 173: <span class="ruby-comment cmt"># Send out the email.</span>
1187
+ 174: <span class="ruby-identifier">sendEmail</span>(<span class="ruby-identifier">to</span>, <span class="ruby-identifier">subject</span>, <span class="ruby-identifier">rti</span>, <span class="ruby-identifier">attachment</span>, <span class="ruby-identifier">from</span>, <span class="ruby-identifier">inReplyTo</span>)
1188
+ 175: <span class="ruby-keyword kw">end</span></pre>
1189
+ </div>
1190
+
1191
+ </div>
1192
+
1193
+
1194
+
1195
+
1196
+ </div>
1197
+
1198
+
1199
+ <div id="set-orking-ir-method" class="method-detail ">
1200
+ <a name="method-i-setWorkingDir"></a>
1201
+
1202
+ <div class="method-heading">
1203
+
1204
+ <span class="method-name">setWorkingDir</span><span
1205
+ class="method-args">()</span>
1206
+ <span class="method-click-advice">click to toggle source</span>
1207
+
1208
+ </div>
1209
+
1210
+ <div class="method-description">
1211
+
1212
+
1213
+
1214
+
1215
+
1216
+ <div class="method-source-code"
1217
+ id="set-orking-ir-source">
1218
+ <pre>
1219
+ <span class="ruby-comment cmt"># File lib/taskjuggler/SheetHandlerBase.rb, line 108</span>
1220
+ 108: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setWorkingDir</span>
1221
+ 109: <span class="ruby-comment cmt"># Make sure the user has provided a properly setup config file.</span>
1222
+ 110: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'\smtpServer\ not configured'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@smtpServer</span>
1223
+ 111: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'\senderEmail\ not configured'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@senderEmail</span>
1224
+ 112:
1225
+ 113: <span class="ruby-comment cmt"># Change into the specified working directory</span>
1226
+ 114: <span class="ruby-keyword kw">begin</span>
1227
+ 115: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">chdir</span>(<span class="ruby-ivar">@workingDir</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@workingDir</span>
1228
+ 116: <span class="ruby-keyword kw">rescue</span>
1229
+ 117: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Working directory #{@workingDir} not found&quot;</span>)
1230
+ 118: <span class="ruby-keyword kw">end</span>
1231
+ 119: <span class="ruby-keyword kw">end</span></pre>
1232
+ </div>
1233
+
1234
+ </div>
1235
+
1236
+
1237
+
1238
+
1239
+ </div>
1240
+
1241
+
1242
+ <div id="warning-method" class="method-detail ">
1243
+ <a name="method-i-warning"></a>
1244
+
1245
+ <div class="method-heading">
1246
+
1247
+ <span class="method-name">warning</span><span
1248
+ class="method-args">(message)</span>
1249
+ <span class="method-click-advice">click to toggle source</span>
1250
+
1251
+ </div>
1252
+
1253
+ <div class="method-description">
1254
+
1255
+
1256
+
1257
+
1258
+
1259
+ <div class="method-source-code"
1260
+ id="warning-source">
1261
+ <pre>
1262
+ <span class="ruby-comment cmt"># File lib/taskjuggler/SheetHandlerBase.rb, line 141</span>
1263
+ 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">message</span>)
1264
+ 142: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">message</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@outputLevel</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">2</span>
1265
+ 143: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'WARN'</span>, <span class="ruby-identifier">message</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@logLevel</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">2</span>
1266
+ 144: <span class="ruby-keyword kw">end</span></pre>
1267
+ </div>
1268
+
1269
+ </div>
1270
+
1271
+
1272
+
1273
+
1274
+ </div>
1275
+
1276
+
1277
+ </div>
1278
+
1279
+
1280
+ </div>
1281
+
1282
+
1283
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
1284
+
1285
+ <p>Disabled; run with --debug to generate this.</p>
1286
+
1287
+ </div>
1288
+
1289
+ <div id="validator-badges">
1290
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1291
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
1292
+ Rdoc Generator</a> 1.1.6</small>.</p>
1293
+ </div>
1294
+
1295
+ </body>
1296
+ </html>
1297
+