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
@@ -86,9 +86,9 @@ Wee::Component.
86
86
 
87
87
 
88
88
  <div class="sectiontitle">Methods</div>
89
- <span style="padding-right: 5px;"><a href="#M000060">new</a></span>
90
- <span style="padding-right: 5px;"><a href="#M000062">restore_snapshot</a></span>
91
- <span style="padding-right: 5px;"><a href="#M000061">take_snapshot</a></span>
89
+ <span style="padding-right: 5px;"><a href="#M000064">new</a></span>
90
+ <span style="padding-right: 5px;"><a href="#M000066">restore_snapshot</a></span>
91
+ <span style="padding-right: 5px;"><a href="#M000065">take_snapshot</a></span>
92
92
 
93
93
 
94
94
 
@@ -108,11 +108,11 @@ Wee::Component.
108
108
  <div class="sectiontitle">Public Class methods</div>
109
109
  <div class="method">
110
110
  <div class="title">
111
- <a name="M000060"></a><b>new</b>(value=nil)
111
+ <a name="M000064"></a><b>new</b>(value=nil)
112
112
  </div>
113
113
  <div class="sourcecode">
114
- <p class="source-link">[ <a href="javascript:toggleSource('M000060_source')" id="l_M000060_source">+</a> ]</p>
115
- <div id="M000060_source" class="dyn-source">
114
+ <p class="source-link">[ <a href="javascript:toggleSource('M000064_source')" id="l_M000064_source">+</a> ]</p>
115
+ <div id="M000064_source" class="dyn-source">
116
116
  <pre>
117
117
  <span class="ruby-comment cmt"># File lib/more/facets/snapshot.rb, line 140</span>
118
118
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">value</span>=<span class="ruby-keyword kw">nil</span>)
@@ -125,11 +125,11 @@ Wee::Component.
125
125
  <div class="sectiontitle">Public Instance methods</div>
126
126
  <div class="method">
127
127
  <div class="title">
128
- <a name="M000062"></a><b>restore_snapshot</b>(value)
128
+ <a name="M000066"></a><b>restore_snapshot</b>(value)
129
129
  </div>
130
130
  <div class="sourcecode">
131
- <p class="source-link">[ <a href="javascript:toggleSource('M000062_source')" id="l_M000062_source">+</a> ]</p>
132
- <div id="M000062_source" class="dyn-source">
131
+ <p class="source-link">[ <a href="javascript:toggleSource('M000066_source')" id="l_M000066_source">+</a> ]</p>
132
+ <div id="M000066_source" class="dyn-source">
133
133
  <pre>
134
134
  <span class="ruby-comment cmt"># File lib/more/facets/snapshot.rb, line 148</span>
135
135
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">restore_snapshot</span>(<span class="ruby-identifier">value</span>)
@@ -141,11 +141,11 @@ Wee::Component.
141
141
  </div>
142
142
  <div class="method">
143
143
  <div class="title">
144
- <a name="M000061"></a><b>take_snapshot</b>()
144
+ <a name="M000065"></a><b>take_snapshot</b>()
145
145
  </div>
146
146
  <div class="sourcecode">
147
- <p class="source-link">[ <a href="javascript:toggleSource('M000061_source')" id="l_M000061_source">+</a> ]</p>
148
- <div id="M000061_source" class="dyn-source">
147
+ <p class="source-link">[ <a href="javascript:toggleSource('M000065_source')" id="l_M000065_source">+</a> ]</p>
148
+ <div id="M000065_source" class="dyn-source">
149
149
  <pre>
150
150
  <span class="ruby-comment cmt"># File lib/more/facets/snapshot.rb, line 144</span>
