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
@@ -179,6 +179,10 @@
179
179
 
180
180
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
181
181
 
182
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
183
+
184
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
185
+
182
186
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
183
187
 
184
188
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -251,8 +255,6 @@
251
255
 
252
256
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
253
257
 
254
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
255
-
256
258
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
257
259
 
258
260
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -317,6 +319,8 @@
317
319
 
318
320
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
319
321
 
322
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
323
+
320
324
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
321
325
 
322
326
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -363,8 +367,6 @@
363
367
 
364
368
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
365
369
 
366
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
367
-
368
370
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
369
371
 
370
372
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -405,6 +407,8 @@
405
407
 
406
408
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
407
409
 
410
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
411
+
408
412
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
409
413
 
410
414
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -515,6 +519,8 @@
515
519
 
516
520
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
517
521
 
522
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
523
+
518
524
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
519
525
 
520
526
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -181,6 +181,10 @@
181
181
 
182
182
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
183
183
 
184
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
185
+
186
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
187
+
184
188
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
185
189
 
186
190
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -253,8 +257,6 @@
253
257
 
254
258
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
255
259
 
256
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
257
-
258
260
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
259
261
 
260
262
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -319,6 +321,8 @@
319
321
 
320
322
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
321
323
 
324
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
325
+
322
326
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
323
327
 
324
328
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -365,8 +369,6 @@
365
369
 
366
370
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
367
371
 
368
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
369
-
370
372
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
371
373
 
372
374
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -407,6 +409,8 @@
407
409
 
408
410
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
409
411
 
412
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
413
+
410
414
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
411
415
 
412
416
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -517,6 +521,8 @@
517
521
 
518
522
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
519
523
 
524
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
525
+
520
526
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
521
527
 
522
528
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -1095,38 +1101,37 @@ Add the text content of the cell to an Array of Arrays form of the table.
1095
1101
  <div class="method-source-code"
1096
1102
  id="to-csv-source">
1097
1103
  <pre>
