taskjuggler 0.0.5 → 0.0.6

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 (544) hide show
  1. data/CHANGELOG +2086 -0
  2. data/benchmarks/666tasks.tjp +3183 -0
  3. data/benchmarks/booking.tjp +14 -10
  4. data/doc/AppConfig.html +95 -73
  5. data/doc/Arguments.html +22 -2
  6. data/doc/CHANGELOG.html +2587 -0
  7. data/doc/COPYING.html +21 -1
  8. data/doc/Object.html +161 -122
  9. data/doc/README.html +21 -1
  10. data/doc/RuntimeConfig.html +26 -6
  11. data/doc/String.html +38 -18
  12. data/doc/StringIO.html +579 -0
  13. data/doc/TaskJuggler.html +251 -143
  14. data/doc/TaskJuggler/Account.html +26 -6
  15. data/doc/TaskJuggler/AccountAttribute.html +28 -8
  16. data/doc/TaskJuggler/AccountScenario.html +24 -4
  17. data/doc/TaskJuggler/Allocation.html +30 -10
  18. data/doc/TaskJuggler/AllocationAttribute.html +28 -8
  19. data/doc/TaskJuggler/AttributeBase.html +46 -26
  20. data/doc/TaskJuggler/AttributeDefinition.html +22 -2
  21. data/doc/TaskJuggler/BatchProcessor.html +40 -20
  22. data/doc/TaskJuggler/Booking.html +26 -6
  23. data/doc/TaskJuggler/BookingListAttribute.html +28 -8
  24. data/doc/TaskJuggler/BooleanAttribute.html +28 -8
  25. data/doc/TaskJuggler/CSVFile.html +308 -146
  26. data/doc/TaskJuggler/CellSettingPattern.html +22 -2
  27. data/doc/TaskJuggler/CellSettingPatternList.html +26 -6
  28. data/doc/TaskJuggler/Charge.html +26 -6
  29. data/doc/TaskJuggler/ChargeListAttribute.html +26 -6
  30. data/doc/TaskJuggler/ChargeSet.html +33 -13
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +28 -8
  32. data/doc/TaskJuggler/ColumnListAttribute.html +26 -6
  33. data/doc/TaskJuggler/ColumnTable.html +24 -4
  34. data/doc/TaskJuggler/Daemon.html +26 -6
  35. data/doc/TaskJuggler/DateAttribute.html +26 -6
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +22 -2
  37. data/doc/TaskJuggler/DependencyListAttribute.html +28 -8
  38. data/doc/TaskJuggler/DurationAttribute.html +28 -8
  39. data/doc/TaskJuggler/FixnumAttribute.html +24 -4
  40. data/doc/TaskJuggler/FlagListAttribute.html +28 -8
  41. data/doc/TaskJuggler/FloatAttribute.html +26 -6
  42. data/doc/TaskJuggler/FormatListAttribute.html +24 -4
  43. data/doc/TaskJuggler/GanttChart.html +147 -126
  44. data/doc/TaskJuggler/GanttContainer.html +34 -14
  45. data/doc/TaskJuggler/GanttHeader.html +28 -8
  46. data/doc/TaskJuggler/GanttHeaderScaleItem.html +24 -4
  47. data/doc/TaskJuggler/GanttLine.html +38 -18
  48. data/doc/TaskJuggler/GanttLoadStack.html +26 -6
  49. data/doc/TaskJuggler/GanttMilestone.html +34 -14
  50. data/doc/TaskJuggler/GanttRouter.html +50 -30
  51. data/doc/TaskJuggler/GanttTaskBar.html +34 -14
  52. data/doc/TaskJuggler/HTMLDocument.html +26 -6
  53. data/doc/TaskJuggler/HTMLGraphics.html +30 -10
  54. data/doc/TaskJuggler/Interval.html +40 -22
  55. data/doc/TaskJuggler/IntervalListAttribute.html +28 -8
  56. data/doc/TaskJuggler/JobInfo.html +24 -4
  57. data/doc/TaskJuggler/Journal.html +226 -147
  58. data/doc/TaskJuggler/JournalEntry.html +22 -2
  59. data/doc/TaskJuggler/JournalEntryList.html +129 -112
  60. data/doc/TaskJuggler/KeywordArray.html +26 -6
  61. data/doc/TaskJuggler/KeywordDocumentation.html +46 -26
  62. data/doc/TaskJuggler/Limits.html +152 -123
  63. data/doc/TaskJuggler/Limits/Limit.html +149 -70
  64. data/doc/TaskJuggler/LimitsAttribute.html +36 -51
  65. data/doc/TaskJuggler/ListAttributeBase.html +24 -4
  66. data/doc/TaskJuggler/Log.html +50 -32
  67. data/doc/TaskJuggler/LogFile.html +37 -17
  68. data/doc/TaskJuggler/LogicalAttribute.html +53 -33
  69. data/doc/TaskJuggler/LogicalExpression.html +26 -6
  70. data/doc/TaskJuggler/LogicalExpressionAttribute.html +32 -12
  71. data/doc/TaskJuggler/LogicalFlag.html +42 -22
  72. data/doc/TaskJuggler/LogicalFunction.html +204 -140
  73. data/doc/TaskJuggler/LogicalOperation.html +135 -111
  74. data/doc/TaskJuggler/Macro.html +22 -2
  75. data/doc/TaskJuggler/MacroParser.html +32 -12
  76. data/doc/TaskJuggler/MacroTable.html +32 -12
  77. data/doc/TaskJuggler/ManagerResponsibilities.html +24 -4
  78. data/doc/TaskJuggler/ManagerStatusRecord.html +24 -4
  79. data/doc/TaskJuggler/Message.html +24 -4
  80. data/doc/TaskJuggler/MessageHandler.html +24 -4
  81. data/doc/TaskJuggler/Navigator.html +104 -71
  82. data/doc/TaskJuggler/NavigatorElement.html +32 -12
  83. data/doc/TaskJuggler/NikuProject.html +22 -2
  84. data/doc/TaskJuggler/NikuReport.html +310 -228
  85. data/doc/TaskJuggler/NikuResource.html +22 -2
  86. data/doc/TaskJuggler/NodeListAttribute.html +615 -0
  87. data/doc/TaskJuggler/OnShiftCache.html +32 -12
  88. data/doc/TaskJuggler/ProcessIntercom.html +205 -78
  89. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -6
  90. data/doc/TaskJuggler/Project.html +708 -660
  91. data/doc/TaskJuggler/ProjectBroker.html +506 -304
  92. data/doc/TaskJuggler/ProjectBrokerIface.html +61 -41
  93. data/doc/TaskJuggler/ProjectFileParser.html +429 -373
  94. data/doc/TaskJuggler/ProjectFileScanner.html +1790 -0
  95. data/doc/TaskJuggler/ProjectRecord.html +80 -60
  96. data/doc/TaskJuggler/ProjectServer.html +312 -237
  97. data/doc/TaskJuggler/ProjectServerIface.html +101 -43
  98. data/doc/TaskJuggler/PropertyAttribute.html +32 -12
  99. data/doc/TaskJuggler/PropertyList.html +166 -145
  100. data/doc/TaskJuggler/PropertySet.html +254 -224
  101. data/doc/TaskJuggler/PropertyTreeNode.html +670 -536
  102. data/doc/TaskJuggler/Query.html +169 -148
  103. data/doc/TaskJuggler/RTFHandlers.html +622 -0
  104. data/doc/TaskJuggler/RTFNavigator.html +28 -8
  105. data/doc/TaskJuggler/RTFQuery.html +40 -20
  106. data/doc/TaskJuggler/RTFReport.html +62 -25
  107. data/doc/TaskJuggler/RTFReportLink.html +765 -0
  108. data/doc/TaskJuggler/RealFormat.html +26 -6
  109. data/doc/TaskJuggler/RealFormatAttribute.html +26 -6
  110. data/doc/TaskJuggler/ReferenceAttribute.html +59 -39
  111. data/doc/TaskJuggler/Report.html +402 -251
  112. data/doc/TaskJuggler/ReportBase.html +162 -137
  113. data/doc/TaskJuggler/ReportContext.html +112 -29
  114. data/doc/TaskJuggler/ReportServer.html +89 -64
  115. data/doc/TaskJuggler/ReportServerIface.html +75 -55
  116. data/doc/TaskJuggler/ReportServerRecord.html +54 -31
  117. data/doc/TaskJuggler/ReportServlet.html +980 -0
  118. data/doc/TaskJuggler/ReportTable.html +41 -21
  119. data/doc/TaskJuggler/ReportTableCell.html +214 -170
  120. data/doc/TaskJuggler/ReportTableColumn.html +30 -10
  121. data/doc/TaskJuggler/ReportTableLegend.html +36 -16
  122. data/doc/TaskJuggler/ReportTableLine.html +32 -12
  123. data/doc/TaskJuggler/Resource.html +99 -87
  124. data/doc/TaskJuggler/ResourceListAttribute.html +59 -39
  125. data/doc/TaskJuggler/ResourceListRE.html +47 -26
  126. data/doc/TaskJuggler/ResourceScenario.html +403 -437
  127. data/doc/TaskJuggler/RichText.html +26 -6
  128. data/doc/TaskJuggler/RichTextAttribute.html +50 -30
  129. data/doc/TaskJuggler/RichTextDocument.html +37 -17
  130. data/doc/TaskJuggler/RichTextElement.html +475 -413
  131. data/doc/TaskJuggler/RichTextException.html +22 -2
  132. data/doc/TaskJuggler/RichTextFunctionExample.html +28 -8
  133. data/doc/TaskJuggler/RichTextFunctionHandler.html +24 -4
  134. data/doc/TaskJuggler/RichTextImage.html +22 -2
  135. data/doc/TaskJuggler/RichTextIntermediate.html +38 -18
  136. data/doc/TaskJuggler/RichTextParser.html +56 -34
  137. data/doc/TaskJuggler/RichTextScanner.html +82 -61
  138. data/doc/TaskJuggler/RichTextSnip.html +34 -14
  139. data/doc/TaskJuggler/RichTextSyntaxRules.html +507 -353
  140. data/doc/TaskJuggler/Scenario.html +22 -2
  141. data/doc/TaskJuggler/ScenarioData.html +30 -46
  142. data/doc/TaskJuggler/ScenarioListAttribute.html +38 -18
  143. data/doc/TaskJuggler/Scoreboard.html +42 -22
  144. data/doc/TaskJuggler/SheetHandlerBase.html +40 -20
  145. data/doc/TaskJuggler/SheetReceiver.html +333 -295
  146. data/doc/TaskJuggler/SheetSender.html +253 -230
  147. data/doc/TaskJuggler/Shift.html +26 -6
  148. data/doc/TaskJuggler/ShiftAssignment.html +89 -73
  149. data/doc/TaskJuggler/ShiftAssignments.html +226 -234
  150. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +39 -54
  151. data/doc/TaskJuggler/ShiftScenario.html +28 -8
  152. data/doc/TaskJuggler/SortListAttribute.html +34 -14
  153. data/doc/TaskJuggler/SourceFileInfo.html +24 -4
  154. data/doc/TaskJuggler/StatusSheetReceiver.html +24 -3
  155. data/doc/TaskJuggler/StatusSheetReport.html +168 -153
  156. data/doc/TaskJuggler/StatusSheetSender.html +24 -3
  157. data/doc/TaskJuggler/StringAttribute.html +38 -18
  158. data/doc/TaskJuggler/SymbolAttribute.html +32 -12
  159. data/doc/TaskJuggler/SyntaxReference.html +40 -20
  160. data/doc/TaskJuggler/TOCEntry.html +26 -6
  161. data/doc/TaskJuggler/TSResourceRecord.html +22 -2
  162. data/doc/TaskJuggler/TSTaskRecord.html +22 -2
  163. data/doc/TaskJuggler/TableColumnDefinition.html +59 -22
  164. data/doc/TaskJuggler/TableOfContents.html +26 -6
  165. data/doc/TaskJuggler/TableReport.html +937 -904
  166. data/doc/TaskJuggler/Task.html +55 -36
  167. data/doc/TaskJuggler/TaskDependency.html +24 -4
  168. data/doc/TaskJuggler/TaskListAttribute.html +50 -30
  169. data/doc/TaskJuggler/TaskListRE.html +27 -7
  170. data/doc/TaskJuggler/TaskScenario.html +1273 -1153
  171. data/doc/TaskJuggler/TextFormatter.html +28 -8
  172. data/doc/TaskJuggler/TextParser.html +585 -338
  173. data/doc/TaskJuggler/TextParser/Pattern.html +54 -34
  174. data/doc/TaskJuggler/TextParser/Rule.html +95 -73
  175. data/doc/TaskJuggler/TextParser/StackElement.html +39 -17
  176. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +24 -4
  177. data/doc/TaskJuggler/TextParser/TokenDoc.html +22 -2
  178. data/doc/TaskJuggler/TextReport.html +28 -8
  179. data/doc/TaskJuggler/TextScanner.html +400 -1404
  180. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +28 -240
  181. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +37 -184
  182. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +682 -0
  183. data/doc/TaskJuggler/TextScanner/StreamHandle.html +342 -67
  184. data/doc/TaskJuggler/TimeSheet.html +48 -28
  185. data/doc/TaskJuggler/TimeSheetReceiver.html +24 -3
  186. data/doc/TaskJuggler/TimeSheetRecord.html +47 -27
  187. data/doc/TaskJuggler/TimeSheetReport.html +154 -133
  188. data/doc/TaskJuggler/TimeSheetSender.html +24 -3
  189. data/doc/TaskJuggler/TimeSheetSummary.html +137 -91
  190. data/doc/TaskJuggler/TimeSheets.html +26 -6
  191. data/doc/TaskJuggler/Tj3AppBase.html +85 -58
  192. data/doc/TaskJuggler/Tj3Client.html +292 -238
  193. data/doc/TaskJuggler/Tj3Daemon.html +159 -74
  194. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -6
  195. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -6
  196. data/doc/TaskJuggler/Tj3SsSender.html +53 -26
  197. data/doc/TaskJuggler/Tj3TsReceiver.html +28 -7
  198. data/doc/TaskJuggler/Tj3TsSender.html +26 -6
  199. data/doc/TaskJuggler/Tj3TsSummary.html +26 -6
  200. data/doc/TaskJuggler/TjException.html +22 -2
  201. data/doc/TaskJuggler/TjTime.html +216 -160
  202. data/doc/TaskJuggler/TjpExample.html +34 -14
  203. data/doc/TaskJuggler/TjpExportRE.html +403 -407
  204. data/doc/TaskJuggler/TjpSyntaxRules.html +4805 -4408
  205. data/doc/TaskJuggler/URLParameter.html +649 -0
  206. data/doc/TaskJuggler/UserManual.html +42 -22
  207. data/doc/TaskJuggler/WebServer.html +702 -0
  208. data/doc/TaskJuggler/WorkingHours.html +38 -18
  209. data/doc/TaskJuggler/WorkingHoursAttribute.html +61 -41
  210. data/doc/TaskJuggler/XMLBlob.html +24 -4
  211. data/doc/TaskJuggler/XMLComment.html +24 -4
  212. data/doc/TaskJuggler/XMLDocument.html +30 -10
  213. data/doc/TaskJuggler/XMLElement.html +34 -14
  214. data/doc/TaskJuggler/XMLNamedText.html +22 -2
  215. data/doc/TaskJuggler/XMLText.html +24 -4
  216. data/doc/index.html +1841 -1666
  217. data/doc/lib/AccountScenario_rb.html +1 -1
  218. data/doc/lib/Account_rb.html +1 -1
  219. data/doc/lib/Allocation_rb.html +1 -1
  220. data/doc/lib/AppConfig_rb.html +2 -2
  221. data/doc/lib/AttributeBase_rb.html +1 -1
  222. data/doc/lib/AttributeDefinition_rb.html +1 -1
  223. data/doc/lib/Attributes_rb.html +2 -2
  224. data/doc/lib/BatchProcessor_rb.html +1 -1
  225. data/doc/lib/Booking_rb.html +1 -1
  226. data/doc/lib/ChargeSet_rb.html +1 -1
  227. data/doc/lib/Charge_rb.html +1 -1
  228. data/doc/lib/HTMLDocument_rb.html +1 -1
  229. data/doc/lib/Interval_rb.html +1 -1
  230. data/doc/lib/Journal_rb.html +2 -2
  231. data/doc/lib/KeywordArray_rb.html +1 -1
  232. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  233. data/doc/lib/Limits_rb.html +2 -2
  234. data/doc/lib/LogFile_rb.html +2 -2
  235. data/doc/lib/Log_rb.html +1 -1
  236. data/doc/lib/LogicalExpression_rb.html +1 -1
  237. data/doc/lib/LogicalFunction_rb.html +2 -2
  238. data/doc/lib/LogicalOperation_rb.html +2 -2
  239. data/doc/lib/MacroParser_rb.html +1 -1
  240. data/doc/lib/MacroTable_rb.html +1 -1
  241. data/doc/lib/MessageHandler_rb.html +1 -1
  242. data/doc/lib/Message_rb.html +1 -1
  243. data/doc/lib/ProjectFileParser_rb.html +4 -8
  244. data/doc/lib/ProjectFileScanner_rb.html +67 -0
  245. data/doc/lib/Project_rb.html +2 -2
  246. data/doc/lib/PropertyList_rb.html +2 -2
  247. data/doc/lib/PropertySet_rb.html +2 -2
  248. data/doc/lib/PropertyTreeNode_rb.html +2 -2
  249. data/doc/lib/Query_rb.html +2 -2
  250. data/doc/lib/RTFHandlers_rb.html +73 -0
  251. data/doc/lib/RTFNavigator_rb.html +1 -1
  252. data/doc/lib/RTFQuery_rb.html +1 -1
  253. data/doc/lib/RTFReportLink_rb.html +71 -0
  254. data/doc/lib/RTFReport_rb.html +2 -2
  255. data/doc/lib/RealFormat_rb.html +1 -1
  256. data/doc/lib/ResourceScenario_rb.html +2 -2
  257. data/doc/lib/Resource_rb.html +2 -2
  258. data/doc/lib/RichTextDocument_rb.html +1 -1
  259. data/doc/lib/RichTextElement_rb.html +2 -2
  260. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  261. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  262. data/doc/lib/RichTextParser_rb.html +2 -2
  263. data/doc/lib/RichTextScanner_rb.html +2 -2
  264. data/doc/lib/RichTextSnip_rb.html +1 -1
  265. data/doc/lib/RichTextSyntaxRules_rb.html +2 -2
  266. data/doc/lib/RichText_rb.html +1 -1
  267. data/doc/lib/RuntimeConfig_rb.html +1 -1
  268. data/doc/lib/ScenarioData_rb.html +2 -2
  269. data/doc/lib/Scenario_rb.html +1 -1
  270. data/doc/lib/Scoreboard_rb.html +1 -1
  271. data/doc/lib/SheetHandlerBase_rb.html +1 -1
  272. data/doc/lib/SheetReceiver_rb.html +2 -2
  273. data/doc/lib/SheetSender_rb.html +4 -2
  274. data/doc/lib/ShiftAssignments_rb.html +4 -2
  275. data/doc/lib/ShiftScenario_rb.html +1 -1
  276. data/doc/lib/Shift_rb.html +1 -1
  277. data/doc/lib/SourceFileInfo_rb.html +1 -1
  278. data/doc/lib/StatusSheetReceiver_rb.html +2 -2
  279. data/doc/lib/StatusSheetSender_rb.html +2 -2
  280. data/doc/lib/SyntaxReference_rb.html +1 -1
  281. data/doc/lib/TOCEntry_rb.html +1 -1
  282. data/doc/lib/TableColumnDefinition_rb.html +2 -2
  283. data/doc/lib/TableOfContents_rb.html +1 -1
  284. data/doc/lib/TaskDependency_rb.html +1 -1
  285. data/doc/lib/TaskJuggler_rb.html +2 -2
  286. data/doc/lib/TaskScenario_rb.html +2 -2
  287. data/doc/lib/Task_rb.html +2 -2
  288. data/doc/lib/TextFormatter_rb.html +1 -1
  289. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  290. data/doc/lib/TextParser/Rule_rb.html +2 -2
  291. data/doc/lib/TextParser/StackElement_rb.html +2 -2
  292. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  293. data/doc/lib/TextParser_rb.html +2 -2
  294. data/doc/lib/TextScanner_rb.html +6 -2
  295. data/doc/lib/TimeSheetReceiver_rb.html +2 -2
  296. data/doc/lib/TimeSheetSender_rb.html +2 -2
  297. data/doc/lib/TimeSheetSummary_rb.html +2 -2
  298. data/doc/lib/TimeSheets_rb.html +2 -2
  299. data/doc/lib/Tj3AppBase_rb.html +2 -2
  300. data/doc/lib/Tj3Config_rb.html +2 -2
  301. data/doc/lib/Tj3SheetAppBase_rb.html +2 -2
  302. data/doc/lib/TjException_rb.html +1 -1
  303. data/doc/lib/TjTime_rb.html +2 -2
  304. data/doc/lib/TjpExample_rb.html +1 -1
  305. data/doc/lib/TjpSyntaxRules_rb.html +2 -2
  306. data/doc/lib/URLParameter_rb.html +67 -0
  307. data/doc/lib/UTF8String_rb.html +1 -1
  308. data/doc/lib/UserManual_rb.html +1 -1
  309. data/doc/lib/WorkingHours_rb.html +1 -1
  310. data/doc/lib/XMLDocument_rb.html +2 -2
  311. data/doc/lib/XMLElement_rb.html +1 -1
  312. data/doc/lib/daemon/Daemon_rb.html +1 -1
  313. data/doc/lib/daemon/ProcessIntercom_rb.html +2 -2
  314. data/doc/lib/daemon/ProjectBroker_rb.html +4 -2
  315. data/doc/lib/daemon/ProjectServer_rb.html +2 -2
  316. data/doc/lib/daemon/ReportServer_rb.html +2 -2
  317. data/doc/lib/daemon/WebServer_rb.html +75 -0
  318. data/doc/lib/deep_copy_rb.html +2 -2
  319. data/doc/lib/reports/CSVFile_rb.html +2 -2
  320. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  321. data/doc/lib/reports/GanttChart_rb.html +2 -2
  322. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  323. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  324. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  325. data/doc/lib/reports/GanttLine_rb.html +1 -1
  326. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  327. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  328. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  329. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  330. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  331. data/doc/lib/reports/Navigator_rb.html +2 -2
  332. data/doc/lib/reports/NikuReport_rb.html +2 -2
  333. data/doc/lib/reports/ReportBase_rb.html +2 -2
  334. data/doc/lib/reports/ReportContext_rb.html +2 -2
  335. data/doc/lib/reports/ReportTableCell_rb.html +2 -2
  336. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  337. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  338. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  339. data/doc/lib/reports/ReportTable_rb.html +2 -2
  340. data/doc/lib/reports/Report_rb.html +2 -2
  341. data/doc/lib/reports/ResourceListRE_rb.html +2 -2
  342. data/doc/lib/reports/StatusSheetReport_rb.html +2 -2
  343. data/doc/lib/reports/TableReport_rb.html +2 -2
  344. data/doc/lib/reports/TaskListRE_rb.html +2 -2
  345. data/doc/lib/reports/TextReport_rb.html +1 -1
  346. data/doc/lib/reports/TimeSheetReport_rb.html +2 -2
  347. data/doc/lib/reports/TjpExportRE_rb.html +2 -2
  348. data/doc/lib/ruby-signal-bug_rb.html +1 -1
  349. data/doc/lib/taskjuggler3_rb.html +2 -2
  350. data/doc/lib/tj3client_rb.html +2 -2
  351. data/doc/lib/tj3d_rb.html +2 -2
  352. data/doc/lib/tj3man_rb.html +1 -1
  353. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  354. data/doc/lib/tj3ss_sender_rb.html +2 -2
  355. data/doc/lib/tj3ts_receiver_rb.html +2 -2
  356. data/doc/lib/tj3ts_sender_rb.html +1 -1
  357. data/doc/lib/tj3ts_summary_rb.html +1 -1
  358. data/doc/rdoc.css +9 -4
  359. data/examples/tutorial.tjp +17 -15
  360. data/gem_spec.rb +3 -0
  361. data/lib/AppConfig.rb +3 -1
  362. data/lib/Attributes.rb +10 -8
  363. data/lib/Journal.rb +55 -20
  364. data/lib/Limits.rb +72 -46
  365. data/lib/LogFile.rb +3 -3
  366. data/lib/LogicalFunction.rb +19 -6
  367. data/lib/LogicalOperation.rb +5 -1
  368. data/lib/Project.rb +37 -9
  369. data/lib/ProjectFileParser.rb +25 -22
  370. data/lib/ProjectFileScanner.rb +365 -0
  371. data/lib/PropertyList.rb +2 -1
  372. data/lib/PropertySet.rb +14 -4
  373. data/lib/PropertyTreeNode.rb +42 -29
  374. data/lib/Query.rb +3 -1
  375. data/lib/RTFHandlers.rb +35 -0
  376. data/lib/RTFReport.rb +23 -6
  377. data/lib/RTFReportLink.rb +72 -0
  378. data/lib/Resource.rb +8 -16
  379. data/lib/ResourceScenario.rb +1 -22
  380. data/lib/RichTextElement.rb +42 -0
  381. data/lib/RichTextParser.rb +6 -4
  382. data/lib/RichTextScanner.rb +5 -5
  383. data/lib/RichTextSyntaxRules.rb +48 -10
  384. data/lib/ScenarioData.rb +5 -3
  385. data/lib/SheetReceiver.rb +24 -6
  386. data/lib/SheetSender.rb +17 -13
  387. data/lib/ShiftAssignments.rb +56 -52
  388. data/lib/StatusSheetReceiver.rb +1 -0
  389. data/lib/StatusSheetSender.rb +1 -0
  390. data/lib/TableColumnDefinition.rb +4 -2
  391. data/lib/Task.rb +8 -9
  392. data/lib/TaskJuggler.rb +21 -11
  393. data/lib/TaskScenario.rb +61 -26
  394. data/lib/TextParser.rb +268 -106
  395. data/lib/TextParser/Rule.rb +4 -2
  396. data/lib/TextParser/StackElement.rb +6 -4
  397. data/lib/TextScanner.rb +283 -700
  398. data/lib/TimeSheetReceiver.rb +1 -0
  399. data/lib/TimeSheetSender.rb +1 -0
  400. data/lib/TimeSheetSummary.rb +51 -26
  401. data/lib/TimeSheets.rb +1 -1
  402. data/lib/Tj3AppBase.rb +8 -1
  403. data/lib/Tj3Config.rb +1 -1
  404. data/lib/TjTime.rb +5 -0
  405. data/lib/TjpSyntaxRules.rb +360 -144
  406. data/lib/URLParameter.rb +30 -0
  407. data/lib/XMLDocument.rb +2 -2
  408. data/lib/daemon/ProcessIntercom.rb +50 -9
  409. data/lib/daemon/ProjectBroker.rb +63 -10
  410. data/lib/daemon/ProjectServer.rb +47 -16
  411. data/lib/daemon/ReportServer.rb +9 -4
  412. data/lib/daemon/WebServer.rb +204 -0
  413. data/lib/deep_copy.rb +4 -1
  414. data/lib/reports/CSVFile.rb +150 -66
  415. data/lib/reports/GanttChart.rb +2 -1
  416. data/lib/reports/Navigator.rb +18 -5
  417. data/lib/reports/NikuReport.rb +32 -2
  418. data/lib/reports/Report.rb +65 -37
  419. data/lib/reports/ReportBase.rb +14 -9
  420. data/lib/reports/ReportContext.rb +19 -4
  421. data/lib/reports/ReportTable.rb +2 -2
  422. data/lib/reports/ReportTableCell.rb +54 -30
  423. data/lib/reports/ResourceListRE.rb +4 -3
  424. data/lib/reports/StatusSheetReport.rb +8 -13
  425. data/lib/reports/TableReport.rb +47 -32
  426. data/lib/reports/TaskListRE.rb +3 -3
  427. data/lib/reports/TimeSheetReport.rb +14 -5
  428. data/lib/reports/TjpExportRE.rb +14 -19
  429. data/lib/taskjuggler3.rb +15 -0
  430. data/lib/tj3client.rb +9 -7
  431. data/lib/tj3d.rb +38 -10
  432. data/lib/tj3ss_sender.rb +7 -0
  433. data/lib/tj3ts_receiver.rb +1 -0
  434. data/manual/Day_To_Day_Juggling +1 -1
  435. data/manual/Rich_Text_Attributes +8 -0
  436. data/manual/TaskJuggler_2x_Migration +7 -0
  437. data/manual/The_TaskJuggler_Syntax +20 -6
  438. data/prj_cfg.rb +3 -2
  439. data/tasks/changelog.rake +36 -0
  440. data/tasks/csts.rake +2 -3
  441. data/tasks/gem.rake +10 -0
  442. data/tasks/missing.rake +0 -17
  443. data/test/TestSuite/ReportGenerator/Correct/Journal.html +63 -0
  444. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +14 -0
  445. data/test/TestSuite/{HTML-Reports/LogicalFunctions.tjp → ReportGenerator/Correct/LogicalFunctions1.tjp} +2 -2
  446. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +3 -0
  447. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.tjp +19 -0
  448. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +66 -0
  449. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +407 -0
  450. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  451. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  452. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  453. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  454. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  455. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  456. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  457. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  458. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  459. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  460. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  461. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +2 -0
  462. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
  463. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +6 -0
  464. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions1-1.csv +7 -0
  465. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions2-1.csv +2 -0
  466. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
  467. data/test/TestSuite/ReportGenerator/Correct/scripts/wz_tooltip.js +1301 -0
  468. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +20 -0
  469. data/test/TestSuite/Scheduler/Correct/Container.html +349 -0
  470. data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -4
  471. data/test/TestSuite/Scheduler/Correct/Shift2.html +464 -150
  472. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +108 -0
  473. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +7 -0
  474. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +14 -0
  475. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +233 -21
  476. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +20 -20
  477. data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
  478. data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
  479. data/test/TestSuite/StatusSheets/run +3 -2
  480. data/test/TestSuite/Syntax/Correct/Include.tjp +1 -1
  481. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +1 -1
  482. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +6 -0
  483. data/test/TestSuite/Syntax/Correct/Macro-3.tjp +14 -0
  484. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +32 -0
  485. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +66 -0
  486. data/test/TestSuite/Syntax/Correct/css/tjreport.css +407 -0
  487. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  488. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  489. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  490. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  491. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  492. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  493. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  494. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  495. data/test/TestSuite/Syntax/Correct/icons/trend-down.png +0 -0
  496. data/test/TestSuite/Syntax/Correct/icons/trend-flat.png +0 -0
  497. data/test/TestSuite/Syntax/Correct/icons/trend-up.png +0 -0
  498. data/test/TestSuite/Syntax/Correct/include/dir1/file2.tji +3 -0
  499. data/test/TestSuite/Syntax/Correct/include/dir1/file5.tji +2 -0
  500. data/test/TestSuite/Syntax/Correct/include/dir3/all.tji +3 -0
  501. data/test/TestSuite/Syntax/Correct/include/dir3/file1.tji +2 -0
  502. data/test/TestSuite/Syntax/Correct/include/dir3/file2.tji +1 -0
  503. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  504. data/test/TestSuite/Syntax/Correct/tutorial.tjp +13 -13
  505. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  506. data/test/TestSuite/Syntax/Errors/include_recursion.tjp +1 -0
  507. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +2 -1
  508. data/test/TestSuite/Syntax/Errors/{eof_in_istring1.tjp → no_token_match1.tjp} +2 -2
  509. data/test/TestSuite/Syntax/Errors/{eof_in_istring2.tjp → no_token_match2.tjp} +2 -2
  510. data/test/TestSuite/Syntax/Errors/{eof_in_istring3.tjp → no_token_match3.tjp} +1 -1
  511. data/test/TestSuite/Syntax/Errors/{eof_in_istring4.tjp → no_token_match4.tjp} +1 -1
  512. data/test/TestSuite/Syntax/Errors/{eof_in_istring5.tjp → no_token_match5.tjp} +1 -1
  513. data/test/TestSuite/Syntax/Errors/not_scheduled.tjp +13 -0
  514. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
  515. data/test/TestSuite/TimeSheets/run +5 -5
  516. data/test/test_CSVFile.rb +75 -0
  517. data/test/test_Limits.rb +63 -5
  518. data/test/test_ProjectFileScanner.rb +163 -0
  519. data/test/test_ReportGenerator.rb +81 -0
  520. data/test/test_RichText.rb +21 -3
  521. data/test/test_Scheduler.rb +1 -1
  522. data/test/test_ShiftAssignments.rb +4 -4
  523. data/test/test_Syntax.rb +1 -1
  524. data/test/test_URLParameter.rb +30 -0
  525. metadata +126 -32
  526. data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +0 -8
  527. data/test/TestSuite/Syntax/Errors/bad_comment.tjp +0 -7
  528. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/boss_2002-03-01.tji +0 -36
  529. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev1_2002-03-01.tji +0 -48
  530. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev2_2002-03-01.tji +0 -67
  531. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev3_2002-03-01.tji +0 -67
  532. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/doc_2002-03-01.tji +0 -48
  533. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/resources.yml +0 -31
  534. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/test_2002-03-01.tji +0 -36
  535. data/test/TestSuite/TimeSheets/TimeSheetTemplates/acceptable_intervals +0 -1
  536. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/all.tji +0 -1
  537. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/dev2_2002-03-01.tji +0 -54
  538. data/test/TestSuite/TimeSheets/TimeSheets/all.tji +0 -2
  539. data/test/TestSuite/TimeSheets/receiver.log +0 -102
  540. data/test/TestSuite/TimeSheets/sender.log +0 -794
  541. data/test/TestSuite/TimeSheets/summary.log +0 -884
  542. data/test/TestSuite/TimeSheets/timesheets.log +0 -45
  543. data/test/TestSuite/TimeSheets/tj3d.log +0 -292
  544. data/test/test_TextScanner.rb +0 -95
