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
@@ -193,6 +193,10 @@
193
193
 
194
194
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
195
195
 
196
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
197
+
198
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
199
+
196
200
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
197
201
 
198
202
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -265,8 +269,6 @@
265
269
 
266
270
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
267
271
 
268
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
269
-
270
272
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
271
273
 
272
274
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -331,6 +333,8 @@
331
333
 
332
334
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
333
335
 
336
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
337
+
334
338
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
335
339
 
336
340
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -377,8 +381,6 @@
377
381
 
378
382
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
379
383
 
380
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
381
-
382
384
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
383
385
 
384
386
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -419,6 +421,8 @@
419
421
 
420
422
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
421
423
 
424
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
425
+
422
426
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
423
427
 
424
428
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -529,6 +533,8 @@
529
533
 
530
534
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
531
535
 
536
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
537
+
532
538
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
533
539
 
534
540
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -859,6 +865,23 @@ contains an error message.
859
865
 
860
866
 
861
867
 
868
+ </div>
869
+ </div>
870
+
871
+ <div id="self-ontained-attribute-method" class="method-detail">
872
+ <a name="selfContained"></a>
873
+
874
+ <a name="selfContained="></a>
875
+
876
+ <div class="method-heading attribute-method-heading">
877
+ <span class="method-name">selfContained</span><span
878
+ class="attribute-access-type">[RW]</span>
879
+ </div>
880
+
881
+ <div class="method-description">
882
+
883
+
884
+
862
885
  </div>
863
886
  </div>
864
887
 
@@ -1061,19 +1084,20 @@ need to be sufficent to uniquely identify an attribute.
1061
1084
  48: <span class="ruby-identifier">ps</span> = <span class="ruby-node">%( project propertyType propertyId property scopePropertyId
1062
1085
  49: scopeProperty attributeId scenario scenarioIdx
1063
1086
  50: loadUnit numberFormat currencyFormat timeFormat
1064
- 51: costAccount revenueAccount)</span>
1065
- 52: <span class="ruby-identifier">ps</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
1066
- 53: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">p</span>, <span class="ruby-identifier">parameters</span>[<span class="ruby-identifier">p</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">parameters</span>[<span class="ruby-identifier">p</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>)
1067
- 54: <span class="ruby-keyword kw">end</span>
1068
- 55:
1069
- 56: <span class="ruby-comment cmt"># instance_variable_set does not call writer functions. So we need to</span>
1070
- 57: <span class="ruby-comment cmt"># handle @start, @end, @startIdx and @endIdx separately.</span>
1071
- 58: <span class="ruby-node">%( end endIdx start startIdx )</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
1072
- 59: <span class="ruby-identifier">send</span>(<span class="ruby-identifier">p</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'='</span>, <span class="ruby-identifier">parameters</span>[<span class="ruby-identifier">p</span>]) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parameters</span>[<span class="ruby-identifier">p</span>]
1073
- 60: <span class="ruby-keyword kw">end</span>
1074
- 61:
1075
- 62: <span class="ruby-identifier">reset</span>
1076
- 63: <span class="ruby-keyword kw">end</span></pre>
1087
+ 51: costAccount revenueAccount selfContained)</span>
1088
+ 52: <span class="ruby-ivar">@selfContained</span> = <span class="ruby-keyword kw">false</span>
1089
+ 53: <span class="ruby-identifier">ps</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
1090
+ 54: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">p</span>, <span class="ruby-identifier">parameters</span>[<span class="ruby-identifier">p</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">parameters</span>[<span class="ruby-identifier">p</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>)
1091
+ 55: <span class="ruby-keyword kw">end</span>
1092
+ 56:
1093
+ 57: <span class="ruby-comment cmt"># instance_variable_set does not call writer functions. So we need to</span>
1094
+ 58: <span class="ruby-comment cmt"># handle @start, @end, @startIdx and @endIdx separately.</span>
1095
+ 59: <span class="ruby-node">%( end endIdx start startIdx )</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
1096
+ 60: <span class="ruby-identifier">send</span>(<span class="ruby-identifier">p</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'='</span>, <span class="ruby-identifier">parameters</span>[<span class="ruby-identifier">p</span>]) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parameters</span>[<span class="ruby-identifier">p</span>]
1097
+ 61: <span class="ruby-keyword kw">end</span>
1098
+ 62:
1099
+ 63: <span class="ruby-identifier">reset</span>
1100
+ 64: <span class="ruby-keyword kw">end</span></pre>
1077
1101
  </div>
1078
1102
 
1079
1103
  </div>
@@ -1110,17 +1134,17 @@ need to be sufficent to uniquely identify an attribute.
1110
1134
  <div class="method-source-code"
1111
1135
  id="end-source">
1112
1136
  <pre>
1113
- <span class="ruby-comment cmt"># File lib/Query.rb, line 90</span>
1114
- 90: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">end</span>=(<span class="ruby-identifier">date</span>)
1115
- 91: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
1116
- 92: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">date</span>
1117
- 93: <span class="ruby-ivar">@endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>, <span class="ruby-keyword kw">true</span>)
1118
- 94: <span class="ruby-comment cmt">#elsif date.is_a?(Fixnum)</span>
1119
- 95: <span class="ruby-comment cmt"># self.endIdx=(date)</span>
1120
- 96: <span class="ruby-keyword kw">else</span>
1121
- 97: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unsupported type #{date.class}&quot;</span>
1122
- 98: <span class="ruby-keyword kw">end</span>
1123
- 99: <span class="ruby-keyword kw">end</span></pre>
1137
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 91</span>
1138
+ 91: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">end</span>=(<span class="ruby-identifier">date</span>)
1139
+ 92: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
1140
+ 93: <span class="ruby-ivar">@end</span> = <span class="ruby-identifier">date</span>
1141
+ 94: <span class="ruby-ivar">@endIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>, <span class="ruby-keyword kw">true</span>)
1142
+ 95: <span class="ruby-comment cmt">#elsif date.is_a?(Fixnum)</span>
1143
+ 96: <span class="ruby-comment cmt"># self.endIdx=(date)</span>
1144
+ 97: <span class="ruby-keyword kw">else</span>
1145
+ 98: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unsupported type #{date.class}&quot;</span>
1146
+ 99: <span class="ruby-keyword kw">end</span>
1147
+ 100: <span class="ruby-keyword kw">end</span></pre>
1124
1148
  </div>