1098
- <span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 140</span>
1099
- 140: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>(<span class="ruby-identifier">csv</span>)
1100
- 141: <span class="ruby-comment cmt"># We only support left indentation in CSV files as the spaces for right</span>
1101
- 142: <span class="ruby-comment cmt"># indentation will be disregarded by most applications.</span>
1102
- 143: <span class="ruby-identifier">indent</span> = <span class="ruby-ivar">@indent</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@alignment</span> <span class="ruby-operator">==</span> <span class="ruby-value">:left</span> <span class="ruby-operator">?</span> <span class="ruby-value str">' '</span> * <span class="ruby-ivar">@indent</span> <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>
1103
- 144: <span class="ruby-identifier">cell</span> =
1104
- 145: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@special</span>
1105
- 146: <span class="ruby-ivar">@special</span>.<span class="ruby-identifier">to_csv</span>
1106
- 147: <span class="ruby-identifier">indent</span> = <span class="ruby-keyword kw">nil</span>
1107
- 148: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@data</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@data</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
1108
- 149: <span class="ruby-ivar">@data</span>
1109
- 150: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@text</span>
1110
- 151: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'functionHandler'</span>) <span class="ruby-operator">&amp;&amp;</span>
1111
- 152: <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>)
1112
- 153: <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>).<span class="ruby-identifier">setQuery</span>(<span class="ruby-ivar">@query</span>)
1113
- 154: <span class="ruby-keyword kw">end</span>
1114
- 155: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">to_s</span>
1115
- 156: <span class="ruby-comment cmt"># Remove any trailing line breaks. These don't really make much</span>
1116
- 157: <span class="ruby-comment cmt"># sense in CSV files.</span>
1117
- 158: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">str</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\n\</span>
1118
- 159: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">chomp!</span>
1119
- 160: <span class="ruby-keyword kw">end</span>
1120
- 161: <span class="ruby-identifier">str</span>
1121
- 162: <span class="ruby-keyword kw">end</span>
1122
- 163:
1123
- 164: <span class="ruby-comment cmt"># Try to convert numbers and other types to their native Ruby type if</span>
1124
- 165: <span class="ruby-comment cmt"># they are supported by CSVFile.</span>
1125
- 166: <span class="ruby-identifier">native</span> = <span class="ruby-constant">CSVFile</span>.<span class="ruby-identifier">strToNative</span>(<span class="ruby-identifier">cell</span>)
1126
- 167:
1127
- 168: <span class="ruby-comment cmt"># Only for String objects, we add the indentation.</span>
1128
- 169: <span class="ruby-identifier">csv</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">native</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">native</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">native</span>)
1129
- 170: <span class="ruby-keyword kw">end</span></pre>
1104
+ <span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 142</span>
1105
+ 142: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>(<span class="ruby-identifier">csv</span>)
1106
+ 143: <span class="ruby-comment cmt"># We only support left indentation in CSV files as the spaces for right</span>
1107
+ 144: <span class="ruby-comment cmt"># indentation will be disregarded by most applications.</span>
1108
+ 145: <span class="ruby-identifier">indent</span> = <span class="ruby-ivar">@indent</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@alignment</span> <span class="ruby-operator">==</span> <span class="ruby-value">:left</span> <span class="ruby-operator">?</span> <span class="ruby-value str">' '</span> * <span class="ruby-ivar">@indent</span> <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>
1109
+ 146: <span class="ruby-identifier">cell</span> =
1110
+ 147: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@special</span>
1111
+ 148: <span class="ruby-ivar">@special</span>.<span class="ruby-identifier">to_csv</span>
1112
+ 149: <span class="ruby-identifier">indent</span> = <span class="ruby-keyword kw">nil</span>
1113
+ 150: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@data</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@data</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
1114
+ 151: <span class="ruby-ivar">@data</span>
1115
+ 152: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@text</span>
1116
+ 153: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'functionHandler'</span>)
1117
+ 154: <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">setQuery</span>(<span class="ruby-ivar">@query</span>)
1118
+ 155: <span class="ruby-keyword kw">end</span>
1119
+ 156: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">to_s</span>
1120
+ 157: <span class="ruby-comment cmt"># Remove any trailing line breaks. These don't really make much</span>
1121
+ 158: <span class="ruby-comment cmt"># sense in CSV files.</span>
1122
+ 159: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">str</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\n\</span>
1123
+ 160: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">chomp!</span>
1124
+ 161: <span class="ruby-keyword kw">end</span>
1125
+ 162: <span class="ruby-identifier">str</span>
1126
+ 163: <span class="ruby-keyword kw">end</span>
1127
+ 164:
1128
+ 165: <span class="ruby-comment cmt"># Try to convert numbers and other types to their native Ruby type if</span>
1129
+ 166: <span class="ruby-comment cmt"># they are supported by CSVFile.</span>
1130
+ 167: <span class="ruby-identifier">native</span> = <span class="ruby-constant">CSVFile</span>.<span class="ruby-identifier">strToNative</span>(<span class="ruby-identifier">cell</span>)
1131
+ 168:
1132
+ 169: <span class="ruby-comment cmt"># Only for String objects, we add the indentation.</span>
1133
+ 170: <span class="ruby-identifier">csv</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">native</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">indent</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">native</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">native</span>)
1134
+ 171: <span class="ruby-keyword kw">end</span></pre>
1130
1135
  </div>
1131
1136
 
1132
1137
  </div>
@@ -1181,33 +1186,35 @@ Turn the abstract cell representation into an HTML element tree.
1181
1186
  108:
1182
1187
  109: <span class="ruby-comment cmt"># Insert a padding cell for the left side indentation.</span>
1183
1188
  110: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@leftIndent</span>
