taskjuggler 0.0.3 → 0.0.4

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 (495) hide show
  1. data/benchmarks/UTF-8-Strings.rb +58 -0
  2. data/data/css/tjmanual.css +52 -0
  3. data/data/css/tjreport.css +195 -0
  4. data/data/icons/details.png +0 -0
  5. data/data/icons/flag-green.png +0 -0
  6. data/data/icons/flag-red.png +0 -0
  7. data/data/icons/flag-yellow.png +0 -0
  8. data/data/icons/resource.png +0 -0
  9. data/data/icons/resourcegroup.png +0 -0
  10. data/data/icons/task.png +0 -0
  11. data/data/icons/taskgroup.png +0 -0
  12. data/data/icons/trend-down.png +0 -0
  13. data/data/icons/trend-flat.png +0 -0
  14. data/data/icons/trend-up.png +0 -0
  15. data/data/scripts/wz_tooltip.js +1301 -0
  16. data/doc/classes/AppConfig.html +298 -230
  17. data/doc/classes/Arguments.html +8 -8
  18. data/doc/classes/Object.html +7 -7
  19. data/doc/classes/String.html +89 -89
  20. data/doc/classes/TaskJuggler.html +396 -264
  21. data/doc/classes/TaskJuggler/Account.html +18 -18
  22. data/doc/classes/TaskJuggler/AccountAttribute.html +26 -26
  23. data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
  24. data/doc/classes/TaskJuggler/Allocation.html +30 -30
  25. data/doc/classes/TaskJuggler/AllocationAttribute.html +26 -26
  26. data/doc/classes/TaskJuggler/AttributeBase.html +227 -115
  27. data/doc/classes/TaskJuggler/AttributeDefinition.html +6 -6
  28. data/doc/classes/TaskJuggler/BatchProcessor.html +117 -83
  29. data/doc/classes/TaskJuggler/Booking.html +18 -18
  30. data/doc/classes/TaskJuggler/BookingListAttribute.html +26 -26
  31. data/doc/classes/TaskJuggler/BooleanAttribute.html +26 -26
  32. data/doc/classes/TaskJuggler/CSVFile.html +24 -24
  33. data/doc/classes/TaskJuggler/CellSettingPattern.html +201 -0
  34. data/doc/classes/TaskJuggler/CellSettingPatternList.html +253 -0
  35. data/doc/classes/TaskJuggler/Charge.html +18 -18
  36. data/doc/classes/TaskJuggler/ChargeListAttribute.html +20 -20
  37. data/doc/classes/TaskJuggler/ChargeSet.html +37 -37
  38. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +26 -26
  39. data/doc/classes/TaskJuggler/ColumnListAttribute.html +20 -20
  40. data/doc/classes/TaskJuggler/ColumnTable.html +40 -40
  41. data/doc/classes/TaskJuggler/DateAttribute.html +54 -15
  42. data/doc/classes/TaskJuggler/DefinitionListAttribute.html +10 -10
  43. data/doc/classes/TaskJuggler/DependencyListAttribute.html +47 -47
  44. data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
  45. data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
  46. data/doc/classes/TaskJuggler/FlagListAttribute.html +43 -43
  47. data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
  48. data/doc/classes/TaskJuggler/FormatListAttribute.html +21 -21
  49. data/doc/classes/TaskJuggler/GanttChart.html +48 -48
  50. data/doc/classes/TaskJuggler/GanttContainer.html +42 -42
  51. data/doc/classes/TaskJuggler/GanttHeader.html +12 -12
  52. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +12 -12
  53. data/doc/classes/TaskJuggler/GanttLine.html +24 -24
  54. data/doc/classes/TaskJuggler/GanttLoadStack.html +18 -18
  55. data/doc/classes/TaskJuggler/GanttMilestone.html +42 -42
  56. data/doc/classes/TaskJuggler/GanttRouter.html +24 -24
  57. data/doc/classes/TaskJuggler/GanttTaskBar.html +42 -42
  58. data/doc/classes/TaskJuggler/HTMLDocument.html +13 -13
  59. data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
  60. data/doc/classes/TaskJuggler/Interval.html +57 -57
  61. data/doc/classes/TaskJuggler/IntervalListAttribute.html +47 -47
  62. data/doc/classes/TaskJuggler/JobInfo.html +68 -12
  63. data/doc/classes/TaskJuggler/Journal.html +266 -20
  64. data/doc/classes/TaskJuggler/JournalEntry.html +79 -23
  65. data/doc/classes/TaskJuggler/JournalEntryList.html +454 -0
  66. data/doc/classes/TaskJuggler/KeywordArray.html +10 -10
  67. data/doc/classes/TaskJuggler/KeywordDocumentation.html +171 -170
  68. data/doc/classes/TaskJuggler/Limits.html +36 -36
  69. data/doc/classes/TaskJuggler/Limits/Limit.html +30 -30
  70. data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
  71. data/doc/classes/TaskJuggler/ListAttributeBase.html +20 -20
  72. data/doc/classes/TaskJuggler/Log.html +145 -107
  73. data/doc/classes/TaskJuggler/LogicalAttribute.html +65 -36
  74. data/doc/classes/TaskJuggler/LogicalExpression.html +61 -24
  75. data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +20 -20
  76. data/doc/classes/TaskJuggler/LogicalFlag.html +31 -51
  77. data/doc/classes/TaskJuggler/LogicalFunction.html +64 -53
  78. data/doc/classes/TaskJuggler/LogicalOperation.html +103 -55
  79. data/doc/classes/TaskJuggler/Macro.html +6 -6
  80. data/doc/classes/TaskJuggler/MacroParser.html +36 -36
  81. data/doc/classes/TaskJuggler/MacroTable.html +37 -37
  82. data/doc/classes/TaskJuggler/Message.html +12 -12
  83. data/doc/classes/TaskJuggler/MessageHandler.html +32 -20
  84. data/doc/classes/TaskJuggler/Navigator.html +110 -46
  85. data/doc/classes/TaskJuggler/NavigatorElement.html +449 -0
  86. data/doc/classes/TaskJuggler/OnShiftCache.html +24 -24
  87. data/doc/classes/TaskJuggler/Project.html +1158 -893
  88. data/doc/classes/TaskJuggler/ProjectFileParser.html +94 -91
  89. data/doc/classes/TaskJuggler/PropertyAttribute.html +20 -20
  90. data/doc/classes/TaskJuggler/PropertyList.html +225 -155
  91. data/doc/classes/TaskJuggler/PropertySet.html +375 -332
  92. data/doc/classes/TaskJuggler/PropertyTreeNode.html +750 -510
  93. data/doc/classes/TaskJuggler/Query.html +404 -139
  94. data/doc/classes/TaskJuggler/{RTPNavigator.html → RTFNavigator.html} +57 -56
  95. data/doc/classes/TaskJuggler/RTFQuery.html +343 -0
  96. data/doc/classes/TaskJuggler/{RTPReport.html → RTFReport.html} +70 -67
  97. data/doc/classes/TaskJuggler/RealFormat.html +18 -18
  98. data/doc/classes/TaskJuggler/RealFormatAttribute.html +10 -10
  99. data/doc/classes/TaskJuggler/ReferenceAttribute.html +107 -40
  100. data/doc/classes/TaskJuggler/RemoteServiceManager.html +335 -0
  101. data/doc/classes/TaskJuggler/Report.html +66 -64
  102. data/doc/classes/TaskJuggler/ReportBase.html +112 -123
  103. data/doc/classes/TaskJuggler/ReportContext.html +43 -38
  104. data/doc/classes/TaskJuggler/ReportServer.html +320 -0
  105. data/doc/classes/TaskJuggler/ReportTable.html +42 -42
  106. data/doc/classes/TaskJuggler/ReportTableCell.html +221 -129
  107. data/doc/classes/TaskJuggler/ReportTableColumn.html +27 -27
  108. data/doc/classes/TaskJuggler/ReportTableLegend.html +24 -24
  109. data/doc/classes/TaskJuggler/ReportTableLine.html +126 -80
  110. data/doc/classes/TaskJuggler/Resource.html +12 -12
  111. data/doc/classes/TaskJuggler/ResourceListAttribute.html +82 -47
  112. data/doc/classes/TaskJuggler/ResourceListRE.html +43 -39
  113. data/doc/classes/TaskJuggler/ResourceScenario.html +413 -321
  114. data/doc/classes/TaskJuggler/RichText.html +64 -248
  115. data/doc/classes/TaskJuggler/RichTextAttribute.html +94 -30
  116. data/doc/classes/TaskJuggler/RichTextDocument.html +87 -85
  117. data/doc/classes/TaskJuggler/RichTextElement.html +456 -363
  118. data/doc/classes/TaskJuggler/RichTextException.html +13 -13
  119. data/doc/classes/TaskJuggler/{RichTextProtocolExample.html → RichTextFunctionExample.html} +64 -63
  120. data/doc/classes/TaskJuggler/{RichTextProtocolHandler.html → RichTextFunctionHandler.html} +42 -36
  121. data/doc/classes/TaskJuggler/RichTextIntermediate.html +563 -0
  122. data/doc/classes/TaskJuggler/RichTextParser.html +54 -51
  123. data/doc/classes/TaskJuggler/RichTextScanner.html +94 -92
  124. data/doc/classes/TaskJuggler/RichTextSnip.html +96 -60
  125. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +369 -227
  126. data/doc/classes/TaskJuggler/Scenario.html +6 -6
  127. data/doc/classes/TaskJuggler/ScenarioData.html +37 -37
  128. data/doc/classes/TaskJuggler/ScenarioListAttribute.html +31 -31
  129. data/doc/classes/TaskJuggler/Scoreboard.html +66 -66
  130. data/doc/classes/TaskJuggler/Shift.html +18 -18
  131. data/doc/classes/TaskJuggler/ShiftAssignment.html +54 -54
  132. data/doc/classes/TaskJuggler/ShiftAssignments.html +78 -78
  133. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
  134. data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
  135. data/doc/classes/TaskJuggler/SortListAttribute.html +22 -22
  136. data/doc/classes/TaskJuggler/SourceFileInfo.html +12 -12
  137. data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
  138. data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
  139. data/doc/classes/TaskJuggler/SyntaxReference.html +42 -42
  140. data/doc/classes/TaskJuggler/TOCEntry.html +12 -12
  141. data/doc/classes/TaskJuggler/TSResourceRecord.html +197 -0
  142. data/doc/classes/TaskJuggler/TSTaskRecord.html +215 -0
  143. data/doc/classes/TaskJuggler/TableColumnDefinition.html +64 -43
  144. data/doc/classes/TaskJuggler/TableOfContents.html +18 -18
  145. data/doc/classes/TaskJuggler/TableReport.html +447 -468
  146. data/doc/classes/TaskJuggler/Task.html +12 -12
  147. data/doc/classes/TaskJuggler/TaskDependency.html +12 -12
  148. data/doc/classes/TaskJuggler/TaskListAttribute.html +47 -47
  149. data/doc/classes/TaskJuggler/TaskListRE.html +43 -39
  150. data/doc/classes/TaskJuggler/TaskScenario.html +529 -282
  151. data/doc/classes/TaskJuggler/TextParser.html +215 -194
  152. data/doc/classes/TaskJuggler/TextParser/Pattern.html +97 -97
  153. data/doc/classes/TaskJuggler/TextParser/Rule.html +84 -84
  154. data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -15
  155. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
  156. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +6 -6
  157. data/doc/classes/TaskJuggler/TextReport.html +77 -74
  158. data/doc/classes/TaskJuggler/TextScanner.html +294 -281
  159. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
  160. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +59 -60
  161. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +12 -12
  162. data/doc/classes/TaskJuggler/TimeSheetReport.html +406 -0
  163. data/doc/classes/TaskJuggler/TjException.html +6 -6
  164. data/doc/classes/TaskJuggler/TjTime.html +522 -513
  165. data/doc/classes/TaskJuggler/TjpExample.html +25 -25
  166. data/doc/classes/TaskJuggler/TjpExportRE.html +21 -24
  167. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +6177 -4318
  168. data/doc/classes/TaskJuggler/UserManual.html +212 -213
  169. data/doc/classes/TaskJuggler/WorkingHours.html +49 -49
  170. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -53
  171. data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
  172. data/doc/classes/TaskJuggler/XMLComment.html +21 -21
  173. data/doc/classes/TaskJuggler/XMLDocument.html +27 -26
  174. data/doc/classes/TaskJuggler/XMLElement.html +86 -50
  175. data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
  176. data/doc/classes/TaskJuggler/XMLText.html +36 -36
  177. data/doc/files/COPYING.html +1 -1
  178. data/doc/files/README.html +1 -1
  179. data/doc/files/lib/AccountScenario_rb.html +3 -2
  180. data/doc/files/lib/Account_rb.html +3 -2
  181. data/doc/files/lib/Allocation_rb.html +3 -2
  182. data/doc/files/lib/AppConfig_rb.html +5 -2
  183. data/doc/files/lib/AttributeBase_rb.html +3 -2
  184. data/doc/files/lib/AttributeDefinition_rb.html +3 -2
  185. data/doc/files/lib/Attributes_rb.html +3 -2
  186. data/doc/files/lib/BatchProcessor_rb.html +4 -3
  187. data/doc/files/lib/Booking_rb.html +3 -2
  188. data/doc/files/lib/ChargeSet_rb.html +3 -2
  189. data/doc/files/lib/Charge_rb.html +3 -2
  190. data/doc/files/lib/HTMLDocument_rb.html +3 -2
  191. data/doc/files/lib/Interval_rb.html +3 -2
  192. data/doc/files/lib/Journal_rb.html +4 -3
  193. data/doc/files/lib/KeywordArray_rb.html +3 -2
  194. data/doc/files/lib/KeywordDocumentation_rb.html +3 -2
  195. data/doc/files/lib/Limits_rb.html +3 -2
  196. data/doc/files/lib/Log_rb.html +3 -2
  197. data/doc/files/lib/LogicalExpression_rb.html +3 -2
  198. data/doc/files/lib/LogicalFunction_rb.html +3 -2
  199. data/doc/files/lib/LogicalOperation_rb.html +3 -2
  200. data/doc/files/lib/MacroParser_rb.html +3 -2
  201. data/doc/files/lib/MacroTable_rb.html +3 -2
  202. data/doc/files/lib/MessageHandler_rb.html +3 -2
  203. data/doc/files/lib/Message_rb.html +3 -2
  204. data/doc/files/lib/ProjectFileParser_rb.html +7 -4
  205. data/doc/files/lib/Project_rb.html +3 -2
  206. data/doc/files/lib/PropertyList_rb.html +3 -2
  207. data/doc/files/lib/PropertySet_rb.html +3 -2
  208. data/doc/files/lib/PropertyTreeNode_rb.html +3 -2
  209. data/doc/files/lib/Query_rb.html +3 -2
  210. data/doc/files/lib/{RTPNavigator_rb.html → RTFNavigator_rb.html} +8 -7
  211. data/doc/files/lib/RTFQuery_rb.html +121 -0
  212. data/doc/files/lib/{RTPReport_rb.html → RTFReport_rb.html} +8 -7
  213. data/doc/files/lib/RealFormat_rb.html +3 -2
  214. data/doc/files/lib/RemoteServiceManager_rb.html +117 -0
  215. data/doc/files/lib/ReportServer_rb.html +107 -0
  216. data/doc/files/lib/ResourceScenario_rb.html +3 -2
  217. data/doc/files/lib/Resource_rb.html +3 -2
  218. data/doc/files/lib/RichTextDocument_rb.html +4 -3
  219. data/doc/files/lib/RichTextElement_rb.html +3 -2
  220. data/doc/files/lib/{RichTextProtocolExample_rb.html → RichTextFunctionExample_rb.html} +8 -7
  221. data/doc/files/lib/{RichTextProtocolHandler_rb.html → RichTextFunctionHandler_rb.html} +7 -6
  222. data/doc/files/lib/RichTextParser_rb.html +3 -2
  223. data/doc/files/lib/RichTextScanner_rb.html +3 -2
  224. data/doc/files/lib/RichTextSnip_rb.html +3 -2
  225. data/doc/files/lib/RichTextSyntaxRules_rb.html +3 -2
  226. data/doc/files/lib/RichText_rb.html +3 -2
  227. data/doc/files/lib/ScenarioData_rb.html +3 -2
  228. data/doc/files/lib/Scenario_rb.html +3 -2
  229. data/doc/files/lib/Scoreboard_rb.html +3 -2
  230. data/doc/files/lib/ShiftAssignments_rb.html +3 -2
  231. data/doc/files/lib/ShiftScenario_rb.html +3 -2
  232. data/doc/files/lib/Shift_rb.html +3 -2
  233. data/doc/files/lib/SourceFileInfo_rb.html +3 -2
  234. data/doc/files/lib/SyntaxReference_rb.html +3 -2
  235. data/doc/files/lib/TOCEntry_rb.html +3 -2
  236. data/doc/files/lib/TableColumnDefinition_rb.html +3 -2
  237. data/doc/files/lib/TableOfContents_rb.html +3 -2
  238. data/doc/files/lib/TaskDependency_rb.html +3 -2
  239. data/doc/files/lib/TaskJuggler_rb.html +7 -2
  240. data/doc/files/lib/TaskScenario_rb.html +3 -2
  241. data/doc/files/lib/Task_rb.html +3 -2
  242. data/doc/files/lib/TextParser/Pattern_rb.html +4 -3
  243. data/doc/files/lib/TextParser/Rule_rb.html +4 -3
  244. data/doc/files/lib/TextParser/StackElement_rb.html +4 -3
  245. data/doc/files/lib/TextParser/TokenDoc_rb.html +4 -3
  246. data/doc/files/lib/TextParser_rb.html +3 -2
  247. data/doc/files/lib/TextScanner_rb.html +3 -2
  248. data/doc/files/lib/Tj3Config_rb.html +3 -2
  249. data/doc/files/lib/TjException_rb.html +3 -2
  250. data/doc/files/lib/TjTime_rb.html +3 -2
  251. data/doc/files/lib/TjpExample_rb.html +3 -2
  252. data/doc/files/lib/TjpSyntaxRules_rb.html +3 -2
  253. data/doc/files/lib/UTF8String_rb.html +14 -6
  254. data/doc/files/lib/UserManual_rb.html +6 -3
  255. data/doc/files/lib/WorkingHours_rb.html +3 -2
  256. data/doc/files/lib/XMLDocument_rb.html +3 -2
  257. data/doc/files/lib/XMLElement_rb.html +3 -2
  258. data/doc/files/lib/deep_copy_rb.html +3 -2
  259. data/doc/files/lib/reports/CSVFile_rb.html +3 -2
  260. data/doc/files/lib/reports/ColumnTable_rb.html +3 -2
  261. data/doc/files/lib/reports/GanttChart_rb.html +3 -2
  262. data/doc/files/lib/reports/GanttContainer_rb.html +3 -2
  263. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +3 -2
  264. data/doc/files/lib/reports/GanttHeader_rb.html +3 -2
  265. data/doc/files/lib/reports/GanttLine_rb.html +3 -2
  266. data/doc/files/lib/reports/GanttLoadStack_rb.html +3 -2
  267. data/doc/files/lib/reports/GanttMilestone_rb.html +3 -2
  268. data/doc/files/lib/reports/GanttRouter_rb.html +3 -2
  269. data/doc/files/lib/reports/GanttTaskBar_rb.html +3 -2
  270. data/doc/files/lib/reports/HTMLGraphics_rb.html +3 -2
  271. data/doc/files/lib/reports/Navigator_rb.html +3 -2
  272. data/doc/files/lib/reports/ReportBase_rb.html +3 -2
  273. data/doc/files/lib/reports/ReportContext_rb.html +3 -2
  274. data/doc/files/lib/reports/ReportTableCell_rb.html +3 -2
  275. data/doc/files/lib/reports/ReportTableColumn_rb.html +3 -2
  276. data/doc/files/lib/reports/ReportTableLegend_rb.html +3 -2
  277. data/doc/files/lib/reports/ReportTableLine_rb.html +3 -2
  278. data/doc/files/lib/reports/ReportTable_rb.html +3 -2
  279. data/doc/files/lib/reports/Report_rb.html +7 -2
  280. data/doc/files/lib/reports/ResourceListRE_rb.html +3 -2
  281. data/doc/files/lib/reports/TableReport_rb.html +3 -2
  282. data/doc/files/lib/reports/TaskListRE_rb.html +3 -2
  283. data/doc/files/lib/reports/TextReport_rb.html +4 -3
  284. data/doc/files/lib/reports/TimeSheetReport_rb.html +117 -0
  285. data/doc/files/lib/reports/TjpExportRE_rb.html +3 -2
  286. data/doc/files/lib/taskjuggler3_rb.html +94 -77
  287. data/doc/files/lib/tj3client_rb.html +280 -0
  288. data/doc/files/lib/tj3man_rb.html +10 -9
  289. data/doc/fr_class_index.html +27 -5
  290. data/doc/fr_file_index.html +15 -7
  291. data/doc/fr_method_index.html +1312 -1020
  292. data/examples/tutorial.tjp +113 -14
  293. data/gem_spec.rb +2 -1
  294. data/lib/Account.rb +1 -1
  295. data/lib/AccountScenario.rb +1 -1
  296. data/lib/Allocation.rb +1 -1
  297. data/lib/AppConfig.rb +23 -10
  298. data/lib/AttributeBase.rb +34 -6
  299. data/lib/AttributeDefinition.rb +1 -1
  300. data/lib/Attributes.rb +51 -16
  301. data/lib/BatchProcessor.rb +204 -77
  302. data/lib/Booking.rb +1 -1
  303. data/lib/Charge.rb +1 -1
  304. data/lib/ChargeSet.rb +1 -1
  305. data/lib/HTMLDocument.rb +2 -2
  306. data/lib/Interval.rb +1 -1
  307. data/lib/Journal.rb +231 -9
  308. data/lib/KeywordArray.rb +1 -1
  309. data/lib/KeywordDocumentation.rb +6 -4
  310. data/lib/Limits.rb +1 -1
  311. data/lib/Log.rb +8 -1
  312. data/lib/LogicalExpression.rb +14 -13
  313. data/lib/LogicalFunction.rb +88 -14
  314. data/lib/LogicalOperation.rb +124 -53
  315. data/lib/MacroParser.rb +1 -1
  316. data/lib/MacroTable.rb +2 -2
  317. data/lib/Message.rb +1 -1
  318. data/lib/MessageHandler.rb +7 -3
  319. data/lib/Project.rb +93 -14
  320. data/lib/ProjectFileParser.rb +30 -15
  321. data/lib/PropertyList.rb +103 -36
  322. data/lib/PropertySet.rb +22 -10
  323. data/lib/PropertyTreeNode.rb +120 -15
  324. data/lib/Query.rb +119 -48
  325. data/lib/{RTPNavigator.rb → RTFNavigator.rb} +11 -10
  326. data/lib/RTFQuery.rb +166 -0
  327. data/lib/{RTPReport.rb → RTFReport.rb} +11 -8
  328. data/lib/RealFormat.rb +1 -1
  329. data/lib/RemoteServiceManager.rb +80 -0
  330. data/lib/ReportServer.rb +66 -0
  331. data/lib/Resource.rb +1 -1
  332. data/lib/ResourceScenario.rb +48 -19
  333. data/lib/RichText.rb +98 -41
  334. data/lib/RichTextDocument.rb +10 -8
  335. data/lib/RichTextElement.rb +72 -28
  336. data/lib/{RichTextProtocolExample.rb → RichTextFunctionExample.rb} +8 -7
  337. data/lib/{RichTextProtocolHandler.rb → RichTextFunctionHandler.rb} +12 -14
  338. data/lib/RichTextParser.rb +6 -3
  339. data/lib/RichTextScanner.rb +91 -19
  340. data/lib/RichTextSnip.rb +8 -3
  341. data/lib/RichTextSyntaxRules.rb +103 -45
  342. data/lib/Scenario.rb +1 -1
  343. data/lib/ScenarioData.rb +2 -2
  344. data/lib/Scoreboard.rb +1 -1
  345. data/lib/Shift.rb +1 -1
  346. data/lib/ShiftAssignments.rb +1 -1
  347. data/lib/ShiftScenario.rb +1 -1
  348. data/lib/SourceFileInfo.rb +1 -1
  349. data/lib/SyntaxReference.rb +2 -2
  350. data/lib/TOCEntry.rb +1 -1
  351. data/lib/TableColumnDefinition.rb +59 -16
  352. data/lib/TableOfContents.rb +1 -1
  353. data/lib/Task.rb +1 -1
  354. data/lib/TaskDependency.rb +1 -1
  355. data/lib/TaskJuggler.rb +31 -8
  356. data/lib/TaskScenario.rb +165 -16
  357. data/lib/TextParser.rb +36 -22
  358. data/lib/TextParser/Pattern.rb +3 -3
  359. data/lib/TextParser/Rule.rb +2 -2
  360. data/lib/TextParser/StackElement.rb +4 -3
  361. data/lib/TextParser/TokenDoc.rb +2 -2
  362. data/lib/TextScanner.rb +52 -37
  363. data/lib/Tj3Config.rb +6 -5
  364. data/lib/TjException.rb +1 -1
  365. data/lib/TjTime.rb +12 -3
  366. data/lib/TjpExample.rb +1 -1
  367. data/lib/TjpSyntaxRules.rb +1044 -150
  368. data/lib/UTF8String.rb +2 -1
  369. data/lib/UserManual.rb +18 -70
  370. data/lib/WorkingHours.rb +3 -3
  371. data/lib/XMLDocument.rb +3 -2
  372. data/lib/XMLElement.rb +6 -1
  373. data/lib/deep_copy.rb +1 -1
  374. data/lib/reports/CSVFile.rb +1 -1
  375. data/lib/reports/ColumnTable.rb +9 -9
  376. data/lib/reports/GanttChart.rb +1 -1
  377. data/lib/reports/GanttContainer.rb +1 -1
  378. data/lib/reports/GanttHeader.rb +1 -1
  379. data/lib/reports/GanttHeaderScaleItem.rb +1 -1
  380. data/lib/reports/GanttLine.rb +40 -40
  381. data/lib/reports/GanttLoadStack.rb +1 -1
  382. data/lib/reports/GanttMilestone.rb +1 -1
  383. data/lib/reports/GanttRouter.rb +1 -1
  384. data/lib/reports/GanttTaskBar.rb +1 -1
  385. data/lib/reports/HTMLGraphics.rb +1 -1
  386. data/lib/reports/Navigator.rb +149 -22
  387. data/lib/reports/Report.rb +115 -172
  388. data/lib/reports/ReportBase.rb +22 -27
  389. data/lib/reports/ReportContext.rb +29 -15
  390. data/lib/reports/ReportTable.rb +1 -1
  391. data/lib/reports/ReportTableCell.rb +120 -27
  392. data/lib/reports/ReportTableColumn.rb +3 -3
  393. data/lib/reports/ReportTableLegend.rb +1 -1
  394. data/lib/reports/ReportTableLine.rb +10 -2
  395. data/lib/reports/ResourceListRE.rb +5 -1
  396. data/lib/reports/TableReport.rb +237 -287
  397. data/lib/reports/TaskListRE.rb +5 -1
  398. data/lib/reports/TextReport.rb +7 -4
  399. data/lib/reports/TimeSheetReport.rb +233 -0
  400. data/lib/reports/TjpExportRE.rb +2 -2
  401. data/lib/taskjuggler3.rb +27 -11
  402. data/lib/tj3client.rb +110 -0
  403. data/lib/tj3man.rb +4 -4
  404. data/manual/Getting_Started +0 -50
  405. data/manual/How_To_Contribute +6 -13
  406. data/manual/Installation +102 -28
  407. data/manual/Intro +11 -1
  408. data/manual/Reporting_Bugs +23 -7
  409. data/manual/Rich_Text_Attributes +59 -6
  410. data/manual/TaskJuggler_2x_Migration +27 -0
  411. data/manual/The_TaskJuggler_Syntax +104 -0
  412. data/manual/Tutorial +10 -9
  413. data/prj_cfg.rb +8 -2
  414. data/tasks/csts.rake +1 -1
  415. data/tasks/manual.rake +5 -3
  416. data/test/MessageChecker.rb +1 -1
  417. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  418. data/test/TestSuite/HTML-Reports/Alerts.tjp +77 -0
  419. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  420. data/test/TestSuite/HTML-Reports/CellText.tjp +75 -0
  421. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  422. data/test/TestSuite/HTML-Reports/ColumnPeriods.tjp +44 -0
  423. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  424. data/test/TestSuite/HTML-Reports/IsOngoing.tjp +34 -0
  425. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +80 -0
  426. data/test/TestSuite/HTML-Reports/LogicalFunctions.tjp +20 -0
  427. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  428. data/test/TestSuite/HTML-Reports/Query.tjp +28 -0
  429. data/test/TestSuite/HTML-Reports/Sorting.tjp +68 -0
  430. data/test/TestSuite/HTML-Reports/TimeSheet.tjp +69 -0
  431. data/test/TestSuite/HTML-Reports/UDAQuery.tjp +27 -0
  432. data/test/TestSuite/HTML-Reports/css/tjmanual.css +52 -0
  433. data/test/TestSuite/HTML-Reports/css/tjreport.css +195 -0
  434. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  435. data/test/TestSuite/HTML-Reports/icons/details.png +0 -0
  436. data/test/TestSuite/HTML-Reports/icons/flag-green.png +0 -0
  437. data/test/TestSuite/HTML-Reports/icons/flag-red.png +0 -0
  438. data/test/TestSuite/HTML-Reports/icons/flag-yellow.png +0 -0
  439. data/test/TestSuite/HTML-Reports/icons/resource.png +0 -0
  440. data/test/TestSuite/HTML-Reports/icons/resourcegroup.png +0 -0
  441. data/test/TestSuite/HTML-Reports/icons/task.png +0 -0
  442. data/test/TestSuite/HTML-Reports/icons/taskgroup.png +0 -0
  443. data/test/TestSuite/HTML-Reports/reference.tjp +7 -8
  444. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  445. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +1301 -0
  446. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +34 -0
  447. data/test/TestSuite/Syntax/Correct/Celltext.tjp +2 -1
  448. data/test/TestSuite/Syntax/Correct/Journal.tjp +2 -2
  449. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +2 -1
  450. data/test/TestSuite/Syntax/Correct/LogicalFunction.tjp +20 -0
  451. data/test/TestSuite/Syntax/Correct/Query.tjp +18 -0
  452. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +45 -0
  453. data/test/TestSuite/Syntax/Correct/TimeSheet.tjp +49 -0
  454. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  455. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  456. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  457. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  458. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  459. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  460. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  461. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  462. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  463. data/test/TestSuite/Syntax/Correct/tutorial.tjp +113 -14
  464. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +28 -0
  465. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +12 -0
  466. data/test/all.rb +2 -2
  467. data/test/test_BatchProcessor.rb +42 -13
  468. data/test/test_CSV-Reports.rb +1 -1
  469. data/test/test_Journal.rb +176 -0
  470. data/test/test_Limits.rb +1 -1
  471. data/test/test_LogicalExpression.rb +14 -5
  472. data/test/test_MacroTable.rb +1 -1
  473. data/test/test_Project.rb +1 -1
  474. data/test/test_PropertySet.rb +1 -1
  475. data/test/test_Query.rb +1 -1
  476. data/test/test_RealFormat.rb +1 -1
  477. data/test/test_RichText.rb +30 -20
  478. data/test/test_Scheduler.rb +1 -1
  479. data/test/test_ShiftAssignments.rb +2 -2
  480. data/test/test_Syntax.rb +1 -1
  481. data/test/test_TextScanner.rb +1 -1
  482. data/test/test_TjTime.rb +1 -1
  483. data/test/test_TjpExample.rb +1 -1
  484. data/test/test_UTF8String.rb +1 -1
  485. data/test/test_WorkingHours.rb +1 -1
  486. data/test/test_deep_copy.rb +2 -2
  487. metadata +610 -532
  488. data/doc/files/lib/ms_test_rb.html +0 -90
  489. data/examples/ContactList.html +0 -1467
  490. data/examples/Deliveries.html +0 -485
  491. data/examples/Development.html +0 -2525
  492. data/examples/Overview.html +0 -747
  493. data/examples/Resource Graph.html +0 -616
  494. data/lib/ms_test.rb +0 -27
  495. data/test/TestSuite/HTML-Reports/reference-export.html +0 -187
