taskjuggler 0.0.2

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 (571) hide show
  1. data/COPYING +280 -0
  2. data/README +31 -0
  3. data/Rakefile +20 -0
  4. data/benchmarks/UTF-8-Strings.rb +58 -0
  5. data/benchmarks/allocate.tjp +30 -0
  6. data/benchmarks/booking.tjp +62 -0
  7. data/benchmarks/depends.tjp +112 -0
  8. data/benchmarks/htmltaskreport.tjp +45 -0
  9. data/benchmarks/runbench.rb +24 -0
  10. data/bin/tj3 +3 -0
  11. data/bin/tj3man +3 -0
  12. data/doc/classes/AppConfig.html +808 -0
  13. data/doc/classes/Arguments.html +226 -0
  14. data/doc/classes/String.html +395 -0
  15. data/doc/classes/TaskJuggler.html +1358 -0
  16. data/doc/classes/TaskJuggler/Account.html +257 -0
  17. data/doc/classes/TaskJuggler/AccountScenario.html +218 -0
  18. data/doc/classes/TaskJuggler/Allocation.html +419 -0
  19. data/doc/classes/TaskJuggler/AllocationAttribute.html +291 -0
  20. data/doc/classes/TaskJuggler/AttributeBase.html +608 -0
  21. data/doc/classes/TaskJuggler/AttributeDefinition.html +259 -0
  22. data/doc/classes/TaskJuggler/Booking.html +307 -0
  23. data/doc/classes/TaskJuggler/BookingListAttribute.html +263 -0
  24. data/doc/classes/TaskJuggler/BooleanAttribute.html +261 -0
  25. data/doc/classes/TaskJuggler/CSVFile.html +325 -0
  26. data/doc/classes/TaskJuggler/Charge.html +279 -0
  27. data/doc/classes/TaskJuggler/ChargeListAttribute.html +229 -0
  28. data/doc/classes/TaskJuggler/ChargeSet.html +440 -0
  29. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +276 -0
  30. data/doc/classes/TaskJuggler/ColumnTable.html +260 -0
  31. data/doc/classes/TaskJuggler/DateAttribute.html +194 -0
  32. data/doc/classes/TaskJuggler/DependencyListAttribute.html +267 -0
  33. data/doc/classes/TaskJuggler/DurationAttribute.html +229 -0
  34. data/doc/classes/TaskJuggler/FixnumAttribute.html +194 -0
  35. data/doc/classes/TaskJuggler/FlagListAttribute.html +263 -0
  36. data/doc/classes/TaskJuggler/FloatAttribute.html +229 -0
  37. data/doc/classes/TaskJuggler/GanttChart.html +667 -0
  38. data/doc/classes/TaskJuggler/GanttContainer.html +441 -0
  39. data/doc/classes/TaskJuggler/GanttHeader.html +280 -0
  40. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +245 -0
  41. data/doc/classes/TaskJuggler/GanttLine.html +398 -0
  42. data/doc/classes/TaskJuggler/GanttLoadStack.html +327 -0
  43. data/doc/classes/TaskJuggler/GanttMilestone.html +415 -0
  44. data/doc/classes/TaskJuggler/GanttRouter.html +425 -0
  45. data/doc/classes/TaskJuggler/GanttTaskBar.html +429 -0
  46. data/doc/classes/TaskJuggler/HTMLDocument.html +240 -0
  47. data/doc/classes/TaskJuggler/HTMLGraphics.html +231 -0
  48. data/doc/classes/TaskJuggler/Interval.html +552 -0
  49. data/doc/classes/TaskJuggler/IntervalListAttribute.html +267 -0
  50. data/doc/classes/TaskJuggler/KeywordDocumentation.html +796 -0
  51. data/doc/classes/TaskJuggler/Limits.html +416 -0
  52. data/doc/classes/TaskJuggler/Limits/Limit.html +381 -0
  53. data/doc/classes/TaskJuggler/LimitsAttribute.html +261 -0
  54. data/doc/classes/TaskJuggler/Log.html +613 -0
  55. data/doc/classes/TaskJuggler/LogicalAttribute.html +226 -0
  56. data/doc/classes/TaskJuggler/LogicalExpression.html +251 -0
  57. data/doc/classes/TaskJuggler/LogicalFlag.html +229 -0
  58. data/doc/classes/TaskJuggler/LogicalFunction.html +324 -0
  59. data/doc/classes/TaskJuggler/LogicalOperation.html +299 -0
  60. data/doc/classes/TaskJuggler/Macro.html +194 -0
  61. data/doc/classes/TaskJuggler/MacroParser.html +360 -0
  62. data/doc/classes/TaskJuggler/MacroTable.html +366 -0
  63. data/doc/classes/TaskJuggler/Message.html +281 -0
  64. data/doc/classes/TaskJuggler/MessageHandler.html +215 -0
  65. data/doc/classes/TaskJuggler/Project.html +1606 -0
  66. data/doc/classes/TaskJuggler/ProjectFileParser.html +412 -0
  67. data/doc/classes/TaskJuggler/PropertyList.html +597 -0
  68. data/doc/classes/TaskJuggler/PropertySet.html +1200 -0
  69. data/doc/classes/TaskJuggler/PropertyTreeNode.html +1449 -0
  70. data/doc/classes/TaskJuggler/Query.html +600 -0
  71. data/doc/classes/TaskJuggler/RealFormat.html +252 -0
  72. data/doc/classes/TaskJuggler/ReferenceAttribute.html +194 -0
  73. data/doc/classes/TaskJuggler/Report.html +528 -0
  74. data/doc/classes/TaskJuggler/ReportElement.html +1070 -0
  75. data/doc/classes/TaskJuggler/ReportTable.html +497 -0
  76. data/doc/classes/TaskJuggler/ReportTableCell.html +518 -0
  77. data/doc/classes/TaskJuggler/ReportTableColumn.html +364 -0
  78. data/doc/classes/TaskJuggler/ReportTableElement.html +644 -0
  79. data/doc/classes/TaskJuggler/ReportTableLegend.html +343 -0
  80. data/doc/classes/TaskJuggler/ReportTableLine.html +431 -0
  81. data/doc/classes/TaskJuggler/Resource.html +211 -0
  82. data/doc/classes/TaskJuggler/ResourceListAttribute.html +267 -0
  83. data/doc/classes/TaskJuggler/ResourceListRE.html +249 -0
  84. data/doc/classes/TaskJuggler/ResourceScenario.html +1137 -0
  85. data/doc/classes/TaskJuggler/RichText.html +537 -0
  86. data/doc/classes/TaskJuggler/RichTextAttribute.html +229 -0
  87. data/doc/classes/TaskJuggler/RichTextDocument.html +418 -0
  88. data/doc/classes/TaskJuggler/RichTextElement.html +829 -0
  89. data/doc/classes/TaskJuggler/RichTextException.html +212 -0
  90. data/doc/classes/TaskJuggler/RichTextParser.html +317 -0
  91. data/doc/classes/TaskJuggler/RichTextProtocolExample.html +303 -0
  92. data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +194 -0
  93. data/doc/classes/TaskJuggler/RichTextScanner.html +561 -0
  94. data/doc/classes/TaskJuggler/RichTextSnip.html +364 -0
  95. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +883 -0
  96. data/doc/classes/TaskJuggler/Scenario.html +163 -0
  97. data/doc/classes/TaskJuggler/ScenarioData.html +354 -0
  98. data/doc/classes/TaskJuggler/Scoreboard.html +638 -0
  99. data/doc/classes/TaskJuggler/Shift.html +255 -0
  100. data/doc/classes/TaskJuggler/ShiftAssignment.html +488 -0
  101. data/doc/classes/TaskJuggler/ShiftAssignments.html +715 -0
  102. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +261 -0
  103. data/doc/classes/TaskJuggler/ShiftScenario.html +282 -0
  104. data/doc/classes/TaskJuggler/SourceFileInfo.html +247 -0
  105. data/doc/classes/TaskJuggler/StringAttribute.html +229 -0
  106. data/doc/classes/TaskJuggler/SymbolAttribute.html +194 -0
  107. data/doc/classes/TaskJuggler/SyntaxReference.html +516 -0
  108. data/doc/classes/TaskJuggler/TOCEntry.html +242 -0
  109. data/doc/classes/TaskJuggler/TableColumnDefinition.html +273 -0
  110. data/doc/classes/TaskJuggler/TableOfContents.html +256 -0
  111. data/doc/classes/TaskJuggler/Task.html +203 -0
  112. data/doc/classes/TaskJuggler/TaskDependency.html +251 -0
  113. data/doc/classes/TaskJuggler/TaskListAttribute.html +267 -0
  114. data/doc/classes/TaskJuggler/TaskListRE.html +250 -0
  115. data/doc/classes/TaskJuggler/TaskScenario.html +2206 -0
  116. data/doc/classes/TaskJuggler/TextParser.html +670 -0
  117. data/doc/classes/TaskJuggler/TextParser/Pattern.html +923 -0
  118. data/doc/classes/TaskJuggler/TextParser/Rule.html +779 -0
  119. data/doc/classes/TaskJuggler/TextParser/StackElement.html +267 -0
  120. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +212 -0
  121. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +221 -0
  122. data/doc/classes/TaskJuggler/TextScanner.html +708 -0
  123. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +355 -0
  124. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +341 -0
  125. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +260 -0
  126. data/doc/classes/TaskJuggler/TjException.html +185 -0
  127. data/doc/classes/TaskJuggler/TjTime.html +1845 -0
  128. data/doc/classes/TaskJuggler/TjpExample.html +310 -0
  129. data/doc/classes/TaskJuggler/TjpExportRE.html +329 -0
  130. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +8928 -0
  131. data/doc/classes/TaskJuggler/UserManual.html +606 -0
  132. data/doc/classes/TaskJuggler/WorkingHours.html +582 -0
  133. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +284 -0
  134. data/doc/classes/TaskJuggler/XMLBlob.html +207 -0
  135. data/doc/classes/TaskJuggler/XMLComment.html +206 -0
  136. data/doc/classes/TaskJuggler/XMLDocument.html +293 -0
  137. data/doc/classes/TaskJuggler/XMLElement.html +341 -0
  138. data/doc/classes/TaskJuggler/XMLNamedText.html +174 -0
  139. data/doc/classes/TaskJuggler/XMLText.html +221 -0
  140. data/doc/files/COPYING.html +448 -0
  141. data/doc/files/README.html +134 -0
  142. data/doc/files/lib/AccountScenario_rb.html +116 -0
  143. data/doc/files/lib/Account_rb.html +118 -0
  144. data/doc/files/lib/Allocation_rb.html +118 -0
  145. data/doc/files/lib/AppConfig_rb.html +116 -0
  146. data/doc/files/lib/AttributeBase_rb.html +106 -0
  147. data/doc/files/lib/AttributeDefinition_rb.html +106 -0
  148. data/doc/files/lib/Attributes_rb.html +130 -0
  149. data/doc/files/lib/Booking_rb.html +106 -0
  150. data/doc/files/lib/ChargeSet_rb.html +116 -0
  151. data/doc/files/lib/Charge_rb.html +116 -0
  152. data/doc/files/lib/HTMLDocument_rb.html +116 -0
  153. data/doc/files/lib/Interval_rb.html +116 -0
  154. data/doc/files/lib/KeywordDocumentation_rb.html +122 -0
  155. data/doc/files/lib/Limits_rb.html +116 -0
  156. data/doc/files/lib/Log_rb.html +116 -0
  157. data/doc/files/lib/LogicalExpression_rb.html +122 -0
  158. data/doc/files/lib/LogicalFlag_rb.html +116 -0
  159. data/doc/files/lib/LogicalFunction_rb.html +116 -0
  160. data/doc/files/lib/LogicalOperation_rb.html +116 -0
  161. data/doc/files/lib/MacroParser_rb.html +118 -0
  162. data/doc/files/lib/MacroTable_rb.html +122 -0
  163. data/doc/files/lib/MessageHandler_rb.html +106 -0
  164. data/doc/files/lib/Message_rb.html +116 -0
  165. data/doc/files/lib/ProjectFileParser_rb.html +122 -0
  166. data/doc/files/lib/Project_rb.html +148 -0
  167. data/doc/files/lib/PropertyList_rb.html +106 -0
  168. data/doc/files/lib/PropertySet_rb.html +118 -0
  169. data/doc/files/lib/PropertyTreeNode_rb.html +106 -0
  170. data/doc/files/lib/Query_rb.html +116 -0
  171. data/doc/files/lib/RealFormat_rb.html +106 -0
  172. data/doc/files/lib/ResourceScenario_rb.html +116 -0
  173. data/doc/files/lib/Resource_rb.html +118 -0
  174. data/doc/files/lib/RichTextDocument_rb.html +120 -0
  175. data/doc/files/lib/RichTextElement_rb.html +120 -0
  176. data/doc/files/lib/RichTextParser_rb.html +120 -0
  177. data/doc/files/lib/RichTextProtocolExample_rb.html +120 -0
  178. data/doc/files/lib/RichTextProtocolHandler_rb.html +106 -0
  179. data/doc/files/lib/RichTextScanner_rb.html +116 -0
  180. data/doc/files/lib/RichTextSnip_rb.html +118 -0
  181. data/doc/files/lib/RichTextSyntaxRules_rb.html +106 -0
  182. data/doc/files/lib/RichText_rb.html +118 -0
  183. data/doc/files/lib/ScenarioData_rb.html +118 -0
  184. data/doc/files/lib/Scenario_rb.html +116 -0
  185. data/doc/files/lib/Scoreboard_rb.html +106 -0
  186. data/doc/files/lib/ShiftAssignments_rb.html +116 -0
  187. data/doc/files/lib/ShiftScenario_rb.html +116 -0
  188. data/doc/files/lib/Shift_rb.html +118 -0
  189. data/doc/files/lib/SourceFileInfo_rb.html +106 -0
  190. data/doc/files/lib/SyntaxReference_rb.html +122 -0
  191. data/doc/files/lib/TOCEntry_rb.html +118 -0
  192. data/doc/files/lib/TableColumnDefinition_rb.html +106 -0
  193. data/doc/files/lib/TableOfContents_rb.html +118 -0
  194. data/doc/files/lib/TaskDependency_rb.html +106 -0
  195. data/doc/files/lib/TaskJuggler_rb.html +120 -0
  196. data/doc/files/lib/TaskScenario_rb.html +116 -0
  197. data/doc/files/lib/Task_rb.html +118 -0
  198. data/doc/files/lib/TextParser/Pattern_rb.html +116 -0
  199. data/doc/files/lib/TextParser/Rule_rb.html +106 -0
  200. data/doc/files/lib/TextParser/StackElement_rb.html +106 -0
  201. data/doc/files/lib/TextParser/TokenDoc_rb.html +106 -0
  202. data/doc/files/lib/TextParser_rb.html +124 -0
  203. data/doc/files/lib/TextScanner_rb.html +128 -0
  204. data/doc/files/lib/Tj3Config_rb.html +118 -0
  205. data/doc/files/lib/TjException_rb.html +106 -0
  206. data/doc/files/lib/TjTime_rb.html +118 -0
  207. data/doc/files/lib/TjpExample_rb.html +116 -0
  208. data/doc/files/lib/TjpSyntaxRules_rb.html +106 -0
  209. data/doc/files/lib/UTF8String_rb.html +132 -0
  210. data/doc/files/lib/UserManual_rb.html +124 -0
  211. data/doc/files/lib/WorkingHours_rb.html +116 -0
  212. data/doc/files/lib/XMLDocument_rb.html +116 -0
  213. data/doc/files/lib/XMLElement_rb.html +116 -0
  214. data/doc/files/lib/reports/CSVFile_rb.html +116 -0
  215. data/doc/files/lib/reports/ColumnTable_rb.html +116 -0
  216. data/doc/files/lib/reports/GanttChart_rb.html +122 -0
  217. data/doc/files/lib/reports/GanttContainer_rb.html +116 -0
  218. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +106 -0
  219. data/doc/files/lib/reports/GanttHeader_rb.html +116 -0
  220. data/doc/files/lib/reports/GanttLine_rb.html +126 -0
  221. data/doc/files/lib/reports/GanttLoadStack_rb.html +116 -0
  222. data/doc/files/lib/reports/GanttMilestone_rb.html +116 -0
  223. data/doc/files/lib/reports/GanttRouter_rb.html +106 -0
  224. data/doc/files/lib/reports/GanttTaskBar_rb.html +116 -0
  225. data/doc/files/lib/reports/HTMLGraphics_rb.html +106 -0
  226. data/doc/files/lib/reports/ReportElement_rb.html +118 -0
  227. data/doc/files/lib/reports/ReportTableCell_rb.html +106 -0
  228. data/doc/files/lib/reports/ReportTableColumn_rb.html +106 -0
  229. data/doc/files/lib/reports/ReportTableElement_rb.html +122 -0
  230. data/doc/files/lib/reports/ReportTableLegend_rb.html +106 -0
  231. data/doc/files/lib/reports/ReportTableLine_rb.html +116 -0
  232. data/doc/files/lib/reports/ReportTable_rb.html +118 -0
  233. data/doc/files/lib/reports/Report_rb.html +126 -0
  234. data/doc/files/lib/reports/ResourceListRE_rb.html +122 -0
  235. data/doc/files/lib/reports/TaskListRE_rb.html +122 -0
  236. data/doc/files/lib/reports/TjpExportRE_rb.html +116 -0
  237. data/doc/files/lib/taskjuggler3_rb.html +276 -0
  238. data/doc/files/lib/tj3man_rb.html +189 -0
  239. data/doc/fr_class_index.html +285 -0
  240. data/doc/fr_file_index.html +223 -0
  241. data/doc/fr_method_index.html +1953 -0
  242. data/doc/index.html +21 -0
  243. data/doc/rdoc-style.css +299 -0
  244. data/examples/tutorial.tjp +361 -0
  245. data/gem_spec.rb +30 -0
  246. data/lib/Account.rb +50 -0
  247. data/lib/AccountScenario.rb +39 -0
  248. data/lib/Allocation.rb +102 -0
  249. data/lib/AppConfig.rb +134 -0
  250. data/lib/AttributeBase.rb +131 -0
  251. data/lib/AttributeDefinition.rb +47 -0
  252. data/lib/Attributes.rb +478 -0
  253. data/lib/BatchProcessor.rb +209 -0
  254. data/lib/Booking.rb +59 -0
  255. data/lib/Charge.rb +71 -0
  256. data/lib/ChargeSet.rb +126 -0
  257. data/lib/HTMLDocument.rb +59 -0
  258. data/lib/Interval.rb +127 -0
  259. data/lib/KeywordDocumentation.rb +560 -0
  260. data/lib/Limits.rb +219 -0
  261. data/lib/Log.rb +160 -0
  262. data/lib/LogicalExpression.rb +71 -0
  263. data/lib/LogicalFlag.rb +34 -0
  264. data/lib/LogicalFunction.rb +102 -0
  265. data/lib/LogicalOperation.rb +118 -0
  266. data/lib/MacroParser.rb +77 -0
  267. data/lib/MacroTable.rb +84 -0
  268. data/lib/Message.rb +56 -0
  269. data/lib/MessageHandler.rb +34 -0
  270. data/lib/Project.rb +662 -0
  271. data/lib/ProjectFileParser.rb +333 -0
  272. data/lib/PropertyList.rb +181 -0
  273. data/lib/PropertySet.rb +304 -0
  274. data/lib/PropertyTreeNode.rb +461 -0
  275. data/lib/Query.rb +227 -0
  276. data/lib/RealFormat.rb +73 -0
  277. data/lib/Resource.rb +42 -0
  278. data/lib/ResourceScenario.rb +511 -0
  279. data/lib/RichText.rb +147 -0
  280. data/lib/RichTextDocument.rb +139 -0
  281. data/lib/RichTextElement.rb +391 -0
  282. data/lib/RichTextParser.rb +66 -0
  283. data/lib/RichTextProtocolExample.rb +65 -0
  284. data/lib/RichTextProtocolHandler.rb +35 -0
  285. data/lib/RichTextScanner.rb +390 -0
  286. data/lib/RichTextSnip.rb +104 -0
  287. data/lib/RichTextSyntaxRules.rb +265 -0
  288. data/lib/Scenario.rb +27 -0
  289. data/lib/ScenarioData.rb +65 -0
  290. data/lib/Scoreboard.rb +141 -0
  291. data/lib/Shift.rb +48 -0
  292. data/lib/ShiftAssignments.rb +291 -0
  293. data/lib/ShiftScenario.rb +46 -0
  294. data/lib/SourceFileInfo.rb +37 -0
  295. data/lib/SyntaxReference.rb +284 -0
  296. data/lib/TOCEntry.rb +76 -0
  297. data/lib/TableColumnDefinition.rb +54 -0
  298. data/lib/TableOfContents.rb +46 -0
  299. data/lib/Task.rb +37 -0
  300. data/lib/TaskDependency.rb +39 -0
  301. data/lib/TaskJuggler.rb +84 -0
  302. data/lib/TaskScenario.rb +1622 -0
  303. data/lib/TextParser.rb +416 -0
  304. data/lib/TextParser/Pattern.rb +263 -0
  305. data/lib/TextParser/Rule.rb +171 -0
  306. data/lib/TextParser/StackElement.rb +45 -0
  307. data/lib/TextParser/TokenDoc.rb +38 -0
  308. data/lib/TextScanner.rb +682 -0
  309. data/lib/Tj3Config.rb +27 -0
  310. data/lib/TjException.rb +27 -0
  311. data/lib/TjTime.rb +395 -0
  312. data/lib/TjpExample.rb +119 -0
  313. data/lib/TjpSyntaxRules.rb +4022 -0
  314. data/lib/UTF8String.rb +100 -0
  315. data/lib/UserManual.rb +282 -0
  316. data/lib/WorkingHours.rb +323 -0
  317. data/lib/XMLDocument.rb +54 -0
  318. data/lib/XMLElement.rb +175 -0
  319. data/lib/reports/CSVFile.rb +146 -0
  320. data/lib/reports/ColumnTable.rb +66 -0
  321. data/lib/reports/GanttChart.rb +308 -0
  322. data/lib/reports/GanttContainer.rb +107 -0
  323. data/lib/reports/GanttHeader.rb +141 -0
  324. data/lib/reports/GanttHeaderScaleItem.rb +42 -0
  325. data/lib/reports/GanttLine.rb +329 -0
  326. data/lib/reports/GanttLoadStack.rb +113 -0
  327. data/lib/reports/GanttMilestone.rb +80 -0
  328. data/lib/reports/GanttRouter.rb +375 -0
  329. data/lib/reports/GanttTaskBar.rb +95 -0
  330. data/lib/reports/HTMLGraphics.rb +65 -0
  331. data/lib/reports/Report.rb +344 -0
  332. data/lib/reports/ReportElement.rb +427 -0
  333. data/lib/reports/ReportTable.rb +144 -0
  334. data/lib/reports/ReportTableCell.rb +142 -0
  335. data/lib/reports/ReportTableColumn.rb +82 -0
  336. data/lib/reports/ReportTableElement.rb +852 -0
  337. data/lib/reports/ReportTableLegend.rb +167 -0
  338. data/lib/reports/ReportTableLine.rb +87 -0
  339. data/lib/reports/ResourceListRE.rb +72 -0
  340. data/lib/reports/TaskListRE.rb +73 -0
  341. data/lib/reports/TjpExportRE.rb +394 -0
  342. data/lib/taskjuggler3.rb +106 -0
  343. data/lib/tj3man.rb +88 -0
  344. data/manual/Day_To_Day_Juggling +168 -0
  345. data/manual/Getting_Started +61 -0
  346. data/manual/How_To_Contribute +185 -0
  347. data/manual/Installation +68 -0
  348. data/manual/Intro +102 -0
  349. data/manual/Reporting_Bugs +26 -0
  350. data/manual/Rich_Text_Attributes +90 -0
  351. data/manual/TaskJuggler_2x_Migration +40 -0
  352. data/manual/Tutorial +579 -0
  353. data/manual/fdl +450 -0
  354. data/prj_cfg.rb +43 -0
  355. data/setup.rb +1585 -0
  356. data/tasks/csts.rake +72 -0
  357. data/tasks/gem.rake +14 -0
  358. data/tasks/manual.rake +10 -0
  359. data/tasks/missing.rake +21 -0
  360. data/tasks/rcov.rake +14 -0
  361. data/tasks/rdoc.rake +17 -0
  362. data/tasks/rexml_fix.rb +16 -0
  363. data/tasks/rexml_fix_19.rb +49 -0
  364. data/tasks/show.rake +21 -0
  365. data/tasks/stats.rake +25 -0
  366. data/tasks/test.rake +11 -0
  367. data/test/MessageChecker.rb +53 -0
  368. data/test/TestSuite/CSV-Reports/celltext-Reference.csv +14 -0
  369. data/test/TestSuite/CSV-Reports/celltext.tjp +7 -0
  370. data/test/TestSuite/CSV-Reports/genrefs +6 -0
  371. data/test/TestSuite/CSV-Reports/project-1.tji +57 -0
  372. data/test/TestSuite/CSV-Reports/resourcereport-Reference.csv +4 -0
  373. data/test/TestSuite/CSV-Reports/resourcereport.tjp +10 -0
  374. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks-Reference.csv +22 -0
  375. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +11 -0
  376. data/test/TestSuite/CSV-Reports/sortByTree-Reference.csv +14 -0
  377. data/test/TestSuite/CSV-Reports/sortByTree.tjp +8 -0
  378. data/test/TestSuite/CSV-Reports/sortBy_duration.down-Reference.csv +14 -0
  379. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +10 -0
  380. data/test/TestSuite/CSV-Reports/sortBy_effort.up-Reference.csv +14 -0
  381. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +10 -0
  382. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down-Reference.csv +14 -0
  383. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +10 -0
  384. data/test/TestSuite/CSV-Reports/taskreport-Reference.csv +14 -0
  385. data/test/TestSuite/CSV-Reports/taskreport.tjp +10 -0
  386. data/test/TestSuite/CSV-Reports/taskreport_with_resources-Reference.csv +24 -0
  387. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +11 -0
  388. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +86 -0
  389. data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +63 -0
  390. data/test/TestSuite/Scheduler/Correct/Booking.tjp +161 -0
  391. data/test/TestSuite/Scheduler/Correct/Depends.tjp +50 -0
  392. data/test/TestSuite/Scheduler/Correct/Duration.tjp +34 -0
  393. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +129 -0
  394. data/test/TestSuite/Scheduler/Correct/Limits.tjp +81 -0
  395. data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +43 -0
  396. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +28 -0
  397. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +33 -0
  398. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +33 -0
  399. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +34 -0
  400. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +62 -0
  401. data/test/TestSuite/Scheduler/Correct/Precedes.tjp +50 -0
  402. data/test/TestSuite/Scheduler/Correct/Shift.tjp +102 -0
  403. data/test/TestSuite/Scheduler/Errors/account_no_leaf.tjp +13 -0
  404. data/test/TestSuite/Scheduler/Errors/booking_conflict.tjp +10 -0
  405. data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +9 -0
  406. data/test/TestSuite/Scheduler/Errors/booking_on_vacation.tjp +9 -0
  407. data/test/TestSuite/Scheduler/Errors/container_booking.tjp +14 -0
  408. data/test/TestSuite/Scheduler/Errors/container_duration.tjp +11 -0
  409. data/test/TestSuite/Scheduler/Errors/effort_no_allocations.tjp +7 -0
  410. data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +19 -0
  411. data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +36 -0
  412. data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +27 -0
  413. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +20 -0
  414. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +27 -0
  415. data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +26 -0
  416. data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +24 -0
  417. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +18 -0
  418. data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +36 -0
  419. data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +37 -0
  420. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +35 -0
  421. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +46 -0
  422. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +51 -0
  423. data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +20 -0
  424. data/test/TestSuite/Scheduler/Errors/maxend.tjp +8 -0
  425. data/test/TestSuite/Scheduler/Errors/maxstart.tjp +8 -0
  426. data/test/TestSuite/Scheduler/Errors/milestone_booking.tjp +10 -0
  427. data/test/TestSuite/Scheduler/Errors/milestone_duration.tjp +8 -0
  428. data/test/TestSuite/Scheduler/Errors/milestone_start_end.tjp +8 -0
  429. data/test/TestSuite/Scheduler/Errors/minend.tjp +8 -0
  430. data/test/TestSuite/Scheduler/Errors/minstart.tjp +8 -0
  431. data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +11 -0
  432. data/test/TestSuite/Scheduler/Errors/no_tasks.tjp +6 -0
  433. data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +8 -0
  434. data/test/TestSuite/Scheduler/Errors/task_depend_child.tjp +10 -0
  435. data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +13 -0
  436. data/test/TestSuite/Scheduler/Errors/task_depend_parent.tjp +11 -0
  437. data/test/TestSuite/Scheduler/Errors/task_depend_self.tjp +10 -0
  438. data/test/TestSuite/Scheduler/Errors/task_depend_unknown.tjp +10 -0
  439. data/test/TestSuite/Scheduler/Errors/task_overspecified_1.tjp +9 -0
  440. data/test/TestSuite/Scheduler/Errors/task_overspecified_2.tjp +14 -0
  441. data/test/TestSuite/Scheduler/Errors/task_overspecified_3.tjp +14 -0
  442. data/test/TestSuite/Scheduler/Errors/task_underspecified_1.tjp +8 -0
  443. data/test/TestSuite/Scheduler/Errors/task_underspecified_2.tjp +8 -0
  444. data/test/TestSuite/Scheduler/Errors/task_underspecified_3.tjp +9 -0
  445. data/test/TestSuite/Syntax/Correct/Account.tjp +53 -0
  446. data/test/TestSuite/Syntax/Correct/Allocate-1.tjp +24 -0
  447. data/test/TestSuite/Syntax/Correct/Alternative.tjp +13 -0
  448. data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +14 -0
  449. data/test/TestSuite/Syntax/Correct/Booking.tjp +26 -0
  450. data/test/TestSuite/Syntax/Correct/Caption.tjp +33 -0
  451. data/test/TestSuite/Syntax/Correct/Celltext.tjp +28 -0
  452. data/test/TestSuite/Syntax/Correct/Comments.tjp +29 -0
  453. data/test/TestSuite/Syntax/Correct/Complete.tjp +16 -0
  454. data/test/TestSuite/Syntax/Correct/CompletedWork.tji +20 -0
  455. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +31 -0
  456. data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +12 -0
  457. data/test/TestSuite/Syntax/Correct/CustomAttributes.tjp +14 -0
  458. data/test/TestSuite/Syntax/Correct/Depends1.tjp +22 -0
  459. data/test/TestSuite/Syntax/Correct/Durations.tjp +29 -0
  460. data/test/TestSuite/Syntax/Correct/Efficiency.tjp +19 -0
  461. data/test/TestSuite/Syntax/Correct/Export.tjp +40 -0
  462. data/test/TestSuite/Syntax/Correct/Flags.tjp +32 -0
  463. data/test/TestSuite/Syntax/Correct/Freeze.tjp +28 -0
  464. data/test/TestSuite/Syntax/Correct/Gap.tjp +15 -0
  465. data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +33 -0
  466. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +71 -0
  467. data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +31 -0
  468. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +19 -0
  469. data/test/TestSuite/Syntax/Correct/Mandatory.tjp +17 -0
  470. data/test/TestSuite/Syntax/Correct/Milestone.tjp +12 -0
  471. data/test/TestSuite/Syntax/Correct/MinMax.tjp +17 -0
  472. data/test/TestSuite/Syntax/Correct/Numberformat.tjp +12 -0
  473. data/test/TestSuite/Syntax/Correct/Period.tjp +16 -0
  474. data/test/TestSuite/Syntax/Correct/Persistent.tjp +11 -0
  475. data/test/TestSuite/Syntax/Correct/Precedes1.tjp +17 -0
  476. data/test/TestSuite/Syntax/Correct/Priority.tjp +30 -0
  477. data/test/TestSuite/Syntax/Correct/Project.tjp +21 -0
  478. data/test/TestSuite/Syntax/Correct/ProjectIDs.tjp +23 -0
  479. data/test/TestSuite/Syntax/Correct/RawHTML.tjp +29 -0
  480. data/test/TestSuite/Syntax/Correct/Reports.tjp +54 -0
  481. data/test/TestSuite/Syntax/Correct/Resource.tjp +20 -0
  482. data/test/TestSuite/Syntax/Correct/Responsible.tjp +16 -0
  483. data/test/TestSuite/Syntax/Correct/Scenario.tjp +15 -0
  484. data/test/TestSuite/Syntax/Correct/Scheduling.tjp +26 -0
  485. data/test/TestSuite/Syntax/Correct/Select.tjp +27 -0
  486. data/test/TestSuite/Syntax/Correct/Shift.tjp +55 -0
  487. data/test/TestSuite/Syntax/Correct/Simple.tjp +25 -0
  488. data/test/TestSuite/Syntax/Correct/String.tjp +12 -0
  489. data/test/TestSuite/Syntax/Correct/Supplement.tjp +24 -0
  490. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +34 -0
  491. data/test/TestSuite/Syntax/Correct/TimeFrame.tjp +19 -0
  492. data/test/TestSuite/Syntax/Correct/Timezone.tjp +8 -0
  493. data/test/TestSuite/Syntax/Correct/Vacation.tjp +33 -0
  494. data/test/TestSuite/Syntax/Correct/csvtest +16 -0
  495. data/test/TestSuite/Syntax/Correct/manual2example.rb +24 -0
  496. data/test/TestSuite/Syntax/Correct/tutorial.tjp +485 -0
  497. data/test/TestSuite/Syntax/Errors/bad_include.tjp +11 -0
  498. data/test/TestSuite/Syntax/Errors/booking_group.tjp +14 -0
  499. data/test/TestSuite/Syntax/Errors/booking_milestone.tjp +13 -0
  500. data/test/TestSuite/Syntax/Errors/booking_no_leaf.tjp +13 -0
  501. data/test/TestSuite/Syntax/Errors/chargeset.tjp +14 -0
  502. data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +15 -0
  503. data/test/TestSuite/Syntax/Errors/container_attribute.tjp +13 -0
  504. data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +24 -0
  505. data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +24 -0
  506. data/test/TestSuite/Syntax/Errors/date_in_range.tjp +7 -0
  507. data/test/TestSuite/Syntax/Errors/effort_zero.tjp +8 -0
  508. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -0
  509. data/test/TestSuite/Syntax/Errors/export_bad_extn.tjp +9 -0
  510. data/test/TestSuite/Syntax/Errors/extend_id_cap.tjp +7 -0
  511. data/test/TestSuite/Syntax/Errors/interval_end_in_range.tjp +7 -0
  512. data/test/TestSuite/Syntax/Errors/interval_start_in_range.tjp +7 -0
  513. data/test/TestSuite/Syntax/Errors/leaf_resource_id_expected.tjp +12 -0
  514. data/test/TestSuite/Syntax/Errors/misaligned_date.tjp +7 -0
  515. data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +10 -0
  516. data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +10 -0
  517. data/test/TestSuite/Syntax/Errors/operand_attribute.tjp +11 -0
  518. data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +11 -0
  519. data/test/TestSuite/Syntax/Errors/operand_unkn_scen.tjp +11 -0
  520. data/test/TestSuite/Syntax/Errors/overtime_range.tjp +13 -0
  521. data/test/TestSuite/Syntax/Errors/purge_no_list.tjp +8 -0
  522. data/test/TestSuite/Syntax/Errors/purge_unknown_id.tjp +8 -0
  523. data/test/TestSuite/Syntax/Errors/report_end.tjp +10 -0
  524. data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +10 -0
  525. data/test/TestSuite/Syntax/Errors/report_start.tjp +10 -0
  526. data/test/TestSuite/Syntax/Errors/resource_exists.tjp +7 -0
  527. data/test/TestSuite/Syntax/Errors/resource_id_expected.tjp +8 -0
  528. data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +24 -0
  529. data/test/TestSuite/Syntax/Errors/scenario_exists.tjp +7 -0
  530. data/test/TestSuite/Syntax/Errors/shift_assignment_overlap.tjp +15 -0
  531. data/test/TestSuite/Syntax/Errors/shift_exists.tjp +7 -0
  532. data/test/TestSuite/Syntax/Errors/shift_id_expected.tjp +7 -0
  533. data/test/TestSuite/Syntax/Errors/sloppy_range.tjp +13 -0
  534. data/test/TestSuite/Syntax/Errors/sort_direction.tjp +11 -0
  535. data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +11 -0
  536. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +11 -0
  537. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +11 -0
  538. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +11 -0
  539. data/test/TestSuite/Syntax/Errors/start_before_end1.tjp +7 -0
  540. data/test/TestSuite/Syntax/Errors/start_before_end2.tjp +6 -0
  541. data/test/TestSuite/Syntax/Errors/task_complete.tjp +8 -0
  542. data/test/TestSuite/Syntax/Errors/task_exists.tjp +7 -0
  543. data/test/TestSuite/Syntax/Errors/task_priority.tjp +8 -0
  544. data/test/TestSuite/Syntax/Errors/task_without_chargeset.tjp +9 -0
  545. data/test/TestSuite/Syntax/Errors/time_interval.tjp +12 -0
  546. data/test/TestSuite/Syntax/Errors/too_many_bangs.tjp +10 -0
  547. data/test/TestSuite/Syntax/Errors/undecl_flag.tjp +6 -0
  548. data/test/TestSuite/Syntax/Errors/unknown_projectid.tjp +7 -0
  549. data/test/TestSuite/Syntax/Errors/unknown_scenario_id.tjp +6 -0
  550. data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +11 -0
  551. data/test/TestSuite/Syntax/Errors/unknown_task.tjp +10 -0
  552. data/test/all.rb +31 -0
  553. data/test/test_BatchProcessor.rb +54 -0
  554. data/test/test_CSV-Reports.rb +101 -0
  555. data/test/test_Limits.rb +104 -0
  556. data/test/test_LogicalExpression.rb +110 -0
  557. data/test/test_MacroTable.rb +51 -0
  558. data/test/test_Project.rb +57 -0
  559. data/test/test_PropertySet.rb +71 -0
  560. data/test/test_Query.rb +83 -0
  561. data/test/test_RealFormat.rb +83 -0
  562. data/test/test_RichText.rb +869 -0
  563. data/test/test_Scheduler.rb +42 -0
  564. data/test/test_ShiftAssignments.rb +77 -0
  565. data/test/test_Syntax.rb +41 -0
  566. data/test/test_TextScanner.rb +95 -0
  567. data/test/test_TjTime.rb +114 -0
  568. data/test/test_TjpExample.rb +169 -0
  569. data/test/test_UTF8String.rb +84 -0
  570. data/test/test_WorkingHours.rb +56 -0
  571. metadata +649 -0