1184
- 111: <span class="ruby-identifier">row</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">'td'</span>, <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;width:#{@leftIndent}px; &quot;</span>)
1185
- 112: <span class="ruby-keyword kw">end</span>
1186
- 113: <span class="ruby-identifier">row</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">cellIcon</span>(<span class="ruby-identifier">cell</span>)
1187
- 114:
1188
- 115: <span class="ruby-identifier">labelDiv</span>, <span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">cellLabel</span>
1189
- 116: <span class="ruby-identifier">row</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">labelDiv</span>
1190
- 117:
1191
- 118: <span class="ruby-comment cmt"># Overwrite the tooltip if the user has specified a custom tooltip.</span>
1192
- 119: <span class="ruby-identifier">tooltip</span> = <span class="ruby-ivar">@tooltip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tooltip</span>
1193
- 120: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tooltip</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@selfcontained</span>
1194
- 121: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@showTooltipHint</span>
1195
- 122: <span class="ruby-identifier">row</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>))
1196
- 123: <span class="ruby-identifier">td</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tIcon</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'img'</span>, <span class="ruby-value str">'src'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'icons/details.png'</span>,
1197
- 124: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tj_table_cell_tooltip'</span>))
1198
- 125: <span class="ruby-identifier">addHtmlTooltip</span>(<span class="ruby-identifier">tooltip</span>, <span class="ruby-identifier">td</span>, <span class="ruby-identifier">cell</span>)
1199
- 126: <span class="ruby-keyword kw">else</span>
1200
- 127: <span class="ruby-identifier">addHtmlTooltip</span>(<span class="ruby-identifier">tooltip</span>, <span class="ruby-identifier">cell</span>)
1201
- 128: <span class="ruby-keyword kw">end</span>
1202
- 129: <span class="ruby-keyword kw">end</span>
1203
- 130:
1204
- 131: <span class="ruby-comment cmt"># Insert a padding cell for the right side indentation.</span>
1205
- 132: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@rightIndent</span>
1206
- 133: <span class="ruby-identifier">row</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">'td'</span>, <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;width:#{@rightIndent}px; &quot;</span>)
1207
- 134: <span class="ruby-keyword kw">end</span>
1208
- 135:
1209
- 136: <span class="ruby-identifier">cell</span>
1210
- 137: <span class="ruby-keyword kw">end</span></pre>
1189
+ 111: <span class="ruby-identifier">row</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">'td'</span>, <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;min-width:#{@leftIndent}px; &quot;</span> <span class="ruby-operator">+</span>
1190
+ 112: <span class="ruby-node">&quot;width:#{@leftIndent}px; &quot;</span>)
1191
+ 113: <span class="ruby-keyword kw">end</span>
1192
+ 114: <span class="ruby-identifier">row</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">cellIcon</span>(<span class="ruby-identifier">cell</span>)
1193
+ 115:
1194
+ 116: <span class="ruby-identifier">labelDiv</span>, <span class="ruby-identifier">tooltip</span> = <span class="ruby-identifier">cellLabel</span>
1195
+ 117: <span class="ruby-identifier">row</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">labelDiv</span>
1196
+ 118:
1197
+ 119: <span class="ruby-comment cmt"># Overwrite the tooltip if the user has specified a custom tooltip.</span>
1198
+ 120: <span class="ruby-identifier">tooltip</span> = <span class="ruby-ivar">@tooltip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tooltip</span>
1199
+ 121: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tooltip</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@selfcontained</span>
1200
+ 122: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@showTooltipHint</span>
1201
+ 123: <span class="ruby-identifier">row</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>))
1202
+ 124: <span class="ruby-identifier">td</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">'img'</span>, <span class="ruby-value str">'src'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'icons/details.png'</span>,
1203
+ 125: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tj_table_cell_tooltip'</span>)
1204
+ 126: <span class="ruby-identifier">addHtmlTooltip</span>(<span class="ruby-identifier">tooltip</span>, <span class="ruby-identifier">td</span>, <span class="ruby-identifier">cell</span>)
1205
+ 127: <span class="ruby-keyword kw">else</span>
1206
+ 128: <span class="ruby-identifier">addHtmlTooltip</span>(<span class="ruby-identifier">tooltip</span>, <span class="ruby-identifier">cell</span>)
1207
+ 129: <span class="ruby-keyword kw">end</span>
1208
+ 130: <span class="ruby-keyword kw">end</span>
1209
+ 131:
1210
+ 132: <span class="ruby-comment cmt"># Insert a padding cell for the right side indentation.</span>
1211
+ 133: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@rightIndent</span>
1212
+ 134: <span class="ruby-identifier">row</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">'td'</span>, <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;min-width:#{@rightIndent}px; &quot;</span> <span class="ruby-operator">+</span>
1213
+ 135: <span class="ruby-node">&quot;width:#{@rightIndent}px; &quot;</span>)
1214
+ 136: <span class="ruby-keyword kw">end</span>
1215
+ 137:
1216
+ 138: <span class="ruby-identifier">cell</span>
1217
+ 139: <span class="ruby-keyword kw">end</span></pre>
1211
1218
  </div>
