taskjuggler 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (613) hide show
  1. data/CHANGELOG +1144 -2047
  2. data/README +1 -1
  3. data/Rakefile +6 -6
  4. data/data/css/tjmanual.css +20 -0
  5. data/data/css/tjreport.css +7 -6
  6. data/doc/AppConfig.html +136 -130
  7. data/doc/Arguments.html +46 -40
  8. data/doc/CHANGELOG.html +1162 -2057
  9. data/doc/COPYING.html +8 -2
  10. data/doc/Object.html +205 -199
  11. data/doc/README.html +9 -3
  12. data/doc/RuntimeConfig.html +75 -69
  13. data/doc/String.html +69 -63
  14. data/doc/TaskJuggler.html +350 -291
  15. data/doc/TaskJuggler/Account.html +26 -20
  16. data/doc/TaskJuggler/AccountAttribute.html +24 -18
  17. data/doc/TaskJuggler/AccountScenario.html +24 -18
  18. data/doc/TaskJuggler/Allocation.html +74 -68
  19. data/doc/TaskJuggler/AllocationAttribute.html +54 -48
  20. data/doc/TaskJuggler/AttributeBase.html +172 -93
  21. data/doc/TaskJuggler/AttributeDefinition.html +22 -16
  22. data/doc/TaskJuggler/AttributeOverwrite.html +586 -0
  23. data/doc/TaskJuggler/BatchProcessor.html +263 -257
  24. data/doc/TaskJuggler/Booking.html +44 -38
  25. data/doc/TaskJuggler/BookingListAttribute.html +25 -21
  26. data/doc/TaskJuggler/BooleanAttribute.html +24 -18
  27. data/doc/TaskJuggler/CSVFile.html +193 -187
  28. data/doc/TaskJuggler/CellSettingPattern.html +13 -7
  29. data/doc/TaskJuggler/CellSettingPatternList.html +25 -19
  30. data/doc/TaskJuggler/Charge.html +49 -43
  31. data/doc/TaskJuggler/ChargeListAttribute.html +21 -15
  32. data/doc/TaskJuggler/ChargeSet.html +94 -88
  33. data/doc/TaskJuggler/ChargeSetListAttribute.html +29 -25
  34. data/doc/TaskJuggler/CollisionDetector.html +142 -136
  35. data/doc/TaskJuggler/ColumnListAttribute.html +21 -17
  36. data/doc/TaskJuggler/ColumnTable.html +50 -44
  37. data/doc/TaskJuggler/Daemon.html +71 -50
  38. data/doc/TaskJuggler/DataCache.html +110 -58
  39. data/doc/TaskJuggler/DataCacheEntry.html +22 -16
  40. data/doc/TaskJuggler/DateAttribute.html +24 -18
  41. data/doc/TaskJuggler/DefinitionListAttribute.html +12 -6
  42. data/doc/TaskJuggler/DependencyListAttribute.html +29 -25
  43. data/doc/TaskJuggler/DurationAttribute.html +25 -19
  44. data/doc/TaskJuggler/FileList.html +25 -19
  45. data/doc/TaskJuggler/FileRecord.html +17 -11
  46. data/doc/TaskJuggler/FixnumAttribute.html +16 -10
  47. data/doc/TaskJuggler/FlagListAttribute.html +25 -21
  48. data/doc/TaskJuggler/FloatAttribute.html +20 -14
  49. data/doc/TaskJuggler/FormatListAttribute.html +17 -11
  50. data/doc/TaskJuggler/GanttChart.html +242 -236
  51. data/doc/TaskJuggler/GanttContainer.html +71 -67
  52. data/doc/TaskJuggler/GanttHeader.html +113 -107
  53. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -20
  54. data/doc/TaskJuggler/GanttLine.html +217 -210
  55. data/doc/TaskJuggler/GanttLoadStack.html +89 -83
  56. data/doc/TaskJuggler/GanttMilestone.html +11 -6
  57. data/doc/TaskJuggler/GanttRouter.html +194 -186
  58. data/doc/TaskJuggler/GanttTaskBar.html +41 -34
  59. data/doc/TaskJuggler/HTMLDocument.html +52 -46
  60. data/doc/TaskJuggler/HTMLGraphics.html +58 -52
  61. data/doc/TaskJuggler/Interval.html +90 -84
  62. data/doc/TaskJuggler/IntervalList.html +777 -0
  63. data/doc/TaskJuggler/IntervalListAttribute.html +29 -25
  64. data/doc/TaskJuggler/JobInfo.html +36 -30
  65. data/doc/TaskJuggler/Journal.html +188 -177
  66. data/doc/TaskJuggler/JournalEntry.html +36 -30
  67. data/doc/TaskJuggler/JournalEntryList.html +88 -82
  68. data/doc/TaskJuggler/KeywordArray.html +12 -6
  69. data/doc/TaskJuggler/KeywordDocumentation.html +512 -503
  70. data/doc/TaskJuggler/Limits.html +111 -105
  71. data/doc/TaskJuggler/Limits/Limit.html +71 -65
  72. data/doc/TaskJuggler/LimitsAttribute.html +21 -15
  73. data/doc/TaskJuggler/ListAttributeBase.html +16 -10
  74. data/doc/TaskJuggler/Log.html +111 -105
  75. data/doc/TaskJuggler/LogFile.html +54 -48
  76. data/doc/TaskJuggler/LogicalAttribute.html +35 -29
  77. data/doc/TaskJuggler/LogicalExpression.html +32 -26
  78. data/doc/TaskJuggler/LogicalExpressionAttribute.html +16 -10
  79. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +671 -0
  80. data/doc/TaskJuggler/LogicalFlag.html +24 -18
  81. data/doc/TaskJuggler/LogicalFunction.html +164 -158
  82. data/doc/TaskJuggler/LogicalOperation.html +138 -132
  83. data/doc/TaskJuggler/Macro.html +14 -8
  84. data/doc/TaskJuggler/MacroTable.html +42 -36
  85. data/doc/TaskJuggler/ManagerResponsibilities.html +19 -13
  86. data/doc/TaskJuggler/ManagerStatusRecord.html +23 -17
  87. data/doc/TaskJuggler/Message.html +56 -50
  88. data/doc/TaskJuggler/MessageHandler.html +73 -67
  89. data/doc/TaskJuggler/Navigator.html +92 -86
  90. data/doc/TaskJuggler/NavigatorElement.html +88 -82
  91. data/doc/TaskJuggler/NikuProject.html +15 -9
  92. data/doc/TaskJuggler/NikuReport.html +405 -370
  93. data/doc/TaskJuggler/NikuResource.html +13 -7
  94. data/doc/TaskJuggler/NodeListAttribute.html +13 -9
  95. data/doc/TaskJuggler/PlaceHolderCell.html +22 -16
  96. data/doc/TaskJuggler/ProcessIntercom.html +116 -110
  97. data/doc/TaskJuggler/ProcessIntercomIface.html +39 -33
  98. data/doc/TaskJuggler/Project.html +1064 -895
  99. data/doc/TaskJuggler/ProjectBroker.html +439 -366
  100. data/doc/TaskJuggler/ProjectBrokerIface.html +63 -53
  101. data/doc/TaskJuggler/ProjectFileParser.html +329 -319
  102. data/doc/TaskJuggler/ProjectFileScanner.html +351 -345
  103. data/doc/TaskJuggler/ProjectRecord.html +66 -60
  104. data/doc/TaskJuggler/ProjectServer.html +287 -280
  105. data/doc/TaskJuggler/ProjectServerIface.html +43 -37
  106. data/doc/TaskJuggler/PropertyAttribute.html +16 -10
  107. data/doc/TaskJuggler/PropertyList.html +205 -199
  108. data/doc/TaskJuggler/PropertySet.html +264 -296
  109. data/doc/TaskJuggler/PropertyTreeNode.html +455 -505
  110. data/doc/TaskJuggler/Query.html +309 -524
  111. data/doc/TaskJuggler/RTFHandlers.html +17 -11
  112. data/doc/TaskJuggler/RTFNavigator.html +33 -27
  113. data/doc/TaskJuggler/RTFQuery.html +135 -129
  114. data/doc/TaskJuggler/RTFReport.html +63 -57
  115. data/doc/TaskJuggler/RTFReportLink.html +55 -49
  116. data/doc/TaskJuggler/RTFWithQuerySupport.html +17 -11
  117. data/doc/TaskJuggler/RealFormat.html +64 -58
  118. data/doc/TaskJuggler/RealFormatAttribute.html +12 -6
  119. data/doc/TaskJuggler/ReferenceAttribute.html +35 -29
  120. data/doc/TaskJuggler/Report.html +294 -249
  121. data/doc/TaskJuggler/ReportBase.html +229 -223
  122. data/doc/TaskJuggler/ReportContext.html +52 -46
  123. data/doc/TaskJuggler/ReportServer.html +143 -137
  124. data/doc/TaskJuggler/ReportServerIface.html +51 -43
  125. data/doc/TaskJuggler/ReportServerRecord.html +36 -30
  126. data/doc/TaskJuggler/ReportServlet.html +167 -140
  127. data/doc/TaskJuggler/ReportTable.html +137 -131
  128. data/doc/TaskJuggler/ReportTableCell.html +332 -292
  129. data/doc/TaskJuggler/ReportTableColumn.html +46 -40
  130. data/doc/TaskJuggler/ReportTableLegend.html +43 -38
  131. data/doc/TaskJuggler/ReportTableLine.html +66 -60
  132. data/doc/TaskJuggler/Resource.html +166 -160
  133. data/doc/TaskJuggler/ResourceListAttribute.html +54 -32
  134. data/doc/TaskJuggler/ResourceListRE.html +47 -41
  135. data/doc/TaskJuggler/ResourceScenario.html +671 -644
  136. data/doc/TaskJuggler/RichText.html +51 -45
  137. data/doc/TaskJuggler/RichTextAttribute.html +28 -22
  138. data/doc/TaskJuggler/RichTextDocument.html +96 -90
  139. data/doc/TaskJuggler/RichTextElement.html +503 -497
  140. data/doc/TaskJuggler/RichTextFunctionExample.html +41 -35
  141. data/doc/TaskJuggler/RichTextFunctionHandler.html +19 -13
  142. data/doc/TaskJuggler/RichTextImage.html +14 -8
  143. data/doc/TaskJuggler/RichTextIntermediate.html +86 -80
  144. data/doc/TaskJuggler/RichTextParser.html +59 -53
  145. data/doc/TaskJuggler/RichTextScanner.html +184 -178
  146. data/doc/TaskJuggler/RichTextSnip.html +69 -63
  147. data/doc/TaskJuggler/RichTextSyntaxRules.html +416 -410
  148. data/doc/TaskJuggler/Scenario.html +13 -7
  149. data/doc/TaskJuggler/ScenarioData.html +40 -34
  150. data/doc/TaskJuggler/ScenarioListAttribute.html +21 -15
  151. data/doc/TaskJuggler/Scoreboard.html +129 -107
  152. data/doc/TaskJuggler/SheetHandlerBase.html +245 -239
  153. data/doc/TaskJuggler/SheetReceiver.html +333 -327
  154. data/doc/TaskJuggler/SheetSender.html +227 -221
  155. data/doc/TaskJuggler/Shift.html +26 -20
  156. data/doc/TaskJuggler/ShiftAssignment.html +45 -39
  157. data/doc/TaskJuggler/ShiftAssignments.html +178 -172
  158. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +21 -15
  159. data/doc/TaskJuggler/ShiftScenario.html +29 -23
  160. data/doc/TaskJuggler/SimpleQueryExpander.html +36 -30
  161. data/doc/TaskJuggler/SortListAttribute.html +17 -13
  162. data/doc/TaskJuggler/SourceFileInfo.html +19 -13
  163. data/doc/TaskJuggler/StatusSheetReceiver.html +31 -25
  164. data/doc/TaskJuggler/StatusSheetReport.html +166 -159
  165. data/doc/TaskJuggler/StatusSheetSender.html +80 -74
  166. data/doc/TaskJuggler/StringAttribute.html +20 -14
  167. data/doc/TaskJuggler/SymbolAttribute.html +16 -10
  168. data/doc/TaskJuggler/SyntaxReference.html +231 -225
  169. data/doc/TaskJuggler/TOCEntry.html +46 -40
  170. data/doc/TaskJuggler/TSResourceRecord.html +15 -9
  171. data/doc/TaskJuggler/TSTaskRecord.html +16 -10
  172. data/doc/TaskJuggler/TableColumnDefinition.html +84 -39
  173. data/doc/TaskJuggler/TableOfContents.html +28 -22
  174. data/doc/TaskJuggler/TableReport.html +906 -866
  175. data/doc/TaskJuggler/Task.html +99 -93
  176. data/doc/TaskJuggler/TaskDependency.html +24 -18
  177. data/doc/TaskJuggler/TaskListAttribute.html +29 -25
  178. data/doc/TaskJuggler/TaskListRE.html +46 -39
  179. data/doc/TaskJuggler/TaskScenario.html +2218 -1965
  180. data/doc/TaskJuggler/TextFormatter.html +154 -148
  181. data/doc/TaskJuggler/TextParser.html +362 -348
  182. data/doc/TaskJuggler/TextParser/Pattern.html +313 -307
  183. data/doc/TaskJuggler/TextParser/Rule.html +147 -141
  184. data/doc/TaskJuggler/TextParser/StackElement.html +58 -52
  185. data/doc/TaskJuggler/TextParser/State.html +88 -82
  186. data/doc/TaskJuggler/TextParser/StateTransition.html +42 -36
  187. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +20 -14
  188. data/doc/TaskJuggler/TextParser/TokenDoc.html +19 -13
  189. data/doc/TaskJuggler/TextReport.html +80 -74
  190. data/doc/TaskJuggler/TextScanner.html +284 -272
  191. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +14 -8
  192. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +21 -15
  193. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +15 -9
  194. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  195. data/doc/TaskJuggler/TimeSheet.html +123 -117
  196. data/doc/TaskJuggler/TimeSheetReceiver.html +28 -22
  197. data/doc/TaskJuggler/TimeSheetRecord.html +212 -206
  198. data/doc/TaskJuggler/TimeSheetReport.html +206 -199
  199. data/doc/TaskJuggler/TimeSheetSender.html +27 -21
  200. data/doc/TaskJuggler/TimeSheetSummary.html +140 -134
  201. data/doc/TaskJuggler/TimeSheets.html +20 -14
  202. data/doc/TaskJuggler/Tj3AppBase.html +100 -94
  203. data/doc/TaskJuggler/Tj3Client.html +407 -483
  204. data/doc/TaskJuggler/Tj3Daemon.html +116 -107
  205. data/doc/TaskJuggler/Tj3SheetAppBase.html +45 -39
  206. data/doc/TaskJuggler/Tj3SsReceiver.html +31 -25
  207. data/doc/TaskJuggler/Tj3SsSender.html +64 -58
  208. data/doc/TaskJuggler/Tj3TsReceiver.html +31 -25
  209. data/doc/TaskJuggler/Tj3TsSender.html +51 -45
  210. data/doc/TaskJuggler/Tj3TsSummary.html +59 -53
  211. data/doc/TaskJuggler/TjException.html +13 -7
  212. data/doc/TaskJuggler/TjTime.html +444 -438
  213. data/doc/TaskJuggler/TjpExample.html +84 -78
  214. data/doc/TaskJuggler/TjpExportRE.html +356 -349
  215. data/doc/TaskJuggler/TjpSyntaxRules.html +4279 -4151
  216. data/doc/TaskJuggler/URLParameter.html +16 -10
  217. data/doc/TaskJuggler/UserManual.html +185 -179
  218. data/doc/TaskJuggler/VimSyntax.html +144 -138
  219. data/doc/TaskJuggler/WebServer.html +46 -39
  220. data/doc/TaskJuggler/WelcomePage.html +769 -0
  221. data/doc/TaskJuggler/WorkingHours.html +185 -179
  222. data/doc/TaskJuggler/WorkingHoursAttribute.html +42 -36
  223. data/doc/TaskJuggler/XMLBlob.html +21 -15
  224. data/doc/TaskJuggler/XMLComment.html +17 -11
  225. data/doc/TaskJuggler/XMLDocument.html +33 -27
  226. data/doc/TaskJuggler/XMLElement.html +97 -91
  227. data/doc/TaskJuggler/XMLNamedText.html +13 -7
  228. data/doc/TaskJuggler/XMLText.html +32 -26
  229. data/doc/index.html +601 -563
  230. data/doc/lib/AccountScenario_rb.html +5 -3
  231. data/doc/lib/Account_rb.html +5 -3
  232. data/doc/lib/Allocation_rb.html +5 -3
  233. data/doc/lib/AppConfig_rb.html +5 -3
  234. data/doc/lib/AttributeBase_rb.html +5 -3
  235. data/doc/lib/AttributeDefinition_rb.html +5 -3
  236. data/doc/lib/Attributes_rb.html +5 -3
  237. data/doc/lib/BatchProcessor_rb.html +5 -3
  238. data/doc/lib/Booking_rb.html +5 -3
  239. data/doc/lib/ChargeSet_rb.html +5 -3
  240. data/doc/lib/Charge_rb.html +5 -3
  241. data/doc/lib/DataCache_rb.html +5 -3
  242. data/doc/lib/FileList_rb.html +5 -3
  243. data/doc/lib/HTMLDocument_rb.html +5 -3
  244. data/doc/lib/IntervalList_rb.html +69 -0
  245. data/doc/lib/Interval_rb.html +5 -3
  246. data/doc/lib/Journal_rb.html +5 -3
  247. data/doc/lib/KeywordArray_rb.html +5 -3
  248. data/doc/lib/KeywordDocumentation_rb.html +5 -3
  249. data/doc/lib/Limits_rb.html +5 -3
  250. data/doc/lib/LogFile_rb.html +5 -3
  251. data/doc/lib/Log_rb.html +5 -3
  252. data/doc/lib/LogicalExpression_rb.html +5 -3
  253. data/doc/lib/LogicalFunction_rb.html +5 -3
  254. data/doc/lib/LogicalOperation_rb.html +5 -3
  255. data/doc/lib/MacroTable_rb.html +5 -3
  256. data/doc/lib/MessageHandler_rb.html +5 -3
  257. data/doc/lib/ProjectFileParser_rb.html +5 -3
  258. data/doc/lib/ProjectFileScanner_rb.html +5 -3
  259. data/doc/lib/Project_rb.html +5 -3
  260. data/doc/lib/PropertyList_rb.html +5 -3
  261. data/doc/lib/PropertySet_rb.html +5 -3
  262. data/doc/lib/PropertyTreeNode_rb.html +5 -3
  263. data/doc/lib/Query_rb.html +5 -3
  264. data/doc/lib/RTFHandlers_rb.html +5 -3
  265. data/doc/lib/RTFNavigator_rb.html +5 -3
  266. data/doc/lib/RTFQuery_rb.html +5 -3
  267. data/doc/lib/RTFReportLink_rb.html +5 -3
  268. data/doc/lib/RTFReport_rb.html +5 -3
  269. data/doc/lib/RTFWithQuerySupport_rb.html +5 -3
  270. data/doc/lib/RealFormat_rb.html +5 -3
  271. data/doc/lib/ResourceScenario_rb.html +5 -3
  272. data/doc/lib/Resource_rb.html +5 -3
  273. data/doc/lib/RichTextDocument_rb.html +5 -3
  274. data/doc/lib/RichTextElement_rb.html +5 -3
  275. data/doc/lib/RichTextFunctionExample_rb.html +5 -3
  276. data/doc/lib/RichTextFunctionHandler_rb.html +5 -3
  277. data/doc/lib/RichTextParser_rb.html +5 -3
  278. data/doc/lib/RichTextScanner_rb.html +5 -3
  279. data/doc/lib/RichTextSnip_rb.html +5 -3
  280. data/doc/lib/RichTextSyntaxRules_rb.html +5 -3
  281. data/doc/lib/RichText_rb.html +5 -3
  282. data/doc/lib/RuntimeConfig_rb.html +5 -3
  283. data/doc/lib/ScenarioData_rb.html +5 -3
  284. data/doc/lib/Scenario_rb.html +5 -3
  285. data/doc/lib/Scoreboard_rb.html +7 -3
  286. data/doc/lib/SheetHandlerBase_rb.html +5 -3
  287. data/doc/lib/SheetReceiver_rb.html +5 -3
  288. data/doc/lib/SheetSender_rb.html +5 -3
  289. data/doc/lib/ShiftAssignments_rb.html +5 -3
  290. data/doc/lib/ShiftScenario_rb.html +5 -3
  291. data/doc/lib/Shift_rb.html +5 -3
  292. data/doc/lib/SimpleQueryExpander_rb.html +5 -3
  293. data/doc/lib/SourceFileInfo_rb.html +5 -3
  294. data/doc/lib/StatusSheetReceiver_rb.html +5 -3
  295. data/doc/lib/StatusSheetSender_rb.html +5 -3
  296. data/doc/lib/SyntaxReference_rb.html +5 -3
  297. data/doc/lib/TOCEntry_rb.html +5 -3
  298. data/doc/lib/TableColumnDefinition_rb.html +5 -3
  299. data/doc/lib/TableOfContents_rb.html +5 -3
  300. data/doc/lib/TaskDependency_rb.html +5 -3
  301. data/doc/lib/TaskJuggler_rb.html +5 -3
  302. data/doc/lib/TaskScenario_rb.html +5 -3
  303. data/doc/lib/Task_rb.html +5 -3
  304. data/doc/lib/TextFormatter_rb.html +6 -4
  305. data/doc/lib/TextParser/Pattern_rb.html +5 -3
  306. data/doc/lib/TextParser/Rule_rb.html +5 -3
  307. data/doc/lib/TextParser/StackElement_rb.html +5 -3
  308. data/doc/lib/TextParser/State_rb.html +6 -4
  309. data/doc/lib/TextParser/TokenDoc_rb.html +5 -3
  310. data/doc/lib/TextParser_rb.html +5 -3
  311. data/doc/lib/TextScanner_rb.html +5 -3
  312. data/doc/lib/TimeSheetReceiver_rb.html +5 -3
  313. data/doc/lib/TimeSheetSender_rb.html +5 -3
  314. data/doc/lib/TimeSheetSummary_rb.html +6 -4
  315. data/doc/lib/TimeSheets_rb.html +5 -3
  316. data/doc/lib/Tj3AppBase_rb.html +5 -3
  317. data/doc/lib/Tj3Config_rb.html +5 -3
  318. data/doc/lib/Tj3SheetAppBase_rb.html +5 -3
  319. data/doc/lib/TjException_rb.html +5 -3
  320. data/doc/lib/TjTime_rb.html +5 -3
  321. data/doc/lib/TjpExample_rb.html +5 -3
  322. data/doc/lib/TjpSyntaxRules_rb.html +5 -3
  323. data/doc/lib/URLParameter_rb.html +5 -3
  324. data/doc/lib/UTF8String_rb.html +5 -3
  325. data/doc/lib/UserManual_rb.html +5 -3
  326. data/doc/lib/VimSyntax_rb.html +6 -4
  327. data/doc/lib/WorkingHours_rb.html +5 -3
  328. data/doc/lib/XMLDocument_rb.html +5 -3
  329. data/doc/lib/XMLElement_rb.html +5 -3
  330. data/doc/lib/daemon/Daemon_rb.html +5 -3
  331. data/doc/lib/daemon/ProcessIntercom_rb.html +7 -3
  332. data/doc/lib/daemon/ProjectBroker_rb.html +5 -3
  333. data/doc/lib/daemon/ProjectServer_rb.html +5 -3
  334. data/doc/lib/daemon/ReportServer_rb.html +5 -3
  335. data/doc/lib/daemon/ReportServlet_rb.html +69 -0
  336. data/doc/lib/daemon/WebServer_rb.html +9 -3
  337. data/doc/lib/daemon/WelcomePage_rb.html +71 -0
  338. data/doc/lib/deep_copy_rb.html +5 -3
  339. data/doc/lib/reports/CSVFile_rb.html +5 -3
  340. data/doc/lib/reports/CollisionDetector_rb.html +5 -3
  341. data/doc/lib/reports/ColumnTable_rb.html +5 -3
  342. data/doc/lib/reports/GanttChart_rb.html +5 -3
  343. data/doc/lib/reports/GanttContainer_rb.html +5 -3
  344. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +5 -3
  345. data/doc/lib/reports/GanttHeader_rb.html +5 -3
  346. data/doc/lib/reports/GanttLine_rb.html +5 -3
  347. data/doc/lib/reports/GanttLoadStack_rb.html +5 -3
  348. data/doc/lib/reports/GanttMilestone_rb.html +5 -3
  349. data/doc/lib/reports/GanttRouter_rb.html +5 -3
  350. data/doc/lib/reports/GanttTaskBar_rb.html +5 -3
  351. data/doc/lib/reports/HTMLGraphics_rb.html +5 -3
  352. data/doc/lib/reports/Navigator_rb.html +5 -3
  353. data/doc/lib/reports/NikuReport_rb.html +5 -3
  354. data/doc/lib/reports/ReportBase_rb.html +5 -3
  355. data/doc/lib/reports/ReportContext_rb.html +5 -3
  356. data/doc/lib/reports/ReportTableCell_rb.html +5 -3
  357. data/doc/lib/reports/ReportTableColumn_rb.html +5 -3
  358. data/doc/lib/reports/ReportTableLegend_rb.html +5 -3
  359. data/doc/lib/reports/ReportTableLine_rb.html +5 -3
  360. data/doc/lib/reports/ReportTable_rb.html +5 -3
  361. data/doc/lib/reports/Report_rb.html +5 -3
  362. data/doc/lib/reports/ResourceListRE_rb.html +5 -3
  363. data/doc/lib/reports/StatusSheetReport_rb.html +5 -3
  364. data/doc/lib/reports/TableReport_rb.html +5 -3
  365. data/doc/lib/reports/TaskListRE_rb.html +5 -3
  366. data/doc/lib/reports/TextReport_rb.html +5 -3
  367. data/doc/lib/reports/TimeSheetReport_rb.html +5 -3
  368. data/doc/lib/reports/TjpExportRE_rb.html +5 -3
  369. data/doc/lib/{taskjuggler3_rb.html → tj3_rb.html} +7 -5
  370. data/doc/lib/tj3client_rb.html +5 -3
  371. data/doc/lib/tj3d_rb.html +6 -4
  372. data/doc/lib/tj3man_rb.html +5 -3
  373. data/doc/lib/tj3ss_receiver_rb.html +5 -3
  374. data/doc/lib/tj3ss_sender_rb.html +5 -3
  375. data/doc/lib/tj3ts_receiver_rb.html +5 -3
  376. data/doc/lib/tj3ts_sender_rb.html +5 -3
  377. data/doc/lib/tj3ts_summary_rb.html +5 -3
  378. data/examples/tutorial.tjp +13 -5
  379. data/gem_spec.rb +3 -0
  380. data/lib/Account.rb +2 -1
  381. data/lib/AccountScenario.rb +2 -1
  382. data/lib/Allocation.rb +2 -1
  383. data/lib/AppConfig.rb +2 -1
  384. data/lib/AttributeBase.rb +19 -5
  385. data/lib/AttributeDefinition.rb +2 -1
  386. data/lib/Attributes.rb +49 -38
  387. data/lib/BatchProcessor.rb +2 -1
  388. data/lib/Booking.rb +2 -1
  389. data/lib/Charge.rb +2 -1
  390. data/lib/ChargeSet.rb +2 -1
  391. data/lib/DataCache.rb +15 -1
  392. data/lib/FileList.rb +2 -1
  393. data/lib/HTMLDocument.rb +2 -1
  394. data/lib/Interval.rb +2 -1
  395. data/lib/IntervalList.rb +100 -0
  396. data/lib/Journal.rb +8 -2
  397. data/lib/KeywordArray.rb +2 -1
  398. data/lib/KeywordDocumentation.rb +10 -6
  399. data/lib/Limits.rb +2 -1
  400. data/lib/Log.rb +3 -2
  401. data/lib/LogFile.rb +2 -1
  402. data/lib/LogicalExpression.rb +2 -1
  403. data/lib/LogicalFunction.rb +2 -1
  404. data/lib/LogicalOperation.rb +2 -1
  405. data/lib/MacroTable.rb +2 -1
  406. data/lib/MessageHandler.rb +2 -1
  407. data/lib/Project.rb +92 -25
  408. data/lib/ProjectFileParser.rb +7 -2
  409. data/lib/ProjectFileScanner.rb +2 -1
  410. data/lib/PropertyList.rb +2 -1
  411. data/lib/PropertySet.rb +2 -6
  412. data/lib/PropertyTreeNode.rb +22 -44
  413. data/lib/Query.rb +32 -13
  414. data/lib/RTFHandlers.rb +2 -1
  415. data/lib/RTFNavigator.rb +2 -1
  416. data/lib/RTFQuery.rb +3 -2
  417. data/lib/RTFReport.rb +2 -1
  418. data/lib/RTFReportLink.rb +2 -1
  419. data/lib/RTFWithQuerySupport.rb +2 -1
  420. data/lib/RealFormat.rb +2 -1
  421. data/lib/Resource.rb +2 -1
  422. data/lib/ResourceScenario.rb +35 -14
  423. data/lib/RichText.rb +2 -1
  424. data/lib/RichTextDocument.rb +2 -1
  425. data/lib/RichTextElement.rb +2 -1
  426. data/lib/RichTextFunctionExample.rb +2 -1
  427. data/lib/RichTextFunctionHandler.rb +2 -1
  428. data/lib/RichTextParser.rb +2 -1
  429. data/lib/RichTextScanner.rb +2 -1
  430. data/lib/RichTextSnip.rb +2 -1
  431. data/lib/RichTextSyntaxRules.rb +2 -1
  432. data/lib/RuntimeConfig.rb +2 -1
  433. data/lib/Scenario.rb +2 -1
  434. data/lib/ScenarioData.rb +2 -1
  435. data/lib/Scoreboard.rb +27 -8
  436. data/lib/SheetHandlerBase.rb +2 -1
  437. data/lib/SheetReceiver.rb +2 -1
  438. data/lib/SheetSender.rb +2 -1
  439. data/lib/Shift.rb +2 -1
  440. data/lib/ShiftAssignments.rb +2 -1
  441. data/lib/ShiftScenario.rb +2 -1
  442. data/lib/SimpleQueryExpander.rb +2 -1
  443. data/lib/SourceFileInfo.rb +2 -1
  444. data/lib/StatusSheetReceiver.rb +2 -1
  445. data/lib/StatusSheetSender.rb +2 -1
  446. data/lib/SyntaxReference.rb +2 -1
  447. data/lib/TOCEntry.rb +2 -1
  448. data/lib/TableColumnDefinition.rb +9 -2
  449. data/lib/TableOfContents.rb +2 -1
  450. data/lib/Task.rb +2 -1
  451. data/lib/TaskDependency.rb +2 -1
  452. data/lib/TaskJuggler.rb +8 -6
  453. data/lib/TaskScenario.rb +337 -153
  454. data/lib/TextFormatter.rb +3 -2
  455. data/lib/TextParser.rb +7 -2
  456. data/lib/TextParser/Pattern.rb +2 -1
  457. data/lib/TextParser/Rule.rb +2 -1
  458. data/lib/TextParser/StackElement.rb +2 -1
  459. data/lib/TextParser/State.rb +3 -2
  460. data/lib/TextParser/TokenDoc.rb +2 -1
  461. data/lib/TextScanner.rb +12 -5
  462. data/lib/TimeSheetReceiver.rb +2 -1
  463. data/lib/TimeSheetSender.rb +2 -1
  464. data/lib/TimeSheetSummary.rb +3 -2
  465. data/lib/TimeSheets.rb +2 -1
  466. data/lib/Tj3AppBase.rb +6 -5
  467. data/lib/Tj3Config.rb +5 -4
  468. data/lib/Tj3SheetAppBase.rb +2 -1
  469. data/lib/TjException.rb +2 -1
  470. data/lib/TjTime.rb +2 -1
  471. data/lib/TjpExample.rb +2 -1
  472. data/lib/TjpSyntaxRules.rb +264 -65
  473. data/lib/URLParameter.rb +2 -1
  474. data/lib/UTF8String.rb +2 -1
  475. data/lib/UserManual.rb +2 -1
  476. data/lib/VimSyntax.rb +3 -2
  477. data/lib/WorkingHours.rb +2 -1
  478. data/lib/XMLDocument.rb +2 -1
  479. data/lib/XMLElement.rb +2 -1
  480. data/lib/daemon/Daemon.rb +3 -1
  481. data/lib/daemon/ProcessIntercom.rb +3 -1
  482. data/lib/daemon/ProjectBroker.rb +84 -32
  483. data/lib/daemon/ProjectServer.rb +5 -3
  484. data/lib/daemon/ReportServer.rb +8 -5
  485. data/lib/daemon/ReportServlet.rb +166 -0
  486. data/lib/daemon/WebServer.rb +6 -150
  487. data/lib/daemon/WelcomePage.rb +80 -0
  488. data/lib/deep_copy.rb +2 -1
  489. data/lib/reports/CSVFile.rb +2 -1
  490. data/lib/reports/CollisionDetector.rb +2 -1
  491. data/lib/reports/ColumnTable.rb +2 -1
  492. data/lib/reports/GanttChart.rb +2 -1
  493. data/lib/reports/GanttContainer.rb +3 -4
  494. data/lib/reports/GanttHeader.rb +2 -1
  495. data/lib/reports/GanttHeaderScaleItem.rb +2 -1
  496. data/lib/reports/GanttLine.rb +12 -10
  497. data/lib/reports/GanttLoadStack.rb +2 -1
  498. data/lib/reports/GanttMilestone.rb +3 -3
  499. data/lib/reports/GanttRouter.rb +4 -1
  500. data/lib/reports/GanttTaskBar.rb +9 -7
  501. data/lib/reports/HTMLGraphics.rb +2 -1
  502. data/lib/reports/Navigator.rb +2 -1
  503. data/lib/reports/NikuReport.rb +79 -49
  504. data/lib/reports/Report.rb +42 -10
  505. data/lib/reports/ReportBase.rb +2 -1
  506. data/lib/reports/ReportContext.rb +2 -1
  507. data/lib/reports/ReportTable.rb +2 -1
  508. data/lib/reports/ReportTableCell.rb +63 -28
  509. data/lib/reports/ReportTableColumn.rb +2 -1
  510. data/lib/reports/ReportTableLegend.rb +5 -5
  511. data/lib/reports/ReportTableLine.rb +2 -1
  512. data/lib/reports/ResourceListRE.rb +2 -1
  513. data/lib/reports/StatusSheetReport.rb +4 -2
  514. data/lib/reports/TableReport.rb +42 -38
  515. data/lib/reports/TaskListRE.rb +4 -2
  516. data/lib/reports/TextReport.rb +2 -1
  517. data/lib/reports/TimeSheetReport.rb +4 -2
  518. data/lib/reports/TjpExportRE.rb +4 -2
  519. data/lib/{taskjuggler3.rb → tj3.rb} +6 -5
  520. data/lib/tj3client.rb +19 -36
  521. data/lib/tj3d.rb +6 -2
  522. data/lib/tj3man.rb +4 -3
  523. data/lib/tj3ss_receiver.rb +2 -1
  524. data/lib/tj3ss_sender.rb +2 -1
  525. data/lib/tj3ts_receiver.rb +2 -1
  526. data/lib/tj3ts_sender.rb +2 -1
  527. data/lib/tj3ts_summary.rb +2 -1
  528. data/manual/Day_To_Day_Juggling +36 -0
  529. data/manual/How_To_Contribute +9 -4
  530. data/manual/Installation +10 -3
  531. data/manual/TaskJuggler_Internals +0 -2
  532. data/manual/Tutorial +25 -3
  533. data/prj_cfg.rb +4 -2
  534. data/spec/IntervalList_spec.rb +138 -0
  535. data/spec/ProjectBroker_spec.rb +133 -0
  536. data/tasks/changelog.rake +41 -24
  537. data/tasks/csts.rake +1 -0
  538. data/tasks/gem.rake +1 -0
  539. data/tasks/rcov.rake +1 -1
  540. data/tasks/spec.rake +7 -0
  541. data/tasks/test.rake +1 -0
  542. data/test/MessageChecker.rb +2 -1
  543. data/test/TestSuite/CSV-Reports/niku.tjp +70 -0
  544. data/test/TestSuite/CSV-Reports/{celltext-Reference.csv → refs/celltext.csv} +0 -0
  545. data/test/TestSuite/CSV-Reports/refs/niku.csv +5 -0
  546. data/test/TestSuite/CSV-Reports/{resourcereport-Reference.csv → refs/resourcereport.csv} +0 -0
  547. data/test/TestSuite/CSV-Reports/{resourcereport_with_tasks-Reference.csv → refs/resourcereport_with_tasks.csv} +0 -0
  548. data/test/TestSuite/CSV-Reports/{sortByTree-Reference.csv → refs/sortByTree.csv} +0 -0
  549. data/test/TestSuite/CSV-Reports/{sortBy_duration.down-Reference.csv → refs/sortBy_duration.down.csv} +0 -0
  550. data/test/TestSuite/CSV-Reports/{sortBy_effort.up-Reference.csv → refs/sortBy_effort.up.csv} +0 -0
  551. data/test/TestSuite/CSV-Reports/{sortBy_plan.start.down-Reference.csv → refs/sortBy_plan.start.down.csv} +0 -0
  552. data/test/TestSuite/CSV-Reports/{taskreport-Reference.csv → refs/taskreport.csv} +0 -0
  553. data/test/TestSuite/CSV-Reports/{taskreport_with_resources-Reference.csv → refs/taskreport_with_resources.csv} +0 -0
  554. data/test/TestSuite/CSV-Reports/{weekly-Reference.csv → refs/weekly.csv} +0 -0
  555. data/test/TestSuite/HTML-Reports/Alerts.tjp +12 -0
  556. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
  557. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +1 -2
  558. data/test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp +77 -0
  559. data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +40 -0
  560. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +2 -2
  561. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +3 -4
  562. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +2 -2
  563. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +8 -7
  564. data/test/TestSuite/Scheduler/Errors/onend_wrong_direction.tjp +19 -0
  565. data/test/TestSuite/Scheduler/Errors/onstart_wrong_direction.tjp +18 -0
  566. data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +1 -2
  567. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/boss_2002-03-02.tji +46 -0
  568. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/dev2_2002-03-02.tji +22 -0
  569. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/resources.yml +11 -0
  570. data/test/TestSuite/StatusSheets/StatusSheetTemplates/acceptable_intervals +1 -0
  571. data/test/TestSuite/StatusSheets/sender.log +256 -0
  572. data/test/TestSuite/StatusSheets/statussheets.log +9 -0
  573. data/test/TestSuite/StatusSheets/tj3d.log +395 -0
  574. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +2 -0
  575. data/test/TestSuite/Syntax/Correct/Niku.tjp +6 -1
  576. data/test/TestSuite/Syntax/Correct/Scenario.tjp +4 -1
  577. data/test/TestSuite/Syntax/Correct/Supplement.tjp +12 -5
  578. data/test/TestSuite/Syntax/Correct/TaskPrefix.tji +3 -0
  579. data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +24 -0
  580. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -2
  581. data/test/TestSuite/Syntax/Correct/tutorial.tjp +15 -5
  582. data/test/all.rb +2 -4
  583. data/test/test_BatchProcessor.rb +2 -1
  584. data/test/test_CSV-Reports.rb +34 -23
  585. data/test/test_CSVFile.rb +2 -1
  586. data/test/test_CollisionDetector.rb +3 -2
  587. data/test/test_Journal.rb +2 -1
  588. data/test/test_Limits.rb +2 -1
  589. data/test/test_LogicalExpression.rb +2 -1
  590. data/test/test_MacroTable.rb +2 -1
  591. data/test/test_Project.rb +3 -2
  592. data/test/test_ProjectFileScanner.rb +2 -1
  593. data/test/test_PropertySet.rb +2 -1
  594. data/test/test_Query.rb +2 -1
  595. data/test/test_RealFormat.rb +2 -1
  596. data/test/test_ReportGenerator.rb +2 -1
  597. data/test/test_RichText.rb +2 -1
  598. data/test/test_Scheduler.rb +2 -1
  599. data/test/test_ShiftAssignments.rb +2 -1
  600. data/test/test_SimpleQueryExpander.rb +2 -1
  601. data/test/test_Syntax.rb +2 -1
  602. data/test/test_TextFormatter.rb +3 -2
  603. data/test/test_TjTime.rb +2 -1
  604. data/test/test_TjpExample.rb +2 -1
  605. data/test/test_URLParameter.rb +2 -1
  606. data/test/test_UTF8String.rb +2 -1
  607. data/test/test_WorkingHours.rb +2 -1
  608. data/test/test_deep_copy.rb +2 -1
  609. metadata +74 -20
  610. data/doc/StringIO.html +0 -595
  611. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +0 -46
  612. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +0 -51
  613. data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +0 -11
