taskjuggler 0.0.6 → 0.0.7

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 (545) hide show
  1. data/CHANGELOG +160 -0
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/data/css/tjreport.css +7 -2
  4. data/doc/AppConfig.html +10 -4
  5. data/doc/Arguments.html +10 -4
  6. data/doc/CHANGELOG.html +171 -5
  7. data/doc/COPYING.html +10 -4
  8. data/doc/Object.html +11 -107
  9. data/doc/README.html +10 -4
  10. data/doc/RuntimeConfig.html +10 -4
  11. data/doc/String.html +16 -11
  12. data/doc/StringIO.html +10 -4
  13. data/doc/TaskJuggler.html +506 -435
  14. data/doc/TaskJuggler/Account.html +10 -4
  15. data/doc/TaskJuggler/AccountAttribute.html +10 -4
  16. data/doc/TaskJuggler/AccountScenario.html +10 -4
  17. data/doc/TaskJuggler/Allocation.html +69 -60
  18. data/doc/TaskJuggler/AllocationAttribute.html +10 -4
  19. data/doc/TaskJuggler/AttributeBase.html +10 -4
  20. data/doc/TaskJuggler/AttributeDefinition.html +10 -4
  21. data/doc/TaskJuggler/BatchProcessor.html +202 -192
  22. data/doc/TaskJuggler/Booking.html +10 -4
  23. data/doc/TaskJuggler/BookingListAttribute.html +10 -4
  24. data/doc/TaskJuggler/BooleanAttribute.html +10 -4
  25. data/doc/TaskJuggler/CSVFile.html +10 -4
  26. data/doc/TaskJuggler/CellSettingPattern.html +10 -4
  27. data/doc/TaskJuggler/CellSettingPatternList.html +10 -4
  28. data/doc/TaskJuggler/Charge.html +10 -4
  29. data/doc/TaskJuggler/ChargeListAttribute.html +10 -4
  30. data/doc/TaskJuggler/ChargeSet.html +10 -4
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +10 -4
  32. data/doc/TaskJuggler/ColumnListAttribute.html +10 -4
  33. data/doc/TaskJuggler/ColumnTable.html +10 -4
  34. data/doc/TaskJuggler/Daemon.html +71 -52
  35. data/doc/TaskJuggler/DateAttribute.html +10 -4
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +10 -4
  37. data/doc/TaskJuggler/DependencyListAttribute.html +10 -4
  38. data/doc/TaskJuggler/DurationAttribute.html +10 -4
  39. data/doc/TaskJuggler/{MacroParser.html → FileList.html} +58 -173
  40. data/doc/TaskJuggler/{RichTextException.html → FileRecord.html} +59 -80
  41. data/doc/TaskJuggler/FixnumAttribute.html +10 -4
  42. data/doc/TaskJuggler/FlagListAttribute.html +10 -4
  43. data/doc/TaskJuggler/FloatAttribute.html +10 -4
  44. data/doc/TaskJuggler/FormatListAttribute.html +10 -4
  45. data/doc/TaskJuggler/GanttChart.html +10 -4
  46. data/doc/TaskJuggler/GanttContainer.html +14 -8
  47. data/doc/TaskJuggler/GanttHeader.html +10 -4
  48. data/doc/TaskJuggler/GanttHeaderScaleItem.html +10 -4
  49. data/doc/TaskJuggler/GanttLine.html +29 -24
  50. data/doc/TaskJuggler/GanttLoadStack.html +10 -4
  51. data/doc/TaskJuggler/GanttMilestone.html +10 -4
  52. data/doc/TaskJuggler/GanttRouter.html +10 -4
  53. data/doc/TaskJuggler/GanttTaskBar.html +20 -10
  54. data/doc/TaskJuggler/HTMLDocument.html +10 -4
  55. data/doc/TaskJuggler/HTMLGraphics.html +10 -4
  56. data/doc/TaskJuggler/Interval.html +10 -4
  57. data/doc/TaskJuggler/IntervalListAttribute.html +10 -4
  58. data/doc/TaskJuggler/JobInfo.html +10 -4
  59. data/doc/TaskJuggler/Journal.html +227 -160
  60. data/doc/TaskJuggler/JournalEntry.html +10 -4
  61. data/doc/TaskJuggler/JournalEntryList.html +158 -72
  62. data/doc/TaskJuggler/KeywordArray.html +21 -9
  63. data/doc/TaskJuggler/KeywordDocumentation.html +612 -475
  64. data/doc/TaskJuggler/Limits.html +13 -8
  65. data/doc/TaskJuggler/Limits/Limit.html +10 -4
  66. data/doc/TaskJuggler/LimitsAttribute.html +10 -4
  67. data/doc/TaskJuggler/ListAttributeBase.html +10 -4
  68. data/doc/TaskJuggler/Log.html +10 -4
  69. data/doc/TaskJuggler/LogFile.html +10 -4
  70. data/doc/TaskJuggler/LogicalAttribute.html +10 -4
  71. data/doc/TaskJuggler/LogicalExpression.html +11 -5
  72. data/doc/TaskJuggler/LogicalExpressionAttribute.html +10 -4
  73. data/doc/TaskJuggler/LogicalFlag.html +10 -4
  74. data/doc/TaskJuggler/LogicalFunction.html +132 -124
  75. data/doc/TaskJuggler/LogicalOperation.html +10 -4
  76. data/doc/TaskJuggler/Macro.html +16 -10
  77. data/doc/TaskJuggler/MacroTable.html +44 -38
  78. data/doc/TaskJuggler/ManagerResponsibilities.html +10 -4
  79. data/doc/TaskJuggler/ManagerStatusRecord.html +10 -4
  80. data/doc/TaskJuggler/Message.html +92 -68
  81. data/doc/TaskJuggler/MessageHandler.html +349 -28
  82. data/doc/TaskJuggler/Navigator.html +10 -4
  83. data/doc/TaskJuggler/NavigatorElement.html +10 -4
  84. data/doc/TaskJuggler/NikuProject.html +10 -4
  85. data/doc/TaskJuggler/NikuReport.html +10 -4
  86. data/doc/TaskJuggler/NikuResource.html +10 -4
  87. data/doc/TaskJuggler/NodeListAttribute.html +10 -4
  88. data/doc/TaskJuggler/OnShiftCache.html +10 -4
  89. data/doc/TaskJuggler/ProcessIntercom.html +118 -111
  90. data/doc/TaskJuggler/ProcessIntercomIface.html +75 -22
  91. data/doc/TaskJuggler/Project.html +886 -913
  92. data/doc/TaskJuggler/ProjectBroker.html +442 -331
  93. data/doc/TaskJuggler/ProjectBrokerIface.html +95 -38
  94. data/doc/TaskJuggler/ProjectFileParser.html +320 -317
  95. data/doc/TaskJuggler/ProjectFileScanner.html +336 -339
  96. data/doc/TaskJuggler/ProjectRecord.html +119 -56
  97. data/doc/TaskJuggler/ProjectServer.html +282 -237
  98. data/doc/TaskJuggler/ProjectServerIface.html +45 -39
  99. data/doc/TaskJuggler/PropertyAttribute.html +10 -4
  100. data/doc/TaskJuggler/PropertyList.html +177 -173
  101. data/doc/TaskJuggler/PropertySet.html +11 -5
  102. data/doc/TaskJuggler/PropertyTreeNode.html +194 -191
  103. data/doc/TaskJuggler/Query.html +280 -256
  104. data/doc/TaskJuggler/RTFHandlers.html +10 -4
  105. data/doc/TaskJuggler/RTFNavigator.html +33 -26
  106. data/doc/TaskJuggler/RTFQuery.html +135 -169
  107. data/doc/TaskJuggler/RTFReport.html +63 -56
  108. data/doc/TaskJuggler/RTFReportLink.html +58 -47
  109. data/doc/TaskJuggler/RTFWithQuerySupport.html +666 -0
  110. data/doc/TaskJuggler/RealFormat.html +10 -4
  111. data/doc/TaskJuggler/RealFormatAttribute.html +10 -4
  112. data/doc/TaskJuggler/ReferenceAttribute.html +10 -4
  113. data/doc/TaskJuggler/Report.html +333 -290
  114. data/doc/TaskJuggler/ReportBase.html +182 -174
  115. data/doc/TaskJuggler/ReportContext.html +10 -4
  116. data/doc/TaskJuggler/ReportServer.html +144 -126
  117. data/doc/TaskJuggler/ReportServerIface.html +50 -44
  118. data/doc/TaskJuggler/ReportServerRecord.html +38 -32
  119. data/doc/TaskJuggler/ReportServlet.html +144 -137
  120. data/doc/TaskJuggler/ReportTable.html +10 -4
  121. data/doc/TaskJuggler/ReportTableCell.html +169 -164
  122. data/doc/TaskJuggler/ReportTableColumn.html +10 -4
  123. data/doc/TaskJuggler/ReportTableLegend.html +10 -4
  124. data/doc/TaskJuggler/ReportTableLine.html +10 -4
  125. data/doc/TaskJuggler/Resource.html +121 -115
  126. data/doc/TaskJuggler/ResourceListAttribute.html +10 -4
  127. data/doc/TaskJuggler/ResourceListRE.html +10 -4
  128. data/doc/TaskJuggler/ResourceScenario.html +13 -7
  129. data/doc/TaskJuggler/RichText.html +61 -37
  130. data/doc/TaskJuggler/RichTextAttribute.html +10 -4
  131. data/doc/TaskJuggler/RichTextDocument.html +91 -81
  132. data/doc/TaskJuggler/RichTextElement.html +378 -317
  133. data/doc/TaskJuggler/RichTextFunctionExample.html +10 -4
  134. data/doc/TaskJuggler/RichTextFunctionHandler.html +16 -11
  135. data/doc/TaskJuggler/RichTextImage.html +10 -4
  136. data/doc/TaskJuggler/RichTextIntermediate.html +138 -70
  137. data/doc/TaskJuggler/RichTextParser.html +48 -40
  138. data/doc/TaskJuggler/RichTextScanner.html +328 -906
  139. data/doc/TaskJuggler/RichTextSnip.html +59 -57
  140. data/doc/TaskJuggler/RichTextSyntaxRules.html +458 -369
  141. data/doc/TaskJuggler/Scenario.html +10 -4
  142. data/doc/TaskJuggler/ScenarioData.html +33 -30
  143. data/doc/TaskJuggler/ScenarioListAttribute.html +10 -4
  144. data/doc/TaskJuggler/Scoreboard.html +10 -4
  145. data/doc/TaskJuggler/SheetHandlerBase.html +315 -191
  146. data/doc/TaskJuggler/SheetReceiver.html +334 -313
  147. data/doc/TaskJuggler/SheetSender.html +10 -4
  148. data/doc/TaskJuggler/Shift.html +10 -4
  149. data/doc/TaskJuggler/ShiftAssignment.html +10 -4
  150. data/doc/TaskJuggler/ShiftAssignments.html +10 -4
  151. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +10 -4
  152. data/doc/TaskJuggler/ShiftScenario.html +10 -4
  153. data/doc/TaskJuggler/SimpleQueryExpander.html +697 -0
  154. data/doc/TaskJuggler/SortListAttribute.html +10 -4
  155. data/doc/TaskJuggler/SourceFileInfo.html +10 -4
  156. data/doc/TaskJuggler/StatusSheetReceiver.html +10 -4
  157. data/doc/TaskJuggler/StatusSheetReport.html +10 -4
  158. data/doc/TaskJuggler/StatusSheetSender.html +10 -4
  159. data/doc/TaskJuggler/StringAttribute.html +10 -4
  160. data/doc/TaskJuggler/SymbolAttribute.html +10 -4
  161. data/doc/TaskJuggler/SyntaxReference.html +260 -230
  162. data/doc/TaskJuggler/TOCEntry.html +99 -42
  163. data/doc/TaskJuggler/TSResourceRecord.html +10 -4
  164. data/doc/TaskJuggler/TSTaskRecord.html +10 -4
  165. data/doc/TaskJuggler/TableColumnDefinition.html +10 -4
  166. data/doc/TaskJuggler/TableOfContents.html +54 -12
  167. data/doc/TaskJuggler/TableReport.html +877 -872
  168. data/doc/TaskJuggler/Task.html +117 -68
  169. data/doc/TaskJuggler/TaskDependency.html +10 -4
  170. data/doc/TaskJuggler/TaskListAttribute.html +10 -4
  171. data/doc/TaskJuggler/TaskListRE.html +10 -4
  172. data/doc/TaskJuggler/TaskScenario.html +1681 -1563
  173. data/doc/TaskJuggler/TextFormatter.html +10 -4
  174. data/doc/TaskJuggler/TextParser.html +567 -534
  175. data/doc/TaskJuggler/TextParser/Pattern.html +128 -118
  176. data/doc/TaskJuggler/TextParser/Rule.html +26 -15
  177. data/doc/TaskJuggler/TextParser/StackElement.html +10 -4
  178. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +22 -16
  179. data/doc/TaskJuggler/TextParser/TokenDoc.html +10 -4
  180. data/doc/TaskJuggler/TextReport.html +15 -6
  181. data/doc/TaskJuggler/TextScanner.html +319 -287
  182. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +16 -10
  183. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +23 -17
  184. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +17 -11
  185. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  186. data/doc/TaskJuggler/TimeSheet.html +138 -175
  187. data/doc/TaskJuggler/TimeSheetReceiver.html +10 -4
  188. data/doc/TaskJuggler/TimeSheetRecord.html +65 -58
  189. data/doc/TaskJuggler/TimeSheetReport.html +47 -42
  190. data/doc/TaskJuggler/TimeSheetSender.html +10 -4
  191. data/doc/TaskJuggler/TimeSheetSummary.html +91 -83
  192. data/doc/TaskJuggler/TimeSheets.html +22 -16
  193. data/doc/TaskJuggler/Tj3AppBase.html +10 -4
  194. data/doc/TaskJuggler/Tj3Client.html +399 -365
  195. data/doc/TaskJuggler/Tj3Daemon.html +107 -94
  196. data/doc/TaskJuggler/Tj3SheetAppBase.html +10 -4
  197. data/doc/TaskJuggler/Tj3SsReceiver.html +10 -4
  198. data/doc/TaskJuggler/Tj3SsSender.html +10 -4
  199. data/doc/TaskJuggler/Tj3TsReceiver.html +10 -4
  200. data/doc/TaskJuggler/Tj3TsSender.html +10 -4
  201. data/doc/TaskJuggler/Tj3TsSummary.html +10 -4
  202. data/doc/TaskJuggler/TjException.html +10 -4
  203. data/doc/TaskJuggler/TjTime.html +145 -140
  204. data/doc/TaskJuggler/TjpExample.html +10 -4
  205. data/doc/TaskJuggler/TjpExportRE.html +122 -118
  206. data/doc/TaskJuggler/TjpSyntaxRules.html +4065 -4052
  207. data/doc/TaskJuggler/URLParameter.html +10 -4
  208. data/doc/TaskJuggler/UserManual.html +162 -155
  209. data/doc/TaskJuggler/VimSyntax.html +1028 -0
  210. data/doc/TaskJuggler/WebServer.html +45 -27
  211. data/doc/TaskJuggler/WorkingHours.html +10 -4
  212. data/doc/TaskJuggler/WorkingHoursAttribute.html +10 -4
  213. data/doc/TaskJuggler/XMLBlob.html +10 -4
  214. data/doc/TaskJuggler/XMLComment.html +10 -4
  215. data/doc/TaskJuggler/XMLDocument.html +10 -4
  216. data/doc/TaskJuggler/XMLElement.html +10 -4
  217. data/doc/TaskJuggler/XMLNamedText.html +10 -4
  218. data/doc/TaskJuggler/XMLText.html +10 -4
  219. data/doc/index.html +735 -677
  220. data/doc/lib/AccountScenario_rb.html +1 -1
  221. data/doc/lib/Account_rb.html +1 -1
  222. data/doc/lib/Allocation_rb.html +1 -1
  223. data/doc/lib/AppConfig_rb.html +1 -1
  224. data/doc/lib/AttributeBase_rb.html +1 -1
  225. data/doc/lib/AttributeDefinition_rb.html +1 -1
  226. data/doc/lib/Attributes_rb.html +1 -1
  227. data/doc/lib/BatchProcessor_rb.html +1 -1
  228. data/doc/lib/Booking_rb.html +1 -1
  229. data/doc/lib/ChargeSet_rb.html +1 -1
  230. data/doc/lib/Charge_rb.html +1 -1
  231. data/doc/lib/{Message_rb.html → FileList_rb.html} +3 -5
  232. data/doc/lib/HTMLDocument_rb.html +1 -1
  233. data/doc/lib/Interval_rb.html +1 -1
  234. data/doc/lib/Journal_rb.html +1 -1
  235. data/doc/lib/KeywordArray_rb.html +1 -1
  236. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  237. data/doc/lib/Limits_rb.html +1 -1
  238. data/doc/lib/LogFile_rb.html +1 -1
  239. data/doc/lib/Log_rb.html +1 -1
  240. data/doc/lib/LogicalExpression_rb.html +1 -1
  241. data/doc/lib/LogicalFunction_rb.html +1 -1
  242. data/doc/lib/LogicalOperation_rb.html +1 -1
  243. data/doc/lib/MacroTable_rb.html +1 -3
  244. data/doc/lib/MessageHandler_rb.html +1 -1
  245. data/doc/lib/ProjectFileParser_rb.html +1 -1
  246. data/doc/lib/ProjectFileScanner_rb.html +1 -1
  247. data/doc/lib/Project_rb.html +4 -2
  248. data/doc/lib/PropertyList_rb.html +1 -1
  249. data/doc/lib/PropertySet_rb.html +1 -1
  250. data/doc/lib/PropertyTreeNode_rb.html +1 -1
  251. data/doc/lib/Query_rb.html +1 -1
  252. data/doc/lib/RTFHandlers_rb.html +1 -1
  253. data/doc/lib/RTFNavigator_rb.html +1 -1
  254. data/doc/lib/RTFQuery_rb.html +2 -2
  255. data/doc/lib/RTFReportLink_rb.html +4 -2
  256. data/doc/lib/RTFReport_rb.html +1 -1
  257. data/doc/lib/{MacroParser_rb.html → RTFWithQuerySupport_rb.html} +4 -6
  258. data/doc/lib/RealFormat_rb.html +1 -1
  259. data/doc/lib/ResourceScenario_rb.html +1 -1
  260. data/doc/lib/Resource_rb.html +1 -1
  261. data/doc/lib/RichTextDocument_rb.html +1 -1
  262. data/doc/lib/RichTextElement_rb.html +1 -1
  263. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  264. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  265. data/doc/lib/RichTextParser_rb.html +1 -1
  266. data/doc/lib/RichTextScanner_rb.html +3 -1
  267. data/doc/lib/RichTextSnip_rb.html +1 -1
  268. data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
  269. data/doc/lib/RichText_rb.html +3 -1
  270. data/doc/lib/RuntimeConfig_rb.html +1 -1
  271. data/doc/lib/ScenarioData_rb.html +2 -2
  272. data/doc/lib/Scenario_rb.html +1 -1
  273. data/doc/lib/Scoreboard_rb.html +1 -1
  274. data/doc/lib/SheetHandlerBase_rb.html +5 -1
  275. data/doc/lib/SheetReceiver_rb.html +3 -1
  276. data/doc/lib/SheetSender_rb.html +1 -1
  277. data/doc/lib/ShiftAssignments_rb.html +1 -1
  278. data/doc/lib/ShiftScenario_rb.html +1 -1
  279. data/doc/lib/Shift_rb.html +1 -1
  280. data/doc/lib/SimpleQueryExpander_rb.html +67 -0
  281. data/doc/lib/SourceFileInfo_rb.html +1 -1
  282. data/doc/lib/StatusSheetReceiver_rb.html +1 -1
  283. data/doc/lib/StatusSheetSender_rb.html +1 -1
  284. data/doc/lib/SyntaxReference_rb.html +1 -1
  285. data/doc/lib/TOCEntry_rb.html +1 -1
  286. data/doc/lib/TableColumnDefinition_rb.html +1 -1
  287. data/doc/lib/TableOfContents_rb.html +1 -1
  288. data/doc/lib/TaskDependency_rb.html +1 -1
  289. data/doc/lib/TaskJuggler_rb.html +1 -1
  290. data/doc/lib/TaskScenario_rb.html +1 -1
  291. data/doc/lib/Task_rb.html +1 -1
  292. data/doc/lib/TextFormatter_rb.html +1 -1
  293. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  294. data/doc/lib/TextParser/Rule_rb.html +1 -1
  295. data/doc/lib/TextParser/StackElement_rb.html +1 -1
  296. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  297. data/doc/lib/TextParser_rb.html +3 -1
  298. data/doc/lib/TextScanner_rb.html +1 -3
  299. data/doc/lib/TimeSheetReceiver_rb.html +1 -1
  300. data/doc/lib/TimeSheetSender_rb.html +1 -1
  301. data/doc/lib/TimeSheetSummary_rb.html +1 -1
  302. data/doc/lib/TimeSheets_rb.html +1 -1
  303. data/doc/lib/Tj3AppBase_rb.html +1 -1
  304. data/doc/lib/Tj3Config_rb.html +1 -1
  305. data/doc/lib/Tj3SheetAppBase_rb.html +1 -1
  306. data/doc/lib/TjException_rb.html +1 -1
  307. data/doc/lib/TjTime_rb.html +1 -1
  308. data/doc/lib/TjpExample_rb.html +1 -1
  309. data/doc/lib/TjpSyntaxRules_rb.html +1 -1
  310. data/doc/lib/URLParameter_rb.html +1 -1
  311. data/doc/lib/UTF8String_rb.html +1 -1
  312. data/doc/lib/UserManual_rb.html +1 -1
  313. data/doc/lib/{ruby-signal-bug_rb.html → VimSyntax_rb.html} +17 -4
  314. data/doc/lib/WorkingHours_rb.html +1 -1
  315. data/doc/lib/XMLDocument_rb.html +1 -1
  316. data/doc/lib/XMLElement_rb.html +1 -1
  317. data/doc/lib/daemon/Daemon_rb.html +1 -1
  318. data/doc/lib/daemon/ProcessIntercom_rb.html +1 -1
  319. data/doc/lib/daemon/ProjectBroker_rb.html +1 -1
  320. data/doc/lib/daemon/ProjectServer_rb.html +1 -1
  321. data/doc/lib/daemon/ReportServer_rb.html +1 -3
  322. data/doc/lib/daemon/WebServer_rb.html +1 -1
  323. data/doc/lib/deep_copy_rb.html +1 -1
  324. data/doc/lib/reports/CSVFile_rb.html +1 -1
  325. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  326. data/doc/lib/reports/GanttChart_rb.html +1 -1
  327. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  328. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  329. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  330. data/doc/lib/reports/GanttLine_rb.html +1 -1
  331. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  332. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  333. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  334. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  335. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  336. data/doc/lib/reports/Navigator_rb.html +1 -1
  337. data/doc/lib/reports/NikuReport_rb.html +1 -1
  338. data/doc/lib/reports/ReportBase_rb.html +1 -1
  339. data/doc/lib/reports/ReportContext_rb.html +1 -1
  340. data/doc/lib/reports/ReportTableCell_rb.html +1 -1
  341. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  342. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  343. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  344. data/doc/lib/reports/ReportTable_rb.html +1 -1
  345. data/doc/lib/reports/Report_rb.html +1 -1
  346. data/doc/lib/reports/ResourceListRE_rb.html +1 -1
  347. data/doc/lib/reports/StatusSheetReport_rb.html +1 -1
  348. data/doc/lib/reports/TableReport_rb.html +1 -1
  349. data/doc/lib/reports/TaskListRE_rb.html +1 -1
  350. data/doc/lib/reports/TextReport_rb.html +1 -1
  351. data/doc/lib/reports/TimeSheetReport_rb.html +1 -1
  352. data/doc/lib/reports/TjpExportRE_rb.html +1 -1
  353. data/doc/lib/taskjuggler3_rb.html +1 -1
  354. data/doc/lib/tj3client_rb.html +1 -1
  355. data/doc/lib/tj3d_rb.html +1 -1
  356. data/doc/lib/tj3man_rb.html +1 -1
  357. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  358. data/doc/lib/tj3ss_sender_rb.html +1 -1
  359. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  360. data/doc/lib/tj3ts_sender_rb.html +1 -1
  361. data/doc/lib/tj3ts_summary_rb.html +1 -1
  362. data/lib/Allocation.rb +8 -5
  363. data/lib/BatchProcessor.rb +7 -3
  364. data/lib/FileList.rb +58 -0
  365. data/lib/Journal.rb +73 -33
  366. data/lib/KeywordArray.rb +4 -0
  367. data/lib/KeywordDocumentation.rb +45 -11
  368. data/lib/Limits.rb +0 -1
  369. data/lib/LogicalExpression.rb +1 -1
  370. data/lib/LogicalFunction.rb +14 -12
  371. data/lib/MacroTable.rb +3 -4
  372. data/lib/MessageHandler.rb +136 -7
  373. data/lib/Project.rb +72 -86
  374. data/lib/ProjectFileParser.rb +30 -33
  375. data/lib/ProjectFileScanner.rb +7 -16
  376. data/lib/PropertyList.rb +25 -27
  377. data/lib/PropertySet.rb +1 -1
  378. data/lib/PropertyTreeNode.rb +9 -12
  379. data/lib/Query.rb +5 -4
  380. data/lib/RTFNavigator.rb +2 -1
  381. data/lib/RTFQuery.rb +4 -11
  382. data/lib/RTFReport.rb +2 -1
  383. data/lib/RTFReportLink.rb +10 -4
  384. data/lib/RTFWithQuerySupport.rb +45 -0
  385. data/lib/Resource.rb +20 -20
  386. data/lib/ResourceScenario.rb +3 -3
  387. data/lib/RichText.rb +15 -7
  388. data/lib/RichTextDocument.rb +8 -4
  389. data/lib/RichTextElement.rb +35 -12
  390. data/lib/RichTextFunctionHandler.rb +11 -12
  391. data/lib/RichTextParser.rb +5 -3
  392. data/lib/RichTextScanner.rb +144 -565
  393. data/lib/RichTextSnip.rb +3 -7
  394. data/lib/RichTextSyntaxRules.rb +51 -32
  395. data/lib/ScenarioData.rb +16 -25
  396. data/lib/SheetHandlerBase.rb +59 -2
  397. data/lib/SheetReceiver.rb +36 -18
  398. data/lib/SimpleQueryExpander.rb +58 -0
  399. data/lib/SyntaxReference.rb +9 -5
  400. data/lib/TOCEntry.rb +2 -0
  401. data/lib/TableOfContents.rb +4 -0
  402. data/lib/Task.rb +23 -12
  403. data/lib/TaskJuggler.rb +72 -33
  404. data/lib/TaskScenario.rb +131 -53
  405. data/lib/TextParser.rb +43 -30
  406. data/lib/TextParser/Pattern.rb +17 -13
  407. data/lib/TextParser/Rule.rb +5 -0
  408. data/lib/TextScanner.rb +46 -25
  409. data/lib/TimeSheetSummary.rb +9 -7
  410. data/lib/TimeSheets.rb +14 -23
  411. data/lib/Tj3Config.rb +1 -1
  412. data/lib/TjTime.rb +1 -2
  413. data/lib/TjpSyntaxRules.rb +128 -104
  414. data/lib/UTF8String.rb +0 -1
  415. data/lib/UserManual.rb +5 -4
  416. data/lib/VimSyntax.rb +223 -0
  417. data/lib/daemon/Daemon.rb +9 -0
  418. data/lib/daemon/ProcessIntercom.rb +19 -4
  419. data/lib/daemon/ProjectBroker.rb +149 -68
  420. data/lib/daemon/ProjectServer.rb +119 -79
  421. data/lib/daemon/ReportServer.rb +42 -31
  422. data/lib/daemon/WebServer.rb +21 -2
  423. data/lib/deep_copy.rb +1 -1
  424. data/lib/reports/GanttContainer.rb +2 -2
  425. data/lib/reports/GanttLine.rb +2 -3
  426. data/lib/reports/GanttTaskBar.rb +7 -3
  427. data/lib/reports/Report.rb +62 -57
  428. data/lib/reports/ReportBase.rb +6 -4
  429. data/lib/reports/ReportTableCell.rb +13 -14
  430. data/lib/reports/TableReport.rb +2 -1
  431. data/lib/reports/TextReport.rb +3 -0
  432. data/lib/reports/TimeSheetReport.rb +2 -3
  433. data/lib/reports/TjpExportRE.rb +0 -2
  434. data/lib/tj3client.rb +31 -3
  435. data/lib/tj3d.rb +8 -1
  436. data/manual/Day_To_Day_Juggling +2 -95
  437. data/manual/How_To_Contribute +2 -1
  438. data/manual/Rich_Text_Attributes +37 -3
  439. data/manual/Software +203 -0
  440. data/test/MessageChecker.rb +4 -4
  441. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  442. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  443. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  444. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  445. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  446. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  447. data/test/TestSuite/HTML-Reports/css/tjmanual.css +14 -0
  448. data/test/TestSuite/HTML-Reports/css/tjreport.css +233 -21
  449. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  450. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  451. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +20 -20
  452. data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +48 -0
  453. data/test/TestSuite/ReportGenerator/Correct/Macros.tjp +57 -0
  454. data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +386 -0
  455. data/test/TestSuite/ReportGenerator/Correct/refs/Macros-1.csv +6 -0
  456. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjmanual.css +0 -0
  457. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjreport.css +0 -0
  458. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/details.png +0 -0
  459. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-green.png +0 -0
  460. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-red.png +0 -0
  461. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-yellow.png +0 -0
  462. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resource.png +0 -0
  463. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resourcegroup.png +0 -0
  464. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/task.png +0 -0
  465. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/taskgroup.png +0 -0
  466. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-down.png +0 -0
  467. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-flat.png +0 -0
  468. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-up.png +0 -0
  469. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +26 -0
  470. data/test/TestSuite/ReportGenerator/{Correct → Errors}/scripts/wz_tooltip.js +0 -0
  471. data/test/TestSuite/Scheduler/Correct/Allocate.html +3210 -0
  472. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +19 -0
  473. data/test/TestSuite/Scheduler/Correct/Container.html +22 -22
  474. data/test/TestSuite/Scheduler/Correct/Limits.html +4964 -0
  475. data/test/TestSuite/Scheduler/Correct/Shift.html +1707 -417
  476. data/test/TestSuite/Scheduler/Correct/Shift2.html +9 -9
  477. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +6 -2
  478. data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +66 -0
  479. data/test/TestSuite/Scheduler/Errors/css/tjreport.css +407 -0
  480. data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
  481. data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
  482. data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
  483. data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
  484. data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
  485. data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
  486. data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
  487. data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
  488. data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
  489. data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
  490. data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
  491. data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +1 -1
  492. data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +1 -1
  493. data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +1 -1
  494. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +1 -1
  495. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +1 -1
  496. data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +1 -1
  497. data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +1 -1
  498. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +1 -1
  499. data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +1 -1
  500. data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +1 -1
  501. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +1 -1
  502. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +1 -1
  503. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +1 -1
  504. data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +1 -1
  505. data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +1301 -0
  506. data/test/TestSuite/Scheduler/Errors/task_pred_before.tjp +11 -0
  507. data/test/TestSuite/Scheduler/Errors/task_pred_before_gd.tjp +11 -0
  508. data/test/TestSuite/Scheduler/Errors/task_pred_before_gl.tjp +11 -0
  509. data/test/TestSuite/Scheduler/Errors/task_succ_after.tjp +12 -0
  510. data/test/TestSuite/Scheduler/Errors/task_succ_after_gd.tjp +12 -0
  511. data/test/TestSuite/Scheduler/Errors/task_succ_after_gl.tjp +12 -0
  512. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  513. data/test/TestSuite/StatusSheets/resrep.tji +7 -0
  514. data/test/TestSuite/StatusSheets/run +6 -4
  515. data/test/TestSuite/StatusSheets/tj3d.log +312 -0
  516. data/test/TestSuite/Syntax/Correct/Managers.html +263 -0
  517. data/test/TestSuite/Syntax/Correct/tutorial.tjp +1 -2
  518. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  519. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +1 -1
  520. data/test/TestSuite/TimeSheets/acceptable_intervals +1 -0
  521. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  522. data/test/TestSuite/TimeSheets/run +6 -5
  523. data/test/TestSuite/TimeSheets/statussheets.log +1 -0
  524. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  525. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  526. data/test/test_PropertySet.rb +2 -2
  527. data/test/test_RichText.rb +178 -387
  528. data/test/test_SimpleQueryExpander.rb +55 -0
  529. data/test/test_deep_copy.rb +2 -2
  530. metadata +854 -834
  531. data/lib/MacroParser.rb +0 -77
  532. data/lib/Message.rb +0 -56
  533. data/lib/ruby-signal-bug.rb +0 -43
  534. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  535. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  536. data/test/TestSuite/ReportGenerator/Correct/Journal.html +0 -63
  537. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  538. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  540. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  541. data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
  542. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
  543. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  544. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  545. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
