facets 2.4.5 → 2.5.0

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 (763) hide show
  1. data/AUTHORS +6 -2
  2. data/CHANGES +46 -52
  3. data/MANIFEST +680 -642
  4. data/README +3 -10
  5. data/RELEASE +82 -36
  6. data/VERSION +1 -1
  7. data/doc/archive/{changelog-0.rdoc → CHANGELOG-0.10.30} +0 -0
  8. data/doc/archive/{changelog-1.rdoc → CHANGELOG-1.8.54} +0 -0
  9. data/doc/archive/CHANGELOG-2.4.5 +1654 -0
  10. data/doc/{news → archive}/RELEASE-2.0.5 +0 -0
  11. data/doc/{news → archive}/RELEASE-2.1.0 +0 -0
  12. data/doc/{news → archive}/RELEASE-2.1.1 +0 -0
  13. data/doc/{news → archive}/RELEASE-2.1.2 +0 -0
  14. data/doc/{news → archive}/RELEASE-2.1.3 +0 -0
  15. data/doc/{news → archive}/RELEASE-2.2.0 +0 -0
  16. data/doc/{news → archive}/RELEASE-2.2.1 +0 -0
  17. data/doc/{news → archive}/RELEASE-2.3.0 +0 -0
  18. data/doc/{news → archive}/RELEASE-2.4.0 +0 -0
  19. data/doc/{news → archive}/RELEASE-2.4.1 +0 -0
  20. data/doc/{news → archive}/RELEASE-2.4.2 +0 -0
  21. data/doc/{news → archive}/RELEASE-2.4.3 +0 -0
  22. data/doc/{news → archive}/RELEASE-2.4.4 +0 -0
  23. data/doc/archive/RELEASE-2.4.5 +37 -0
  24. data/doc/{book/history.rdoc → guide/notes.rd} +62 -4
  25. data/doc/log/basic_stats/index.html +39 -0
  26. data/doc/log/bstats/stats.html +39 -0
  27. data/doc/log/changelog.html +141 -0
  28. data/doc/log/changelog.txt +1609 -0
  29. data/doc/log/stats.html +25 -0
  30. data/doc/log/testlog.txt +278 -0
  31. data/doc/rdoc/core/classes/Array.html +158 -147
  32. data/doc/rdoc/core/classes/Binding.html +54 -54
  33. data/doc/rdoc/core/classes/Class.html +59 -57
  34. data/doc/rdoc/core/classes/Comparable.html +67 -76
  35. data/doc/rdoc/core/classes/Dir.html +47 -47
  36. data/doc/rdoc/core/classes/Enumerable.html +232 -192
  37. data/doc/rdoc/core/classes/Exception.html +15 -16
  38. data/doc/rdoc/core/classes/File.html +128 -85
  39. data/doc/rdoc/core/classes/FileTest.html +7 -7
  40. data/doc/rdoc/core/classes/Float.html +16 -14
  41. data/doc/rdoc/core/classes/Functor.html +12 -12
  42. data/doc/rdoc/core/classes/Hash.html +490 -319
  43. data/doc/rdoc/core/classes/Indexable.html +110 -110
  44. data/doc/rdoc/core/classes/InstanceVariables.html +44 -44
  45. data/doc/rdoc/core/classes/Integer.html +122 -116
  46. data/doc/rdoc/core/classes/Kernel.html +415 -401
  47. data/doc/rdoc/core/classes/Lazy/Promise.html +1 -1
  48. data/doc/rdoc/core/classes/MatchData.html +24 -21
  49. data/doc/rdoc/core/classes/Module.html +230 -229
  50. data/doc/rdoc/core/classes/NilClass.html +28 -26
  51. data/doc/rdoc/core/classes/Numeric.html +30 -30
  52. data/doc/rdoc/core/classes/Object.html +8 -8
  53. data/doc/rdoc/core/classes/{Friend.html → ObjectSpace.html} +25 -48
  54. data/doc/rdoc/core/classes/Proc.html +29 -27
  55. data/doc/rdoc/core/classes/Range.html +17 -15
  56. data/doc/rdoc/core/classes/Regexp.html +17 -17
  57. data/doc/rdoc/core/classes/Stackable.html +31 -31
  58. data/doc/rdoc/core/classes/String.html +445 -401
  59. data/doc/rdoc/{more/classes/CLI/NoOptionError.html → core/classes/Struct.html} +24 -21
  60. data/doc/rdoc/core/classes/Symbol.html +73 -65
  61. data/doc/rdoc/core/classes/Time.html +87 -86
  62. data/doc/rdoc/core/classes/TrueClass.html +8 -8
  63. data/doc/rdoc/core/classes/UnboundMethod.html +17 -16
  64. data/doc/rdoc/core/created.rid +1 -1
  65. data/doc/rdoc/core/files/README.html +10 -16
  66. data/doc/rdoc/core/files/lib/core/facets/array/combination_rb.html +1 -1
  67. data/doc/rdoc/core/files/lib/core/facets/array/conjoin_rb.html +1 -1
  68. data/doc/rdoc/core/files/lib/core/facets/array/delete_rb.html +10 -1
  69. data/doc/rdoc/core/files/lib/core/facets/array/delete_unless_rb.html +92 -0
  70. data/doc/rdoc/core/files/lib/core/facets/array/delete_values_rb.html +92 -0
  71. data/doc/rdoc/core/files/lib/core/facets/array/index_rb.html +1 -1
  72. data/doc/rdoc/core/files/lib/core/facets/array/indexable_rb.html +1 -1
  73. data/doc/rdoc/core/files/lib/core/facets/array/merge_rb.html +1 -1
  74. data/doc/rdoc/core/files/lib/core/facets/array/only_rb.html +1 -1
  75. data/doc/rdoc/core/files/lib/core/facets/array/pad_rb.html +1 -1
  76. data/doc/rdoc/core/files/lib/core/facets/array/permutation_rb.html +1 -1
  77. data/doc/rdoc/core/files/lib/core/facets/array/product_rb.html +1 -1
  78. data/doc/rdoc/core/files/lib/core/facets/array/rotate_rb.html +1 -1
  79. data/doc/rdoc/core/files/lib/core/facets/array/select_rb.html +1 -1
  80. data/doc/rdoc/core/files/lib/core/facets/array/splice_rb.html +1 -1
  81. data/doc/rdoc/core/files/lib/core/facets/array/stackable_rb.html +1 -1
  82. data/doc/rdoc/core/files/lib/core/facets/binding/caller_rb.html +2 -2
  83. data/doc/rdoc/core/files/lib/core/facets/binding/callstack_rb.html +96 -0
  84. data/doc/rdoc/core/files/lib/core/facets/binding/defined_rb.html +1 -1
  85. data/doc/rdoc/core/files/lib/core/facets/bitmask_rb.html +1 -1
  86. data/doc/rdoc/core/files/lib/core/facets/class/cattr_rb.html +1 -1
  87. data/doc/rdoc/core/files/lib/core/facets/class/descendents_rb.html +1 -1
  88. data/doc/rdoc/core/files/lib/core/facets/class/prepend_rb.html +1 -1
  89. data/doc/rdoc/core/files/lib/core/facets/class/to_proc_rb.html +1 -1
  90. data/doc/rdoc/core/files/lib/core/facets/comparable/at_least_rb.html +96 -0
  91. data/doc/rdoc/core/files/lib/core/facets/comparable/at_most_rb.html +96 -0
  92. data/doc/rdoc/core/files/lib/core/facets/comparable/bound_rb.html +5 -1
  93. data/doc/rdoc/core/files/lib/core/facets/comparable/cap_rb.html +92 -0
  94. data/doc/rdoc/core/files/lib/core/facets/comparable/clip_rb.html +92 -0
  95. data/doc/rdoc/core/files/lib/core/facets/comparable/cmp_rb.html +1 -1
  96. data/doc/rdoc/core/files/lib/core/facets/comparable/comparable_rb.html +1 -1
  97. data/doc/rdoc/core/files/lib/core/facets/dir/ascend_rb.html +1 -1
  98. data/doc/rdoc/core/files/lib/core/facets/dir/multiglob_rb.html +1 -1
  99. data/doc/rdoc/core/files/lib/core/facets/dir/recurse_rb.html +1 -1
  100. data/doc/rdoc/core/files/lib/core/facets/enumerable/accumulate_rb.html +1 -1
  101. data/doc/rdoc/core/files/lib/core/facets/enumerable/cluster_by_rb.html +1 -1
  102. data/doc/rdoc/core/files/lib/core/facets/enumerable/collect_rb.html +1 -1
  103. data/doc/rdoc/core/files/lib/core/facets/enumerable/commonality_rb.html +1 -1
  104. data/doc/rdoc/core/files/lib/core/facets/enumerable/count_rb.html +1 -1
  105. data/doc/rdoc/core/files/lib/core/facets/enumerable/divide_rb.html +1 -1
  106. data/doc/rdoc/core/files/lib/core/facets/enumerable/duplicates_rb.html +1 -1
  107. data/doc/rdoc/core/files/lib/core/facets/enumerable/each_by_rb.html +1 -1
  108. data/doc/rdoc/core/files/lib/core/facets/enumerable/entropy_rb.html +1 -1
  109. data/doc/rdoc/core/files/lib/core/facets/enumerable/frequency_rb.html +1 -1
  110. data/doc/rdoc/core/files/lib/core/facets/enumerable/graph_rb.html +96 -0
  111. data/doc/rdoc/core/files/lib/core/facets/enumerable/group_by_rb.html +1 -1
  112. data/doc/rdoc/core/files/lib/core/facets/enumerable/inject_rb.html +1 -1
  113. data/doc/rdoc/core/files/lib/core/facets/enumerable/map_send_rb.html +1 -1
  114. data/doc/rdoc/core/files/lib/core/facets/enumerable/mash_rb.html +1 -1
  115. data/doc/rdoc/core/files/lib/core/facets/enumerable/mode_rb.html +1 -1
  116. data/doc/rdoc/core/files/lib/core/facets/enumerable/modulate_rb.html +1 -1
  117. data/doc/rdoc/core/files/lib/core/facets/enumerable/none_rb.html +1 -1
  118. data/doc/rdoc/core/files/lib/core/facets/enumerable/occur_rb.html +1 -1
  119. data/doc/rdoc/core/files/lib/core/facets/enumerable/one_rb.html +1 -1
  120. data/doc/rdoc/core/files/lib/core/facets/enumerable/probability_rb.html +1 -1
  121. data/doc/rdoc/core/files/lib/core/facets/enumerable/sum_rb.html +1 -1
  122. data/doc/rdoc/core/files/lib/core/facets/enumerable/take_rb.html +92 -0
  123. data/doc/rdoc/core/files/lib/core/facets/enumerable/uniq_by_rb.html +1 -1
  124. data/doc/rdoc/core/files/lib/core/facets/exception/detail_rb.html +1 -1
  125. data/doc/rdoc/core/files/lib/core/facets/exception/suppress_rb.html +1 -1
  126. data/doc/rdoc/core/files/lib/core/facets/file/append_rb.html +1 -1
  127. data/doc/rdoc/core/files/lib/core/facets/file/create_rb.html +1 -1
  128. data/doc/rdoc/core/files/lib/core/facets/file/null_rb.html +1 -1
  129. data/doc/rdoc/core/files/lib/core/facets/file/read_rb.html +1 -1
  130. data/doc/rdoc/core/files/lib/core/facets/file/rewrite_rb.html +1 -1
  131. data/doc/rdoc/core/files/lib/core/facets/file/rootname_rb.html +1 -1
  132. data/doc/rdoc/core/files/lib/core/facets/file/split_all_rb.html +92 -0
  133. data/doc/rdoc/core/files/lib/core/facets/file/split_root_rb.html +1 -1
  134. data/doc/rdoc/core/files/lib/core/facets/file/write_rb.html +1 -1
  135. data/doc/rdoc/core/files/lib/core/facets/file/writelines_rb.html +1 -1
  136. data/doc/rdoc/core/files/lib/core/facets/filetest/root_rb.html +1 -1
  137. data/doc/rdoc/core/files/lib/core/facets/hash/alias_rb.html +1 -1
  138. data/doc/rdoc/core/files/lib/core/facets/hash/autonew_rb.html +1 -1
  139. data/doc/rdoc/core/files/lib/core/facets/hash/collate_rb.html +1 -1
  140. data/doc/rdoc/core/files/lib/core/facets/hash/delete_rb.html +1 -1
  141. data/doc/rdoc/core/files/lib/core/facets/hash/insert_rb.html +1 -1
  142. data/doc/rdoc/core/files/lib/core/facets/hash/inverse_rb.html +1 -1
  143. data/doc/rdoc/core/files/lib/core/facets/hash/join_rb.html +1 -1
  144. data/doc/rdoc/core/files/lib/core/facets/hash/keys_rb.html +1 -1
  145. data/doc/rdoc/core/files/lib/core/facets/hash/op_add_rb.html +1 -1
  146. data/doc/rdoc/core/files/lib/core/facets/hash/op_and_rb.html +1 -1
  147. data/doc/rdoc/core/files/lib/core/facets/hash/op_mul_rb.html +1 -1
  148. data/doc/rdoc/core/files/lib/core/facets/hash/op_or_rb.html +1 -1
  149. data/doc/rdoc/core/files/lib/core/facets/hash/op_push_rb.html +1 -1
  150. data/doc/rdoc/core/files/lib/core/facets/hash/op_sub_rb.html +1 -1
  151. data/doc/rdoc/core/files/lib/core/facets/hash/rekey_rb.html +1 -1
  152. data/doc/rdoc/core/files/lib/core/facets/hash/replace_each_rb.html +92 -0
  153. data/doc/rdoc/core/files/lib/core/facets/hash/select_rb.html +1 -1
  154. data/doc/rdoc/{more/files/lib/more → core/files/lib/core}/facets/hash/stringify_keys_rb.html +1 -1
  155. data/doc/rdoc/{more/files/lib/more → core/files/lib/core}/facets/hash/symbolize_keys_rb.html +2 -2
  156. data/doc/rdoc/core/files/lib/core/facets/hash/to_options_rb.html +96 -0
  157. data/doc/rdoc/core/files/lib/core/facets/hash/to_struct_rb.html +1 -1
  158. data/doc/rdoc/core/files/lib/core/facets/hash/traverse_rb.html +1 -1
  159. data/doc/rdoc/core/files/lib/core/facets/hash/update_each_rb.html +92 -0
  160. data/doc/rdoc/core/files/lib/core/facets/hash/update_keys_rb.html +92 -0
  161. data/doc/rdoc/core/files/lib/core/facets/hash/update_rb.html +8 -1
  162. data/doc/rdoc/core/files/lib/core/facets/hash/update_values_rb.html +92 -0
  163. data/doc/rdoc/core/files/lib/core/facets/hash/weave_rb.html +1 -1
  164. data/doc/rdoc/core/files/lib/core/facets/hash/zipnew_rb.html +1 -5
  165. data/doc/rdoc/core/files/lib/core/facets/integer/factorial_rb.html +1 -1
  166. data/doc/rdoc/core/files/lib/core/facets/integer/multiple_rb.html +1 -1
  167. data/doc/rdoc/core/files/lib/core/facets/integer/odd_rb.html +1 -1
  168. data/doc/rdoc/core/files/lib/core/facets/kernel/__here___rb.html +92 -0
  169. data/doc/rdoc/core/files/lib/core/facets/kernel/as_rb.html +1 -1
  170. data/doc/rdoc/core/files/lib/core/facets/kernel/ask_rb.html +1 -1
  171. data/doc/rdoc/core/files/lib/core/facets/kernel/attr_singleton_rb.html +1 -1
  172. data/doc/rdoc/core/files/lib/core/facets/kernel/callstack_rb.html +92 -0
  173. data/doc/rdoc/core/files/lib/core/facets/kernel/complete_rb.html +1 -1
  174. data/doc/rdoc/core/files/lib/core/facets/kernel/constant_rb.html +1 -1
  175. data/doc/rdoc/core/files/lib/core/facets/kernel/d_rb.html +1 -1
  176. data/doc/rdoc/core/files/lib/core/facets/kernel/demo_rb.html +1 -1
  177. data/doc/rdoc/core/files/lib/core/facets/kernel/ergo_rb.html +1 -1
  178. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_class_rb.html +1 -1
  179. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_variables_rb.html +1 -1
  180. data/doc/rdoc/core/files/lib/core/facets/kernel/not_nil_rb.html +1 -1
  181. data/doc/rdoc/core/files/lib/core/facets/kernel/object_send_rb.html +1 -1
  182. data/doc/rdoc/core/files/lib/core/facets/kernel/p_rb.html +1 -1
  183. data/doc/rdoc/core/files/lib/core/facets/kernel/populate_rb.html +1 -1
  184. data/doc/rdoc/core/files/lib/core/facets/kernel/qua_class_rb.html +1 -1
  185. data/doc/rdoc/core/files/lib/core/facets/kernel/resc_rb.html +1 -1
  186. data/doc/rdoc/core/files/lib/core/facets/kernel/respond_rb.html +1 -1
  187. data/doc/rdoc/core/files/lib/core/facets/kernel/returning_rb.html +1 -1
  188. data/doc/rdoc/core/files/lib/core/facets/kernel/silence_rb.html +1 -1
  189. data/doc/rdoc/core/files/lib/core/facets/kernel/try_rb.html +1 -1
  190. data/doc/rdoc/core/files/lib/core/facets/matchdata/match_rb.html +1 -1
  191. data/doc/rdoc/core/files/lib/core/facets/matchdata/matchset_rb.html +1 -1
  192. data/doc/rdoc/core/files/lib/core/facets/metaid_rb.html +1 -1
  193. data/doc/rdoc/core/files/lib/core/facets/module/abstract_rb.html +1 -1
  194. data/doc/rdoc/core/files/lib/core/facets/module/alias_accessor_rb.html +1 -1
  195. data/doc/rdoc/core/files/lib/core/facets/module/alias_method_chain_rb.html +1 -1
  196. data/doc/rdoc/core/files/lib/core/facets/module/alias_module_function_rb.html +1 -1
  197. data/doc/rdoc/core/files/lib/core/facets/module/ancestor_rb.html +1 -1
  198. data/doc/rdoc/core/files/lib/core/facets/module/basename_rb.html +1 -1
  199. data/doc/rdoc/core/files/lib/core/facets/module/conflict_rb.html +1 -1
  200. data/doc/rdoc/core/files/lib/core/facets/module/include_function_module_rb.html +1 -1
  201. data/doc/rdoc/core/files/lib/core/facets/module/instance_methods_rb.html +1 -1
  202. data/doc/rdoc/core/files/lib/core/facets/module/is_rb.html +1 -1
  203. data/doc/rdoc/core/files/lib/core/facets/module/methodize_rb.html +1 -1
  204. data/doc/rdoc/core/files/lib/core/facets/module/modspace_rb.html +1 -1
  205. data/doc/rdoc/core/files/lib/core/facets/module/module_load_rb.html +1 -1
  206. data/doc/rdoc/core/files/lib/core/facets/module/nesting_rb.html +1 -1
  207. data/doc/rdoc/core/files/lib/core/facets/module/op_rb.html +1 -1
  208. data/doc/rdoc/core/files/lib/core/facets/module/prepend_rb.html +1 -1
  209. data/doc/rdoc/core/files/lib/core/facets/module/redefine_method_rb.html +1 -1
  210. data/doc/rdoc/core/files/lib/core/facets/module/rename_method_rb.html +1 -1
  211. data/doc/rdoc/core/files/lib/core/facets/module/revise_rb.html +1 -1
  212. data/doc/rdoc/core/files/lib/core/facets/module/spacename_rb.html +1 -1
  213. data/doc/rdoc/core/files/lib/core/facets/module/wrap_method_rb.html +1 -1
  214. data/doc/rdoc/core/files/lib/core/facets/nilclass/to_f_rb.html +1 -1
  215. data/doc/rdoc/core/files/lib/core/facets/numeric/approx_rb.html +1 -1
  216. data/doc/rdoc/core/files/lib/core/facets/numeric/distance_rb.html +1 -1
  217. data/doc/rdoc/core/files/lib/core/facets/numeric/round_rb.html +1 -1
  218. data/doc/rdoc/core/files/lib/core/facets/objectspace/classes_rb.html +92 -0
  219. data/doc/rdoc/{more/files/lib/more/facets/dictionarymatcher_rb.html → core/files/lib/core/facets/objectspace_rb.html} +4 -4
  220. data/doc/rdoc/core/files/lib/core/facets/proc/bind_rb.html +1 -1
  221. data/doc/rdoc/core/files/lib/core/facets/proc/compose_rb.html +1 -1
  222. data/doc/rdoc/core/files/lib/core/facets/proc/to_method_rb.html +1 -1
  223. data/doc/rdoc/core/files/lib/core/facets/proc/update_rb.html +1 -1
  224. data/doc/rdoc/core/files/lib/core/facets/range/combine_rb.html +1 -1
  225. data/doc/rdoc/core/files/lib/core/facets/range/overlap_rb.html +1 -1
  226. data/doc/rdoc/core/files/lib/core/facets/range/within_rb.html +1 -1
  227. data/doc/rdoc/core/files/lib/core/facets/regexp/arity_rb.html +1 -1
  228. data/doc/rdoc/core/files/lib/core/facets/string/align_rb.html +1 -1
  229. data/doc/rdoc/core/files/lib/core/facets/string/bracket_rb.html +1 -1
  230. data/doc/rdoc/core/files/lib/core/facets/string/camelcase_rb.html +1 -1
  231. data/doc/rdoc/core/files/lib/core/facets/string/capitalized_rb.html +1 -1
  232. data/doc/rdoc/core/files/lib/core/facets/string/chars_rb.html +1 -1
  233. data/doc/rdoc/core/files/lib/core/facets/string/chomp_rb.html +1 -1
  234. data/doc/rdoc/core/files/lib/core/facets/string/cleave_rb.html +1 -1
  235. data/doc/rdoc/core/files/lib/core/facets/string/compress_lines_rb.html +92 -0
  236. data/doc/rdoc/core/files/lib/core/facets/string/contains_rb.html +92 -0
  237. data/doc/rdoc/core/files/lib/core/facets/string/divide_rb.html +1 -1
  238. data/doc/rdoc/core/files/lib/core/facets/string/expand_tab_rb.html +92 -0
  239. data/doc/rdoc/core/files/lib/core/facets/string/fold_rb.html +1 -1
  240. data/doc/rdoc/core/files/lib/core/facets/string/indent_rb.html +92 -0
  241. data/doc/rdoc/core/files/lib/core/facets/string/interpolate_rb.html +1 -1
  242. data/doc/rdoc/core/files/lib/core/facets/string/line_wrap_rb.html +1 -1
  243. data/doc/rdoc/core/files/lib/core/facets/string/lines_rb.html +1 -1
  244. data/doc/rdoc/core/files/lib/core/facets/string/margin_rb.html +92 -0
  245. data/doc/rdoc/core/files/lib/core/facets/string/methodize_rb.html +1 -1
  246. data/doc/rdoc/core/files/lib/core/facets/string/mscan_rb.html +1 -1
  247. data/doc/rdoc/core/files/lib/core/facets/string/natcmp_rb.html +1 -1
  248. data/doc/rdoc/core/files/lib/core/facets/string/nchar_rb.html +1 -1
  249. data/doc/rdoc/core/files/lib/core/facets/string/op_sub_rb.html +1 -1
  250. data/doc/rdoc/core/files/lib/core/facets/string/outdent_rb.html +96 -0
  251. data/doc/rdoc/core/files/lib/core/facets/string/range_rb.html +1 -1
  252. data/doc/rdoc/core/files/lib/core/facets/string/rewrite_rb.html +1 -1
  253. data/doc/rdoc/core/files/lib/core/facets/string/shatter_rb.html +1 -1
  254. data/doc/rdoc/core/files/lib/core/facets/string/snakecase_rb.html +1 -1
  255. data/doc/rdoc/core/files/lib/core/facets/string/splice_rb.html +1 -1
  256. data/doc/rdoc/core/files/lib/core/facets/string/start_with_rb.html +1 -1
  257. data/doc/rdoc/core/files/lib/core/facets/string/tab_rb.html +8 -1
  258. data/doc/rdoc/core/files/lib/core/facets/string/tabto_rb.html +96 -0
  259. data/doc/rdoc/core/files/lib/core/facets/string/titlecase_rb.html +1 -1
  260. data/doc/rdoc/core/files/lib/core/facets/string/to_re_rb.html +1 -1
  261. data/doc/rdoc/core/files/lib/core/facets/string/word_wrap_rb.html +1 -1
  262. data/doc/rdoc/core/files/lib/core/facets/struct/attributes_rb.html +92 -0
  263. data/doc/rdoc/{more/files/lib/more/facets/bytes_rb.html → core/files/lib/core/facets/struct_rb.html} +4 -4
  264. data/doc/rdoc/core/files/lib/core/facets/symbol/chomp_rb.html +1 -1
  265. data/doc/rdoc/core/files/lib/core/facets/symbol/generate_rb.html +1 -1
  266. data/doc/rdoc/core/files/lib/core/facets/symbol/not_rb.html +1 -1
  267. data/doc/rdoc/core/files/lib/core/facets/symbol/succ_rb.html +1 -1
  268. data/doc/rdoc/core/files/lib/core/facets/symbol/to_proc_rb.html +1 -1
  269. data/doc/rdoc/core/files/lib/core/facets/time/advance_rb.html +1 -1
  270. data/doc/rdoc/core/files/lib/core/facets/time/change_rb.html +1 -1
  271. data/doc/rdoc/core/files/lib/core/facets/time/elapse_rb.html +1 -1
  272. data/doc/rdoc/core/files/lib/core/facets/time/hence_rb.html +1 -1
  273. data/doc/rdoc/core/files/lib/core/facets/time/stamp_rb.html +1 -1
  274. data/doc/rdoc/core/files/lib/core/facets/to_hash_rb.html +1 -1
  275. data/doc/rdoc/core/files/lib/core/facets/unboundmethod/arguments_rb.html +1 -1
  276. data/doc/rdoc/core/files/lib/core/facets/unboundmethod/name_rb.html +1 -1
  277. data/doc/rdoc/core/fr_class_index.html +2 -1
  278. data/doc/rdoc/core/fr_file_index.html +30 -1
  279. data/doc/rdoc/core/fr_method_index.html +430 -423
  280. data/doc/rdoc/lore/classes/Date.html +6 -5
  281. data/doc/rdoc/{more/classes/CLI/Command/UniversalOptions.html → lore/classes/Enumerable.html} +7 -9
  282. data/doc/rdoc/lore/classes/Enumerable/Enumerator.html +147 -0
  283. data/doc/rdoc/lore/classes/OpenStruct.html +13 -15
  284. data/doc/rdoc/lore/created.rid +1 -1
  285. data/doc/rdoc/lore/files/README.html +10 -16
  286. data/doc/rdoc/lore/files/lib/lore/facets/date_rb.html +1 -1
  287. data/doc/rdoc/lore/files/lib/lore/facets/enumerator_rb.html +111 -0
  288. data/doc/rdoc/lore/files/lib/lore/facets/ostruct_rb.html +1 -1
  289. data/doc/rdoc/lore/fr_class_index.html +2 -0
  290. data/doc/rdoc/lore/fr_file_index.html +1 -0
  291. data/doc/rdoc/lore/fr_method_index.html +13 -12
  292. data/doc/rdoc/more/classes/ANSICode.html +66 -66
  293. data/doc/rdoc/more/classes/Advisable.html +37 -37
  294. data/doc/rdoc/more/classes/Advisable/Method.html +20 -20
  295. data/doc/rdoc/more/classes/Archive/Tar/Minitar.html +27 -27
  296. data/doc/rdoc/more/classes/Archive/Tar/Minitar/Input.html +28 -28
  297. data/doc/rdoc/more/classes/Archive/Tar/Minitar/Output.html +19 -19
  298. data/doc/rdoc/more/classes/Archive/Tar/Minitar/Reader.html +31 -31
  299. data/doc/rdoc/more/classes/Archive/Tar/Minitar/Writer.html +33 -33
  300. data/doc/rdoc/more/classes/Argvector.html +76 -76
  301. data/doc/rdoc/more/classes/Association.html +28 -28
  302. data/doc/rdoc/more/classes/Association/Kernel.html +8 -8
  303. data/doc/rdoc/more/classes/Autoarray.html +12 -12
  304. data/doc/rdoc/more/classes/BBCode.html +34 -34
  305. data/doc/rdoc/more/classes/BaseX.html +16 -16
  306. data/doc/rdoc/more/classes/BiCrypt.html +67 -67
  307. data/doc/rdoc/more/classes/BinReadable.html +85 -85
  308. data/doc/rdoc/more/classes/BinReadable/ByteOrder.html +25 -25
  309. data/doc/rdoc/more/classes/Binding.html +8 -8
  310. data/doc/rdoc/more/classes/BlankSlate.html +5 -5
  311. data/doc/rdoc/more/classes/Buildable.html +4 -4
  312. data/doc/rdoc/more/classes/BuildingBlock.html +32 -32
  313. data/doc/rdoc/more/classes/Capsule.html +41 -41
  314. data/doc/rdoc/more/classes/Cloneable.html +4 -4
  315. data/doc/rdoc/more/classes/ConsoleUtils.html +22 -22
  316. data/doc/rdoc/more/classes/Coroutine.html +28 -28
  317. data/doc/rdoc/more/classes/Crypt.html +16 -16
  318. data/doc/rdoc/more/classes/CssFilter.html +45 -45
  319. data/doc/rdoc/more/classes/CssTree.html +8 -8
  320. data/doc/rdoc/more/classes/Dictionary.html +228 -228
  321. data/doc/rdoc/more/classes/Downloader.html +56 -56
  322. data/doc/rdoc/more/classes/Duration.html +369 -445
  323. data/doc/rdoc/more/classes/Duration/Numeric.html +389 -0
  324. data/doc/rdoc/more/classes/{CLI/NoCommandError.html → Duration/Time.html} +30 -17
  325. data/doc/rdoc/more/classes/Enumerable.html +114 -51
  326. data/doc/rdoc/more/classes/Enumerable/Elementor.html +16 -16
  327. data/doc/rdoc/more/classes/Enumerable/Enumerator.html +4 -4
  328. data/doc/rdoc/more/classes/Enumerable/Filterable.html +246 -0
  329. data/doc/rdoc/more/classes/EnumerablePass.html +17 -17
  330. data/doc/rdoc/more/classes/{RecursiveDependency.html → Enumerator.html} +7 -4
  331. data/doc/rdoc/more/classes/{CLI.html → Enumerator/Filter.html} +22 -26
  332. data/doc/rdoc/more/classes/Equatable.html +16 -16
  333. data/doc/rdoc/more/classes/Expirable.html +17 -17
  334. data/doc/rdoc/more/classes/FileList.html +125 -125
  335. data/doc/rdoc/more/classes/Fileable.html +14 -14
  336. data/doc/rdoc/more/classes/Fileable/DSL.html +41 -41
  337. data/doc/rdoc/more/classes/Hash.html +16 -162
  338. data/doc/rdoc/more/classes/Hash2Xml.html +4 -4
  339. data/doc/rdoc/more/classes/HtmlFilter.html +9 -9
  340. data/doc/rdoc/more/classes/IORedirect.html +19 -19
  341. data/doc/rdoc/more/classes/InfinityClass.html +36 -36
  342. data/doc/rdoc/more/classes/InfinityClass/Numeric.html +23 -23
  343. data/doc/rdoc/more/classes/Ini.html +37 -37
  344. data/doc/rdoc/more/classes/Instantiable.html +9 -9
  345. data/doc/rdoc/more/classes/Instantize.html +8 -8
  346. data/doc/rdoc/more/classes/Interval.html +187 -187
  347. data/doc/rdoc/more/classes/It.html +12 -12
  348. data/doc/rdoc/more/classes/LRUCache.html +38 -38
  349. data/doc/rdoc/more/classes/LinkedList.html +68 -68
  350. data/doc/rdoc/more/classes/LinkedList/Node.html +4 -4
  351. data/doc/rdoc/more/classes/{DictionaryMatcher.html → Matcher.html} +66 -68
  352. data/doc/rdoc/more/classes/{DictionaryMatcher → Matcher}/MatchData.html +8 -8
  353. data/doc/rdoc/more/classes/{CacheDecorator.html → Memoizer.html} +64 -46
  354. data/doc/rdoc/more/classes/Module.html +182 -361
  355. data/doc/rdoc/more/classes/Multiton.html +12 -12
  356. data/doc/rdoc/more/classes/Multiton/MetaMethods.html +28 -28
  357. data/doc/rdoc/more/classes/Net/SMTP.html +8 -8
  358. data/doc/rdoc/more/classes/NullClass.html +24 -24
  359. data/doc/rdoc/more/classes/Numeric/Multipliers.html +456 -0
  360. data/doc/rdoc/more/classes/ObjectReflection.html +12 -12
  361. data/doc/rdoc/more/classes/OpEsc.html +8 -7
  362. data/doc/rdoc/more/classes/OpenCascade.html +4 -4
  363. data/doc/rdoc/more/classes/OpenCollection.html +8 -8
  364. data/doc/rdoc/more/classes/OpenHash.html +9 -9
  365. data/doc/rdoc/more/classes/{EventHook.html → OpenModule.html} +24 -63
  366. data/doc/rdoc/more/classes/OpenObject.html +95 -95
  367. data/doc/rdoc/more/classes/OpenStructable.html +326 -0
  368. data/doc/rdoc/more/classes/PQueue.html +84 -84
  369. data/doc/rdoc/more/classes/Paramix.html +11 -11
  370. data/doc/rdoc/more/classes/Paramix/Delegator.html +16 -16
  371. data/doc/rdoc/more/classes/PathList.html +8 -8
  372. data/doc/rdoc/more/classes/PathList/Finder.html +8 -8
  373. data/doc/rdoc/more/classes/Platform.html +46 -46
  374. data/doc/rdoc/more/classes/Pool.html +18 -18
  375. data/doc/rdoc/more/classes/Proc.html +9 -9
  376. data/doc/rdoc/more/classes/ProgressBar.html +52 -52
  377. data/doc/rdoc/more/classes/Prototype.html +28 -28
  378. data/doc/rdoc/more/classes/RWDelegator.html +16 -16
  379. data/doc/rdoc/more/classes/Random.html +5 -5
  380. data/doc/rdoc/more/classes/Random/Array.html +37 -37
  381. data/doc/rdoc/more/classes/Random/Hash.html +52 -52
  382. data/doc/rdoc/more/classes/Random/Object.html +4 -4
  383. data/doc/rdoc/more/classes/Random/String.html +34 -34
  384. data/doc/rdoc/more/classes/Random/String/Self.html +9 -9
  385. data/doc/rdoc/more/classes/Recorder.html +16 -16
  386. data/doc/rdoc/more/classes/Reference.html +19 -19
  387. data/doc/rdoc/more/classes/Registerable.html +13 -13
  388. data/doc/rdoc/more/classes/Semaphore.html +36 -36
  389. data/doc/rdoc/more/classes/Settings.html +28 -28
  390. data/doc/rdoc/more/classes/Settings/Setting.html +13 -13
  391. data/doc/rdoc/more/classes/Settings/SettingCollection.html +4 -4
  392. data/doc/rdoc/more/classes/SimpleStringIO.html +8 -8
  393. data/doc/rdoc/more/classes/Snapshot.html +16 -16
  394. data/doc/rdoc/more/classes/Snapshot/ValueHolder.html +12 -12
  395. data/doc/rdoc/more/classes/SparseArray.html +1397 -0
  396. data/doc/rdoc/more/classes/Stash.html +232 -0
  397. data/doc/rdoc/more/classes/String/Mask.html +72 -72
  398. data/doc/rdoc/more/classes/String/Words.html +49 -49
  399. data/doc/rdoc/more/classes/Struct.html +8 -8
  400. data/doc/rdoc/more/classes/SyncArray.html +4 -4
  401. data/doc/rdoc/more/classes/SyncHash.html +4 -4
  402. data/doc/rdoc/more/classes/SyncHash/Delegator.html +28 -28
  403. data/doc/rdoc/more/classes/SyncHash/Inheritor.html +28 -28
  404. data/doc/rdoc/more/classes/System.html +253 -253
  405. data/doc/rdoc/more/classes/Timer.html +48 -48
  406. data/doc/rdoc/more/classes/Timer/Dummy.html +9 -9
  407. data/doc/rdoc/more/classes/TracePoint.html +58 -58
  408. data/doc/rdoc/more/classes/Tuple.html +170 -170
  409. data/doc/rdoc/more/classes/TypeCast/Class.html +4 -4
  410. data/doc/rdoc/more/classes/TypeCast/Object.html +4 -4
  411. data/doc/rdoc/more/classes/Uninheritable.html +6 -6
  412. data/doc/rdoc/more/classes/VersionNumber.html +57 -57
  413. data/doc/rdoc/more/classes/XOXO.html +9 -9
  414. data/doc/rdoc/more/classes/ZipUtils.html +251 -118
  415. data/doc/rdoc/more/classes/ZipUtils/DryRun.html +203 -35
  416. data/doc/rdoc/more/classes/ZipUtils/NoWrite.html +203 -35
  417. data/doc/rdoc/more/classes/ZipUtils/Verbose.html +173 -35
  418. data/doc/rdoc/more/created.rid +1 -1
  419. data/doc/rdoc/more/files/README.html +10 -16
  420. data/doc/rdoc/more/files/lib/more/facets/attr_rb.html +1 -1
  421. data/doc/rdoc/more/files/lib/more/facets/buildable_rb.html +1 -1
  422. data/doc/rdoc/more/files/lib/more/facets/consoleutils_rb.html +1 -18
  423. data/doc/rdoc/more/files/lib/more/facets/dependency_rb.html +1 -1
  424. data/doc/rdoc/more/files/lib/more/facets/duration_rb.html +1 -41
  425. data/doc/rdoc/more/files/lib/more/facets/elementor_rb.html +2 -1
  426. data/doc/rdoc/more/files/lib/more/facets/enumerablepass_rb.html +2 -1
  427. data/doc/rdoc/more/files/lib/more/facets/{fileshell_rb.html → filter_rb.html} +6 -5
  428. data/doc/rdoc/more/files/lib/more/facets/inheritor_rb.html +3 -28
  429. data/doc/rdoc/more/files/lib/more/facets/iteration_rb.html +1 -1
  430. data/doc/rdoc/more/files/lib/more/facets/kernel/meta_rb.html +1 -1
  431. data/doc/rdoc/more/files/lib/more/facets/matcher_rb.html +97 -0
  432. data/doc/rdoc/more/files/lib/more/facets/memoize_rb.html +7 -4
  433. data/doc/rdoc/more/files/lib/more/facets/{cachedecorator_rb.html → memoizer_rb.html} +23 -49
  434. data/doc/rdoc/more/files/lib/more/facets/multipliers_rb.html +2 -18
  435. data/doc/rdoc/more/files/lib/more/facets/nilstatus_rb.html +1 -1
  436. data/doc/rdoc/{core/files/lib/core/facets/callstack_rb.html → more/files/lib/more/facets/openmodule_rb.html} +4 -4
  437. data/doc/rdoc/more/files/lib/more/facets/opesc_rb.html +1 -1
  438. data/doc/rdoc/more/files/lib/more/facets/ostructable_rb.html +92 -0
  439. data/doc/rdoc/more/files/lib/more/facets/pathlist_rb.html +1 -1
  440. data/doc/rdoc/more/files/lib/more/facets/snapshot_rb.html +2 -2
  441. data/doc/rdoc/more/files/lib/more/facets/sparse_array_rb.html +92 -0
  442. data/doc/rdoc/more/files/lib/more/facets/stash_rb.html +166 -0
  443. data/doc/rdoc/more/files/lib/more/facets/string/words_rb.html +1 -1
  444. data/doc/rdoc/more/files/lib/more/facets/succ_rb.html +1 -1
  445. data/doc/rdoc/more/files/lib/more/facets/thread_rb.html +1 -1
  446. data/doc/rdoc/more/files/lib/more/facets/ziputils_rb.html +6 -34
  447. data/doc/rdoc/more/fr_class_index.html +13 -17
  448. data/doc/rdoc/more/fr_file_index.html +7 -15
  449. data/doc/rdoc/more/fr_method_index.html +1079 -1003
  450. data/doc/rdoc/more/index.html +1 -1
  451. data/lib/core/facets/array/conjoin.rb +1 -1
  452. data/lib/core/facets/array/delete.rb +3 -60
  453. data/lib/core/facets/array/delete_unless.rb +15 -0
  454. data/lib/core/facets/array/delete_values.rb +50 -0
  455. data/lib/core/facets/array/index.rb +0 -26
  456. data/lib/core/facets/array/indexable.rb +2 -2
  457. data/lib/core/facets/array/merge.rb +1 -1
  458. data/lib/core/facets/array/only.rb +1 -2
  459. data/lib/core/facets/array/pad.rb +2 -2
  460. data/lib/core/facets/array/permutation.rb +1 -1
  461. data/lib/core/facets/array/product.rb +2 -2
  462. data/lib/core/facets/array/rotate.rb +2 -4
  463. data/lib/core/facets/array/select.rb +1 -1
  464. data/lib/core/facets/array/splice.rb +1 -1
  465. data/lib/core/facets/array/stackable.rb +2 -2
  466. data/lib/core/facets/binding/caller.rb +2 -7
  467. data/lib/core/facets/binding/callstack.rb +1 -0
  468. data/lib/core/facets/binding/defined.rb +0 -1
  469. data/lib/core/facets/bitmask.rb +6 -9
  470. data/lib/core/facets/class/cattr.rb +6 -9
  471. data/lib/core/facets/class/descendents.rb +0 -2
  472. data/lib/core/facets/class/prepend.rb +3 -4
  473. data/lib/core/facets/class/to_proc.rb +0 -20
  474. data/lib/core/facets/comparable/at_least.rb +1 -0
  475. data/lib/core/facets/comparable/at_most.rb +1 -0
  476. data/lib/core/facets/comparable/bound.rb +1 -65
  477. data/lib/core/facets/comparable/cap.rb +34 -0
  478. data/lib/core/facets/comparable/clip.rb +38 -0
  479. data/lib/core/facets/comparable/cmp.rb +3 -3
  480. data/lib/core/facets/comparable/comparable.rb +1 -1
  481. data/lib/core/facets/dir/ascend.rb +2 -5
  482. data/lib/core/facets/dir/multiglob.rb +0 -2
  483. data/lib/core/facets/dir/recurse.rb +1 -2
  484. data/lib/core/facets/enumerable/accumulate.rb +2 -0
  485. data/lib/core/facets/enumerable/cluster_by.rb +1 -1
  486. data/lib/core/facets/enumerable/collect.rb +2 -2
  487. data/lib/core/facets/enumerable/commonality.rb +1 -1
  488. data/lib/core/facets/enumerable/count.rb +1 -1
  489. data/lib/core/facets/enumerable/divide.rb +1 -1
  490. data/lib/core/facets/enumerable/duplicates.rb +2 -2
  491. data/lib/core/facets/enumerable/each_by.rb +1 -1
  492. data/lib/core/facets/enumerable/entropy.rb +2 -2
  493. data/lib/core/facets/enumerable/frequency.rb +1 -1
  494. data/lib/core/facets/enumerable/graph.rb +1 -0
  495. data/lib/core/facets/enumerable/group_by.rb +1 -1
  496. data/lib/core/facets/enumerable/inject.rb +2 -3
  497. data/lib/core/facets/enumerable/map_send.rb +15 -3
  498. data/lib/core/facets/enumerable/mash.rb +4 -5
  499. data/lib/core/facets/enumerable/mode.rb +1 -1
  500. data/lib/core/facets/enumerable/modulate.rb +2 -2
  501. data/lib/core/facets/enumerable/none.rb +1 -1
  502. data/lib/core/facets/enumerable/occur.rb +0 -2
  503. data/lib/core/facets/enumerable/one.rb +1 -1
  504. data/lib/core/facets/enumerable/probability.rb +1 -1
  505. data/lib/core/facets/enumerable/sum.rb +1 -1
  506. data/lib/core/facets/enumerable/take.rb +20 -0
  507. data/lib/core/facets/enumerable/uniq_by.rb +0 -2
  508. data/lib/core/facets/exception/detail.rb +1 -1
  509. data/lib/core/facets/exception/suppress.rb +1 -2
  510. data/lib/core/facets/file/append.rb +1 -1
  511. data/lib/core/facets/file/create.rb +1 -1
  512. data/lib/core/facets/file/null.rb +1 -1
  513. data/lib/core/facets/file/read.rb +3 -3
  514. data/lib/core/facets/file/rewrite.rb +1 -1
  515. data/lib/core/facets/file/rootname.rb +1 -1
  516. data/lib/core/facets/file/split_all.rb +19 -0
  517. data/lib/core/facets/file/split_root.rb +3 -0
  518. data/lib/core/facets/file/write.rb +1 -1
  519. data/lib/core/facets/file/writelines.rb +1 -2
  520. data/lib/core/facets/filetest/root.rb +1 -1
  521. data/lib/core/facets/hash/alias.rb +1 -1
  522. data/lib/core/facets/hash/autonew.rb +1 -17
  523. data/lib/core/facets/hash/collate.rb +1 -1
  524. data/lib/core/facets/hash/delete.rb +3 -3
  525. data/lib/core/facets/hash/insert.rb +1 -1
  526. data/lib/core/facets/hash/inverse.rb +1 -1
  527. data/lib/core/facets/hash/join.rb +1 -1
  528. data/lib/core/facets/hash/keys.rb +3 -3
  529. data/lib/core/facets/hash/op_add.rb +1 -1
  530. data/lib/core/facets/hash/op_and.rb +1 -1
  531. data/lib/core/facets/hash/op_mul.rb +1 -1
  532. data/lib/core/facets/hash/op_or.rb +1 -1
  533. data/lib/core/facets/hash/op_push.rb +1 -1
  534. data/lib/core/facets/hash/op_sub.rb +1 -1
  535. data/lib/core/facets/hash/rekey.rb +11 -7
  536. data/lib/core/facets/hash/replace_each.rb +16 -0
  537. data/lib/core/facets/hash/select.rb +1 -2
  538. data/lib/{more → core}/facets/hash/stringify_keys.rb +0 -0
  539. data/lib/core/facets/hash/symbolize_keys.rb +94 -0
  540. data/lib/core/facets/hash/to_options.rb +1 -0
  541. data/lib/core/facets/hash/to_struct.rb +1 -1
  542. data/lib/core/facets/hash/traverse.rb +2 -2
  543. data/lib/core/facets/hash/update.rb +5 -80
  544. data/lib/core/facets/hash/update_each.rb +18 -0
  545. data/lib/core/facets/hash/update_keys.rb +20 -0
  546. data/lib/core/facets/hash/update_values.rb +20 -0
  547. data/lib/core/facets/hash/weave.rb +1 -1
  548. data/lib/core/facets/hash/zipnew.rb +17 -1
  549. data/lib/core/facets/integer/factorial.rb +1 -1
  550. data/lib/core/facets/integer/multiple.rb +1 -1
  551. data/lib/core/facets/integer/odd.rb +2 -2
  552. data/lib/core/facets/kernel/__here__.rb +8 -0
  553. data/lib/core/facets/kernel/as.rb +2 -2
  554. data/lib/core/facets/kernel/attr_singleton.rb +5 -5
  555. data/lib/core/facets/{callstack.rb → kernel/callstack.rb} +1 -1
  556. data/lib/core/facets/kernel/complete.rb +1 -1
  557. data/lib/core/facets/kernel/constant.rb +1 -1
  558. data/lib/core/facets/kernel/d.rb +1 -5
  559. data/lib/core/facets/kernel/demo.rb +2 -2
  560. data/lib/core/facets/kernel/ergo.rb +2 -2
  561. data/lib/core/facets/kernel/instance_class.rb +1 -1
  562. data/lib/core/facets/kernel/instance_variables.rb +2 -4
  563. data/lib/core/facets/kernel/not_nil.rb +1 -1
  564. data/lib/core/facets/kernel/object_send.rb +1 -1
  565. data/lib/core/facets/kernel/p.rb +1 -1
  566. data/lib/core/facets/kernel/populate.rb +2 -2
  567. data/lib/core/facets/kernel/qua_class.rb +2 -2
  568. data/lib/core/facets/kernel/resc.rb +1 -1
  569. data/lib/core/facets/kernel/respond.rb +1 -1
  570. data/lib/core/facets/kernel/returning.rb +1 -1
  571. data/lib/core/facets/kernel/silence.rb +4 -4
  572. data/lib/core/facets/kernel/try.rb +5 -3
  573. data/lib/core/facets/matchdata/match.rb +1 -1
  574. data/lib/core/facets/matchdata/matchset.rb +2 -2
  575. data/lib/core/facets/metaid.rb +5 -5
  576. data/lib/core/facets/module/abstract.rb +1 -1
  577. data/lib/core/facets/module/alias_accessor.rb +3 -3
  578. data/lib/core/facets/module/alias_method_chain.rb +1 -2
  579. data/lib/core/facets/module/alias_module_function.rb +1 -1
  580. data/lib/core/facets/module/ancestor.rb +1 -1
  581. data/lib/core/facets/module/basename.rb +1 -1
  582. data/lib/core/facets/module/conflict.rb +1 -2
  583. data/lib/core/facets/module/include_function_module.rb +1 -1
  584. data/lib/core/facets/module/instance_methods.rb +4 -6
  585. data/lib/core/facets/module/is.rb +2 -2
  586. data/lib/core/facets/module/modspace.rb +1 -1
  587. data/lib/core/facets/module/module_load.rb +2 -2
  588. data/lib/core/facets/module/nesting.rb +1 -1
  589. data/lib/core/facets/module/op.rb +3 -6
  590. data/lib/core/facets/module/prepend.rb +1 -1
  591. data/lib/core/facets/module/redefine_method.rb +1 -1
  592. data/lib/core/facets/module/rename_method.rb +1 -1
  593. data/lib/core/facets/module/revise.rb +2 -2
  594. data/lib/core/facets/module/spacename.rb +1 -1
  595. data/lib/core/facets/module/wrap_method.rb +1 -1
  596. data/lib/core/facets/nilclass/to_f.rb +1 -1
  597. data/lib/core/facets/numeric/approx.rb +1 -1
  598. data/lib/core/facets/numeric/distance.rb +1 -1
  599. data/lib/core/facets/numeric/round.rb +3 -6
  600. data/lib/core/facets/objectspace.rb +6 -0
  601. data/lib/core/facets/objectspace/classes.rb +11 -0
  602. data/lib/core/facets/proc/bind.rb +1 -1
  603. data/lib/core/facets/proc/compose.rb +2 -2
  604. data/lib/core/facets/proc/to_method.rb +1 -1
  605. data/lib/core/facets/proc/update.rb +1 -1
  606. data/lib/core/facets/range/combine.rb +2 -2
  607. data/lib/core/facets/range/overlap.rb +1 -2
  608. data/lib/core/facets/range/within.rb +2 -4
  609. data/lib/core/facets/regexp/arity.rb +1 -1
  610. data/lib/core/facets/string/align.rb +3 -3
  611. data/lib/core/facets/string/bracket.rb +6 -6
  612. data/lib/core/facets/string/camelcase.rb +1 -1
  613. data/lib/core/facets/string/capitalized.rb +3 -3
  614. data/lib/core/facets/string/chars.rb +1 -1
  615. data/lib/core/facets/string/chomp.rb +2 -2
  616. data/lib/core/facets/string/cleave.rb +1 -1
  617. data/lib/core/facets/string/compress_lines.rb +17 -0
  618. data/lib/core/facets/string/contains.rb +7 -0
  619. data/lib/core/facets/string/divide.rb +1 -1
  620. data/lib/core/facets/string/expand_tab.rb +35 -0
  621. data/lib/core/facets/string/fold.rb +1 -1
  622. data/lib/core/facets/string/indent.rb +25 -0
  623. data/lib/core/facets/string/interpolate.rb +1 -1
  624. data/lib/core/facets/string/line_wrap.rb +1 -1
  625. data/lib/core/facets/string/lines.rb +1 -2
  626. data/lib/core/facets/string/margin.rb +30 -0
  627. data/lib/core/facets/string/methodize.rb +1 -1
  628. data/lib/core/facets/string/mscan.rb +1 -1
  629. data/lib/core/facets/string/natcmp.rb +1 -2
  630. data/lib/core/facets/string/nchar.rb +0 -2
  631. data/lib/core/facets/string/op_sub.rb +1 -1
  632. data/lib/core/facets/string/outdent.rb +1 -0
  633. data/lib/core/facets/string/range.rb +4 -5
  634. data/lib/core/facets/string/rewrite.rb +1 -1
  635. data/lib/core/facets/string/shatter.rb +1 -1
  636. data/lib/core/facets/string/snakecase.rb +1 -1
  637. data/lib/core/facets/string/splice.rb +2 -2
  638. data/lib/core/facets/string/start_with.rb +2 -4
  639. data/lib/core/facets/string/tab.rb +9 -92
  640. data/lib/core/facets/string/tabto.rb +19 -0
  641. data/lib/core/facets/string/titlecase.rb +1 -1
  642. data/lib/core/facets/string/to_re.rb +2 -2
  643. data/lib/core/facets/string/word_wrap.rb +2 -4
  644. data/lib/core/facets/struct.rb +6 -0
  645. data/lib/core/facets/struct/attributes.rb +11 -0
  646. data/lib/core/facets/symbol/chomp.rb +2 -2
  647. data/lib/core/facets/symbol/generate.rb +1 -1
  648. data/lib/core/facets/symbol/not.rb +2 -2
  649. data/lib/core/facets/symbol/succ.rb +1 -1
  650. data/lib/core/facets/symbol/to_proc.rb +2 -3
  651. data/lib/core/facets/time/advance.rb +2 -1
  652. data/lib/core/facets/time/elapse.rb +1 -1
  653. data/lib/core/facets/time/hence.rb +16 -13
  654. data/lib/core/facets/time/stamp.rb +2 -2
  655. data/lib/core/facets/to_hash.rb +1 -1
  656. data/lib/core/facets/unboundmethod/arguments.rb +1 -1
  657. data/lib/core/facets/unboundmethod/name.rb +1 -1
  658. data/lib/lore/facets/date.rb +2 -2
  659. data/lib/lore/facets/enumerator.rb +67 -0
  660. data/lib/lore/facets/ostruct.rb +3 -7
  661. data/lib/more/facets/attr.rb +10 -9
  662. data/lib/more/facets/consoleutils.rb +1 -15
  663. data/lib/more/facets/dependency.rb +1 -1
  664. data/lib/more/facets/duration.rb +271 -525
  665. data/lib/more/facets/filter.rb +121 -0
  666. data/lib/more/facets/inheritor.rb +37 -58
  667. data/lib/more/facets/iteration.rb +1 -1
  668. data/lib/more/facets/kernel/meta.rb +1 -1
  669. data/lib/more/facets/{dictionarymatcher.rb → matcher.rb} +15 -11
  670. data/lib/more/facets/memoize.rb +9 -12
  671. data/lib/more/facets/memoizer.rb +74 -0
  672. data/lib/more/facets/multipliers.rb +54 -66
  673. data/lib/more/facets/nilstatus.rb +3 -2
  674. data/lib/more/facets/openmodule.rb +15 -0
  675. data/lib/more/facets/opesc.rb +1 -1
  676. data/lib/more/facets/ostructable.rb +212 -0
  677. data/lib/more/facets/pathlist.rb +1 -0
  678. data/lib/more/facets/sparse_array.rb +809 -0
  679. data/lib/more/facets/stash.rb +66 -0
  680. data/lib/more/facets/string/words.rb +8 -11
  681. data/lib/more/facets/succ.rb +3 -3
  682. data/lib/more/facets/thread.rb +2 -2
  683. data/lib/more/facets/ziputils.rb +238 -97
  684. data/test/core/array/test_index.rb +17 -0
  685. data/test/core/class/test_cattr.rb +1 -1
  686. data/test/core/class/test_to_proc.rb +13 -0
  687. data/test/core/comparable/test_cap.rb +25 -0
  688. data/test/core/comparable/{test_bound.rb → test_clip.rb} +1 -20
  689. data/test/core/file/test_split_all.rb +32 -0
  690. data/test/core/hash/test_op_mul.rb +1 -1
  691. data/test/core/hash/test_op_push.rb +7 -0
  692. data/test/core/hash/test_replace_each.rb +14 -0
  693. data/test/core/hash/test_update_each.rb +13 -0
  694. data/test/core/hash/test_update_keys.rb +18 -0
  695. data/test/core/hash/test_update_values.rb +12 -0
  696. data/test/core/kernel/test_callstack.rb +1 -1
  697. data/test/core/string/test_indent.rb +13 -0
  698. data/test/core/string/test_margin.rb +100 -0
  699. data/test/core/string/test_outdent.rb +65 -0
  700. data/test/core/string/test_tab.rb +1 -162
  701. data/test/core/string/test_tabto.rb +13 -0
  702. data/test/{more → core}/test_metaid.rb +8 -8
  703. data/test/core/time/test_hence.rb +118 -4
  704. data/test/core/unboundmethod/test_name.rb +1 -1
  705. data/test/more/{test_arguments.rb → test_argvector.rb} +8 -12
  706. data/test/more/test_filter.rb +87 -0
  707. data/test/more/test_memoize.rb +11 -9
  708. data/test/more/test_sparsearray.rb +279 -0
  709. metadata +741 -725
  710. data/demo/bench/bench_load.rb +0 -56
  711. data/demo/bench/enumerable/bench_collect.rb +0 -84
  712. data/demo/bench/enumerable/bench_count.rb +0 -58
  713. data/demo/bench/general/bench_calls.rb +0 -74
  714. data/demo/bench/general/bench_includes.rb +0 -25
  715. data/demo/bench/general/bench_methods.rb +0 -17
  716. data/demo/bench/general/bench_pathname.rb +0 -24
  717. data/demo/bench/general/bench_range.rb +0 -64
  718. data/demo/bench/general/bench_return.rb +0 -56
  719. data/demo/bench/general/bench_yeild.rb +0 -75
  720. data/demo/bench/general/comment_loading/bench.rb +0 -46
  721. data/demo/bench/general/comment_loading/comments_begin.rb +0 -109
  722. data/demo/bench/general/comment_loading/comments_end.rb +0 -127
  723. data/demo/bench/general/comment_loading/comments_none.rb +0 -1
  724. data/demo/bench/general/comment_loading/comments_sharp.rb +0 -125
  725. data/demo/bench/integer/bench_factorial.rb +0 -31
  726. data/demo/sample/annotations/annotations1.rb +0 -22
  727. data/demo/sample/ansicolor/cdiff.rb +0 -20
  728. data/demo/sample/ansicolor/example.rb +0 -82
  729. data/doc/book/notes.rdoc +0 -9
  730. data/doc/rdoc/more/classes/BigDuration.html +0 -323
  731. data/doc/rdoc/more/classes/CLI/Arguments.html +0 -488
  732. data/doc/rdoc/more/classes/CLI/Command.html +0 -316
  733. data/doc/rdoc/more/classes/Chain.html +0 -206
  734. data/doc/rdoc/more/classes/FileShell.html +0 -743
  735. data/doc/rdoc/more/classes/TagIterator.html +0 -581
  736. data/doc/rdoc/more/classes/UploadUtils.html +0 -497
  737. data/doc/rdoc/more/classes/Weekdays.html +0 -218
  738. data/doc/rdoc/more/files/lib/more/facets/annotations_rb.html +0 -180
  739. data/doc/rdoc/more/files/lib/more/facets/arguments_rb.html +0 -142
  740. data/doc/rdoc/more/files/lib/more/facets/cattr_rb.html +0 -125
  741. data/doc/rdoc/more/files/lib/more/facets/chain_rb.html +0 -114
  742. data/doc/rdoc/more/files/lib/more/facets/command_rb.html +0 -170
  743. data/doc/rdoc/more/files/lib/more/facets/eventhook_rb.html +0 -141
  744. data/doc/rdoc/more/files/lib/more/facets/tagiterator_rb.html +0 -111
  745. data/doc/rdoc/more/files/lib/more/facets/times_rb.html +0 -163
  746. data/doc/rdoc/more/files/lib/more/facets/uploadutils_rb.html +0 -176
  747. data/lib/more/facets/annotations.rb +0 -302
  748. data/lib/more/facets/arguments.rb +0 -365
  749. data/lib/more/facets/bytes.rb +0 -175
  750. data/lib/more/facets/cachedecorator.rb +0 -117
  751. data/lib/more/facets/chain.rb +0 -58
  752. data/lib/more/facets/command.rb +0 -439
  753. data/lib/more/facets/eventhook.rb +0 -132
  754. data/lib/more/facets/fileshell.rb +0 -202
  755. data/lib/more/facets/hash/symbolize_keys.rb +0 -94
  756. data/lib/more/facets/tagiter.rb +0 -366
  757. data/lib/more/facets/times.rb +0 -431
  758. data/lib/more/facets/uploadutils.rb +0 -464
  759. data/test/core/hash/test_update.rb +0 -46
  760. data/test/more/test_annotations.rb +0 -120
  761. data/test/more/test_bytes.rb +0 -71
  762. data/test/more/test_command.rb +0 -69
  763. data/test/more/test_times.rb +0 -89