@@ -143,6 +143,8 @@
143
143
 
144
144
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
145
145
 
146
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
147
+
146
148
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
147
149
 
148
150
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -221,6 +223,8 @@
221
223
 
222
224
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
223
225
 
226
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
227
+
224
228
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
225
229
 
226
230
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -253,6 +257,8 @@
253
257
 
254
258
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
255
259
 
260
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
261
+
256
262
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
257
263
 
258
264
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -533,6 +539,8 @@
533
539
 
534
540
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
535
541
 
542
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
543
+
536
544
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
537
545
 
538
546
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -559,8 +567,6 @@
559
567
 
560
568
  <li><a href="../String.html">String</a></li>
561
569
 
562
- <li><a href="../StringIO.html">StringIO</a></li>
563
-
564
570
  </ul>
565
571
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
566
572
  </div>
@@ -717,46 +723,46 @@ copied. It will be copied on write.
717
723
  <div class="method-source-code"
718
724
  id="new-source">
719
725
  <pre>
720
- <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 31</span>
721
- 31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">arg1</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">startDate</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">endDate</span> = <span class="ruby-keyword kw">nil</span>)
722
- 32: <span class="ruby-comment cmt"># One entry for every day of the week. Sunday === 0.</span>
723
- 33: <span class="ruby-ivar">@days</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">7</span>, [])
724
- 34: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
725
- 35:
726
- 36: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">WorkingHours</span>)
727
- 37: <span class="ruby-comment cmt"># Create a copy of the passed WorkingHours object.</span>
728
- 38: <span class="ruby-identifier">wh</span> = <span class="ruby-identifier">arg1</span>
729
- 39: <span class="ruby-ivar">@timezone</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">timezone</span>
730
- 40: <span class="ruby-value">7</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span>
731
- 41: <span class="ruby-identifier">hours</span> = []
732
- 42: <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">days</span>[<span class="ruby-identifier">day</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hrs</span><span class="ruby-operator">|</span>
733
- 43: <span class="ruby-identifier">hours</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">hrs</span>.<span class="ruby-identifier">dup</span>
734
- 44: <span class="ruby-keyword kw">end</span>
735
- 45: <span class="ruby-identifier">setWorkingHours</span>(<span class="ruby-identifier">day</span>, <span class="ruby-identifier">hours</span>)
736
- 46: <span class="ruby-keyword kw">end</span>
737
- 47: <span class="ruby-ivar">@startDate</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">startDate</span>
738
- 48: <span class="ruby-ivar">@endDate</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">endDate</span>
739
- 49: <span class="ruby-ivar">@slotDuration</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">slotDuration</span>
740
- 50: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">scoreboard</span>
741
- 51: <span class="ruby-keyword kw">else</span>
742
- 52: <span class="ruby-identifier">slotDuration</span> = <span class="ruby-identifier">arg1</span>
743
- 53: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg1</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">startDate</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">endDate</span>.<span class="ruby-identifier">nil?</span>
744
- 54: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;You must supply values for slotDuration, start and end dates&quot;</span>
745
- 55: <span class="ruby-keyword kw">end</span>
746
- 56: <span class="ruby-ivar">@startDate</span> = <span class="ruby-identifier">startDate</span>
747
- 57: <span class="ruby-ivar">@endDate</span> = <span class="ruby-identifier">endDate</span>
748
- 58: <span class="ruby-ivar">@slotDuration</span> = <span class="ruby-identifier">slotDuration</span>
749
- 59:
750
- 60: <span class="ruby-comment cmt"># Create a new object with default working hours.</span>
751
- 61: <span class="ruby-ivar">@timezone</span> = <span class="ruby-keyword kw">nil</span>
752
- 62: <span class="ruby-comment cmt"># Set the default working hours. Monday to Friday 9am - 12pm, 1pm - 6pm.</span>
753
- 63: <span class="ruby-comment cmt"># Saturday and Sunday are days off.</span>
754
- 64: <span class="ruby-value">1</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-value">5</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span>
755
- 65: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">day</span>] = [ [ <span class="ruby-value">9</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span>, <span class="ruby-value">12</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> ],
756
- 66: [ <span class="ruby-value">13</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span>, <span class="ruby-value">18</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> ] ]
757
- 67: <span class="ruby-keyword kw">end</span>
758
- 68: <span class="ruby-keyword kw">end</span>
759
- 69: <span class="ruby-keyword kw">end</span></pre>
726
+ <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 32</span>
727
+ 32: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">arg1</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">startDate</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">endDate</span> = <span class="ruby-keyword kw">nil</span>)
728
+ 33: <span class="ruby-comment cmt"># One entry for every day of the week. Sunday === 0.</span>
729
+ 34: <span class="ruby-ivar">@days</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">7</span>, [])
730
+ 35: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
731
+ 36:
732
+ 37: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg1</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">WorkingHours</span>)
733
+ 38: <span class="ruby-comment cmt"># Create a copy of the passed WorkingHours object.</span>
734
+ 39: <span class="ruby-identifier">wh</span> = <span class="ruby-identifier">arg1</span>
735
+ 40: <span class="ruby-ivar">@timezone</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">timezone</span>
736
+ 41: <span class="ruby-value">7</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span>
737
+ 42: <span class="ruby-identifier">hours</span> = []
738
+ 43: <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">days</span>[<span class="ruby-identifier">day</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hrs</span><span class="ruby-operator">|</span>
739
+ 44: <span class="ruby-identifier">hours</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">hrs</span>.<span class="ruby-identifier">dup</span>
740
+ 45: <span class="ruby-keyword kw">end</span>
741
+ 46: <span class="ruby-identifier">setWorkingHours</span>(<span class="ruby-identifier">day</span>, <span class="ruby-identifier">hours</span>)
742
+ 47: <span class="ruby-keyword kw">end</span>
743
+ 48: <span class="ruby-ivar">@startDate</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">startDate</span>
744
+ 49: <span class="ruby-ivar">@endDate</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">endDate</span>
745
+ 50: <span class="ruby-ivar">@slotDuration</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">slotDuration</span>
746
+ 51: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">scoreboard</span>
747
+ 52: <span class="ruby-keyword kw">else</span>
748
+ 53: <span class="ruby-identifier">slotDuration</span> = <span class="ruby-identifier">arg1</span>
749
+ 54: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg1</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">startDate</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">endDate</span>.<span class="ruby-identifier">nil?</span>
750
+ 55: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;You must supply values for slotDuration, start and end dates&quot;</span>
751
+ 56: <span class="ruby-keyword kw">end</span>
752
+ 57: <span class="ruby-ivar">@startDate</span> = <span class="ruby-identifier">startDate</span>
753
+ 58: <span class="ruby-ivar">@endDate</span> = <span class="ruby-identifier">endDate</span>
754
+ 59: <span class="ruby-ivar">@slotDuration</span> = <span class="ruby-identifier">slotDuration</span>
755
+ 60:
756
+ 61: <span class="ruby-comment cmt"># Create a new object with default working hours.</span>
757
+ 62: <span class="ruby-ivar">@timezone</span> = <span class="ruby-keyword kw">nil</span>
758
+ 63: <span class="ruby-comment cmt"># Set the default working hours. Monday to Friday 9am - 12pm, 1pm - 6pm.</span>
759
+ 64: <span class="ruby-comment cmt"># Saturday and Sunday are days off.</span>
760
+ 65: <span class="ruby-value">1</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-value">5</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span>
761
+ 66: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">day</span>] = [ [ <span class="ruby-value">9</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span>, <span class="ruby-value">12</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> ],
762
+ 67: [ <span class="ruby-value">13</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span>, <span class="ruby-value">18</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> ] ]
763
+ 68: <span class="ruby-keyword kw">end</span>
764
+ 69: <span class="ruby-keyword kw">end</span>
765
+ 70: <span class="ruby-keyword kw">end</span></pre>
760
766
  </div>