@@ -163,6 +163,10 @@
163
163
 
164
164
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
165
165
 
166
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
167
+
168
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
169
+
166
170
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
167
171
 
168
172
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -235,8 +239,6 @@
235
239
 
236
240
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
237
241
 
238
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
239
-
240
242
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
241
243
 
242
244
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -301,6 +303,8 @@
301
303
 
302
304
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
303
305
 
306
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
307
+
304
308
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
305
309
 
306
310
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -347,8 +351,6 @@
347
351
 
348
352
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
349
353
 
350
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
351
-
352
354
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
353
355
 
354
356
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -389,6 +391,8 @@
389
391
 
390
392
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
391
393
 
394
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
395
+
392
396
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
393
397
 
394
398
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -499,6 +503,8 @@
499
503
 
500
504
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
501
505
 
506
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
507
+
502
508
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
503
509
 
504
510
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -171,6 +171,10 @@
171
171
 
172
172
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
173
173
 
174
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
175
+
176
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
177
+
174
178
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
175
179
 
176
180
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -243,8 +247,6 @@
243
247
 
244
248
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
245
249
 
246
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
247
-
248
250
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
249
251
 
250
252
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -309,6 +311,8 @@
309
311
 
310
312
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
311
313
 
314
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
315
+
312
316
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
313
317
 