1212
1219
 
1213
1220
  </div>
@@ -1249,27 +1256,26 @@ Turn the abstract cell representation into an HTML element tree.
1249
1256
  299: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tooltip</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@selfcontained</span>
1250
1257
  300:
1251
1258
  301: <span class="ruby-identifier">hook</span> = <span class="ruby-identifier">trigger</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hook</span>.<span class="ruby-identifier">nil?</span>
1252
- 302: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'functionHandler'</span>) <span class="ruby-operator">&amp;&amp;</span>
1253
- 303: <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>)
1254
- 304: <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>).<span class="ruby-identifier">setQuery</span>(<span class="ruby-ivar">@query</span>)
1255
- 305: <span class="ruby-keyword kw">end</span>
1256
- 306: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span>
1257
- 307: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'name'</span>
1258
- 308: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
1259
- 309: <span class="ruby-identifier">title</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_s</span>
1260
- 310: <span class="ruby-keyword kw">else</span>
1261
- 311: <span class="ruby-identifier">title</span> = <span class="ruby-value str">''</span>
1262
- 312: <span class="ruby-keyword kw">end</span>
1263
- 313: <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'onclick'</span>] = <span class="ruby-node">&quot;TagToTip('ID#{trigger.object_id}', &quot;</span> <span class="ruby-operator">+</span>
1264
- 314: <span class="ruby-node">&quot;TITLE, '#{title}')&quot;</span>
1265
- 315: <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'style'</span>] = <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'style'</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'style'</span>] <span class="ruby-operator">:</span> <span class="ruby-value str">'cursor:help; '</span>
1266
- 316: <span class="ruby-identifier">hook</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">ltDiv</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>,
1267
- 317: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tj_tooltip_box'</span>,
1268
- 318: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'cursor:help'</span>,
1269
- 319: <span class="ruby-value str">'id'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;ID#{trigger.object_id}&quot;</span>))
1270
- 320: <span class="ruby-identifier">ltDiv</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_html'</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">to_html</span> <span class="ruby-operator">:</span>
1271
- 321: <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">tooltip</span>))
1272
- 322: <span class="ruby-keyword kw">end</span></pre>
1259
+ 302: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'functionHandler'</span>)
1260
+ 303: <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">setQuery</span>(<span class="ruby-ivar">@query</span>)
1261
+ 304: <span class="ruby-keyword kw">end</span>
1262
+ 305: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span>
1263
+ 306: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-value str">'name'</span>
1264
+ 307: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span>
1265
+ 308: <span class="ruby-identifier">title</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_s</span>
1266
+ 309: <span class="ruby-keyword kw">else</span>
1267
+ 310: <span class="ruby-identifier">title</span> = <span class="ruby-value str">''</span>
1268
+ 311: <span class="ruby-keyword kw">end</span>
1269
+ 312: <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'onclick'</span>] = <span class="ruby-node">&quot;TagToTip('ID#{trigger.object_id}', &quot;</span> <span class="ruby-operator">+</span>
1270
+ 313: <span class="ruby-node">&quot;TITLE, '#{title}')&quot;</span>
1271
+ 314: <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'style'</span>] = <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'style'</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">trigger</span>[<span class="ruby-value str">'style'</span>] <span class="ruby-operator">:</span> <span class="ruby-value str">'cursor:help; '</span>
1272
+ 315: <span class="ruby-identifier">hook</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">ltDiv</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>,
1273
+ 316: <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tj_tooltip_box'</span>,
1274
+ 317: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'cursor:help'</span>,
1275
+ 318: <span class="ruby-value str">'id'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;ID#{trigger.object_id}&quot;</span>))
1276
+ 319: <span class="ruby-identifier">ltDiv</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_html'</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">tooltip</span>.<span class="ruby-identifier">to_html</span> <span class="ruby-operator">:</span>
1277
+ 320: <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">tooltip</span>))
1278
+ 321: <span class="ruby-keyword kw">end</span></pre>
1273
1279
  </div>