761
767
 
762
768
  </div>
@@ -796,23 +802,23 @@ object <tt>wh</tt> is identical to this object.
796
802
  <div class="method-source-code"
797
803
  id="--source">
798
804
  <pre>
799
- <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 73</span>
800
- 73: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">wh</span>)
801
- 74: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@timezone</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">timezone</span> <span class="ruby-operator">||</span>
802
- 75: <span class="ruby-ivar">@startDate</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">startDate</span> <span class="ruby-operator">||</span>
803
- 76: <span class="ruby-ivar">@endDate</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">endDate</span> <span class="ruby-operator">||</span>
804
- 77: <span class="ruby-ivar">@slotDuration</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">slotDuration</span>
805
- 78:
806
- 79: <span class="ruby-value">7</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
807
- 80: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">d</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">days</span>[<span class="ruby-identifier">d</span>].<span class="ruby-identifier">length</span>
808
- 81: <span class="ruby-comment cmt"># Check all working hour intervals</span>
809
- 82: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">d</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">i</span><span class="ruby-operator">|</span>
810
- 83: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">d</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">days</span>[<span class="ruby-identifier">d</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">||</span>
811
- 84: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">d</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">1</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">days</span>[<span class="ruby-identifier">d</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">1</span>]
812
- 85: <span class="ruby-keyword kw">end</span>
813
- 86: <span class="ruby-keyword kw">end</span>
814
- 87: <span class="ruby-keyword kw">true</span>
815
- 88: <span class="ruby-keyword kw">end</span></pre>
805
+ <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 74</span>
806
+ 74: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">wh</span>)
807
+ 75: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@timezone</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">timezone</span> <span class="ruby-operator">||</span>
808
+ 76: <span class="ruby-ivar">@startDate</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">startDate</span> <span class="ruby-operator">||</span>
809
+ 77: <span class="ruby-ivar">@endDate</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">endDate</span> <span class="ruby-operator">||</span>
810
+ 78: <span class="ruby-ivar">@slotDuration</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">slotDuration</span>
811
+ 79:
812
+ 80: <span class="ruby-value">7</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
813
+ 81: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">d</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">days</span>[<span class="ruby-identifier">d</span>].<span class="ruby-identifier">length</span>
814
+ 82: <span class="ruby-comment cmt"># Check all working hour intervals</span>
815
+ 83: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">d</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">i</span><span class="ruby-operator">|</span>
816
+ 84: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">d</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">days</span>[<span class="ruby-identifier">d</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">||</span>
817
+ 85: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">d</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">1</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">wh</span>.<span class="ruby-identifier">days</span>[<span class="ruby-identifier">d</span>][<span class="ruby-identifier">i</span>][<span class="ruby-value">1</span>]
818
+ 86: <span class="ruby-keyword kw">end</span>
819
+ 87: <span class="ruby-keyword kw">end</span>
820
+ 88: <span class="ruby-keyword kw">true</span>
821
+ 89: <span class="ruby-keyword kw">end</span></pre>
816
822
  </div>
817
823
 
818
824
  </div>
@@ -847,10 +853,10 @@ an Array that contains Arrays of 2 Fixnums.
847
853
  <div class="method-source-code"
848
854
  id="get-orking-ours-source">
849
855
  <pre>
850
- <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 125</span>
851
- 125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getWorkingHours</span>(<span class="ruby-identifier">dayOfWeek</span>)
852
- 126: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">dayOfWeek</span>]
853
- 127: <span class="ruby-keyword kw">end</span></pre>
856
+ <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 126</span>
857
+ 126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getWorkingHours</span>(<span class="ruby-identifier">dayOfWeek</span>)
858
+ 127: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">dayOfWeek</span>]
859
+ 128: <span class="ruby-keyword kw">end</span></pre>
854
860
  </div>
855
861
 
856
862
  </div>
@@ -883,12 +889,12 @@ Return true if <em>date</em> is within the defined working hours.
883
889
  <div class="method-source-code"
884
890
  id="on-hift--source">
885
891
  <pre>
886
- <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 130</span>
887
- 130: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
888
- 131: <span class="ruby-identifier">initScoreboard</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scoreboard</span>
889
- 132:
890
- 133: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">date</span>)
891
- 134: <span class="ruby-keyword kw">end</span></pre>
892
+ <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 131</span>
893
+ 131: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">onShift?</span>(<span class="ruby-identifier">date</span>)
894
+ 132: <span class="ruby-identifier">initScoreboard</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scoreboard</span>
895
+ 133:
896
+ 134: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">date</span>)
897
+ 135: <span class="ruby-keyword kw">end</span></pre>
892
898
  </div>
893
899
 
894
900
  </div>
@@ -925,26 +931,26 @@ start time of the interval, the second the end time.
925
931
  <div class="method-source-code"
926
932
  id="set-orking-ours-source">
927
933
  <pre>
928
- <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 95</span>
929
- 95: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setWorkingHours</span>(<span class="ruby-identifier">dayOfWeek</span>, <span class="ruby-identifier">intervals</span>)
930
- 96: <span class="ruby-comment cmt"># Changing the working hours requires the score board to be regenerated.</span>
931
- 97: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
932
- 98:
933
- 99: <span class="ruby-comment cmt"># Legal values range from 0 Sunday to 6 Saturday.</span>
934
- 100: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dayOfWeek</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">dayOfWeek</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">6</span>
935
- 101: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;dayOfWeek out of range: #{dayOfWeek}&quot;</span>
936
- 102: <span class="ruby-keyword kw">end</span>
937
- 103: <span class="ruby-identifier">intervals</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">iv</span><span class="ruby-operator">|</span>
938
- 104: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&gt;=</span> <span class="ruby-value">24</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> <span class="ruby-operator">||</span>
939
- 105: <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">&gt;=</span> <span class="ruby-value">24</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span>
940
- 106: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Time interval has illegal values: #{iv[0]} - #{iv[1]}&quot;</span>
941
- 107: <span class="ruby-keyword kw">end</span>
942
- 108: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>]
943
- 109: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Interval end time must be larger than start time&quot;</span>
944
- 110: <span class="ruby-keyword kw">end</span>
945
- 111: <span class="ruby-keyword kw">end</span>
946
- 112: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">dayOfWeek</span>] = <span class="ruby-identifier">intervals</span>
947
- 113: <span class="ruby-keyword kw">end</span></pre>
934
+ <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 96</span>
935
+ 96: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setWorkingHours</span>(<span class="ruby-identifier">dayOfWeek</span>, <span class="ruby-identifier">intervals</span>)
936
+ 97: <span class="ruby-comment cmt"># Changing the working hours requires the score board to be regenerated.</span>
937
+ 98: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
938
+ 99:
939
+ 100: <span class="ruby-comment cmt"># Legal values range from 0 Sunday to 6 Saturday.</span>
940
+ 101: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dayOfWeek</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">dayOfWeek</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">6</span>
941
+ 102: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;dayOfWeek out of range: #{dayOfWeek}&quot;</span>
942
+ 103: <span class="ruby-keyword kw">end</span>
943
+ 104: <span class="ruby-identifier">intervals</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">iv</span><span class="ruby-operator">|</span>
944
+ 105: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&gt;=</span> <span class="ruby-value">24</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span> <span class="ruby-operator">||</span>
945
+ 106: <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">&gt;=</span> <span class="ruby-value">24</span> * <span class="ruby-value">60</span> * <span class="ruby-value">60</span>
946
+ 107: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Time interval has illegal values: #{iv[0]} - #{iv[1]}&quot;</span>
947
+ 108: <span class="ruby-keyword kw">end</span>
948
+ 109: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>]
949
+ 110: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Interval end time must be larger than start time&quot;</span>
950
+ 111: <span class="ruby-keyword kw">end</span>
951
+ 112: <span class="ruby-keyword kw">end</span>
952
+ 113: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">dayOfWeek</span>] = <span class="ruby-identifier">intervals</span>
953
+ 114: <span class="ruby-keyword kw">end</span></pre>
948
954
  </div>