@@ -69,37 +69,37 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#M000080">::new</a></li>
72
+ <li><a href="#method-c-new">::new</a></li>
73
73
 
74
- <li><a href="#M000083">#end</a></li>
74
+ <li><a href="#method-i-end">#end</a></li>
75
75
 
76
- <li><a href="#M000084">#endIdx=</a></li>
76
+ <li><a href="#method-i-endIdx%3D">#endIdx=</a></li>
77
77
 
78
- <li><a href="#M000085">#process</a></li>
78
+ <li><a href="#method-i-process">#process</a></li>
79
79
 
80
- <li><a href="#M000095">#reset</a></li>
80
+ <li><a href="#method-i-reset">#reset</a></li>
81
81
 
82
- <li><a href="#M000093">#resolvePropertyId</a></li>
82
+ <li><a href="#method-i-resolvePropertyId">#resolvePropertyId</a></li>
83
83
 
84
- <li><a href="#M000090">#result</a></li>
84
+ <li><a href="#method-i-result">#result</a></li>
85
85
 
86
- <li><a href="#M000091">#scaleDuration</a></li>
86
+ <li><a href="#method-i-scaleDuration">#scaleDuration</a></li>
87
87
 
88
- <li><a href="#M000092">#scaleLoad</a></li>
88
+ <li><a href="#method-i-scaleLoad">#scaleLoad</a></li>
89
89
 