1274
1280
 
1275
1281
  </div>
@@ -1300,20 +1306,20 @@ Turn the abstract cell representation into an HTML element tree.
1300
1306
  <div class="method-source-code"
1301
1307
  id="calculate-ndentation-source">
1302
1308
  <pre>
1303
- <span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 174</span>
1304
- 174: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">calculateIndentation</span>
1305
- 175: <span class="ruby-comment cmt"># In tree sorting mode, some cells have to be indented to reflect the</span>
1306
- 176: <span class="ruby-comment cmt"># tree nesting structure. The indentation is achieved with padding cells</span>
1307
- 177: <span class="ruby-comment cmt"># and needs to be applied to the proper side depending on the alignment.</span>
1308
- 178: <span class="ruby-ivar">@leftIndent</span> = <span class="ruby-ivar">@rightIndent</span> = <span class="ruby-value">0</span>
1309
- 179: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@indent</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@alignment</span> <span class="ruby-operator">!=</span> <span class="ruby-value">:center</span>
1310
- 180: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@alignment</span> <span class="ruby-operator">==</span> <span class="ruby-value">:left</span>
1311
- 181: <span class="ruby-ivar">@leftIndent</span> = <span class="ruby-ivar">@indent</span> * <span class="ruby-value">8</span>
1312
- 182: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@alignment</span> <span class="ruby-operator">==</span> <span class="ruby-value">:right</span>
1313
- 183: <span class="ruby-ivar">@rightIndent</span> = (<span class="ruby-ivar">@line</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">maxIndent</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@indent</span>) * <span class="ruby-value">8</span>
1314
- 184: <span class="ruby-keyword kw">end</span>
1315
- 185: <span class="ruby-keyword kw">end</span>
1316
- 186: <span class="ruby-keyword kw">end</span></pre>
1309
+ <span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 175</span>
1310
+ 175: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">calculateIndentation</span>
1311
+ 176: <span class="ruby-comment cmt"># In tree sorting mode, some cells have to be indented to reflect the</span>
1312
+ 177: <span class="ruby-comment cmt"># tree nesting structure. The indentation is achieved with padding cells</span>
1313
+ 178: <span class="ruby-comment cmt"># and needs to be applied to the proper side depending on the alignment.</span>
1314
+ 179: <span class="ruby-ivar">@leftIndent</span> = <span class="ruby-ivar">@rightIndent</span> = <span class="ruby-value">0</span>
1315
+ 180: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@indent</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@alignment</span> <span class="ruby-operator">!=</span> <span class="ruby-value">:center</span>
1316
+ 181: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@alignment</span> <span class="ruby-operator">==</span> <span class="ruby-value">:left</span>
1317
+ 182: <span class="ruby-ivar">@leftIndent</span> = <span class="ruby-ivar">@indent</span> * <span class="ruby-value">8</span>
1318
+ 183: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@alignment</span> <span class="ruby-operator">==</span> <span class="ruby-value">:right</span>
1319
+ 184: <span class="ruby-ivar">@rightIndent</span> = (<span class="ruby-ivar">@line</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">maxIndent</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@indent</span>) * <span class="ruby-value">8</span>
1320
+ 185: <span class="ruby-keyword kw">end</span>
1321
+ 186: <span class="ruby-keyword kw">end</span>
1322
+ 187: <span class="ruby-keyword kw">end</span></pre>
1317
1323
  </div>
1318
1324
 
1319
1325
  </div>
@@ -1344,18 +1350,18 @@ Turn the abstract cell representation into an HTML element tree.
1344
1350
  <div class="method-source-code"
1345
1351
  id="cell-con-source">
1346
1352
  <pre>
1347
- <span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 198</span>
1348
- 198: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cellIcon</span>(<span class="ruby-identifier">cell</span>)
1349
- 199: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@icon</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@selfcontained</span>
1350
- 200: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tj_table_cell_icon'</span>)
1351
- 201: <span class="ruby-identifier">td</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">'img'</span>, <span class="ruby-value str">'src'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;icons/#{@icon}.png&quot;</span>,
1352
- 202: <span class="ruby-value str">'alt'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;Icon&quot;</span>)
1353
- 203: <span class="ruby-identifier">addHtmlTooltip</span>(<span class="ruby-ivar">@iconTooltip</span>, <span class="ruby-identifier">td</span>, <span class="ruby-identifier">cell</span>)
1354
- 204: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">td</span>
1355
- 205: <span class="ruby-keyword kw">end</span>
1356
- 206:
1357
- 207: <span class="ruby-keyword kw">nil</span>
1358
- 208: <span class="ruby-keyword kw">end</span></pre>
1353
+ <span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 199</span>
1354
+ 199: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cellIcon</span>(<span class="ruby-identifier">cell</span>)
1355
+ 200: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@icon</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@selfcontained</span>
1356
+ 201: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tj_table_cell_icon'</span>)
1357
+ 202: <span class="ruby-identifier">td</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">'img'</span>, <span class="ruby-value str">'src'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;icons/#{@icon}.png&quot;</span>,
1358
+ 203: <span class="ruby-value str">'alt'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;Icon&quot;</span>)
1359
+ 204: <span class="ruby-identifier">addHtmlTooltip</span>(<span class="ruby-ivar">@iconTooltip</span>, <span class="ruby-identifier">td</span>, <span class="ruby-identifier">cell</span>)
1360
+ 205: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">td</span>
1361
+ 206: <span class="ruby-keyword kw">end</span>
1362
+ 207:
1363
+ 208: <span class="ruby-keyword kw">nil</span>
1364
+ 209: <span class="ruby-keyword kw">end</span></pre>
1359
1365
  </div>
