taskjuggler 0.0.8 → 0.0.9

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 (613) hide show
  1. data/CHANGELOG +1144 -2047
  2. data/README +1 -1
  3. data/Rakefile +6 -6
  4. data/data/css/tjmanual.css +20 -0
  5. data/data/css/tjreport.css +7 -6
  6. data/doc/AppConfig.html +136 -130
  7. data/doc/Arguments.html +46 -40
  8. data/doc/CHANGELOG.html +1162 -2057
  9. data/doc/COPYING.html +8 -2
  10. data/doc/Object.html +205 -199
  11. data/doc/README.html +9 -3
  12. data/doc/RuntimeConfig.html +75 -69
  13. data/doc/String.html +69 -63
  14. data/doc/TaskJuggler.html +350 -291
  15. data/doc/TaskJuggler/Account.html +26 -20
  16. data/doc/TaskJuggler/AccountAttribute.html +24 -18
  17. data/doc/TaskJuggler/AccountScenario.html +24 -18
  18. data/doc/TaskJuggler/Allocation.html +74 -68
  19. data/doc/TaskJuggler/AllocationAttribute.html +54 -48
  20. data/doc/TaskJuggler/AttributeBase.html +172 -93
  21. data/doc/TaskJuggler/AttributeDefinition.html +22 -16
  22. data/doc/TaskJuggler/AttributeOverwrite.html +586 -0
  23. data/doc/TaskJuggler/BatchProcessor.html +263 -257
  24. data/doc/TaskJuggler/Booking.html +44 -38
  25. data/doc/TaskJuggler/BookingListAttribute.html +25 -21
  26. data/doc/TaskJuggler/BooleanAttribute.html +24 -18
  27. data/doc/TaskJuggler/CSVFile.html +193 -187
  28. data/doc/TaskJuggler/CellSettingPattern.html +13 -7
  29. data/doc/TaskJuggler/CellSettingPatternList.html +25 -19
  30. data/doc/TaskJuggler/Charge.html +49 -43
  31. data/doc/TaskJuggler/ChargeListAttribute.html +21 -15
  32. data/doc/TaskJuggler/ChargeSet.html +94 -88
  33. data/doc/TaskJuggler/ChargeSetListAttribute.html +29 -25
  34. data/doc/TaskJuggler/CollisionDetector.html +142 -136
  35. data/doc/TaskJuggler/ColumnListAttribute.html +21 -17
  36. data/doc/TaskJuggler/ColumnTable.html +50 -44
  37. data/doc/TaskJuggler/Daemon.html +71 -50
  38. data/doc/TaskJuggler/DataCache.html +110 -58
  39. data/doc/TaskJuggler/DataCacheEntry.html +22 -16
  40. data/doc/TaskJuggler/DateAttribute.html +24 -18
  41. data/doc/TaskJuggler/DefinitionListAttribute.html +12 -6
  42. data/doc/TaskJuggler/DependencyListAttribute.html +29 -25
  43. data/doc/TaskJuggler/DurationAttribute.html +25 -19
  44. data/doc/TaskJuggler/FileList.html +25 -19
  45. data/doc/TaskJuggler/FileRecord.html +17 -11
  46. data/doc/TaskJuggler/FixnumAttribute.html +16 -10
  47. data/doc/TaskJuggler/FlagListAttribute.html +25 -21
  48. data/doc/TaskJuggler/FloatAttribute.html +20 -14
  49. data/doc/TaskJuggler/FormatListAttribute.html +17 -11
  50. data/doc/TaskJuggler/GanttChart.html +242 -236
  51. data/doc/TaskJuggler/GanttContainer.html +71 -67
  52. data/doc/TaskJuggler/GanttHeader.html +113 -107
  53. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -20
  54. data/doc/TaskJuggler/GanttLine.html +217 -210
  55. data/doc/TaskJuggler/GanttLoadStack.html +89 -83
  56. data/doc/TaskJuggler/GanttMilestone.html +11 -6
  57. data/doc/TaskJuggler/GanttRouter.html +194 -186
  58. data/doc/TaskJuggler/GanttTaskBar.html +41 -34
  59. data/doc/TaskJuggler/HTMLDocument.html +52 -46
  60. data/doc/TaskJuggler/HTMLGraphics.html +58 -52
  61. data/doc/TaskJuggler/Interval.html +90 -84
  62. data/doc/TaskJuggler/IntervalList.html +777 -0
  63. data/doc/TaskJuggler/IntervalListAttribute.html +29 -25
  64. data/doc/TaskJuggler/JobInfo.html +36 -30
  65. data/doc/TaskJuggler/Journal.html +188 -177
  66. data/doc/TaskJuggler/JournalEntry.html +36 -30
  67. data/doc/TaskJuggler/JournalEntryList.html +88 -82
  68. data/doc/TaskJuggler/KeywordArray.html +12 -6
  69. data/doc/TaskJuggler/KeywordDocumentation.html +512 -503
  70. data/doc/TaskJuggler/Limits.html +111 -105
  71. data/doc/TaskJuggler/Limits/Limit.html +71 -65
  72. data/doc/TaskJuggler/LimitsAttribute.html +21 -15
  73. data/doc/TaskJuggler/ListAttributeBase.html +16 -10
  74. data/doc/TaskJuggler/Log.html +111 -105
  75. data/doc/TaskJuggler/LogFile.html +54 -48
  76. data/doc/TaskJuggler/LogicalAttribute.html +35 -29
  77. data/doc/TaskJuggler/LogicalExpression.html +32 -26
  78. data/doc/TaskJuggler/LogicalExpressionAttribute.html +16 -10
  79. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +671 -0
  80. data/doc/TaskJuggler/LogicalFlag.html +24 -18
  81. data/doc/TaskJuggler/LogicalFunction.html +164 -158
  82. data/doc/TaskJuggler/LogicalOperation.html +138 -132
  83. data/doc/TaskJuggler/Macro.html +14 -8
  84. data/doc/TaskJuggler/MacroTable.html +42 -36
  85. data/doc/TaskJuggler/ManagerResponsibilities.html +19 -13
  86. data/doc/TaskJuggler/ManagerStatusRecord.html +23 -17
  87. data/doc/TaskJuggler/Message.html +56 -50
  88. data/doc/TaskJuggler/MessageHandler.html +73 -67
  89. data/doc/TaskJuggler/Navigator.html +92 -86
  90. data/doc/TaskJuggler/NavigatorElement.html +88 -82
  91. data/doc/TaskJuggler/NikuProject.html +15 -9
  92. data/doc/TaskJuggler/NikuReport.html +405 -370
  93. data/doc/TaskJuggler/NikuResource.html +13 -7
  94. data/doc/TaskJuggler/NodeListAttribute.html +13 -9
  95. data/doc/TaskJuggler/PlaceHolderCell.html +22 -16
  96. data/doc/TaskJuggler/ProcessIntercom.html +116 -110
  97. data/doc/TaskJuggler/ProcessIntercomIface.html +39 -33
  98. data/doc/TaskJuggler/Project.html +1064 -895
  99. data/doc/TaskJuggler/ProjectBroker.html +439 -366
  100. data/doc/TaskJuggler/ProjectBrokerIface.html +63 -53
  101. data/doc/TaskJuggler/ProjectFileParser.html +329 -319
  102. data/doc/TaskJuggler/ProjectFileScanner.html +351 -345
  103. data/doc/TaskJuggler/ProjectRecord.html +66 -60
  104. data/doc/TaskJuggler/ProjectServer.html +287 -280
  105. data/doc/TaskJuggler/ProjectServerIface.html +43 -37
  106. data/doc/TaskJuggler/PropertyAttribute.html +16 -10
  107. data/doc/TaskJuggler/PropertyList.html +205 -199
  108. data/doc/TaskJuggler/PropertySet.html +264 -296
  109. data/doc/TaskJuggler/PropertyTreeNode.html +455 -505
  110. data/doc/TaskJuggler/Query.html +309 -524
  111. data/doc/TaskJuggler/RTFHandlers.html +17 -11
  112. data/doc/TaskJuggler/RTFNavigator.html +33 -27
  113. data/doc/TaskJuggler/RTFQuery.html +135 -129
  114. data/doc/TaskJuggler/RTFReport.html +63 -57
  115. data/doc/TaskJuggler/RTFReportLink.html +55 -49
  116. data/doc/TaskJuggler/RTFWithQuerySupport.html +17 -11
  117. data/doc/TaskJuggler/RealFormat.html +64 -58
  118. data/doc/TaskJuggler/RealFormatAttribute.html +12 -6
  119. data/doc/TaskJuggler/ReferenceAttribute.html +35 -29
  120. data/doc/TaskJuggler/Report.html +294 -249
  121. data/doc/TaskJuggler/ReportBase.html +229 -223
  122. data/doc/TaskJuggler/ReportContext.html +52 -46
  123. data/doc/TaskJuggler/ReportServer.html +143 -137
  124. data/doc/TaskJuggler/ReportServerIface.html +51 -43
  125. data/doc/TaskJuggler/ReportServerRecord.html +36 -30
  126. data/doc/TaskJuggler/ReportServlet.html +167 -140
  127. data/doc/TaskJuggler/ReportTable.html +137 -131
  128. data/doc/TaskJuggler/ReportTableCell.html +332 -292
  129. data/doc/TaskJuggler/ReportTableColumn.html +46 -40
  130. data/doc/TaskJuggler/ReportTableLegend.html +43 -38
  131. data/doc/TaskJuggler/ReportTableLine.html +66 -60
  132. data/doc/TaskJuggler/Resource.html +166 -160
  133. data/doc/TaskJuggler/ResourceListAttribute.html +54 -32
  134. data/doc/TaskJuggler/ResourceListRE.html +47 -41
  135. data/doc/TaskJuggler/ResourceScenario.html +671 -644
  136. data/doc/TaskJuggler/RichText.html +51 -45
  137. data/doc/TaskJuggler/RichTextAttribute.html +28 -22
  138. data/doc/TaskJuggler/RichTextDocument.html +96 -90
  139. data/doc/TaskJuggler/RichTextElement.html +503 -497
  140. data/doc/TaskJuggler/RichTextFunctionExample.html +41 -35
  141. data/doc/TaskJuggler/RichTextFunctionHandler.html +19 -13
  142. data/doc/TaskJuggler/RichTextImage.html +14 -8
  143. data/doc/TaskJuggler/RichTextIntermediate.html +86 -80
  144. data/doc/TaskJuggler/RichTextParser.html +59 -53
  145. data/doc/TaskJuggler/RichTextScanner.html +184 -178
  146. data/doc/TaskJuggler/RichTextSnip.html +69 -63
  147. data/doc/TaskJuggler/RichTextSyntaxRules.html +416 -410
  148. data/doc/TaskJuggler/Scenario.html +13 -7
  149. data/doc/TaskJuggler/ScenarioData.html +40 -34
  150. data/doc/TaskJuggler/ScenarioListAttribute.html +21 -15
  151. data/doc/TaskJuggler/Scoreboard.html +129 -107
  152. data/doc/TaskJuggler/SheetHandlerBase.html +245 -239
  153. data/doc/TaskJuggler/SheetReceiver.html +333 -327
  154. data/doc/TaskJuggler/SheetSender.html +227 -221
  155. data/doc/TaskJuggler/Shift.html +26 -20
  156. data/doc/TaskJuggler/ShiftAssignment.html +45 -39
  157. data/doc/TaskJuggler/ShiftAssignments.html +178 -172
  158. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +21 -15
  159. data/doc/TaskJuggler/ShiftScenario.html +29 -23
  160. data/doc/TaskJuggler/SimpleQueryExpander.html +36 -30
  161. data/doc/TaskJuggler/SortListAttribute.html +17 -13
  162. data/doc/TaskJuggler/SourceFileInfo.html +19 -13
  163. data/doc/TaskJuggler/StatusSheetReceiver.html +31 -25
  164. data/doc/TaskJuggler/StatusSheetReport.html +166 -159
  165. data/doc/TaskJuggler/StatusSheetSender.html +80 -74
  166. data/doc/TaskJuggler/StringAttribute.html +20 -14
  167. data/doc/TaskJuggler/SymbolAttribute.html +16 -10
  168. data/doc/TaskJuggler/SyntaxReference.html +231 -225
  169. data/doc/TaskJuggler/TOCEntry.html +46 -40
  170. data/doc/TaskJuggler/TSResourceRecord.html +15 -9
  171. data/doc/TaskJuggler/TSTaskRecord.html +16 -10
  172. data/doc/TaskJuggler/TableColumnDefinition.html +84 -39
  173. data/doc/TaskJuggler/TableOfContents.html +28 -22
  174. data/doc/TaskJuggler/TableReport.html +906 -866
  175. data/doc/TaskJuggler/Task.html +99 -93
  176. data/doc/TaskJuggler/TaskDependency.html +24 -18
  177. data/doc/TaskJuggler/TaskListAttribute.html +29 -25
  178. data/doc/TaskJuggler/TaskListRE.html +46 -39
  179. data/doc/TaskJuggler/TaskScenario.html +2218 -1965
  180. data/doc/TaskJuggler/TextFormatter.html +154 -148
  181. data/doc/TaskJuggler/TextParser.html +362 -348
  182. data/doc/TaskJuggler/TextParser/Pattern.html +313 -307
  183. data/doc/TaskJuggler/TextParser/Rule.html +147 -141
  184. data/doc/TaskJuggler/TextParser/StackElement.html +58 -52
  185. data/doc/TaskJuggler/TextParser/State.html +88 -82
  186. data/doc/TaskJuggler/TextParser/StateTransition.html +42 -36
  187. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +20 -14
  188. data/doc/TaskJuggler/TextParser/TokenDoc.html +19 -13
  189. data/doc/TaskJuggler/TextReport.html +80 -74
  190. data/doc/TaskJuggler/TextScanner.html +284 -272
  191. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +14 -8
  192. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +21 -15
  193. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +15 -9
  194. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  195. data/doc/TaskJuggler/TimeSheet.html +123 -117
  196. data/doc/TaskJuggler/TimeSheetReceiver.html +28 -22
  197. data/doc/TaskJuggler/TimeSheetRecord.html +212 -206
  198. data/doc/TaskJuggler/TimeSheetReport.html +206 -199
  199. data/doc/TaskJuggler/TimeSheetSender.html +27 -21
  200. data/doc/TaskJuggler/TimeSheetSummary.html +140 -134
  201. data/doc/TaskJuggler/TimeSheets.html +20 -14
  202. data/doc/TaskJuggler/Tj3AppBase.html +100 -94
  203. data/doc/TaskJuggler/Tj3Client.html +407 -483
  204. data/doc/TaskJuggler/Tj3Daemon.html +116 -107
  205. data/doc/TaskJuggler/Tj3SheetAppBase.html +45 -39
  206. data/doc/TaskJuggler/Tj3SsReceiver.html +31 -25
  207. data/doc/TaskJuggler/Tj3SsSender.html +64 -58
  208. data/doc/TaskJuggler/Tj3TsReceiver.html +31 -25
  209. data/doc/TaskJuggler/Tj3TsSender.html +51 -45
  210. data/doc/TaskJuggler/Tj3TsSummary.html +59 -53
  211. data/doc/TaskJuggler/TjException.html +13 -7
  212. data/doc/TaskJuggler/TjTime.html +444 -438
  213. data/doc/TaskJuggler/TjpExample.html +84 -78
  214. data/doc/TaskJuggler/TjpExportRE.html +356 -349
  215. data/doc/TaskJuggler/TjpSyntaxRules.html +4279 -4151
  216. data/doc/TaskJuggler/URLParameter.html +16 -10
  217. data/doc/TaskJuggler/UserManual.html +185 -179
  218. data/doc/TaskJuggler/VimSyntax.html +144 -138
  219. data/doc/TaskJuggler/WebServer.html +46 -39
  220. data/doc/TaskJuggler/WelcomePage.html +769 -0
  221. data/doc/TaskJuggler/WorkingHours.html +185 -179
  222. data/doc/TaskJuggler/WorkingHoursAttribute.html +42 -36
  223. data/doc/TaskJuggler/XMLBlob.html +21 -15
  224. data/doc/TaskJuggler/XMLComment.html +17 -11
  225. data/doc/TaskJuggler/XMLDocument.html +33 -27
  226. data/doc/TaskJuggler/XMLElement.html +97 -91
  227. data/doc/TaskJuggler/XMLNamedText.html +13 -7
  228. data/doc/TaskJuggler/XMLText.html +32 -26
  229. data/doc/index.html +601 -563
  230. data/doc/lib/AccountScenario_rb.html +5 -3
  231. data/doc/lib/Account_rb.html +5 -3
  232. data/doc/lib/Allocation_rb.html +5 -3
  233. data/doc/lib/AppConfig_rb.html +5 -3
  234. data/doc/lib/AttributeBase_rb.html +5 -3
  235. data/doc/lib/AttributeDefinition_rb.html +5 -3
  236. data/doc/lib/Attributes_rb.html +5 -3
  237. data/doc/lib/BatchProcessor_rb.html +5 -3
  238. data/doc/lib/Booking_rb.html +5 -3
  239. data/doc/lib/ChargeSet_rb.html +5 -3
  240. data/doc/lib/Charge_rb.html +5 -3
  241. data/doc/lib/DataCache_rb.html +5 -3
  242. data/doc/lib/FileList_rb.html +5 -3
  243. data/doc/lib/HTMLDocument_rb.html +5 -3
  244. data/doc/lib/IntervalList_rb.html +69 -0
  245. data/doc/lib/Interval_rb.html +5 -3
  246. data/doc/lib/Journal_rb.html +5 -3
  247. data/doc/lib/KeywordArray_rb.html +5 -3
  248. data/doc/lib/KeywordDocumentation_rb.html +5 -3
  249. data/doc/lib/Limits_rb.html +5 -3
  250. data/doc/lib/LogFile_rb.html +5 -3
  251. data/doc/lib/Log_rb.html +5 -3
  252. data/doc/lib/LogicalExpression_rb.html +5 -3
  253. data/doc/lib/LogicalFunction_rb.html +5 -3
  254. data/doc/lib/LogicalOperation_rb.html +5 -3
  255. data/doc/lib/MacroTable_rb.html +5 -3
  256. data/doc/lib/MessageHandler_rb.html +5 -3
  257. data/doc/lib/ProjectFileParser_rb.html +5 -3
  258. data/doc/lib/ProjectFileScanner_rb.html +5 -3
  259. data/doc/lib/Project_rb.html +5 -3
  260. data/doc/lib/PropertyList_rb.html +5 -3
  261. data/doc/lib/PropertySet_rb.html +5 -3
  262. data/doc/lib/PropertyTreeNode_rb.html +5 -3
  263. data/doc/lib/Query_rb.html +5 -3
  264. data/doc/lib/RTFHandlers_rb.html +5 -3
  265. data/doc/lib/RTFNavigator_rb.html +5 -3
  266. data/doc/lib/RTFQuery_rb.html +5 -3
  267. data/doc/lib/RTFReportLink_rb.html +5 -3
  268. data/doc/lib/RTFReport_rb.html +5 -3
  269. data/doc/lib/RTFWithQuerySupport_rb.html +5 -3
  270. data/doc/lib/RealFormat_rb.html +5 -3
  271. data/doc/lib/ResourceScenario_rb.html +5 -3
  272. data/doc/lib/Resource_rb.html +5 -3
  273. data/doc/lib/RichTextDocument_rb.html +5 -3
  274. data/doc/lib/RichTextElement_rb.html +5 -3
  275. data/doc/lib/RichTextFunctionExample_rb.html +5 -3
  276. data/doc/lib/RichTextFunctionHandler_rb.html +5 -3
  277. data/doc/lib/RichTextParser_rb.html +5 -3
  278. data/doc/lib/RichTextScanner_rb.html +5 -3
  279. data/doc/lib/RichTextSnip_rb.html +5 -3
  280. data/doc/lib/RichTextSyntaxRules_rb.html +5 -3
  281. data/doc/lib/RichText_rb.html +5 -3
  282. data/doc/lib/RuntimeConfig_rb.html +5 -3
  283. data/doc/lib/ScenarioData_rb.html +5 -3
  284. data/doc/lib/Scenario_rb.html +5 -3
  285. data/doc/lib/Scoreboard_rb.html +7 -3
  286. data/doc/lib/SheetHandlerBase_rb.html +5 -3
  287. data/doc/lib/SheetReceiver_rb.html +5 -3
  288. data/doc/lib/SheetSender_rb.html +5 -3
  289. data/doc/lib/ShiftAssignments_rb.html +5 -3
  290. data/doc/lib/ShiftScenario_rb.html +5 -3
  291. data/doc/lib/Shift_rb.html +5 -3
  292. data/doc/lib/SimpleQueryExpander_rb.html +5 -3
  293. data/doc/lib/SourceFileInfo_rb.html +5 -3
  294. data/doc/lib/StatusSheetReceiver_rb.html +5 -3
  295. data/doc/lib/StatusSheetSender_rb.html +5 -3
  296. data/doc/lib/SyntaxReference_rb.html +5 -3
  297. data/doc/lib/TOCEntry_rb.html +5 -3
  298. data/doc/lib/TableColumnDefinition_rb.html +5 -3
  299. data/doc/lib/TableOfContents_rb.html +5 -3
  300. data/doc/lib/TaskDependency_rb.html +5 -3
  301. data/doc/lib/TaskJuggler_rb.html +5 -3
  302. data/doc/lib/TaskScenario_rb.html +5 -3
  303. data/doc/lib/Task_rb.html +5 -3
  304. data/doc/lib/TextFormatter_rb.html +6 -4
  305. data/doc/lib/TextParser/Pattern_rb.html +5 -3
  306. data/doc/lib/TextParser/Rule_rb.html +5 -3
  307. data/doc/lib/TextParser/StackElement_rb.html +5 -3
  308. data/doc/lib/TextParser/State_rb.html +6 -4
  309. data/doc/lib/TextParser/TokenDoc_rb.html +5 -3
  310. data/doc/lib/TextParser_rb.html +5 -3
  311. data/doc/lib/TextScanner_rb.html +5 -3
  312. data/doc/lib/TimeSheetReceiver_rb.html +5 -3
  313. data/doc/lib/TimeSheetSender_rb.html +5 -3
  314. data/doc/lib/TimeSheetSummary_rb.html +6 -4
  315. data/doc/lib/TimeSheets_rb.html +5 -3
  316. data/doc/lib/Tj3AppBase_rb.html +5 -3
  317. data/doc/lib/Tj3Config_rb.html +5 -3
  318. data/doc/lib/Tj3SheetAppBase_rb.html +5 -3
  319. data/doc/lib/TjException_rb.html +5 -3
  320. data/doc/lib/TjTime_rb.html +5 -3
  321. data/doc/lib/TjpExample_rb.html +5 -3
  322. data/doc/lib/TjpSyntaxRules_rb.html +5 -3
  323. data/doc/lib/URLParameter_rb.html +5 -3
  324. data/doc/lib/UTF8String_rb.html +5 -3
  325. data/doc/lib/UserManual_rb.html +5 -3
  326. data/doc/lib/VimSyntax_rb.html +6 -4
  327. data/doc/lib/WorkingHours_rb.html +5 -3
  328. data/doc/lib/XMLDocument_rb.html +5 -3
  329. data/doc/lib/XMLElement_rb.html +5 -3
  330. data/doc/lib/daemon/Daemon_rb.html +5 -3
  331. data/doc/lib/daemon/ProcessIntercom_rb.html +7 -3
  332. data/doc/lib/daemon/ProjectBroker_rb.html +5 -3
  333. data/doc/lib/daemon/ProjectServer_rb.html +5 -3
  334. data/doc/lib/daemon/ReportServer_rb.html +5 -3
  335. data/doc/lib/daemon/ReportServlet_rb.html +69 -0
  336. data/doc/lib/daemon/WebServer_rb.html +9 -3
  337. data/doc/lib/daemon/WelcomePage_rb.html +71 -0
  338. data/doc/lib/deep_copy_rb.html +5 -3
  339. data/doc/lib/reports/CSVFile_rb.html +5 -3
  340. data/doc/lib/reports/CollisionDetector_rb.html +5 -3
  341. data/doc/lib/reports/ColumnTable_rb.html +5 -3
  342. data/doc/lib/reports/GanttChart_rb.html +5 -3
  343. data/doc/lib/reports/GanttContainer_rb.html +5 -3
  344. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +5 -3
  345. data/doc/lib/reports/GanttHeader_rb.html +5 -3
  346. data/doc/lib/reports/GanttLine_rb.html +5 -3
  347. data/doc/lib/reports/GanttLoadStack_rb.html +5 -3
  348. data/doc/lib/reports/GanttMilestone_rb.html +5 -3
  349. data/doc/lib/reports/GanttRouter_rb.html +5 -3
  350. data/doc/lib/reports/GanttTaskBar_rb.html +5 -3
  351. data/doc/lib/reports/HTMLGraphics_rb.html +5 -3
  352. data/doc/lib/reports/Navigator_rb.html +5 -3
  353. data/doc/lib/reports/NikuReport_rb.html +5 -3
  354. data/doc/lib/reports/ReportBase_rb.html +5 -3
  355. data/doc/lib/reports/ReportContext_rb.html +5 -3
  356. data/doc/lib/reports/ReportTableCell_rb.html +5 -3
  357. data/doc/lib/reports/ReportTableColumn_rb.html +5 -3
  358. data/doc/lib/reports/ReportTableLegend_rb.html +5 -3
  359. data/doc/lib/reports/ReportTableLine_rb.html +5 -3
  360. data/doc/lib/reports/ReportTable_rb.html +5 -3
  361. data/doc/lib/reports/Report_rb.html +5 -3
  362. data/doc/lib/reports/ResourceListRE_rb.html +5 -3
  363. data/doc/lib/reports/StatusSheetReport_rb.html +5 -3
  364. data/doc/lib/reports/TableReport_rb.html +5 -3
  365. data/doc/lib/reports/TaskListRE_rb.html +5 -3
  366. data/doc/lib/reports/TextReport_rb.html +5 -3
  367. data/doc/lib/reports/TimeSheetReport_rb.html +5 -3
  368. data/doc/lib/reports/TjpExportRE_rb.html +5 -3
  369. data/doc/lib/{taskjuggler3_rb.html → tj3_rb.html} +7 -5
  370. data/doc/lib/tj3client_rb.html +5 -3
  371. data/doc/lib/tj3d_rb.html +6 -4
  372. data/doc/lib/tj3man_rb.html +5 -3
  373. data/doc/lib/tj3ss_receiver_rb.html +5 -3
  374. data/doc/lib/tj3ss_sender_rb.html +5 -3
  375. data/doc/lib/tj3ts_receiver_rb.html +5 -3
  376. data/doc/lib/tj3ts_sender_rb.html +5 -3
  377. data/doc/lib/tj3ts_summary_rb.html +5 -3
  378. data/examples/tutorial.tjp +13 -5
  379. data/gem_spec.rb +3 -0
  380. data/lib/Account.rb +2 -1
  381. data/lib/AccountScenario.rb +2 -1
  382. data/lib/Allocation.rb +2 -1
  383. data/lib/AppConfig.rb +2 -1
  384. data/lib/AttributeBase.rb +19 -5
  385. data/lib/AttributeDefinition.rb +2 -1
  386. data/lib/Attributes.rb +49 -38
  387. data/lib/BatchProcessor.rb +2 -1
  388. data/lib/Booking.rb +2 -1
  389. data/lib/Charge.rb +2 -1
  390. data/lib/ChargeSet.rb +2 -1
  391. data/lib/DataCache.rb +15 -1
  392. data/lib/FileList.rb +2 -1
  393. data/lib/HTMLDocument.rb +2 -1
  394. data/lib/Interval.rb +2 -1
  395. data/lib/IntervalList.rb +100 -0
  396. data/lib/Journal.rb +8 -2
  397. data/lib/KeywordArray.rb +2 -1
  398. data/lib/KeywordDocumentation.rb +10 -6
  399. data/lib/Limits.rb +2 -1
  400. data/lib/Log.rb +3 -2
  401. data/lib/LogFile.rb +2 -1
  402. data/lib/LogicalExpression.rb +2 -1
  403. data/lib/LogicalFunction.rb +2 -1
  404. data/lib/LogicalOperation.rb +2 -1
  405. data/lib/MacroTable.rb +2 -1
  406. data/lib/MessageHandler.rb +2 -1
  407. data/lib/Project.rb +92 -25
  408. data/lib/ProjectFileParser.rb +7 -2
  409. data/lib/ProjectFileScanner.rb +2 -1
  410. data/lib/PropertyList.rb +2 -1
  411. data/lib/PropertySet.rb +2 -6
  412. data/lib/PropertyTreeNode.rb +22 -44
  413. data/lib/Query.rb +32 -13
  414. data/lib/RTFHandlers.rb +2 -1
  415. data/lib/RTFNavigator.rb +2 -1
  416. data/lib/RTFQuery.rb +3 -2
  417. data/lib/RTFReport.rb +2 -1
  418. data/lib/RTFReportLink.rb +2 -1
  419. data/lib/RTFWithQuerySupport.rb +2 -1
  420. data/lib/RealFormat.rb +2 -1
  421. data/lib/Resource.rb +2 -1
  422. data/lib/ResourceScenario.rb +35 -14
  423. data/lib/RichText.rb +2 -1
  424. data/lib/RichTextDocument.rb +2 -1
  425. data/lib/RichTextElement.rb +2 -1
  426. data/lib/RichTextFunctionExample.rb +2 -1
  427. data/lib/RichTextFunctionHandler.rb +2 -1
  428. data/lib/RichTextParser.rb +2 -1
  429. data/lib/RichTextScanner.rb +2 -1
  430. data/lib/RichTextSnip.rb +2 -1
  431. data/lib/RichTextSyntaxRules.rb +2 -1
  432. data/lib/RuntimeConfig.rb +2 -1
  433. data/lib/Scenario.rb +2 -1
  434. data/lib/ScenarioData.rb +2 -1
  435. data/lib/Scoreboard.rb +27 -8
  436. data/lib/SheetHandlerBase.rb +2 -1
  437. data/lib/SheetReceiver.rb +2 -1
  438. data/lib/SheetSender.rb +2 -1
  439. data/lib/Shift.rb +2 -1
  440. data/lib/ShiftAssignments.rb +2 -1
  441. data/lib/ShiftScenario.rb +2 -1
  442. data/lib/SimpleQueryExpander.rb +2 -1
  443. data/lib/SourceFileInfo.rb +2 -1
  444. data/lib/StatusSheetReceiver.rb +2 -1
  445. data/lib/StatusSheetSender.rb +2 -1
  446. data/lib/SyntaxReference.rb +2 -1
  447. data/lib/TOCEntry.rb +2 -1
  448. data/lib/TableColumnDefinition.rb +9 -2
  449. data/lib/TableOfContents.rb +2 -1
  450. data/lib/Task.rb +2 -1
  451. data/lib/TaskDependency.rb +2 -1
  452. data/lib/TaskJuggler.rb +8 -6
  453. data/lib/TaskScenario.rb +337 -153
  454. data/lib/TextFormatter.rb +3 -2
  455. data/lib/TextParser.rb +7 -2
  456. data/lib/TextParser/Pattern.rb +2 -1
  457. data/lib/TextParser/Rule.rb +2 -1
  458. data/lib/TextParser/StackElement.rb +2 -1
  459. data/lib/TextParser/State.rb +3 -2
  460. data/lib/TextParser/TokenDoc.rb +2 -1
  461. data/lib/TextScanner.rb +12 -5
  462. data/lib/TimeSheetReceiver.rb +2 -1
  463. data/lib/TimeSheetSender.rb +2 -1
  464. data/lib/TimeSheetSummary.rb +3 -2
  465. data/lib/TimeSheets.rb +2 -1
  466. data/lib/Tj3AppBase.rb +6 -5
  467. data/lib/Tj3Config.rb +5 -4
  468. data/lib/Tj3SheetAppBase.rb +2 -1
  469. data/lib/TjException.rb +2 -1
  470. data/lib/TjTime.rb +2 -1
  471. data/lib/TjpExample.rb +2 -1
  472. data/lib/TjpSyntaxRules.rb +264 -65
  473. data/lib/URLParameter.rb +2 -1
  474. data/lib/UTF8String.rb +2 -1
  475. data/lib/UserManual.rb +2 -1
  476. data/lib/VimSyntax.rb +3 -2
  477. data/lib/WorkingHours.rb +2 -1
  478. data/lib/XMLDocument.rb +2 -1
  479. data/lib/XMLElement.rb +2 -1
  480. data/lib/daemon/Daemon.rb +3 -1
  481. data/lib/daemon/ProcessIntercom.rb +3 -1
  482. data/lib/daemon/ProjectBroker.rb +84 -32
  483. data/lib/daemon/ProjectServer.rb +5 -3
  484. data/lib/daemon/ReportServer.rb +8 -5
  485. data/lib/daemon/ReportServlet.rb +166 -0
  486. data/lib/daemon/WebServer.rb +6 -150
  487. data/lib/daemon/WelcomePage.rb +80 -0
  488. data/lib/deep_copy.rb +2 -1
  489. data/lib/reports/CSVFile.rb +2 -1
  490. data/lib/reports/CollisionDetector.rb +2 -1
  491. data/lib/reports/ColumnTable.rb +2 -1
  492. data/lib/reports/GanttChart.rb +2 -1
  493. data/lib/reports/GanttContainer.rb +3 -4
  494. data/lib/reports/GanttHeader.rb +2 -1
  495. data/lib/reports/GanttHeaderScaleItem.rb +2 -1
  496. data/lib/reports/GanttLine.rb +12 -10
  497. data/lib/reports/GanttLoadStack.rb +2 -1
  498. data/lib/reports/GanttMilestone.rb +3 -3
  499. data/lib/reports/GanttRouter.rb +4 -1
  500. data/lib/reports/GanttTaskBar.rb +9 -7
  501. data/lib/reports/HTMLGraphics.rb +2 -1
  502. data/lib/reports/Navigator.rb +2 -1
  503. data/lib/reports/NikuReport.rb +79 -49
  504. data/lib/reports/Report.rb +42 -10
  505. data/lib/reports/ReportBase.rb +2 -1
  506. data/lib/reports/ReportContext.rb +2 -1
  507. data/lib/reports/ReportTable.rb +2 -1
  508. data/lib/reports/ReportTableCell.rb +63 -28
  509. data/lib/reports/ReportTableColumn.rb +2 -1
  510. data/lib/reports/ReportTableLegend.rb +5 -5
  511. data/lib/reports/ReportTableLine.rb +2 -1
  512. data/lib/reports/ResourceListRE.rb +2 -1
  513. data/lib/reports/StatusSheetReport.rb +4 -2
  514. data/lib/reports/TableReport.rb +42 -38
  515. data/lib/reports/TaskListRE.rb +4 -2
  516. data/lib/reports/TextReport.rb +2 -1
  517. data/lib/reports/TimeSheetReport.rb +4 -2
  518. data/lib/reports/TjpExportRE.rb +4 -2
  519. data/lib/{taskjuggler3.rb → tj3.rb} +6 -5
  520. data/lib/tj3client.rb +19 -36
  521. data/lib/tj3d.rb +6 -2
  522. data/lib/tj3man.rb +4 -3
  523. data/lib/tj3ss_receiver.rb +2 -1
  524. data/lib/tj3ss_sender.rb +2 -1
  525. data/lib/tj3ts_receiver.rb +2 -1
  526. data/lib/tj3ts_sender.rb +2 -1
  527. data/lib/tj3ts_summary.rb +2 -1
  528. data/manual/Day_To_Day_Juggling +36 -0
  529. data/manual/How_To_Contribute +9 -4
  530. data/manual/Installation +10 -3
  531. data/manual/TaskJuggler_Internals +0 -2
  532. data/manual/Tutorial +25 -3
  533. data/prj_cfg.rb +4 -2
  534. data/spec/IntervalList_spec.rb +138 -0
  535. data/spec/ProjectBroker_spec.rb +133 -0
  536. data/tasks/changelog.rake +41 -24
  537. data/tasks/csts.rake +1 -0
  538. data/tasks/gem.rake +1 -0
  539. data/tasks/rcov.rake +1 -1
  540. data/tasks/spec.rake +7 -0
  541. data/tasks/test.rake +1 -0
  542. data/test/MessageChecker.rb +2 -1
  543. data/test/TestSuite/CSV-Reports/niku.tjp +70 -0
  544. data/test/TestSuite/CSV-Reports/{celltext-Reference.csv → refs/celltext.csv} +0 -0
  545. data/test/TestSuite/CSV-Reports/refs/niku.csv +5 -0
  546. data/test/TestSuite/CSV-Reports/{resourcereport-Reference.csv → refs/resourcereport.csv} +0 -0
  547. data/test/TestSuite/CSV-Reports/{resourcereport_with_tasks-Reference.csv → refs/resourcereport_with_tasks.csv} +0 -0
  548. data/test/TestSuite/CSV-Reports/{sortByTree-Reference.csv → refs/sortByTree.csv} +0 -0
  549. data/test/TestSuite/CSV-Reports/{sortBy_duration.down-Reference.csv → refs/sortBy_duration.down.csv} +0 -0
  550. data/test/TestSuite/CSV-Reports/{sortBy_effort.up-Reference.csv → refs/sortBy_effort.up.csv} +0 -0
  551. data/test/TestSuite/CSV-Reports/{sortBy_plan.start.down-Reference.csv → refs/sortBy_plan.start.down.csv} +0 -0
  552. data/test/TestSuite/CSV-Reports/{taskreport-Reference.csv → refs/taskreport.csv} +0 -0
  553. data/test/TestSuite/CSV-Reports/{taskreport_with_resources-Reference.csv → refs/taskreport_with_resources.csv} +0 -0
  554. data/test/TestSuite/CSV-Reports/{weekly-Reference.csv → refs/weekly.csv} +0 -0
  555. data/test/TestSuite/HTML-Reports/Alerts.tjp +12 -0
  556. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
  557. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +1 -2
  558. data/test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp +77 -0
  559. data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +40 -0
  560. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +2 -2
  561. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +3 -4
  562. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +2 -2
  563. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +8 -7
  564. data/test/TestSuite/Scheduler/Errors/onend_wrong_direction.tjp +19 -0
  565. data/test/TestSuite/Scheduler/Errors/onstart_wrong_direction.tjp +18 -0
  566. data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +1 -2
  567. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/boss_2002-03-02.tji +46 -0
  568. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/dev2_2002-03-02.tji +22 -0
  569. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/resources.yml +11 -0
  570. data/test/TestSuite/StatusSheets/StatusSheetTemplates/acceptable_intervals +1 -0
  571. data/test/TestSuite/StatusSheets/sender.log +256 -0
  572. data/test/TestSuite/StatusSheets/statussheets.log +9 -0
  573. data/test/TestSuite/StatusSheets/tj3d.log +395 -0
  574. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +2 -0
  575. data/test/TestSuite/Syntax/Correct/Niku.tjp +6 -1
  576. data/test/TestSuite/Syntax/Correct/Scenario.tjp +4 -1
  577. data/test/TestSuite/Syntax/Correct/Supplement.tjp +12 -5
  578. data/test/TestSuite/Syntax/Correct/TaskPrefix.tji +3 -0
  579. data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +24 -0
  580. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -2
  581. data/test/TestSuite/Syntax/Correct/tutorial.tjp +15 -5
  582. data/test/all.rb +2 -4
  583. data/test/test_BatchProcessor.rb +2 -1
  584. data/test/test_CSV-Reports.rb +34 -23
  585. data/test/test_CSVFile.rb +2 -1
  586. data/test/test_CollisionDetector.rb +3 -2
  587. data/test/test_Journal.rb +2 -1
  588. data/test/test_Limits.rb +2 -1
  589. data/test/test_LogicalExpression.rb +2 -1
  590. data/test/test_MacroTable.rb +2 -1
  591. data/test/test_Project.rb +3 -2
  592. data/test/test_ProjectFileScanner.rb +2 -1
  593. data/test/test_PropertySet.rb +2 -1
  594. data/test/test_Query.rb +2 -1
  595. data/test/test_RealFormat.rb +2 -1
  596. data/test/test_ReportGenerator.rb +2 -1
  597. data/test/test_RichText.rb +2 -1
  598. data/test/test_Scheduler.rb +2 -1
  599. data/test/test_ShiftAssignments.rb +2 -1
  600. data/test/test_SimpleQueryExpander.rb +2 -1
  601. data/test/test_Syntax.rb +2 -1
  602. data/test/test_TextFormatter.rb +3 -2
  603. data/test/test_TjTime.rb +2 -1
  604. data/test/test_TjpExample.rb +2 -1
  605. data/test/test_URLParameter.rb +2 -1
  606. data/test/test_UTF8String.rb +2 -1
  607. data/test/test_WorkingHours.rb +2 -1
  608. data/test/test_deep_copy.rb +2 -1
  609. metadata +74 -20
  610. data/doc/StringIO.html +0 -595
  611. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +0 -46
  612. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +0 -51
  613. data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +0 -11