90
- <li><a href="#M000094">#scaleValue</a></li>
90
+ <li><a href="#method-i-scaleValue">#scaleValue</a></li>
91
91
 
92
- <li><a href="#M000081">#start=</a></li>
92
+ <li><a href="#method-i-start%3D">#start=</a></li>
93
93
 
94
- <li><a href="#M000082">#startIdx=</a></li>
94
+ <li><a href="#method-i-startIdx%3D">#startIdx=</a></li>
95
95
 
96
- <li><a href="#M000087">#to_num</a></li>
96
+ <li><a href="#method-i-to_num">#to_num</a></li>
97
97
 
98
- <li><a href="#M000089">#to_rti</a></li>
98
+ <li><a href="#method-i-to_rti">#to_rti</a></li>
99
99
 
100
- <li><a href="#M000086">#to_s</a></li>
100
+ <li><a href="#method-i-to_s">#to_s</a></li>
101
101
 
102
- <li><a href="#M000088">#to_sort</a></li>
102
+ <li><a href="#method-i-to_sort">#to_sort</a></li>
103
103
 
104
104
  </ul>
105
105
  </div>
@@ -116,6 +116,8 @@
116
116
  <h3 class="section-header">Files</h3>
117
117
  <ul>
118
118
 
119
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
120
+
119
121
  <li class="file"><a href="../COPYING.html">COPYING</a></li>