314
318
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -355,8 +359,6 @@
355
359
 
356
360
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
357
361
 
358
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
359
-
360
362
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
361
363
 
362
364
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -397,6 +399,8 @@
397
399
 
398
400
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
399
401
 
402
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
403
+
400
404
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
401
405
 
402
406
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -507,6 +511,8 @@
507
511
 
508
512
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
509
513
 
514
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
515
+
510
516
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
511
517
 
512
518
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -668,7 +674,7 @@
668
674
  <div class="method-heading">
669
675
 
670
676
  <span class="method-name">error</span><span
671
- class="method-args">(id, text, abort = true, sourceFileInfo = nil)</span>
677
+ class="method-args">(id, text, sourceFileInfo = nil, property = nil)</span>
672
678
  <span class="method-click-advice">click to toggle source</span>
673
679
 
674
680
  </div>
@@ -683,14 +689,12 @@
683
689
  id="error-source">
684
690
  <pre>
685
691
  <span class="ruby-comment cmt"># File lib/ScenarioData.rb, line 34</span>
686
- 34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">abort</span> = <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>)
687
- 35: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">id</span>, <span class="ruby-value str">'error'</span>, <span class="ruby-identifier">text</span>, <span class="ruby-ivar">@property</span>,
688
- 36: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-ivar">@scenarioIdx</span>),
689
- 37: <span class="ruby-identifier">sourceFileInfo</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span>
690
- 38: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">sourceFileInfo</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">sourceFileInfo</span>)
691
- 39: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">sendMessage</span>(<span class="ruby-identifier">message</span>)
692
- 40: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Scheduling error&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">abort</span>
693
- 41: <span class="ruby-keyword kw">end</span></pre>
692
+ 34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>)
693
+ 35: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">error</span>(
694
+ 36: <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">sourceFileInfo</span>, <span class="ruby-keyword kw">nil</span>,
695
+ 37: <span class="ruby-identifier">property</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@property</span>,
696
+ 38: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-ivar">@scenarioIdx</span>))
697
+ 39: <span class="ruby-keyword kw">end</span></pre>
694
698
  </div>