1125
1149
 
1126
1150
  </div>
@@ -1151,17 +1175,17 @@ need to be sufficent to uniquely identify an attribute.
1151
1175
  <div class="method-source-code"
1152
1176
  id="end-dx--source">
1153
1177
  <pre>
1154
- <span class="ruby-comment cmt"># File lib/Query.rb, line 101</span>
1155
- 101: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">endIdx=</span>(<span class="ruby-identifier">idx</span>)
1156
- 102: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>)
1157
- 103: <span class="ruby-ivar">@endIdx</span> = <span class="ruby-identifier">idx</span>
1158
- 104: <span class="ruby-ivar">@end</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>)
1159
- 105: <span class="ruby-comment cmt">#elsif idx.is_a?(TjTime)</span>
1160
- 106: <span class="ruby-comment cmt"># self.end=(idx)</span>
1161
- 107: <span class="ruby-keyword kw">else</span>
1162
- 108: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unsupported type #{idx.class}&quot;</span>
1163
- 109: <span class="ruby-keyword kw">end</span>
1164
- 110: <span class="ruby-keyword kw">end</span></pre>
1178
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 102</span>
1179
+ 102: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">endIdx=</span>(<span class="ruby-identifier">idx</span>)
1180
+ 103: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>)
1181
+ 104: <span class="ruby-ivar">@endIdx</span> = <span class="ruby-identifier">idx</span>
1182
+ 105: <span class="ruby-ivar">@end</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>)
1183
+ 106: <span class="ruby-comment cmt">#elsif idx.is_a?(TjTime)</span>
1184
+ 107: <span class="ruby-comment cmt"># self.end=(idx)</span>
1185
+ 108: <span class="ruby-keyword kw">else</span>
1186
+ 109: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unsupported type #{idx.class}&quot;</span>
1187
+ 110: <span class="ruby-keyword kw">end</span>
1188
+ 111: <span class="ruby-keyword kw">end</span></pre>
1165
1189
  </div>
1166
1190
 
1167
1191
  </div>
@@ -1200,69 +1224,69 @@ href="Query.html#method-i-to_sort">to_sort</a>() and result().
1200
1224
  <div class="method-source-code"
1201
1225
  id="process-source">
1202
1226
  <pre>