949
955
 
950
956
  </div>
@@ -977,18 +983,18 @@ Return true only if all slots in the <em>interval</em> are offhour slots.
977
983
  <div class="method-source-code"
978
984
  id="time-ff--source">
979
985
  <pre>
980
- <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 137</span>
981
- 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">timeOff?</span>(<span class="ruby-identifier">interval</span>)
982
- 138: <span class="ruby-identifier">initScoreboard</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scoreboard</span>
983
- 139:
984
- 140: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">true</span>)
985
- 141: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">true</span>)
986
- 142:
987
- 143: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
988
- 144: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>]
989
- 145: <span class="ruby-keyword kw">end</span>
990
- 146: <span class="ruby-keyword kw">true</span>
991
- 147: <span class="ruby-keyword kw">end</span></pre>
986
+ <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 138</span>
987
+ 138: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">timeOff?</span>(<span class="ruby-identifier">interval</span>)
988
+ 139: <span class="ruby-identifier">initScoreboard</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scoreboard</span>
989
+ 140:
990
+ 141: <span class="ruby-identifier">startIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">true</span>)
991
+ 142: <span class="ruby-identifier">endIdx</span> = <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">dateToIdx</span>(<span class="ruby-identifier">interval</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">true</span>)
992
+ 143:
993
+ 144: <span class="ruby-identifier">startIdx</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endIdx</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
994
+ 145: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scoreboard</span>[<span class="ruby-identifier">i</span>]
995
+ 146: <span class="ruby-keyword kw">end</span>
996
+ 147: <span class="ruby-keyword kw">true</span>
997
+ 148: <span class="ruby-keyword kw">end</span></pre>
992
998
  </div>