695
699
 
696
700
  </div>
@@ -707,7 +711,7 @@
707
711
  <div class="method-heading">
708
712
 
709
713
  <span class="method-name">info</span><span
710
- class="method-args">(id, text, property = nil)</span>
714
+ class="method-args">(id, text, sourceFileInfo = nil, property = nil)</span>
711
715
  <span class="method-click-advice">click to toggle source</span>
712
716
 
713
717
  </div>
@@ -721,14 +725,13 @@
721
725
  <div class="method-source-code"
722
726
  id="info-source">
723
727
  <pre>
724
- <span class="ruby-comment cmt"># File lib/ScenarioData.rb, line 50</span>
725
- 50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>)
726
- 51: <span class="ruby-identifier">property</span> = <span class="ruby-ivar">@property</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">nil?</span>
727
- 52: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">id</span>, <span class="ruby-value str">'info'</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>,
728
- 53: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-ivar">@scenarioIdx</span>),
729
- 54: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">sourceFileInfo</span>)
730
- 55: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">sendMessage</span>(<span class="ruby-identifier">message</span>)
731
- 56: <span class="ruby-keyword kw">end</span></pre>
728
+ <span class="ruby-comment cmt"># File lib/ScenarioData.rb, line 48</span>
729
+ 48: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>)
730
+ 49: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">info</span>(
731
+ 50: <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">sourceFileInfo</span>, <span class="ruby-keyword kw">nil</span>,
732
+ 51: <span class="ruby-identifier">property</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@property</span>,
733
+ 52: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-ivar">@scenarioIdx</span>))
734
+ 53: <span class="ruby-keyword kw">end</span></pre>
732
735
  </div>