1203
- <span class="ruby-comment cmt"># File lib/Query.rb, line 117</span>
1204
- 117: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process</span>
1205
- 118: <span class="ruby-identifier">reset</span>
1206
- 119: <span class="ruby-keyword kw">begin</span>
1207
- 120: <span class="ruby-comment cmt"># Resolve property reference from property ID.</span>
1208
- 121: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertyId</span>.<span class="ruby-identifier">nil?</span>
1209
- 122: <span class="ruby-ivar">@property</span> = <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-ivar">@propertyType</span>, <span class="ruby-ivar">@propertyId</span>)
1210
- 123: <span class="ruby-keyword kw">end</span>
1211
- 124:
1212
- 125: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@property</span>
1213
- 126: <span class="ruby-comment cmt"># No property was provided. We are looking for a project attribute.</span>
1214
- 127: <span class="ruby-identifier">supportedAttrs</span> = <span class="ruby-node">%( copyright currency end name now projectid
1215
- 128: start version )</span>
1216
- 129: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">supportedAttrs</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-ivar">@attributeId</span>)
1217
- 130: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
1218
- 131: <span class="ruby-node">&quot;Unsupported project attribute '#{@attributeId}'&quot;</span>
1219
- 132: <span class="ruby-keyword kw">end</span>
1220
- 133: <span class="ruby-identifier">attr</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-ivar">@attributeId</span>]
1221
- 134: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
1222
- 135: <span class="ruby-ivar">@sortable</span> = <span class="ruby-ivar">@numerical</span> = <span class="ruby-identifier">attr</span>
1223
- 136: <span class="ruby-ivar">@string</span> = <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-ivar">@timeFormat</span>)
1224
- 137: <span class="ruby-keyword kw">else</span>
1225
- 138: <span class="ruby-ivar">@sortable</span> = <span class="ruby-ivar">@string</span> = <span class="ruby-identifier">attr</span>
1226
- 139: <span class="ruby-keyword kw">end</span>
1227
- 140: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
1228
- 141: <span class="ruby-keyword kw">end</span>
1229
- 142:
1230
- 143: <span class="ruby-comment cmt"># Same for the scope property.</span>
1231
- 144: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@scopeProperty</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@scopePropertyId</span>.<span class="ruby-identifier">nil?</span>
1232
- 145: <span class="ruby-ivar">@scopeProperty</span> = <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-ivar">@scopePropertyType</span>,
1233
- 146: <span class="ruby-ivar">@scopePropertyId</span>)
1234
- 147: <span class="ruby-keyword kw">end</span>
1235
- 148: <span class="ruby-comment cmt"># Make sure the have a reference to the project.</span>
1236
- 149: <span class="ruby-ivar">@project</span> = <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">project</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>
1237
- 150:
1238
- 151: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenario</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@scenarioIdx</span>
1239
- 152: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-ivar">@scenario</span>)
1240
- 153: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scenarioIdx</span>
1241
- 154: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Query cannot resolve scenario '#{@scenario}'&quot;</span>
1242
- 155: <span class="ruby-keyword kw">end</span>
1243
- 156: <span class="ruby-keyword kw">end</span>
1244
- 157:
1245
- 158: <span class="ruby-identifier">queryMethodName</span> = <span class="ruby-value str">'query_'</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@attributeId</span>
1246
- 159: <span class="ruby-comment cmt"># First we check for non-scenario-specific query functions.</span>
1247
- 160: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">queryMethodName</span>)
1248
- 161: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">queryMethodName</span>, <span class="ruby-keyword kw">self</span>)
1249
- 162: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@scenarioIdx</span> <span class="ruby-operator">&amp;&amp;</span>
1250
- 163: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">data</span>[<span class="ruby-ivar">@scenarioIdx</span>].<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">queryMethodName</span>)
1251
- 164: <span class="ruby-comment cmt"># Then we check for scenario-specific ones via the @data member.</span>
1252
- 165: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">queryMethodName</span>, <span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-keyword kw">self</span>)
1253
- 166: <span class="ruby-keyword kw">else</span>
1254
- 167: <span class="ruby-comment cmt"># The result is a BaseAttribute</span>
1255
- 168: <span class="ruby-keyword kw">unless</span> (<span class="ruby-ivar">@attr</span> = <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">getAttribute</span>(<span class="ruby-ivar">@attributeId</span>, <span class="ruby-ivar">@scenarioIdx</span>))
1256
- 169: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-node">&quot;Unknown attribute #{@attributeId} queried&quot;</span>
1257
- 170: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">false</span>
1258
- 171: <span class="ruby-keyword kw">end</span>
1259
- 172: <span class="ruby-keyword kw">end</span>
1260
- 173: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span>
1261
- 174: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">message</span>
1262
- 175: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">false</span>
1263
- 176: <span class="ruby-keyword kw">end</span>
1264
- 177: <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
1265
- 178: <span class="ruby-keyword kw">end</span></pre>
1227
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 118</span>
1228
+ 118: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process</span>
1229
+ 119: <span class="ruby-identifier">reset</span>
1230
+ 120: <span class="ruby-keyword kw">begin</span>
1231
+ 121: <span class="ruby-comment cmt"># Resolve property reference from property ID.</span>
1232
+ 122: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertyId</span>.<span class="ruby-identifier">nil?</span>
1233
+ 123: <span class="ruby-ivar">@property</span> = <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-ivar">@propertyType</span>, <span class="ruby-ivar">@propertyId</span>)
1234
+ 124: <span class="ruby-keyword kw">end</span>
1235
+ 125:
1236
+ 126: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@property</span>
1237
+ 127: <span class="ruby-comment cmt"># No property was provided. We are looking for a project attribute.</span>
1238
+ 128: <span class="ruby-identifier">supportedAttrs</span> = <span class="ruby-node">%( copyright currency end name now projectid
1239
+ 129: start version )</span>
1240
+ 130: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">supportedAttrs</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-ivar">@attributeId</span>)
1241
+ 131: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
1242
+ 132: <span class="ruby-node">&quot;Unsupported project attribute '#{@attributeId}'&quot;</span>
1243
+ 133: <span class="ruby-keyword kw">end</span>
1244
+ 134: <span class="ruby-identifier">attr</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-ivar">@attributeId</span>]
1245
+ 135: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
1246
+ 136: <span class="ruby-ivar">@sortable</span> = <span class="ruby-ivar">@numerical</span> = <span class="ruby-identifier">attr</span>
1247
+ 137: <span class="ruby-ivar">@string</span> = <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-ivar">@timeFormat</span>)
1248
+ 138: <span class="ruby-keyword kw">else</span>
1249
+ 139: <span class="ruby-ivar">@sortable</span> = <span class="ruby-ivar">@string</span> = <span class="ruby-identifier">attr</span>
1250
+ 140: <span class="ruby-keyword kw">end</span>
1251
+ 141: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
1252
+ 142: <span class="ruby-keyword kw">end</span>
1253
+ 143:
1254
+ 144: <span class="ruby-comment cmt"># Same for the scope property.</span>
1255
+ 145: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@scopeProperty</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@scopePropertyId</span>.<span class="ruby-identifier">nil?</span>
1256
+ 146: <span class="ruby-ivar">@scopeProperty</span> = <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-ivar">@scopePropertyType</span>,
1257
+ 147: <span class="ruby-ivar">@scopePropertyId</span>)
1258
+ 148: <span class="ruby-keyword kw">end</span>
1259
+ 149: <span class="ruby-comment cmt"># Make sure the have a reference to the project.</span>
1260
+ 150: <span class="ruby-ivar">@project</span> = <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">project</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>
1261
+ 151:
1262
+ 152: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenario</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@scenarioIdx</span>
1263
+ 153: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-ivar">@scenario</span>)
1264
+ 154: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scenarioIdx</span>
1265
+ 155: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Query cannot resolve scenario '#{@scenario}'&quot;</span>
1266
+ 156: <span class="ruby-keyword kw">end</span>
1267
+ 157: <span class="ruby-keyword kw">end</span>
1268
+ 158:
1269
+ 159: <span class="ruby-identifier">queryMethodName</span> = <span class="ruby-value str">'query_'</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@attributeId</span>
1270
+ 160: <span class="ruby-comment cmt"># First we check for non-scenario-specific query functions.</span>
1271
+ 161: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">queryMethodName</span>)
1272
+ 162: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">queryMethodName</span>, <span class="ruby-keyword kw">self</span>)
1273
+ 163: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@scenarioIdx</span> <span class="ruby-operator">&amp;&amp;</span>
1274
+ 164: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">data</span>[<span class="ruby-ivar">@scenarioIdx</span>].<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">queryMethodName</span>)
1275
+ 165: <span class="ruby-comment cmt"># Then we check for scenario-specific ones via the @data member.</span>
1276
+ 166: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">queryMethodName</span>, <span class="ruby-ivar">@scenarioIdx</span>, <span class="ruby-keyword kw">self</span>)
1277
+ 167: <span class="ruby-keyword kw">else</span>
1278
+ 168: <span class="ruby-comment cmt"># The result is a BaseAttribute</span>
1279
+ 169: <span class="ruby-keyword kw">unless</span> (<span class="ruby-ivar">@attr</span> = <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">getAttribute</span>(<span class="ruby-ivar">@attributeId</span>, <span class="ruby-ivar">@scenarioIdx</span>))
1280
+ 170: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-node">&quot;Unknown attribute #{@attributeId} queried&quot;</span>
1281
+ 171: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">false</span>
1282
+ 172: <span class="ruby-keyword kw">end</span>
1283
+ 173: <span class="ruby-keyword kw">end</span>
1284
+ 174: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span>
1285
+ 175: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">message</span>
1286
+ 176: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">false</span>
1287
+ 177: <span class="ruby-keyword kw">end</span>
1288
+ 178: <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
1289
+ 179: <span class="ruby-keyword kw">end</span></pre>
1266
1290
  </div>
1267
1291
 
1268
1292
  </div>
@@ -1295,22 +1319,22 @@ Return the result in the orginal form. It may be nil.
1295
1319
  <div class="method-source-code"
1296
1320
  id="result-source">
1297
1321
  <pre>
1298
- <span class="ruby-comment cmt"># File lib/Query.rb, line 203</span>
1299
- 203: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">result</span>
1300
- 204: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attr</span>
1301
- 205: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">value</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">ReferenceAttribute</span>)
1302
- 206: <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">value</span>[<span class="ruby-value">0</span>]
1303
- 207: <span class="ruby-keyword kw">else</span>
1304
- 208: <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">value</span>
1305
- 209: <span class="ruby-keyword kw">end</span>
1306
- 210: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@rti</span>
1307
- 211: <span class="ruby-ivar">@rti</span>
1308
- 212: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@numerical</span>
1309
- 213: <span class="ruby-ivar">@numerical</span>
1310
- 214: <span class="ruby-keyword kw">else</span>
1311
- 215: <span class="ruby-ivar">@string</span>
1312
- 216: <span class="ruby-keyword kw">end</span>
1313
- 217: <span class="ruby-keyword kw">end</span></pre>
1322
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 204</span>
1323
+ 204: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">result</span>
1324
+ 205: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attr</span>
1325
+ 206: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">value</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">ReferenceAttribute</span>)
1326
+ 207: <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">value</span>[<span class="ruby-value">0</span>]
1327
+ 208: <span class="ruby-keyword kw">else</span>
1328
+ 209: <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">value</span>
1329
+ 210: <span class="ruby-keyword kw">end</span>
1330
+ 211: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@rti</span>
1331
+ 212: <span class="ruby-ivar">@rti</span>
1332
+ 213: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@numerical</span>
1333
+ 214: <span class="ruby-ivar">@numerical</span>
1334
+ 215: <span class="ruby-keyword kw">else</span>
1335
+ 216: <span class="ruby-ivar">@string</span>
1336
+ 217: <span class="ruby-keyword kw">end</span>
1337
+ 218: <span class="ruby-keyword kw">end</span></pre>
1314
1338
  </div>