120
122
 
121
123
  <li class="file"><a href="../README.html">README</a></li>
@@ -285,6 +287,8 @@
285
287
 
286
288
  <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
287
289
 
290
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
291
+
288
292
  <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
289
293
 
290
294
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
@@ -299,6 +303,8 @@
299
303
 
300
304
  <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
301
305
 
306
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
307
+
302
308
  <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
303
309
 
304
310
  <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
@@ -315,12 +321,16 @@
315
321
 
316
322
  <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
317
323
 
324
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
325
+
318
326
  <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
319
327
 
320
328
  <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
321
329
 
322
330
  <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
323
331
 
332
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
333
+
324
334
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
325
335
 
326
336
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -339,6 +349,8 @@
339
349
 
340
350
  <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
341
351
 
352
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
353
+
342
354
  <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
343
355
 
344
356
  <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
@@ -467,6 +479,8 @@
467
479
 
468
480
  <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
469
481
 
482
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
483
+
470
484
  <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
471
485
 
472
486
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
@@ -511,8 +525,12 @@
511
525
 
512
526
  <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
513
527
 
528
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
529
+
514
530
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
515
531
 
532
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
533
+
516
534
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
517
535
 
518
536
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -539,6 +557,8 @@
539
557
 
540
558
  <li><a href="../String.html">String</a></li>