733
736
 
734
737
  </div>
@@ -745,7 +748,7 @@
745
748
  <div class="method-heading">
746
749
 
747
750
  <span class="method-name">warning</span><span
748
- class="method-args">(id, text)</span>
751
+ class="method-args">(id, text, sourceFileInfo = nil, property = nil)</span>
749
752
  <span class="method-click-advice">click to toggle source</span>
750
753
 
751
754
  </div>
@@ -759,13 +762,13 @@
759
762
  <div class="method-source-code"
760
763
  id="warning-source">
761
764
  <pre>
762
- <span class="ruby-comment cmt"># File lib/ScenarioData.rb, line 43</span>
763
- 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>)
764
- 44: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">id</span>, <span class="ruby-value str">'warning'</span>, <span class="ruby-identifier">text</span>, <span class="ruby-ivar">@property</span>,
765
- 45: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-ivar">@scenarioIdx</span>),
766
- 46: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">sourceFileInfo</span>)
767
- 47: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">sendMessage</span>(<span class="ruby-identifier">message</span>)
768
- 48: <span class="ruby-keyword kw">end</span></pre>
765
+ <span class="ruby-comment cmt"># File lib/ScenarioData.rb, line 41</span>
766
+ 41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>)
767
+ 42: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(
768
+ 43: <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">sourceFileInfo</span>, <span class="ruby-keyword kw">nil</span>,
769
+ 44: <span class="ruby-identifier">property</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@property</span>,
770
+ 45: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-ivar">@scenarioIdx</span>))
771
+ 46: <span class="ruby-keyword kw">end</span></pre>
769
772
  </div>
770
773
 
771
774
  </div>
@@ -167,6 +167,10 @@
167
167
 
168
168
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
169
169
 
170
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
171
+
172
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
173
+
170
174
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
171
175
 
172
176
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -239,8 +243,6 @@
239
243
 
240
244
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
241
245
 
242
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
243
-
244
246
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
245
247
 
246
248
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -305,6 +307,8 @@
305
307
 
306
308
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
307
309
 
310
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
311
+
308
312
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
309
313
 
310
314
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -351,8 +355,6 @@
351
355
 
352
356
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
353
357
 
354
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
355
-
356
358
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
357
359
 
358
360
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -393,6 +395,8 @@
393
395
 
394
396
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
395
397
 
398
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
399
+
396
400
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
397
401
 
398
402
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -503,6 +507,8 @@
503
507
 
504
508
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
505
509
 
510
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
511
+
506
512
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
507
513
 
508
514
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -183,6 +183,10 @@
183
183
 
184
184
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
185
185
 
186
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
187
+
188
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
189
+
186
190
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
187
191
 
188
192
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -255,8 +259,6 @@
255
259
 
256
260
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
257
261
 
258
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
259
-
260
262
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
261
263
 
262
264
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -321,6 +323,8 @@
321
323
 
322
324
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
323
325
 
326
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
327
+
324
328
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
325
329
 
326
330
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -367,8 +371,6 @@
367
371
 
368
372
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
369
373
 
370
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
371
-
372
374
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
373
375
 
374
376
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -409,6 +411,8 @@
409
411
 
410
412
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
411
413
 
414
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
415
+
412
416
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
413
417
 
414
418
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -519,6 +523,8 @@
519
523
 
520
524
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
521
525
 
526
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
527
+
522
528
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
523
529
 
524
530
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -79,12 +79,16 @@
79
79
 
80
80
  <li><a href="#method-i-fixLineBreaks">#fixLineBreaks</a></li>
81
81
 
82
+ <li><a href="#method-i-htmlMailBody">#htmlMailBody</a></li>
83
+
82
84
  <li><a href="#method-i-info">#info</a></li>
83
85
 
84
86
  <li><a href="#method-i-log">#log</a></li>
85
87
 
86
88
  <li><a href="#method-i-sendEmail">#sendEmail</a></li>
87
89
 
90
+ <li><a href="#method-i-sendRichTextEmail">#sendRichTextEmail</a></li>
91
+
88
92
  <li><a href="#method-i-setWorkingDir">#setWorkingDir</a></li>
89
93
 
90
94
  <li><a href="#method-i-warning">#warning</a></li>
@@ -181,6 +185,10 @@
181
185
 
182
186
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
183
187
 
188
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
189
+
190
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
191
+
184
192
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
185
193
 
186
194
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -253,8 +261,6 @@
253
261
 
254
262
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
255
263
 
256
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
257
-
258
264
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
259
265
 
260
266
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -319,6 +325,8 @@
319
325
 
320
326
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
321
327
 
328
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
329
+
322
330
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
323
331
 
324
332
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -365,8 +373,6 @@
365
373
 
366
374
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
367
375
 
368
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
369
-
370
376
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
371
377
 
372
378
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -407,6 +413,8 @@
407
413
 
408
414
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
409
415
 
416
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
417
+
410
418
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
411
419
 
412
420
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -517,6 +525,8 @@
517
525
 
518
526
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
519
527
 
528
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
529
+
520
530
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
521
531
 
522
532
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -634,33 +644,33 @@
634
644
  <div class="method-source-code"
635
645
  id="new-source">
636
646
  <pre>
637
- <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 23</span>
638
- 23: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">appName</span>)
639
- 24: <span class="ruby-ivar">@appName</span> = <span class="ruby-identifier">appName</span>
640
- 25: <span class="ruby-comment cmt"># User specific settings</span>
641
- 26: <span class="ruby-ivar">@smtpServer</span>= <span class="ruby-keyword kw">nil</span>
642
- 27: <span class="ruby-ivar">@senderEmail</span> = <span class="ruby-keyword kw">nil</span>
643
- 28: <span class="ruby-ivar">@workingDir</span> = <span class="ruby-keyword kw">nil</span>
644
- 29: <span class="ruby-ivar">@scmCommand</span> = <span class="ruby-keyword kw">nil</span>
645
- 30: <span class="ruby-comment cmt"># The default project ID</span>
646
- 31: <span class="ruby-ivar">@projectId</span> = <span class="ruby-value str">'prj'</span>
647
- 32:
648
- 33: <span class="ruby-comment cmt"># Controls the amount of output that is sent to the terminal.</span>
649
- 34: <span class="ruby-comment cmt"># 0: No output</span>
650
- 35: <span class="ruby-comment cmt"># 1: only errors</span>
651
- 36: <span class="ruby-comment cmt"># 2: errors and warnings</span>
652
- 37: <span class="ruby-comment cmt"># 3: All messages</span>
653
- 38: <span class="ruby-ivar">@outputLevel</span> = <span class="ruby-value">2</span>
654
- 39: <span class="ruby-comment cmt"># Controls the amount of information that is added to the log file. The</span>
655
- 40: <span class="ruby-comment cmt"># levels are identical to @outputLevel.</span>
656
- 41: <span class="ruby-ivar">@logLevel</span> = <span class="ruby-value">3</span>
657
- 42: <span class="ruby-comment cmt"># Set to true to not send any emails. Instead the email (header + body) is</span>
658
- 43: <span class="ruby-comment cmt"># printed to the terminal.</span>
659
- 44: <span class="ruby-ivar">@dryRun</span> = <span class="ruby-keyword kw">false</span>
660
- 45:
661
- 46: <span class="ruby-ivar">@logFile</span> = <span class="ruby-value str">'timesheets.log'</span>
662
- 47: <span class="ruby-ivar">@emailFailure</span> = <span class="ruby-keyword kw">false</span>
663
- 48: <span class="ruby-keyword kw">end</span></pre>
647
+ <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 24</span>
648
+ 24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">appName</span>)
649
+ 25: <span class="ruby-ivar">@appName</span> = <span class="ruby-identifier">appName</span>
650
+ 26: <span class="ruby-comment cmt"># User specific settings</span>
651
+ 27: <span class="ruby-ivar">@smtpServer</span>= <span class="ruby-keyword kw">nil</span>
652
+ 28: <span class="ruby-ivar">@senderEmail</span> = <span class="ruby-keyword kw">nil</span>
653
+ 29: <span class="ruby-ivar">@workingDir</span> = <span class="ruby-keyword kw">nil</span>
654
+ 30: <span class="ruby-ivar">@scmCommand</span> = <span class="ruby-keyword kw">nil</span>
655
+ 31: <span class="ruby-comment cmt"># The default project ID</span>
656
+ 32: <span class="ruby-ivar">@projectId</span> = <span class="ruby-value str">'prj'</span>
657
+ 33:
658
+ 34: <span class="ruby-comment cmt"># Controls the amount of output that is sent to the terminal.</span>
659
+ 35: <span class="ruby-comment cmt"># 0: No output</span>
660
+ 36: <span class="ruby-comment cmt"># 1: only errors</span>
661
+ 37: <span class="ruby-comment cmt"># 2: errors and warnings</span>
662
+ 38: <span class="ruby-comment cmt"># 3: All messages</span>
663
+ 39: <span class="ruby-ivar">@outputLevel</span> = <span class="ruby-value">2</span>
664
+ 40: <span class="ruby-comment cmt"># Controls the amount of information that is added to the log file. The</span>
665
+ 41: <span class="ruby-comment cmt"># levels are identical to @outputLevel.</span>
666
+ 42: <span class="ruby-ivar">@logLevel</span> = <span class="ruby-value">3</span>
667
+ 43: <span class="ruby-comment cmt"># Set to true to not send any emails. Instead the email (header + body) is</span>
668
+ 44: <span class="ruby-comment cmt"># printed to the terminal.</span>
669
+ 45: <span class="ruby-ivar">@dryRun</span> = <span class="ruby-keyword kw">false</span>
670
+ 46:
671
+ 47: <span class="ruby-ivar">@logFile</span> = <span class="ruby-value str">'timesheets.log'</span>
672
+ 48: <span class="ruby-ivar">@emailFailure</span> = <span class="ruby-keyword kw">false</span>
673
+ 49: <span class="ruby-keyword kw">end</span></pre>
664
674
  </div>
665
675
 
666
676
  </div>
@@ -697,19 +707,19 @@
697
707
  <div class="method-source-code"
698
708
  id="add-o-cm-source">
699
709
  <pre>
700
- <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 119</span>
701
- 119: <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>)
702
- 120: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scmCommand</span>
703
- 121:
704
- 122: <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>)
705
- 123: <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>)
706
- 124: <span class="ruby-node">`#{cmd}`</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@dryRun</span>
707
- 125: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$?</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
708
- 126: <span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Added #{fileName} to SCM&quot;</span>)
709
- 127: <span class="ruby-keyword kw">else</span>
710
- 128: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;SCM command #{cmd} failed: #{$?}&quot;</span>)
711
- 129: <span class="ruby-keyword kw">end</span>
712
- 130: <span class="ruby-keyword kw">end</span></pre>
710
+ <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 120</span>
711
+ 120: <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>)
712
+ 121: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scmCommand</span>
713
+ 122:
714
+ 123: <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>)
715
+ 124: <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>)
716
+ 125: <span class="ruby-node">`#{cmd}`</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@dryRun</span>
717
+ 126: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$?</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
718
+ 127: <span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Added #{fileName} to SCM&quot;</span>)
719
+ 128: <span class="ruby-keyword kw">else</span>
720
+ 129: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;SCM command #{cmd} failed: #{$?}&quot;</span>)
721
+ 130: <span class="ruby-keyword kw">end</span>
722
+ 131: <span class="ruby-keyword kw">end</span></pre>
713
723
  </div>