1315
1339
 
1316
1340
  </div>
@@ -1345,10 +1369,10 @@ optional unit as a <a href="../String.html">String</a>.
1345
1369
  <div class="method-source-code"
1346
1370
  id="scale-uration-source">
1347
1371
  <pre>
1348
- <span class="ruby-comment cmt"># File lib/Query.rb, line 222</span>
1349
- 222: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleDuration</span>(<span class="ruby-identifier">value</span>)
1350
- 223: <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, [ <span class="ruby-value">24</span> * <span class="ruby-value">60</span>, <span class="ruby-value">24</span>, <span class="ruby-value">1</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">7</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">30.42</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">365</span> ])
1351
- 224: <span class="ruby-keyword kw">end</span></pre>
1372
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 223</span>
1373
+ 223: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleDuration</span>(<span class="ruby-identifier">value</span>)
1374
+ 224: <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, [ <span class="ruby-value">24</span> * <span class="ruby-value">60</span>, <span class="ruby-value">24</span>, <span class="ruby-value">1</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">7</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">30.42</span>, <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-value">365</span> ])
1375
+ 225: <span class="ruby-keyword kw">end</span></pre>
1352
1376
  </div>
1353
1377
 
1354
1378
  </div>
@@ -1383,15 +1407,15 @@ value with optional unit as a <a href="../String.html">String</a>.
1383
1407
  <div class="method-source-code"
1384
1408
  id="scale-oad-source">
1385
1409
  <pre>
1386
- <span class="ruby-comment cmt"># File lib/Query.rb, line 229</span>
1387
- 229: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleLoad</span>(<span class="ruby-identifier">value</span>)
1388
- 230: <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, [ <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span> * <span class="ruby-value">60</span>,
1389
- 231: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span>,
1390
- 232: <span class="ruby-value">1.0</span>,
1391
- 233: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">weeklyWorkingDays</span>,
1392
- 234: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">monthlyWorkingDays</span>,
1393
- 235: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">yearlyWorkingDays</span> ])
1394
- 236: <span class="ruby-keyword kw">end</span></pre>
1410
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 230</span>
1411
+ 230: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleLoad</span>(<span class="ruby-identifier">value</span>)
1412
+ 231: <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, [ <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span> * <span class="ruby-value">60</span>,
1413
+ 232: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span>,
1414
+ 233: <span class="ruby-value">1.0</span>,
1415
+ 234: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">weeklyWorkingDays</span>,
1416
+ 235: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">monthlyWorkingDays</span>,
1417
+ 236: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">yearlyWorkingDays</span> ])
1418
+ 237: <span class="ruby-keyword kw">end</span></pre>
1395
1419
  </div>
1396
1420
 
1397
1421
  </div>
@@ -1426,17 +1450,17 @@ index. We store both, but we need to assure they are always in sync.
1426
1450
  <div class="method-source-code"
1427
1451
  id="start--source">
1428
1452
  <pre>
1429
- <span class="ruby-comment cmt"># File lib/Query.rb, line 68</span>
1430
- 68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">start=</span>(<span class="ruby-identifier">date</span>)
1431
- 69: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
1432
- 70: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">date</span>
1433
- 71: <span class="ruby-ivar">@startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>, <span class="ruby-keyword kw">true</span>)
1434
- 72: <span class="ruby-comment cmt">#elsif date.is_a?(Fixnum)</span>
1435
- 73: <span class="ruby-comment cmt"># self.startIdx=(date)</span>
1436
- 74: <span class="ruby-keyword kw">else</span>
1437
- 75: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unsupported type #{date.class}&quot;</span>
1438
- 76: <span class="ruby-keyword kw">end</span>
1439
- 77: <span class="ruby-keyword kw">end</span></pre>
1453
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 69</span>
1454
+ 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">start=</span>(<span class="ruby-identifier">date</span>)
1455
+ 70: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
1456
+ 71: <span class="ruby-ivar">@start</span> = <span class="ruby-identifier">date</span>
1457
+ 72: <span class="ruby-ivar">@startIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">date</span>, <span class="ruby-keyword kw">true</span>)
1458
+ 73: <span class="ruby-comment cmt">#elsif date.is_a?(Fixnum)</span>
1459
+ 74: <span class="ruby-comment cmt"># self.startIdx=(date)</span>
1460
+ 75: <span class="ruby-keyword kw">else</span>
1461
+ 76: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unsupported type #{date.class}&quot;</span>
1462
+ 77: <span class="ruby-keyword kw">end</span>
1463
+ 78: <span class="ruby-keyword kw">end</span></pre>
1440
1464
  </div>
1441
1465
 
1442
1466
  </div>
@@ -1467,17 +1491,17 @@ index. We store both, but we need to assure they are always in sync.
1467
1491
  <div class="method-source-code"
1468
1492
  id="start-dx--source">
1469
1493
  <pre>
1470
- <span class="ruby-comment cmt"># File lib/Query.rb, line 79</span>
1471
- 79: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startIdx=</span>(<span class="ruby-identifier">idx</span>)
1472
- 80: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>)
1473
- 81: <span class="ruby-ivar">@startIdx</span> = <span class="ruby-identifier">idx</span>
1474
- 82: <span class="ruby-ivar">@start</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>)
1475
- 83: <span class="ruby-comment cmt">#elsif idx.is_a?(TjTime)</span>
1476
- 84: <span class="ruby-comment cmt"># self.start=(idx)</span>
1477
- 85: <span class="ruby-keyword kw">else</span>
1478
- 86: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unsupported type #{idx.class}&quot;</span>
1479
- 87: <span class="ruby-keyword kw">end</span>
1480
- 88: <span class="ruby-keyword kw">end</span></pre>
1494
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 80</span>
1495
+ 80: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startIdx=</span>(<span class="ruby-identifier">idx</span>)
1496
+ 81: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">idx</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Fixnum</span>)
1497
+ 82: <span class="ruby-ivar">@startIdx</span> = <span class="ruby-identifier">idx</span>
1498
+ 83: <span class="ruby-ivar">@start</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">idxToDate</span>(<span class="ruby-identifier">idx</span>)
1499
+ 84: <span class="ruby-comment cmt">#elsif idx.is_a?(TjTime)</span>
1500
+ 85: <span class="ruby-comment cmt"># self.start=(idx)</span>
1501
+ 86: <span class="ruby-keyword kw">else</span>
1502
+ 87: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unsupported type #{idx.class}&quot;</span>
1503
+ 88: <span class="ruby-keyword kw">end</span>
1504
+ 89: <span class="ruby-keyword kw">end</span></pre>
1481
1505
  </div>
1482
1506
 
1483
1507
  </div>
@@ -1511,10 +1535,10 @@ The result may be nil.
1511
1535
  <div class="method-source-code"
1512
1536
  id="to-num-source">
1513
1537
  <pre>
1514
- <span class="ruby-comment cmt"># File lib/Query.rb, line 187</span>
1515
- 187: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_num</span>
1516
- 188: <span class="ruby-ivar">@attr</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">to_num</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@numerical</span>
1517
- 189: <span class="ruby-keyword kw">end</span></pre>
1538
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 188</span>
1539
+ 188: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_num</span>
1540
+ 189: <span class="ruby-ivar">@attr</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">to_num</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@numerical</span>
1541
+ 190: <span class="ruby-keyword kw">end</span></pre>
1518
1542
  </div>
1519
1543
 
1520
1544
  </div>
@@ -1549,10 +1573,10 @@ result may be nil.
1549
1573
  <div class="method-source-code"
1550
1574
  id="to-rti-source">
1551
1575
  <pre>
1552
- <span class="ruby-comment cmt"># File lib/Query.rb, line 198</span>
1553
- 198: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_rti</span>
1554
- 199: <span class="ruby-ivar">@attr</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">to_rti</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">:</span> <span class="ruby-ivar">@rti</span>
1555
- 200: <span class="ruby-keyword kw">end</span></pre>
1576
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 199</span>
1577
+ 199: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_rti</span>
1578
+ 200: <span class="ruby-ivar">@attr</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">to_rti</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">:</span> <span class="ruby-ivar">@rti</span>
1579
+ 201: <span class="ruby-keyword kw">end</span></pre>
1556
1580
  </div>
1557
1581
 
1558
1582
  </div>
@@ -1586,10 +1610,10 @@ href="../String.html">String</a>. The result may be nil.
1586
1610
  <div class="method-source-code"
1587
1611
  id="to-s-source">
1588
1612
  <pre>
1589
- <span class="ruby-comment cmt"># File lib/Query.rb, line 181</span>
1590
- 181: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1591
- 182: <span class="ruby-ivar">@attr</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">:</span> (<span class="ruby-ivar">@rti</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@rti</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">:</span> (<span class="ruby-ivar">@string</span> <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>))
1592
- 183: <span class="ruby-keyword kw">end</span></pre>
1613
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 182</span>
1614
+ 182: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1615
+ 183: <span class="ruby-ivar">@attr</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">:</span> (<span class="ruby-ivar">@rti</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@rti</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">:</span> (<span class="ruby-ivar">@string</span> <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>))
1616
+ 184: <span class="ruby-keyword kw">end</span></pre>
1593
1617
  </div>