@@ -0,0 +1,260 @@
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>Class: TaskJuggler::TextScanner::StreamHandle [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="classHeader">
46
+ <table class="header-table">
47
+ <tr class="top-aligned-row">
48
+ <td><strong>Class</strong></td>
49
+ <td class="class-name-in-header">TaskJuggler::TextScanner::StreamHandle</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../../files/lib/TextScanner_rb.html">
57
+
58
+ lib/TextScanner.rb
59
+
60
+ </a>
61
+
62
+
63
+ <br />
64
+
65
+ </td>
66
+ </tr>
67
+
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+
73
+ Object
74
+
75
+ </td>
76
+ </tr>
77
+
78
+ </table>
79
+ </div>
80
+ <!-- banner header -->
81
+
82
+ <div id="bodyContent">
83
+
84
+ <div id="contextContent">
85
+
86
+ <div id="description">
87
+ <p>
88
+ This class is used to handle the low-level input operations. It knows
89
+ whether it deals with a text buffer or a file and abstracts this to the <a
90
+ href="../TextScanner.html">TextScanner</a>. For each nested file the
91
+ scanner puts an <a href="StreamHandle.html">StreamHandle</a> on the stack
92
+ while the file is scanned. With this stack the scanner can resume the
93
+ processing of the enclosing file once the included files has been
94
+ completely processed.
95
+ </p>
96
+
97
+ </div>
98
+
99
+ </div>
100
+
101
+
102
+ <div id="method-list">
103
+ <h3 class="section-bar">Methods</h3>
104
+
105
+ <div class="name-list">
106
+
107
+ <a href="#M000408">dirname</a>&nbsp;&nbsp;
108
+
109
+ <a href="#M000407">new</a>&nbsp;&nbsp;
110
+
111
+ </div>
112
+ </div>
113
+
114
+ </div>
115
+
116
+ <!-- if includes -->
117
+
118
+ <div id="section">
119
+
120
+
121
+
122
+ <div id="attribute-list">
123
+ <h3 class="section-bar">Attributes</h3>
124
+
125
+ <div class="name-list">
126
+ <table>
127
+
128
+ <tr class="top-aligned-row context-row">
129
+ <td class="context-item-name">charBuffer</td>
130
+
131
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
132
+
133
+ <td class="context-item-desc"></td>
134
+ </tr>
135
+
136
+ <tr class="top-aligned-row context-row">
137
+ <td class="context-item-name">columnNo</td>
138
+
139
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
140
+
141
+ <td class="context-item-desc"></td>
142
+ </tr>
143
+
144
+ <tr class="top-aligned-row context-row">
145
+ <td class="context-item-name">fileName</td>
146
+
147
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
148
+
149
+ <td class="context-item-desc"></td>
150
+ </tr>
151
+
152
+ <tr class="top-aligned-row context-row">
153
+ <td class="context-item-name">line</td>
154
+
155
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
156
+
157
+ <td class="context-item-desc"></td>
158
+ </tr>
159
+
160
+ <tr class="top-aligned-row context-row">
161
+ <td class="context-item-name">lineNo</td>
162
+
163
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
164
+
165
+ <td class="context-item-desc"></td>
166
+ </tr>
167
+
168
+ </table>
169
+ </div>
170
+ </div>
171
+
172
+
173
+ <!-- if method_list -->
174
+
175
+ <div id="methods">
176
+
177
+ <h3 class="section-bar">Public Class methods</h3>
178
+
179
+
180
+ <div id="method-M000407" class="method-detail">
181
+ <a name="M000407"></a>
182
+
183
+ <div class="method-heading">
184
+
185
+ <a href="#M000407" class="method-signature">
186
+
187
+ <span class="method-name">new</span><span class="method-args">()</span>
188
+
189
+ </a>
190
+
191
+ </div>
192
+
193
+ <div class="method-description">
194
+
195
+ <p><a class="source-toggle" href="#"
196
+ onclick="toggleCode('M000407-source');return false;">[Source]</a></p>
197
+ <div class="method-source-code" id="M000407-source">
198
+ <pre>
199
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 38</span>
200
+ 38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
201
+ 39: <span class="ruby-ivar">@lineNo</span> = <span class="ruby-value">1</span>
202
+ 40: <span class="ruby-ivar">@columnNo</span> = <span class="ruby-value">1</span>
203
+ 41: <span class="ruby-ivar">@line</span> = <span class="ruby-value str">&quot;&quot;</span>
204
+ 42: <span class="ruby-ivar">@charBuffer</span> = []
205
+ 43: <span class="ruby-ivar">@fileName</span> = <span class="ruby-keyword kw">nil</span>
206
+ 44: <span class="ruby-keyword kw">end</span>
207
+ </pre>
208
+ </div>
209
+
210
+ </div>
211
+ </div>
212
+
213
+
214
+ <h3 class="section-bar">Public Instance methods</h3>
215
+
216
+
217
+ <div id="method-M000408" class="method-detail">
218
+ <a name="M000408"></a>
219
+
220
+ <div class="method-heading">
221
+
222
+ <a href="#M000408" class="method-signature">
223
+
224
+ <span class="method-name">dirname</span><span class="method-args">()</span>
225
+
226
+ </a>
227
+
228
+ </div>
229
+
230
+ <div class="method-description">
231
+
232
+ <p><a class="source-toggle" href="#"
233
+ onclick="toggleCode('M000408-source');return false;">[Source]</a></p>
234
+ <div class="method-source-code" id="M000408-source">
235
+ <pre>
236
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 46</span>
237
+ 46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dirname</span>
238
+ 47: <span class="ruby-ivar">@fileName</span> <span class="ruby-operator">?</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-ivar">@fileName</span>) <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>
239
+ 48: <span class="ruby-keyword kw">end</span>
240
+ </pre>
241
+ </div>
242
+
243
+ </div>
244
+ </div>
245
+
246
+
247
+
248
+ </div>
249
+
250
+
251
+
252
+
253
+ </div>
254
+
255
+ <div id="validator-badges">
256
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
257
+ </div>
258
+
259
+ </body>
260
+ </html>
@@ -0,0 +1,185 @@
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>Class: TaskJuggler::TjException [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="classHeader">
46
+ <table class="header-table">
47
+ <tr class="top-aligned-row">
48
+ <td><strong>Class</strong></td>
49
+ <td class="class-name-in-header">TaskJuggler::TjException</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../files/lib/TjException_rb.html">
57
+
58
+ lib/TjException.rb
59
+
60
+ </a>
61
+
62
+
63
+ <br />
64
+
65
+ </td>
66
+ </tr>
67
+
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+
73
+ RuntimeError
74
+
75
+ </td>
76
+ </tr>
77
+
78
+ </table>
79
+ </div>
80
+ <!-- banner header -->
81
+
82
+ <div id="bodyContent">
83
+
84
+ <div id="contextContent">
85
+
86
+ </div>
87
+
88
+
89
+ <div id="method-list">
90
+ <h3 class="section-bar">Methods</h3>
91
+
92
+ <div class="name-list">
93
+
94
+ <a href="#M000531">new</a>&nbsp;&nbsp;
95
+
96
+ </div>
97
+ </div>
98
+
99
+ </div>
100
+
101
+ <!-- if includes -->
102
+
103
+ <div id="section">
104
+
105
+
106
+
107
+ <div id="attribute-list">
108
+ <h3 class="section-bar">Attributes</h3>
109
+
110
+ <div class="name-list">
111
+ <table>
112
+
113
+ <tr class="top-aligned-row context-row">
114
+ <td class="context-item-name">error</td>
115
+
116
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
117
+
118
+ <td class="context-item-desc"></td>
119
+ </tr>
120
+
121
+ <tr class="top-aligned-row context-row">
122
+ <td class="context-item-name">fatal</td>
123
+
124
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
125
+
126
+ <td class="context-item-desc"></td>
127
+ </tr>
128
+
129
+ </table>
130
+ </div>
131
+ </div>
132
+
133
+
134
+ <!-- if method_list -->
135
+
136
+ <div id="methods">
137
+
138
+ <h3 class="section-bar">Public Class methods</h3>
139
+
140
+
141
+ <div id="method-M000531" class="method-detail">
142
+ <a name="M000531"></a>
143
+
144
+ <div class="method-heading">
145
+
146
+ <a href="#M000531" class="method-signature">
147
+
148
+ <span class="method-name">new</span><span class="method-args">(error = true, fatal = false)</span>
149
+
150
+ </a>
151
+
152
+ </div>
153
+
154
+ <div class="method-description">
155
+
156
+ <p><a class="source-toggle" href="#"
157
+ onclick="toggleCode('M000531-source');return false;">[Source]</a></p>
158
+ <div class="method-source-code" id="M000531-source">
159
+ <pre>
160
+ <span class="ruby-comment cmt"># File lib/TjException.rb, line 19</span>
161
+ 19: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">error</span> = <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">fatal</span> = <span class="ruby-keyword kw">false</span>)
162
+ 20: <span class="ruby-ivar">@error</span> = <span class="ruby-identifier">error</span>
163
+ 21: <span class="ruby-ivar">@fatal</span> = <span class="ruby-identifier">fatal</span>
164
+ 22: <span class="ruby-keyword kw">end</span>
165
+ </pre>
166
+ </div>
167
+
168
+ </div>
169
+ </div>
170
+
171
+
172
+
173
+ </div>
174
+
175
+
176
+
177
+
178
+ </div>
179
+
180
+ <div id="validator-badges">
181
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
182
+ </div>
183
+
184
+ </body>
185
+ </html>
@@ -0,0 +1,1845 @@
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>Class: TaskJuggler::TjTime [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="classHeader">
46
+ <table class="header-table">
47
+ <tr class="top-aligned-row">
48
+ <td><strong>Class</strong></td>
49
+ <td class="class-name-in-header">TaskJuggler::TjTime</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../files/lib/TjTime_rb.html">
57
+
58
+ lib/TjTime.rb
59
+
60
+ </a>
61
+
62
+
63
+ <br />
64
+
65
+ </td>
66
+ </tr>
67
+
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+
73
+ Object
74
+
75
+ </td>
76
+ </tr>
77
+
78
+ </table>
79
+ </div>
80
+ <!-- banner header -->
81
+
82
+ <div id="bodyContent">
83
+
84
+ <div id="contextContent">
85
+
86
+ <div id="description">
87
+ <p>
88
+ The <a href="TjTime.html">TjTime</a> class is based on the original Ruby
89
+ class Time but provides lots of additional functionality.
90
+ </p>
91
+
92
+ </div>
93
+
94
+ </div>
95
+
96
+
97
+ <div id="method-list">
98
+ <h3 class="section-bar">Methods</h3>
99
+
100
+ <div class="name-list">
101
+
102
+ <a href="#M000868">%</a>&nbsp;&nbsp;
103
+
104
+ <a href="#M000866">+</a>&nbsp;&nbsp;
105
+
106
+ <a href="#M000867">-</a>&nbsp;&nbsp;
107
+
108
+ <a href="#M000869">&lt;</a>&nbsp;&nbsp;
109
+
110
+ <a href="#M000870">&lt;=</a>&nbsp;&nbsp;
111
+
112
+ <a href="#M000874">&lt;=&gt;</a>&nbsp;&nbsp;
113
+
114
+ <a href="#M000873">==</a>&nbsp;&nbsp;
115
+
116
+ <a href="#M000871">&gt;</a>&nbsp;&nbsp;
117
+
118
+ <a href="#M000872">&gt;=</a>&nbsp;&nbsp;
119
+
120
+ <a href="#M000864">align</a>&nbsp;&nbsp;
121
+
122
+ <a href="#M000876">beginOfHour</a>&nbsp;&nbsp;
123
+
124
+ <a href="#M000879">beginOfMonth</a>&nbsp;&nbsp;
125
+
126
+ <a href="#M000880">beginOfQuarter</a>&nbsp;&nbsp;
127
+
128
+ <a href="#M000878">beginOfWeek</a>&nbsp;&nbsp;
129
+
130
+ <a href="#M000881">beginOfYear</a>&nbsp;&nbsp;
131
+
132
+ <a href="#M000890">daysTo</a>&nbsp;&nbsp;
133
+
134
+ <a href="#M000862">gm</a>&nbsp;&nbsp;
135
+
136
+ <a href="#M000882">hoursLater</a>&nbsp;&nbsp;
137
+
138
+ <a href="#M000889">hoursTo</a>&nbsp;&nbsp;
139
+
140
+ <a href="#M000863">local</a>&nbsp;&nbsp;
141
+
142
+ <a href="#M000902">method_missing</a>&nbsp;&nbsp;
143
+
144
+ <a href="#M000877">midnight</a>&nbsp;&nbsp;
145
+
146
+ <a href="#M000900">monthAndYear</a>&nbsp;&nbsp;
147
+
148
+ <a href="#M000892">monthsTo</a>&nbsp;&nbsp;
149
+
150
+ <a href="#M000860">new</a>&nbsp;&nbsp;
151
+
152
+ <a href="#M000861">now</a>&nbsp;&nbsp;
153
+
154
+ <a href="#M000898">quarterName</a>&nbsp;&nbsp;
155
+
156
+ <a href="#M000893">quartersTo</a>&nbsp;&nbsp;
157
+
158
+ <a href="#M000884">sameTimeNextDay</a>&nbsp;&nbsp;
159
+
160
+ <a href="#M000883">sameTimeNextHour</a>&nbsp;&nbsp;
161
+
162
+ <a href="#M000886">sameTimeNextMonth</a>&nbsp;&nbsp;
163
+
164
+ <a href="#M000887">sameTimeNextQuarter</a>&nbsp;&nbsp;
165
+
166
+ <a href="#M000885">sameTimeNextWeek</a>&nbsp;&nbsp;
167
+
168
+ <a href="#M000888">sameTimeNextYear</a>&nbsp;&nbsp;
169
+
170
+ <a href="#M000865">secondsOfDay</a>&nbsp;&nbsp;
171
+
172
+ <a href="#M000897">shortMonthName</a>&nbsp;&nbsp;
173
+
174
+ <a href="#M000896">to_i</a>&nbsp;&nbsp;
175
+
176
+ <a href="#M000895">to_s</a>&nbsp;&nbsp;
177
+
178
+ <a href="#M000875">upto</a>&nbsp;&nbsp;
179
+
180
+ <a href="#M000899">week</a>&nbsp;&nbsp;
181
+
182
+ <a href="#M000901">weekdayAndDate</a>&nbsp;&nbsp;
183
+
184
+ <a href="#M000891">weeksTo</a>&nbsp;&nbsp;
185
+
186
+ <a href="#M000894">yearsTo</a>&nbsp;&nbsp;
187
+
188
+ </div>
189
+ </div>
190
+
191
+ </div>
192
+
193
+ <!-- if includes -->
194
+
195
+ <div id="section">
196
+
197
+ <div id="constants-list">
198
+ <h3 class="section-bar">Constants</h3>
199
+
200
+ <div class="name-list">
201
+ <table summary="Constants">
202
+
203
+ <tr class="top-aligned-row context-row">
204
+ <td class="context-item-name">MON_MAX</td>
205
+ <td>=</td>
206
+ <td class="context-item-value">[ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]</td>
207
+
208
+ <td>&nbsp;</td>
209
+ <td class="context-item-desc">
210
+ The number of days per month. Leap years are taken care of separately.
211
+
212
+ </td>
213
+
214
+ </tr>
215
+
216
+ </table>
217
+ </div>
218
+ </div>
219
+
220
+
221
+
222
+ <div id="attribute-list">
223
+ <h3 class="section-bar">Attributes</h3>
224
+
225
+ <div class="name-list">
226
+ <table>
227
+
228
+ <tr class="top-aligned-row context-row">
229
+ <td class="context-item-name">time</td>
230
+
231
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
232
+
233
+ <td class="context-item-desc"></td>
234
+ </tr>
235
+
236
+ </table>
237
+ </div>
238
+ </div>
239
+
240
+
241
+ <!-- if method_list -->
242
+
243
+ <div id="methods">
244
+
245
+ <h3 class="section-bar">Public Class methods</h3>
246
+
247
+
248
+ <div id="method-M000862" class="method-detail">
249
+ <a name="M000862"></a>
250
+
251
+ <div class="method-heading">
252
+
253
+ <a href="#M000862" class="method-signature">
254
+
255
+ <span class="method-name">gm</span><span class="method-args">(*args)</span>
256
+
257
+ </a>
258
+
259
+ </div>
260
+
261
+ <div class="method-description">
262
+
263
+ <p>
264
+ Creates a time based on given values, interpreted as UTC. See Time.gm() for
265
+ details.
266
+ </p>
267
+
268
+ <p><a class="source-toggle" href="#"
269
+ onclick="toggleCode('M000862-source');return false;">[Source]</a></p>
270
+ <div class="method-source-code" id="M000862-source">
271
+ <pre>
272
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 53</span>
273
+ 53: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">gm</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
274
+ 54: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">gm</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>))
275
+ 55: <span class="ruby-keyword kw">end</span>
276
+ </pre>
277
+ </div>
278
+
279
+ </div>
280
+ </div>
281
+
282
+
283
+ <div id="method-M000863" class="method-detail">
284
+ <a name="M000863"></a>
285
+
286
+ <div class="method-heading">
287
+
288
+ <a href="#M000863" class="method-signature">
289
+
290
+ <span class="method-name">local</span><span class="method-args">(*args)</span>
291
+
292
+ </a>
293
+
294
+ </div>
295
+
296
+ <div class="method-description">
297
+
298
+ <p>
299
+ Creates a time based on given values, interpreted as local time. The result
300
+ is stored as UTC time, though. See Time.local() for details.
301
+ </p>
302
+
303
+ <p><a class="source-toggle" href="#"
304
+ onclick="toggleCode('M000863-source');return false;">[Source]</a></p>
305
+ <div class="method-source-code" id="M000863-source">
306
+ <pre>
307
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 59</span>
308
+ 59: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">local</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
309
+ 60: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>).<span class="ruby-identifier">gmtime</span>)
310
+ 61: <span class="ruby-keyword kw">end</span>
311
+ </pre>
312
+ </div>
313
+
314
+ </div>
315
+ </div>
316
+
317
+
318
+ <div id="method-M000860" class="method-detail">
319
+ <a name="M000860"></a>
320
+
321
+ <div class="method-heading">
322
+
323
+ <a href="#M000860" class="method-signature">
324
+
325
+ <span class="method-name">TjTime(time) &rarr; Scenario<br />
326
+ TjTime(s) &rarr; Scenario<br />
327
+ TjTime(secs) &rarr; Scenario<br />
328
+ </span>
329
+
330
+ </a>
331
+
332
+ </div>
333
+
334
+ <div class="method-description">
335
+
336
+ <p>
337
+ The constructor is overloaded and accepts 3 kinds of arguments. If
338
+ <em>t</em> is a Time object this is just copied to the @time variable. If
339
+ it&#8217;s a string, it is parsed as a date. Or else it is interpreted as
340
+ seconds after Epoch.
341
+ </p>
342
+
343
+ <p><a class="source-toggle" href="#"
344
+ onclick="toggleCode('M000860-source');return false;">[Source]</a></p>
345
+ <div class="method-source-code" id="M000860-source">
346
+ <pre>
347
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 35</span>
348
+ 35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">t</span>)
349
+ 36: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Time</span>)
350
+ 37: <span class="ruby-ivar">@time</span> = <span class="ruby-identifier">t</span>
351
+ 38: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
352
+ 39: <span class="ruby-identifier">d</span> = <span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">t</span>)
353
+ 40: <span class="ruby-ivar">@time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">mktime</span>(<span class="ruby-identifier">d</span>.<span class="ruby-identifier">year</span>, <span class="ruby-identifier">d</span>.<span class="ruby-identifier">mon</span>, <span class="ruby-identifier">d</span>.<span class="ruby-identifier">day</span>, <span class="ruby-identifier">d</span>.<span class="ruby-identifier">hour</span>, <span class="ruby-identifier">d</span>.<span class="ruby-identifier">min</span>, <span class="ruby-identifier">d</span>.<span class="ruby-identifier">sec</span>)
354
+ 41: <span class="ruby-keyword kw">else</span>
355
+ 42: <span class="ruby-ivar">@time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">t</span>)
356
+ 43: <span class="ruby-keyword kw">end</span>
357
+ 44: <span class="ruby-keyword kw">end</span>
358
+ </pre>
359
+ </div>
360
+
361
+ </div>
362
+ </div>
363
+
364
+
365
+ <div id="method-M000861" class="method-detail">
366
+ <a name="M000861"></a>
367
+
368
+ <div class="method-heading">
369
+
370
+ <a href="#M000861" class="method-signature">
371
+
372
+ <span class="method-name">now</span><span class="method-args">()</span>
373
+
374
+ </a>
375
+
376
+ </div>
377
+
378
+ <div class="method-description">
379
+
380
+ <p>
381
+ Returns the current UTC time as Time object.
382
+ </p>
383
+
384
+ <p><a class="source-toggle" href="#"
385
+ onclick="toggleCode('M000861-source');return false;">[Source]</a></p>
386
+ <div class="method-source-code" id="M000861-source">
387
+ <pre>
388
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 47</span>
389
+ 47: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">now</span>
390
+ 48: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">gmtime</span>)
391
+ 49: <span class="ruby-keyword kw">end</span>
392
+ </pre>
393
+ </div>
394
+
395
+ </div>
396
+ </div>
397
+
398
+
399
+ <h3 class="section-bar">Public Instance methods</h3>
400
+
401
+
402
+ <div id="method-M000868" class="method-detail">
403
+ <a name="M000868"></a>
404
+
405
+ <div class="method-heading">
406
+
407
+ <a href="#M000868" class="method-signature">
408
+
409
+ <span class="method-name">%</span><span class="method-args">(val)</span>
410
+
411
+ </a>
412
+
413
+ </div>
414
+
415
+ <div class="method-description">
416
+
417
+ <p>
418
+ Convert the time to seconds since Epoch and return the module of
419
+ <em>val</em>.
420
+ </p>
421
+
422
+ <p><a class="source-toggle" href="#"
423
+ onclick="toggleCode('M000868-source');return false;">[Source]</a></p>
424
+ <div class="method-source-code" id="M000868-source">
425
+ <pre>
426
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 91</span>
427
+ 91: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">%</span>(<span class="ruby-identifier">val</span>)
428
+ 92: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">val</span>
429
+ 93: <span class="ruby-keyword kw">end</span>
430
+ </pre>
431
+ </div>
432
+
433
+ </div>
434
+ </div>
435
+
436
+
437
+ <div id="method-M000866" class="method-detail">
438
+ <a name="M000866"></a>
439
+
440
+ <div class="method-heading">
441
+
442
+ <a href="#M000866" class="method-signature">
443
+
444
+ <span class="method-name">+</span><span class="method-args">(secs)</span>
445
+
446
+ </a>
447
+
448
+ </div>
449
+
450
+ <div class="method-description">
451
+
452
+ <p>
453
+ Add <em>secs</em> number of seconds to the time.
454
+ </p>
455
+
456
+ <p><a class="source-toggle" href="#"
457
+ onclick="toggleCode('M000866-source');return false;">[Source]</a></p>
458
+ <div class="method-source-code" id="M000866-source">
459
+ <pre>
460
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 76</span>
461
+ 76: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">secs</span>)
462
+ 77: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@time</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">secs</span>)
463
+ 78: <span class="ruby-keyword kw">end</span>
464
+ </pre>
465
+ </div>
466
+
467
+ </div>
468
+ </div>
469
+
470
+
471
+ <div id="method-M000867" class="method-detail">
472
+ <a name="M000867"></a>
473
+
474
+ <div class="method-heading">
475
+
476
+ <a href="#M000867" class="method-signature">
477
+
478
+ <span class="method-name">-</span><span class="method-args">(arg)</span>
479
+
480
+ </a>
481
+
482
+ </div>
483
+
484
+ <div class="method-description">
485
+
486
+ <p>
487
+ Substract <em>arg</em> number of seconds or return the number of seconds
488
+ between <em>arg</em> and this time.
489
+ </p>
490
+
491
+ <p><a class="source-toggle" href="#"
492
+ onclick="toggleCode('M000867-source');return false;">[Source]</a></p>
493
+ <div class="method-source-code" id="M000867-source">
494
+ <pre>
495
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 82</span>
496
+ 82: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">arg</span>)
497
+ 83: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TjTime</span>)
498
+ 84: <span class="ruby-ivar">@time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">time</span>
499
+ 85: <span class="ruby-keyword kw">else</span>
500
+ 86: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">arg</span>)
501
+ 87: <span class="ruby-keyword kw">end</span>
502
+ 88: <span class="ruby-keyword kw">end</span>
503
+ </pre>
504
+ </div>
505
+
506
+ </div>
507
+ </div>
508
+
509
+
510
+ <div id="method-M000869" class="method-detail">
511
+ <a name="M000869"></a>
512
+
513
+ <div class="method-heading">
514
+
515
+ <a href="#M000869" class="method-signature">
516
+
517
+ <span class="method-name">&lt;</span><span class="method-args">(t)</span>
518
+
519
+ </a>
520
+
521
+ </div>
522
+
523
+ <div class="method-description">
524
+
525
+ <p>
526
+ Return true if time is smaller than <em>t</em>.
527
+ </p>
528
+
529
+ <p><a class="source-toggle" href="#"
530
+ onclick="toggleCode('M000869-source');return false;">[Source]</a></p>
531
+ <div class="method-source-code" id="M000869-source">
532
+ <pre>
533
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 96</span>
534
+ 96: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;</span>(<span class="ruby-identifier">t</span>)
535
+ 97: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
536
+ 98: <span class="ruby-keyword kw">end</span>
537
+ </pre>
538
+ </div>
539
+
540
+ </div>
541
+ </div>
542
+
543
+
544
+ <div id="method-M000870" class="method-detail">
545
+ <a name="M000870"></a>
546
+
547
+ <div class="method-heading">
548
+
549
+ <a href="#M000870" class="method-signature">
550
+
551
+ <span class="method-name">&lt;=</span><span class="method-args">(t)</span>
552
+
553
+ </a>
554
+
555
+ </div>
556
+
557
+ <div class="method-description">
558
+
559
+ <p>
560
+ Return true if time is smaller or equal than <em>t</em>.
561
+ </p>
562
+
563
+ <p><a class="source-toggle" href="#"
564
+ onclick="toggleCode('M000870-source');return false;">[Source]</a></p>
565
+ <div class="method-source-code" id="M000870-source">
566
+ <pre>
567
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 101</span>
568
+ 101: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;=</span>(<span class="ruby-identifier">t</span>)
569
+ 102: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
570
+ 103: <span class="ruby-keyword kw">end</span>
571
+ </pre>
572
+ </div>
573
+
574
+ </div>
575
+ </div>
576
+
577
+
578
+ <div id="method-M000874" class="method-detail">
579
+ <a name="M000874"></a>
580
+
581
+ <div class="method-heading">
582
+
583
+ <a href="#M000874" class="method-signature">
584
+
585
+ <span class="method-name">&lt;=&gt;</span><span class="method-args">(t)</span>
586
+
587
+ </a>
588
+
589
+ </div>
590
+
591
+ <div class="method-description">
592
+
593
+ <p>
594
+ Coparison operator for time with another time <em>t</em>.
595
+ </p>
596
+
597
+ <p><a class="source-toggle" href="#"
598
+ onclick="toggleCode('M000874-source');return false;">[Source]</a></p>
599
+ <div class="method-source-code" id="M000874-source">
600
+ <pre>
601
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 122</span>
602
+ 122: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;=&gt;</span>(<span class="ruby-identifier">t</span>)
603
+ 123: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
604
+ 124: <span class="ruby-keyword kw">end</span>
605
+ </pre>
606
+ </div>
607
+
608
+ </div>
609
+ </div>
610
+
611
+
612
+ <div id="method-M000873" class="method-detail">
613
+ <a name="M000873"></a>
614
+
615
+ <div class="method-heading">
616
+
617
+ <a href="#M000873" class="method-signature">
618
+
619
+ <span class="method-name">==</span><span class="method-args">(t)</span>
620
+
621
+ </a>
622
+
623
+ </div>
624
+
625
+ <div class="method-description">
626
+
627
+ <p>
628
+ Return true if time and <em>t</em> are identical.
629
+ </p>
630
+
631
+ <p><a class="source-toggle" href="#"
632
+ onclick="toggleCode('M000873-source');return false;">[Source]</a></p>
633
+ <div class="method-source-code" id="M000873-source">
634
+ <pre>
635
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 116</span>
636
+ 116: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">t</span>)
637
+ 117: <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">t</span>.<span class="ruby-identifier">nil?</span>
638
+ 118: <span class="ruby-ivar">@time</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
639
+ 119: <span class="ruby-keyword kw">end</span>
640
+ </pre>
641
+ </div>
642
+
643
+ </div>
644
+ </div>
645
+
646
+
647
+ <div id="method-M000871" class="method-detail">
648
+ <a name="M000871"></a>
649
+
650
+ <div class="method-heading">
651
+
652
+ <a href="#M000871" class="method-signature">
653
+
654
+ <span class="method-name">&gt;</span><span class="method-args">(t)</span>
655
+
656
+ </a>
657
+
658
+ </div>
659
+
660
+ <div class="method-description">
661
+
662
+ <p>
663
+ Return true if time is larger than <em>t</em>.
664
+ </p>
665
+
666
+ <p><a class="source-toggle" href="#"
667
+ onclick="toggleCode('M000871-source');return false;">[Source]</a></p>
668
+ <div class="method-source-code" id="M000871-source">
669
+ <pre>
670
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 106</span>
671
+ 106: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&gt;</span>(<span class="ruby-identifier">t</span>)
672
+ 107: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
673
+ 108: <span class="ruby-keyword kw">end</span>
674
+ </pre>
675
+ </div>
676
+
677
+ </div>
678
+ </div>
679
+
680
+
681
+ <div id="method-M000872" class="method-detail">
682
+ <a name="M000872"></a>
683
+
684
+ <div class="method-heading">
685
+
686
+ <a href="#M000872" class="method-signature">
687
+
688
+ <span class="method-name">&gt;=</span><span class="method-args">(t)</span>
689
+
690
+ </a>
691
+
692
+ </div>
693
+
694
+ <div class="method-description">
695
+
696
+ <p>
697
+ Return true if time is larger or equal than <em>t</em>.
698
+ </p>
699
+
700
+ <p><a class="source-toggle" href="#"
701
+ onclick="toggleCode('M000872-source');return false;">[Source]</a></p>
702
+ <div class="method-source-code" id="M000872-source">
703
+ <pre>
704
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 111</span>
705
+ 111: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&gt;=</span>(<span class="ruby-identifier">t</span>)
706
+ 112: <span class="ruby-ivar">@time</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time</span>
707
+ 113: <span class="ruby-keyword kw">end</span>
708
+ </pre>
709
+ </div>
710
+
711
+ </div>
712
+ </div>
713
+
714
+
715
+ <div id="method-M000864" class="method-detail">
716
+ <a name="M000864"></a>
717
+
718
+ <div class="method-heading">
719
+
720
+ <a href="#M000864" class="method-signature">
721
+
722
+ <span class="method-name">align</span><span class="method-args">(clock)</span>
723
+
724
+ </a>
725
+
726
+ </div>
727
+
728
+ <div class="method-description">
729
+
730
+ <p>
731
+ Align the date to a time grid. The grid distance is determined by
732
+ <em>clock</em>.
733
+ </p>
734
+
735
+ <p><a class="source-toggle" href="#"
736
+ onclick="toggleCode('M000864-source');return false;">[Source]</a></p>
737
+ <div class="method-source-code" id="M000864-source">
738
+ <pre>
739
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 64</span>
740
+ 64: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">align</span>(<span class="ruby-identifier">clock</span>)
741
+ 65: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>((<span class="ruby-ivar">@time</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">clock</span>) <span class="ruby-operator">*</span> <span class="ruby-identifier">clock</span>)
742
+ 66: <span class="ruby-keyword kw">end</span>
743
+ </pre>
744
+ </div>
745
+
746
+ </div>
747
+ </div>
748
+
749
+
750
+ <div id="method-M000876" class="method-detail">
751
+ <a name="M000876"></a>
752
+
753
+ <div class="method-heading">
754
+
755
+ <a href="#M000876" class="method-signature">
756
+
757
+ <span class="method-name">beginOfHour</span><span class="method-args">()</span>
758
+
759
+ </a>
760
+
761
+ </div>
762
+
763
+ <div class="method-description">
764
+
765
+ <p>
766
+ Normalize time to the beginning of the current hour.
767
+ </p>
768
+
769
+ <p><a class="source-toggle" href="#"
770
+ onclick="toggleCode('M000876-source');return false;">[Source]</a></p>
771
+ <div class="method-source-code" id="M000876-source">
772
+ <pre>
773
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 137</span>
774
+ 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfHour</span>
775
+ 138: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
776
+ 139: <span class="ruby-identifier">t</span>[<span class="ruby-value">0</span>, <span class="ruby-value">2</span>] = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">2</span>, <span class="ruby-value">0</span>)
777
+ 140: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-value">6</span>, <span class="ruby-value">4</span>)
778
+ 141: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">reverse!</span>
779
+ 142: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">t</span>))
780
+ 143: <span class="ruby-keyword kw">end</span>
781
+ </pre>
782
+ </div>
783
+
784
+ </div>
785
+ </div>
786
+
787
+
788
+ <div id="method-M000879" class="method-detail">
789
+ <a name="M000879"></a>
790
+
791
+ <div class="method-heading">
792
+
793
+ <a href="#M000879" class="method-signature">
794
+
795
+ <span class="method-name">beginOfMonth</span><span class="method-args">()</span>
796
+
797
+ </a>
798
+
799
+ </div>
800
+
801
+ <div class="method-description">
802
+
803
+ <p>
804
+ Normalize time to the beginning of the current month.
805
+ </p>
806
+
807
+ <p><a class="source-toggle" href="#"
808
+ onclick="toggleCode('M000879-source');return false;">[Source]</a></p>
809
+ <div class="method-source-code" id="M000879-source">
810
+ <pre>
811
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 170</span>
812
+ 170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfMonth</span>
813
+ 171: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
814
+ 172: <span class="ruby-identifier">t</span>[<span class="ruby-value">0</span>, <span class="ruby-value">3</span>] = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">3</span>, <span class="ruby-value">0</span>)
815
+ 173: <span class="ruby-identifier">t</span>[<span class="ruby-value">3</span>] = <span class="ruby-value">1</span>
816
+ 174: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-value">6</span>, <span class="ruby-value">4</span>)
817
+ 175: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">reverse!</span>
818
+ 176: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">t</span>))
819
+ 177: <span class="ruby-keyword kw">end</span>
820
+ </pre>
821
+ </div>
822
+
823
+ </div>
824
+ </div>
825
+
826
+
827
+ <div id="method-M000880" class="method-detail">
828
+ <a name="M000880"></a>
829
+
830
+ <div class="method-heading">
831
+
832
+ <a href="#M000880" class="method-signature">
833
+
834
+ <span class="method-name">beginOfQuarter</span><span class="method-args">()</span>
835
+
836
+ </a>
837
+
838
+ </div>
839
+
840
+ <div class="method-description">
841
+
842
+ <p>
843
+ Normalize time to the beginning of the current quarter.
844
+ </p>
845
+
846
+ <p><a class="source-toggle" href="#"
847
+ onclick="toggleCode('M000880-source');return false;">[Source]</a></p>
848
+ <div class="method-source-code" id="M000880-source">
849
+ <pre>
850
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 180</span>
851
+ 180: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfQuarter</span>
852
+ 181: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
853
+ 182: <span class="ruby-identifier">t</span>[<span class="ruby-value">0</span>, <span class="ruby-value">3</span>] = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">3</span>, <span class="ruby-value">0</span>)
854
+ 183: <span class="ruby-identifier">t</span>[<span class="ruby-value">3</span>] = <span class="ruby-value">1</span>
855
+ 184: <span class="ruby-identifier">t</span>[<span class="ruby-value">4</span>] = ((<span class="ruby-identifier">t</span>[<span class="ruby-value">4</span>] <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-operator">%</span> <span class="ruby-value">3</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
856
+ 185: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-value">6</span>, <span class="ruby-value">4</span>)
857
+ 186: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">reverse!</span>
858
+ 187: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">t</span>))
859
+ 188: <span class="ruby-keyword kw">end</span>
860
+ </pre>
861
+ </div>
862
+
863
+ </div>
864
+ </div>
865
+
866
+
867
+ <div id="method-M000878" class="method-detail">
868
+ <a name="M000878"></a>
869
+
870
+ <div class="method-heading">
871
+
872
+ <a href="#M000878" class="method-signature">
873
+
874
+ <span class="method-name">beginOfWeek</span><span class="method-args">(startMonday)</span>
875
+
876
+ </a>
877
+
878
+ </div>
879
+
880
+ <div class="method-description">
881
+
882
+ <p>
883
+ Normalize time to the beginning of the current week. <em>startMonday</em>
884
+ determines whether the week should start on Monday or Sunday.
885
+ </p>
886
+
887
+ <p><a class="source-toggle" href="#"
888
+ onclick="toggleCode('M000878-source');return false;">[Source]</a></p>
889
+ <div class="method-source-code" id="M000878-source">
890
+ <pre>
891
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 156</span>
892
+ 156: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfWeek</span>(<span class="ruby-identifier">startMonday</span>)
893
+ 157: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">to_a</span>
894
+ 158: <span class="ruby-comment cmt"># Set time to noon, 12:00:00</span>
895
+ 159: <span class="ruby-identifier">t</span>[<span class="ruby-value">0</span>, <span class="ruby-value">3</span>] = [ <span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">12</span> ]
896
+ 160: <span class="ruby-identifier">weekday</span> = <span class="ruby-identifier">t</span>[<span class="ruby-value">6</span>]
897
+ 161: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-value">6</span>, <span class="ruby-value">4</span>)
898
+ 162: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">reverse!</span>
899
+ 163: <span class="ruby-comment cmt"># Substract the number of days determined by the weekday t[6] and set time</span>
900
+ 164: <span class="ruby-comment cmt"># to midnight of that day.</span>
901
+ 165: (<span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">t</span>)) <span class="ruby-operator">-</span>
902
+ 166: (<span class="ruby-identifier">weekday</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">startMonday</span> <span class="ruby-value">? </span><span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>)) <span class="ruby-operator">*</span> <span class="ruby-value">60</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span> <span class="ruby-operator">*</span> <span class="ruby-value">24</span>).<span class="ruby-identifier">midnight</span>
903
+ 167: <span class="ruby-keyword kw">end</span>
904
+ </pre>
905
+ </div>
906
+
907
+ </div>
908
+ </div>
909
+
910
+
911
+ <div id="method-M000881" class="method-detail">
912
+ <a name="M000881"></a>
913
+
914
+ <div class="method-heading">
915
+
916
+ <a href="#M000881" class="method-signature">
917
+
918
+ <span class="method-name">beginOfYear</span><span class="method-args">()</span>
919
+
920
+ </a>
921
+
922
+ </div>
923
+
924
+ <div class="method-description">
925
+
926
+ <p>
927
+ Normalize time to the beginning of the current year.
928
+ </p>
929
+
930
+ <p><a class="source-toggle" href="#"
931
+ onclick="toggleCode('M000881-source');return false;">[Source]</a></p>
932
+ <div class="method-source-code" id="M000881-source">
933
+ <pre>
934
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 191</span>
935
+ 191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">beginOfYear</span>
936
+ 192: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
937
+ 193: <span class="ruby-identifier">t</span>[<span class="ruby-value">0</span>, <span class="ruby-value">3</span>] = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">3</span>, <span class="ruby-value">0</span>)
938
+ 194: <span class="ruby-identifier">t</span>[<span class="ruby-value">3</span>, <span class="ruby-value">2</span>] = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">2</span>, <span class="ruby-value">1</span>)
939
+ 195: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-value">6</span>, <span class="ruby-value">4</span>)
940
+ 196: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">reverse!</span>
941
+ 197: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">t</span>))
942
+ 198: <span class="ruby-keyword kw">end</span>
943
+ </pre>
944
+ </div>
945
+
946
+ </div>
947
+ </div>
948
+
949
+
950
+ <div id="method-M000890" class="method-detail">
951
+ <a name="M000890"></a>
952
+
953
+ <div class="method-heading">
954
+
955
+ <a href="#M000890" class="method-signature">
956
+
957
+ <span class="method-name">daysTo</span><span class="method-args">(date)</span>
958
+
959
+ </a>
960
+
961
+ </div>
962
+
963
+ <div class="method-description">
964
+
965
+ <p>
966
+ Return the number of days between this time and <em>date</em>. The result
967
+ is always rounded up.
968
+ </p>
969
+
970
+ <p><a class="source-toggle" href="#"
971
+ onclick="toggleCode('M000890-source');return false;">[Source]</a></p>
972
+ <div class="method-source-code" id="M000890-source">
973
+ <pre>
974
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 283</span>
975
+ 283: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">daysTo</span>(<span class="ruby-identifier">date</span>)
976
+ 284: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">:sameTimeNextDay</span>)
977
+ 285: <span class="ruby-keyword kw">end</span>
978
+ </pre>
979
+ </div>
980
+
981
+ </div>
982
+ </div>
983
+
984
+
985
+ <div id="method-M000882" class="method-detail">
986
+ <a name="M000882"></a>
987
+
988
+ <div class="method-heading">
989
+
990
+ <a href="#M000882" class="method-signature">
991
+
992
+ <span class="method-name">hoursLater</span><span class="method-args">(hours)</span>
993
+
994
+ </a>
995
+
996
+ </div>
997
+
998
+ <div class="method-description">
999
+
1000
+ <p>
1001
+ Return a new time that is <em>hours</em> later than time.
1002
+ </p>
1003
+
1004
+ <p><a class="source-toggle" href="#"
1005
+ onclick="toggleCode('M000882-source');return false;">[Source]</a></p>
1006
+ <div class="method-source-code" id="M000882-source">
1007
+ <pre>
1008
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 201</span>
1009
+ 201: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hoursLater</span>(<span class="ruby-identifier">hours</span>)
1010
+ 202: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@time</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">hours</span> <span class="ruby-operator">*</span> <span class="ruby-value">3600</span>)
1011
+ 203: <span class="ruby-keyword kw">end</span>
1012
+ </pre>
1013
+ </div>
1014
+
1015
+ </div>
1016
+ </div>
1017
+
1018
+
1019
+ <div id="method-M000889" class="method-detail">
1020
+ <a name="M000889"></a>
1021
+
1022
+ <div class="method-heading">
1023
+
1024
+ <a href="#M000889" class="method-signature">
1025
+
1026
+ <span class="method-name">hoursTo</span><span class="method-args">(date)</span>
1027
+
1028
+ </a>
1029
+
1030
+ </div>
1031
+
1032
+ <div class="method-description">
1033
+
1034
+ <p>
1035
+ Return the number of hours between this time and <em>date</em>. The result
1036
+ is always rounded up.
1037
+ </p>
1038
+
1039
+ <p><a class="source-toggle" href="#"
1040
+ onclick="toggleCode('M000889-source');return false;">[Source]</a></p>
1041
+ <div class="method-source-code" id="M000889-source">
1042
+ <pre>
1043
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 276</span>
1044
+ 276: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hoursTo</span>(<span class="ruby-identifier">date</span>)
1045
+ 277: <span class="ruby-identifier">t1</span>, <span class="ruby-identifier">t2</span> = <span class="ruby-identifier">order</span>(<span class="ruby-identifier">date</span>)
1046
+ 278: ((<span class="ruby-identifier">t2</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">t1</span>) <span class="ruby-operator">/</span> <span class="ruby-value">3600</span>).<span class="ruby-identifier">ceil</span>
1047
+ 279: <span class="ruby-keyword kw">end</span>
1048
+ </pre>
1049
+ </div>
1050
+
1051
+ </div>
1052
+ </div>
1053
+
1054
+
1055
+ <div id="method-M000902" class="method-detail">
1056
+ <a name="M000902"></a>
1057
+
1058
+ <div class="method-heading">
1059
+
1060
+ <a href="#M000902" class="method-signature">
1061
+
1062
+ <span class="method-name">method_missing</span><span class="method-args">(func, *args)</span>
1063
+
1064
+ </a>
1065
+
1066
+ </div>
1067
+
1068
+ <div class="method-description">
1069
+
1070
+ <p>
1071
+ Pass any unknown function directoy to the @time variable.
1072
+ </p>
1073
+
1074
+ <p><a class="source-toggle" href="#"
1075
+ onclick="toggleCode('M000902-source');return false;">[Source]</a></p>
1076
+ <div class="method-source-code" id="M000902-source">
1077
+ <pre>
1078
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 354</span>
1079
+ 354: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">func</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
1080
+ 355: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">method</span>(<span class="ruby-identifier">func</span>).<span class="ruby-identifier">call</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
1081
+ 356: <span class="ruby-keyword kw">end</span>
1082
+ </pre>
1083
+ </div>
1084
+
1085
+ </div>
1086
+ </div>
1087
+
1088
+
1089
+ <div id="method-M000877" class="method-detail">
1090
+ <a name="M000877"></a>
1091
+
1092
+ <div class="method-heading">
1093
+
1094
+ <a href="#M000877" class="method-signature">
1095
+
1096
+ <span class="method-name">midnight</span><span class="method-args">()</span>
1097
+
1098
+ </a>
1099
+
1100
+ </div>
1101
+
1102
+ <div class="method-description">
1103
+
1104
+ <p>
1105
+ Normalize time to the beginning of the current day.
1106
+ </p>
1107
+
1108
+ <p><a class="source-toggle" href="#"
1109
+ onclick="toggleCode('M000877-source');return false;">[Source]</a></p>
1110
+ <div class="method-source-code" id="M000877-source">
1111
+ <pre>
1112
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 146</span>
1113
+ 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">midnight</span>
1114
+ 147: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1115
+ 148: <span class="ruby-identifier">t</span>[<span class="ruby-value">0</span>, <span class="ruby-value">3</span>] = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">3</span>, <span class="ruby-value">0</span>)
1116
+ 149: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-value">6</span>, <span class="ruby-value">4</span>)
1117
+ 150: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">reverse!</span>
1118
+ 151: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">t</span>))
1119
+ 152: <span class="ruby-keyword kw">end</span>
1120
+ </pre>
1121
+ </div>
1122
+
1123
+ </div>
1124
+ </div>
1125
+
1126
+
1127
+ <div id="method-M000900" class="method-detail">
1128
+ <a name="M000900"></a>
1129
+
1130
+ <div class="method-heading">
1131
+
1132
+ <a href="#M000900" class="method-signature">
1133
+
1134
+ <span class="method-name">monthAndYear</span><span class="method-args">()</span>
1135
+
1136
+ </a>
1137
+
1138
+ </div>
1139
+
1140
+ <div class="method-description">
1141
+
1142
+ <p>
1143
+ Return the abbreviated month name and the full year. E. g. &#8216;Feb
1144
+ 1972&#8217;.
1145
+ </p>
1146
+
1147
+ <p><a class="source-toggle" href="#"
1148
+ onclick="toggleCode('M000900-source');return false;">[Source]</a></p>
1149
+ <div class="method-source-code" id="M000900-source">
1150
+ <pre>
1151
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 344</span>
1152
+ 344: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">monthAndYear</span>
1153
+ 345: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%b %Y'</span>)
1154
+ 346: <span class="ruby-keyword kw">end</span>
1155
+ </pre>
1156
+ </div>
1157
+
1158
+ </div>
1159
+ </div>
1160
+
1161
+
1162
+ <div id="method-M000892" class="method-detail">
1163
+ <a name="M000892"></a>
1164
+
1165
+ <div class="method-heading">
1166
+
1167
+ <a href="#M000892" class="method-signature">
1168
+
1169
+ <span class="method-name">monthsTo</span><span class="method-args">(date)</span>
1170
+
1171
+ </a>
1172
+
1173
+ </div>
1174
+
1175
+ <div class="method-description">
1176
+
1177
+ <p>
1178
+ Return the number of months between this time and <em>date</em>. The result
1179
+ is always rounded up.
1180
+ </p>
1181
+
1182
+ <p><a class="source-toggle" href="#"
1183
+ onclick="toggleCode('M000892-source');return false;">[Source]</a></p>
1184
+ <div class="method-source-code" id="M000892-source">
1185
+ <pre>
1186
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 295</span>
1187
+ 295: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">monthsTo</span>(<span class="ruby-identifier">date</span>)
1188
+ 296: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">:sameTimeNextMonth</span>)
1189
+ 297: <span class="ruby-keyword kw">end</span>
1190
+ </pre>
1191
+ </div>
1192
+
1193
+ </div>
1194
+ </div>
1195
+
1196
+
1197
+ <div id="method-M000898" class="method-detail">
1198
+ <a name="M000898"></a>
1199
+
1200
+ <div class="method-heading">
1201
+
1202
+ <a href="#M000898" class="method-signature">
1203
+
1204
+ <span class="method-name">quarterName</span><span class="method-args">()</span>
1205
+
1206
+ </a>
1207
+
1208
+ </div>
1209
+
1210
+ <div class="method-description">
1211
+
1212
+ <p>
1213
+ Return the number of the quarter prefixed by a &#8216;Q&#8217;.
1214
+ </p>
1215
+
1216
+ <p><a class="source-toggle" href="#"
1217
+ onclick="toggleCode('M000898-source');return false;">[Source]</a></p>
1218
+ <div class="method-source-code" id="M000898-source">
1219
+ <pre>
1220
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 333</span>
1221
+ 333: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">quarterName</span>
1222
+ 334: <span class="ruby-node">&quot;Q#{(@time.mon / 3) + 1}&quot;</span>
1223
+ 335: <span class="ruby-keyword kw">end</span>
1224
+ </pre>
1225
+ </div>
1226
+
1227
+ </div>
1228
+ </div>
1229
+
1230
+
1231
+ <div id="method-M000893" class="method-detail">
1232
+ <a name="M000893"></a>
1233
+
1234
+ <div class="method-heading">
1235
+
1236
+ <a href="#M000893" class="method-signature">
1237
+
1238
+ <span class="method-name">quartersTo</span><span class="method-args">(date)</span>
1239
+
1240
+ </a>
1241
+
1242
+ </div>
1243
+
1244
+ <div class="method-description">
1245
+
1246
+ <p>
1247
+ Return the number of quarters between this time and <em>date</em>. The
1248
+ result is always rounded up.
1249
+ </p>
1250
+
1251
+ <p><a class="source-toggle" href="#"
1252
+ onclick="toggleCode('M000893-source');return false;">[Source]</a></p>
1253
+ <div class="method-source-code" id="M000893-source">
1254
+ <pre>
1255
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 301</span>
1256
+ 301: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">quartersTo</span>(<span class="ruby-identifier">date</span>)
1257
+ 302: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">:sameTimeNextQuarter</span>)
1258
+ 303: <span class="ruby-keyword kw">end</span>
1259
+ </pre>
1260
+ </div>
1261
+
1262
+ </div>
1263
+ </div>
1264
+
1265
+
1266
+ <div id="method-M000884" class="method-detail">
1267
+ <a name="M000884"></a>
1268
+
1269
+ <div class="method-heading">
1270
+
1271
+ <a href="#M000884" class="method-signature">
1272
+
1273
+ <span class="method-name">sameTimeNextDay</span><span class="method-args">()</span>
1274
+
1275
+ </a>
1276
+
1277
+ </div>
1278
+
1279
+ <div class="method-description">
1280
+
1281
+ <p>
1282
+ Return a new time that is 1 day later than time but at the same time of
1283
+ day.
1284
+ </p>
1285
+
1286
+ <p><a class="source-toggle" href="#"
1287
+ onclick="toggleCode('M000884-source');return false;">[Source]</a></p>
1288
+ <div class="method-source-code" id="M000884-source">
1289
+ <pre>
1290
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 212</span>
1291
+ 212: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextDay</span>
1292
+ 213: <span class="ruby-identifier">delta</span> = [ <span class="ruby-value">0</span>, <span class="ruby-value">-1</span>, <span class="ruby-value">1</span> ]
1293
+ 214: <span class="ruby-identifier">localT1</span> = <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1294
+ 215: <span class="ruby-identifier">delta</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
1295
+ 216: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span> <span class="ruby-operator">+</span> (<span class="ruby-value">24</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">d</span>) <span class="ruby-operator">*</span> <span class="ruby-value">60</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span>
1296
+ 217: <span class="ruby-identifier">localT2</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1297
+ 218: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">localT1</span>[<span class="ruby-value">0</span>, <span class="ruby-value">3</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">localT2</span>[<span class="ruby-value">0</span>, <span class="ruby-value">3</span>]
1298
+ 219: <span class="ruby-keyword kw">end</span>
1299
+ 220: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Algorithm is broken for #{@time}&quot;</span>
1300
+ 221: <span class="ruby-keyword kw">end</span>
1301
+ </pre>
1302
+ </div>
1303
+
1304
+ </div>
1305
+ </div>
1306
+
1307
+
1308
+ <div id="method-M000883" class="method-detail">
1309
+ <a name="M000883"></a>
1310
+
1311
+ <div class="method-heading">
1312
+
1313
+ <a href="#M000883" class="method-signature">
1314
+
1315
+ <span class="method-name">sameTimeNextHour</span><span class="method-args">()</span>
1316
+
1317
+ </a>
1318
+
1319
+ </div>
1320
+
1321
+ <div class="method-description">
1322
+
1323
+ <p>
1324
+ Return a new time that is 1 hour later than time.
1325
+ </p>
1326
+
1327
+ <p><a class="source-toggle" href="#"
1328
+ onclick="toggleCode('M000883-source');return false;">[Source]</a></p>
1329
+ <div class="method-source-code" id="M000883-source">
1330
+ <pre>
1331
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 206</span>
1332
+ 206: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextHour</span>
1333
+ 207: <span class="ruby-identifier">hoursLater</span>(<span class="ruby-value">1</span>)
1334
+ 208: <span class="ruby-keyword kw">end</span>
1335
+ </pre>
1336
+ </div>
1337
+
1338
+ </div>
1339
+ </div>
1340
+
1341
+
1342
+ <div id="method-M000886" class="method-detail">
1343
+ <a name="M000886"></a>
1344
+
1345
+ <div class="method-heading">
1346
+
1347
+ <a href="#M000886" class="method-signature">
1348
+
1349
+ <span class="method-name">sameTimeNextMonth</span><span class="method-args">()</span>
1350
+
1351
+ </a>
1352
+
1353
+ </div>
1354
+
1355
+ <div class="method-description">
1356
+
1357
+ <p>
1358
+ Return a new time that is 1 month later than time but at the same time of
1359
+ day.
1360
+ </p>
1361
+
1362
+ <p><a class="source-toggle" href="#"
1363
+ onclick="toggleCode('M000886-source');return false;">[Source]</a></p>
1364
+ <div class="method-source-code" id="M000886-source">
1365
+ <pre>
1366
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 238</span>
1367
+ 238: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextMonth</span>
1368
+ 239: <span class="ruby-identifier">sec</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">year</span>, <span class="ruby-identifier">wday</span>, <span class="ruby-identifier">yday</span>, <span class="ruby-identifier">isdst</span>, <span class="ruby-identifier">tz</span> =
1369
+ 240: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1370
+ 241: <span class="ruby-identifier">monMax</span> = <span class="ruby-identifier">month</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">leapYear?</span>(<span class="ruby-identifier">year</span>) <span class="ruby-operator">?</span> <span class="ruby-value">29</span> <span class="ruby-operator">:</span> <span class="ruby-constant">MON_MAX</span>[<span class="ruby-identifier">month</span>]
1371
+ 242: <span class="ruby-identifier">month</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1372
+ 243: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">month</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
1373
+ 244: <span class="ruby-identifier">month</span> = <span class="ruby-value">1</span>
1374
+ 245: <span class="ruby-identifier">year</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1375
+ 246: <span class="ruby-keyword kw">end</span>
1376
+ 247: <span class="ruby-identifier">day</span> = <span class="ruby-identifier">monMax</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">day</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">monMax</span>
1377
+ 248: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">mktime</span>(<span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-value">0</span>))
1378
+ 249: <span class="ruby-keyword kw">end</span>
1379
+ </pre>
1380
+ </div>
1381
+
1382
+ </div>
1383
+ </div>
1384
+
1385
+
1386
+ <div id="method-M000887" class="method-detail">
1387
+ <a name="M000887"></a>
1388
+
1389
+ <div class="method-heading">
1390
+
1391
+ <a href="#M000887" class="method-signature">
1392
+
1393
+ <span class="method-name">sameTimeNextQuarter</span><span class="method-args">()</span>
1394
+
1395
+ </a>
1396
+
1397
+ </div>
1398
+
1399
+ <div class="method-description">
1400
+
1401
+ <p>
1402
+ Return a new time that is 1 quarter later than time but at the same time of
1403
+ day.
1404
+ </p>
1405
+
1406
+ <p><a class="source-toggle" href="#"
1407
+ onclick="toggleCode('M000887-source');return false;">[Source]</a></p>
1408
+ <div class="method-source-code" id="M000887-source">
1409
+ <pre>
1410
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 253</span>
1411
+ 253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextQuarter</span>
1412
+ 254: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1413
+ 255: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">t</span>[<span class="ruby-value">4</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">3</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">12</span>
1414
+ 256: <span class="ruby-identifier">t</span>[<span class="ruby-value">4</span>] <span class="ruby-operator">-=</span> <span class="ruby-value">12</span>
1415
+ 257: <span class="ruby-identifier">t</span>[<span class="ruby-value">5</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1416
+ 258: <span class="ruby-keyword kw">end</span>
1417
+ 259: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-value">6</span>, <span class="ruby-value">4</span>)
1418
+ 260: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">reverse!</span>
1419
+ 261: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">t</span>))
1420
+ 262: <span class="ruby-keyword kw">end</span>
1421
+ </pre>
1422
+ </div>
1423
+
1424
+ </div>
1425
+ </div>
1426
+
1427
+
1428
+ <div id="method-M000885" class="method-detail">
1429
+ <a name="M000885"></a>
1430
+
1431
+ <div class="method-heading">
1432
+
1433
+ <a href="#M000885" class="method-signature">
1434
+
1435
+ <span class="method-name">sameTimeNextWeek</span><span class="method-args">()</span>
1436
+
1437
+ </a>
1438
+
1439
+ </div>
1440
+
1441
+ <div class="method-description">
1442
+
1443
+ <p>
1444
+ Return a new time that is 1 week later than time but at the same time of
1445
+ day.
1446
+ </p>
1447
+
1448
+ <p><a class="source-toggle" href="#"
1449
+ onclick="toggleCode('M000885-source');return false;">[Source]</a></p>
1450
+ <div class="method-source-code" id="M000885-source">
1451
+ <pre>
1452
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 225</span>
1453
+ 225: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextWeek</span>
1454
+ 226: <span class="ruby-identifier">delta</span> = [ <span class="ruby-value">0</span>, <span class="ruby-value">-1</span>, <span class="ruby-value">1</span> ]
1455
+ 227: <span class="ruby-identifier">localT1</span> = <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1456
+ 228: <span class="ruby-identifier">delta</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
1457
+ 229: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span> <span class="ruby-operator">+</span> (<span class="ruby-value">7</span> <span class="ruby-operator">*</span> <span class="ruby-value">24</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">d</span>) <span class="ruby-operator">*</span> <span class="ruby-value">60</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span>
1458
+ 230: <span class="ruby-identifier">localT2</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1459
+ 231: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">localT1</span>[<span class="ruby-value">0</span>, <span class="ruby-value">3</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">localT2</span>[<span class="ruby-value">0</span>, <span class="ruby-value">3</span>]
1460
+ 232: <span class="ruby-keyword kw">end</span>
1461
+ 233: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Algorithm is broken for #{@time}&quot;</span>
1462
+ 234: <span class="ruby-keyword kw">end</span>
1463
+ </pre>
1464
+ </div>
1465
+
1466
+ </div>
1467
+ </div>
1468
+
1469
+
1470
+ <div id="method-M000888" class="method-detail">
1471
+ <a name="M000888"></a>
1472
+
1473
+ <div class="method-heading">
1474
+
1475
+ <a href="#M000888" class="method-signature">
1476
+
1477
+ <span class="method-name">sameTimeNextYear</span><span class="method-args">()</span>
1478
+
1479
+ </a>
1480
+
1481
+ </div>
1482
+
1483
+ <div class="method-description">
1484
+
1485
+ <p>
1486
+ Return a new time that is 1 year later than time but at the same time of
1487
+ day.
1488
+ </p>
1489
+
1490
+ <p><a class="source-toggle" href="#"
1491
+ onclick="toggleCode('M000888-source');return false;">[Source]</a></p>
1492
+ <div class="method-source-code" id="M000888-source">
1493
+ <pre>
1494
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 266</span>
1495
+ 266: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sameTimeNextYear</span>
1496
+ 267: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">to_a</span>
1497
+ 268: <span class="ruby-identifier">t</span>[<span class="ruby-value">5</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1498
+ 269: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-value">6</span>, <span class="ruby-value">4</span>)
1499
+ 270: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">reverse!</span>
1500
+ 271: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">t</span>))
1501
+ 272: <span class="ruby-keyword kw">end</span>
1502
+ </pre>
1503
+ </div>
1504
+
1505
+ </div>
1506
+ </div>
1507
+
1508
+
1509
+ <div id="method-M000865" class="method-detail">
1510
+ <a name="M000865"></a>
1511
+
1512
+ <div class="method-heading">
1513
+
1514
+ <a href="#M000865" class="method-signature">
1515
+
1516
+ <span class="method-name">secondsOfDay</span><span class="method-args">(tz = nil)</span>
1517
+
1518
+ </a>
1519
+
1520
+ </div>
1521
+
1522
+ <div class="method-description">
1523
+
1524
+ <p>
1525
+ Returns the total number of seconds of the day. The time is assumed to be
1526
+ in the time zone specified by <em>tz</em>.
1527
+ </p>
1528
+
1529
+ <p><a class="source-toggle" href="#"
1530
+ onclick="toggleCode('M000865-source');return false;">[Source]</a></p>
1531
+ <div class="method-source-code" id="M000865-source">
1532
+ <pre>
1533
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 70</span>
1534
+ 70: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">secondsOfDay</span>(<span class="ruby-identifier">tz</span> = <span class="ruby-keyword kw">nil</span>)
1535
+ 71: <span class="ruby-comment cmt"># TODO: Add timezone support</span>
1536
+ 72: (<span class="ruby-ivar">@time</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">gmt_offset</span>) <span class="ruby-operator">%</span> (<span class="ruby-value">60</span> <span class="ruby-operator">*</span> <span class="ruby-value">60</span> <span class="ruby-operator">*</span> <span class="ruby-value">24</span>)
1537
+ 73: <span class="ruby-keyword kw">end</span>
1538
+ </pre>
1539
+ </div>
1540
+
1541
+ </div>
1542
+ </div>
1543
+
1544
+
1545
+ <div id="method-M000897" class="method-detail">
1546
+ <a name="M000897"></a>
1547
+
1548
+ <div class="method-heading">
1549
+
1550
+ <a href="#M000897" class="method-signature">
1551
+
1552
+ <span class="method-name">shortMonthName</span><span class="method-args">()</span>
1553
+
1554
+ </a>
1555
+
1556
+ </div>
1557
+
1558
+ <div class="method-description">
1559
+
1560
+ <p>
1561
+ Return the abbreviated month name.
1562
+ </p>
1563
+
1564
+ <p><a class="source-toggle" href="#"
1565
+ onclick="toggleCode('M000897-source');return false;">[Source]</a></p>
1566
+ <div class="method-source-code" id="M000897-source">
1567
+ <pre>
1568
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 328</span>
1569
+ 328: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shortMonthName</span>
1570
+ 329: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%b'</span>)
1571
+ 330: <span class="ruby-keyword kw">end</span>
1572
+ </pre>
1573
+ </div>
1574
+
1575
+ </div>
1576
+ </div>
1577
+
1578
+
1579
+ <div id="method-M000896" class="method-detail">
1580
+ <a name="M000896"></a>
1581
+
1582
+ <div class="method-heading">
1583
+
1584
+ <a href="#M000896" class="method-signature">
1585
+
1586
+ <span class="method-name">to_i</span><span class="method-args">()</span>
1587
+
1588
+ </a>
1589
+
1590
+ </div>
1591
+
1592
+ <div class="method-description">
1593
+
1594
+ <p>
1595
+ Return the seconds since Epoch.
1596
+ </p>
1597
+
1598
+ <p><a class="source-toggle" href="#"
1599
+ onclick="toggleCode('M000896-source');return false;">[Source]</a></p>
1600
+ <div class="method-source-code" id="M000896-source">
1601
+ <pre>
1602
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 323</span>
1603
+ 323: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_i</span>
1604
+ 324: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">to_i</span>
1605
+ 325: <span class="ruby-keyword kw">end</span>
1606
+ </pre>
1607
+ </div>
1608
+
1609
+ </div>
1610
+ </div>
1611
+
1612
+
1613
+ <div id="method-M000895" class="method-detail">
1614
+ <a name="M000895"></a>
1615
+
1616
+ <div class="method-heading">
1617
+
1618
+ <a href="#M000895" class="method-signature">
1619
+
1620
+ <span class="method-name">to_s</span><span class="method-args">(format = nil)</span>
1621
+
1622
+ </a>
1623
+
1624
+ </div>
1625
+
1626
+ <div class="method-description">
1627
+
1628
+ <p>
1629
+ This function is just a wrapper around Time.strftime(). In case @time is
1630
+ nil, it returns &#8216;unkown&#8217;.
1631
+ </p>
1632
+
1633
+ <p><a class="source-toggle" href="#"
1634
+ onclick="toggleCode('M000895-source');return false;">[Source]</a></p>
1635
+ <div class="method-source-code" id="M000895-source">
1636
+ <pre>
1637
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 313</span>
1638
+ 313: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>(<span class="ruby-identifier">format</span> = <span class="ruby-keyword kw">nil</span>)
1639
+ 314: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'unknown'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">nil?</span>
1640
+ 315: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">format</span>.<span class="ruby-identifier">nil?</span>
1641
+ 316: <span class="ruby-identifier">format</span> = <span class="ruby-value str">'%Y-%m-%d-%H:%M'</span> <span class="ruby-operator">+</span> (<span class="ruby-ivar">@time</span>.<span class="ruby-identifier">sec</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-value str">':%s'</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'-%z'</span>
1642
+ 317: <span class="ruby-keyword kw">end</span>
1643
+ 318: <span class="ruby-comment cmt"># Always report values in local timezone</span>
1644
+ 319: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">clone</span>.<span class="ruby-identifier">localtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">format</span>)
1645
+ 320: <span class="ruby-keyword kw">end</span>
1646
+ </pre>
1647
+ </div>
1648
+
1649
+ </div>
1650
+ </div>
1651
+
1652
+
1653
+ <div id="method-M000875" class="method-detail">
1654
+ <a name="M000875"></a>
1655
+
1656
+ <div class="method-heading">
1657
+
1658
+ <a href="#M000875" class="method-signature">
1659
+
1660
+ <span class="method-name">upto</span><span class="method-args">(endDate, step = 1) {|TjTime.new(t)| ...}</span>
1661
+
1662
+ </a>
1663
+
1664
+ </div>
1665
+
1666
+ <div class="method-description">
1667
+
1668
+ <p>
1669
+ Iterator that executes the block until time has reached <em>endDate</em>
1670
+ increasing time by <em>step</em> on each iteration.
1671
+ </p>
1672
+
1673
+ <p><a class="source-toggle" href="#"
1674
+ onclick="toggleCode('M000875-source');return false;">[Source]</a></p>
1675
+ <div class="method-source-code" id="M000875-source">
1676
+ <pre>
1677
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 128</span>
1678
+ 128: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upto</span>(<span class="ruby-identifier">endDate</span>, <span class="ruby-identifier">step</span> = <span class="ruby-value">1</span>)
1679
+ 129: <span class="ruby-identifier">t</span> = <span class="ruby-ivar">@time</span>
1680
+ 130: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">endDate</span>.<span class="ruby-identifier">time</span>
1681
+ 131: <span class="ruby-keyword kw">yield</span>(<span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">t</span>))
1682
+ 132: <span class="ruby-identifier">t</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">step</span>
1683
+ 133: <span class="ruby-keyword kw">end</span>
1684
+ 134: <span class="ruby-keyword kw">end</span>
1685
+ </pre>
1686
+ </div>
1687
+
1688
+ </div>
1689
+ </div>
1690
+
1691
+
1692
+ <div id="method-M000899" class="method-detail">
1693
+ <a name="M000899"></a>
1694
+
1695
+ <div class="method-heading">
1696
+
1697
+ <a href="#M000899" class="method-signature">
1698
+
1699
+ <span class="method-name">week</span><span class="method-args">(weekStartsMonday)</span>
1700
+
1701
+ </a>
1702
+
1703
+ </div>
1704
+
1705
+ <div class="method-description">
1706
+
1707
+ <p>
1708
+ Return the week number. <em>weekStartsMonday</em> specifies wheter the
1709
+ counting should be for weeks starting Mondays or Sundays.
1710
+ </p>
1711
+
1712
+ <p><a class="source-toggle" href="#"
1713
+ onclick="toggleCode('M000899-source');return false;">[Source]</a></p>
1714
+ <div class="method-source-code" id="M000899-source">
1715
+ <pre>
1716
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 339</span>
1717
+ 339: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">week</span>(<span class="ruby-identifier">weekStartsMonday</span>)
1718
+ 340: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">weekStartsMonday</span> <span class="ruby-value">? </span><span class="ruby-value str">'%W'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'%U'</span>)
1719
+ 341: <span class="ruby-keyword kw">end</span>
1720
+ </pre>
1721
+ </div>
1722
+
1723
+ </div>
1724
+ </div>
1725
+
1726
+
1727
+ <div id="method-M000901" class="method-detail">
1728
+ <a name="M000901"></a>
1729
+
1730
+ <div class="method-heading">
1731
+
1732
+ <a href="#M000901" class="method-signature">
1733
+
1734
+ <span class="method-name">weekdayAndDate</span><span class="method-args">()</span>
1735
+
1736
+ </a>
1737
+
1738
+ </div>
1739
+
1740
+ <div class="method-description">
1741
+
1742
+ <p>
1743
+ Return the abbreviated weekday and the full date. E. g. &#8216;Sat
1744
+ 2007-11-03&#8217;.
1745
+ </p>
1746
+
1747
+ <p><a class="source-toggle" href="#"
1748
+ onclick="toggleCode('M000901-source');return false;">[Source]</a></p>
1749
+ <div class="method-source-code" id="M000901-source">
1750
+ <pre>
1751
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 349</span>
1752
+ 349: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weekdayAndDate</span>
1753
+ 350: <span class="ruby-ivar">@time</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%A %Y-%m-%d'</span>)
1754
+ 351: <span class="ruby-keyword kw">end</span>
1755
+ </pre>
1756
+ </div>
1757
+
1758
+ </div>
1759
+ </div>
1760
+
1761
+
1762
+ <div id="method-M000891" class="method-detail">
1763
+ <a name="M000891"></a>
1764
+
1765
+ <div class="method-heading">
1766
+
1767
+ <a href="#M000891" class="method-signature">
1768
+
1769
+ <span class="method-name">weeksTo</span><span class="method-args">(date)</span>
1770
+
1771
+ </a>
1772
+
1773
+ </div>
1774
+
1775
+ <div class="method-description">
1776
+
1777
+ <p>
1778
+ Return the number of weeks between this time and <em>date</em>. The result
1779
+ is always rounded up.
1780
+ </p>
1781
+
1782
+ <p><a class="source-toggle" href="#"
1783
+ onclick="toggleCode('M000891-source');return false;">[Source]</a></p>
1784
+ <div class="method-source-code" id="M000891-source">
1785
+ <pre>
1786
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 289</span>
1787
+ 289: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weeksTo</span>(<span class="ruby-identifier">date</span>)
1788
+ 290: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">:sameTimeNextWeek</span>)
1789
+ 291: <span class="ruby-keyword kw">end</span>
1790
+ </pre>
1791
+ </div>
1792
+
1793
+ </div>
1794
+ </div>
1795
+
1796
+
1797
+ <div id="method-M000894" class="method-detail">
1798
+ <a name="M000894"></a>
1799
+
1800
+ <div class="method-heading">
1801
+
1802
+ <a href="#M000894" class="method-signature">
1803
+
1804
+ <span class="method-name">yearsTo</span><span class="method-args">(date)</span>
1805
+
1806
+ </a>
1807
+
1808
+ </div>
1809
+
1810
+ <div class="method-description">
1811
+
1812
+ <p>
1813
+ Return the number of years between this time and <em>date</em>. The result
1814
+ is always rounded up.
1815
+ </p>
1816
+
1817
+ <p><a class="source-toggle" href="#"
1818
+ onclick="toggleCode('M000894-source');return false;">[Source]</a></p>
1819
+ <div class="method-source-code" id="M000894-source">
1820
+ <pre>
1821
+ <span class="ruby-comment cmt"># File lib/TjTime.rb, line 307</span>
1822
+ 307: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">yearsTo</span>(<span class="ruby-identifier">date</span>)
1823
+ 308: <span class="ruby-identifier">countIntervals</span>(<span class="ruby-identifier">date</span>, <span class="ruby-identifier">:sameTimeNextYear</span>)
1824
+ 309: <span class="ruby-keyword kw">end</span>
1825
+ </pre>
1826
+ </div>
1827
+
1828
+ </div>
1829
+ </div>
1830
+
1831
+
1832
+
1833
+ </div>
1834
+
1835
+
1836
+
1837
+
1838
+ </div>
1839
+
1840
+ <div id="validator-badges">
1841
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1842
+ </div>
1843
+
1844
+ </body>
1845
+ </html>