714
724
 
715
725
  </div>
@@ -743,40 +753,40 @@ from the beginnin of the line.
743
753
  <div class="method-source-code"
744
754
  id="cut-ut-source">
745
755
  <pre>
746
- <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 52</span>
747
- 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cutOut</span>(<span class="ruby-identifier">text</span>)
748
- 53: <span class="ruby-comment cmt"># Pattern for the section start marker</span>
749
- 54: <span class="ruby-identifier">mark1</span> = <span class="ruby-node">/(.*)# --------8&lt;--------8&lt;--------/</span>
750
- 55: <span class="ruby-comment cmt"># Pattern for the section end marker</span>
751
- 56: <span class="ruby-identifier">mark2</span> = <span class="ruby-node">/# --------&gt;8--------&gt;8--------/</span>
752
- 57: <span class="ruby-comment cmt"># The cutOut section</span>
753
- 58: <span class="ruby-identifier">cutOutText</span> = <span class="ruby-keyword kw">nil</span>
754
- 59: <span class="ruby-identifier">quoteLen</span> = <span class="ruby-value">0</span>
755
- 60: <span class="ruby-identifier">quoteMarks</span> = <span class="ruby-identifier">emptyLine</span> = <span class="ruby-value str">''</span>
756
- 61: <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>
757
- 62: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cutOutText</span>.<span class="ruby-identifier">nil?</span>
758
- 63: <span class="ruby-comment cmt"># We are looking for the line with the start marker (mark1)</span>
759
- 64: <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>))
760
- 65: <span class="ruby-identifier">quoteMarks</span> = <span class="ruby-identifier">matches</span>[<span class="ruby-value">1</span>]
761
- 66: <span class="ruby-identifier">quoteLen</span> = <span class="ruby-identifier">quoteMarks</span>.<span class="ruby-identifier">length</span>
762
- 67: <span class="ruby-comment cmt"># Special case for quoted empty lines without trailing spaces.</span>
763
- 68: <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>
764
- 69: <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>]
765
- 70: <span class="ruby-keyword kw">end</span>
766
- 71: <span class="ruby-keyword kw">else</span>
767
- 72: <span class="ruby-comment cmt"># Remove quote marks from the beginning of the line.</span>
768
- 73: <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>
769
- 74: <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>
770
- 75:
771
- 76: <span class="ruby-identifier">cutOutText</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>
772
- 77: <span class="ruby-comment cmt"># We are gathering text until we hit the end marker (mark2)</span>
773
- 78: <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>)
774
- 79: <span class="ruby-keyword kw">end</span>
775
- 80: <span class="ruby-keyword kw">end</span>
776
- 81:
777
- 82: <span class="ruby-comment cmt"># There are no cut markers. We just return the original text.</span>
778
- 83: <span class="ruby-identifier">text</span>
779
- 84: <span class="ruby-keyword kw">end</span></pre>
756
+ <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 53</span>
757
+ 53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cutOut</span>(<span class="ruby-identifier">text</span>)
758
+ 54: <span class="ruby-comment cmt"># Pattern for the section start marker</span>
759
+ 55: <span class="ruby-identifier">mark1</span> = <span class="ruby-node">/(.*)# --------8&lt;--------8&lt;--------/</span>
760
+ 56: <span class="ruby-comment cmt"># Pattern for the section end marker</span>
761
+ 57: <span class="ruby-identifier">mark2</span> = <span class="ruby-node">/# --------&gt;8--------&gt;8--------/</span>
762
+ 58: <span class="ruby-comment cmt"># The cutOut section</span>
763
+ 59: <span class="ruby-identifier">cutOutText</span> = <span class="ruby-keyword kw">nil</span>
764
+ 60: <span class="ruby-identifier">quoteLen</span> = <span class="ruby-value">0</span>
765
+ 61: <span class="ruby-identifier">quoteMarks</span> = <span class="ruby-identifier">emptyLine</span> = <span class="ruby-value str">''</span>
766
+ 62: <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>
767
+ 63: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cutOutText</span>.<span class="ruby-identifier">nil?</span>
768
+ 64: <span class="ruby-comment cmt"># We are looking for the line with the start marker (mark1)</span>
769
+ 65: <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>))
770
+ 66: <span class="ruby-identifier">quoteMarks</span> = <span class="ruby-identifier">matches</span>[<span class="ruby-value">1</span>]
771
+ 67: <span class="ruby-identifier">quoteLen</span> = <span class="ruby-identifier">quoteMarks</span>.<span class="ruby-identifier">length</span>
772
+ 68: <span class="ruby-comment cmt"># Special case for quoted empty lines without trailing spaces.</span>
773
+ 69: <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>
774
+ 70: <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>]
775
+ 71: <span class="ruby-keyword kw">end</span>
776
+ 72: <span class="ruby-keyword kw">else</span>
777
+ 73: <span class="ruby-comment cmt"># Remove quote marks from the beginning of the line.</span>
778
+ 74: <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>
779
+ 75: <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>
780
+ 76:
781
+ 77: <span class="ruby-identifier">cutOutText</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>
782
+ 78: <span class="ruby-comment cmt"># We are gathering text until we hit the end marker (mark2)</span>
783
+ 79: <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>)
784
+ 80: <span class="ruby-keyword kw">end</span>
785
+ 81: <span class="ruby-keyword kw">end</span>
786
+ 82:
787
+ 83: <span class="ruby-comment cmt"># There are no cut markers. We just return the original text.</span>
788
+ 84: <span class="ruby-identifier">text</span>
789
+ 85: <span class="ruby-keyword kw">end</span></pre>
780
790
  </div>
781
791
 
782
792
  </div>
@@ -807,12 +817,12 @@ from the beginnin of the line.
807
817
  <div class="method-source-code"
808
818
  id="error-source">
809
819
  <pre>
810
- <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 142</span>
811
- 142: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
812
- 143: <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>
813
- 144: <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>
814
- 145: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
815
- 146: <span class="ruby-keyword kw">end</span></pre>
820
+ <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 143</span>
821
+ 143: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">message</span>)
822
+ 144: <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>
823
+ 145: <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>
824
+ 146: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
825
+ 147: <span class="ruby-keyword kw">end</span></pre>
816
826
  </div>
817
827
 
818
828
  </div>
@@ -845,25 +855,82 @@ Convert all CR+LF and CR line breaks into LF line breaks.
845
855
  <div class="method-source-code"
846
856
  id="fix-ine-reaks-source">
847
857
  <pre>