@@ -53,7 +53,7 @@
53
53
  </tr>
54
54
  <tr class="top-aligned-row">
55
55
  <td><strong>Last Update:</strong></td>
56
- <td>2009-09-12 19:44:37 +0200</td>
56
+ <td>2010-01-27 20:53:41 +0100</td>
57
57
  </tr>
58
58
  </table>
59
59
  </div>
@@ -69,7 +69,8 @@ encoding: UTF-8
69
69
  </p>
70
70
  <h1>TjpExportRE.rb &#8212; The <a href="../../../classes/TaskJuggler.html">TaskJuggler</a> III Project Management Software</h1>
71
71
  <p>
72
- Copyright &#169; 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
72
+ Copyright &#169; 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger
73
+ <cs@kde.org>
73
74
  </p>
74
75
  <p>
75
76
  This program is free software; you can redistribute it and/or modify it
@@ -53,7 +53,7 @@
53
53
  </tr>
54
54
  <tr class="top-aligned-row">
55
55
  <td><strong>Last Update:</strong></td>
56
- <td>2009-10-06 15:32:41 +0200</td>
56
+ <td>2010-01-27 20:53:40 +0100</td>
57
57
  </tr>
58
58
  </table>
59
59
  </div>
@@ -69,7 +69,8 @@ encoding: UTF-8
69
69
  </p>