@@ -79,25 +79,25 @@ Object
79
79
  <p>
80
80
  Tool module for downloading files and extracting archive files. Currently
81
81
  this is console-based but in the future will have SOC for any <a
82
- href="Downloader.html#M000091">interface</a>.
82
+ href="Downloader.html#M000095">interface</a>.
83
83
  </p>
84
84
  </div>
85
85
 
86
86
 
87
87
 
88
88
  <div class="sectiontitle">Methods</div>
89
- <span style="padding-right: 5px;"><a href="#M000094">add_mirror</a></span>
90
- <span style="padding-right: 5px;"><a href="#M000095">add_mirrors</a></span>
91
- <span style="padding-right: 5px;"><a href="#M000101">compute_checksum</a></span>
92
- <span style="padding-right: 5px;"><a href="#M000100">download</a></span>
93
- <span style="padding-right: 5px;"><a href="#M000102">extract</a></span>
94
- <span style="padding-right: 5px;"><a href="#M000097">fetch</a></span>
95
- <span style="padding-right: 5px;"><a href="#M000091">interface</a></span>
96
- <span style="padding-right: 5px;"><a href="#M000092">interface=</a></span>
97
- <span style="padding-right: 5px;"><a href="#M000096">mirrors</a></span>
98
- <span style="padding-right: 5px;"><a href="#M000098">monitored_download</a></span>
99
- <span style="padding-right: 5px;"><a href="#M000093">new</a></span>
100
- <span style="padding-right: 5px;"><a href="#M000099">prioritize_urls</a></span>
89
+ <span style="padding-right: 5px;"><a href="#M000098">add_mirror</a></span>
90
+ <span style="padding-right: 5px;"><a href="#M000099">add_mirrors</a></span>
91
+ <span style="padding-right: 5px;"><a href="#M000105">compute_checksum</a></span>
92
+ <span style="padding-right: 5px;"><a href="#M000104">download</a></span>
93
+ <span style="padding-right: 5px;"><a href="#M000106">extract</a></span>
94
+ <span style="padding-right: 5px;"><a href="#M000101">fetch</a></span>
95
+ <span style="padding-right: 5px;"><a href="#M000095">interface</a></span>
96
+ <span style="padding-right: 5px;"><a href="#M000096">interface=</a></span>
97
+ <span style="padding-right: 5px;"><a href="#M000100">mirrors</a></span>
98
+ <span style="padding-right: 5px;"><a href="#M000102">monitored_download</a></span>
99
+ <span style="padding-right: 5px;"><a href="#M000097">new</a></span>
100
+ <span style="padding-right: 5px;"><a href="#M000103">prioritize_urls</a></span>
101
101
 