848
- <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 87</span>
849
- 87: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fixLineBreaks</span>(<span class="ruby-identifier">text</span>)
850
- 88: <span class="ruby-identifier">out</span> = <span class="ruby-value str">''</span>
851
- 89: <span class="ruby-identifier">cr</span> = <span class="ruby-keyword kw">false</span>
852
- 90: <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>
853
- 91: <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>
854
- 92: <span class="ruby-comment cmt"># We don't know yet if it's a CR or CR+LF.</span>
855
- 93: <span class="ruby-identifier">cr</span> = <span class="ruby-keyword kw">true</span>
856
- 94: <span class="ruby-keyword kw">else</span>
857
- 95: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cr</span>
858
- 96: <span class="ruby-comment cmt"># If we only found a CR. Replace it with a LF.</span>
859
- 97: <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>
860
- 98: <span class="ruby-identifier">cr</span> = <span class="ruby-keyword kw">false</span>
861
- 99: <span class="ruby-keyword kw">end</span>
862
- 100: <span class="ruby-identifier">out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>
863
- 101: <span class="ruby-keyword kw">end</span>
864
- 102: <span class="ruby-keyword kw">end</span>
865
- 103: <span class="ruby-identifier">out</span>
866
- 104: <span class="ruby-keyword kw">end</span></pre>
858
+ <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 88</span>
859
+ 88: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fixLineBreaks</span>(<span class="ruby-identifier">text</span>)
860
+ 89: <span class="ruby-identifier">out</span> = <span class="ruby-value str">''</span>
861
+ 90: <span class="ruby-identifier">cr</span> = <span class="ruby-keyword kw">false</span>
862
+ 91: <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>
863
+ 92: <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>
864
+ 93: <span class="ruby-comment cmt"># We don't know yet if it's a CR or CR+LF.</span>
865
+ 94: <span class="ruby-identifier">cr</span> = <span class="ruby-keyword kw">true</span>
866
+ 95: <span class="ruby-keyword kw">else</span>
867
+ 96: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cr</span>
868
+ 97: <span class="ruby-comment cmt"># If we only found a CR. Replace it with a LF.</span>
869
+ 98: <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>
870
+ 99: <span class="ruby-identifier">cr</span> = <span class="ruby-keyword kw">false</span>
871
+ 100: <span class="ruby-keyword kw">end</span>
872
+ 101: <span class="ruby-identifier">out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>
873
+ 102: <span class="ruby-keyword kw">end</span>
874
+ 103: <span class="ruby-keyword kw">end</span>
875
+ 104: <span class="ruby-identifier">out</span>
876
+ 105: <span class="ruby-keyword kw">end</span></pre>
877
+ </div>
878
+
879
+ </div>
880
+
881
+
882
+
883
+
884
+ </div>
885
+
886
+
887
+ <div id="html-ail-ody-method" class="method-detail ">
888
+ <a name="method-i-htmlMailBody"></a>
889
+
890
+ <div class="method-heading">
891
+
892
+ <span class="method-name">htmlMailBody</span><span
893
+ class="method-args">(message)</span>
894
+ <span class="method-click-advice">click to toggle source</span>
895
+
896
+ </div>
897
+
898
+ <div class="method-description">
899
+
900
+
901
+
902
+
903
+
904
+ <div class="method-source-code"
905
+ id="html-ail-ody-source">
906
+ <pre>
907
+ <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 240</span>
908
+ 240: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">htmlMailBody</span>(<span class="ruby-identifier">message</span>)
909
+ 241: <span class="ruby-identifier">html</span> = <span class="ruby-constant">HTMLDocument</span>.<span class="ruby-identifier">new</span>
910
+ 242: <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>,
911
+ 243: <span class="ruby-value str">'description'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'TaskJuggler Report'</span>,
912
+ 244: <span class="ruby-value str">'keywords'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'taskjuggler, project, management'</span>)
913
+ 245:
914
+ 246: <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>]
915
+ 247: <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>)
916
+ 248: <span class="ruby-comment cmt"># Raise an error if we haven't found the data directory</span>
917
+ 249: <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>)
918
+ 250: <span class="ruby-identifier">dataDirError</span>(<span class="ruby-identifier">cssFileName</span>)
919
+ 251: <span class="ruby-keyword kw">end</span>
920
+ 252: <span class="ruby-identifier">cssFile</span> = <span class="ruby-constant">IO</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">cssFileName</span>)
921
+ 253: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cssFile</span>.<span class="ruby-identifier">empty?</span>
922
+ 254: <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>
923
+ 255: <span class="ruby-keyword kw">end</span>
924
+ 256: <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>,
925
+ 257: <span class="ruby-value str">'content'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'text/css; charset=utf-8'</span>)
926
+ 258: <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>))
927
+ 259: <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>)
928
+ 260:
929
+ 261: <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>))
930
+ 262: <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>
931
+ 263:
932
+ 264: <span class="ruby-identifier">html</span>.<span class="ruby-identifier">to_s</span>
933
+ 265: <span class="ruby-keyword kw">end</span></pre>
867
934
  </div>
868
935
 
869
936
  </div>
@@ -894,11 +961,11 @@ Convert all CR+LF and CR line breaks into LF line breaks.
894
961
  <div class="method-source-code"
895
962
  id="info-source">
896
963
  <pre>
897
- <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 132</span>
898
- 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">message</span>)
899
- 133: <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>
900
- 134: <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>
901
- 135: <span class="ruby-keyword kw">end</span></pre>
964
+ <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 133</span>
965
+ 133: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">message</span>)
966
+ 134: <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>
967
+ 135: <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>
968
+ 136: <span class="ruby-keyword kw">end</span></pre>
902
969
  </div>
903
970
 
904
971
  </div>
@@ -929,13 +996,13 @@ Convert all CR+LF and CR line breaks into LF line breaks.
929
996
  <div class="method-source-code"
930
997
  id="log-source">
931
998
  <pre>
932
- <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 148</span>
933
- 148: <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>)
934
- 149: <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>)
935
- 150: <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>
936
- 151: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-node">&quot;#{timeStamp} #{type} #{@appName}: #{message}\n&quot;</span>)
937
- 152: <span class="ruby-keyword kw">end</span>
938
- 153: <span class="ruby-keyword kw">end</span></pre>
999
+ <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 149</span>
1000
+ 149: <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>)
1001
+ 150: <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>)
1002
+ 151: <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>
1003
+ 152: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-node">&quot;#{timeStamp} #{type} #{@appName}: #{message}\n&quot;</span>)
1004
+ 153: <span class="ruby-keyword kw">end</span>
1005
+ 154: <span class="ruby-keyword kw">end</span></pre>
939
1006
  </div>
940
1007
 
941
1008
  </div>
@@ -966,64 +1033,121 @@ Convert all CR+LF and CR line breaks into LF line breaks.
966
1033
  <div class="method-source-code"
967
1034
  id="send-mail-source">
968
1035
  <pre>