541
559
 
560
+ <li><a href="../StringIO.html">StringIO</a></li>
561
+
542
562
  </ul>
543
563
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
544
564
  </div>
@@ -557,7 +577,7 @@ run has been completed. It is possible to make a <a
557
577
  href="Query.html">Query</a> before the scheduling run has been completed,
558
578
  but it only produces good results for static attributes. And for such
559
579
  queries, the <a
560
- href="PropertyTreeNode.html#M000967">PropertyTreeNode.get</a> and []
580
+ href="PropertyTreeNode.html#method-i-get">PropertyTreeNode.get</a> and []
561
581
  functions are a lot more efficient.
562
582
  </p>
563
583
  <p>
@@ -568,13 +588,12 @@ and end time will be incorporated into the result computation.
568
588
  </p>
569
589
  <p>
570
590
  The result is returned as <a href="../String.html">String</a> (<a
571
- href="Query.html#M000090">Query#result</a>), in numerical form
591
+ href="Query.html#method-i-result">Query#result</a>), in numerical form
572
592
  (Query#numericalResult) if available as number, and as an entity that can
573
593
  be used for sorting (Query#sortableResult). To get the result, <a
574
- href="Query.html#M000085">Query#process</a> needs to be called. In case an
575
- error occured, <a href="Query.html#ok">Query#ok</a> is set to false and <a
576
- href="Query.html#errorMessage">Query#errorMessage</a> contains an error
577
- message.
594
+ href="Query.html#method-i-process">Query#process</a> needs to be called. In
595
+ case an error occured, Query#ok is set to false and Query#errorMessage
596
+ contains an error message.
578
597
  </p>
579
598
 
580
599
  </div>
@@ -1015,7 +1034,7 @@ message.
1015
1034
 
1016
1035
 
1017
1036
  <div id="new-method" class="method-detail ">
1018
- <a name="M000080"></a>
1037
+ <a name="method-c-new"></a>
1019
1038
 
1020
1039
  <div class="method-heading">
1021
1040
 
@@ -1072,7 +1091,7 @@ need to be sufficent to uniquely identify an attribute.
1072
1091
 
1073
1092
 
1074
1093
  <div id="end-method" class="method-detail ">
1075
- <a name="M000083"></a>
1094
+ <a name="method-i-end"></a>
1076
1095
 
1077
1096
  <div class="method-heading">
1078
1097
 
@@ -1113,7 +1132,7 @@ need to be sufficent to uniquely identify an attribute.
1113
1132
 
1114
1133
 
1115
1134
  <div id="end-dx--method" class="method-detail ">
1116
- <a name="M000084"></a>
1135
+ <a name="method-i-endIdx%3D"></a>
1117
1136
 
1118
1137
  <div class="method-heading">
1119
1138
 
@@ -1154,7 +1173,7 @@ need to be sufficent to uniquely identify an attribute.
1154
1173
 
1155
1174
 
1156
1175
  <div id="process-method" class="method-detail ">
1157
- <a name="M000085"></a>
1176
+ <a name="method-i-process"></a>
1158
1177
 
1159
1178
  <div class="method-heading">
1160
1179
 
@@ -1171,9 +1190,9 @@ This method tries to resolve the query and return a result. In case it
1171
1190
  finds an attribute that matches the query, it returns true; false
1172
1191
  otherwise. The actual result data is stored in the <a
1173
1192
  href="Query.html">Query</a> object. It can then be retrieved by the caller
1174
- with the methods <a href="Query.html#M000086">to_s</a>(), <a
1175
- href="Query.html#M000087">to_num</a>(), <a
1176
- href="Query.html#M000088">to_sort</a>() and result().
1193
+ with the methods <a href="Query.html#method-i-to_s">to_s</a>(), <a
1194
+ href="Query.html#method-i-to_num">to_num</a>(), <a
1195
+ href="Query.html#method-i-to_sort">to_sort</a>() and result().
1177
1196
  </p>
1178
1197
 
1179
1198
 
@@ -1255,7 +1274,7 @@ href="Query.html#M000088">to_sort</a>() and result().
1255
1274
 
1256
1275
 
1257
1276
  <div id="result-method" class="method-detail ">
1258
- <a name="M000090"></a>
1277
+ <a name="method-i-result"></a>
1259
1278
 
1260
1279
  <div class="method-heading">
1261
1280
 
@@ -1284,12 +1303,14 @@ Return the result in the orginal form. It may be nil.
1284
1303
  207: <span class="ruby-keyword kw">else</span>
1285
1304
  208: <span class="ruby-ivar">@attr</span>.<span class="ruby-identifier">value</span>
1286
1305
  209: <span class="ruby-keyword kw">end</span>
1287
- 210: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@numerical</span>
1288
- 211: <span class="ruby-ivar">@numerical</span>
1289
- 212: <span class="ruby-keyword kw">else</span>
1290
- 213: <span class="ruby-ivar">@string</span>
1291
- 214: <span class="ruby-keyword kw">end</span>
1292
- 215: <span class="ruby-keyword kw">end</span></pre>
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>
1293
1314
  </div>
1294
1315
 
1295
1316
  </div>
@@ -1301,7 +1322,7 @@ Return the result in the orginal form. It may be nil.
1301
1322
 
1302
1323
 
1303
1324
  <div id="scale-uration-method" class="method-detail ">
1304
- <a name="M000091"></a>
1325
+ <a name="method-i-scaleDuration"></a>
1305
1326
 
1306
1327
  <div class="method-heading">
1307
1328
 
@@ -1324,10 +1345,10 @@ optional unit as a <a href="../String.html">String</a>.
1324
1345
  <div class="method-source-code"
1325
1346
  id="scale-uration-source">
1326
1347
  <pre>
1327
- <span class="ruby-comment cmt"># File lib/Query.rb, line 220</span>
1328
- 220: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleDuration</span>(<span class="ruby-identifier">value</span>)
1329
- 221: <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> ])
1330
- 222: <span class="ruby-keyword kw">end</span></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>
1331
1352
  </div>
1332
1353
 
1333
1354
  </div>
@@ -1339,7 +1360,7 @@ optional unit as a <a href="../String.html">String</a>.
1339
1360
 
1340
1361
 
1341
1362
  <div id="scale-oad-method" class="method-detail ">
1342
- <a name="M000092"></a>
1363
+ <a name="method-i-scaleLoad"></a>
1343
1364
 
1344
1365
  <div class="method-heading">
1345
1366
 
@@ -1362,15 +1383,15 @@ value with optional unit as a <a href="../String.html">String</a>.
1362
1383
  <div class="method-source-code"
1363
1384
  id="scale-oad-source">
1364
1385
  <pre>
1365
- <span class="ruby-comment cmt"># File lib/Query.rb, line 227</span>
1366
- 227: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleLoad</span>(<span class="ruby-identifier">value</span>)
1367
- 228: <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>,
1368
- 229: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">dailyWorkingHours</span>,
1369
- 230: <span class="ruby-value">1.0</span>,
1370
- 231: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">weeklyWorkingDays</span>,
1371
- 232: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">monthlyWorkingDays</span>,
1372
- 233: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">yearlyWorkingDays</span> ])
1373
- 234: <span class="ruby-keyword kw">end</span></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>
1374
1395
  </div>
1375
1396
 
1376
1397
  </div>
@@ -1382,7 +1403,7 @@ value with optional unit as a <a href="../String.html">String</a>.
1382
1403
 
1383
1404
 
1384
1405
  <div id="start--method" class="method-detail ">
1385
- <a name="M000081"></a>
1406
+ <a name="method-i-start%3D"></a>
1386
1407
 
1387
1408
  <div class="method-heading">
1388
1409
 
@@ -1427,7 +1448,7 @@ index. We store both, but we need to assure they are always in sync.
1427
1448
 
1428
1449
 
1429
1450
  <div id="start-dx--method" class="method-detail ">
1430
- <a name="M000082"></a>
1451
+ <a name="method-i-startIdx%3D"></a>
1431
1452
 
1432
1453
  <div class="method-heading">
1433
1454
 
@@ -1468,7 +1489,7 @@ index. We store both, but we need to assure they are always in sync.
1468
1489
 
1469
1490
 
1470
1491
  <div id="to-num-method" class="method-detail ">
1471
- <a name="M000087"></a>
1492
+ <a name="method-i-to_num"></a>
1472
1493
 
1473
1494
  <div class="method-heading">
1474
1495
 
@@ -1505,7 +1526,7 @@ The result may be nil.
1505
1526
 
1506
1527
 
1507
1528
  <div id="to-rti-method" class="method-detail ">
1508
- <a name="M000089"></a>
1529
+ <a name="method-i-to_rti"></a>
1509
1530
 
1510
1531
  <div class="method-heading">
1511
1532
 
@@ -1543,7 +1564,7 @@ result may be nil.
1543
1564
 
1544
1565
 
1545
1566
  <div id="to-s-method" class="method-detail ">
1546
- <a name="M000086"></a>
1567
+ <a name="method-i-to_s"></a>
1547
1568
 
1548
1569
  <div class="method-heading">
1549
1570
 
@@ -1567,7 +1588,7 @@ href="../String.html">String</a>. The result may be nil.
1567
1588
  <pre>
1568
1589
  <span class="ruby-comment cmt"># File lib/Query.rb, line 181</span>
1569
1590
  181: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1570
- 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">@string</span> <span class="ruby-operator">||</span> <span class="ruby-value str">''</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>))
1571
1592
  183: <span class="ruby-keyword kw">end</span></pre>
1572
1593
  </div>
1573
1594
 
@@ -1580,7 +1601,7 @@ href="../String.html">String</a>. The result may be nil.
1580
1601
 
1581
1602
 
1582
1603
  <div id="to-sort-method" class="method-detail ">
1583
- <a name="M000088"></a>
1604
+ <a name="method-i-to_sort"></a>
1584
1605
 
1585
1606
  <div class="method-heading">
1586
1607
 
@@ -1623,7 +1644,7 @@ result may be nil.
1623
1644
 
1624
1645
 
1625
1646
  <div id="reset-method" class="method-detail ">
1626
- <a name="M000095"></a>
1647
+ <a name="method-i-reset"></a>
1627
1648
 
1628
1649
  <div class="method-heading">
1629
1650
 
@@ -1645,12 +1666,12 @@ result data.
1645
1666
  <div class="method-source-code"
1646
1667
  id="reset-source">
1647
1668
  <pre>
1648
- <span class="ruby-comment cmt"># File lib/Query.rb, line 328</span>
1649
- 328: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
1650
- 329: <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>
1651
- 330: <span class="ruby-ivar">@ok</span> = <span class="ruby-keyword kw">true</span>
1652
- 331: <span class="ruby-ivar">@errorMessage</span> = <span class="ruby-keyword kw">nil</span>
1653
- 332: <span class="ruby-keyword kw">end</span></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>
1654
1675
  </div>
1655
1676
 
1656
1677
  </div>
@@ -1662,7 +1683,7 @@ result data.
1662
1683
 
1663
1684
 
1664
1685
  <div id="resolve-roperty-d-method" class="method-detail ">
1665
- <a name="M000093"></a>
1686
+ <a name="method-i-resolvePropertyId"></a>
1666
1687
 
1667
1688
  <div class="method-heading">
1668
1689
 
@@ -1681,22 +1702,22 @@ result data.
1681
1702
  <div class="method-source-code"
1682
1703
  id="resolve-roperty-d-source">
1683
1704
  <pre>
1684
- <span class="ruby-comment cmt"># File lib/Query.rb, line 238</span>
1685
- 238: <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>)
1686
- 239: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@project</span>
1687
- 240: <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>
1688
- 241: <span class="ruby-keyword kw">end</span>
1689
- 242: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">pType</span>
1690
- 243: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:Account</span>
1691
- 244: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">account</span>(<span class="ruby-identifier">pId</span>)
1692
- 245: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:Task</span>
1693
- 246: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">task</span>(<span class="ruby-identifier">pId</span>)
1694
- 247: <span class="ruby-keyword kw">when</span><span class="ruby-value">:Resource</span>
1695
- 248: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">resource</span>(<span class="ruby-identifier">pId</span>)
1696
- 249: <span class="ruby-keyword kw">else</span>
1697
- 250: <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>
1698
- 251: <span class="ruby-keyword kw">end</span>
1699
- 252: <span class="ruby-keyword kw">end</span></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>
1700
1721
  </div>