@@ -143,6 +143,8 @@
143
143
 
144
144
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
145
145
 
146
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
147
+
146
148
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
147
149
 
148
150
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -221,6 +223,8 @@
221
223
 
222
224
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
223
225
 
226
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
227
+
224
228
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
225
229
 
226
230
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -253,6 +257,8 @@
253
257
 
254
258
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
255
259
 
260
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
261
+
256
262
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
257
263
 
258
264
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -533,6 +539,8 @@
533
539
 
534
540
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
535
541
 
542
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
543
+
536
544
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
537
545
 
538
546
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -559,8 +567,6 @@
559
567
 
560
568
  <li><a href="../String.html">String</a></li>
561
569
 
562
- <li><a href="../StringIO.html">StringIO</a></li>
563
-
564
570
  </ul>
565
571
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
566
572
  </div>
@@ -681,12 +687,12 @@ can be set later.
681
687
  <div class="method-source-code"
682
688
  id="new-source">
683
689
  <pre>
684
- <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 32</span>
685
- 32: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">opnd1</span>, <span class="ruby-identifier">operator</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">opnd2</span> = <span class="ruby-keyword kw">nil</span>)
686
- 33: <span class="ruby-ivar">@operand1</span> = <span class="ruby-identifier">opnd1</span>
687
- 34: <span class="ruby-ivar">@operand2</span> = <span class="ruby-identifier">opnd2</span>
688
- 35: <span class="ruby-ivar">@operator</span> = <span class="ruby-identifier">operator</span>
689
- 36: <span class="ruby-keyword kw">end</span></pre>
690
+ <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 33</span>
691
+ 33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">opnd1</span>, <span class="ruby-identifier">operator</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">opnd2</span> = <span class="ruby-keyword kw">nil</span>)
692
+ 34: <span class="ruby-ivar">@operand1</span> = <span class="ruby-identifier">opnd1</span>
693
+ 35: <span class="ruby-ivar">@operand2</span> = <span class="ruby-identifier">opnd2</span>
694
+ 36: <span class="ruby-ivar">@operator</span> = <span class="ruby-identifier">operator</span>
695
+ 37: <span class="ruby-keyword kw">end</span></pre>
690
696
  </div>