102
102
 
103
103
 
@@ -124,11 +124,11 @@ href="Downloader.html#M000091">interface</a>.
124
124
  <div class="sectiontitle">Public Class methods</div>
125
125
  <div class="method">
126
126
  <div class="title">
127
- <a name="M000093"></a><b>new</b>( destination, mirrors=nil, region=nil, &amp;config )
127
+ <a name="M000097"></a><b>new</b>( destination, mirrors=nil, region=nil, &amp;config )
128
128
  </div>
129
129
  <div class="sourcecode">
130
- <p class="source-link">[ <a href="javascript:toggleSource('M000093_source')" id="l_M000093_source">+</a> ]</p>
131
- <div id="M000093_source" class="dyn-source">
130
+ <p class="source-link">[ <a href="javascript:toggleSource('M000097_source')" id="l_M000097_source">+</a> ]</p>
131
+ <div id="M000097_source" class="dyn-source">
132
132
  <pre>
133
133
  <span class="ruby-comment cmt"># File lib/more/facets/downloader.rb, line 66</span>
134
134
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>( <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">mirrors</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">region</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">config</span> )
@@ -145,11 +145,11 @@ href="Downloader.html#M000091">interface</a>.
145
145
  <div class="sectiontitle">Public Instance methods</div>
146
146
  <div class="method">
147
147
  <div class="title">
148
- <a name="M000094"></a><b>add_mirror</b>( url, region=nil )
148
+ <a name="M000098"></a><b>add_mirror</b>( url, region=nil )
149
149
  </div>
150
150
  <div class="sourcecode">
151
- <p class="source-link">[ <a href="javascript:toggleSource('M000094_source')" id="l_M000094_source">+</a> ]</p>
152
- <div id="M000094_source" class="dyn-source">
151
+ <p class="source-link">[ <a href="javascript:toggleSource('M000098_source')" id="l_M000098_source">+</a> ]</p>
152
+ <div id="M000098_source" class="dyn-source">
153
153
  <pre>
154
154
  <span class="ruby-comment cmt"># File lib/more/facets/downloader.rb, line 76</span>
155
155
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_mirror</span>( <span class="ruby-identifier">url</span>, <span class="ruby-identifier">region</span>=<span class="ruby-keyword kw">nil</span> )
@@ -161,11 +161,11 @@ href="Downloader.html#M000091">interface</a>.
161
161
  </div>
162
162
  <div class="method">
163
163
  <div class="title">
164
- <a name="M000095"></a><b>add_mirrors</b>( mirrors )
164
+ <a name="M000099"></a><b>add_mirrors</b>( mirrors )
165
165
  </div>
166
166
  <div class="sourcecode">
167
- <p class="source-link">[ <a href="javascript:toggleSource('M000095_source')" id="l_M000095_source">+</a> ]</p>
168
- <div id="M000095_source" class="dyn-source">
167
+ <p class="source-link">[ <a href="javascript:toggleSource('M000099_source')" id="l_M000099_source">+</a> ]</p>
168
+ <div id="M000099_source" class="dyn-source">
169
169
  <pre>
170
170
  <span class="ruby-comment cmt"># File lib/more/facets/downloader.rb, line 80</span>
171
171
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_mirrors</span>( <span class="ruby-identifier">mirrors</span> )
@@ -191,16 +191,16 @@ href="Downloader.html#M000091">interface</a>.
191
191
  </div>
192
192
  <div class="method">
193
193
  <div class="title">
194
- <a name="M000101"></a><b>compute_checksum</b>( local_path )
194
+ <a name="M000105"></a><b>compute_checksum</b>( local_path )
195
195
  </div>
196
196
  <div class="description">
197
197
  <p>
198
- <a href="Downloader.html#M000101">compute_checksum</a>
198
+ <a href="Downloader.html#M000105">compute_checksum</a>
199
199
  </p>
200
200
  </div>
201
201
  <div class="sourcecode">
202
- <p class="source-link">[ <a href="javascript:toggleSource('M000101_source')" id="l_M000101_source">+</a> ]</p>
203
- <div id="M000101_source" class="dyn-source">
202
+ <p class="source-link">[ <a href="javascript:toggleSource('M000105_source')" id="l_M000105_source">+</a> ]</p>
203
+ <div id="M000105_source" class="dyn-source">
204
204
  <pre>
205
205
  <span class="ruby-comment cmt"># File lib/more/facets/downloader.rb, line 240</span>
206
206
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">compute_checksum</span>( <span class="ruby-identifier">local_path</span> )
@@ -216,11 +216,11 @@ href="Downloader.html#M000091">interface</a>.
216
216
  </div>
217
217
  <div class="method">
218
218
  <div class="title">
219
- <a name="M000100"></a><b>download</b>( url, filepath, checksum='', est_size=nil )
219
+ <a name="M000104"></a><b>download</b>( url, filepath, checksum='', est_size=nil )
220
220
  </div>
221
221
  <div class="description">
222
222
  <p>
223
- currently can only <a href="Downloader.html#M000100">download</a> a single
223
+ currently can only <a href="Downloader.html#M000104">download</a> a single
224
224
  compressed file does not handle downloading an uncompressed directory tree
225
225
  (should it? doubt it)
226
226
  </p>
@@ -232,8 +232,8 @@ chain messaging but matz said no :(
232
232
  </p>
233
233
  </div>
234
234
  <div class="sourcecode">
235
- <p class="source-link">[ <a href="javascript:toggleSource('M000100_source')" id="l_M000100_source">+</a> ]</p>
236
- <div id="M000100_source" class="dyn-source">
235
+ <p class="source-link">[ <a href="javascript:toggleSource('M000104_source')" id="l_M000104_source">+</a> ]</p>
236
+ <div id="M000104_source" class="dyn-source">
237
237
  <pre>
238
238
  <span class="ruby-comment cmt"># File lib/more/facets/downloader.rb, line 179</span>
239
239
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">download</span>( <span class="ruby-identifier">url</span>, <span class="ruby-identifier">filepath</span>, <span class="ruby-identifier">checksum</span>=<span class="ruby-value str">''</span>, <span class="ruby-identifier">est_size</span>=<span class="ruby-keyword kw">nil</span> )
@@ -300,16 +300,16 @@ chain messaging but matz said no :(
300
300
  </div>
301
301
  <div class="method">
302
302
  <div class="title">
303
- <a name="M000102"></a><b>extract</b>( local_path )
303
+ <a name="M000106"></a><b>extract</b>( local_path )
304
304
  </div>
305
305
  <div class="description">
306
306
  <p>
307
- <a href="Downloader.html#M000102">extract</a>
307
+ <a href="Downloader.html#M000106">extract</a>
308
308
  </p>
309
309
  </div>
310
310
  <div class="sourcecode">
311
- <p class="source-link">[ <a href="javascript:toggleSource('M000102_source')" id="l_M000102_source">+</a> ]</p>
312
- <div id="M000102_source" class="dyn-source">
311
+ <p class="source-link">[ <a href="javascript:toggleSource('M000106_source')" id="l_M000106_source">+</a> ]</p>
312
+ <div id="M000106_source" class="dyn-source">
313
313
  <pre>
314
314
  <span class="ruby-comment cmt"># File lib/more/facets/downloader.rb, line 250</span>
315
315
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extract</span>( <span class="ruby-identifier">local_path</span> )
@@ -347,16 +347,16 @@ chain messaging but matz said no :(
347
347
  </div>
348
348
  <div class="method">
349
349
  <div class="title">
350
- <a name="M000097"></a><b>fetch</b>( file, checksum=0, est_size=0, force=false )
350
+ <a name="M000101"></a><b>fetch</b>( file, checksum=0, est_size=0, force=false )
351
351
  </div>
352
352
  <div class="description">
353
353
  <p>
354
- <a href="Downloader.html#M000097">fetch</a>
354
+ <a href="Downloader.html#M000101">fetch</a>
355
355
  </p>
356
356
  </div>
357
357
  <div class="sourcecode">
358
- <p class="source-link">[ <a href="javascript:toggleSource('M000097_source')" id="l_M000097_source">+</a> ]</p>
359
- <div id="M000097_source" class="dyn-source">
358
+ <p class="source-link">[ <a href="javascript:toggleSource('M000101_source')" id="l_M000101_source">+</a> ]</p>
359
+ <div id="M000101_source" class="dyn-source">
360
360
  <pre>
361
361
  <span class="ruby-comment cmt"># File lib/more/facets/downloader.rb, line 104</span>
362
362
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fetch</span>( <span class="ruby-identifier">file</span>, <span class="ruby-identifier">checksum</span>=<span class="ruby-value">0</span>, <span class="ruby-identifier">est_size</span>=<span class="ruby-value">0</span>, <span class="ruby-identifier">force</span>=<span class="ruby-keyword kw">false</span> )
@@ -371,17 +371,17 @@ chain messaging but matz said no :(
371
371
  </div>
372
372
  <div class="method">
373
373
  <div class="title">
374
- <a name="M000091"></a><b>interface</b>()
374
+ <a name="M000095"></a><b>interface</b>()
375
375
  </div>
376
376
  <div class="description">
377
377
  <p>
378
- delegate to an <a href="Downloader.html#M000091">interface</a> (under
378
+ delegate to an <a href="Downloader.html#M000095">interface</a> (under
379
379
  development)
380
380
  </p>
381
381
  </div>
382
382
  <div class="sourcecode">
383
- <p class="source-link">[ <a href="javascript:toggleSource('M000091_source')" id="l_M000091_source">+</a> ]</p>
384
- <div id="M000091_source" class="dyn-source">
383
+ <p class="source-link">[ <a href="javascript:toggleSource('M000095_source')" id="l_M000095_source">+</a> ]</p>
384
+ <div id="M000095_source" class="dyn-source">
385
385
  <pre>
386
386
  <span class="ruby-comment cmt"># File lib/more/facets/downloader.rb, line 61</span>
387
387
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">interface</span> ; <span class="ruby-ivar">@interface</span>; <span class="ruby-keyword kw">end</span>
@@ -391,11 +391,11 @@ development)
391
391
  </div>
392
392
  <div class="method">
393
393
  <div class="title">
394
- <a name="M000092"></a><b>interface=</b>(iface)
394
+ <a name="M000096"></a><b>interface=</b>(iface)
395
395
  </div>
396
396
  <div class="sourcecode">
397
- <p class="source-link">[ <a href="javascript:toggleSource('M000092_source')" id="l_M000092_source">+</a> ]</p>
398
- <div id="M000092_source" class="dyn-source">
397
+ <p class="source-link">[ <a href="javascript:toggleSource('M000096_source')" id="l_M000096_source">+</a> ]</p>
398
+ <div id="M000096_source" class="dyn-source">
399
399
  <pre>
400
400
  <span class="ruby-comment cmt"># File lib/more/facets/downloader.rb, line 62</span>
401
401
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">interface=</span>(<span class="ruby-identifier">iface</span>)
@@ -407,11 +407,11 @@ development)
407
407
  </div>
408
408
  <div class="method">
409
409
  <div class="title">
410
- <a name="M000096"></a><b>mirrors</b>()
410
+ <a name="M000100"></a><b>mirrors</b>()
411
411
  </div>
412
412
  <div class="sourcecode">
413
- <p class="source-link">[ <a href="javascript:toggleSource('M000096_source')" id="l_M000096_source">+</a> ]</p>
414
- <div id="M000096_source" class="dyn-source">
413
+ <p class="source-link">[ <a href="javascript:toggleSource('M000100_source')" id="l_M000100_source">+</a> ]</p>
414
+ <div id="M000100_source" class="dyn-source">
415
415
  <pre>
416
416
  <span class="ruby-comment cmt"># File lib/more/facets/downloader.rb, line 98</span>
417
417
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mirrors</span>
@@ -423,20 +423,20 @@ development)
423
423
  </div>
424
424
  <div class="method">
425
425
  <div class="title">
426
- <a name="M000098"></a><b>monitored_download</b>( urls, filepath, checksum, est_size=0, force=false )
426
+ <a name="M000102"></a><b>monitored_download</b>( urls, filepath, checksum, est_size=0, force=false )
427
427
  </div>
428
428
  <div class="description">
429
429
  <p>
430
430
  regional_urls - array of arrays of [ url, region, md5, expected_size ]
431
431
  local_region - region of the user&#8216;s system to_dir - where to store
432
432
  downloaded file (full path) force - <a
433
- href="Downloader.html#M000100">download</a> even if file already exists
433
+ href="Downloader.html#M000104">download</a> even if file already exists
434
434
  locally
435
435
  </p>
436
436
  </div>
437
437
  <div class="sourcecode">
438
- <p class="source-link">[ <a href="javascript:toggleSource('M000098_source')" id="l_M000098_source">+</a> ]</p>
439
- <div id="M000098_source" class="dyn-source">
438
+ <p class="source-link">[ <a href="javascript:toggleSource('M000102_source')" id="l_M000102_source">+</a> ]</p>
439
+ <div id="M000102_source" class="dyn-source">
440
440
  <pre>
441
441
  <span class="ruby-comment cmt"># File lib/more/facets/downloader.rb, line 125</span>
442
442
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">monitored_download</span>( <span class="ruby-identifier">urls</span>, <span class="ruby-identifier">filepath</span>, <span class="ruby-identifier">checksum</span>, <span class="ruby-identifier">est_size</span>=<span class="ruby-value">0</span>, <span class="ruby-identifier">force</span>=<span class="ruby-keyword kw">false</span> )
@@ -480,17 +480,17 @@ locally
480
480
  </div>
481
481
  <div class="method">
482
482
  <div class="title">
483
- <a name="M000099"></a><b>prioritize_urls</b>( urls )
483
+ <a name="M000103"></a><b>prioritize_urls</b>( urls )
484
484
  </div>
485
485
  <div class="description">
486
486
  <p>
487
487
  In the future we may test each connection for fastest <a
488
- href="Downloader.html#M000100">download</a>
488
+ href="Downloader.html#M000104">download</a>
489
489
  </p>
490
490
  </div>
491
491
  <div class="sourcecode">
492
- <p class="source-link">[ <a href="javascript:toggleSource('M000099_source')" id="l_M000099_source">+</a> ]</p>
493
- <div id="M000099_source" class="dyn-source">
492
+ <p class="source-link">[ <a href="javascript:toggleSource('M000103_source')" id="l_M000103_source">+</a> ]</p>
493
+ <div id="M000103_source" class="dyn-source">
494
494
  <pre>
495
495
  <span class="ruby-comment cmt"># File lib/more/facets/downloader.rb, line 163</span>
496
496
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">prioritize_urls</span>( <span class="ruby-identifier">urls</span> )
@@ -75,172 +75,119 @@ Object
75
75
  <div id="bodyContent">
76
76
  <div id="content">
77
77
 
78
- <div class="description"><h1><a href="Duration.html">Duration</a></h1>
79
- <p>
80
- <a href="Duration.html">Duration</a> is a simple class that provides ways
81
- of easily manipulating durations (timespans) and formatting them as well.
82
- </p>
83
- <pre>
84
- require 'duration'
85
- =&gt; true
86
- d = Duration.new(60 * 60 * 24 * 10 + 120 + 30)
87
- =&gt; #&lt;Duration: 1 week, 3 days, 2 minutes and 30 seconds&gt;
88
- d.to_s
89
- =&gt; &quot;1 week, 3 days, 2 minutes and 30 seconds&quot;
90
- [d.weeks, d.days]
91
- =&gt; [1, 3]
92
- d.days = 7; d
93
- =&gt; #&lt;Duration: 2 weeks, 2 minutes and 30 seconds&gt;
94
- d.strftime('%w w, %d d, %h h, %m m, %s s')
95
- =&gt; &quot;2 w, 0 d, 0 h, 2 m, 30 s&quot;
96
- </pre>
97
- </div>
98
78
 
99
79
 
100
80
 
101
81
  <div class="sectiontitle">Methods</div>
102
- <span style="padding-right: 5px;"><a href="#M000472">*</a></span>
103
- <span style="padding-right: 5px;"><a href="#M000470">+</a></span>
104
- <span style="padding-right: 5px;"><a href="#M000471">-</a></span>
105
- <span style="padding-right: 5px;"><a href="#M000473">/</a></span>
106
- <span style="padding-right: 5px;"><a href="#M000462">&lt;=&gt;</a></span>
107
- <span style="padding-right: 5px;"><a href="#M000464">days=</a></span>
108
- <span style="padding-right: 5px;"><a href="#M000461">each</a></span>
109
- <span style="padding-right: 5px;"><a href="#M000465">hours=</a></span>
110
- <span style="padding-right: 5px;"><a href="#M000469">inspect</a></span>
111
- <span style="padding-right: 5px;"><a href="#M000466">minutes=</a></span>
112
- <span style="padding-right: 5px;"><a href="#M000458">new</a></span>
113
- <span style="padding-right: 5px;"><a href="#M000460">seconds</a></span>
114
- <span style="padding-right: 5px;"><a href="#M000467">seconds=</a></span>
115
- <span style="padding-right: 5px;"><a href="#M000459">strftime</a></span>
116
- <span style="padding-right: 5px;"><a href="#M000468">to_s</a></span>
117
- <span style="padding-right: 5px;"><a href="#M000463">weeks=</a></span>
82
+ <span style="padding-right: 5px;"><a href="#M000465">+</a></span>
83
+ <span style="padding-right: 5px;"><a href="#M000467">+</a></span>
84
+ <span style="padding-right: 5px;"><a href="#M000466">-</a></span>
85
+ <span style="padding-right: 5px;"><a href="#M000468">/</a></span>
86
+ <span style="padding-right: 5px;"><a href="#M000457">&lt;=&gt;</a></span>
87
+ <span style="padding-right: 5px;"><a href="#M000456">==</a></span>
88
+ <span style="padding-right: 5px;"><a href="#M000446">[]</a></span>
89
+ <span style="padding-right: 5px;"><a href="#M000472">after</a></span>
90
+ <span style="padding-right: 5px;"><a href="#M000471">before</a></span>
91
+ <span style="padding-right: 5px;"><a href="#M000460">days</a></span>
92
+ <span style="padding-right: 5px;"><a href="#M000461">hours</a></span>
93
+ <span style="padding-right: 5px;"><a href="#M000450">inspect</a></span>
94
+ <span style="padding-right: 5px;"><a href="#M000462">minutes</a></span>
95
+ <span style="padding-right: 5px;"><a href="#M000447">new</a></span>
96
+ <span style="padding-right: 5px;"><a href="#M000449">reset_segments</a></span>
97
+ <span style="padding-right: 5px;"><a href="#M000463">seconds</a></span>
98
+ <span style="padding-right: 5px;"><a href="#M000469">segmented</a></span>
99
+ <span style="padding-right: 5px;"><a href="#M000448">segments</a></span>
100
+ <span style="padding-right: 5px;"><a href="#M000470">strftime</a></span>
101
+ <span style="padding-right: 5px;"><a href="#M000453">to_a</a></span>
102
+ <span style="padding-right: 5px;"><a href="#M000452">to_f</a></span>
103
+ <span style="padding-right: 5px;"><a href="#M000454">to_h</a></span>
104
+ <span style="padding-right: 5px;"><a href="#M000451">to_i</a></span>
105
+ <span style="padding-right: 5px;"><a href="#M000455">to_s</a></span>
106
+ <span style="padding-right: 5px;"><a href="#M000464">total</a></span>
107
+ <span style="padding-right: 5px;"><a href="#M000459">weeks</a></span>
108
+ <span style="padding-right: 5px;"><a href="#M000458">years</a></span>
118
109
 
119
110
  <div class="sectiontitle">Included Modules</div>
120
111
  <ul>
121
112
  <li>Comparable</li>
122
- <li><a href="Enumerable.html">Enumerable</a></li>
123
113
  </ul>
124
114
 
125
115
 
116
+ <div class="sectiontitle">Classes and Modules</div>
117
+ Module <a href="Duration/Numeric.html" class="link">Duration::Numeric</a><br />
118
+ Module <a href="Duration/Time.html" class="link">Duration::Time</a><br />
119
+
126
120
 
127
121
  <div class="sectiontitle">Constants</div>
128
122
  <table border='0' cellpadding='5'>
129
123
  <tr valign='top'>
130
- <td class="attr-name">WEEK</td>
124
+ <td class="attr-name">SECOND</td>
131
125
  <td>=</td>
132
- <td class="attr-value">60 * 60 * 24 * 7</td>
126
+ <td class="attr-value">1</td>
133
127
  </tr>
134
128
  <tr valign='top'>
135
- <td class="attr-name">DAY</td>
129
+ <td class="attr-name">MINUTE</td>
136
130
  <td>=</td>
137
- <td class="attr-value">60 * 60 * 24</td>
131
+ <td class="attr-value">60 * SECOND</td>
138
132
  </tr>
139
133
  <tr valign='top'>
140
134
  <td class="attr-name">HOUR</td>
141
135
  <td>=</td>
142
- <td class="attr-value">60 * 60</td>
136
+ <td class="attr-value">60 * MINUTE</td>
143
137
  </tr>
144
138
  <tr valign='top'>
145
- <td class="attr-name">MINUTE</td>
139
+ <td class="attr-name">DAY</td>
146
140
  <td>=</td>
147
- <td class="attr-value">60</td>
141
+ <td class="attr-value">24 * HOUR</td>
148
142
  </tr>
149
143
  <tr valign='top'>
150
- <td class="attr-name">SECOND</td>
144
+ <td class="attr-name">WEEK</td>
151
145
  <td>=</td>
152
- <td class="attr-value">1</td>
146
+ <td class="attr-value">7 * DAY</td>
153
147
  </tr>
154
- </table>
155
-
156
- <div class="sectiontitle">Attributes</div>
157
- <table border='0' cellpadding='5'>
158
148
  <tr valign='top'>
159
- <td class='attr-rw'>
160
- [R]
161
- </td>
162
- <td class='attr-name'>days</td>
163
- <td class='attr-desc'></td>
164
- </tr>
165
- <tr valign='top'>
166
- <td class='attr-rw'>
167
- [R]
168
- </td>
169
- <td class='attr-name'>hours</td>
170
- <td class='attr-desc'></td>
171
- </tr>
172
- <tr valign='top'>
173
- <td class='attr-rw'>
174
- [R]
175
- </td>
176
- <td class='attr-name'>minutes</td>
177
- <td class='attr-desc'></td>
178
- </tr>
179
- <tr valign='top'>
180
- <td class='attr-rw'>
181
- [R]
182
- </td>
183
- <td class='attr-name'>total</td>
184
- <td class='attr-desc'></td>
149
+ <td class="attr-name">YEAR</td>
150
+ <td>=</td>
151
+ <td class="attr-value">365 * DAY</td>
185
152
  </tr>
186
153
  <tr valign='top'>
187
- <td class='attr-rw'>
188
- [R]
189
- </td>
190
- <td class='attr-name'>weeks</td>
191
- <td class='attr-desc'></td>
154
+ <td class="attr-name">SEGMENTS</td>
155
+ <td>=</td>
156
+ <td class="attr-value">%w{years weeks days hours minutes seconds}.collect{ |s| s.to_sym }</td>
192
157
  </tr>
193
158
  </table>
194
159
 
160
+
195
161
  <div class="sectiontitle">Public Class methods</div>
196
162
  <div class="method">
197
163
  <div class="title">
198
- <a name="M000458"></a><b>new</b>(seconds_or_attr = 0)
164
+ <a name="M000446"></a><b>[]</b>(seconds, *segments)
199
165
  </div>
200
- <div class="description">
201
- <p>
202
- Initialize <a href="Duration.html">Duration</a> class.
203
- </p>
204
- <p>
205
- <b>Example</b>
206
- </p>
166
+ <div class="sourcecode">
167
+ <p class="source-link">[ <a href="javascript:toggleSource('M000446_source')" id="l_M000446_source">+</a> ]</p>
168
+ <div id="M000446_source" class="dyn-source">
207
169
  <pre>
208
- d = Duration.new(60 * 60 * 24 * 10 + 120 + 30)
209
- =&gt; #&lt;Duration: 1 week, 3 days, 2 minutes and 30 seconds&gt;
210
- d = Duration.new(:weeks =&gt; 1, :days =&gt; 3, :minutes =&gt; 2, :seconds =&gt; 30)
211
- =&gt; #&lt;Duration: 1 week, 3 days, 2 minutes and 30 seconds&gt;
170
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 14</span>
171
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-operator">[]</span>(<span class="ruby-identifier">seconds</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">segments</span>)
172
+ <span class="ruby-identifier">new</span>(<span class="ruby-identifier">seconds</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">segments</span>)
173
+ <span class="ruby-keyword kw">end</span>
212
174
  </pre>
213
175
  </div>
176
+ </div>
177
+ </div>
178
+ <div class="method">
179
+ <div class="title">
180
+ <a name="M000447"></a><b>new</b>(seconds=0, *segments)
181
+ </div>
214
182
  <div class="sourcecode">
215
- <p class="source-link">[ <a href="javascript:toggleSource('M000458_source')" id="l_M000458_source">+</a> ]</p>
216
- <div id="M000458_source" class="dyn-source">
183
+ <p class="source-link">[ <a href="javascript:toggleSource('M000447_source')" id="l_M000447_source">+</a> ]</p>
184
+ <div id="M000447_source" class="dyn-source">
217
185
  <pre>
218
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 71</span>
219
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">seconds_or_attr</span> = <span class="ruby-value">0</span>)
220
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">seconds_or_attr</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Hash</span>
221
- <span class="ruby-comment cmt"># Part-&gt;time map table.</span>
222
- <span class="ruby-identifier">h</span> = {<span class="ruby-identifier">:weeks</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">WEEK</span>, <span class="ruby-identifier">:days</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">DAY</span>, <span class="ruby-identifier">:hours</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">HOUR</span>, <span class="ruby-identifier">:minutes</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">MINUTE</span>, <span class="ruby-identifier">:seconds</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">SECOND</span>}
223
-
224
- <span class="ruby-comment cmt"># Loop through each valid part, ignore all others.</span>
225
- <span class="ruby-identifier">seconds</span> = <span class="ruby-identifier">seconds_or_attr</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sec</span>, <span class="ruby-identifier">args</span><span class="ruby-operator">|</span>
226
- <span class="ruby-comment cmt"># Grab the part of the duration (week, day, whatever) and the number of seconds for it.</span>
227
- <span class="ruby-identifier">part</span>, <span class="ruby-identifier">time</span> = <span class="ruby-identifier">args</span>
228
-
229
- <span class="ruby-comment cmt"># Map each part to their number of seconds and the given value.</span>
230
- <span class="ruby-comment cmt"># {:weeks =&gt; 2} maps to h[:weeks] -- so... weeks = WEEK * 2</span>
231
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">prt</span> = <span class="ruby-identifier">part</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">to_sym</span>) <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">sec</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">time</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">prt</span>] <span class="ruby-keyword kw">else</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">end</span>
232
- <span class="ruby-keyword kw">end</span>
233
- <span class="ruby-keyword kw">else</span>
234
- <span class="ruby-identifier">seconds</span> = <span class="ruby-identifier">seconds_or_attr</span>
235
- <span class="ruby-keyword kw">end</span>
236
-
237
- <span class="ruby-ivar">@total</span>, <span class="ruby-identifier">array</span> = <span class="ruby-identifier">seconds</span>.<span class="ruby-identifier">to_f</span>.<span class="ruby-identifier">round</span>, []
238
- <span class="ruby-ivar">@seconds</span> = [<span class="ruby-constant">WEEK</span>, <span class="ruby-constant">DAY</span>, <span class="ruby-constant">HOUR</span>, <span class="ruby-constant">MINUTE</span>].<span class="ruby-identifier">inject</span>(<span class="ruby-ivar">@total</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">left</span>, <span class="ruby-identifier">part</span><span class="ruby-operator">|</span>
239
- <span class="ruby-identifier">array</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">left</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">part</span>; <span class="ruby-identifier">left</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">part</span>
240
- <span class="ruby-keyword kw">end</span>
241
-
242
- <span class="ruby-ivar">@weeks</span>, <span class="ruby-ivar">@days</span>, <span class="ruby-ivar">@hours</span>, <span class="ruby-ivar">@minutes</span> = <span class="ruby-identifier">array</span>
243
- <span class="ruby-keyword kw">end</span>
186
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 19</span>
187
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">seconds</span>=<span class="ruby-value">0</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">segments</span>)
188
+ <span class="ruby-ivar">@seconds</span> = <span class="ruby-identifier">seconds</span>.<span class="ruby-identifier">to_i</span>
189
+ <span class="ruby-identifier">reset_segments</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">segments</span>)
190
+ <span class="ruby-keyword kw">end</span>
244
191
  </pre>
245
192
  </div>
246
193
  </div>
@@ -248,396 +195,295 @@ Initialize <a href="Duration.html">Duration</a> class.
248
195
  <div class="sectiontitle">Public Instance methods</div>
249
196
  <div class="method">
250
197
  <div class="title">
251
- <a name="M000472"></a><b>*</b>(other)
252
- </div>
253
- <div class="description">
254
- <p>
255
- Multiply two Durations.
256
- </p>
257
- <p>
258
- <b>Example</b>
259
- </p>
260
- <pre>
261
- d = Duration.new(30)
262
- =&gt; #&lt;Duration: 30 seconds&gt;
263
- d * 2
264
- =&gt; #&lt;Duration: 1 minute&gt;
265
- </pre>
198
+ <a name="M000465"></a><b>+</b>(other)
266
199
  </div>
267
200
  <div class="sourcecode">
268
- <p class="source-link">[ <a href="javascript:toggleSource('M000472_source')" id="l_M000472_source">+</a> ]</p>
269
- <div id="M000472_source" class="dyn-source">
201
+ <p class="source-link">[ <a href="javascript:toggleSource('M000465_source')" id="l_M000465_source">+</a> ]</p>
202
+ <div id="M000465_source" class="dyn-source">
270
203
  <pre>
271
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 332</span>
272
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">*</span>(<span class="ruby-identifier">other</span>)
273
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@total</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_i</span>)
274
- <span class="ruby-keyword kw">end</span>
204
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 123</span>
205
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">other</span>)
206
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@seconds</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">segments</span>)
207
+ <span class="ruby-keyword kw">end</span>
275
208
  </pre>
276
209
  </div>
277
210
  </div>
278
211
  </div>
279
212
  <div class="method">
280
213
  <div class="title">
281
- <a name="M000470"></a><b>+</b>(other)
282
- </div>
283
- <div class="description">
284
- <p>
285
- Add to <a href="Duration.html">Duration</a>.
286
- </p>
287
- <p>
288
- <b>Example</b>
289
- </p>
290
- <pre>
291
- d = Duration.new(30)
292
- =&gt; #&lt;Duration: 30 seconds&gt;
293
- d + 30
294
- =&gt; #&lt;Duration: 1 minute&gt;
295
- </pre>
214
+ <a name="M000467"></a><b>+</b>(other)
296
215
  </div>
297
216
  <div class="sourcecode">
298
- <p class="source-link">[ <a href="javascript:toggleSource('M000470_source')" id="l_M000470_source">+</a> ]</p>
299
- <div id="M000470_source" class="dyn-source">
217
+ <p class="source-link">[ <a href="javascript:toggleSource('M000467_source')" id="l_M000467_source">+</a> ]</p>
218
+ <div id="M000467_source" class="dyn-source">
300
219
  <pre>
301
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 306</span>
302
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">other</span>)
303
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@total</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_i</span>)
304
- <span class="ruby-keyword kw">end</span>
220
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 131</span>
221
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">other</span>)
222
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@seconds</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">segments</span>)
223
+ <span class="ruby-keyword kw">end</span>
305
224
  </pre>
306
225
  </div>
307
226
  </div>
308
227
  </div>
309
228
  <div class="method">
310
229
  <div class="title">
311
- <a name="M000471"></a><b>-</b>(other)
312
- </div>
313
- <div class="description">
314
- <p>
315
- Subtract from <a href="Duration.html">Duration</a>.
316
- </p>
317
- <p>
318
- <b>Example</b>
319
- </p>
320
- <pre>
321
- d = Duration.new(30)
322
- =&gt; #&lt;Duration: 30 seconds&gt;
323
- d - 15
324
- =&gt; #&lt;Duration: 15 seconds&gt;
325
- </pre>
230
+ <a name="M000466"></a><b>-</b>(other)
326
231
  </div>
327
232
  <div class="sourcecode">
328
- <p class="source-link">[ <a href="javascript:toggleSource('M000471_source')" id="l_M000471_source">+</a> ]</p>
329
- <div id="M000471_source" class="dyn-source">
233
+ <p class="source-link">[ <a href="javascript:toggleSource('M000466_source')" id="l_M000466_source">+</a> ]</p>
234
+ <div id="M000466_source" class="dyn-source">
330
235
  <pre>
331
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 319</span>
332
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">other</span>)
333
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@total</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_i</span>)
334
- <span class="ruby-keyword kw">end</span>
236
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 127</span>
237
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">other</span>)
238
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@seconds</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">segments</span>)
239
+ <span class="ruby-keyword kw">end</span>
335
240
  </pre>