70
70
  <h1>taskjuggler3.rb &#8212; The <a href="../../classes/TaskJuggler.html">TaskJuggler</a> III Project Management Software</h1>
71
71
  <p>
72
- Copyright &#169; 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
72
+ Copyright &#169; 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger
73
+ <cs@kde.org>
73
74
  </p>
74
75
  <p>
75
76
  This program is free software; you can redistribute it and/or modify it
@@ -101,9 +102,9 @@ by the Free Software Foundation.
101
102
 
102
103
  <div class="name-list">
103
104
 
104
- <a href="#M000003">main</a>&nbsp;&nbsp;
105
+ <a href="#M000005">main</a>&nbsp;&nbsp;
105
106
 
106
- <a href="#M000002">processArguments</a>&nbsp;&nbsp;
107
+ <a href="#M000004">processArguments</a>&nbsp;&nbsp;
107
108
 
108
109
  </div>
109
110
  </div>
@@ -124,12 +125,12 @@ by the Free Software Foundation.
124
125
  <h3 class="section-bar">Public Instance methods</h3>
125
126
 
126
127
 
127
- <div id="method-M000003" class="method-detail">
128
- <a name="M000003"></a>
128
+ <div id="method-M000005" class="method-detail">
129
+ <a name="M000005"></a>
129
130
 