691
697
 
692
698
  </div>
@@ -727,56 +733,56 @@ must be of a type that responds to all the operators of this function.
727
733
  <div class="method-source-code"
728
734
  id="eval-source">
729
735
  <pre>
730
- <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 41</span>
731
- 41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>)
732
- 42: <span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@operator</span>
733
- 43: <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span>
734
- 44: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@operand1</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:eval</span>)
735
- 45: <span class="ruby-comment cmt"># An operand can be a fixed value or another term. This could be a</span>
736
- 46: <span class="ruby-comment cmt"># LogicalOperation, LogicalFunction or anything else that provides</span>
737
- 47: <span class="ruby-comment cmt"># an appropriate eval() method.</span>
738
- 48: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@operand1</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>)
739
- 49: <span class="ruby-keyword kw">else</span>
740
- 50: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@operand1</span>
741
- 51: <span class="ruby-keyword kw">end</span>
742
- 52: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'~'</span>
743
- 53: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-identifier">coerceBoolean</span>(<span class="ruby-ivar">@operand1</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>), <span class="ruby-identifier">expr</span>)
744
- 54: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&gt;'</span>, <span class="ruby-value str">'&gt;='</span>, <span class="ruby-value str">'='</span>, <span class="ruby-value str">'&lt;'</span>, <span class="ruby-value str">'&lt;='</span>, <span class="ruby-value str">'!='</span>
745
- 55: <span class="ruby-comment cmt"># Evaluate the operation for all 2 operand operations that can be</span>
746
- 56: <span class="ruby-comment cmt"># either interpreted as date, numbers or Strings.</span>
747
- 57: <span class="ruby-identifier">opnd1</span> = <span class="ruby-ivar">@operand1</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>)
748
- 58: <span class="ruby-identifier">opnd2</span> = <span class="ruby-ivar">@operand2</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>)
749
- 59: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
750
- 60: <span class="ruby-identifier">res</span>= <span class="ruby-identifier">evalBinaryOperation</span>(<span class="ruby-identifier">opnd1</span>, <span class="ruby-identifier">operator</span>, <span class="ruby-identifier">opnd2</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
751
- 61: <span class="ruby-identifier">coerceTime</span>(<span class="ruby-identifier">o</span>, <span class="ruby-identifier">expr</span>)
752
- 62: <span class="ruby-keyword kw">end</span>
753
- 63: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
754
- 64: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Float</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Bignum</span>)
755
- 65: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">evalBinaryOperation</span>(<span class="ruby-identifier">opnd1</span>, <span class="ruby-identifier">operator</span>, <span class="ruby-identifier">opnd2</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
756
- 66: <span class="ruby-identifier">coerceNumber</span>(<span class="ruby-identifier">o</span>, <span class="ruby-identifier">expr</span>)
757
- 67: <span class="ruby-keyword kw">end</span>
758
- 68: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RichTextIntermediate</span>)
759
- 69: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">evalBinaryOperation</span>(<span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">operator</span>, <span class="ruby-identifier">opnd2</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
760
- 70: <span class="ruby-identifier">coerceString</span>(<span class="ruby-identifier">o</span>, <span class="ruby-identifier">expr</span>)
761
- 71: <span class="ruby-keyword kw">end</span>
762
- 72: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
763
- 73: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">evalBinaryOperation</span>(<span class="ruby-identifier">opnd1</span>, <span class="ruby-identifier">operator</span>, <span class="ruby-identifier">opnd2</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
764
- 74: <span class="ruby-identifier">coerceString</span>(<span class="ruby-identifier">o</span>, <span class="ruby-identifier">expr</span>)
765
- 75: <span class="ruby-keyword kw">end</span>
766
- 76: <span class="ruby-keyword kw">else</span>
767
- 77: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-value str">&quot;First operand of a binary operation must be a date, &quot;</span> <span class="ruby-operator">+</span>
768
- 78: <span class="ruby-node">&quot;a number or a string: #{opnd1.class}&quot;</span>)
769
- 79: <span class="ruby-keyword kw">end</span>
770
- 80: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&amp;'</span>
771
- 81: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">coerceBoolean</span>(<span class="ruby-ivar">@operand1</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>), <span class="ruby-identifier">expr</span>) <span class="ruby-operator">&amp;&amp;</span>
772
- 82: <span class="ruby-identifier">coerceBoolean</span>(<span class="ruby-ivar">@operand2</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>), <span class="ruby-identifier">expr</span>)
773
- 83: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'|'</span>
774
- 84: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">coerceBoolean</span>(<span class="ruby-ivar">@operand1</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>), <span class="ruby-identifier">expr</span>) <span class="ruby-operator">||</span>
775
- 85: <span class="ruby-identifier">coerceBoolean</span>(<span class="ruby-ivar">@operand2</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>), <span class="ruby-identifier">expr</span>)
776
- 86: <span class="ruby-keyword kw">else</span>
777
- 87: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Unknown operator #{@operator} in logical expression&quot;</span>)
778
- 88: <span class="ruby-keyword kw">end</span>
779
- 89: <span class="ruby-keyword kw">end</span></pre>
736
+ <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 42</span>
737
+ 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>)
738
+ 43: <span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@operator</span>
739
+ 44: <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span>
740
+ 45: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@operand1</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:eval</span>)
741
+ 46: <span class="ruby-comment cmt"># An operand can be a fixed value or another term. This could be a</span>
742
+ 47: <span class="ruby-comment cmt"># LogicalOperation, LogicalFunction or anything else that provides</span>
743
+ 48: <span class="ruby-comment cmt"># an appropriate eval() method.</span>
744
+ 49: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@operand1</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>)
745
+ 50: <span class="ruby-keyword kw">else</span>
746
+ 51: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@operand1</span>
747
+ 52: <span class="ruby-keyword kw">end</span>
748
+ 53: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'~'</span>
749
+ 54: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-identifier">coerceBoolean</span>(<span class="ruby-ivar">@operand1</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>), <span class="ruby-identifier">expr</span>)
750
+ 55: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&gt;'</span>, <span class="ruby-value str">'&gt;='</span>, <span class="ruby-value str">'='</span>, <span class="ruby-value str">'&lt;'</span>, <span class="ruby-value str">'&lt;='</span>, <span class="ruby-value str">'!='</span>
751
+ 56: <span class="ruby-comment cmt"># Evaluate the operation for all 2 operand operations that can be</span>
752
+ 57: <span class="ruby-comment cmt"># either interpreted as date, numbers or Strings.</span>
753
+ 58: <span class="ruby-identifier">opnd1</span> = <span class="ruby-ivar">@operand1</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>)
754
+ 59: <span class="ruby-identifier">opnd2</span> = <span class="ruby-ivar">@operand2</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>)
755
+ 60: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
756
+ 61: <span class="ruby-identifier">res</span>= <span class="ruby-identifier">evalBinaryOperation</span>(<span class="ruby-identifier">opnd1</span>, <span class="ruby-identifier">operator</span>, <span class="ruby-identifier">opnd2</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
757
+ 62: <span class="ruby-identifier">coerceTime</span>(<span class="ruby-identifier">o</span>, <span class="ruby-identifier">expr</span>)
758
+ 63: <span class="ruby-keyword kw">end</span>
759
+ 64: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
760
+ 65: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Float</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Bignum</span>)
761
+ 66: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">evalBinaryOperation</span>(<span class="ruby-identifier">opnd1</span>, <span class="ruby-identifier">operator</span>, <span class="ruby-identifier">opnd2</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
762
+ 67: <span class="ruby-identifier">coerceNumber</span>(<span class="ruby-identifier">o</span>, <span class="ruby-identifier">expr</span>)
763
+ 68: <span class="ruby-keyword kw">end</span>
764
+ 69: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">RichTextIntermediate</span>)
765
+ 70: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">evalBinaryOperation</span>(<span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">operator</span>, <span class="ruby-identifier">opnd2</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
766
+ 71: <span class="ruby-identifier">coerceString</span>(<span class="ruby-identifier">o</span>, <span class="ruby-identifier">expr</span>)
767
+ 72: <span class="ruby-keyword kw">end</span>
768
+ 73: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">opnd1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
769
+ 74: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">evalBinaryOperation</span>(<span class="ruby-identifier">opnd1</span>, <span class="ruby-identifier">operator</span>, <span class="ruby-identifier">opnd2</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
770
+ 75: <span class="ruby-identifier">coerceString</span>(<span class="ruby-identifier">o</span>, <span class="ruby-identifier">expr</span>)
771
+ 76: <span class="ruby-keyword kw">end</span>
772
+ 77: <span class="ruby-keyword kw">else</span>
773
+ 78: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-value str">&quot;First operand of a binary operation must be a date, &quot;</span> <span class="ruby-operator">+</span>
774
+ 79: <span class="ruby-node">&quot;a number or a string: #{opnd1.class}&quot;</span>)
775
+ 80: <span class="ruby-keyword kw">end</span>
776
+ 81: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&amp;'</span>
777
+ 82: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">coerceBoolean</span>(<span class="ruby-ivar">@operand1</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>), <span class="ruby-identifier">expr</span>) <span class="ruby-operator">&amp;&amp;</span>
778
+ 83: <span class="ruby-identifier">coerceBoolean</span>(<span class="ruby-ivar">@operand2</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>), <span class="ruby-identifier">expr</span>)
779
+ 84: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'|'</span>
780
+ 85: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">coerceBoolean</span>(<span class="ruby-ivar">@operand1</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>), <span class="ruby-identifier">expr</span>) <span class="ruby-operator">||</span>
781
+ 86: <span class="ruby-identifier">coerceBoolean</span>(<span class="ruby-ivar">@operand2</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">expr</span>), <span class="ruby-identifier">expr</span>)
782
+ 87: <span class="ruby-keyword kw">else</span>
783
+ 88: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Unknown operator #{@operator} in logical expression&quot;</span>)
784
+ 89: <span class="ruby-keyword kw">end</span>
785
+ 90: <span class="ruby-keyword kw">end</span></pre>
780
786
  </div>
781
787
 
782
788
  </div>
@@ -809,17 +815,17 @@ Convert the operation into a textual representation.
809
815
  <div class="method-source-code"
810
816
  id="to-s-source">
811
817
  <pre>
812
- <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 92</span>
813
- 92: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">query</span>)
814
- 93: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@operator</span>.<span class="ruby-identifier">nil?</span>
815
- 94: <span class="ruby-identifier">operand_to_s</span>(<span class="ruby-ivar">@operand1</span>, <span class="ruby-identifier">query</span>)
816
- 95: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@operand2</span>.<span class="ruby-identifier">nil?</span>
817
- 96: <span class="ruby-ivar">@operator</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">operand_to_s</span>(<span class="ruby-ivar">@operand1</span>, <span class="ruby-identifier">query</span>)
818
- 97: <span class="ruby-keyword kw">else</span>
819
- 98: <span class="ruby-node">&quot;(#{operand_to_s(@operand1, query)} #{@operator} &quot;</span> <span class="ruby-operator">+</span>
820
- 99: <span class="ruby-node">&quot;#{operand_to_s(@operand2, query)})&quot;</span>
821
- 100: <span class="ruby-keyword kw">end</span>
822
- 101: <span class="ruby-keyword kw">end</span></pre>
818
+ <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 93</span>
819
+ 93: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">query</span>)
820
+ 94: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@operator</span>.<span class="ruby-identifier">nil?</span>
821
+ 95: <span class="ruby-identifier">operand_to_s</span>(<span class="ruby-ivar">@operand1</span>, <span class="ruby-identifier">query</span>)
822
+ 96: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@operand2</span>.<span class="ruby-identifier">nil?</span>
823
+ 97: <span class="ruby-ivar">@operator</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">operand_to_s</span>(<span class="ruby-ivar">@operand1</span>, <span class="ruby-identifier">query</span>)
824
+ 98: <span class="ruby-keyword kw">else</span>
825
+ 99: <span class="ruby-node">&quot;(#{operand_to_s(@operand1, query)} #{@operator} &quot;</span> <span class="ruby-operator">+</span>
826
+ 100: <span class="ruby-node">&quot;#{operand_to_s(@operand2, query)})&quot;</span>
827
+ 101: <span class="ruby-keyword kw">end</span>
828
+ 102: <span class="ruby-keyword kw">end</span></pre>
823
829
  </div>
824
830
 
825
831
  </div>
@@ -858,17 +864,17 @@ Force the <em>val</em> into a boolean value.
858
864
  <div class="method-source-code"
859
865
  id="coerce-oolean-source">
860
866
  <pre>
861
- <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 139</span>
862
- 139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coerceBoolean</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">expr</span>)
863
- 140: <span class="ruby-comment cmt"># First the obvious ones.</span>
864
- 141: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">val</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">TrueClass</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">FalseClass</span>
865
- 142: <span class="ruby-comment cmt"># An empty String means false, else true.</span>
866
- 143: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-identifier">val</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
867
- 144: <span class="ruby-comment cmt"># In TJP logic 'non 0' means false.</span>
868
- 145: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">val</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Bignum</span>)
869
- 146:
870
- 147: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Operand #{val} can't be evaluated to true or false.&quot;</span>)
871
- 148: <span class="ruby-keyword kw">end</span></pre>
867
+ <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 140</span>
868
+ 140: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coerceBoolean</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">expr</span>)
869
+ 141: <span class="ruby-comment cmt"># First the obvious ones.</span>
870
+ 142: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">val</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">TrueClass</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">FalseClass</span>
871
+ 143: <span class="ruby-comment cmt"># An empty String means false, else true.</span>
872
+ 144: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-identifier">val</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
873
+ 145: <span class="ruby-comment cmt"># In TJP logic 'non 0' means false.</span>
874
+ 146: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">val</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Bignum</span>)
875
+ 147:
876
+ 148: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Operand #{val} can't be evaluated to true or false.&quot;</span>)
877
+ 149: <span class="ruby-keyword kw">end</span></pre>
872
878
  </div>
873
879
 
874
880
  </div>
@@ -902,13 +908,13 @@ raised.
902
908
  <div class="method-source-code"
903
909
  id="coerce-umber-source">
904
910
  <pre>
905
- <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 151</span>
906
- 151: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coerceNumber</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">expr</span>)
907
- 152: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Float</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Bignum</span>)
908
- 153: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Operand #{val} of type #{val.class} must be a number.&quot;</span>)
909
- 154: <span class="ruby-keyword kw">end</span>
910
- 155: <span class="ruby-identifier">val</span>
911
- 156: <span class="ruby-keyword kw">end</span></pre>
911
+ <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 152</span>
912
+ 152: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coerceNumber</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">expr</span>)
913
+ 153: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Float</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Bignum</span>)
914
+ 154: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Operand #{val} of type #{val.class} must be a number.&quot;</span>)
915
+ 155: <span class="ruby-keyword kw">end</span>
916
+ 156: <span class="ruby-identifier">val</span>
917
+ 157: <span class="ruby-keyword kw">end</span></pre>
912
918
  </div>
913
919
 
914
920
  </div>
@@ -942,14 +948,14 @@ this fails, an exception is raised.
942
948
  <div class="method-source-code"
943
949
  id="coerce-tring-source">
944
950
  <pre>
945
- <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 159</span>
946
- 159: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coerceString</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">expr</span>)
947
- 160: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_s'</span>)
948
- 161: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Operand #{val} of type #{val.class} can't be converted &quot;</span> <span class="ruby-operator">+</span>
949
- 162: <span class="ruby-value str">&quot;into a string&quot;</span>)
950
- 163: <span class="ruby-keyword kw">end</span>
951
- 164: <span class="ruby-identifier">val</span>
952
- 165: <span class="ruby-keyword kw">end</span></pre>
951
+ <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 160</span>
952
+ 160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coerceString</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">expr</span>)
953
+ 161: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_s'</span>)
954
+ 162: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Operand #{val} of type #{val.class} can't be converted &quot;</span> <span class="ruby-operator">+</span>
955
+ 163: <span class="ruby-value str">&quot;into a string&quot;</span>)
956
+ 164: <span class="ruby-keyword kw">end</span>
957
+ 165: <span class="ruby-identifier">val</span>
958
+ 166: <span class="ruby-keyword kw">end</span></pre>
953
959
  </div>