1701
1722
 
1702
1723
  </div>
@@ -1708,7 +1729,7 @@ result data.
1708
1729
 
1709
1730
 
1710
1731
  <div id="scale-alue-method" class="method-detail ">
1711
- <a name="M000094"></a>
1732
+ <a name="method-i-scaleValue"></a>
1712
1733
 
1713
1734
  <div class="method-heading">
1714
1735
 
@@ -1733,71 +1754,71 @@ the different units.
1733
1754
  <div class="method-source-code"
1734
1755
  id="scale-alue-source">
1735
1756
  <pre>
1736
- <span class="ruby-comment cmt"># File lib/Query.rb, line 259</span>
1737
- 259: <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>)
1738
- 260: <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>
1739
- 261: <span class="ruby-comment cmt"># We try all possible units and store the resulting strings here.</span>
1740
- 262: <span class="ruby-identifier">options</span> = []
1741
- 263: <span class="ruby-comment cmt"># For each option we also save the delta between the String value and</span>
1742
- 264: <span class="ruby-comment cmt"># the original value.</span>
1743
- 265: <span class="ruby-identifier">delta</span> = []
1744
- 266: <span class="ruby-comment cmt"># For each of the units we can define a maximum value that the value</span>
1745
- 267: <span class="ruby-comment cmt"># should not exceed. nil means no limit.</span>
1746
- 268: <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> ]
1747
- 269:
1748
- 270: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1749
- 271: <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>
1750
- 272: <span class="ruby-identifier">scaledValue</span> = <span class="ruby-identifier">value</span> * <span class="ruby-identifier">factor</span>
1751
- 273: <span class="ruby-identifier">str</span> = <span class="ruby-ivar">@numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">scaledValue</span>)
1752
- 274: <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>
1753
- 275: <span class="ruby-comment cmt"># We ignore results that are 0 or exceed the maximum. To ensure that</span>
1754
- 276: <span class="ruby-comment cmt"># we have at least one result the unscaled value is always taken.</span>
1755
- 277: <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>
1756
- 278: (<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>])
1757
- 279: <span class="ruby-identifier">options</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">nil</span>
1758
- 280: <span class="ruby-keyword kw">else</span>
1759
- 281: <span class="ruby-identifier">options</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">str</span>
1760
- 282: <span class="ruby-keyword kw">end</span>
1761
- 283: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1762
- 284: <span class="ruby-keyword kw">end</span>
1763
- 285:
1764
- 286: <span class="ruby-comment cmt"># Find the value that is the closest to the original value. This will be</span>
1765
- 287: <span class="ruby-comment cmt"># the default if all values have the same length.</span>
1766
- 288: <span class="ruby-identifier">shortest</span> = <span class="ruby-value">2</span>
1767
- 289: <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>
1768
- 290: <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>
1769
- 291: <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>]
1770
- 292: <span class="ruby-keyword kw">end</span>
1771
- 293:
1772
- 294: <span class="ruby-comment cmt"># Find the shortest option.</span>
1773
- 295: <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>
1774
- 296: <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>
1775
- 297: <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>
1776
- 298: <span class="ruby-keyword kw">end</span>
1777
- 299:
1778
- 300: <span class="ruby-identifier">str</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>]
1779
- 301: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
1780
- 302: <span class="ruby-comment cmt"># For the long units we handle singular and plural properly. For</span>
1781
- 303: <span class="ruby-comment cmt"># English we just need to append an 's', but this code will work for</span>
1782
- 304: <span class="ruby-comment cmt"># other languages as well.</span>
1783
- 305: <span class="ruby-identifier">units</span> = []
1784
- 306: <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>
1785
- 307: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minute hour day week month year )</span>
1786
- 308: <span class="ruby-keyword kw">else</span>
1787
- 309: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minutes hours days weeks months years )</span>
1788
- 310: <span class="ruby-keyword kw">end</span>
1789
- 311: <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>]
1790
- 312: <span class="ruby-keyword kw">else</span>
1791
- 313: <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>]
1792
- 314: <span class="ruby-keyword kw">end</span>
1793
- 315: <span class="ruby-keyword kw">else</span>
1794
- 316: <span class="ruby-comment cmt"># For fixed units we just need to do the conversion. No unit is</span>
1795
- 317: <span class="ruby-comment cmt"># included.</span>
1796
- 318: <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> ]
1797
- 319: <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>)])
1798
- 320: <span class="ruby-keyword kw">end</span>
1799
- 321: <span class="ruby-identifier">str</span>
1800
- 322: <span class="ruby-keyword kw">end</span></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>
1801
1822
  </div>
1802
1823
 
1803
1824
  </div>