130
131
  <div class="method-heading">
131
132
 
132
- <a href="#M000003" class="method-signature">
133
+ <a href="#M000005" class="method-signature">
133
134
 
134
135
  <span class="method-name">main</span><span class="method-args">()</span>
135
136
 
@@ -140,26 +141,37 @@ by the Free Software Foundation.
140
141
  <div class="method-description">
141
142
 
142
143
  <p><a class="source-toggle" href="#"
143
- onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
144
- <div class="method-source-code" id="M000003-source">
144
+ onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
145
+ <div class="method-source-code" id="M000005-source">
145
146
  <pre>
146
- <span class="ruby-comment cmt"># File lib/taskjuggler3.rb, line 92</span>
147
- 92: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
148
- 93: <span class="ruby-ivar">@maxCpuCores</span> = <span class="ruby-value">1</span>
149
- 94: <span class="ruby-ivar">@forceReports</span> = <span class="ruby-keyword kw">false</span>
150
- 95: <span class="ruby-ivar">@outputDir</span> = <span class="ruby-value str">''</span>
151
- 96:
152
- 97: <span class="ruby-identifier">errors</span> = <span class="ruby-keyword kw">false</span>
153
- 98: <span class="ruby-identifier">tj</span> = <span class="ruby-constant">TaskJuggler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">files</span> = <span class="ruby-identifier">processArguments</span>(<span class="ruby-constant">ARGV</span>))
154
- 99: <span class="ruby-identifier">tj</span>.<span class="ruby-identifier">maxCpuCores</span> = <span class="ruby-ivar">@maxCpuCores</span>
155
- 100: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tj</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">files</span>)
156
- 101: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tj</span>.<span class="ruby-identifier">schedule</span>
157
- 102: <span class="ruby-identifier">errors</span> = <span class="ruby-keyword kw">true</span>
158
- 103: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@forceReports</span>
159
- 104: <span class="ruby-keyword kw">end</span>
160
- 105: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tj</span>.<span class="ruby-identifier">generateReports</span>(<span class="ruby-ivar">@outputDir</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">errors</span>
161
- 106:
162
- 107: <span class="ruby-keyword kw">end</span>
147
+ <span class="ruby-comment cmt"># File lib/taskjuggler3.rb, line 97</span>
148
+ 97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
149
+ 98: <span class="ruby-ivar">@maxCpuCores</span> = <span class="ruby-value">1</span>
150
+ 99: <span class="ruby-ivar">@forceReports</span> = <span class="ruby-keyword kw">false</span>
151
+ 100: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-keyword kw">false</span>
152
+ 101: <span class="ruby-ivar">@outputDir</span> = <span class="ruby-value str">''</span>
153
+ 102:
154
+ 103: <span class="ruby-comment cmt"># Install signal handler to exit gracefully on CTRL-C.</span>
155
+ 104: <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">trap</span>(<span class="ruby-value str">'INT'</span>) <span class="ruby-keyword kw">do</span>
156
+ 105: <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;\nAborting on user request!&quot;</span>
157
+ 106: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
158
+ 107: <span class="ruby-keyword kw">end</span>
159
+ 108:
160
+ 109: <span class="ruby-identifier">files</span> = <span class="ruby-identifier">processArguments</span>(<span class="ruby-constant">ARGV</span>)
161
+ 110: <span class="ruby-identifier">tj</span> = <span class="ruby-constant">TaskJuggler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">true</span>)
162
+ 111: <span class="ruby-identifier">tj</span>.<span class="ruby-identifier">maxCpuCores</span> = <span class="ruby-ivar">@maxCpuCores</span>
163
+ 112: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">tj</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">files</span>, <span class="ruby-ivar">@reportServer</span>)
164
+ 113: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tj</span>.<span class="ruby-identifier">schedule</span>
165
+ 114: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@forceReports</span>
166
+ 115: <span class="ruby-keyword kw">end</span>
167
+ 116:
168
+ 117: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@reportServer</span>
169
+ 118: <span class="ruby-identifier">tj</span>.<span class="ruby-identifier">serveReports</span>
170
+ 119: <span class="ruby-keyword kw">else</span>
171
+ 120: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tj</span>.<span class="ruby-identifier">generateReports</span>(<span class="ruby-ivar">@outputDir</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">tj</span>.<span class="ruby-identifier">errors</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
172
+ 121: <span class="ruby-keyword kw">end</span>
173
+ 122:
174
+ 123: <span class="ruby-keyword kw">end</span>
163
175
  </pre>
164
176
  </div>
165
177
 
@@ -167,12 +179,12 @@ by the Free Software Foundation.
167
179
  </div>
168
180
 
169
181
 
170
- <div id="method-M000002" class="method-detail">
171
- <a name="M000002"></a>
182
+ <div id="method-M000004" class="method-detail">
183
+ <a name="M000004"></a>
172
184
 
173
185
  <div class="method-heading">
174
186
 
175
- <a href="#M000002" class="method-signature">
187
+ <a href="#M000004" class="method-signature">
176
188
 
177
189
  <span class="method-name">processArguments</span><span class="method-args">(argv)</span>
178
190
 
@@ -183,19 +195,19 @@ by the Free Software Foundation.
183
195
  <div class="method-description">
184
196
 
185
197
  <p><a class="source-toggle" href="#"
186
- onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
187
- <div class="method-source-code" id="M000002-source">
198
+ onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
199
+ <div class="method-source-code" id="M000004-source">
188
200
  <pre>
189
201
  <span class="ruby-comment cmt"># File lib/taskjuggler3.rb, line 20</span>
190
202
  20: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processArguments</span>(<span class="ruby-identifier">argv</span>)
191
203
  21: <span class="ruby-identifier">opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span>
192
204
  22:
193
- 23: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-node">&quot;#{AppConfig.packageName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
205
+ 23: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-node">&quot;#{AppConfig.softwareName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
194
206
  24: <span class="ruby-node">&quot;#{AppConfig.packageInfo}\n\n&quot;</span> <span class="ruby-operator">+</span>
195
207
  25: <span class="ruby-node">&quot;Copyright (c) #{AppConfig.copyright.join(', ')}&quot;</span> <span class="ruby-operator">+</span>
196
208
  26: <span class="ruby-node">&quot; by #{AppConfig.authors.join(', ')}\n\n&quot;</span> <span class="ruby-operator">+</span>
197
209
  27: <span class="ruby-node">&quot;#{AppConfig.license}\n&quot;</span> <span class="ruby-operator">+</span>
198
- 28: <span class="ruby-node">&quot;For more info about #{AppConfig.packageName} see &quot;</span> <span class="ruby-operator">+</span>
210
+ 28: <span class="ruby-node">&quot;For more info about #{AppConfig.softwareName} see &quot;</span> <span class="ruby-operator">+</span>
199
211
  29: <span class="ruby-node">&quot;#{AppConfig.contact}\n\n&quot;</span> <span class="ruby-operator">+</span>
200
212
  30: <span class="ruby-node">&quot;Usage: #{AppConfig.appName} [options] file.tjp &quot;</span> <span class="ruby-operator">+</span>
201
213
  31: <span class="ruby-value str">&quot;[ file1.tji ... ]&quot;</span>
@@ -214,50 +226,55 @@ by the Free Software Foundation.
214
226
  44: <span class="ruby-value str">'Generate reports despite scheduling errors'</span>) <span class="ruby-keyword kw">do</span>