336
241
  </div>
337
242
  </div>
338
243
  </div>
339
244
  <div class="method">
340
245
  <div class="title">
341
- <a name="M000473"></a><b>/</b>(other)
246
+ <a name="M000468"></a><b>/</b>(other)
342
247
  </div>
343
- <div class="description">
344
- <p>
345
- Divide two Durations.
346
- </p>
347
- <p>
348
- <b>Example</b>
349
- </p>
248
+ <div class="sourcecode">
249
+ <p class="source-link">[ <a href="javascript:toggleSource('M000468_source')" id="l_M000468_source">+</a> ]</p>
250
+ <div id="M000468_source" class="dyn-source">
350
251
  <pre>
351
- d = Duration.new(30)
352
- =&gt; #&lt;Duration: 30 seconds&gt;
353
- d / 2
354
- =&gt; #&lt;Duration: 15 seconds&gt;
252
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 135</span>
253
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">/</span>(<span class="ruby-identifier">other</span>)
254
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@seconds</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">segments</span>)
255
+ <span class="ruby-keyword kw">end</span>
355
256
  </pre>
356
257
  </div>
258
+ </div>
259
+ </div>
260
+ <div class="method">
261
+ <div class="title">
262
+ <a name="M000457"></a><b>&lt;=&gt;</b>(other)
263
+ </div>
357
264
  <div class="sourcecode">