993
999
 
994
1000
  </div>
@@ -1022,11 +1028,11 @@ Set the time zone <em>zone</em> for the working hours. This will reset the
1022
1028
  <div class="method-source-code"
1023
1029
  id="timezone--source">
1024
1030
  <pre>
1025
- <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 117</span>
1026
- 117: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">timezone=</span>(<span class="ruby-identifier">zone</span>)
1027
- 118: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
1028
- 119: <span class="ruby-ivar">@timezone</span> = <span class="ruby-identifier">zone</span>
1029
- 120: <span class="ruby-keyword kw">end</span></pre>
1031
+ <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 118</span>
1032
+ 118: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">timezone=</span>(<span class="ruby-identifier">zone</span>)
1033
+ 119: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-keyword kw">nil</span>
1034
+ 120: <span class="ruby-ivar">@timezone</span> = <span class="ruby-identifier">zone</span>
1035
+ 121: <span class="ruby-keyword kw">end</span></pre>
1030
1036
  </div>
1031
1037
 
1032
1038
  </div>
@@ -1059,32 +1065,32 @@ Returns the time interval settings for each day in a human readable form.
1059
1065
  <div class="method-source-code"
1060
1066
  id="to-s-source">
1061
1067
  <pre>
1062
- <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 150</span>
1063
- 150: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1064
- 151: <span class="ruby-identifier">dayNames</span> = <span class="ruby-node">%( Sun Mon Tue Wed Thu Fri Sat )</span>
1065
- 152: <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
1066
- 153: <span class="ruby-value">7</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span>
1067
- 154: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;#{dayNames[day]}: &quot;</span>
1068
- 155: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">day</span>].<span class="ruby-identifier">empty?</span>
1069
- 156: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;off&quot;</span>
1070
- 157: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">6</span>
1071
- 158: <span class="ruby-keyword kw">next</span>
1072
- 159: <span class="ruby-keyword kw">end</span>
1073
- 160: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
1074
- 161: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">day</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">iv</span><span class="ruby-operator">|</span>
1075
- 162: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
1076
- 163: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
1077
- 164: <span class="ruby-keyword kw">else</span>
1078
- 165: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">', '</span>
1079
- 166: <span class="ruby-keyword kw">end</span>
1080
- 167: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;#{iv[0] / 3600}:&quot;</span> <span class="ruby-operator">+</span>
1081
- 168: <span class="ruby-node">&quot;#{iv[0] % 3600 == 0 ? '00' : iv[0] % 3600} - &quot;</span> <span class="ruby-operator">+</span>
1082
- 169: <span class="ruby-node">&quot;#{iv[1] / 3600}:#{iv[1] % 3600 == 0 ? '00' : iv[1] % 3600}&quot;</span>
1083
- 170: <span class="ruby-keyword kw">end</span>
1084
- 171: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">6</span>
1085
- 172: <span class="ruby-keyword kw">end</span>
1086
- 173: <span class="ruby-identifier">str</span>
1087
- 174: <span class="ruby-keyword kw">end</span></pre>
1068
+ <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 151</span>
1069
+ 151: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1070
+ 152: <span class="ruby-identifier">dayNames</span> = <span class="ruby-node">%( Sun Mon Tue Wed Thu Fri Sat )</span>
1071
+ 153: <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
1072
+ 154: <span class="ruby-value">7</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span>
1073
+ 155: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;#{dayNames[day]}: &quot;</span>
1074
+ 156: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">day</span>].<span class="ruby-identifier">empty?</span>
1075
+ 157: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;off&quot;</span>
1076
+ 158: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">6</span>
1077
+ 159: <span class="ruby-keyword kw">next</span>
1078
+ 160: <span class="ruby-keyword kw">end</span>
1079
+ 161: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
1080
+ 162: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">day</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">iv</span><span class="ruby-operator">|</span>
1081
+ 163: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
1082
+ 164: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
1083
+ 165: <span class="ruby-keyword kw">else</span>
1084
+ 166: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">', '</span>
1085
+ 167: <span class="ruby-keyword kw">end</span>
1086
+ 168: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;#{iv[0] / 3600}:&quot;</span> <span class="ruby-operator">+</span>
1087
+ 169: <span class="ruby-node">&quot;#{iv[0] % 3600 == 0 ? '00' : iv[0] % 3600} - &quot;</span> <span class="ruby-operator">+</span>
1088
+ 170: <span class="ruby-node">&quot;#{iv[1] / 3600}:#{iv[1] % 3600 == 0 ? '00' : iv[1] % 3600}&quot;</span>
1089
+ 171: <span class="ruby-keyword kw">end</span>
1090
+ 172: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">6</span>
1091
+ 173: <span class="ruby-keyword kw">end</span>
1092
+ 174: <span class="ruby-identifier">str</span>
1093
+ 175: <span class="ruby-keyword kw">end</span></pre>
1088
1094
  </div>