954
960
 
955
961
  </div>
@@ -983,14 +989,14 @@ this fails, an exception is raised.
983
989
  <div class="method-source-code"
984
990
  id="coerce-ime-source">
985
991
  <pre>
986
- <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 168</span>
987
- 168: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coerceTime</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">expr</span>)
988
- 169: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
989
- 170: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Operand #{val} of type #{val.class} can't be converted &quot;</span> <span class="ruby-operator">+</span>
990
- 171: <span class="ruby-value str">&quot;into a date&quot;</span>)
991
- 172: <span class="ruby-keyword kw">end</span>
992
- 173: <span class="ruby-identifier">val</span>
993
- 174: <span class="ruby-keyword kw">end</span></pre>
992
+ <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 169</span>
993
+ 169: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coerceTime</span>(<span class="ruby-identifier">val</span>, <span class="ruby-identifier">expr</span>)
994
+ 170: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
995
+ 171: <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Operand #{val} of type #{val.class} can't be converted &quot;</span> <span class="ruby-operator">+</span>
996
+ 172: <span class="ruby-value str">&quot;into a date&quot;</span>)
997
+ 173: <span class="ruby-keyword kw">end</span>
998
+ 174: <span class="ruby-identifier">val</span>
999
+ 175: <span class="ruby-keyword kw">end</span></pre>
994
1000
  </div>