1594
1618
 
1595
1619
  </div>
@@ -1623,10 +1647,10 @@ result may be nil.
1623
1647
  <div class="method-source-code"
1624
1648
  id="to-sort-source">
1625
1649
  <pre>
1626
- <span class="ruby-comment cmt"># File lib/Query.rb, line 193</span>
1627
- 193: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_sort</span>
1628
- 194: <span class="ruby-ivar">@attr</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">to_sort</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@sortable</span>
1629
- 195: <span class="ruby-keyword kw">end</span></pre>
1650
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 194</span>
1651
+ 194: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_sort</span>
1652
+ 195: <span class="ruby-ivar">@attr</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">to_sort</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@sortable</span>
1653
+ 196: <span class="ruby-keyword kw">end</span></pre>
1630
1654
  </div>
1631
1655
 
1632
1656
  </div>
@@ -1666,12 +1690,12 @@ result data.
1666
1690
  <div class="method-source-code"
1667
1691
  id="reset-source">
1668
1692
  <pre>
1669
- <span class="ruby-comment cmt"># File lib/Query.rb, line 330</span>
1670
- 330: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
1671
- 331: <span class="ruby-ivar">@attr</span> = <span class="ruby-ivar">@numerical</span> = <span class="ruby-ivar">@sortable</span> = <span class="ruby-ivar">@string</span> = <span class="ruby-ivar">@rti</span> = <span class="ruby-keyword kw">nil</span>
1672
- 332: <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
1673
- 333: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-keyword kw">nil</span>
1674
- 334: <span class="ruby-keyword kw">end</span></pre>
1693
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 331</span>
1694
+ 331: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
1695
+ 332: <span class="ruby-ivar">@attr</span> = <span class="ruby-ivar">@numerical</span> = <span class="ruby-ivar">@sortable</span> = <span class="ruby-ivar">@string</span> = <span class="ruby-ivar">@rti</span> = <span class="ruby-keyword kw">nil</span>
1696
+ 333: <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
1697
+ 334: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-keyword kw">nil</span>
1698
+ 335: <span class="ruby-keyword kw">end</span></pre>
1675
1699
  </div>