358
- <p class="source-link">[ <a href="javascript:toggleSource('M000473_source')" id="l_M000473_source">+</a> ]</p>
359
- <div id="M000473_source" class="dyn-source">
265
+ <p class="source-link">[ <a href="javascript:toggleSource('M000457_source')" id="l_M000457_source">+</a> ]</p>
266
+ <div id="M000457_source" class="dyn-source">
360
267
  <pre>
361
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 345</span>
362
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">/</span>(<span class="ruby-identifier">other</span>)
363
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@total</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_i</span>)
364
- <span class="ruby-keyword kw">end</span>
268
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 102</span>
269
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;=&gt;</span>(<span class="ruby-identifier">other</span>)
270
+ <span class="ruby-ivar">@seconds</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_i</span>
271
+ <span class="ruby-keyword kw">end</span>
365
272
  </pre>
366
273
  </div>
367
274
  </div>
368
275
  </div>
369
276
  <div class="method">
370
277
  <div class="title">
371
- <a name="M000462"></a><b>&lt;=&gt;</b>(other)
278
+ <a name="M000456"></a><b>==</b>(other)
372
279
  </div>
373
280
  <div class="description">
374
281
  <p>
375
- Calls `&lt;=&gt;&#8217; on Duration#total.
282
+ Returns true if <tt>other</tt> is also a <a
283
+ href="Duration.html">Duration</a> instance with the same <tt>value</tt>, or
284
+ if <tt>other == value</tt>.
376
285
  </p>
377
- <p>
378
- <b>Example</b>
379
- </p>
380
- <pre>
381
- 5.days == 24.hours * 5
382
- =&gt; true
383
- </pre>
384
286
  </div>
385
287
  <div class="sourcecode">
386
- <p class="source-link">[ <a href="javascript:toggleSource('M000462_source')" id="l_M000462_source">+</a> ]</p>
387
- <div id="M000462_source" class="dyn-source">
388
- <pre>
389
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 194</span>
390
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;=&gt;</span>(<span class="ruby-identifier">other</span>)
391
- <span class="ruby-ivar">@total</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_i</span>
288
+ <p class="source-link">[ <a href="javascript:toggleSource('M000456_source')" id="l_M000456_source">+</a> ]</p>
289
+ <div id="M000456_source" class="dyn-source">
290
+ <pre>
291
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 94</span>
292
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">other</span>)
293
+ <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Duration</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">other</span>
294
+ <span class="ruby-identifier">other</span>.<span class="ruby-identifier">seconds</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">seconds</span>
295
+ <span class="ruby-keyword kw">else</span>
296
+ <span class="ruby-identifier">other</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">seconds</span>
392
297
  <span class="ruby-keyword kw">end</span>
298
+ <span class="ruby-keyword kw">end</span>
393
299
  </pre>
394
300
  </div>
395
301
  </div>
396
302
  </div>
397
303
  <div class="method">
398
304
  <div class="title">
399
- <a name="M000464"></a><b>days=</b>(n)
305
+ <a name="M000472"></a><b>after</b>(time)
400
306
  </div>
401
- <div class="description">
402
- <p>
403
- Set the number of days.
404
- </p>
405
- <p>
406
- <b>Example</b>
407
- </p>
307
+ <div class="sourcecode">
308
+ <p class="source-link">[ <a href="javascript:toggleSource('M000472_source')" id="l_M000472_source">+</a> ]</p>
309
+ <div id="M000472_source" class="dyn-source">
408
310
  <pre>
409
- d = Duration.new(0)
410
- =&gt; #&lt;Duration: ...&gt;
411
- d.days = 5; d
412
- =&gt; #&lt;Duration: 5 days&gt;
311
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 211</span>
312
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">after</span>(<span class="ruby-identifier">time</span>)
313
+ <span class="ruby-ivar">@seconds</span>.<span class="ruby-identifier">after</span>(<span class="ruby-identifier">time</span>)
314
+ <span class="ruby-keyword kw">end</span>
413
315
  </pre>
414
316
  </div>
317
+ </div>
318
+ </div>
319
+ <div class="method">
320
+ <div class="title">
321
+ <a name="M000471"></a><b>before</b>(time)
322
+ </div>
415
323
  <div class="sourcecode">
416
- <p class="source-link">[ <a href="javascript:toggleSource('M000464_source')" id="l_M000464_source">+</a> ]</p>
417
- <div id="M000464_source" class="dyn-source">
324
+ <p class="source-link">[ <a href="javascript:toggleSource('M000471_source')" id="l_M000471_source">+</a> ]</p>
325
+ <div id="M000471_source" class="dyn-source">
418
326
  <pre>
419
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 220</span>
420
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">days=</span>(<span class="ruby-identifier">n</span>)
421
- <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">:days</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">n</span>, <span class="ruby-identifier">:seconds</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@total</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">seconds</span>(<span class="ruby-identifier">:days</span>))
422
- <span class="ruby-keyword kw">end</span>
327
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 206</span>
328
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">before</span>(<span class="ruby-identifier">time</span>)
329
+ <span class="ruby-ivar">@seconds</span>.<span class="ruby-identifier">before</span>(<span class="ruby-identifier">time</span>)
330
+ <span class="ruby-keyword kw">end</span>
423
331
  </pre>
424
332
  </div>
425
333
  </div>
426
334
  </div>
427
335
  <div class="method">
428
336
  <div class="title">
429
- <a name="M000461"></a><b>each</b>() {|part, time| ...}
337
+ <a name="M000460"></a><b>days</b>()
430
338
  </div>
431
- <div class="description">
432
- <p>
433
- For iterating through the duration set of weeks, days, hours, minutes, and
434
- <a href="Duration.html#M000460">seconds</a>.
435
- </p>
436
- <p>
437
- <b>Example</b>
438
- </p>
439
- <pre>
440
- Duration.new(:weeks =&gt; 1, :seconds =&gt; 30).each do |part, time|
441
- puts &quot;part: #{part}, time: #{time}&quot;
442
- end
443
- </pre>
444
- <p>
445
- <em>Output</em>
446
- </p>
339
+ <div class="sourcecode">
340
+ <p class="source-link">[ <a href="javascript:toggleSource('M000460_source')" id="l_M000460_source">+</a> ]</p>
341
+ <div id="M000460_source" class="dyn-source">
447
342
  <pre>
448
- part: weeks, time: 1
449
- part: days, time: 0
450
- part: hours, time: 0
451
- part: minutes, time: 0
452
- part: seconds, time: 30
343
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 116</span>
344
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">days</span> ; <span class="ruby-identifier">to_h</span>[<span class="ruby-identifier">:days</span>] ; <span class="ruby-keyword kw">end</span>
453
345
  </pre>
454
346
  </div>
347
+ </div>
348
+ </div>
349
+ <div class="method">
350
+ <div class="title">
351
+ <a name="M000461"></a><b>hours</b>()
352
+ </div>
455
353
  <div class="sourcecode">
456
354
  <p class="source-link">[ <a href="javascript:toggleSource('M000461_source')" id="l_M000461_source">+</a> ]</p>
457
355
  <div id="M000461_source" class="dyn-source">
458
356
  <pre>
459
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 176</span>
460
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
461
- [[<span class="ruby-value str">'weeks'</span> , <span class="ruby-ivar">@weeks</span> ],
462
- [<span class="ruby-value str">'days'</span> , <span class="ruby-ivar">@days</span> ],
463
- [<span class="ruby-value str">'hours'</span> , <span class="ruby-ivar">@hours</span> ],
464
- [<span class="ruby-value str">'minutes'</span> , <span class="ruby-ivar">@minutes</span>],
465
- [<span class="ruby-value str">'seconds'</span> , <span class="ruby-ivar">@seconds</span>]].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">part</span>, <span class="ruby-identifier">time</span><span class="ruby-operator">|</span>
466
- <span class="ruby-comment cmt"># Yield to block</span>
467
- <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">part</span>, <span class="ruby-identifier">time</span>
468
- <span class="ruby-keyword kw">end</span>
469
- <span class="ruby-keyword kw">end</span>
357
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 117</span>
358
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hours</span> ; <span class="ruby-identifier">to_h</span>[<span class="ruby-identifier">:hours</span>] ; <span class="ruby-keyword kw">end</span>
470
359
  </pre>
471
360
  </div>
472
361
  </div>
473
362
  </div>
474
363
  <div class="method">
475
364
  <div class="title">
476
- <a name="M000465"></a><b>hours=</b>(n)
477
- </div>
478
- <div class="description">
479
- <p>
480
- Set the number of hours.
481
- </p>
482
- <p>
483
- <b>Example</b>
484
- </p>
485
- <pre>
486
- d = Duration.new(0)
487
- =&gt; #&lt;Duration: ...&gt;
488
- d.hours = 5; d
489
- =&gt; #&lt;Duration: 5 hours&gt;
490
- </pre>
365
+ <a name="M000450"></a><b>inspect</b>()
491
366
  </div>
492
367
  <div class="sourcecode">
493
- <p class="source-link">[ <a href="javascript:toggleSource('M000465_source')" id="l_M000465_source">+</a> ]</p>
494
- <div id="M000465_source" class="dyn-source">
368
+ <p class="source-link">[ <a href="javascript:toggleSource('M000450_source')" id="l_M000450_source">+</a> ]</p>
369
+ <div id="M000450_source" class="dyn-source">
495
370
  <pre>
496
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 233</span>
497
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hours=</span>(<span class="ruby-identifier">n</span>)
498
- <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">:hours</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">n</span>, <span class="ruby-identifier">:seconds</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@total</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">seconds</span>(<span class="ruby-identifier">:hours</span>))
499
- <span class="ruby-keyword kw">end</span>
371
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 50</span>
372
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inspect</span>
373
+ <span class="ruby-identifier">h</span> = <span class="ruby-identifier">to_h</span>
374
+ <span class="ruby-identifier">segments</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">collect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span>
375
+ <span class="ruby-node">&quot;#{h[l.to_sym]} #{l}&quot;</span>
376
+ <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>)
377
+ <span class="ruby-keyword kw">end</span>
500
378
  </pre>
501
379
  </div>
502
380
  </div>
503
381
  </div>
504
382
  <div class="method">
505
383
  <div class="title">
506
- <a name="M000469"></a><b>inspect</b>()
507
- </div>
508
- <div class="description">
509
- <p>
510
- Inspection string&#8212;Similar to <a href="Duration.html#M000468">to_s</a>
511
- except that it has the class name.
512
- </p>
513
- <p>
514
- <b>Example</b>
515
- </p>
516
- <pre>
517
- Duration.new(:seconds =&gt; 140)
518
- =&gt; #&lt;Duration: 2 minutes and 20 seconds&gt;
519
- </pre>
384
+ <a name="M000462"></a><b>minutes</b>()
520
385
  </div>
521
386
  <div class="sourcecode">
522
- <p class="source-link">[ <a href="javascript:toggleSource('M000469_source')" id="l_M000469_source">+</a> ]</p>
523
- <div id="M000469_source" class="dyn-source">
387
+ <p class="source-link">[ <a href="javascript:toggleSource('M000462_source')" id="l_M000462_source">+</a> ]</p>
388
+ <div id="M000462_source" class="dyn-source">
524
389
  <pre>
525
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 293</span>
526
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inspect</span>
527
- <span class="ruby-node">&quot;#&lt;#{self.class}: #{(s = to_s).empty? ? '...' : s}&gt;&quot;</span>
528
- <span class="ruby-keyword kw">end</span>
390
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 118</span>
391
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">minutes</span> ; <span class="ruby-identifier">to_h</span>[<span class="ruby-identifier">:minutes</span>] ; <span class="ruby-keyword kw">end</span>
529
392
  </pre>
530
393
  </div>
531
394
  </div>
532
395
  </div>
533
396
  <div class="method">
534
397
  <div class="title">
535
- <a name="M000466"></a><b>minutes=</b>(n)
536
- </div>
537
- <div class="description">
538
- <p>
539
- Set the number of minutes.
540
- </p>
541
- <p>
542
- <b>Example</b>
543
- </p>
544
- <pre>
545
- d = Duration.new(0)
546
- =&gt; #&lt;Duration: ...&gt;
547
- d.minutes = 30; d
548
- =&gt; #&lt;Duration: 30 minutes&gt;
549
- </pre>
398
+ <a name="M000449"></a><b>reset_segments</b>(*segments)
550
399
  </div>
551
400
  <div class="sourcecode">
552
- <p class="source-link">[ <a href="javascript:toggleSource('M000466_source')" id="l_M000466_source">+</a> ]</p>
553
- <div id="M000466_source" class="dyn-source">
554
- <pre>
555
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 246</span>
556
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">minutes=</span>(<span class="ruby-identifier">n</span>)
557
- <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">:minutes</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">n</span>, <span class="ruby-identifier">:seconds</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@total</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">seconds</span>(<span class="ruby-identifier">:minutes</span>))
401
+ <p class="source-link">[ <a href="javascript:toggleSource('M000449_source')" id="l_M000449_source">+</a> ]</p>
402
+ <div id="M000449_source" class="dyn-source">
403
+ <pre>
404
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 28</span>
405
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset_segments</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">segments</span>)
406
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">segments</span>.<span class="ruby-identifier">size</span>
407
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value">0</span>
408
+ <span class="ruby-ivar">@segments</span> = [<span class="ruby-identifier">:days</span>, <span class="ruby-identifier">:hours</span>, <span class="ruby-identifier">:minutes</span>, <span class="ruby-identifier">:seconds</span>]
409
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value">1</span>
410
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">segments</span> = <span class="ruby-identifier">segments</span>[<span class="ruby-value">0</span>]
411
+ <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
412
+ <span class="ruby-ivar">@segments</span> = <span class="ruby-identifier">segments</span>.<span class="ruby-identifier">collect</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> (<span class="ruby-identifier">p</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'s'</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'s'</span>).<span class="ruby-identifier">to_sym</span> }
413
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">all?</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-constant">SEGMENTS</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">s</span>) }
414
+ <span class="ruby-keyword kw">else</span>
415
+ <span class="ruby-identifier">f</span> = <span class="ruby-constant">SEGMENTS</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">segments</span>)
416
+ <span class="ruby-ivar">@segments</span> = <span class="ruby-constant">SEGMENTS</span>[<span class="ruby-identifier">f</span><span class="ruby-operator">..</span><span class="ruby-value">0</span>]
417
+ <span class="ruby-keyword kw">end</span>
418
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value">2</span>
419
+ <span class="ruby-identifier">f</span> = <span class="ruby-constant">SEGMENTS</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-value">0</span>])
420
+ <span class="ruby-identifier">t</span> = <span class="ruby-constant">SEGMENTS</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-value">1</span>])
421
+ <span class="ruby-ivar">@segments</span> = <span class="ruby-constant">SEGMENTS</span>[<span class="ruby-identifier">f</span><span class="ruby-operator">..</span><span class="ruby-identifier">t</span>]
422
+ <span class="ruby-keyword kw">else</span>
423
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>
558
424
  <span class="ruby-keyword kw">end</span>
425
+ <span class="ruby-keyword kw">end</span>
559
426
  </pre>
560
427
  </div>
561
428
  </div>
562
429
  </div>
563
430
  <div class="method">
564
431
  <div class="title">
565
- <a name="M000460"></a><b>seconds</b>(part = nil)
566
- </div>
567
- <div class="description">
568
- <p>
569
- Get the number of <a href="Duration.html#M000460">seconds</a> of a given
570
- part, or simply just get the number of <a
571
- href="Duration.html#M000460">seconds</a>.
572
- </p>
573
- <p>
574
- <b>Example</b>
575
- </p>
576
- <pre>
577
- d = Duration.new(:weeks =&gt; 1, :days =&gt; 1, :hours =&gt; 1, :seconds =&gt; 30)
578
- =&gt; #&lt;Duration: 1 week, 1 day, 1 hour and 30 seconds&gt;
579
- d.seconds(:weeks)
580
- =&gt; 604800
581
- d.seconds(:days)
582
- =&gt; 86400
583
- d.seconds(:hours)
584
- =&gt; 3600
585
- d.seconds
586
- =&gt; 30
587
- </pre>
432
+ <a name="M000463"></a><b>seconds</b>()
588
433
  </div>
589
434
  <div class="sourcecode">
590
- <p class="source-link">[ <a href="javascript:toggleSource('M000460_source')" id="l_M000460_source">+</a> ]</p>
591
- <div id="M000460_source" class="dyn-source">
435
+ <p class="source-link">[ <a href="javascript:toggleSource('M000463_source')" id="l_M000463_source">+</a> ]</p>
436
+ <div id="M000463_source" class="dyn-source">
592
437
  <pre>
593
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 148</span>
594
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">seconds</span>(<span class="ruby-identifier">part</span> = <span class="ruby-keyword kw">nil</span>)
595
- <span class="ruby-comment cmt"># Table mapping</span>
596
- <span class="ruby-identifier">h</span> = {<span class="ruby-identifier">:weeks</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">WEEK</span>, <span class="ruby-identifier">:days</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">DAY</span>, <span class="ruby-identifier">:hours</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">HOUR</span>, <span class="ruby-identifier">:minutes</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">MINUTE</span>}
597
-
598
- <span class="ruby-keyword kw">if</span> [<span class="ruby-identifier">:weeks</span>, <span class="ruby-identifier">:days</span>, <span class="ruby-identifier">:hours</span>, <span class="ruby-identifier">:minutes</span>].<span class="ruby-identifier">include?</span> <span class="ruby-identifier">part</span>
599
- <span class="ruby-identifier">__send__</span>(<span class="ruby-identifier">part</span>) <span class="ruby-operator">*</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">part</span>]
600
- <span class="ruby-keyword kw">else</span>
601
- <span class="ruby-ivar">@seconds</span>
602
- <span class="ruby-keyword kw">end</span>
603
- <span class="ruby-keyword kw">end</span>
438
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 119</span>
439
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">seconds</span> ; <span class="ruby-identifier">to_h</span>[<span class="ruby-identifier">:seconds</span>] ; <span class="ruby-keyword kw">end</span>
604
440
  </pre>
605
441
  </div>
606
442
  </div>
607
443
  </div>
608
444
  <div class="method">
609
445
  <div class="title">
610
- <a name="M000467"></a><b>seconds=</b>(n)
446
+ <a name="M000469"></a><b>segmented</b>(*segments)
611
447
  </div>
612
- <div class="description">
613
- <p>
614
- Set the number of minutes.
615
- </p>
616
- <p>
617
- <b>Example</b>
618
- </p>
448
+ <div class="sourcecode">
449
+ <p class="source-link">[ <a href="javascript:toggleSource('M000469_source')" id="l_M000469_source">+</a> ]</p>
450
+ <div id="M000469_source" class="dyn-source">
619
451
  <pre>
620
- d = Duration.new(0)
621
- =&gt; #&lt;Duration: ...&gt;
622
- d.seconds = 30; d
623
- =&gt; #&lt;Duration: 30 seconds&gt;
452
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 140</span>
453
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">segmented</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">segments</span>)
454
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@seconds</span>, <span class="ruby-identifier">segments</span>)
455
+ <span class="ruby-comment cmt">#segments = segments.collect{ |p| p.to_s.downcase.chomp('s') }</span>
456
+ <span class="ruby-comment cmt">#y,w,d,h,m,s = nil,nil,nil,nil,nil,nil</span>
457
+ <span class="ruby-comment cmt">#x = @seconds</span>
458
+ <span class="ruby-comment cmt">#y, x = *x.divmod(YEAR) if segments.include?('year')</span>
459
+ <span class="ruby-comment cmt">#w, x = *x.divmod(WEEK) if segments.include?('week')</span>
460
+ <span class="ruby-comment cmt">#d, x = *x.divmod(DAY) if segments.include?('day')</span>
461
+ <span class="ruby-comment cmt">#h, x = *x.divmod(HOUR) if segments.include?('hour')</span>
462
+ <span class="ruby-comment cmt">#m, x = *x.divmod(MINUTE) if segments.include?('minute')</span>
463
+ <span class="ruby-comment cmt">#s = x if segments.include?('second')</span>
464
+ <span class="ruby-comment cmt">#[y, w, d, h, m, s].compact</span>
465
+ <span class="ruby-keyword kw">end</span>
624
466
  </pre>
625
467
  </div>
468
+ </div>
469
+ </div>
470
+ <div class="method">
471
+ <div class="title">
472
+ <a name="M000448"></a><b>segments</b>()
473
+ </div>
626
474
  <div class="sourcecode">
627
- <p class="source-link">[ <a href="javascript:toggleSource('M000467_source')" id="l_M000467_source">+</a> ]</p>
628
- <div id="M000467_source" class="dyn-source">
475
+ <p class="source-link">[ <a href="javascript:toggleSource('M000448_source')" id="l_M000448_source">+</a> ]</p>
476
+ <div id="M000448_source" class="dyn-source">
629
477
  <pre>
630
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 259</span>
631
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">seconds=</span>(<span class="ruby-identifier">n</span>)
632
- <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">:seconds</span> =<span class="ruby-operator">&gt;</span> (<span class="ruby-ivar">@total</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">n</span>) <span class="ruby-operator">-</span> <span class="ruby-ivar">@seconds</span>)
633
- <span class="ruby-keyword kw">end</span>
478
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 25</span>
479
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">segments</span>; <span class="ruby-ivar">@segments</span>; <span class="ruby-keyword kw">end</span>
634
480
  </pre>
635
481
  </div>
636
482
  </div>
637
483
  </div>
638
484
  <div class="method">
639
485
  <div class="title">
640
- <a name="M000459"></a><b>strftime</b>(fmt)
486
+ <a name="M000470"></a><b>strftime</b>(fmt)
641
487
  </div>
642
488
  <div class="description">
643
489
  <p>
@@ -667,94 +513,172 @@ Format duration.
667
513
  </pre>
668
514
  </div>
669
515
  <div class="sourcecode">
670
- <p class="source-link">[ <a href="javascript:toggleSource('M000459_source')" id="l_M000459_source">+</a> ]</p>
671
- <div id="M000459_source" class="dyn-source">
516
+ <p class="source-link">[ <a href="javascript:toggleSource('M000470_source')" id="l_M000470_source">+</a> ]</p>
517
+ <div id="M000470_source" class="dyn-source">
672
518
  <pre>
673
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 117</span>
674
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">fmt</span>)
675
- <span class="ruby-identifier">h</span> =\
676
- {<span class="ruby-value str">'w'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@weeks</span> ,
677
- <span class="ruby-value str">'d'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@days</span> ,
678
- <span class="ruby-value str">'h'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@hours</span> ,
679
- <span class="ruby-value str">'m'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@minutes</span>,
680
- <span class="ruby-value str">'s'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@seconds</span>,
681
- <span class="ruby-value str">'t'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@total</span> ,
682
- <span class="ruby-value str">'x'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">to_s</span>}
683
-
684
- <span class="ruby-identifier">fmt</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/%?%(w|d|h|m|s|t|x)/</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>
685
- <span class="ruby-identifier">match</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">3</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">match</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">match</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]]
686
- <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-value str">'%%'</span>, <span class="ruby-value str">'%'</span>)
687
- <span class="ruby-keyword kw">end</span>
519
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 174</span>
520
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">fmt</span>)
521
+ <span class="ruby-identifier">h</span> = <span class="ruby-identifier">to_h</span>
522
+ <span class="ruby-identifier">hx</span> = {
523
+ <span class="ruby-value str">'y'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">:years</span>] ,
524
+ <span class="ruby-value str">'w'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">:weeks</span>] ,
525
+ <span class="ruby-value str">'d'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">:days</span>] ,
526
+ <span class="ruby-value str">'h'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">:hours</span>] ,
527
+ <span class="ruby-value str">'m'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">:minutes</span>],
528
+ <span class="ruby-value str">'s'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">:seconds</span>],
529
+ <span class="ruby-value str">'t'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">total</span>,
530
+ <span class="ruby-value str">'x'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">to_s</span>
531
+ }
532
+ <span class="ruby-identifier">fmt</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/%?%(w|d|h|m|s|t|x)/</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>
533
+ <span class="ruby-identifier">hx</span>[<span class="ruby-identifier">match</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]]
534
+ <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-value str">'%%'</span>, <span class="ruby-value str">'%'</span>)
535
+ <span class="ruby-keyword kw">end</span>
688
536
  </pre>
689
537
  </div>
690
538
  </div>
691
539
  </div>
692
540
  <div class="method">
693
541
  <div class="title">
694
- <a name="M000468"></a><b>to_s</b>()
542
+ <a name="M000453"></a><b>to_a</b>()
695
543
  </div>
696
- <div class="description">
697
- <p>
698
- Friendly, human-readable string representation of the duration.
699
- </p>
700
- <p>
701
- <b>Example</b>
702
- </p>
544
+ <div class="sourcecode">
545
+ <p class="source-link">[ <a href="javascript:toggleSource('M000453_source')" id="l_M000453_source">+</a> ]</p>
546
+ <div id="M000453_source" class="dyn-source">
703
547
  <pre>
704
- d = Duration.new(:seconds =&gt; 140)
705
- =&gt; #&lt;Duration: 2 minutes and 20 seconds&gt;
706
- d.to_s
707
- =&gt; &quot;2 minutes and 20 seconds&quot;
548
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 62</span>
549
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_a</span>
550
+ <span class="ruby-identifier">a</span>, <span class="ruby-identifier">s</span> = [], <span class="ruby-ivar">@seconds</span>
551
+ <span class="ruby-identifier">a</span>[<span class="ruby-value">5</span>], <span class="ruby-identifier">s</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-constant">YEAR</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:years</span>)
552
+ <span class="ruby-identifier">a</span>[<span class="ruby-value">4</span>], <span class="ruby-identifier">s</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-constant">WEEK</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:weeks</span>)
553
+ <span class="ruby-identifier">a</span>[<span class="ruby-value">3</span>], <span class="ruby-identifier">s</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-constant">DAY</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:days</span>)
554
+ <span class="ruby-identifier">a</span>[<span class="ruby-value">2</span>], <span class="ruby-identifier">s</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-constant">HOUR</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:hours</span>)
555
+ <span class="ruby-identifier">a</span>[<span class="ruby-value">1</span>], <span class="ruby-identifier">s</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-constant">MINUTE</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:minutes</span>)
556
+ <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">s</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-constant">SECOND</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:seconds</span>)
557
+ <span class="ruby-identifier">a</span>.<span class="ruby-identifier">compact</span>.<span class="ruby-identifier">reverse</span>
558
+ <span class="ruby-keyword kw">end</span>
708
559
  </pre>
709
560
  </div>
561
+ </div>
562
+ </div>
563
+ <div class="method">
564
+ <div class="title">
565
+ <a name="M000452"></a><b>to_f</b>()
566
+ </div>
710
567
  <div class="sourcecode">
711
- <p class="source-link">[ <a href="javascript:toggleSource('M000468_source')" id="l_M000468_source">+</a> ]</p>
712
- <div id="M000468_source" class="dyn-source">
568
+ <p class="source-link">[ <a href="javascript:toggleSource('M000452_source')" id="l_M000452_source">+</a> ]</p>
569
+ <div id="M000452_source" class="dyn-source">
713
570
  <pre>
714
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 272</span>
715
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
716
- <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
717
-
718
- <span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">part</span>, <span class="ruby-identifier">time</span><span class="ruby-operator">|</span>
719
- <span class="ruby-comment cmt"># Skip any zero times.</span>
720
- <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">time</span>.<span class="ruby-identifier">zero?</span>
721
-
722
- <span class="ruby-comment cmt"># Concatenate the part of the time and the time itself.</span>
723
- <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{time} #{time == 1 ? part[0..-2] : part}, &quot;</span>
724
- <span class="ruby-keyword kw">end</span>
725
-
726
- <span class="ruby-identifier">str</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">', '</span>).<span class="ruby-identifier">sub</span>(<span class="ruby-regexp re">/(.+), (.+)/</span>, <span class="ruby-value str">'\1 and \2'</span>)
727
- <span class="ruby-keyword kw">end</span>
571
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 58</span>
572
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_f</span> ; <span class="ruby-ivar">@seconds</span>.<span class="ruby-identifier">to_f</span> ; <span class="ruby-keyword kw">end</span>
573
+ </pre>
574
+ </div>
575
+ </div>
576
+ </div>
577
+ <div class="method">
578
+ <div class="title">
579
+ <a name="M000454"></a><b>to_h</b>()
580
+ </div>
581
+ <div class="sourcecode">
582
+ <p class="source-link">[ <a href="javascript:toggleSource('M000454_source')" id="l_M000454_source">+</a> ]</p>
583
+ <div id="M000454_source" class="dyn-source">
584
+ <pre>
585
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 74</span>
586
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_h</span>
587
+ <span class="ruby-identifier">h</span>, <span class="ruby-identifier">s</span> = {}, <span class="ruby-ivar">@seconds</span>
588
+ <span class="ruby-identifier">h</span>[<span class="ruby-identifier">:years</span>], <span class="ruby-identifier">s</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-constant">YEAR</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:years</span>)
589
+ <span class="ruby-identifier">h</span>[<span class="ruby-identifier">:weeks</span>], <span class="ruby-identifier">s</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-constant">WEEK</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:weeks</span>)
590
+ <span class="ruby-identifier">h</span>[<span class="ruby-identifier">:days</span>], <span class="ruby-identifier">s</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-constant">DAY</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:days</span>)
591
+ <span class="ruby-identifier">h</span>[<span class="ruby-identifier">:hours</span>], <span class="ruby-identifier">s</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-constant">HOUR</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:hours</span>)
592
+ <span class="ruby-identifier">h</span>[<span class="ruby-identifier">:minutes</span>], <span class="ruby-identifier">s</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-constant">MINUTE</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:minutes</span>)
593
+ <span class="ruby-identifier">h</span>[<span class="ruby-identifier">:seconds</span>], <span class="ruby-identifier">s</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">s</span>.<span class="ruby-identifier">divmod</span>(<span class="ruby-constant">SECOND</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@segments</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:seconds</span>)
594
+ <span class="ruby-identifier">h</span>
595
+ <span class="ruby-keyword kw">end</span>
596
+ </pre>
597
+ </div>
598
+ </div>
599
+ </div>
600
+ <div class="method">
601
+ <div class="title">
602
+ <a name="M000451"></a><b>to_i</b>()
603
+ </div>
604
+ <div class="sourcecode">
605
+ <p class="source-link">[ <a href="javascript:toggleSource('M000451_source')" id="l_M000451_source">+</a> ]</p>
606
+ <div id="M000451_source" class="dyn-source">
607
+ <pre>
608
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 57</span>
609
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_i</span> ; <span class="ruby-ivar">@seconds</span>.<span class="ruby-identifier">to_i</span> ; <span class="ruby-keyword kw">end</span>
610
+ </pre>
611
+ </div>
612
+ </div>
613
+ </div>
614
+ <div class="method">
615
+ <div class="title">
616
+ <a name="M000455"></a><b>to_s</b>()
617
+ </div>
618
+ <div class="sourcecode">
619
+ <p class="source-link">[ <a href="javascript:toggleSource('M000455_source')" id="l_M000455_source">+</a> ]</p>
620
+ <div id="M000455_source" class="dyn-source">
621
+ <pre>
622
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 85</span>
623
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
624
+ <span class="ruby-identifier">h</span> = <span class="ruby-identifier">to_h</span>
625
+ <span class="ruby-identifier">segments</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">collect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span>
626
+ <span class="ruby-node">&quot;#{h[l.to_sym]} #{l}&quot;</span>
627
+ <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>)
628
+ <span class="ruby-keyword kw">end</span>
629
+ </pre>
630
+ </div>
631
+ </div>
632
+ </div>
633
+ <div class="method">
634
+ <div class="title">
635
+ <a name="M000464"></a><b>total</b>()
636
+ </div>
637
+ <div class="sourcecode">
638
+ <p class="source-link">[ <a href="javascript:toggleSource('M000464_source')" id="l_M000464_source">+</a> ]</p>
639
+ <div id="M000464_source" class="dyn-source">
640
+ <pre>
641
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 121</span>
642
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">total</span> ; <span class="ruby-identifier">seconds</span> ; <span class="ruby-keyword kw">end</span>
643
+ </pre>
644
+ </div>
645
+ </div>
646
+ </div>
647
+ <div class="method">
648
+ <div class="title">
649
+ <a name="M000459"></a><b>weeks</b>()
650
+ </div>
651
+ <div class="sourcecode">
652
+ <p class="source-link">[ <a href="javascript:toggleSource('M000459_source')" id="l_M000459_source">+</a> ]</p>
653
+ <div id="M000459_source" class="dyn-source">
654
+ <pre>
655
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 115</span>
656
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weeks</span> ; <span class="ruby-identifier">to_h</span>[<span class="ruby-identifier">:weeks</span>] ; <span class="ruby-keyword kw">end</span>
728
657
  </pre>
729
658
  </div>
730
659
  </div>
731
660
  </div>
732
661
  <div class="method">
733
662
  <div class="title">
734
- <a name="M000463"></a><b>weeks=</b>(n)
663
+ <a name="M000458"></a><b>years</b>()
735
664
  </div>
736
665
  <div class="description">
737
666
  <p>
738
- Set the number of weeks.
739
- </p>
740
- <p>
741
- <b>Example</b>
667
+ def self.===(other) #:nodoc:
742
668
  </p>
743
669
  <pre>
744
- d = Duration.new(0)
745
- =&gt; #&lt;Duration: ...&gt;
746
- d.weeks = 2; d
747
- =&gt; #&lt;Duration: 2 weeks&gt;
670
+ other.is_a?(Duration) rescue super
748
671
  </pre>
672
+ <p>
673
+ end
674
+ </p>
749
675
  </div>
750
676
  <div class="sourcecode">
751
- <p class="source-link">[ <a href="javascript:toggleSource('M000463_source')" id="l_M000463_source">+</a> ]</p>
752
- <div id="M000463_source" class="dyn-source">
677
+ <p class="source-link">[ <a href="javascript:toggleSource('M000458_source')" id="l_M000458_source">+</a> ]</p>
678
+ <div id="M000458_source" class="dyn-source">
753
679
  <pre>
754
- <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 207</span>
755
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weeks=</span>(<span class="ruby-identifier">n</span>)
756
- <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">:weeks</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">n</span>, <span class="ruby-identifier">:seconds</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@total</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">seconds</span>(<span class="ruby-identifier">:weeks</span>))
757
- <span class="ruby-keyword kw">end</span>
680
+ <span class="ruby-comment cmt"># File lib/more/facets/duration.rb, line 114</span>
681
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">years</span> ; <span class="ruby-identifier">to_h</span>[<span class="ruby-identifier">:years</span>] ; <span class="ruby-keyword kw">end</span>
758
682
  </pre>
759
683
  </div>
760
684
  </div>