995
1001
 
996
1002
  </div>
@@ -1026,25 +1032,25 @@ coerced into the proper format by calling the block.
1026
1032
  <div class="method-source-code"
1027
1033
  id="eval-inary-peration-source">
1028
1034
  <pre>
1029
- <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 119</span>
1030
- 119: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">evalBinaryOperation</span>(<span class="ruby-identifier">opnd1</span>, <span class="ruby-identifier">operator</span>, <span class="ruby-identifier">opnd2</span>)
1031
- 120: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">operator</span>
1032
- 121: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&gt;'</span>
1033
- 122: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd2</span>)
1034
- 123: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&gt;='</span>
1035
- 124: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd1</span>) <span class="ruby-operator">&gt;=</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd2</span>)
1036
- 125: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'='</span>
1037
- 126: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd1</span>) <span class="ruby-operator">==</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd2</span>)
1038
- 127: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&lt;'</span>
1039
- 128: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd1</span>) <span class="ruby-operator">&lt;</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd2</span>)
1040
- 129: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&lt;='</span>
1041
- 130: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd1</span>) <span class="ruby-operator">&lt;=</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd2</span>)
1042
- 131: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'!='</span>
1043
- 132: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd1</span>) <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd2</span>)
1044
- 133: <span class="ruby-keyword kw">else</span>
1045
- 134: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Operator error&quot;</span>
1046
- 135: <span class="ruby-keyword kw">end</span>
1047
- 136: <span class="ruby-keyword kw">end</span></pre>
1035
+ <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 120</span>
1036
+ 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">evalBinaryOperation</span>(<span class="ruby-identifier">opnd1</span>, <span class="ruby-identifier">operator</span>, <span class="ruby-identifier">opnd2</span>)
1037
+ 121: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">operator</span>
1038
+ 122: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&gt;'</span>
1039
+ 123: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd2</span>)
1040
+ 124: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&gt;='</span>
1041
+ 125: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd1</span>) <span class="ruby-operator">&gt;=</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd2</span>)
1042
+ 126: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'='</span>
1043
+ 127: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd1</span>) <span class="ruby-operator">==</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd2</span>)
1044
+ 128: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&lt;'</span>
1045
+ 129: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd1</span>) <span class="ruby-operator">&lt;</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd2</span>)
1046
+ 130: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&lt;='</span>
1047
+ 131: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd1</span>) <span class="ruby-operator">&lt;=</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd2</span>)
1048
+ 132: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'!='</span>
1049
+ 133: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd1</span>) <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">opnd2</span>)
1050
+ 134: <span class="ruby-keyword kw">else</span>
1051
+ 135: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Operator error&quot;</span>
1052
+ 136: <span class="ruby-keyword kw">end</span>
1053
+ 137: <span class="ruby-keyword kw">end</span></pre>
1048
1054
  </div>