1360
1366
 
1361
1367
  </div>
@@ -1386,50 +1392,49 @@ Turn the abstract cell representation into an HTML element tree.
1386
1392
  <div class="method-source-code"
1387
1393
  id="cell-abel-source">
1388
1394
  <pre>
1389
- <span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 210</span>
1390
- 210: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cellLabel</span>
1391
- 211: <span class="ruby-comment cmt"># If we have a RichText content and a width limit, we enable line</span>
1392
- 212: <span class="ruby-comment cmt"># wrapping.</span>
1393
- 213: <span class="ruby-comment cmt"># Overfl. Wrap. Height Width</span>
1394
- 214: <span class="ruby-comment cmt"># Fixed Height: x - x -</span>
1395
- 215: <span class="ruby-comment cmt"># Fixed Width: x x - x</span>
1396
- 216: <span class="ruby-comment cmt"># Both: x - x x</span>
1397
- 217: <span class="ruby-comment cmt"># None: - x - -</span>
1398
- 218: <span class="ruby-identifier">fixedHeight</span> = <span class="ruby-ivar">@line</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">equiLines</span>
1399
- 219: <span class="ruby-identifier">fixedWidth</span> = <span class="ruby-operator">!</span><span class="ruby-ivar">@width</span>.<span class="ruby-identifier">nil?</span>
1400
- 220: <span class="ruby-identifier">style</span> = <span class="ruby-value str">&quot;overflow:hidden; &quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixedHeight</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">fixedWidth</span>
1401
- 221: <span class="ruby-identifier">style</span> = <span class="ruby-node">&quot;white-space:#{fixedWidth &amp;&amp; !fixedHeight ?
1402
- 222: 'normal' : 'nowrap'}; &quot;</span>
1403
- 223: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixedHeight</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">fixedWidth</span>
1404
- 224: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;height:#{@line.height - 3}px; &quot;</span>
1405
- 225: <span class="ruby-keyword kw">end</span>
1406
- 226: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixedWidth</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">fixedHeight</span>
1407
- 227: <span class="ruby-comment cmt"># @width does not really determine the column width. It only</span>
1408
- 228: <span class="ruby-comment cmt"># determines the with of the text label. Padding and icons can make</span>
1409
- 229: <span class="ruby-comment cmt"># the column significantly wider.</span>
1410
- 230: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;max-width:#{@width}px; &quot;</span>
1411
- 231: <span class="ruby-keyword kw">end</span>
1412
- 232: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'font-weight:bold; '</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@bold</span>
1413
- 233: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;font-size: #{@fontSize}px; &quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fontSize</span>
1414
- 234: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@fontColor</span>
1415
- 235: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;color:#{@fontColor}; &quot;</span>
1416
- 236: <span class="ruby-keyword kw">end</span>
1417
- 237:
1418
- 238: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">empty?</span>
1419
- 239:
1420
- 240: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tj_table_cell_label'</span>,
1421
- 241: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">style</span>)
1422
- 242: <span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1423
- 243:
1424
- 244: <span class="ruby-comment cmt"># @text can be a String or a RichText (with or without embedded</span>
1425
- 245: <span class="ruby-comment cmt"># queries). To find out if @text has multiple lines, we need to expand</span>
1426
- 246: <span class="ruby-comment cmt"># it and convert it to a plain text again.</span>
1427
- 247: <span class="ruby-identifier">textAsString</span> =
1428
- 248: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RichTextIntermediate</span>)
1429
- 249: <span class="ruby-comment cmt"># @text is a RichText.</span>
1430
- 250: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'functionHandler'</span>) <span class="ruby-operator">&amp;&amp;</span>
1431
- 251: <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>)
1432
- 252: <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">functionHandler</span>(<span class="ruby-value str">'query'</span>).<span class="ruby-identifier">setQuery</span>(<span class="ruby-ivar">@query</span>)
1395
+ <span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 211</span>
1396
+ 211: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cellLabel</span>
1397
+ 212: <span class="ruby-comment cmt"># If we have a RichText content and a width limit, we enable line</span>
1398
+ 213: <span class="ruby-comment cmt"># wrapping.</span>
1399
+ 214: <span class="ruby-comment cmt"># Overfl. Wrap. Height Width</span>
1400
+ 215: <span class="ruby-comment cmt"># Fixed Height: x - x -</span>
1401
+ 216: <span class="ruby-comment cmt"># Fixed Width: x x - x</span>
1402
+ 217: <span class="ruby-comment cmt"># Both: x - x x</span>
1403
+ 218: <span class="ruby-comment cmt"># None: - x - -</span>
1404
+ 219: <span class="ruby-identifier">fixedHeight</span> = <span class="ruby-ivar">@line</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">equiLines</span>
1405
+ 220: <span class="ruby-identifier">fixedWidth</span> = <span class="ruby-operator">!</span><span class="ruby-ivar">@width</span>.<span class="ruby-identifier">nil?</span>
1406
+ 221: <span class="ruby-identifier">style</span> = <span class="ruby-value str">&quot;overflow:hidden; &quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixedHeight</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">fixedWidth</span>
1407
+ 222: <span class="ruby-identifier">style</span> = <span class="ruby-node">&quot;white-space:#{fixedWidth &amp;&amp; !fixedHeight ?
1408
+ 223: 'normal' : 'nowrap'}; &quot;</span>
1409
+ 224: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixedHeight</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">fixedWidth</span>
1410
+ 225: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;height:#{@line.height - 3}px; &quot;</span>
1411
+ 226: <span class="ruby-keyword kw">end</span>
1412
+ 227: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixedWidth</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">fixedHeight</span>
1413
+ 228: <span class="ruby-comment cmt"># @width does not really determine the column width. It only</span>
1414
+ 229: <span class="ruby-comment cmt"># determines the with of the text label. Padding and icons can make</span>
1415
+ 230: <span class="ruby-comment cmt"># the column significantly wider.</span>
1416
+ 231: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;max-width:#{@width}px; &quot;</span>
1417
+ 232: <span class="ruby-keyword kw">end</span>
1418
+ 233: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'font-weight:bold; '</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@bold</span>
1419
+ 234: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;font-size: #{@fontSize}px; &quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fontSize</span>
1420
+ 235: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@fontColor</span>
1421
+ 236: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;color:#{@fontColor}; &quot;</span>
1422
+ 237: <span class="ruby-keyword kw">end</span>
1423
+ 238:
1424
+ 239: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">empty?</span>
1425
+ 240:
1426
+ 241: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'tj_table_cell_label'</span>,
1427
+ 242: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">style</span>)
1428
+ 243: <span class="ruby-identifier">tooltip</span> = <span class="ruby-keyword kw">nil</span>
1429
+ 244:
1430
+ 245: <span class="ruby-comment cmt"># @text can be a String or a RichText (with or without embedded</span>
1431
+ 246: <span class="ruby-comment cmt"># queries). To find out if @text has multiple lines, we need to expand</span>
1432
+ 247: <span class="ruby-comment cmt"># it and convert it to a plain text again.</span>
1433
+ 248: <span class="ruby-identifier">textAsString</span> =
1434
+ 249: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RichTextIntermediate</span>)
1435
+ 250: <span class="ruby-comment cmt"># @text is a RichText.</span>
1436
+ 251: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'functionHandler'</span>)
1437
+ 252: <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">setQuery</span>(<span class="ruby-ivar">@query</span>)
1433
1438
  253: <span class="ruby-keyword kw">end</span>