151
151
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">take_snapshot</span>
@@ -0,0 +1,1397 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+ <html>
6
+ <head>
7
+ <title>Class: SparseArray</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
10
+
11
+ <script language="JavaScript" type="text/javascript">
12
+ // <![CDATA[
13
+
14
+ function toggleSource( id )
15
+ {
16
+ var elem
17
+ var link
18
+
19
+ if( document.getElementById )
20
+ {
21
+ elem = document.getElementById( id )
22
+ link = document.getElementById( "l_" + id )
23
+ }
24
+ else if ( document.all )
25
+ {
26
+ elem = eval( "document.all." + id )
27
+ link = eval( "document.all.l_" + id )
28
+ }
29
+ else
30
+ return false;
31
+
32
+ if( elem.style.display == "block" )
33
+ {
34
+ elem.style.display = "none"
35
+ link.innerHTML = "+"
36
+ }
37
+ else
38
+ {
39
+ elem.style.display = "block"
40
+ link.innerHTML = "-"
41
+ }
42
+ }
43
+
44
+ function openCode( url )
45
+ {
46
+ window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
47
+ }
48
+ // ]]>
49
+ </script>
50
+ </head>
51
+
52
+ <body>
53
+ <table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
54
+ <td class="file-title"><span class="file-title-prefix">Class</span><br />SparseArray</td>
55
+ <td align="right">
56
+ <table cellspacing="0" cellpadding="2">
57
+ <tr valign="top">
58
+ <td>In:</td>
59
+ <td>
60
+ <a href="../files/lib/more/facets/sparse_array_rb.html">lib/more/facets/sparse_array.rb</a>
61
+ </td>
62
+ </tr>
63
+ <tr>
64
+ <td>Parent:</td>
65
+ <td>
66
+ <a href="Hash.html">
67
+ Hash
68
+ </a>
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </td>
73
+ </tr>
74
+ </table>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+ <div id="content">
79
+
80
+ <div class="description"><p>
81
+ <a href="SparseArray.html">SparseArray</a> is an implemenation of the Array
82
+ class using only Hashes. Regular Arrays are never used except once to
83
+ delegate the <a href="SparseArray.html#M000355">pack</a> method, and for
84
+ *args parameters (since there is no way around those is some cases). <a
85
+ href="SparseArray.html">SparseArray</a> is for all practical purposes 100%
86
+ compatible with Array.
87
+ </p>
88
+ <p>
89
+ <a href="SparseArray.html">SparseArray</a> is slower then the built in
90
+ Array class, but not as slow as one might expect, since a <a
91
+ href="Hash.html">Hash</a> in general is faster than an Array. <a
92
+ href="It.html">It</a> might be interesting to see how this would perform if
93
+ it were written in c. Not all that useful, but an interesting example.
94
+ </p>
95
+ </div>
96
+
97
+
98
+
99
+ <div class="sectiontitle">Methods</div>
100
+ <span style="padding-right: 5px;"><a href="#M000322">&amp;</a></span>
101
+ <span style="padding-right: 5px;"><a href="#M000323">*</a></span>
102
+ <span style="padding-right: 5px;"><a href="#M000324">+</a></span>
103
+ <span style="padding-right: 5px;"><a href="#M000325">-</a></span>
104
+ <span style="padding-right: 5px;"><a href="#M000326">&lt;&lt;</a></span>
105
+ <span style="padding-right: 5px;"><a href="#M000327">&lt;=&gt;</a></span>
106
+ <span style="padding-right: 5px;"><a href="#M000328">===</a></span>
107
+ <span style="padding-right: 5px;"><a href="#M000319">[]</a></span>
108
+ <span style="padding-right: 5px;"><a href="#M000329">[]</a></span>
109
+ <span style="padding-right: 5px;"><a href="#M000330">[]=</a></span>
110
+ <span style="padding-right: 5px;"><a href="#M000332">assoc</a></span>
111
+ <span style="padding-right: 5px;"><a href="#M000333">at</a></span>
112
+ <span style="padding-right: 5px;"><a href="#M000334">collect</a></span>
113
+ <span style="padding-right: 5px;"><a href="#M000335">collect!</a></span>
114
+ <span style="padding-right: 5px;"><a href="#M000336">compact</a></span>
115
+ <span style="padding-right: 5px;"><a href="#M000337">compact!</a></span>
116
+ <span style="padding-right: 5px;"><a href="#M000338">concat</a></span>
117
+ <span style="padding-right: 5px;"><a href="#M000339">count</a></span>
118
+ <span style="padding-right: 5px;"><a href="#M000340">delete</a></span>
119
+ <span style="padding-right: 5px;"><a href="#M000341">delete_at</a></span>
120
+ <span style="padding-right: 5px;"><a href="#M000342">delete_if</a></span>
121
+ <span style="padding-right: 5px;"><a href="#M000343">each</a></span>
122
+ <span style="padding-right: 5px;"><a href="#M000344">each_index</a></span>
123
+ <span style="padding-right: 5px;"><a href="#M000345">eql?</a></span>
124
+ <span style="padding-right: 5px;"><a href="#M000346">fill</a></span>
125
+ <span style="padding-right: 5px;"><a href="#M000347">first</a></span>
126
+ <span style="padding-right: 5px;"><a href="#M000348">flatten</a></span>
127
+ <span style="padding-right: 5px;"><a href="#M000349">flatten!</a></span>
128
+ <span style="padding-right: 5px;"><a href="#M000350">include?</a></span>
129
+ <span style="padding-right: 5px;"><a href="#M000351">join</a></span>
130
+ <span style="padding-right: 5px;"><a href="#M000352">last</a></span>
131
+ <span style="padding-right: 5px;"><a href="#M000353">map!</a></span>
132
+ <span style="padding-right: 5px;"><a href="#M000321">new</a></span>
133
+ <span style="padding-right: 5px;"><a href="#M000320">new_h</a></span>
134
+ <span style="padding-right: 5px;"><a href="#M000354">nitems</a></span>
135
+ <span style="padding-right: 5px;"><a href="#M000355">pack</a></span>
136
+ <span style="padding-right: 5px;"><a href="#M000356">pop</a></span>
137
+ <span style="padding-right: 5px;"><a href="#M000357">push</a></span>
138
+ <span style="padding-right: 5px;"><a href="#M000370">qsort</a></span>
139
+ <span style="padding-right: 5px;"><a href="#M000358">rassoc</a></span>
140
+ <span style="padding-right: 5px;"><a href="#M000359">reindex</a></span>
141
+ <span style="padding-right: 5px;"><a href="#M000360">reindex!</a></span>
142
+ <span style="padding-right: 5px;"><a href="#M000361">reject!</a></span>
143
+ <span style="padding-right: 5px;"><a href="#M000362">reverse</a></span>
144
+ <span style="padding-right: 5px;"><a href="#M000363">reverse!</a></span>
145
+ <span style="padding-right: 5px;"><a href="#M000364">reverse_each</a></span>
146
+ <span style="padding-right: 5px;"><a href="#M000365">rindex</a></span>
147
+ <span style="padding-right: 5px;"><a href="#M000366">shift</a></span>
148
+ <span style="padding-right: 5px;"><a href="#M000367">slice</a></span>
149
+ <span style="padding-right: 5px;"><a href="#M000368">slice!</a></span>
150
+ <span style="padding-right: 5px;"><a href="#M000369">sort</a></span>
151
+ <span style="padding-right: 5px;"><a href="#M000371">sort!</a></span>
152
+ <span style="padding-right: 5px;"><a href="#M000372">to_a</a></span>
153
+ <span style="padding-right: 5px;"><a href="#M000373">to_ary</a></span>
154
+ <span style="padding-right: 5px;"><a href="#M000374">to_h</a></span>
155
+ <span style="padding-right: 5px;"><a href="#M000375">to_s</a></span>
156
+ <span style="padding-right: 5px;"><a href="#M000376">uniq</a></span>
157
+ <span style="padding-right: 5px;"><a href="#M000377">uniq!</a></span>
158
+ <span style="padding-right: 5px;"><a href="#M000378">unshift</a></span>
159
+ <span style="padding-right: 5px;"><a href="#M000379">values_at</a></span>
160
+ <span style="padding-right: 5px;"><a href="#M000331">|</a></span>
161
+
162
+
163
+
164
+
165
+
166
+
167
+ <div class="sectiontitle">Public Class methods</div>
168
+ <div class="method">
169
+ <div class="title">
170
+ <a name="M000319"></a><b>[]</b>(*args)
171
+ </div>
172
+ <div class="sourcecode">
173
+ <p class="source-link">[ <a href="javascript:toggleSource('M000319_source')" id="l_M000319_source">+</a> ]</p>
174
+ <div id="M000319_source" class="dyn-source">
175
+ <pre>
176
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 40</span>
177
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-operator">[]</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
178
+ <span class="ruby-identifier">nha</span> = <span class="ruby-identifier">new</span>
179
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">nha</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">nha</span>.<span class="ruby-identifier">length</span>,<span class="ruby-identifier">a</span>) }
180
+ <span class="ruby-identifier">nha</span>
181
+ <span class="ruby-keyword kw">end</span>
182
+ </pre>
183
+ </div>
184
+ </div>
185
+ </div>
186
+ <div class="method">
187
+ <div class="title">
188
+ <a name="M000321"></a><b>new</b>(i=0,e=nil)
189
+ </div>
190
+ <div class="sourcecode">
191
+ <p class="source-link">[ <a href="javascript:toggleSource('M000321_source')" id="l_M000321_source">+</a> ]</p>
192
+ <div id="M000321_source" class="dyn-source">
193
+ <pre>
194
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 52</span>
195
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">i</span>=<span class="ruby-value">0</span>,<span class="ruby-identifier">e</span>=<span class="ruby-keyword kw">nil</span>)
196
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
197
+ <span class="ruby-identifier">i</span>.<span class="ruby-identifier">times</span> { <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">set</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>,<span class="ruby-identifier">e</span>) }
198
+ <span class="ruby-keyword kw">end</span>
199
+ <span class="ruby-keyword kw">end</span>
200
+ </pre>
201
+ </div>
202
+ </div>
203
+ </div>
204
+ <div class="method">
205
+ <div class="title">
206
+ <a name="M000320"></a><b>new_h</b>(hsh)
207
+ </div>
208
+ <div class="sourcecode">
209
+ <p class="source-link">[ <a href="javascript:toggleSource('M000320_source')" id="l_M000320_source">+</a> ]</p>
210
+ <div id="M000320_source" class="dyn-source">
211
+ <pre>
212
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 46</span>
213
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new_h</span>(<span class="ruby-identifier">hsh</span>)
214
+ <span class="ruby-identifier">nha</span> = <span class="ruby-identifier">new</span>
215
+ <span class="ruby-identifier">nha</span>.<span class="ruby-identifier">replace</span>(<span class="ruby-identifier">hsh</span>)
216
+ <span class="ruby-comment cmt">#nha.reindex!</span>
217
+ <span class="ruby-keyword kw">end</span>
218
+ </pre>
219
+ </div>
220
+ </div>
221
+ </div>
222
+ <div class="sectiontitle">Public Instance methods</div>
223
+ <div class="method">
224
+ <div class="title">
225
+ <a name="M000322"></a><b>&amp;</b>(ha)
226
+ </div>
227
+ <div class="sourcecode">
228
+ <p class="source-link">[ <a href="javascript:toggleSource('M000322_source')" id="l_M000322_source">+</a> ]</p>
229
+ <div id="M000322_source" class="dyn-source">
230
+ <pre>
231
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 58</span>
232
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&amp;</span>(<span class="ruby-identifier">ha</span>)
233
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>
234
+ (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
235
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ha</span>.<span class="ruby-identifier">has_value?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)) <span class="ruby-keyword kw">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">nha</span>.<span class="ruby-identifier">has_value?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>))
236
+ <span class="ruby-identifier">nha</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">nha</span>.<span class="ruby-identifier">length</span>,<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>))
237
+ <span class="ruby-keyword kw">end</span>
238
+ <span class="ruby-keyword kw">end</span>
239
+ <span class="ruby-identifier">nha</span>
240
+ <span class="ruby-keyword kw">end</span>
241
+ </pre>
242
+ </div>
243
+ </div>
244
+ </div>
245
+ <div class="method">
246
+ <div class="title">
247
+ <a name="M000323"></a><b>*</b>(j)
248
+ </div>
249
+ <div class="sourcecode">
250
+ <p class="source-link">[ <a href="javascript:toggleSource('M000323_source')" id="l_M000323_source">+</a> ]</p>
251
+ <div id="M000323_source" class="dyn-source">
252
+ <pre>
253
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 68</span>
254
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">*</span>(<span class="ruby-identifier">j</span>)
255
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">j</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">String</span>)
256
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">j</span>)
257
+ <span class="ruby-keyword kw">else</span>
258
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>
259
+ <span class="ruby-identifier">j</span>.<span class="ruby-identifier">times</span> { (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">nha</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">nha</span>.<span class="ruby-identifier">length</span>,<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)) } }
260
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">nha</span>
261
+ <span class="ruby-keyword kw">end</span>
262
+ <span class="ruby-keyword kw">end</span>
263
+ </pre>
264
+ </div>
265
+ </div>
266
+ </div>
267
+ <div class="method">
268
+ <div class="title">
269
+ <a name="M000324"></a><b>+</b>(ha)
270
+ </div>
271
+ <div class="sourcecode">
272
+ <p class="source-link">[ <a href="javascript:toggleSource('M000324_source')" id="l_M000324_source">+</a> ]</p>
273
+ <div id="M000324_source" class="dyn-source">
274
+ <pre>
275
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 78</span>
276
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">ha</span>)
277
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
278
+ (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">ha</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">nha</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">nha</span>.<span class="ruby-identifier">length</span>,<span class="ruby-identifier">ha</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)) }
279
+ <span class="ruby-identifier">nha</span>
280
+ <span class="ruby-keyword kw">end</span>
281
+ </pre>
282
+ </div>
283
+ </div>
284
+ </div>
285
+ <div class="method">
286
+ <div class="title">
287
+ <a name="M000325"></a><b>-</b>(ha)
288
+ </div>
289
+ <div class="sourcecode">
290
+ <p class="source-link">[ <a href="javascript:toggleSource('M000325_source')" id="l_M000325_source">+</a> ]</p>
291
+ <div id="M000325_source" class="dyn-source">
292
+ <pre>
293
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 84</span>
294
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">ha</span>)
295
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>
296
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">nha</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">ha</span>.<span class="ruby-identifier">has_value?</span>(<span class="ruby-identifier">v</span>) }
297
+ <span class="ruby-comment cmt">#ha.each { |v| nha &lt;&lt; i if !self.include?(v) }</span>
298
+ <span class="ruby-identifier">nha</span>
299
+ <span class="ruby-keyword kw">end</span>
300
+ </pre>
301
+ </div>
302
+ </div>
303
+ </div>
304
+ <div class="method">
305
+ <div class="title">
306
+ <a name="M000326"></a><b>&lt;&lt;</b>(e)
307
+ </div>
308
+ <div class="sourcecode">
309
+ <p class="source-link">[ <a href="javascript:toggleSource('M000326_source')" id="l_M000326_source">+</a> ]</p>
310
+ <div id="M000326_source" class="dyn-source">
311
+ <pre>
312
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 91</span>
313
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">e</span>)
314
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">set</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>,<span class="ruby-identifier">e</span>)
315
+ <span class="ruby-keyword kw">self</span>
316
+ <span class="ruby-keyword kw">end</span>
317
+ </pre>
318
+ </div>
319
+ </div>
320
+ </div>
321
+ <div class="method">
322
+ <div class="title">
323
+ <a name="M000327"></a><b>&lt;=&gt;</b>(ha)
324
+ </div>
325
+ <div class="sourcecode">
326
+ <p class="source-link">[ <a href="javascript:toggleSource('M000327_source')" id="l_M000327_source">+</a> ]</p>
327
+ <div id="M000327_source" class="dyn-source">
328
+ <pre>
329
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 96</span>
330
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;=&gt;</span>(<span class="ruby-identifier">ha</span>)
331
+ (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
332
+ <span class="ruby-identifier">ieq</span> = (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>) <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">ha</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>))
333
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">ieq</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ieq</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
334
+ <span class="ruby-keyword kw">end</span>
335
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">ha</span>.<span class="ruby-identifier">length</span>
336
+ <span class="ruby-keyword kw">end</span>
337
+ </pre>
338
+ </div>
339
+ </div>
340
+ </div>
341
+ <div class="method">
342
+ <div class="title">
343
+ <a name="M000328"></a><b>===</b>(ha)
344
+ </div>
345
+ <div class="sourcecode">
346
+ <p class="source-link">[ <a href="javascript:toggleSource('M000328_source')" id="l_M000328_source">+</a> ]</p>
347
+ <div id="M000328_source" class="dyn-source">
348
+ <pre>
349
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 104</span>
350
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">===</span>(<span class="ruby-identifier">ha</span>)
351
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-operator">==</span>(<span class="ruby-identifier">ha</span>)
352
+ <span class="ruby-keyword kw">end</span>
353
+ </pre>
354
+ </div>
355
+ </div>
356
+ </div>
357
+ <div class="method">
358
+ <div class="title">
359
+ <a name="M000329"></a><b>[]</b>(i,l=nil)
360
+ </div>
361
+ <div class="sourcecode">
362
+ <p class="source-link">[ <a href="javascript:toggleSource('M000329_source')" id="l_M000329_source">+</a> ]</p>
363
+ <div id="M000329_source" class="dyn-source">
364
+ <pre>
365
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 111</span>
366
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">i</span>,<span class="ruby-identifier">l</span>=<span class="ruby-keyword kw">nil</span>)
367
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">l</span>
368
+ <span class="ruby-identifier">i</span> = <span class="ruby-identifier">i</span><span class="ruby-operator">...</span><span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-identifier">l</span>
369
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Range</span>)
370
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">i</span>)
371
+ <span class="ruby-keyword kw">end</span>
372
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>
373
+ <span class="ruby-identifier">i</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span> <span class="ruby-identifier">nha</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">nha</span>.<span class="ruby-identifier">length</span>,<span class="ruby-identifier">get</span>(<span class="ruby-identifier">j</span>)) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">j</span>) }
374
+ <span class="ruby-identifier">nha</span>
375
+ <span class="ruby-keyword kw">end</span>
376
+ </pre>
377
+ </div>
378
+ </div>
379
+ </div>
380
+ <div class="method">
381
+ <div class="title">
382
+ <a name="M000330"></a><b>[]=</b>(i,b,c=nil)
383
+ </div>
384
+ <div class="sourcecode">
385
+ <p class="source-link">[ <a href="javascript:toggleSource('M000330_source')" id="l_M000330_source">+</a> ]</p>
386
+ <div id="M000330_source" class="dyn-source">
387
+ <pre>
388
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 123</span>
389
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">i</span>,<span class="ruby-identifier">b</span>,<span class="ruby-identifier">c</span>=<span class="ruby-keyword kw">nil</span>)
390
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span>
391
+ <span class="ruby-identifier">rng</span> = (<span class="ruby-constant">Integer</span>(<span class="ruby-identifier">i</span>)<span class="ruby-operator">..</span><span class="ruby-constant">Integer</span>(<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-identifier">b</span>))
392
+ <span class="ruby-identifier">b</span> = <span class="ruby-identifier">c</span>
393
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Range</span>
394
+ <span class="ruby-identifier">rng</span> = <span class="ruby-identifier">i</span>
395
+ <span class="ruby-keyword kw">else</span>
396
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">set</span>(<span class="ruby-constant">Integer</span>(<span class="ruby-identifier">i</span>),<span class="ruby-identifier">b</span>)
397
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">b</span>
398
+ <span class="ruby-keyword kw">end</span>
399
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">b</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
400
+ <span class="ruby-identifier">rng</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">qdelete</span>(<span class="ruby-identifier">i</span>) }
401
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">reindex!</span>
402
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>)
403
+ <span class="ruby-identifier">j</span> = <span class="ruby-value">0</span>
404
+ <span class="ruby-identifier">rng</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-identifier">b</span>[<span class="ruby-identifier">j</span>]; <span class="ruby-identifier">j</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span> }
405
+ <span class="ruby-keyword kw">else</span>
406
+ <span class="ruby-identifier">rng</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">qdelete</span>(<span class="ruby-identifier">i</span>) }
407
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">rng</span>.<span class="ruby-identifier">fist</span>] = <span class="ruby-identifier">b</span>
408
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">reindex!</span>
409
+ <span class="ruby-keyword kw">end</span>
410
+ <span class="ruby-keyword kw">end</span>
411
+ </pre>
412
+ </div>
413
+ </div>
414
+ </div>
415
+ <div class="method">
416
+ <div class="title">
417
+ <a name="M000332"></a><b>assoc</b>(k)
418
+ </div>
419
+ <div class="sourcecode">
420
+ <p class="source-link">[ <a href="javascript:toggleSource('M000332_source')" id="l_M000332_source">+</a> ]</p>
421
+ <div id="M000332_source" class="dyn-source">
422
+ <pre>
423
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 152</span>
424
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">assoc</span>(<span class="ruby-identifier">k</span>)
425
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">k</span> }
426
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
427
+ <span class="ruby-keyword kw">end</span>
428
+ </pre>
429
+ </div>
430
+ </div>
431
+ </div>
432
+ <div class="method">
433
+ <div class="title">
434
+ <a name="M000333"></a><b>at</b>(i)
435
+ </div>
436
+ <div class="sourcecode">
437
+ <p class="source-link">[ <a href="javascript:toggleSource('M000333_source')" id="l_M000333_source">+</a> ]</p>
438
+ <div id="M000333_source" class="dyn-source">
439
+ <pre>
440
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 157</span>
441
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">at</span>(<span class="ruby-identifier">i</span>)
442
+ <span class="ruby-identifier">i</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">-1</span>
443
+ <span class="ruby-identifier">get</span>(<span class="ruby-identifier">i</span>)
444
+ <span class="ruby-comment cmt">#return nil if i &lt; 0 or i &gt;= self.length</span>
445
+ <span class="ruby-comment cmt">#return self.fetch(i)</span>
446
+ <span class="ruby-keyword kw">end</span>
447
+ </pre>
448
+ </div>
449
+ </div>
450
+ </div>
451
+ <div class="method">
452
+ <div class="title">
453
+ <a name="M000334"></a><b>collect</b>() {|self.fetch(i)| ...}
454
+ </div>
455
+ <div class="description">
456
+ <p>
457
+ clear okay
458
+ </p>
459
+ </div>
460
+ <div class="sourcecode">
461
+ <p class="source-link">[ <a href="javascript:toggleSource('M000334_source')" id="l_M000334_source">+</a> ]</p>
462
+ <div id="M000334_source" class="dyn-source">
463
+ <pre>
464
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 166</span>
465
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collect</span>
466
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>
467
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">nha</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)) }
468
+ <span class="ruby-identifier">nha</span>
469
+ <span class="ruby-keyword kw">end</span>
470
+ </pre>
471
+ </div>
472
+ </div>
473
+ </div>
474
+ <div class="method">
475
+ <div class="title">
476
+ <a name="M000335"></a><b>collect!</b>() {|self.fetch(i)| ...}
477
+ </div>
478
+ <div class="aka">
479
+ This method is also aliased as
480
+ <a href="SparseArray.html#M000353">map!</a>
481
+ </div>
482
+ <div class="sourcecode">
483
+ <p class="source-link">[ <a href="javascript:toggleSource('M000335_source')" id="l_M000335_source">+</a> ]</p>
484
+ <div id="M000335_source" class="dyn-source">
485
+ <pre>
486
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 172</span>
487
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collect!</span>
488
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>
489
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">nha</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)) }
490
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>(<span class="ruby-identifier">nha</span>)
491
+ <span class="ruby-keyword kw">end</span>
492
+ </pre>
493
+ </div>
494
+ </div>
495
+ </div>
496
+ <div class="method">
497
+ <div class="title">
498
+ <a name="M000336"></a><b>compact</b>()
499
+ </div>
500
+ <div class="sourcecode">
501
+ <p class="source-link">[ <a href="javascript:toggleSource('M000336_source')" id="l_M000336_source">+</a> ]</p>
502
+ <div id="M000336_source" class="dyn-source">
503
+ <pre>
504
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 178</span>
505
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">compact</span>
506
+ <span class="ruby-identifier">nha</span>, <span class="ruby-identifier">j</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value">0</span>
507
+ (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
508
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>) <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
509
+ <span class="ruby-identifier">nha</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">j</span>,<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>))
510
+ <span class="ruby-identifier">j</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>
511
+ <span class="ruby-keyword kw">end</span>
512
+ <span class="ruby-keyword kw">end</span>
513
+ <span class="ruby-identifier">nha</span>
514
+ <span class="ruby-keyword kw">end</span>
515
+ </pre>
516
+ </div>
517
+ </div>
518
+ </div>
519
+ <div class="method">
520
+ <div class="title">
521
+ <a name="M000337"></a><b>compact!</b>()
522
+ </div>
523
+ <div class="sourcecode">
524
+ <p class="source-link">[ <a href="javascript:toggleSource('M000337_source')" id="l_M000337_source">+</a> ]</p>
525
+ <div id="M000337_source" class="dyn-source">
526
+ <pre>
527
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 189</span>
528
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">compact!</span>
529
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">has_value?</span>(<span class="ruby-keyword kw">nil</span>)
530
+ <span class="ruby-identifier">nha</span>, <span class="ruby-identifier">j</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value">0</span>
531
+ (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
532
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>) <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
533
+ <span class="ruby-identifier">nha</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">j</span>,<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>))
534
+ <span class="ruby-identifier">j</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>
535
+ <span class="ruby-keyword kw">end</span>
536
+ <span class="ruby-keyword kw">end</span>
537
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>(<span class="ruby-identifier">nha</span>)
538
+ <span class="ruby-keyword kw">else</span>
539
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
540
+ <span class="ruby-keyword kw">end</span>
541
+ <span class="ruby-keyword kw">end</span>
542
+ </pre>
543
+ </div>
544
+ </div>
545
+ </div>
546
+ <div class="method">
547
+ <div class="title">
548
+ <a name="M000338"></a><b>concat</b>(ha)
549
+ </div>
550
+ <div class="sourcecode">
551
+ <p class="source-link">[ <a href="javascript:toggleSource('M000338_source')" id="l_M000338_source">+</a> ]</p>
552
+ <div id="M000338_source" class="dyn-source">
553
+ <pre>
554
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 204</span>
555
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">concat</span>(<span class="ruby-identifier">ha</span>)
556
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">ha</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">set</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>,<span class="ruby-identifier">ha</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)) }
557
+ <span class="ruby-keyword kw">self</span>
558
+ <span class="ruby-keyword kw">end</span>
559
+ </pre>
560
+ </div>
561
+ </div>
562
+ </div>
563
+ <div class="method">
564
+ <div class="title">
565
+ <a name="M000339"></a><b>count</b>(e=nil) {|self.fetch(i)| ...}
566
+ </div>
567
+ <div class="sourcecode">
568
+ <p class="source-link">[ <a href="javascript:toggleSource('M000339_source')" id="l_M000339_source">+</a> ]</p>
569
+ <div id="M000339_source" class="dyn-source">
570
+ <pre>
571
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 209</span>
572
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">count</span>(<span class="ruby-identifier">e</span>=<span class="ruby-keyword kw">nil</span>)
573
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
574
+ <span class="ruby-identifier">cnt</span> = <span class="ruby-value">0</span>
575
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">cnt</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)) }
576
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">cnt</span>
577
+ <span class="ruby-keyword kw">else</span>
578
+ <span class="ruby-identifier">cnt</span> = <span class="ruby-value">0</span>
579
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">cnt</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">e</span> }
580
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">cnt</span>
581
+ <span class="ruby-keyword kw">end</span>
582
+ <span class="ruby-keyword kw">end</span>
583
+ </pre>
584
+ </div>
585
+ </div>
586
+ </div>
587
+ <div class="method">
588
+ <div class="title">
589
+ <a name="M000340"></a><b>delete</b>(e) {|if block_given?| ...}
590
+ </div>
591
+ <div class="sourcecode">
592
+ <p class="source-link">[ <a href="javascript:toggleSource('M000340_source')" id="l_M000340_source">+</a> ]</p>
593
+ <div id="M000340_source" class="dyn-source">
594
+ <pre>
595
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 224</span>
596
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">e</span>)
597
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">has_value?</span>(<span class="ruby-identifier">e</span>)
598
+ <span class="ruby-identifier">qdelete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">v</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">e</span> }
599
+ <span class="ruby-identifier">reindex!</span>
600
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">e</span>
601
+ <span class="ruby-keyword kw">else</span>
602
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
603
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
604
+ <span class="ruby-keyword kw">end</span>
605
+ <span class="ruby-keyword kw">end</span>
606
+ </pre>
607
+ </div>
608
+ </div>
609
+ </div>
610
+ <div class="method">
611
+ <div class="title">
612
+ <a name="M000341"></a><b>delete_at</b>(i)
613
+ </div>
614
+ <div class="sourcecode">
615
+ <p class="source-link">[ <a href="javascript:toggleSource('M000341_source')" id="l_M000341_source">+</a> ]</p>
616
+ <div id="M000341_source" class="dyn-source">
617
+ <pre>
618
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 235</span>
619
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_at</span>(<span class="ruby-identifier">i</span>)
620
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">i</span>)
621
+ <span class="ruby-identifier">e</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)
622
+ <span class="ruby-identifier">qdelete</span>(<span class="ruby-identifier">i</span>)
623
+ <span class="ruby-identifier">reindex!</span>
624
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">e</span>
625
+ <span class="ruby-keyword kw">else</span>
626
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
627
+ <span class="ruby-keyword kw">end</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="M000342"></a><b>delete_if</b>() {|v| ...}
636
+ </div>
637
+ <div class="sourcecode">
638
+ <p class="source-link">[ <a href="javascript:toggleSource('M000342_source')" id="l_M000342_source">+</a> ]</p>
639
+ <div id="M000342_source" class="dyn-source">
640
+ <pre>
641
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 249</span>
642
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_if</span>
643
+ <span class="ruby-identifier">qdelete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">v</span>) }
644
+ <span class="ruby-identifier">reindex!</span>
645
+ <span class="ruby-keyword kw">end</span>
646
+ </pre>
647
+ </div>
648
+ </div>
649
+ </div>
650
+ <div class="method">
651
+ <div class="title">
652
+ <a name="M000343"></a><b>each</b>() {|self.fetch(i)| ...}
653
+ </div>
654
+ <div class="sourcecode">
655
+ <p class="source-link">[ <a href="javascript:toggleSource('M000343_source')" id="l_M000343_source">+</a> ]</p>
656
+ <div id="M000343_source" class="dyn-source">
657
+ <pre>
658
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 254</span>
659
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
660
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)) }
661
+ <span class="ruby-keyword kw">end</span>
662
+ </pre>
663
+ </div>
664
+ </div>
665
+ </div>
666
+ <div class="method">
667
+ <div class="title">
668
+ <a name="M000344"></a><b>each_index</b>() {|i| ...}
669
+ </div>
670
+ <div class="sourcecode">
671
+ <p class="source-link">[ <a href="javascript:toggleSource('M000344_source')" id="l_M000344_source">+</a> ]</p>
672
+ <div id="M000344_source" class="dyn-source">
673
+ <pre>
674
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 258</span>
675
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_index</span>
676
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">i</span>) }
677
+ <span class="ruby-keyword kw">end</span>
678
+ </pre>
679
+ </div>
680
+ </div>
681
+ </div>
682
+ <div class="method">
683
+ <div class="title">
684
+ <a name="M000345"></a><b>eql?</b>(ha)
685
+ </div>
686
+ <div class="description">
687
+ <p>
688
+ empty? okay as is
689
+ </p>
690
+ </div>
691
+ <div class="sourcecode">
692
+ <p class="source-link">[ <a href="javascript:toggleSource('M000345_source')" id="l_M000345_source">+</a> ]</p>
693
+ <div id="M000345_source" class="dyn-source">
694
+ <pre>
695
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 264</span>
696
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eql?</span>(<span class="ruby-identifier">ha</span>)
697
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">ha</span>.<span class="ruby-identifier">length</span>
698
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">all?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>).<span class="ruby-identifier">eql?</span>(<span class="ruby-identifier">ha</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)) }
699
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
700
+ <span class="ruby-keyword kw">end</span>
701
+ </pre>
702
+ </div>
703
+ </div>
704
+ </div>
705
+ <div class="method">
706
+ <div class="title">
707
+ <a name="M000346"></a><b>fill</b>(f,s=nil,l=nil)
708
+ </div>
709
+ <div class="sourcecode">
710
+ <p class="source-link">[ <a href="javascript:toggleSource('M000346_source')" id="l_M000346_source">+</a> ]</p>
711
+ <div id="M000346_source" class="dyn-source">
712
+ <pre>
713
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 270</span>
714
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fill</span>(<span class="ruby-identifier">f</span>,<span class="ruby-identifier">s</span>=<span class="ruby-keyword kw">nil</span>,<span class="ruby-identifier">l</span>=<span class="ruby-keyword kw">nil</span>)
715
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Range</span>)
716
+ <span class="ruby-identifier">r</span> = <span class="ruby-identifier">s</span>
717
+ <span class="ruby-keyword kw">else</span>
718
+ <span class="ruby-identifier">s</span> = <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">s</span>
719
+ <span class="ruby-identifier">l</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">l</span>
720
+ <span class="ruby-identifier">r</span> = <span class="ruby-identifier">s</span><span class="ruby-operator">...</span>(<span class="ruby-identifier">s</span><span class="ruby-operator">+</span><span class="ruby-identifier">l</span>)
721
+ <span class="ruby-keyword kw">end</span>
722
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">i</span>,<span class="ruby-identifier">f</span>) }
723
+ <span class="ruby-keyword kw">self</span>
724
+ <span class="ruby-keyword kw">end</span>
725
+ </pre>
726
+ </div>
727
+ </div>
728
+ </div>
729
+ <div class="method">
730
+ <div class="title">
731
+ <a name="M000347"></a><b>first</b>()
732
+ </div>
733
+ <div class="sourcecode">
734
+ <p class="source-link">[ <a href="javascript:toggleSource('M000347_source')" id="l_M000347_source">+</a> ]</p>
735
+ <div id="M000347_source" class="dyn-source">
736
+ <pre>
737
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 282</span>
738
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">first</span>
739
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">empty?</span>
740
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-value">0</span>)
741
+ <span class="ruby-keyword kw">end</span>
742
+ </pre>
743
+ </div>
744
+ </div>
745
+ </div>
746
+ <div class="method">
747
+ <div class="title">
748
+ <a name="M000348"></a><b>flatten</b>()
749
+ </div>
750
+ <div class="sourcecode">
751
+ <p class="source-link">[ <a href="javascript:toggleSource('M000348_source')" id="l_M000348_source">+</a> ]</p>
752
+ <div id="M000348_source" class="dyn-source">
753
+ <pre>
754
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 287</span>
755
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">flatten</span>
756
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>
757
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
758
+ <span class="ruby-identifier">sfi</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)
759
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sfi</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">sfi</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Array</span>)
760
+ <span class="ruby-identifier">nha</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">sfi</span>.<span class="ruby-identifier">flatten</span>)
761
+ <span class="ruby-keyword kw">else</span>
762
+ <span class="ruby-identifier">nha</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">nha</span>.<span class="ruby-identifier">length</span>,<span class="ruby-identifier">sfi</span>)
763
+ <span class="ruby-keyword kw">end</span>
764
+ <span class="ruby-keyword kw">end</span>
765
+ <span class="ruby-identifier">nha</span>
766
+ <span class="ruby-keyword kw">end</span>
767
+ </pre>
768
+ </div>
769
+ </div>
770
+ </div>
771
+ <div class="method">
772
+ <div class="title">
773
+ <a name="M000349"></a><b>flatten!</b>()
774
+ </div>
775
+ <div class="sourcecode">
776
+ <p class="source-link">[ <a href="javascript:toggleSource('M000349_source')" id="l_M000349_source">+</a> ]</p>
777
+ <div id="M000349_source" class="dyn-source">
778
+ <pre>
779
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 300</span>
780
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">flatten!</span>
781
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">any?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Array</span>) }
782
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">flatten</span>)
783
+ <span class="ruby-keyword kw">end</span>
784
+ </pre>
785
+ </div>
786
+ </div>
787
+ </div>
788
+ <div class="method">
789
+ <div class="title">
790
+ <a name="M000350"></a><b>include?</b>(v)
791
+ </div>
792
+ <div class="sourcecode">
793
+ <p class="source-link">[ <a href="javascript:toggleSource('M000350_source')" id="l_M000350_source">+</a> ]</p>
794
+ <div id="M000350_source" class="dyn-source">
795
+ <pre>
796
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 305</span>
797
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include?</span>(<span class="ruby-identifier">v</span>)
798
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">has_value?</span>(<span class="ruby-identifier">v</span>)
799
+ <span class="ruby-keyword kw">end</span>
800
+ </pre>
801
+ </div>
802
+ </div>
803
+ </div>
804
+ <div class="method">
805
+ <div class="title">
806
+ <a name="M000351"></a><b>join</b>(sep='')
807
+ </div>
808
+ <div class="description">
809
+ <p>
810
+ index okay
811
+ </p>
812
+ </div>
813
+ <div class="sourcecode">
814
+ <p class="source-link">[ <a href="javascript:toggleSource('M000351_source')" id="l_M000351_source">+</a> ]</p>
815
+ <div id="M000351_source" class="dyn-source">
816
+ <pre>
817
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 311</span>
818
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">join</span>(<span class="ruby-identifier">sep</span>=<span class="ruby-value str">''</span>)
819
+ <span class="ruby-identifier">s</span> = <span class="ruby-value str">''</span>
820
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{self.fetch(i)}#{sep}&quot;</span> }
821
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-identifier">sep</span>)
822
+ <span class="ruby-keyword kw">end</span>
823
+ </pre>
824
+ </div>
825
+ </div>
826
+ </div>
827
+ <div class="method">
828
+ <div class="title">
829
+ <a name="M000352"></a><b>last</b>()
830
+ </div>
831
+ <div class="sourcecode">
832
+ <p class="source-link">[ <a href="javascript:toggleSource('M000352_source')" id="l_M000352_source">+</a> ]</p>
833
+ <div id="M000352_source" class="dyn-source">
834
+ <pre>
835
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 317</span>
836
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last</span>
837
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>]
838
+ <span class="ruby-keyword kw">end</span>
839
+ </pre>
840
+ </div>
841
+ </div>
842
+ </div>
843
+ <div class="method">
844
+ <div class="title">
845
+ <a name="M000353"></a><b>map!</b>()
846
+ </div>
847
+ <div class="description">
848
+ <p>
849
+ Alias for <a href="SparseArray.html#M000334">collect</a>!
850
+ </p>
851
+ </div>
852
+ </div>
853
+ <div class="method">
854
+ <div class="title">
855
+ <a name="M000354"></a><b>nitems</b>()
856
+ </div>
857
+ <div class="sourcecode">
858
+ <p class="source-link">[ <a href="javascript:toggleSource('M000354_source')" id="l_M000354_source">+</a> ]</p>
859
+ <div id="M000354_source" class="dyn-source">
860
+ <pre>
861
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 325</span>
862
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nitems</span>
863
+ <span class="ruby-identifier">cnt</span> = <span class="ruby-value">0</span>
864
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">cnt</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>) <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span> }
865
+ <span class="ruby-identifier">cnt</span>
866
+ <span class="ruby-keyword kw">end</span>
867
+ </pre>
868
+ </div>
869
+ </div>
870
+ </div>
871
+ <div class="method">
872
+ <div class="title">
873
+ <a name="M000355"></a><b>pack</b>(*args)
874
+ </div>
875
+ <div class="sourcecode">
876
+ <p class="source-link">[ <a href="javascript:toggleSource('M000355_source')" id="l_M000355_source">+</a> ]</p>
877
+ <div id="M000355_source" class="dyn-source">
878
+ <pre>
879
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 331</span>
880
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pack</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
881
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
882
+ <span class="ruby-keyword kw">end</span>
883
+ </pre>
884
+ </div>
885
+ </div>
886
+ </div>
887
+ <div class="method">
888
+ <div class="title">
889
+ <a name="M000356"></a><b>pop</b>()
890
+ </div>
891
+ <div class="sourcecode">
892
+ <p class="source-link">[ <a href="javascript:toggleSource('M000356_source')" id="l_M000356_source">+</a> ]</p>
893
+ <div id="M000356_source" class="dyn-source">
894
+ <pre>
895
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 335</span>
896
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pop</span>
897
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)
898
+ <span class="ruby-keyword kw">end</span>
899
+ </pre>
900
+ </div>
901
+ </div>
902
+ </div>
903
+ <div class="method">
904
+ <div class="title">
905
+ <a name="M000357"></a><b>push</b>(*e)
906
+ </div>
907
+ <div class="sourcecode">
908
+ <p class="source-link">[ <a href="javascript:toggleSource('M000357_source')" id="l_M000357_source">+</a> ]</p>
909
+ <div id="M000357_source" class="dyn-source">
910
+ <pre>
911
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 339</span>
912
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">push</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">e</span>)
913
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">e</span>)
914
+ <span class="ruby-keyword kw">end</span>
915
+ </pre>
916
+ </div>
917
+ </div>
918
+ </div>
919
+ <div class="method">
920
+ <div class="title">
921
+ <a name="M000370"></a><b>qsort</b>(ha, l, r)
922
+ </div>
923
+ <div class="sourcecode">
924
+ <p class="source-link">[ <a href="javascript:toggleSource('M000370_source')" id="l_M000370_source">+</a> ]</p>
925
+ <div id="M000370_source" class="dyn-source">
926
+ <pre>
927
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 438</span>
928
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">qsort</span>(<span class="ruby-identifier">ha</span>, <span class="ruby-identifier">l</span>, <span class="ruby-identifier">r</span>)
929
+ <span class="ruby-identifier">l_hold</span> = <span class="ruby-identifier">l</span>
930
+ <span class="ruby-identifier">r_hold</span> = <span class="ruby-identifier">r</span>
931
+ <span class="ruby-identifier">pivot</span> = <span class="ruby-identifier">ha</span>[<span class="ruby-identifier">l</span>]
932
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">l</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">r</span>
933
+ <span class="ruby-identifier">r</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">ha</span>[<span class="ruby-identifier">r</span>] <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">pivot</span>) <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">l</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">r</span>
934
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">l</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">r</span>
935
+ <span class="ruby-identifier">ha</span>[<span class="ruby-identifier">l</span>] = <span class="ruby-identifier">ha</span>[<span class="ruby-identifier">r</span>]
936
+ <span class="ruby-identifier">l</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
937
+ <span class="ruby-keyword kw">end</span>
938
+ <span class="ruby-identifier">l</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">ha</span>[<span class="ruby-identifier">l</span>] <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">pivot</span>) <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">l</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">r</span>
939
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">l</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">r</span>
940
+ <span class="ruby-identifier">ha</span>[<span class="ruby-identifier">r</span>] = <span class="ruby-identifier">ha</span>[<span class="ruby-identifier">l</span>]
941
+ <span class="ruby-identifier">r</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
942
+ <span class="ruby-keyword kw">end</span>
943
+ <span class="ruby-keyword kw">end</span>
944
+ <span class="ruby-identifier">ha</span>[<span class="ruby-identifier">l</span>] = <span class="ruby-identifier">pivot</span>
945
+ <span class="ruby-identifier">pivot</span> = <span class="ruby-identifier">l</span>
946
+ <span class="ruby-identifier">l</span> = <span class="ruby-identifier">l_hold</span>
947
+ <span class="ruby-identifier">r</span> = <span class="ruby-identifier">r_hold</span>
948
+ <span class="ruby-identifier">qsort</span>(<span class="ruby-identifier">ha</span>,<span class="ruby-identifier">l</span>,<span class="ruby-identifier">pivot</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">l</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">pivot</span>
949
+ <span class="ruby-identifier">qsort</span>(<span class="ruby-identifier">ha</span>,<span class="ruby-identifier">pivot</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>,<span class="ruby-identifier">r</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">r</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">pivot</span>
950
+ <span class="ruby-identifier">ha</span>
951
+ <span class="ruby-keyword kw">end</span>
952
+ </pre>
953
+ </div>
954
+ </div>
955
+ </div>
956
+ <div class="method">
957
+ <div class="title">
958
+ <a name="M000358"></a><b>rassoc</b>(k)
959
+ </div>
960
+ <div class="sourcecode">
961
+ <p class="source-link">[ <a href="javascript:toggleSource('M000358_source')" id="l_M000358_source">+</a> ]</p>
962
+ <div id="M000358_source" class="dyn-source">
963
+ <pre>
964
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 343</span>
965
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rassoc</span>(<span class="ruby-identifier">k</span>)
966
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">k</span> }
967
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
968
+ <span class="ruby-keyword kw">end</span>
969
+ </pre>
970
+ </div>
971
+ </div>
972
+ </div>
973
+ <div class="method">
974
+ <div class="title">
975
+ <a name="M000359"></a><b>reindex</b>()
976
+ </div>
977
+ <div class="sourcecode">
978
+ <p class="source-link">[ <a href="javascript:toggleSource('M000359_source')" id="l_M000359_source">+</a> ]</p>
979
+ <div id="M000359_source" class="dyn-source">
980
+ <pre>
981
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 348</span>
982
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reindex</span>
983
+ <span class="ruby-identifier">nha</span>, <span class="ruby-identifier">j</span>, <span class="ruby-identifier">k</span>, <span class="ruby-identifier">tl</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
984
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">k</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">tl</span>
985
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">j</span>)
986
+ <span class="ruby-identifier">nha</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">k</span>,<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">j</span>))
987
+ <span class="ruby-identifier">j</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>; <span class="ruby-identifier">k</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>
988
+ <span class="ruby-keyword kw">else</span>
989
+ <span class="ruby-identifier">j</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>
990
+ <span class="ruby-keyword kw">end</span>
991
+ <span class="ruby-keyword kw">end</span>
992
+ <span class="ruby-identifier">nha</span>
993
+ <span class="ruby-keyword kw">end</span>
994
+ </pre>
995
+ </div>
996
+ </div>
997
+ </div>
998
+ <div class="method">
999
+ <div class="title">
1000
+ <a name="M000360"></a><b>reindex!</b>()
1001
+ </div>
1002
+ <div class="sourcecode">
1003
+ <p class="source-link">[ <a href="javascript:toggleSource('M000360_source')" id="l_M000360_source">+</a> ]</p>
1004
+ <div id="M000360_source" class="dyn-source">
1005
+ <pre>
1006
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 361</span>
1007
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reindex!</span>
1008
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">reindex</span>)
1009
+ <span class="ruby-keyword kw">end</span>
1010
+ </pre>
1011
+ </div>
1012
+ </div>
1013
+ </div>
1014
+ <div class="method">
1015
+ <div class="title">
1016
+ <a name="M000361"></a><b>reject!</b>() {|v| ...}
1017
+ </div>
1018
+ <div class="sourcecode">
1019
+ <p class="source-link">[ <a href="javascript:toggleSource('M000361_source')" id="l_M000361_source">+</a> ]</p>
1020
+ <div id="M000361_source" class="dyn-source">
1021
+ <pre>
1022
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 365</span>
1023
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reject!</span>
1024
+ <span class="ruby-identifier">chg</span>=<span class="ruby-keyword kw">nil</span>
1025
+ <span class="ruby-identifier">qdelete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>=<span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">v</span>); <span class="ruby-identifier">chg</span>=<span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">r</span>; <span class="ruby-identifier">r</span> }
1026
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">chg</span>
1027
+ <span class="ruby-identifier">reindex!</span>
1028
+ <span class="ruby-keyword kw">end</span>
1029
+ </pre>
1030
+ </div>
1031
+ </div>
1032
+ </div>
1033
+ <div class="method">
1034
+ <div class="title">
1035
+ <a name="M000362"></a><b>reverse</b>()
1036
+ </div>
1037
+ <div class="description">
1038
+ <p>
1039
+ def replace(ha)
1040
+ </p>
1041
+ <pre>
1042
+ if ha.length &lt; self.length
1043
+ (ha.length..self.length-1).each { |i| self.delete(i) }
1044
+ (0..ha.length-1).each { |i| self.set(i,ha[i]) }
1045
+ end
1046
+ </pre>
1047
+ <p>
1048
+ end
1049
+ </p>
1050
+ </div>
1051
+ <div class="sourcecode">
1052
+ <p class="source-link">[ <a href="javascript:toggleSource('M000362_source')" id="l_M000362_source">+</a> ]</p>
1053
+ <div id="M000362_source" class="dyn-source">
1054
+ <pre>
1055
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 379</span>
1056
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse</span>
1057
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>
1058
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">nha</span>.<span class="ruby-identifier">set</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span><span class="ruby-operator">-</span><span class="ruby-identifier">i</span>,<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)) }
1059
+ <span class="ruby-identifier">nha</span>
1060
+ <span class="ruby-keyword kw">end</span>
1061
+ </pre>
1062
+ </div>
1063
+ </div>
1064
+ </div>
1065
+ <div class="method">
1066
+ <div class="title">
1067
+ <a name="M000363"></a><b>reverse!</b>()
1068
+ </div>
1069
+ <div class="sourcecode">
1070
+ <p class="source-link">[ <a href="javascript:toggleSource('M000363_source')" id="l_M000363_source">+</a> ]</p>
1071
+ <div id="M000363_source" class="dyn-source">
1072
+ <pre>
1073
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 385</span>
1074
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse!</span>
1075
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">/</span><span class="ruby-value">2</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
1076
+ <span class="ruby-identifier">ri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span><span class="ruby-operator">-</span><span class="ruby-identifier">i</span>
1077
+ <span class="ruby-identifier">tmp</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">ri</span>)
1078
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">ri</span>,<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>))
1079
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">i</span>,<span class="ruby-identifier">tmp</span>)
1080
+ <span class="ruby-keyword kw">end</span>
1081
+ <span class="ruby-keyword kw">self</span>
1082
+ <span class="ruby-keyword kw">end</span>
1083
+ </pre>
1084
+ </div>
1085
+ </div>
1086
+ </div>
1087
+ <div class="method">
1088
+ <div class="title">
1089
+ <a name="M000364"></a><b>reverse_each</b>() {|self.fetch(i)| ...}
1090
+ </div>
1091
+ <div class="sourcecode">
1092
+ <p class="source-link">[ <a href="javascript:toggleSource('M000364_source')" id="l_M000364_source">+</a> ]</p>
1093
+ <div id="M000364_source" class="dyn-source">
1094
+ <pre>
1095
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 395</span>
1096
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse_each</span>
1097
+ <span class="ruby-identifier">i</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
1098
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
1099
+ <span class="ruby-keyword kw">yield</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>))
1100
+ <span class="ruby-identifier">i</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
1101
+ <span class="ruby-keyword kw">end</span>
1102
+ <span class="ruby-keyword kw">end</span>
1103
+ </pre>
1104
+ </div>
1105
+ </div>
1106
+ </div>
1107
+ <div class="method">
1108
+ <div class="title">
1109
+ <a name="M000365"></a><b>rindex</b>(e)
1110
+ </div>
1111
+ <div class="sourcecode">
1112
+ <p class="source-link">[ <a href="javascript:toggleSource('M000365_source')" id="l_M000365_source">+</a> ]</p>
1113
+ <div id="M000365_source" class="dyn-source">
1114
+ <pre>
1115
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 403</span>
1116
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rindex</span>(<span class="ruby-identifier">e</span>)
1117
+ <span class="ruby-identifier">i</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
1118
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
1119
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">e</span>
1120
+ <span class="ruby-identifier">i</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
1121
+ <span class="ruby-keyword kw">end</span>
1122
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
1123
+ <span class="ruby-keyword kw">end</span>
1124
+ </pre>
1125
+ </div>
1126
+ </div>
1127
+ </div>
1128
+ <div class="method">
1129
+ <div class="title">
1130
+ <a name="M000366"></a><b>shift</b>()
1131
+ </div>
1132
+ <div class="sourcecode">
1133
+ <p class="source-link">[ <a href="javascript:toggleSource('M000366_source')" id="l_M000366_source">+</a> ]</p>
1134
+ <div id="M000366_source" class="dyn-source">
1135
+ <pre>
1136
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 412</span>
1137
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shift</span>
1138
+ <span class="ruby-identifier">e1</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span>]
1139
+ <span class="ruby-identifier">tl</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
1140
+ (<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-identifier">tl</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">i</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>,<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>)) }
1141
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-identifier">tl</span>)
1142
+ <span class="ruby-identifier">e1</span>
1143
+ <span class="ruby-keyword kw">end</span>
1144
+ </pre>
1145
+ </div>
1146
+ </div>
1147
+ </div>
1148
+ <div class="method">
1149
+ <div class="title">
1150
+ <a name="M000367"></a><b>slice</b>(*args)
1151
+ </div>
1152
+ <div class="description">
1153
+ <p>
1154
+ size okay
1155
+ </p>
1156
+ </div>
1157
+ <div class="sourcecode">
1158
+ <p class="source-link">[ <a href="javascript:toggleSource('M000367_source')" id="l_M000367_source">+</a> ]</p>
1159
+ <div id="M000367_source" class="dyn-source">
1160
+ <pre>
1161
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 422</span>
1162
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
1163
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>]
1164
+ <span class="ruby-keyword kw">end</span>
1165
+ </pre>
1166
+ </div>
1167
+ </div>
1168
+ </div>
1169
+ <div class="method">
1170
+ <div class="title">
1171
+ <a name="M000368"></a><b>slice!</b>(*args)
1172
+ </div>
1173
+ <div class="sourcecode">
1174
+ <p class="source-link">[ <a href="javascript:toggleSource('M000368_source')" id="l_M000368_source">+</a> ]</p>
1175
+ <div id="M000368_source" class="dyn-source">
1176
+ <pre>
1177
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 426</span>
1178
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slice!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
1179
+ <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>]
1180
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>] = <span class="ruby-keyword kw">nil</span>
1181
+ <span class="ruby-identifier">result</span>
1182
+ <span class="ruby-keyword kw">end</span>
1183
+ </pre>
1184
+ </div>
1185
+ </div>
1186
+ </div>
1187
+ <div class="method">
1188
+ <div class="title">
1189
+ <a name="M000369"></a><b>sort</b>()
1190
+ </div>
1191
+ <div class="sourcecode">
1192
+ <p class="source-link">[ <a href="javascript:toggleSource('M000369_source')" id="l_M000369_source">+</a> ]</p>
1193
+ <div id="M000369_source" class="dyn-source">
1194
+ <pre>
1195
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 432</span>
1196
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort</span>
1197
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;SparseArray does not currently support sorting with blocks&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
1198
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
1199
+ <span class="ruby-identifier">qsort</span>(<span class="ruby-identifier">nha</span>,<span class="ruby-value">0</span>,<span class="ruby-identifier">nha</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)
1200
+ <span class="ruby-keyword kw">end</span>
1201
+ </pre>
1202
+ </div>
1203
+ </div>
1204
+ </div>
1205
+ <div class="method">
1206
+ <div class="title">
1207
+ <a name="M000371"></a><b>sort!</b>()
1208
+ </div>
1209
+ <div class="sourcecode">
1210
+ <p class="source-link">[ <a href="javascript:toggleSource('M000371_source')" id="l_M000371_source">+</a> ]</p>
1211
+ <div id="M000371_source" class="dyn-source">
1212
+ <pre>
1213
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 463</span>
1214
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort!</span>
1215
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;SparseArray does not currently support sorting with blocks&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
1216
+ <span class="ruby-identifier">qsort</span>(<span class="ruby-keyword kw">self</span>,<span class="ruby-value">0</span>,<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)
1217
+ <span class="ruby-keyword kw">end</span>
1218
+ </pre>
1219
+ </div>
1220
+ </div>
1221
+ </div>
1222
+ <div class="method">
1223
+ <div class="title">
1224
+ <a name="M000372"></a><b>to_a</b>()
1225
+ </div>
1226
+ <div class="sourcecode">
1227
+ <p class="source-link">[ <a href="javascript:toggleSource('M000372_source')" id="l_M000372_source">+</a> ]</p>
1228
+ <div id="M000372_source" class="dyn-source">
1229
+ <pre>
1230
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 468</span>
1231
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_a</span>
1232
+ <span class="ruby-identifier">a</span> = []
1233
+ (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>) }
1234
+ <span class="ruby-identifier">a</span>
1235
+ <span class="ruby-keyword kw">end</span>
1236
+ </pre>
1237
+ </div>
1238
+ </div>
1239
+ </div>
1240
+ <div class="method">
1241
+ <div class="title">
1242
+ <a name="M000373"></a><b>to_ary</b>()
1243
+ </div>
1244
+ <div class="sourcecode">
1245
+ <p class="source-link">[ <a href="javascript:toggleSource('M000373_source')" id="l_M000373_source">+</a> ]</p>
1246
+ <div id="M000373_source" class="dyn-source">
1247
+ <pre>
1248
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 474</span>
1249
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ary</span>
1250
+ <span class="ruby-keyword kw">self</span>
1251
+ <span class="ruby-keyword kw">end</span>
1252
+ </pre>
1253
+ </div>
1254
+ </div>
1255
+ </div>
1256
+ <div class="method">
1257
+ <div class="title">
1258
+ <a name="M000374"></a><b>to_h</b>()
1259
+ </div>
1260
+ <div class="sourcecode">
1261
+ <p class="source-link">[ <a href="javascript:toggleSource('M000374_source')" id="l_M000374_source">+</a> ]</p>
1262
+ <div id="M000374_source" class="dyn-source">
1263
+ <pre>
1264
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 478</span>
1265
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_h</span>
1266
+ <span class="ruby-identifier">h</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
1267
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span> }
1268
+ <span class="ruby-identifier">h</span>
1269
+ <span class="ruby-keyword kw">end</span>
1270
+ </pre>
1271
+ </div>
1272
+ </div>
1273
+ </div>
1274
+ <div class="method">
1275
+ <div class="title">
1276
+ <a name="M000375"></a><b>to_s</b>()
1277
+ </div>
1278
+ <div class="sourcecode">
1279
+ <p class="source-link">[ <a href="javascript:toggleSource('M000375_source')" id="l_M000375_source">+</a> ]</p>
1280
+ <div id="M000375_source" class="dyn-source">
1281
+ <pre>
1282
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 484</span>
1283
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1284
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">join</span>
1285
+ <span class="ruby-keyword kw">end</span>
1286
+ </pre>
1287
+ </div>
1288
+ </div>
1289
+ </div>
1290
+ <div class="method">
1291
+ <div class="title">
1292
+ <a name="M000376"></a><b>uniq</b>()
1293
+ </div>
1294
+ <div class="sourcecode">
1295
+ <p class="source-link">[ <a href="javascript:toggleSource('M000376_source')" id="l_M000376_source">+</a> ]</p>
1296
+ <div id="M000376_source" class="dyn-source">
1297
+ <pre>
1298
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 488</span>
1299
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uniq</span>
1300
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>
1301
+ (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
1302
+ <span class="ruby-identifier">nha</span>[<span class="ruby-identifier">nha</span>.<span class="ruby-identifier">length</span>] = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">nha</span>.<span class="ruby-identifier">has_value?</span>(<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>])
1303
+ <span class="ruby-keyword kw">end</span>
1304
+ <span class="ruby-identifier">nha</span>
1305
+ <span class="ruby-keyword kw">end</span>
1306
+ </pre>
1307
+ </div>
1308
+ </div>
1309
+ </div>
1310
+ <div class="method">
1311
+ <div class="title">
1312
+ <a name="M000377"></a><b>uniq!</b>()
1313
+ </div>
1314
+ <div class="sourcecode">
1315
+ <p class="source-link">[ <a href="javascript:toggleSource('M000377_source')" id="l_M000377_source">+</a> ]</p>
1316
+ <div id="M000377_source" class="dyn-source">
1317
+ <pre>
1318
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 496</span>
1319
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uniq!</span>
1320
+ <span class="ruby-identifier">j</span> = <span class="ruby-value">0</span>
1321
+ (<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
1322
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">j</span>].<span class="ruby-identifier">has_value?</span>(<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>])
1323
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">j</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>] = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>]
1324
+ <span class="ruby-identifier">j</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>
1325
+ <span class="ruby-keyword kw">end</span>
1326
+ <span class="ruby-keyword kw">end</span>
1327
+ (<span class="ruby-identifier">j</span><span class="ruby-operator">+</span><span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">qdelete</span>(<span class="ruby-identifier">i</span>) }
1328
+ <span class="ruby-keyword kw">end</span>
1329
+ </pre>
1330
+ </div>
1331
+ </div>
1332
+ </div>
1333
+ <div class="method">
1334
+ <div class="title">
1335
+ <a name="M000378"></a><b>unshift</b>(e)
1336
+ </div>
1337
+ <div class="sourcecode">
1338
+ <p class="source-link">[ <a href="javascript:toggleSource('M000378_source')" id="l_M000378_source">+</a> ]</p>
1339
+ <div id="M000378_source" class="dyn-source">
1340
+ <pre>
1341
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 507</span>
1342
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unshift</span>(<span class="ruby-identifier">e</span>)
1343
+ <span class="ruby-identifier">i</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
1344
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
1345
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>,<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>))
1346
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">i</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">e</span>
1347
+ <span class="ruby-identifier">i</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
1348
+ <span class="ruby-keyword kw">end</span>
1349
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value">0</span>,<span class="ruby-identifier">e</span>)
1350
+ <span class="ruby-keyword kw">self</span>
1351
+ <span class="ruby-keyword kw">end</span>
1352
+ </pre>
1353
+ </div>
1354
+ </div>
1355
+ </div>
1356
+ <div class="method">
1357
+ <div class="title">
1358
+ <a name="M000379"></a><b>values_at</b>(*ix)
1359
+ </div>
1360
+ <div class="sourcecode">
1361
+ <p class="source-link">[ <a href="javascript:toggleSource('M000379_source')" id="l_M000379_source">+</a> ]</p>
1362
+ <div id="M000379_source" class="dyn-source">
1363
+ <pre>
1364
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 518</span>
1365
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">values_at</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">ix</span>)
1366
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>
1367
+ <span class="ruby-identifier">ix</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">nha</span>[<span class="ruby-identifier">nha</span>.<span class="ruby-identifier">length</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">at</span>(<span class="ruby-identifier">i</span>)}
1368
+ <span class="ruby-identifier">nha</span>
1369
+ <span class="ruby-keyword kw">end</span>
1370
+ </pre>
1371
+ </div>
1372
+ </div>
1373
+ </div>
1374
+ <div class="method">
1375
+ <div class="title">
1376
+ <a name="M000331"></a><b>|</b>(ha)
1377
+ </div>
1378
+ <div class="sourcecode">
1379
+ <p class="source-link">[ <a href="javascript:toggleSource('M000331_source')" id="l_M000331_source">+</a> ]</p>
1380
+ <div id="M000331_source" class="dyn-source">
1381
+ <pre>
1382
+ <span class="ruby-comment cmt"># File lib/more/facets/sparse_array.rb, line 146</span>
1383
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">ha</span>)
1384
+ <span class="ruby-identifier">nha</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
1385
+ <span class="ruby-identifier">ha</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">nha</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">nha</span>.<span class="ruby-identifier">has_value?</span>(<span class="ruby-identifier">v</span>) }
1386
+ <span class="ruby-identifier">nha</span>
1387
+ <span class="ruby-keyword kw">end</span>
1388
+ </pre>
1389
+ </div>
1390
+ </div>
1391
+ </div>
1392
+ </div>
1393
+
1394
+ </div>
1395
+
1396
+ </body>
1397
+ </html>