1049
1055
 
1050
1056
  </div>
@@ -1075,16 +1081,16 @@ coerced into the proper format by calling the block.
1075
1081
  <div class="method-source-code"
1076
1082
  id="operand-to-s-source">
1077
1083
  <pre>
1078
- <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 105</span>
1079
- 105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">operand_to_s</span>(<span class="ruby-identifier">operand</span>, <span class="ruby-identifier">query</span>)
1080
- 106: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">operand</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">LogicalOperation</span>)
1081
- 107: <span class="ruby-identifier">operand</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">query</span>)
1082
- 108: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">operand</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
1083
- 109: <span class="ruby-node">&quot;'#{operand}'&quot;</span>
1084
- 110: <span class="ruby-keyword kw">else</span>
1085
- 111: <span class="ruby-identifier">operand</span>.<span class="ruby-identifier">to_s</span>
1086
- 112: <span class="ruby-keyword kw">end</span>
1087
- 113: <span class="ruby-keyword kw">end</span></pre>
1084
+ <span class="ruby-comment cmt"># File lib/LogicalOperation.rb, line 106</span>
1085
+ 106: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">operand_to_s</span>(<span class="ruby-identifier">operand</span>, <span class="ruby-identifier">query</span>)
1086
+ 107: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">operand</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">LogicalOperation</span>)
1087
+ 108: <span class="ruby-identifier">operand</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">query</span>)
1088
+ 109: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">operand</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
1089
+ 110: <span class="ruby-node">&quot;'#{operand}'&quot;</span>
1090
+ 111: <span class="ruby-keyword kw">else</span>
1091
+ 112: <span class="ruby-identifier">operand</span>.<span class="ruby-identifier">to_s</span>
1092
+ 113: <span class="ruby-keyword kw">end</span>
1093
+ 114: <span class="ruby-keyword kw">end</span></pre>
1088
1094
  </div>