1676
1700
 
1677
1701
  </div>
@@ -1702,22 +1726,22 @@ result data.
1702
1726
  <div class="method-source-code"
1703
1727
  id="resolve-roperty-d-source">
1704
1728
  <pre>
1705
- <span class="ruby-comment cmt"># File lib/Query.rb, line 240</span>
1706
- 240: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-identifier">pType</span>, <span class="ruby-identifier">pId</span>)
1707
- 241: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>
1708
- 242: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">&quot;Need Project reference to process the query&quot;</span>
1709
- 243: <span class="ruby-keyword kw">end</span>
1710
- 244: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">pType</span>
1711
- 245: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:Account</span>
1712
- 246: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">account</span>(<span class="ruby-identifier">pId</span>)
1713
- 247: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:Task</span>
1714
- 248: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">task</span>(<span class="ruby-identifier">pId</span>)
1715
- 249: <span class="ruby-keyword kw">when</span><span class="ruby-value">:Resource</span>
1716
- 250: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resource</span>(<span class="ruby-identifier">pId</span>)
1717
- 251: <span class="ruby-keyword kw">else</span>
1718
- 252: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown property type #{pType}&quot;</span>
1719
- 253: <span class="ruby-keyword kw">end</span>
1720
- 254: <span class="ruby-keyword kw">end</span></pre>
1729
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 241</span>
1730
+ 241: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resolvePropertyId</span>(<span class="ruby-identifier">pType</span>, <span class="ruby-identifier">pId</span>)
1731
+ 242: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>
1732
+ 243: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Need Project reference to process the query&quot;</span>
1733
+ 244: <span class="ruby-keyword kw">end</span>
1734
+ 245: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">pType</span>
1735
+ 246: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:Account</span>
1736
+ 247: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">account</span>(<span class="ruby-identifier">pId</span>)
1737
+ 248: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:Task</span>
1738
+ 249: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">task</span>(<span class="ruby-identifier">pId</span>)
1739
+ 250: <span class="ruby-keyword kw">when</span><span class="ruby-value">:Resource</span>
1740
+ 251: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resource</span>(<span class="ruby-identifier">pId</span>)
1741
+ 252: <span class="ruby-keyword kw">else</span>
1742
+ 253: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown property type #{pType}&quot;</span>
1743
+ 254: <span class="ruby-keyword kw">end</span>
1744
+ 255: <span class="ruby-keyword kw">end</span></pre>
1721
1745
  </div>
1722
1746
 
1723
1747
  </div>
@@ -1754,71 +1778,71 @@ the different units.
1754
1778
  <div class="method-source-code"
1755
1779
  id="scale-alue-source">
1756
1780
  <pre>