215
227
  45: <span class="ruby-ivar">@forceReports</span> = <span class="ruby-keyword kw">true</span>
216
228
  46: <span class="ruby-keyword kw">end</span>
217
- 47: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-o'</span>, <span class="ruby-value str">'--output-dir &lt;directory&gt;'</span>, <span class="ruby-constant">String</span>,
218
- 48: <span class="ruby-value str">'Directory the reports should go into'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
219
- 49: <span class="ruby-ivar">@outputDir</span> = <span class="ruby-identifier">arg</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
220
- 50: <span class="ruby-keyword kw">end</span>
221
- 51: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-c N'</span>, <span class="ruby-constant">Integer</span>, <span class="ruby-value str">'Maximum number of CPU cores to use'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
222
- 52: <span class="ruby-ivar">@maxCpuCores</span> = <span class="ruby-identifier">arg</span>
223
- 53: <span class="ruby-keyword kw">end</span>
224
- 54: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'-h'</span>, <span class="ruby-value str">'--help'</span>, <span class="ruby-value str">'Show this message'</span>) <span class="ruby-keyword kw">do</span>
225
- 55: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">to_s</span>
226
- 56: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
227
- 57: <span class="ruby-keyword kw">end</span>
228
- 58:
229
- 59: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'--version'</span>, <span class="ruby-value str">'Show version info'</span>) <span class="ruby-keyword kw">do</span>
230
- 60: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{AppConfig.packageName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
231
- 61: <span class="ruby-node">&quot;#{AppConfig.packageInfo}&quot;</span>
232
- 62: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
233
- 63: <span class="ruby-keyword kw">end</span>
234
- 64:
235
- 65: <span class="ruby-comment cmt"># Show some progress information by default</span>
236
- 66: <span class="ruby-constant">TaskJuggler</span><span class="ruby-operator">::</span><span class="ruby-constant">Log</span>.<span class="ruby-identifier">silent</span> = <span class="ruby-keyword kw">false</span>
237
- 67: <span class="ruby-keyword kw">begin</span>
238
- 68: <span class="ruby-identifier">files</span> = <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">argv</span>)
239
- 69: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">OptionParser</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
240
- 70: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
241
- 71: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">msg</span>
242
- 72: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
243
- 73: <span class="ruby-keyword kw">end</span>
244
- 74:
245
- 75: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">empty?</span>
246
- 76: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">to_s</span>
247
- 77: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;\nNo file name specified!&quot;</span>
248
- 78: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
249
- 79: <span class="ruby-keyword kw">end</span>
250
- 80:
251
- 81: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">TaskJuggler</span><span class="ruby-operator">::</span><span class="ruby-constant">Log</span>.<span class="ruby-identifier">silent</span>
252
- 82: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{AppConfig.packageName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
253
- 83: <span class="ruby-node">&quot;#{AppConfig.packageInfo}\n\n&quot;</span> <span class="ruby-operator">+</span>
254
- 84: <span class="ruby-node">&quot;Copyright (c) #{AppConfig.copyright.join(', ')}&quot;</span> <span class="ruby-operator">+</span>
255
- 85: <span class="ruby-node">&quot; by #{AppConfig.authors.join(', ')}\n\n&quot;</span> <span class="ruby-operator">+</span>
256
- 86: <span class="ruby-node">&quot;#{AppConfig.license}\n&quot;</span>
257
- 87: <span class="ruby-keyword kw">end</span>
258
- 88:
259
- 89: <span class="ruby-identifier">files</span>
260
- 90: <span class="ruby-keyword kw">end</span>
229
+ 47: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-s'</span>, <span class="ruby-value str">'--report-server'</span>,
230
+ 48: <span class="ruby-value str">'Parse and schedule the project and wait for remote report '</span> <span class="ruby-operator">+</span>
231
+ 49: <span class="ruby-value str">'requests'</span>) <span class="ruby-keyword kw">do</span>
232
+ 50: <span class="ruby-ivar">@reportServer</span> = <span class="ruby-keyword kw">true</span>
233
+ 51: <span class="ruby-keyword kw">end</span>
234
+ 52: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-o'</span>, <span class="ruby-value str">'--output-dir &lt;directory&gt;'</span>, <span class="ruby-constant">String</span>,
235
+ 53: <span class="ruby-value str">'Directory the reports should go into'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
236
+ 54: <span class="ruby-ivar">@outputDir</span> = <span class="ruby-identifier">arg</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
237
+ 55: <span class="ruby-keyword kw">end</span>
238
+ 56: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-c N'</span>, <span class="ruby-constant">Integer</span>, <span class="ruby-value str">'Maximum number of CPU cores to use'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
239
+ 57: <span class="ruby-ivar">@maxCpuCores</span> = <span class="ruby-identifier">arg</span>
240
+ 58: <span class="ruby-keyword kw">end</span>
241
+ 59: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'-h'</span>, <span class="ruby-value str">'--help'</span>, <span class="ruby-value str">'Show this message'</span>) <span class="ruby-keyword kw">do</span>
242
+ 60: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">to_s</span>
243
+ 61: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
244
+ 62: <span class="ruby-keyword kw">end</span>
245
+ 63:
246
+ 64: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'--version'</span>, <span class="ruby-value str">'Show version info'</span>) <span class="ruby-keyword kw">do</span>
247
+ 65: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{AppConfig.softwareName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
248
+ 66: <span class="ruby-node">&quot;#{AppConfig.packageInfo}&quot;</span>
249
+ 67: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
250
+ 68: <span class="ruby-keyword kw">end</span>
251
+ 69:
252
+ 70: <span class="ruby-comment cmt"># Show some progress information by default</span>
253
+ 71: <span class="ruby-constant">TaskJuggler</span><span class="ruby-operator">::</span><span class="ruby-constant">Log</span>.<span class="ruby-identifier">silent</span> = <span class="ruby-keyword kw">false</span>
254
+ 72: <span class="ruby-keyword kw">begin</span>
255
+ 73: <span class="ruby-identifier">files</span> = <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">argv</span>)
256
+ 74: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">OptionParser</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
257
+ 75: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
258
+ 76: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">msg</span>
259
+ 77: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
260
+ 78: <span class="ruby-keyword kw">end</span>
261
+ 79:
262
+ 80: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">empty?</span>
263
+ 81: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">to_s</span>
264
+ 82: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;\nNo project file name specified!&quot;</span>
265
+ 83: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
266
+ 84: <span class="ruby-keyword kw">end</span>
267
+ 85:
268
+ 86: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">TaskJuggler</span><span class="ruby-operator">::</span><span class="ruby-constant">Log</span>.<span class="ruby-identifier">silent</span>
269
+ 87: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{AppConfig.softwareName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
270
+ 88: <span class="ruby-node">&quot;#{AppConfig.packageInfo}\n\n&quot;</span> <span class="ruby-operator">+</span>
271
+ 89: <span class="ruby-node">&quot;Copyright (c) #{AppConfig.copyright.join(', ')}&quot;</span> <span class="ruby-operator">+</span>
272
+ 90: <span class="ruby-node">&quot; by #{AppConfig.authors.join(', ')}\n\n&quot;</span> <span class="ruby-operator">+</span>
273
+ 91: <span class="ruby-node">&quot;#{AppConfig.license}\n&quot;</span>
274
+ 92: <span class="ruby-keyword kw">end</span>
275
+ 93:
276
+ 94: <span class="ruby-identifier">files</span>
277
+ 95: <span class="ruby-keyword kw">end</span>
261
278
  </pre>
262
279
  </div>
263
280
 
@@ -0,0 +1,280 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <title>File: tj3client.rb [TaskJuggler III API documentation]</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
8
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
9
+ <script type="text/javascript">
10
+ // <![CDATA[
11
+
12
+ function popupCode( url ) {
13
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
14
+ }
15
+
16
+ function toggleCode( id ) {
17
+ if ( document.getElementById )
18
+ elem = document.getElementById( id );
19
+ else if ( document.all )
20
+ elem = eval( "document.all." + id );
21
+ else
22
+ return false;
23
+
24
+ elemStyle = elem.style;
25
+
26
+ if ( elemStyle.display != "block" ) {
27
+ elemStyle.display = "block"
28
+ } else {
29
+ elemStyle.display = "none"
30
+ }
31
+
32
+ return true;
33
+ }
34
+
35
+ // Make codeblocks hidden by default
36
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
37
+
38
+ // ]]>
39
+ </script>
40
+
41
+ </head>
42
+ <body>
43
+
44
+
45
+ <div id="fileHeader">
46
+ <h1>tj3client.rb</h1>
47
+ <table class="header-table">
48
+ <tr class="top-aligned-row">
49
+ <td><strong>Path:</strong></td>
50
+ <td>lib/tj3client.rb
51
+
52
+ </td>
53
+ </tr>
54
+ <tr class="top-aligned-row">
55
+ <td><strong>Last Update:</strong></td>
56
+ <td>2010-01-27 20:53:40 +0100</td>
57
+ </tr>
58
+ </table>
59
+ </div>
60
+ <!-- banner header -->
61
+
62
+ <div id="bodyContent">
63
+
64
+ <div id="contextContent">
65
+
66
+ <div id="description">
67
+ <p>
68
+ encoding: UTF-8
69
+ </p>
70
+ <h1>tj3client.rb &#8212; The <a href="../../classes/TaskJuggler.html">TaskJuggler</a> III Project Management Software</h1>
71
+ <p>
72
+ Copyright &#169; 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger
73
+ <cs@kde.org>
74
+ </p>
75
+ <p>
76
+ This program is free software; you can redistribute it and/or modify it
77
+ under the terms of version 2 of the GNU General Public License as published
78
+ by the Free Software Foundation.
79
+ </p>
80
+
81
+ </div>
82
+
83
+ <div id="requires-list">
84
+ <h3 class="section-bar">Required files</h3>
85
+
86
+ <div class="name-list">
87
+
88
+ optparse&nbsp;&nbsp;
89
+
90
+ drb&nbsp;&nbsp;
91
+
92
+ Tj3Config&nbsp;&nbsp;
93
+
94
+ </div>
95
+ </div>
96
+
97
+ </div>
98
+
99
+
100
+ <div id="method-list">
101
+ <h3 class="section-bar">Methods</h3>
102
+
103
+ <div class="name-list">
104
+
105
+ <a href="#M000002">main</a>&nbsp;&nbsp;
106
+
107
+ <a href="#M000001">processArguments</a>&nbsp;&nbsp;
108
+
109
+ </div>
110
+ </div>
111
+
112
+ </div>
113
+
114
+ <!-- if includes -->
115
+
116
+ <div id="section">
117
+
118
+
119
+
120
+
121
+ <!-- if method_list -->
122
+
123
+ <div id="methods">
124
+
125
+ <h3 class="section-bar">Public Instance methods</h3>
126
+
127
+
128
+ <div id="method-M000002" class="method-detail">
129
+ <a name="M000002"></a>
130
+
131
+ <div class="method-heading">
132
+
133
+ <a href="#M000002" class="method-signature">
134
+
135
+ <span class="method-name">main</span><span class="method-args">()</span>
136
+
137
+ </a>
138
+
139
+ </div>
140
+
141
+ <div class="method-description">
142
+
143
+ <p><a class="source-toggle" href="#"
144
+ onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
145
+ <div class="method-source-code" id="M000002-source">
146
+ <pre>
147
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 72</span>
148
+ 72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
149
+ 73: <span class="ruby-ivar">@reports</span> = []
150
+ 74:
151
+ 75: <span class="ruby-comment cmt"># Install signal handler to exit gracefully on CTRL-C.</span>
152
+ 76: <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">trap</span>(<span class="ruby-value str">'INT'</span>) <span class="ruby-keyword kw">do</span>
153
+ 77: <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;\nAborting on user request!&quot;</span>
154
+ 78: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
155
+ 79: <span class="ruby-keyword kw">end</span>
156
+ 80:
157
+ 81: <span class="ruby-identifier">files</span> = <span class="ruby-identifier">processArguments</span>(<span class="ruby-constant">ARGV</span>)
158
+ 82:
159
+ 83: <span class="ruby-comment cmt"># Connect to the RemoteServiceManager object and request a new service</span>
160
+ 84: <span class="ruby-comment cmt"># process.</span>
161
+ 85: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">start_service</span>
162
+ 86: <span class="ruby-identifier">serviceManager</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">'druby://localhost:8474'</span>)
163
+ 87:
164
+ 88: <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">serviceManager</span>.<span class="ruby-identifier">requestService</span>
165
+ 89: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">stop_service</span>
166
+ 90:
167
+ 91: <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">start_service</span>
168
+ 92: <span class="ruby-identifier">server</span> = <span class="ruby-constant">DRbObject</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">uri</span>)
169
+ 93: <span class="ruby-identifier">server</span>.<span class="ruby-identifier">connect</span>(<span class="ruby-identifier">$stdout</span>, <span class="ruby-identifier">$stderr</span>)
170
+ 94:
171
+ 95: <span class="ruby-identifier">files</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
172
+ 96: <span class="ruby-identifier">fileContent</span> = <span class="ruby-constant">IO</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">file</span>)
173
+ 97: <span class="ruby-identifier">server</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">fileContent</span>)
174
+ 98: <span class="ruby-keyword kw">end</span>
175
+ 99:
176
+ 100: <span class="ruby-ivar">@reports</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">id</span><span class="ruby-operator">|</span>
177
+ 101: <span class="ruby-identifier">server</span>.<span class="ruby-identifier">generateReport</span>(<span class="ruby-identifier">id</span>)
178
+ 102: <span class="ruby-keyword kw">end</span>
179
+ 103:
180
+ 104: <span class="ruby-identifier">server</span>.<span class="ruby-identifier">disconnect</span>
181
+ 105: <span class="ruby-keyword kw">end</span>
182
+ </pre>
183
+ </div>
184
+
185
+ </div>
186
+ </div>
187
+
188
+
189
+ <div id="method-M000001" class="method-detail">
190
+ <a name="M000001"></a>
191
+
192
+ <div class="method-heading">
193
+
194
+ <a href="#M000001" class="method-signature">
195
+
196
+ <span class="method-name">processArguments</span><span class="method-args">(argv)</span>
197
+
198
+ </a>
199
+
200
+ </div>
201
+
202
+ <div class="method-description">
203
+
204
+ <p><a class="source-toggle" href="#"
205
+ onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
206
+ <div class="method-source-code" id="M000001-source">
207
+ <pre>
208
+ <span class="ruby-comment cmt"># File lib/tj3client.rb, line 20</span>
209
+ 20: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">processArguments</span>(<span class="ruby-identifier">argv</span>)
210
+ 21: <span class="ruby-identifier">opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span>
211
+ 22:
212
+ 23: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-node">&quot;#{AppConfig.softwareName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
213
+ 24: <span class="ruby-node">&quot;#{AppConfig.packageInfo}\n\n&quot;</span> <span class="ruby-operator">+</span>
214
+ 25: <span class="ruby-node">&quot;Copyright (c) #{AppConfig.copyright.join(', ')}&quot;</span> <span class="ruby-operator">+</span>
215
+ 26: <span class="ruby-node">&quot; by #{AppConfig.authors.join(', ')}\n\n&quot;</span> <span class="ruby-operator">+</span>
216
+ 27: <span class="ruby-node">&quot;#{AppConfig.license}\n&quot;</span> <span class="ruby-operator">+</span>
217
+ 28: <span class="ruby-node">&quot;For more info about #{AppConfig.softwareName} see &quot;</span> <span class="ruby-operator">+</span>
218
+ 29: <span class="ruby-node">&quot;#{AppConfig.contact}\n\n&quot;</span> <span class="ruby-operator">+</span>
219
+ 30: <span class="ruby-node">&quot;Usage: #{AppConfig.appName} [options] file.tjp &quot;</span> <span class="ruby-operator">+</span>
220
+ 31: <span class="ruby-value str">&quot;[ file1.tji ... ]&quot;</span>
221
+ 32: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">&quot;&quot;</span>
222
+ 33: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--silent'</span>, <span class="ruby-value str">&quot;Don't show program and progress information&quot;</span>) <span class="ruby-keyword kw">do</span>
223
+ 34: <span class="ruby-ivar">@silent</span> = <span class="ruby-keyword kw">true</span>
224
+ 35: <span class="ruby-keyword kw">end</span>
225
+ 36: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-g'</span>, <span class="ruby-value str">'--generate-report &lt;ID&gt;'</span>, <span class="ruby-constant">String</span>,
226
+ 37: <span class="ruby-value str">'Generate reports despite scheduling errors'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
227
+ 38: <span class="ruby-ivar">@reports</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">arg</span>
228
+ 39: <span class="ruby-keyword kw">end</span>
229
+ 40: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'-h'</span>, <span class="ruby-value str">'--help'</span>, <span class="ruby-value str">'Show this message'</span>) <span class="ruby-keyword kw">do</span>
230
+ 41: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">to_s</span>
231
+ 42: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
232
+ 43: <span class="ruby-keyword kw">end</span>
233
+ 44:
234
+ 45: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'--version'</span>, <span class="ruby-value str">'Show version info'</span>) <span class="ruby-keyword kw">do</span>
235
+ 46: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{AppConfig.softwareName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
236
+ 47: <span class="ruby-node">&quot;#{AppConfig.packageInfo}&quot;</span>
237
+ 48: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
238
+ 49: <span class="ruby-keyword kw">end</span>
239
+ 50:
240
+ 51: <span class="ruby-comment cmt"># Show some progress information by default</span>
241
+ 52: <span class="ruby-ivar">@silent</span> = <span class="ruby-keyword kw">false</span>
242
+ 53: <span class="ruby-keyword kw">begin</span>
243
+ 54: <span class="ruby-identifier">files</span> = <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">argv</span>)
244
+ 55: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">OptionParser</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">msg</span>
245
+ 56: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
246
+ 57: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">msg</span>
247
+ 58: <span class="ruby-identifier">exit</span> <span class="ruby-value">0</span>
248
+ 59: <span class="ruby-keyword kw">end</span>
249
+ 60:
250
+ 61: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@silent</span>
251
+ 62: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{AppConfig.softwareName} v#{AppConfig.version} - &quot;</span> <span class="ruby-operator">+</span>
252
+ 63: <span class="ruby-node">&quot;#{AppConfig.packageInfo}\n\n&quot;</span> <span class="ruby-operator">+</span>
253
+ 64: <span class="ruby-node">&quot;Copyright (c) #{AppConfig.copyright.join(', ')}&quot;</span> <span class="ruby-operator">+</span>
254
+ 65: <span class="ruby-node">&quot; by #{AppConfig.authors.join(', ')}\n\n&quot;</span> <span class="ruby-operator">+</span>
255
+ 66: <span class="ruby-node">&quot;#{AppConfig.license}\n&quot;</span>
256
+ 67: <span class="ruby-keyword kw">end</span>
257
+ 68:
258
+ 69: <span class="ruby-identifier">files</span>
259
+ 70: <span class="ruby-keyword kw">end</span>
260
+ </pre>
261
+ </div>
262
+
263
+ </div>
264
+ </div>
265
+
266
+
267
+
268
+ </div>
269
+
270
+
271
+
272
+
273
+ </div>
274
+
275
+ <div id="validator-badges">
276
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
277
+ </div>
278
+
279
+ </body>
280
+ </html>