1089
1095
 
1090
1096
  </div>
@@ -127,6 +127,8 @@
127
127
 
128
128
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
129
129
 
130
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
131
+
130
132
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
131
133
 
132
134
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -205,6 +207,8 @@
205
207
 
206
208
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
207
209
 
210
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
211
+
208
212
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
209
213
 
210
214
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -237,6 +241,8 @@
237
241
 
238
242
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
239
243
 
244
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
245
+
240
246
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
241
247
 
242
248
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -517,6 +523,8 @@
517
523
 
518
524
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
519
525
 
526
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
527
+
520
528
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
521
529
 
522
530
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -543,8 +551,6 @@
543
551
 
544
552
  <li><a href="../String.html">String</a></li>
545
553
 
546
- <li><a href="../StringIO.html">StringIO</a></li>
547
-
548
554
  </ul>
549
555
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
550
556
  </div>
@@ -643,12 +649,12 @@
643
649
  <div class="method-source-code"
644
650
  id="new-source">
645
651
  <pre>
646
- <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 23</span>
647
- 23: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">sourceFileInfo</span>)
648
- 24: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
649
- 25: <span class="ruby-ivar">@value</span> = <span class="ruby-identifier">value</span>
650
- 26: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-identifier">sourceFileInfo</span>
651
- 27: <span class="ruby-keyword kw">end</span></pre>
652
+ <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 24</span>
653
+ 24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">sourceFileInfo</span>)
654
+ 25: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
655
+ 26: <span class="ruby-ivar">@value</span> = <span class="ruby-identifier">value</span>
656
+ 27: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-identifier">sourceFileInfo</span>
657
+ 28: <span class="ruby-keyword kw">end</span></pre>
652
658
  </div>