969
- <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 155</span>
970
- 155: <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>,
971
- 156: <span class="ruby-identifier">inReplyTo</span> = <span class="ruby-keyword kw">nil</span>)
972
- 157: <span class="ruby-constant">Mail</span>.<span class="ruby-identifier">defaults</span> <span class="ruby-keyword kw">do</span>
973
- 158: <span class="ruby-identifier">delivery_method</span> <span class="ruby-value">:smtp</span>, {
974
- 159: <span class="ruby-value">:address</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@smtpServer</span>,
975
- 160: <span class="ruby-value">:port</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">25</span>
976
- 161: }
977
- 162: <span class="ruby-keyword kw">end</span>
978
- 163:
979
- 164: <span class="ruby-keyword kw">begin</span>
980
- 165: <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>
981
- 166: <span class="ruby-identifier">subject</span> <span class="ruby-identifier">subject</span>
982
- 167: <span class="ruby-identifier">text_part</span> <span class="ruby-keyword kw">do</span>
983
- 168: <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> } ]
984
- 169: <span class="ruby-identifier">content_transfer_encoding</span> <span class="ruby-value str">'quoted-printable'</span>
985
- 170: <span class="ruby-identifier">body</span> <span class="ruby-identifier">message</span>.<span class="ruby-identifier">to_quoted_printable</span>
986
- 171: <span class="ruby-keyword kw">end</span>
987
- 172: <span class="ruby-keyword kw">end</span>
988
- 173: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">to</span> = <span class="ruby-identifier">to</span>
989
- 174: <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>
990
- 175: <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>
991
- 176: <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>
992
- 177: <span class="ruby-identifier">mail</span>[<span class="ruby-value str">'X-TaskJuggler'</span>] = <span class="ruby-ivar">@appName</span>
993
- 178: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attachment</span>
994
- 179: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">add_file</span> ({
995
- 180: <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>),
996
- 181: <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>)
997
- 182: })
998
- 183: <span class="ruby-keyword kw">end</span>
999
- 184: <span class="ruby-comment cmt">#raise &quot;Mail header problem&quot; unless mail.errors.empty?</span>
1000
- 185: <span class="ruby-keyword kw">rescue</span>
1001
- 186: <span class="ruby-ivar">@emailFailure</span> = <span class="ruby-keyword kw">true</span>
1002
- 187: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Email processing failed: #{$!}&quot;</span>)
1003
- 188: <span class="ruby-keyword kw">end</span>
1004
- 189:
1005
- 190: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@dryRun</span>
1006
- 191: <span class="ruby-comment cmt"># For testing and debugging, we only print out the email.</span>
1007
- 192: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">to_s</span>
1008
- 193: <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>)
1009
- 194: <span class="ruby-keyword kw">else</span>
1010
- 195: <span class="ruby-comment cmt"># Actually send out the email via SMTP.</span>
1011
- 196: <span class="ruby-keyword kw">begin</span>
1012
- 197: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">deliver</span>
1013
- 198: <span class="ruby-keyword kw">rescue</span>
1014
- 199: <span class="ruby-comment cmt"># We try to send out another email. If that fails again, we abort</span>
1015
- 200: <span class="ruby-comment cmt"># without further attempts.</span>
1016
- 201: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@emailFailure</span>
1017
- 202: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'ERROR'</span>, <span class="ruby-node">&quot;Email double fault: #{$!}&quot;</span>)
1018
- 203: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
1019
- 204: <span class="ruby-keyword kw">else</span>
1020
- 205: <span class="ruby-ivar">@emailFailure</span> = <span class="ruby-keyword kw">true</span>
1021
- 206: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Email transmission failed: #{$!}&quot;</span>)
1022
- 207: <span class="ruby-keyword kw">end</span>
1023
- 208: <span class="ruby-keyword kw">end</span>
1024
- 209: <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>)
1025
- 210: <span class="ruby-keyword kw">end</span>
1026
- 211: <span class="ruby-keyword kw">end</span></pre>
1036
+ <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 174</span>
1037
+ 174: <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>,
1038
+ 175: <span class="ruby-identifier">inReplyTo</span> = <span class="ruby-keyword kw">nil</span>)
1039
+ 176: <span class="ruby-constant">Mail</span>.<span class="ruby-identifier">defaults</span> <span class="ruby-keyword kw">do</span>
1040
+ 177: <span class="ruby-identifier">delivery_method</span> <span class="ruby-value">:smtp</span>, {
1041
+ 178: <span class="ruby-value">:address</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@smtpServer</span>,
1042
+ 179: <span class="ruby-value">:port</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">25</span>
1043
+ 180: }
1044
+ 181: <span class="ruby-keyword kw">end</span>
1045
+ 182:
1046
+ 183: <span class="ruby-keyword kw">begin</span>
1047
+ 184: <span class="ruby-identifier">self_</span> = <span class="ruby-keyword kw">self</span>
1048
+ 185: <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>
1049
+ 186: <span class="ruby-identifier">subject</span> <span class="ruby-identifier">subject</span>
1050
+ 187: <span class="ruby-identifier">text_part</span> <span class="ruby-keyword kw">do</span>
1051
+ 188: <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> } ]
1052
+ 189: <span class="ruby-identifier">content_transfer_encoding</span> <span class="ruby-value str">'quoted-printable'</span>
1053
+ 190: <span class="ruby-identifier">body</span> <span class="ruby-identifier">message</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">to_quoted_printable</span>
1054
+ 191: <span class="ruby-keyword kw">end</span>
1055
+ 192: <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>)
1056
+ 193: <span class="ruby-identifier">html_part</span> <span class="ruby-keyword kw">do</span>
1057
+ 194: <span class="ruby-identifier">content_type</span> <span class="ruby-value str">'text/html; charset=UTF-8'</span>
1058
+ 195: <span class="ruby-identifier">content_transfer_encoding</span> <span class="ruby-value str">'quoted-printable'</span>
1059
+ 196: <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_quoted_printable</span>
1060
+ 197: <span class="ruby-keyword kw">end</span>
1061
+ 198: <span class="ruby-keyword kw">end</span>
1062
+ 199: <span class="ruby-keyword kw">end</span>
1063
+ 200: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">to</span> = <span class="ruby-identifier">to</span>
1064
+ 201: <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>
1065
+ 202: <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>
1066
+ 203: <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>
1067
+ 204: <span class="ruby-identifier">mail</span>[<span class="ruby-value str">'X-TaskJuggler'</span>] = <span class="ruby-ivar">@appName</span>
1068
+ 205: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attachment</span>
1069
+ 206: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">add_file</span> ({
1070
+ 207: <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>),
1071
+ 208: <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>)
1072
+ 209: })
1073
+ 210: <span class="ruby-keyword kw">end</span>
1074
+ 211: <span class="ruby-comment cmt">#raise &quot;Mail header problem&quot; unless mail.errors.empty?</span>
1075
+ 212: <span class="ruby-keyword kw">rescue</span>
1076
+ 213: <span class="ruby-ivar">@emailFailure</span> = <span class="ruby-keyword kw">true</span>
1077
+ 214: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Email processing failed: #{$!}&quot;</span>)
1078
+ 215: <span class="ruby-keyword kw">end</span>
1079
+ 216:
1080
+ 217: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@dryRun</span>
1081
+ 218: <span class="ruby-comment cmt"># For testing and debugging, we only print out the email.</span>
1082
+ 219: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">to_s</span>
1083
+ 220: <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>)
1084
+ 221: <span class="ruby-keyword kw">else</span>
1085
+ 222: <span class="ruby-comment cmt"># Actually send out the email via SMTP.</span>
1086
+ 223: <span class="ruby-keyword kw">begin</span>
1087
+ 224: <span class="ruby-identifier">mail</span>.<span class="ruby-identifier">deliver</span>
1088
+ 225: <span class="ruby-keyword kw">rescue</span>
1089
+ 226: <span class="ruby-comment cmt"># We try to send out another email. If that fails again, we abort</span>
1090
+ 227: <span class="ruby-comment cmt"># without further attempts.</span>
1091
+ 228: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@emailFailure</span>
1092
+ 229: <span class="ruby-identifier">log</span>(<span class="ruby-value str">'ERROR'</span>, <span class="ruby-node">&quot;Email double fault: #{$!}&quot;</span>)
1093
+ 230: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
1094
+ 231: <span class="ruby-keyword kw">else</span>
1095
+ 232: <span class="ruby-ivar">@emailFailure</span> = <span class="ruby-keyword kw">true</span>
1096
+ 233: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Email transmission failed: #{$!}&quot;</span>)
1097
+ 234: <span class="ruby-keyword kw">end</span>
1098
+ 235: <span class="ruby-keyword kw">end</span>
1099
+ 236: <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>)
1100
+ 237: <span class="ruby-keyword kw">end</span>
1101
+ 238: <span class="ruby-keyword kw">end</span></pre>
1102
+ </div>
1103
+
1104
+ </div>
1105
+
1106
+
1107
+
1108
+
1109
+ </div>
1110
+
1111
+
1112
+ <div id="send-ich-ext-mail-method" class="method-detail ">
1113
+ <a name="method-i-sendRichTextEmail"></a>
1114
+
1115
+ <div class="method-heading">
1116
+
1117
+ <span class="method-name">sendRichTextEmail</span><span
1118
+ class="method-args">(to, subject, message, attachment = nil, from = nil, inReplyTo = nil)</span>
1119
+ <span class="method-click-advice">click to toggle source</span>
1120
+
1121
+ </div>
1122
+
1123
+ <div class="method-description">
1124
+
1125
+ <p>
1126
+ Like SheetHandlerBase::sendEmail but interpretes the <em>message</em> as <a
1127
+ href="RichText.html">RichText</a> markup. The generated mail will have a
1128
+ text/plain and a text/html part.
1129
+ </p>
1130
+
1131
+
1132
+
1133
+ <div class="method-source-code"
1134
+ id="send-ich-ext-mail-source">
1135
+ <pre>
1136
+ <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 159</span>
1137
+ 159: <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>,
1138
+ 160: <span class="ruby-identifier">inReplyTo</span> = <span class="ruby-keyword kw">nil</span>)
1139
+ 161: <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>
1140
+ 162: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">lineWidth</span> = <span class="ruby-value">72</span>
1141
+ 163: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">indent</span> = <span class="ruby-value">2</span>
1142
+ 164: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">titleIndent</span> = <span class="ruby-value">0</span>
1143
+ 165: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">listIndent</span> = <span class="ruby-value">2</span>
1144
+ 166: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">parIndent</span> = <span class="ruby-value">2</span>
1145
+ 167: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">preIndent</span> = <span class="ruby-value">4</span>
1146
+ 168: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
1147
+ 169:
1148
+ 170: <span class="ruby-comment cmt"># Send out the email.</span>
1149
+ 171: <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>)
1150
+ 172: <span class="ruby-keyword kw">end</span></pre>
1027
1151
  </div>
1028
1152
 
1029
1153
  </div>
@@ -1054,19 +1178,19 @@ Convert all CR+LF and CR line breaks into LF line breaks.
1054
1178
  <div class="method-source-code"
1055
1179
  id="set-orking-ir-source">
1056
1180
  <pre>
1057
- <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 106</span>
1058
- 106: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setWorkingDir</span>
1059
- 107: <span class="ruby-comment cmt"># Make sure the user has provided a properly setup config file.</span>
1060
- 108: <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>
1061
- 109: <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>
1062
- 110:
1063
- 111: <span class="ruby-comment cmt"># Change into the specified working directory</span>
1064
- 112: <span class="ruby-keyword kw">begin</span>
1065
- 113: <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>
1066
- 114: <span class="ruby-keyword kw">rescue</span>
1067
- 115: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Working directory #{@workingDir} not found&quot;</span>)
1068
- 116: <span class="ruby-keyword kw">end</span>
1069
- 117: <span class="ruby-keyword kw">end</span></pre>
1181
+ <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 107</span>
1182
+ 107: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setWorkingDir</span>
1183
+ 108: <span class="ruby-comment cmt"># Make sure the user has provided a properly setup config file.</span>
1184
+ 109: <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>
1185
+ 110: <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>
1186
+ 111:
1187
+ 112: <span class="ruby-comment cmt"># Change into the specified working directory</span>
1188
+ 113: <span class="ruby-keyword kw">begin</span>
1189
+ 114: <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>
1190
+ 115: <span class="ruby-keyword kw">rescue</span>
1191
+ 116: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Working directory #{@workingDir} not found&quot;</span>)
1192
+ 117: <span class="ruby-keyword kw">end</span>
1193
+ 118: <span class="ruby-keyword kw">end</span></pre>
1070
1194
  </div>
1071
1195
 
1072
1196
  </div>
@@ -1097,11 +1221,11 @@ Convert all CR+LF and CR line breaks into LF line breaks.
1097
1221
  <div class="method-source-code"
1098
1222
  id="warning-source">
1099
1223
  <pre>
1100
- <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 137</span>
1101
- 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">message</span>)
1102
- 138: <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>
1103
- 139: <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>
1104
- 140: <span class="ruby-keyword kw">end</span></pre>
1224
+ <span class="ruby-comment cmt"># File lib/SheetHandlerBase.rb, line 138</span>
1225
+ 138: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">message</span>)
1226
+ 139: <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>
1227
+ 140: <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>
1228
+ 141: <span class="ruby-keyword kw">end</span></pre>
1105
1229
  </div>
1106
1230
 
1107
1231
  </div>