1089
1095
 
1090
1096
  </div>
@@ -1121,53 +1127,53 @@ Returns the time interval settings for each day in a human readable form.
1121
1127
  <div class="method-source-code"
1122
1128
  id="init-coreboard-source">
1123
1129
  <pre>
1124
- <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 178</span>
1125
- 178: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initScoreboard</span>
1126
- 179: <span class="ruby-comment cmt"># The scoreboard is an Array of True/False values. It spans a certain</span>
1127
- 180: <span class="ruby-comment cmt"># time period with one entry per time slot.</span>
1128
- 181: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-constant">Scoreboard</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@startDate</span>, <span class="ruby-ivar">@endDate</span>, <span class="ruby-ivar">@slotDuration</span>, <span class="ruby-keyword kw">false</span>)
1129
- 182:
1130
- 183: <span class="ruby-identifier">oldTimezone</span> = <span class="ruby-keyword kw">nil</span>
1131
- 184: <span class="ruby-comment cmt"># Set environment variable TZ to appropriate time zone</span>
1132
- 185: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@timezone</span>
1133
- 186: <span class="ruby-identifier">oldTimezone</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>]
1134
- 187: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>] = <span class="ruby-ivar">@timezone</span>
1135
- 188: <span class="ruby-keyword kw">end</span>
1136
- 189:
1137
- 190: <span class="ruby-identifier">date</span> = <span class="ruby-ivar">@startDate</span>
1138
- 191: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">collect!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">slot</span><span class="ruby-operator">|</span>
1139
- 192: <span class="ruby-identifier">localDate</span> = <span class="ruby-identifier">date</span>.<span class="ruby-identifier">dup</span>
1140
- 193: <span class="ruby-identifier">localDate</span>.<span class="ruby-identifier">localtime</span>
1141
- 194:
1142
- 195: <span class="ruby-comment cmt"># The date is in UTC. The weekday needs to be calculated according to</span>
1143
- 196: <span class="ruby-comment cmt"># the local timezone.</span>
1144
- 197: <span class="ruby-identifier">weekday</span> = <span class="ruby-identifier">localDate</span>.<span class="ruby-identifier">wday</span>
1145
- 198: <span class="ruby-identifier">secondsOfDay</span> = <span class="ruby-identifier">localDate</span>.<span class="ruby-identifier">secondsOfDay</span>
1146
- 199:
1147
- 200: <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">false</span>
1148
- 201: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">weekday</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">iv</span><span class="ruby-operator">|</span>
1149
- 202: <span class="ruby-comment cmt"># Check the working hours of that day if they overlap with +date+.</span>
1150
- 203: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">secondsOfDay</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">secondsOfDay</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>]
1151
- 204: <span class="ruby-comment cmt"># The time slot is a working slot.</span>
1152
- 205: <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">true</span>
1153
- 206: <span class="ruby-keyword kw">break</span>
1154
- 207: <span class="ruby-keyword kw">end</span>
1155
- 208: <span class="ruby-keyword kw">end</span>
1156
- 209: <span class="ruby-comment cmt"># Calculate date of next scoreboard slot</span>
1157
- 210: <span class="ruby-identifier">date</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@slotDuration</span>
1158
- 211:
1159
- 212: <span class="ruby-identifier">result</span>
1160
- 213: <span class="ruby-keyword kw">end</span>
1161
- 214:
1162
- 215: <span class="ruby-comment cmt"># Restore environment</span>
1163
- 216: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@timezone</span>
1164
- 217: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">oldTimezone</span>
1165
- 218: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>] = <span class="ruby-identifier">oldTimezone</span>
1166
- 219: <span class="ruby-keyword kw">else</span>
1167
- 220: <span class="ruby-constant">ENV</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'TZ'</span>)
1168
- 221: <span class="ruby-keyword kw">end</span>
1169
- 222: <span class="ruby-keyword kw">end</span>
1170
- 223: <span class="ruby-keyword kw">end</span></pre>
1130
+ <span class="ruby-comment cmt"># File lib/WorkingHours.rb, line 179</span>
1131
+ 179: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initScoreboard</span>
1132
+ 180: <span class="ruby-comment cmt"># The scoreboard is an Array of True/False values. It spans a certain</span>
1133
+ 181: <span class="ruby-comment cmt"># time period with one entry per time slot.</span>
1134
+ 182: <span class="ruby-ivar">@scoreboard</span> = <span class="ruby-constant">Scoreboard</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@startDate</span>, <span class="ruby-ivar">@endDate</span>, <span class="ruby-ivar">@slotDuration</span>, <span class="ruby-keyword kw">false</span>)
1135
+ 183:
1136
+ 184: <span class="ruby-identifier">oldTimezone</span> = <span class="ruby-keyword kw">nil</span>
1137
+ 185: <span class="ruby-comment cmt"># Set environment variable TZ to appropriate time zone</span>
1138
+ 186: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@timezone</span>
1139
+ 187: <span class="ruby-identifier">oldTimezone</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>]
1140
+ 188: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>] = <span class="ruby-ivar">@timezone</span>
1141
+ 189: <span class="ruby-keyword kw">end</span>
1142
+ 190:
1143
+ 191: <span class="ruby-identifier">date</span> = <span class="ruby-ivar">@startDate</span>
1144
+ 192: <span class="ruby-ivar">@scoreboard</span>.<span class="ruby-identifier">collect!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">slot</span><span class="ruby-operator">|</span>
1145
+ 193: <span class="ruby-identifier">localDate</span> = <span class="ruby-identifier">date</span>.<span class="ruby-identifier">dup</span>
1146
+ 194: <span class="ruby-identifier">localDate</span>.<span class="ruby-identifier">localtime</span>
1147
+ 195:
1148
+ 196: <span class="ruby-comment cmt"># The date is in UTC. The weekday needs to be calculated according to</span>
1149
+ 197: <span class="ruby-comment cmt"># the local timezone.</span>
1150
+ 198: <span class="ruby-identifier">weekday</span> = <span class="ruby-identifier">localDate</span>.<span class="ruby-identifier">wday</span>
1151
+ 199: <span class="ruby-identifier">secondsOfDay</span> = <span class="ruby-identifier">localDate</span>.<span class="ruby-identifier">secondsOfDay</span>
1152
+ 200:
1153
+ 201: <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">false</span>
1154
+ 202: <span class="ruby-ivar">@days</span>[<span class="ruby-identifier">weekday</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">iv</span><span class="ruby-operator">|</span>
1155
+ 203: <span class="ruby-comment cmt"># Check the working hours of that day if they overlap with +date+.</span>
1156
+ 204: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">secondsOfDay</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">secondsOfDay</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">iv</span>[<span class="ruby-value">1</span>]
1157
+ 205: <span class="ruby-comment cmt"># The time slot is a working slot.</span>
1158
+ 206: <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">true</span>
1159
+ 207: <span class="ruby-keyword kw">break</span>
1160
+ 208: <span class="ruby-keyword kw">end</span>
1161
+ 209: <span class="ruby-keyword kw">end</span>
1162
+ 210: <span class="ruby-comment cmt"># Calculate date of next scoreboard slot</span>
1163
+ 211: <span class="ruby-identifier">date</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@slotDuration</span>
1164
+ 212:
1165
+ 213: <span class="ruby-identifier">result</span>
1166
+ 214: <span class="ruby-keyword kw">end</span>
1167
+ 215:
1168
+ 216: <span class="ruby-comment cmt"># Restore environment</span>
1169
+ 217: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@timezone</span>
1170
+ 218: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">oldTimezone</span>
1171
+ 219: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TZ'</span>] = <span class="ruby-identifier">oldTimezone</span>
1172
+ 220: <span class="ruby-keyword kw">else</span>
1173
+ 221: <span class="ruby-constant">ENV</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'TZ'</span>)
1174
+ 222: <span class="ruby-keyword kw">end</span>
1175
+ 223: <span class="ruby-keyword kw">end</span>
1176
+ 224: <span class="ruby-keyword kw">end</span></pre>
1171
1177
  </div>
1172
1178
 
1173
1179
  </div>