1434
1439
  254: <span class="ruby-ivar">@text</span>.<span class="ruby-identifier">to_s</span>
1435
1440
  255: <span class="ruby-keyword kw">else</span>
@@ -1485,15 +1490,15 @@ Determine cell style
1485
1490
  <div class="method-source-code"
1486
1491
  id="cell-tyle-source">
1487
1492
  <pre>
1488
- <span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 189</span>
1489
- 189: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cellStyle</span>
1490
- 190: <span class="ruby-identifier">style</span> = <span class="ruby-node">&quot;text-align:#{@alignment.to_s}; &quot;</span>
1491
- 191: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@line</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">equiLines</span>
1492
- 192: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;height:#{@line.height - 7}px; &quot;</span>
1493
- 193: <span class="ruby-keyword kw">end</span>
1494
- 194:
1495
- 195: <span class="ruby-identifier">style</span>
1496
- 196: <span class="ruby-keyword kw">end</span></pre>
1493
+ <span class="ruby-comment cmt"># File lib/reports/ReportTableCell.rb, line 190</span>
1494
+ 190: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cellStyle</span>
1495
+ 191: <span class="ruby-identifier">style</span> = <span class="ruby-node">&quot;text-align:#{@alignment.to_s}; &quot;</span>
1496
+ 192: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@line</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">table</span>.<span class="ruby-identifier">equiLines</span>
1497
+ 193: <span class="ruby-identifier">style</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;height:#{@line.height - 7}px; &quot;</span>
1498
+ 194: <span class="ruby-keyword kw">end</span>
1499
+ 195:
1500
+ 196: <span class="ruby-identifier">style</span>
1501
+ 197: <span class="ruby-keyword kw">end</span></pre>
1497
1502
  </div>
1498
1503
 
1499
1504
  </div>
@@ -1541,7 +1546,7 @@ that fits the column.
1541
1546
  288: <span class="ruby-comment cmt"># Assuming an average character width of 8 pixels</span>
1542
1547
  289: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@width</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">text</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> (<span class="ruby-ivar">@width</span> <span class="ruby-operator">/</span> <span class="ruby-value">8</span>))
1543
1548
  290: <span class="ruby-identifier">text</span> = <span class="ruby-identifier">text</span>[<span class="ruby-value">0</span>, <span class="ruby-ivar">@width</span> <span class="ruby-operator">/</span> <span class="ruby-value">8</span>]
1544
- 291: <span class="ruby-identifier">modified</span> = <span class="ruby-identifier">shortened</span> = <span class="ruby-keyword kw">true</span>
1549
+ 291: <span class="ruby-identifier">modified</span> = <span class="ruby-keyword kw">true</span>
1545
1550
  292: <span class="ruby-keyword kw">end</span>
1546
1551
  293: <span class="ruby-comment cmt"># Add three dots to show that there is more info available.</span>
1547
1552
  294: <span class="ruby-identifier">text</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;...&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">modified</span>