1757
- <span class="ruby-comment cmt"># File lib/Query.rb, line 261</span>
1758
- 261: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">factors</span>)
1759
- 262: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:shortauto</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
1760
- 263: <span class="ruby-comment cmt"># We try all possible units and store the resulting strings here.</span>
1761
- 264: <span class="ruby-identifier">options</span> = []
1762
- 265: <span class="ruby-comment cmt"># For each option we also save the delta between the String value and</span>
1763
- 266: <span class="ruby-comment cmt"># the original value.</span>
1764
- 267: <span class="ruby-identifier">delta</span> = []
1765
- 268: <span class="ruby-comment cmt"># For each of the units we can define a maximum value that the value</span>
1766
- 269: <span class="ruby-comment cmt"># should not exceed. nil means no limit.</span>
1767
- 270: <span class="ruby-identifier">max</span> = [ <span class="ruby-value">60</span>, <span class="ruby-value">48</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value">8</span>, <span class="ruby-value">24</span>, <span class="ruby-keyword kw">nil</span> ]
1768
- 271:
1769
- 272: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1770
- 273: <span class="ruby-identifier">factors</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">factor</span><span class="ruby-operator">|</span>
1771
- 274: <span class="ruby-identifier">scaledValue</span> = <span class="ruby-identifier">value</span> * <span class="ruby-identifier">factor</span>
1772
- 275: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">scaledValue</span>)
1773
- 276: <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">i</span>] = ((<span class="ruby-identifier">scaledValue</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">to_f</span>).<span class="ruby-identifier">abs</span> * <span class="ruby-value">1000</span>).<span class="ruby-identifier">to_i</span>
1774
- 277: <span class="ruby-comment cmt"># We ignore results that are 0 or exceed the maximum. To ensure that</span>
1775
- 278: <span class="ruby-comment cmt"># we have at least one result the unscaled value is always taken.</span>
1776
- 279: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">factor</span> <span class="ruby-operator">!=</span> <span class="ruby-value">1.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-regexp re">/^[0.]*$/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">str</span>) <span class="ruby-operator">||</span>
1777
- 280: (<span class="ruby-identifier">max</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">scaledValue</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">max</span>[<span class="ruby-identifier">i</span>])
1778
- 281: <span class="ruby-identifier">options</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">nil</span>
1779
- 282: <span class="ruby-keyword kw">else</span>
1780
- 283: <span class="ruby-identifier">options</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">str</span>
1781
- 284: <span class="ruby-keyword kw">end</span>
1782
- 285: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1783
- 286: <span class="ruby-keyword kw">end</span>
1784
- 287:
1785
- 288: <span class="ruby-comment cmt"># Find the value that is the closest to the original value. This will be</span>
1786
- 289: <span class="ruby-comment cmt"># the default if all values have the same length.</span>
1787
- 290: <span class="ruby-identifier">shortest</span> = <span class="ruby-value">2</span>
1788
- 291: <span class="ruby-identifier">delta</span>.<span class="ruby-identifier">length</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
1789
- 292: <span class="ruby-identifier">shortest</span> = <span class="ruby-identifier">j</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>][<span class="ruby-value">0</span>, <span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'0.'</span> <span class="ruby-operator">&amp;&amp;</span>
1790
- 293: <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">shortest</span>]
1791
- 294: <span class="ruby-keyword kw">end</span>
1792
- 295:
1793
- 296: <span class="ruby-comment cmt"># Find the shortest option.</span>
1794
- 297: <span class="ruby-value">6</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
1795
- 298: <span class="ruby-identifier">shortest</span> = <span class="ruby-identifier">j</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>][<span class="ruby-value">0</span>, <span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'0.'</span> <span class="ruby-operator">&amp;&amp;</span>
1796
- 299: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>].<span class="ruby-identifier">length</span>
1797
- 300: <span class="ruby-keyword kw">end</span>
1798
- 301:
1799
- 302: <span class="ruby-identifier">str</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>]
1800
- 303: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
1801
- 304: <span class="ruby-comment cmt"># For the long units we handle singular and plural properly. For</span>
1802
- 305: <span class="ruby-comment cmt"># English we just need to append an 's', but this code will work for</span>
1803
- 306: <span class="ruby-comment cmt"># other languages as well.</span>
1804
- 307: <span class="ruby-identifier">units</span> = []
1805
- 308: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;1&quot;</span>
1806
- 309: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minute hour day week month year )</span>
1807
- 310: <span class="ruby-keyword kw">else</span>
1808
- 311: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minutes hours days weeks months years )</span>
1809
- 312: <span class="ruby-keyword kw">end</span>
1810
- 313: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">' '</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">units</span>[<span class="ruby-identifier">shortest</span>]
1811
- 314: <span class="ruby-keyword kw">else</span>
1812
- 315: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">%( min h d w m y )</span>[<span class="ruby-identifier">shortest</span>]
1813
- 316: <span class="ruby-keyword kw">end</span>
1814
- 317: <span class="ruby-keyword kw">else</span>
1815
- 318: <span class="ruby-comment cmt"># For fixed units we just need to do the conversion. No unit is</span>
1816
- 319: <span class="ruby-comment cmt"># included.</span>
1817
- 320: <span class="ruby-identifier">units</span> = [ <span class="ruby-value">:minutes</span>, <span class="ruby-value">:hours</span>, <span class="ruby-value">:days</span>, <span class="ruby-value">:weeks</span>, <span class="ruby-value">:months</span>, <span class="ruby-value">:years</span> ]
1818
- 321: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">value</span> * <span class="ruby-identifier">factors</span>[<span class="ruby-identifier">units</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@loadUnit</span>)])
1819
- 322: <span class="ruby-keyword kw">end</span>
1820
- 323: <span class="ruby-identifier">str</span>
1821
- 324: <span class="ruby-keyword kw">end</span></pre>
1781
+ <span class="ruby-comment cmt"># File lib/Query.rb, line 262</span>
1782
+ 262: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">factors</span>)
1783
+ 263: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:shortauto</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
1784
+ 264: <span class="ruby-comment cmt"># We try all possible units and store the resulting strings here.</span>
1785
+ 265: <span class="ruby-identifier">options</span> = []
1786
+ 266: <span class="ruby-comment cmt"># For each option we also save the delta between the String value and</span>
1787
+ 267: <span class="ruby-comment cmt"># the original value.</span>
1788
+ 268: <span class="ruby-identifier">delta</span> = []
1789
+ 269: <span class="ruby-comment cmt"># For each of the units we can define a maximum value that the value</span>
1790
+ 270: <span class="ruby-comment cmt"># should not exceed. nil means no limit.</span>
1791
+ 271: <span class="ruby-identifier">max</span> = [ <span class="ruby-value">60</span>, <span class="ruby-value">48</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value">8</span>, <span class="ruby-value">24</span>, <span class="ruby-keyword kw">nil</span> ]
1792
+ 272:
1793
+ 273: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1794
+ 274: <span class="ruby-identifier">factors</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">factor</span><span class="ruby-operator">|</span>
1795
+ 275: <span class="ruby-identifier">scaledValue</span> = <span class="ruby-identifier">value</span> * <span class="ruby-identifier">factor</span>
1796
+ 276: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">scaledValue</span>)
1797
+ 277: <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">i</span>] = ((<span class="ruby-identifier">scaledValue</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">to_f</span>).<span class="ruby-identifier">abs</span> * <span class="ruby-value">1000</span>).<span class="ruby-identifier">to_i</span>
1798
+ 278: <span class="ruby-comment cmt"># We ignore results that are 0 or exceed the maximum. To ensure that</span>
1799
+ 279: <span class="ruby-comment cmt"># we have at least one result the unscaled value is always taken.</span>
1800
+ 280: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">factor</span> <span class="ruby-operator">!=</span> <span class="ruby-value">1.0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-regexp re">/^[0.]*$/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">str</span>) <span class="ruby-operator">||</span>
1801
+ 281: (<span class="ruby-identifier">max</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">scaledValue</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">max</span>[<span class="ruby-identifier">i</span>])
1802
+ 282: <span class="ruby-identifier">options</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">nil</span>
1803
+ 283: <span class="ruby-keyword kw">else</span>
1804
+ 284: <span class="ruby-identifier">options</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">str</span>
1805
+ 285: <span class="ruby-keyword kw">end</span>
1806
+ 286: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1807
+ 287: <span class="ruby-keyword kw">end</span>
1808
+ 288:
1809
+ 289: <span class="ruby-comment cmt"># Find the value that is the closest to the original value. This will be</span>
1810
+ 290: <span class="ruby-comment cmt"># the default if all values have the same length.</span>
1811
+ 291: <span class="ruby-identifier">shortest</span> = <span class="ruby-value">2</span>
1812
+ 292: <span class="ruby-identifier">delta</span>.<span class="ruby-identifier">length</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
1813
+ 293: <span class="ruby-identifier">shortest</span> = <span class="ruby-identifier">j</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>][<span class="ruby-value">0</span>, <span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'0.'</span> <span class="ruby-operator">&amp;&amp;</span>
1814
+ 294: <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">delta</span>[<span class="ruby-identifier">shortest</span>]
1815
+ 295: <span class="ruby-keyword kw">end</span>
1816
+ 296:
1817
+ 297: <span class="ruby-comment cmt"># Find the shortest option.</span>
1818
+ 298: <span class="ruby-value">6</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
1819
+ 299: <span class="ruby-identifier">shortest</span> = <span class="ruby-identifier">j</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>][<span class="ruby-value">0</span>, <span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'0.'</span> <span class="ruby-operator">&amp;&amp;</span>
1820
+ 300: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>].<span class="ruby-identifier">length</span>
1821
+ 301: <span class="ruby-keyword kw">end</span>
1822
+ 302:
1823
+ 303: <span class="ruby-identifier">str</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>]
1824
+ 304: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
1825
+ 305: <span class="ruby-comment cmt"># For the long units we handle singular and plural properly. For</span>
1826
+ 306: <span class="ruby-comment cmt"># English we just need to append an 's', but this code will work for</span>
1827
+ 307: <span class="ruby-comment cmt"># other languages as well.</span>
1828
+ 308: <span class="ruby-identifier">units</span> = []
1829
+ 309: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;1&quot;</span>
1830
+ 310: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minute hour day week month year )</span>
1831
+ 311: <span class="ruby-keyword kw">else</span>
1832
+ 312: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minutes hours days weeks months years )</span>
1833
+ 313: <span class="ruby-keyword kw">end</span>
1834
+ 314: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">' '</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">units</span>[<span class="ruby-identifier">shortest</span>]
1835
+ 315: <span class="ruby-keyword kw">else</span>
1836
+ 316: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">%( min h d w m y )</span>[<span class="ruby-identifier">shortest</span>]
1837
+ 317: <span class="ruby-keyword kw">end</span>
1838
+ 318: <span class="ruby-keyword kw">else</span>
1839
+ 319: <span class="ruby-comment cmt"># For fixed units we just need to do the conversion. No unit is</span>
1840
+ 320: <span class="ruby-comment cmt"># included.</span>
1841
+ 321: <span class="ruby-identifier">units</span> = [ <span class="ruby-value">:minutes</span>, <span class="ruby-value">:hours</span>, <span class="ruby-value">:days</span>, <span class="ruby-value">:weeks</span>, <span class="ruby-value">:months</span>, <span class="ruby-value">:years</span> ]
1842
+ 322: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">value</span> * <span class="ruby-identifier">factors</span>[<span class="ruby-identifier">units</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@loadUnit</span>)])
1843
+ 323: <span class="ruby-keyword kw">end</span>
1844
+ 324: <span class="ruby-identifier">str</span>
1845
+ 325: <span class="ruby-keyword kw">end</span></pre>
1822
1846
  </div>
1823
1847
 
1824
1848
  </div>