653
659
 
654
660
  </div>
@@ -137,6 +137,8 @@
137
137
 
138
138
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
139
139
 
140
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
141
+
140
142
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
141
143
 
142
144
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -215,6 +217,8 @@
215
217
 
216
218
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
217
219
 
220
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
221
+
218
222
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
219
223
 
220
224
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -247,6 +251,8 @@
247
251
 
248
252
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
249
253
 
254
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
255
+
250
256
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
251
257
 
252
258
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -527,6 +533,8 @@
527
533
 
528
534
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
529
535
 
536
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
537
+
530
538
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
531
539
 
532
540
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -553,8 +561,6 @@
553
561
 
554
562
  <li><a href="../String.html">String</a></li>
555
563
 
556
- <li><a href="../StringIO.html">StringIO</a></li>
557
-
558
564
  </ul>
559
565
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
560
566
  </div>
@@ -609,11 +615,11 @@ during the macro call.
609
615
  <div class="method-source-code"
610
616
  id="new-source">
611
617
  <pre>
612
- <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 37</span>
613
- 37: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">messageHandler</span>)
614
- 38: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
615
- 39: <span class="ruby-ivar">@macros</span> = {}
616
- 40: <span class="ruby-keyword kw">end</span></pre>
618
+ <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 38</span>
619
+ 38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">messageHandler</span>)
620
+ 39: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
621
+ 40: <span class="ruby-ivar">@macros</span> = {}
622
+ 41: <span class="ruby-keyword kw">end</span></pre>
617
623
  </div>
618
624
 
619
625
  </div>
@@ -652,10 +658,10 @@ Add a new macro definition to the table or replace an existing one.
652
658
  <div class="method-source-code"
653
659
  id="add-source">
654
660
  <pre>
655
- <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 43</span>
656
- 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add</span>(<span class="ruby-identifier">macro</span>)
657
- 44: <span class="ruby-ivar">@macros</span>[<span class="ruby-identifier">macro</span>.<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">macro</span>
658
- 45: <span class="ruby-keyword kw">end</span></pre>
661
+ <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 44</span>
662
+ 44: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add</span>(<span class="ruby-identifier">macro</span>)
663
+ 45: <span class="ruby-ivar">@macros</span>[<span class="ruby-identifier">macro</span>.<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">macro</span>
664
+ 46: <span class="ruby-keyword kw">end</span></pre>
659
665
  </div>
660
666
 
661
667
  </div>
@@ -688,10 +694,10 @@ Remove all definitions from the table.
688
694
  <div class="method-source-code"
689
695
  id="clear-source">
690
696
  <pre>
691
- <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 48</span>
692
- 48: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear</span>
693
- 49: <span class="ruby-ivar">@macros</span> = []
694
- 50: <span class="ruby-keyword kw">end</span></pre>
697
+ <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 49</span>
698
+ 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear</span>
699
+ 50: <span class="ruby-ivar">@macros</span> = []
700
+ 51: <span class="ruby-keyword kw">end</span></pre>
695
701
  </div>
696
702
 
697
703
  </div>
@@ -724,10 +730,10 @@ This function sends an error message to the message handler.
724
730
  <div class="method-source-code"
725
731
  id="error-source">
726
732
  <pre>
727
- <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 76</span>
728
- 76: <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>)
729
- 77: <span class="ruby-ivar">@messageHandler</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>)
730
- 78: <span class="ruby-keyword kw">end</span></pre>
733
+ <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 77</span>
734
+ 77: <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>)
735
+ 78: <span class="ruby-ivar">@messageHandler</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>)
736
+ 79: <span class="ruby-keyword kw">end</span></pre>
731
737
  </div>
732
738
 
733
739
  </div>
@@ -760,10 +766,10 @@ Returns true only if a macro named <em>name</em> is defined in the table.
760
766
  <div class="method-source-code"
761
767
  id="include--source">
762
768
  <pre>
763
- <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 53</span>
764
- 53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
765
- 54: <span class="ruby-ivar">@macros</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
766
- 55: <span class="ruby-keyword kw">end</span></pre>
769
+ <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 54</span>
770
+ 54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
771
+ 55: <span class="ruby-ivar">@macros</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
772
+ 56: <span class="ruby-keyword kw">end</span></pre>
767
773
  </div>
768
774
 
769
775
  </div>
@@ -800,19 +806,19 @@ unchanged. No error is generated.
800
806
  <div class="method-source-code"
801
807
  id="resolve-source">
802
808
  <pre>
803
- <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 62</span>
804
- 62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resolve</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">sourceFileInfo</span>)
805
- 63: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
806
- 64: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@macros</span>[<span class="ruby-identifier">name</span>]
807
- 65:
808
- 66: <span class="ruby-identifier">resolved</span> = <span class="ruby-ivar">@macros</span>[<span class="ruby-identifier">name</span>].<span class="ruby-identifier">value</span>.<span class="ruby-identifier">dup</span>
809
- 67: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
810
- 68: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
811
- 69: <span class="ruby-identifier">resolved</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">&quot;${#{i}}&quot;</span>, <span class="ruby-identifier">arg</span>)
812
- 70: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
813
- 71: <span class="ruby-keyword kw">end</span>
814
- 72: [ <span class="ruby-ivar">@macros</span>[<span class="ruby-identifier">name</span>], <span class="ruby-identifier">resolved</span> ]
815
- 73: <span class="ruby-keyword kw">end</span></pre>
809
+ <span class="ruby-comment cmt"># File lib/MacroTable.rb, line 63</span>
810
+ 63: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resolve</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">sourceFileInfo</span>)
811
+ 64: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
812
+ 65: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@macros</span>[<span class="ruby-identifier">name</span>]
813
+ 66:
814
+ 67: <span class="ruby-identifier">resolved</span> = <span class="ruby-ivar">@macros</span>[<span class="ruby-identifier">name</span>].<span class="ruby-identifier">value</span>.<span class="ruby-identifier">dup</span>
815
+ 68: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
816
+ 69: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
817
+ 70: <span class="ruby-identifier">resolved</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">&quot;${#{i}}&quot;</span>, <span class="ruby-identifier">arg</span>)
818
+ 71: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
819
+ 72: <span class="ruby-keyword kw">end</span>
820
+ 73: [ <span class="ruby-ivar">@macros</span>[<span class="ruby-identifier">name</span>], <span class="ruby-identifier">resolved</span> ]
821
+ 74: <span class="ruby-keyword kw">end</span></pre>
816
822
  </div>
817
823
 
818
824
  </div>