facets 2.5.2 → 2.6.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 (677) hide show
  1. data/HISTORY.rdoc +2245 -0
  2. data/MANIFEST +20 -725
  3. data/{README → README.rdoc} +0 -0
  4. data/RELEASE +37 -48
  5. data/doc/log/stats/index.html +39 -0
  6. data/doc/notes/CHANGES +2529 -0
  7. data/lib/{more → core}/facets/binding/opvars.rb +0 -0
  8. data/lib/core/facets/integer/length.rb +16 -0
  9. data/lib/core/facets/kernel/state.rb +50 -0
  10. data/lib/core/facets/module/extend.rb +2 -2
  11. data/lib/core/facets/string/camelcase.rb +33 -9
  12. data/lib/core/facets/string/lowercase.rb +1 -0
  13. data/lib/core/facets/string/methodize.rb +10 -1
  14. data/lib/core/facets/string/modulize.rb +8 -0
  15. data/lib/core/facets/string/pathize.rb +10 -0
  16. data/lib/core/facets/string/snakecase.rb +2 -2
  17. data/lib/core/facets/string/underscore.rb +21 -0
  18. data/lib/core/facets/string/uppercase.rb +23 -0
  19. data/lib/more/facets/censor.rb +97 -0
  20. data/lib/more/facets/minitar.rb +11 -11
  21. data/lib/more/facets/platform.rb +47 -0
  22. data/lib/more/facets/pry.rb +32 -0
  23. data/lib/more/facets/string/obfuscate.rb +65 -0
  24. data/lib/more/facets/string/stylize.rb +169 -0
  25. data/lib/more/facets/string/words.rb +10 -13
  26. data/meta/modified +1 -0
  27. data/meta/package +1 -0
  28. data/meta/version +1 -0
  29. data/test/core/integer/test_length.rb +12 -0
  30. metadata +41 -822
  31. data/CHANGES +0 -133
  32. data/VERSION +0 -1
  33. data/doc/changelogs/CHANGELOG-0.10.30 +0 -239
  34. data/doc/changelogs/CHANGELOG-1.8.54 +0 -450
  35. data/doc/changelogs/CHANGELOG-2.4.5 +0 -1654
  36. data/doc/rdoc/core/classes/Array.html +0 -1208
  37. data/doc/rdoc/core/classes/Binding.html +0 -364
  38. data/doc/rdoc/core/classes/Class.html +0 -444
  39. data/doc/rdoc/core/classes/Comparable.html +0 -250
  40. data/doc/rdoc/core/classes/Dir.html +0 -395
  41. data/doc/rdoc/core/classes/Enumerable.html +0 -1262
  42. data/doc/rdoc/core/classes/Enumerable/Enumerator.html +0 -243
  43. data/doc/rdoc/core/classes/Enumerator.html +0 -242
  44. data/doc/rdoc/core/classes/Exception.html +0 -163
  45. data/doc/rdoc/core/classes/FalseClass.html +0 -131
  46. data/doc/rdoc/core/classes/File.html +0 -576
  47. data/doc/rdoc/core/classes/FileTest.html +0 -116
  48. data/doc/rdoc/core/classes/Float.html +0 -159
  49. data/doc/rdoc/core/classes/Functor.html +0 -171
  50. data/doc/rdoc/core/classes/Hash.html +0 -2184
  51. data/doc/rdoc/core/classes/Indexable.html +0 -629
  52. data/doc/rdoc/core/classes/InstanceVariables.html +0 -306
  53. data/doc/rdoc/core/classes/Integer.html +0 -583
  54. data/doc/rdoc/core/classes/Kernel.html +0 -2269
  55. data/doc/rdoc/core/classes/Lazy.html +0 -96
  56. data/doc/rdoc/core/classes/Lazy/Future.html +0 -100
  57. data/doc/rdoc/core/classes/Lazy/Promise.html +0 -114
  58. data/doc/rdoc/core/classes/Lazy/PromiseSafe.html +0 -99
  59. data/doc/rdoc/core/classes/MatchData.html +0 -204
  60. data/doc/rdoc/core/classes/Module.html +0 -1316
  61. data/doc/rdoc/core/classes/NilClass.html +0 -217
  62. data/doc/rdoc/core/classes/Numeric.html +0 -251
  63. data/doc/rdoc/core/classes/Object.html +0 -161
  64. data/doc/rdoc/core/classes/ObjectSpace.html +0 -114
  65. data/doc/rdoc/core/classes/Proc.html +0 -302
  66. data/doc/rdoc/core/classes/Range.html +0 -360
  67. data/doc/rdoc/core/classes/Regexp.html +0 -191
  68. data/doc/rdoc/core/classes/Stackable.html +0 -262
  69. data/doc/rdoc/core/classes/String.html +0 -2332
  70. data/doc/rdoc/core/classes/Struct.html +0 -121
  71. data/doc/rdoc/core/classes/Symbol.html +0 -441
  72. data/doc/rdoc/core/classes/Time.html +0 -521
  73. data/doc/rdoc/core/classes/TrueClass.html +0 -131
  74. data/doc/rdoc/core/classes/UnboundMethod.html +0 -200
  75. data/doc/rdoc/core/created.rid +0 -1
  76. data/doc/rdoc/core/files/README.html +0 -287
  77. data/doc/rdoc/core/files/doc/README_core.html +0 -230
  78. data/doc/rdoc/core/files/lib/core/facets/array/combination_rb.html +0 -96
  79. data/doc/rdoc/core/files/lib/core/facets/array/conjoin_rb.html +0 -92
  80. data/doc/rdoc/core/files/lib/core/facets/array/delete_rb.html +0 -101
  81. data/doc/rdoc/core/files/lib/core/facets/array/delete_unless_rb.html +0 -92
  82. data/doc/rdoc/core/files/lib/core/facets/array/delete_values_rb.html +0 -92
  83. data/doc/rdoc/core/files/lib/core/facets/array/index_rb.html +0 -92
  84. data/doc/rdoc/core/files/lib/core/facets/array/indexable_rb.html +0 -97
  85. data/doc/rdoc/core/files/lib/core/facets/array/merge_rb.html +0 -92
  86. data/doc/rdoc/core/files/lib/core/facets/array/not_empty_rb.html +0 -92
  87. data/doc/rdoc/core/files/lib/core/facets/array/only_rb.html +0 -92
  88. data/doc/rdoc/core/files/lib/core/facets/array/pad_rb.html +0 -92
  89. data/doc/rdoc/core/files/lib/core/facets/array/permutation_rb.html +0 -92
  90. data/doc/rdoc/core/files/lib/core/facets/array/product_rb.html +0 -92
  91. data/doc/rdoc/core/files/lib/core/facets/array/recursively_rb.html +0 -92
  92. data/doc/rdoc/core/files/lib/core/facets/array/rotate_rb.html +0 -92
  93. data/doc/rdoc/core/files/lib/core/facets/array/select_rb.html +0 -92
  94. data/doc/rdoc/core/files/lib/core/facets/array/splice_rb.html +0 -92
  95. data/doc/rdoc/core/files/lib/core/facets/array/stackable_rb.html +0 -97
  96. data/doc/rdoc/core/files/lib/core/facets/array/traverse_rb.html +0 -92
  97. data/doc/rdoc/core/files/lib/core/facets/array_rb.html +0 -92
  98. data/doc/rdoc/core/files/lib/core/facets/binding/caller_rb.html +0 -97
  99. data/doc/rdoc/core/files/lib/core/facets/binding/callstack_rb.html +0 -96
  100. data/doc/rdoc/core/files/lib/core/facets/binding/defined_rb.html +0 -96
  101. data/doc/rdoc/core/files/lib/core/facets/binding/eval_rb.html +0 -92
  102. data/doc/rdoc/core/files/lib/core/facets/binding/local_variables_rb.html +0 -96
  103. data/doc/rdoc/core/files/lib/core/facets/binding/self_rb.html +0 -96
  104. data/doc/rdoc/core/files/lib/core/facets/binding_rb.html +0 -92
  105. data/doc/rdoc/core/files/lib/core/facets/bitmask_rb.html +0 -92
  106. data/doc/rdoc/core/files/lib/core/facets/blank_rb.html +0 -97
  107. data/doc/rdoc/core/files/lib/core/facets/boolean_rb.html +0 -126
  108. data/doc/rdoc/core/files/lib/core/facets/cattr_rb.html +0 -100
  109. data/doc/rdoc/core/files/lib/core/facets/class/cattr_accessor_rb.html +0 -96
  110. data/doc/rdoc/core/files/lib/core/facets/class/cattr_rb.html +0 -92
  111. data/doc/rdoc/core/files/lib/core/facets/class/cattr_reader_rb.html +0 -96
  112. data/doc/rdoc/core/files/lib/core/facets/class/cattr_writer_rb.html +0 -96
  113. data/doc/rdoc/core/files/lib/core/facets/class/descendents_rb.html +0 -92
  114. data/doc/rdoc/core/files/lib/core/facets/class/methodize_rb.html +0 -96
  115. data/doc/rdoc/core/files/lib/core/facets/class/pathize_rb.html +0 -96
  116. data/doc/rdoc/core/files/lib/core/facets/class/prepend_rb.html +0 -92
  117. data/doc/rdoc/core/files/lib/core/facets/class/subclasses_rb.html +0 -96
  118. data/doc/rdoc/core/files/lib/core/facets/class/to_proc_rb.html +0 -92
  119. data/doc/rdoc/core/files/lib/core/facets/class_rb.html +0 -92
  120. data/doc/rdoc/core/files/lib/core/facets/comparable/at_least_rb.html +0 -96
  121. data/doc/rdoc/core/files/lib/core/facets/comparable/at_most_rb.html +0 -96
  122. data/doc/rdoc/core/files/lib/core/facets/comparable/bound_rb.html +0 -96
  123. data/doc/rdoc/core/files/lib/core/facets/comparable/cap_rb.html +0 -92
  124. data/doc/rdoc/core/files/lib/core/facets/comparable/clip_rb.html +0 -92
  125. data/doc/rdoc/core/files/lib/core/facets/comparable/cmp_rb.html +0 -92
  126. data/doc/rdoc/core/files/lib/core/facets/comparable/comparable_rb.html +0 -109
  127. data/doc/rdoc/core/files/lib/core/facets/comparable_rb.html +0 -92
  128. data/doc/rdoc/core/files/lib/core/facets/dir/ascend_rb.html +0 -92
  129. data/doc/rdoc/core/files/lib/core/facets/dir/descend_rb.html +0 -96
  130. data/doc/rdoc/core/files/lib/core/facets/dir/multiglob_rb.html +0 -92
  131. data/doc/rdoc/core/files/lib/core/facets/dir/parent_rb.html +0 -92
  132. data/doc/rdoc/core/files/lib/core/facets/dir/recurse_rb.html +0 -92
  133. data/doc/rdoc/core/files/lib/core/facets/dir_rb.html +0 -92
  134. data/doc/rdoc/core/files/lib/core/facets/enumerable/accumulate_rb.html +0 -96
  135. data/doc/rdoc/core/files/lib/core/facets/enumerable/cluster_by_rb.html +0 -96
  136. data/doc/rdoc/core/files/lib/core/facets/enumerable/collect_rb.html +0 -101
  137. data/doc/rdoc/core/files/lib/core/facets/enumerable/commonality_rb.html +0 -92
  138. data/doc/rdoc/core/files/lib/core/facets/enumerable/compact_map_rb.html +0 -92
  139. data/doc/rdoc/core/files/lib/core/facets/enumerable/count_rb.html +0 -92
  140. data/doc/rdoc/core/files/lib/core/facets/enumerable/divide_rb.html +0 -92
  141. data/doc/rdoc/core/files/lib/core/facets/enumerable/duplicates_rb.html +0 -92
  142. data/doc/rdoc/core/files/lib/core/facets/enumerable/each_by_rb.html +0 -96
  143. data/doc/rdoc/core/files/lib/core/facets/enumerable/entropy_rb.html +0 -96
  144. data/doc/rdoc/core/files/lib/core/facets/enumerable/frequency_rb.html +0 -92
  145. data/doc/rdoc/core/files/lib/core/facets/enumerable/graph_rb.html +0 -96
  146. data/doc/rdoc/core/files/lib/core/facets/enumerable/group_by_rb.html +0 -92
  147. data/doc/rdoc/core/files/lib/core/facets/enumerable/inject_rb.html +0 -92
  148. data/doc/rdoc/core/files/lib/core/facets/enumerable/map_send_rb.html +0 -92
  149. data/doc/rdoc/core/files/lib/core/facets/enumerable/map_with_index_rb.html +0 -92
  150. data/doc/rdoc/core/files/lib/core/facets/enumerable/mash_rb.html +0 -92
  151. data/doc/rdoc/core/files/lib/core/facets/enumerable/mode_rb.html +0 -92
  152. data/doc/rdoc/core/files/lib/core/facets/enumerable/modulate_rb.html +0 -92
  153. data/doc/rdoc/core/files/lib/core/facets/enumerable/none_rb.html +0 -92
  154. data/doc/rdoc/core/files/lib/core/facets/enumerable/occur_rb.html +0 -92
  155. data/doc/rdoc/core/files/lib/core/facets/enumerable/one_rb.html +0 -92
  156. data/doc/rdoc/core/files/lib/core/facets/enumerable/probability_rb.html +0 -92
  157. data/doc/rdoc/core/files/lib/core/facets/enumerable/split_rb.html +0 -92
  158. data/doc/rdoc/core/files/lib/core/facets/enumerable/sum_rb.html +0 -92
  159. data/doc/rdoc/core/files/lib/core/facets/enumerable/take_rb.html +0 -92
  160. data/doc/rdoc/core/files/lib/core/facets/enumerable/uniq_by_rb.html +0 -92
  161. data/doc/rdoc/core/files/lib/core/facets/enumerable_rb.html +0 -92
  162. data/doc/rdoc/core/files/lib/core/facets/exception/detail_rb.html +0 -92
  163. data/doc/rdoc/core/files/lib/core/facets/exception/suppress_rb.html +0 -92
  164. data/doc/rdoc/core/files/lib/core/facets/exception_rb.html +0 -92
  165. data/doc/rdoc/core/files/lib/core/facets/file/append_rb.html +0 -92
  166. data/doc/rdoc/core/files/lib/core/facets/file/create_rb.html +0 -92
  167. data/doc/rdoc/core/files/lib/core/facets/file/null_rb.html +0 -92
  168. data/doc/rdoc/core/files/lib/core/facets/file/read_rb.html +0 -92
  169. data/doc/rdoc/core/files/lib/core/facets/file/rewrite_rb.html +0 -92
  170. data/doc/rdoc/core/files/lib/core/facets/file/rootname_rb.html +0 -92
  171. data/doc/rdoc/core/files/lib/core/facets/file/split_all_rb.html +0 -92
  172. data/doc/rdoc/core/files/lib/core/facets/file/split_root_rb.html +0 -92
  173. data/doc/rdoc/core/files/lib/core/facets/file/write_rb.html +0 -102
  174. data/doc/rdoc/core/files/lib/core/facets/file/writelines_rb.html +0 -92
  175. data/doc/rdoc/core/files/lib/core/facets/file_rb.html +0 -92
  176. data/doc/rdoc/core/files/lib/core/facets/filetest/root_rb.html +0 -92
  177. data/doc/rdoc/core/files/lib/core/facets/filetest_rb.html +0 -92
  178. data/doc/rdoc/core/files/lib/core/facets/float/round_rb.html +0 -96
  179. data/doc/rdoc/core/files/lib/core/facets/float_rb.html +0 -92
  180. data/doc/rdoc/core/files/lib/core/facets/functor_rb.html +0 -151
  181. data/doc/rdoc/core/files/lib/core/facets/hash/alias_rb.html +0 -92
  182. data/doc/rdoc/core/files/lib/core/facets/hash/argumentize_rb.html +0 -92
  183. data/doc/rdoc/core/files/lib/core/facets/hash/at_rb.html +0 -92
  184. data/doc/rdoc/core/files/lib/core/facets/hash/autonew_rb.html +0 -92
  185. data/doc/rdoc/core/files/lib/core/facets/hash/collate_rb.html +0 -92
  186. data/doc/rdoc/core/files/lib/core/facets/hash/dearray_values_rb.html +0 -92
  187. data/doc/rdoc/core/files/lib/core/facets/hash/delete_rb.html +0 -92
  188. data/doc/rdoc/core/files/lib/core/facets/hash/diff_rb.html +0 -92
  189. data/doc/rdoc/core/files/lib/core/facets/hash/except_rb.html +0 -92
  190. data/doc/rdoc/core/files/lib/core/facets/hash/group_by_value_rb.html +0 -92
  191. data/doc/rdoc/core/files/lib/core/facets/hash/insert_rb.html +0 -92
  192. data/doc/rdoc/core/files/lib/core/facets/hash/inverse_rb.html +0 -92
  193. data/doc/rdoc/core/files/lib/core/facets/hash/join_rb.html +0 -92
  194. data/doc/rdoc/core/files/lib/core/facets/hash/keys_rb.html +0 -92
  195. data/doc/rdoc/core/files/lib/core/facets/hash/mash_rb.html +0 -96
  196. data/doc/rdoc/core/files/lib/core/facets/hash/merge_rb.html +0 -92
  197. data/doc/rdoc/core/files/lib/core/facets/hash/new_with_rb.html +0 -92
  198. data/doc/rdoc/core/files/lib/core/facets/hash/op_add_rb.html +0 -92
  199. data/doc/rdoc/core/files/lib/core/facets/hash/op_and_rb.html +0 -92
  200. data/doc/rdoc/core/files/lib/core/facets/hash/op_mul_rb.html +0 -92
  201. data/doc/rdoc/core/files/lib/core/facets/hash/op_or_rb.html +0 -92
  202. data/doc/rdoc/core/files/lib/core/facets/hash/op_push_rb.html +0 -92
  203. data/doc/rdoc/core/files/lib/core/facets/hash/op_rb.html +0 -101
  204. data/doc/rdoc/core/files/lib/core/facets/hash/op_sub_rb.html +0 -92
  205. data/doc/rdoc/core/files/lib/core/facets/hash/recursive_merge_rb.html +0 -92
  206. data/doc/rdoc/core/files/lib/core/facets/hash/recursively_rb.html +0 -92
  207. data/doc/rdoc/core/files/lib/core/facets/hash/rekey_rb.html +0 -96
  208. data/doc/rdoc/core/files/lib/core/facets/hash/replace_each_rb.html +0 -92
  209. data/doc/rdoc/core/files/lib/core/facets/hash/select_rb.html +0 -92
  210. data/doc/rdoc/core/files/lib/core/facets/hash/slice_rb.html +0 -96
  211. data/doc/rdoc/core/files/lib/core/facets/hash/stringify_keys_rb.html +0 -96
  212. data/doc/rdoc/core/files/lib/core/facets/hash/swap_rb.html +0 -92
  213. data/doc/rdoc/core/files/lib/core/facets/hash/symbolize_keys_rb.html +0 -96
  214. data/doc/rdoc/core/files/lib/core/facets/hash/to_h_rb.html +0 -96
  215. data/doc/rdoc/core/files/lib/core/facets/hash/to_options_rb.html +0 -96
  216. data/doc/rdoc/core/files/lib/core/facets/hash/to_proc_rb.html +0 -92
  217. data/doc/rdoc/core/files/lib/core/facets/hash/to_struct_rb.html +0 -92
  218. data/doc/rdoc/core/files/lib/core/facets/hash/traverse_rb.html +0 -92
  219. data/doc/rdoc/core/files/lib/core/facets/hash/update_each_rb.html +0 -92
  220. data/doc/rdoc/core/files/lib/core/facets/hash/update_keys_rb.html +0 -92
  221. data/doc/rdoc/core/files/lib/core/facets/hash/update_rb.html +0 -103
  222. data/doc/rdoc/core/files/lib/core/facets/hash/update_values_rb.html +0 -92
  223. data/doc/rdoc/core/files/lib/core/facets/hash/weave_rb.html +0 -92
  224. data/doc/rdoc/core/files/lib/core/facets/hash/zipnew_rb.html +0 -92
  225. data/doc/rdoc/core/files/lib/core/facets/hash_rb.html +0 -92
  226. data/doc/rdoc/core/files/lib/core/facets/indexable_rb.html +0 -113
  227. data/doc/rdoc/core/files/lib/core/facets/integer/even_rb.html +0 -96
  228. data/doc/rdoc/core/files/lib/core/facets/integer/factorial_rb.html +0 -92
  229. data/doc/rdoc/core/files/lib/core/facets/integer/multiple_rb.html +0 -92
  230. data/doc/rdoc/core/files/lib/core/facets/integer/odd_rb.html +0 -92
  231. data/doc/rdoc/core/files/lib/core/facets/integer/of_rb.html +0 -92
  232. data/doc/rdoc/core/files/lib/core/facets/integer/ordinal_rb.html +0 -92
  233. data/doc/rdoc/core/files/lib/core/facets/integer_rb.html +0 -92
  234. data/doc/rdoc/core/files/lib/core/facets/kernel/__callee___rb.html +0 -96
  235. data/doc/rdoc/core/files/lib/core/facets/kernel/__class___rb.html +0 -92
  236. data/doc/rdoc/core/files/lib/core/facets/kernel/__dir___rb.html +0 -92
  237. data/doc/rdoc/core/files/lib/core/facets/kernel/__get___rb.html +0 -92
  238. data/doc/rdoc/core/files/lib/core/facets/kernel/__here___rb.html +0 -92
  239. data/doc/rdoc/core/files/lib/core/facets/kernel/__method___rb.html +0 -92
  240. data/doc/rdoc/core/files/lib/core/facets/kernel/__set___rb.html +0 -96
  241. data/doc/rdoc/core/files/lib/core/facets/kernel/as_rb.html +0 -96
  242. data/doc/rdoc/core/files/lib/core/facets/kernel/ask_rb.html +0 -92
  243. data/doc/rdoc/core/files/lib/core/facets/kernel/attr_singleton_rb.html +0 -92
  244. data/doc/rdoc/core/files/lib/core/facets/kernel/callstack_rb.html +0 -92
  245. data/doc/rdoc/core/files/lib/core/facets/kernel/complete_rb.html +0 -92
  246. data/doc/rdoc/core/files/lib/core/facets/kernel/constant_rb.html +0 -92
  247. data/doc/rdoc/core/files/lib/core/facets/kernel/d_rb.html +0 -92
  248. data/doc/rdoc/core/files/lib/core/facets/kernel/deep_copy_rb.html +0 -92
  249. data/doc/rdoc/core/files/lib/core/facets/kernel/demo_rb.html +0 -92
  250. data/doc/rdoc/core/files/lib/core/facets/kernel/ergo_rb.html +0 -96
  251. data/doc/rdoc/core/files/lib/core/facets/kernel/here_rb.html +0 -92
  252. data/doc/rdoc/core/files/lib/core/facets/kernel/in_rb.html +0 -92
  253. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_assign_rb.html +0 -92
  254. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_class_rb.html +0 -92
  255. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_exec_rb.html +0 -92
  256. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_rb.html +0 -96
  257. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_send_rb.html +0 -92
  258. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_variables_rb.html +0 -92
  259. data/doc/rdoc/core/files/lib/core/facets/kernel/maybe_rb.html +0 -92
  260. data/doc/rdoc/core/files/lib/core/facets/kernel/not_nil_rb.html +0 -92
  261. data/doc/rdoc/core/files/lib/core/facets/kernel/object_class_rb.html +0 -92
  262. data/doc/rdoc/core/files/lib/core/facets/kernel/object_hexid_rb.html +0 -92
  263. data/doc/rdoc/core/files/lib/core/facets/kernel/object_send_rb.html +0 -92
  264. data/doc/rdoc/core/files/lib/core/facets/kernel/p_rb.html +0 -92
  265. data/doc/rdoc/core/files/lib/core/facets/kernel/populate_rb.html +0 -92
  266. data/doc/rdoc/core/files/lib/core/facets/kernel/qua_class_rb.html +0 -92
  267. data/doc/rdoc/core/files/lib/core/facets/kernel/require_all_rb.html +0 -92
  268. data/doc/rdoc/core/files/lib/core/facets/kernel/require_local_rb.html +0 -92
  269. data/doc/rdoc/core/files/lib/core/facets/kernel/resc_rb.html +0 -92
  270. data/doc/rdoc/core/files/lib/core/facets/kernel/respond_rb.html +0 -92
  271. data/doc/rdoc/core/files/lib/core/facets/kernel/returning_rb.html +0 -92
  272. data/doc/rdoc/core/files/lib/core/facets/kernel/silence_rb.html +0 -92
  273. data/doc/rdoc/core/files/lib/core/facets/kernel/singleton_class_rb.html +0 -92
  274. data/doc/rdoc/core/files/lib/core/facets/kernel/tap_rb.html +0 -92
  275. data/doc/rdoc/core/files/lib/core/facets/kernel/try_rb.html +0 -92
  276. data/doc/rdoc/core/files/lib/core/facets/kernel/val_rb.html +0 -92
  277. data/doc/rdoc/core/files/lib/core/facets/kernel/with_rb.html +0 -92
  278. data/doc/rdoc/core/files/lib/core/facets/kernel_rb.html +0 -92
  279. data/doc/rdoc/core/files/lib/core/facets/lazy_rb.html +0 -120
  280. data/doc/rdoc/core/files/lib/core/facets/matchdata/match_rb.html +0 -92
  281. data/doc/rdoc/core/files/lib/core/facets/matchdata/matchset_rb.html +0 -92
  282. data/doc/rdoc/core/files/lib/core/facets/matchdata_rb.html +0 -92
  283. data/doc/rdoc/core/files/lib/core/facets/metaid_rb.html +0 -92
  284. data/doc/rdoc/core/files/lib/core/facets/module/abstract_rb.html +0 -92
  285. data/doc/rdoc/core/files/lib/core/facets/module/alias_accessor_rb.html +0 -92
  286. data/doc/rdoc/core/files/lib/core/facets/module/alias_method_chain_rb.html +0 -92
  287. data/doc/rdoc/core/files/lib/core/facets/module/alias_module_function_rb.html +0 -92
  288. data/doc/rdoc/core/files/lib/core/facets/module/ancestor_rb.html +0 -92
  289. data/doc/rdoc/core/files/lib/core/facets/module/basename_rb.html +0 -92
  290. data/doc/rdoc/core/files/lib/core/facets/module/can_rb.html +0 -92
  291. data/doc/rdoc/core/files/lib/core/facets/module/class_rb.html +0 -92
  292. data/doc/rdoc/core/files/lib/core/facets/module/conflict_rb.html +0 -92
  293. data/doc/rdoc/core/files/lib/core/facets/module/extend_rb.html +0 -92
  294. data/doc/rdoc/core/files/lib/core/facets/module/include_function_module_rb.html +0 -92
  295. data/doc/rdoc/core/files/lib/core/facets/module/instance_methods_rb.html +0 -92
  296. data/doc/rdoc/core/files/lib/core/facets/module/integrate_rb.html +0 -96
  297. data/doc/rdoc/core/files/lib/core/facets/module/is_rb.html +0 -92
  298. data/doc/rdoc/core/files/lib/core/facets/module/methodize_rb.html +0 -96
  299. data/doc/rdoc/core/files/lib/core/facets/module/modspace_rb.html +0 -92
  300. data/doc/rdoc/core/files/lib/core/facets/module/module_load_rb.html +0 -92
  301. data/doc/rdoc/core/files/lib/core/facets/module/nesting_rb.html +0 -92
  302. data/doc/rdoc/core/files/lib/core/facets/module/op_rb.html +0 -92
  303. data/doc/rdoc/core/files/lib/core/facets/module/pathize_rb.html +0 -96
  304. data/doc/rdoc/core/files/lib/core/facets/module/prepend_rb.html +0 -92
  305. data/doc/rdoc/core/files/lib/core/facets/module/redefine_method_rb.html +0 -92
  306. data/doc/rdoc/core/files/lib/core/facets/module/redirect_method_rb.html +0 -92
  307. data/doc/rdoc/core/files/lib/core/facets/module/rename_method_rb.html +0 -92
  308. data/doc/rdoc/core/files/lib/core/facets/module/revise_rb.html +0 -99
  309. data/doc/rdoc/core/files/lib/core/facets/module/spacename_rb.html +0 -92
  310. data/doc/rdoc/core/files/lib/core/facets/module/wrap_method_rb.html +0 -92
  311. data/doc/rdoc/core/files/lib/core/facets/module_rb.html +0 -92
  312. data/doc/rdoc/core/files/lib/core/facets/nilclass/ergo_rb.html +0 -96
  313. data/doc/rdoc/core/files/lib/core/facets/nilclass/to_f_rb.html +0 -92
  314. data/doc/rdoc/core/files/lib/core/facets/nilclass_rb.html +0 -92
  315. data/doc/rdoc/core/files/lib/core/facets/numeric/approx_rb.html +0 -92
  316. data/doc/rdoc/core/files/lib/core/facets/numeric/distance_rb.html +0 -92
  317. data/doc/rdoc/core/files/lib/core/facets/numeric/round_rb.html +0 -92
  318. data/doc/rdoc/core/files/lib/core/facets/numeric_rb.html +0 -92
  319. data/doc/rdoc/core/files/lib/core/facets/objectspace/classes_rb.html +0 -92
  320. data/doc/rdoc/core/files/lib/core/facets/objectspace_rb.html +0 -92
  321. data/doc/rdoc/core/files/lib/core/facets/proc/bind_rb.html +0 -92
  322. data/doc/rdoc/core/files/lib/core/facets/proc/compose_rb.html +0 -92
  323. data/doc/rdoc/core/files/lib/core/facets/proc/curry_rb.html +0 -92
  324. data/doc/rdoc/core/files/lib/core/facets/proc/to_method_rb.html +0 -96
  325. data/doc/rdoc/core/files/lib/core/facets/proc/update_rb.html +0 -92
  326. data/doc/rdoc/core/files/lib/core/facets/proc_rb.html +0 -92
  327. data/doc/rdoc/core/files/lib/core/facets/range/combine_rb.html +0 -92
  328. data/doc/rdoc/core/files/lib/core/facets/range/overlap_rb.html +0 -92
  329. data/doc/rdoc/core/files/lib/core/facets/range/to_r_rb.html +0 -92
  330. data/doc/rdoc/core/files/lib/core/facets/range/umbrella_rb.html +0 -96
  331. data/doc/rdoc/core/files/lib/core/facets/range/within_rb.html +0 -92
  332. data/doc/rdoc/core/files/lib/core/facets/range_rb.html +0 -92
  333. data/doc/rdoc/core/files/lib/core/facets/regexp/arity_rb.html +0 -92
  334. data/doc/rdoc/core/files/lib/core/facets/regexp/to_re_rb.html +0 -92
  335. data/doc/rdoc/core/files/lib/core/facets/regexp_rb.html +0 -92
  336. data/doc/rdoc/core/files/lib/core/facets/stackable_rb.html +0 -120
  337. data/doc/rdoc/core/files/lib/core/facets/string/align_rb.html +0 -92
  338. data/doc/rdoc/core/files/lib/core/facets/string/bracket_rb.html +0 -92
  339. data/doc/rdoc/core/files/lib/core/facets/string/bytes_rb.html +0 -92
  340. data/doc/rdoc/core/files/lib/core/facets/string/camelcase_rb.html +0 -92
  341. data/doc/rdoc/core/files/lib/core/facets/string/capitalized_rb.html +0 -92
  342. data/doc/rdoc/core/files/lib/core/facets/string/chars_rb.html +0 -92
  343. data/doc/rdoc/core/files/lib/core/facets/string/chomp_rb.html +0 -92
  344. data/doc/rdoc/core/files/lib/core/facets/string/cleave_rb.html +0 -92
  345. data/doc/rdoc/core/files/lib/core/facets/string/compress_lines_rb.html +0 -92
  346. data/doc/rdoc/core/files/lib/core/facets/string/contains_rb.html +0 -92
  347. data/doc/rdoc/core/files/lib/core/facets/string/divide_rb.html +0 -92
  348. data/doc/rdoc/core/files/lib/core/facets/string/each_char_rb.html +0 -96
  349. data/doc/rdoc/core/files/lib/core/facets/string/each_word_rb.html +0 -96
  350. data/doc/rdoc/core/files/lib/core/facets/string/end_with_rb.html +0 -96
  351. data/doc/rdoc/core/files/lib/core/facets/string/expand_tab_rb.html +0 -92
  352. data/doc/rdoc/core/files/lib/core/facets/string/file_rb.html +0 -96
  353. data/doc/rdoc/core/files/lib/core/facets/string/fold_rb.html +0 -92
  354. data/doc/rdoc/core/files/lib/core/facets/string/indent_rb.html +0 -92
  355. data/doc/rdoc/core/files/lib/core/facets/string/interpolate_rb.html +0 -92
  356. data/doc/rdoc/core/files/lib/core/facets/string/line_wrap_rb.html +0 -92
  357. data/doc/rdoc/core/files/lib/core/facets/string/lines_rb.html +0 -92
  358. data/doc/rdoc/core/files/lib/core/facets/string/margin_rb.html +0 -92
  359. data/doc/rdoc/core/files/lib/core/facets/string/methodize_rb.html +0 -92
  360. data/doc/rdoc/core/files/lib/core/facets/string/modulize_rb.html +0 -92
  361. data/doc/rdoc/core/files/lib/core/facets/string/mscan_rb.html +0 -92
  362. data/doc/rdoc/core/files/lib/core/facets/string/natcmp_rb.html +0 -92
  363. data/doc/rdoc/core/files/lib/core/facets/string/nchar_rb.html +0 -92
  364. data/doc/rdoc/core/files/lib/core/facets/string/op_sub_rb.html +0 -92
  365. data/doc/rdoc/core/files/lib/core/facets/string/outdent_rb.html +0 -96
  366. data/doc/rdoc/core/files/lib/core/facets/string/pathize_rb.html +0 -92
  367. data/doc/rdoc/core/files/lib/core/facets/string/range_rb.html +0 -92
  368. data/doc/rdoc/core/files/lib/core/facets/string/rewrite_rb.html +0 -92
  369. data/doc/rdoc/core/files/lib/core/facets/string/shatter_rb.html +0 -92
  370. data/doc/rdoc/core/files/lib/core/facets/string/snakecase_rb.html +0 -92
  371. data/doc/rdoc/core/files/lib/core/facets/string/splice_rb.html +0 -92
  372. data/doc/rdoc/core/files/lib/core/facets/string/start_with_rb.html +0 -92
  373. data/doc/rdoc/core/files/lib/core/facets/string/subtract_rb.html +0 -100
  374. data/doc/rdoc/core/files/lib/core/facets/string/tab_rb.html +0 -99
  375. data/doc/rdoc/core/files/lib/core/facets/string/tabto_rb.html +0 -96
  376. data/doc/rdoc/core/files/lib/core/facets/string/titlecase_rb.html +0 -92
  377. data/doc/rdoc/core/files/lib/core/facets/string/to_re_rb.html +0 -92
  378. data/doc/rdoc/core/files/lib/core/facets/string/variablize_rb.html +0 -92
  379. data/doc/rdoc/core/files/lib/core/facets/string/word_wrap_rb.html +0 -92
  380. data/doc/rdoc/core/files/lib/core/facets/string/words_rb.html +0 -92
  381. data/doc/rdoc/core/files/lib/core/facets/string/xor_rb.html +0 -92
  382. data/doc/rdoc/core/files/lib/core/facets/string_rb.html +0 -92
  383. data/doc/rdoc/core/files/lib/core/facets/struct/attributes_rb.html +0 -92
  384. data/doc/rdoc/core/files/lib/core/facets/struct_rb.html +0 -92
  385. data/doc/rdoc/core/files/lib/core/facets/symbol/chomp_rb.html +0 -92
  386. data/doc/rdoc/core/files/lib/core/facets/symbol/generate_rb.html +0 -92
  387. data/doc/rdoc/core/files/lib/core/facets/symbol/not_rb.html +0 -92
  388. data/doc/rdoc/core/files/lib/core/facets/symbol/plain_rb.html +0 -92
  389. data/doc/rdoc/core/files/lib/core/facets/symbol/query_rb.html +0 -96
  390. data/doc/rdoc/core/files/lib/core/facets/symbol/re_s_rb.html +0 -96
  391. data/doc/rdoc/core/files/lib/core/facets/symbol/setter_rb.html +0 -96
  392. data/doc/rdoc/core/files/lib/core/facets/symbol/succ_rb.html +0 -92
  393. data/doc/rdoc/core/files/lib/core/facets/symbol/to_proc_rb.html +0 -92
  394. data/doc/rdoc/core/files/lib/core/facets/symbol/variablize_rb.html +0 -92
  395. data/doc/rdoc/core/files/lib/core/facets/symbol_rb.html +0 -92
  396. data/doc/rdoc/core/files/lib/core/facets/time/advance_rb.html +0 -92
  397. data/doc/rdoc/core/files/lib/core/facets/time/ago_rb.html +0 -96
  398. data/doc/rdoc/core/files/lib/core/facets/time/change_rb.html +0 -92
  399. data/doc/rdoc/core/files/lib/core/facets/time/elapse_rb.html +0 -92
  400. data/doc/rdoc/core/files/lib/core/facets/time/hence_rb.html +0 -96
  401. data/doc/rdoc/core/files/lib/core/facets/time/round_rb.html +0 -96
  402. data/doc/rdoc/core/files/lib/core/facets/time/set_rb.html +0 -92
  403. data/doc/rdoc/core/files/lib/core/facets/time/stamp_rb.html +0 -92
  404. data/doc/rdoc/core/files/lib/core/facets/time/to_time_rb.html +0 -92
  405. data/doc/rdoc/core/files/lib/core/facets/time/trunc_rb.html +0 -92
  406. data/doc/rdoc/core/files/lib/core/facets/time_rb.html +0 -92
  407. data/doc/rdoc/core/files/lib/core/facets/to_hash_rb.html +0 -97
  408. data/doc/rdoc/core/files/lib/core/facets/unboundmethod/arguments_rb.html +0 -92
  409. data/doc/rdoc/core/files/lib/core/facets/unboundmethod/name_rb.html +0 -92
  410. data/doc/rdoc/core/files/lib/core/facets/unboundmethod_rb.html +0 -92
  411. data/doc/rdoc/core/fr_class_index.html +0 -85
  412. data/doc/rdoc/core/fr_file_index.html +0 -381
  413. data/doc/rdoc/core/fr_method_index.html +0 -520
  414. data/doc/rdoc/core/index.html +0 -26
  415. data/doc/rdoc/core/rdoc-style.css +0 -177
  416. data/doc/rdoc/more/classes/ANSICode.html +0 -493
  417. data/doc/rdoc/more/classes/Advisable.html +0 -269
  418. data/doc/rdoc/more/classes/Advisable/Method.html +0 -223
  419. data/doc/rdoc/more/classes/Archive.html +0 -89
  420. data/doc/rdoc/more/classes/Archive/Tar.html +0 -89
  421. data/doc/rdoc/more/classes/Archive/Tar/Minitar.html +0 -469
  422. data/doc/rdoc/more/classes/Archive/Tar/Minitar/Input.html +0 -355
  423. data/doc/rdoc/more/classes/Archive/Tar/Minitar/Output.html +0 -216
  424. data/doc/rdoc/more/classes/Archive/Tar/Minitar/Reader.html +0 -283
  425. data/doc/rdoc/more/classes/Archive/Tar/Minitar/Writer.html +0 -378
  426. data/doc/rdoc/more/classes/Argvector.html +0 -487
  427. data/doc/rdoc/more/classes/Association.html +0 -319
  428. data/doc/rdoc/more/classes/Association/Kernel.html +0 -131
  429. data/doc/rdoc/more/classes/Autoarray.html +0 -166
  430. data/doc/rdoc/more/classes/BBCode.html +0 -532
  431. data/doc/rdoc/more/classes/BaseX.html +0 -194
  432. data/doc/rdoc/more/classes/BiCrypt.html +0 -541
  433. data/doc/rdoc/more/classes/BinReadable.html +0 -485
  434. data/doc/rdoc/more/classes/BinReadable/ByteOrder.html +0 -223
  435. data/doc/rdoc/more/classes/Binding.html +0 -146
  436. data/doc/rdoc/more/classes/BlankSlate.html +0 -129
  437. data/doc/rdoc/more/classes/Buildable.html +0 -152
  438. data/doc/rdoc/more/classes/BuildingBlock.html +0 -360
  439. data/doc/rdoc/more/classes/Capsule.html +0 -408
  440. data/doc/rdoc/more/classes/Capsule/MissingFile.html +0 -96
  441. data/doc/rdoc/more/classes/Cloneable.html +0 -129
  442. data/doc/rdoc/more/classes/ConsoleUtils.html +0 -238
  443. data/doc/rdoc/more/classes/Coroutine.html +0 -285
  444. data/doc/rdoc/more/classes/Crypt.html +0 -275
  445. data/doc/rdoc/more/classes/CssFilter.html +0 -471
  446. data/doc/rdoc/more/classes/CssTree.html +0 -149
  447. data/doc/rdoc/more/classes/Dictionary.html +0 -1255
  448. data/doc/rdoc/more/classes/Downloader.html +0 -512
  449. data/doc/rdoc/more/classes/Duration.html +0 -691
  450. data/doc/rdoc/more/classes/Duration/Numeric.html +0 -389
  451. data/doc/rdoc/more/classes/Duration/Time.html +0 -124
  452. data/doc/rdoc/more/classes/Enumerable.html +0 -401
  453. data/doc/rdoc/more/classes/Enumerable/Elementor.html +0 -170
  454. data/doc/rdoc/more/classes/Enumerable/Enumerator.html +0 -116
  455. data/doc/rdoc/more/classes/Enumerable/Filterable.html +0 -246
  456. data/doc/rdoc/more/classes/EnumerablePass.html +0 -214
  457. data/doc/rdoc/more/classes/Enumerator.html +0 -95
  458. data/doc/rdoc/more/classes/Enumerator/Filter.html +0 -104
  459. data/doc/rdoc/more/classes/Equatable.html +0 -188
  460. data/doc/rdoc/more/classes/Expirable.html +0 -195
  461. data/doc/rdoc/more/classes/FileList.html +0 -955
  462. data/doc/rdoc/more/classes/Fileable.html +0 -178
  463. data/doc/rdoc/more/classes/Fileable/DSL.html +0 -303
  464. data/doc/rdoc/more/classes/Hash.html +0 -171
  465. data/doc/rdoc/more/classes/Hash2Xml.html +0 -105
  466. data/doc/rdoc/more/classes/Hook.html +0 -162
  467. data/doc/rdoc/more/classes/HtmlFilter.html +0 -329
  468. data/doc/rdoc/more/classes/IORedirect.html +0 -220
  469. data/doc/rdoc/more/classes/InfinityClass.html +0 -448
  470. data/doc/rdoc/more/classes/InfinityClass/Numeric.html +0 -195
  471. data/doc/rdoc/more/classes/Ini.html +0 -447
  472. data/doc/rdoc/more/classes/Instantiable.html +0 -140
  473. data/doc/rdoc/more/classes/Instantize.html +0 -160
  474. data/doc/rdoc/more/classes/Interval.html +0 -877
  475. data/doc/rdoc/more/classes/It.html +0 -185
  476. data/doc/rdoc/more/classes/LRUCache.html +0 -321
  477. data/doc/rdoc/more/classes/LRUCache/Item.html +0 -114
  478. data/doc/rdoc/more/classes/LRUCache/Sentinel.html +0 -100
  479. data/doc/rdoc/more/classes/LinkedList.html +0 -432
  480. data/doc/rdoc/more/classes/LinkedList/Node.html +0 -149
  481. data/doc/rdoc/more/classes/Matcher.html +0 -335
  482. data/doc/rdoc/more/classes/Matcher/MatchData.html +0 -115
  483. data/doc/rdoc/more/classes/Memoizer.html +0 -240
  484. data/doc/rdoc/more/classes/MissingArgument.html +0 -97
  485. data/doc/rdoc/more/classes/Module.html +0 -1224
  486. data/doc/rdoc/more/classes/Multiton.html +0 -205
  487. data/doc/rdoc/more/classes/Multiton/Inclusive.html +0 -93
  488. data/doc/rdoc/more/classes/Multiton/MetaMethods.html +0 -221
  489. data/doc/rdoc/more/classes/NackClass.html +0 -98
  490. data/doc/rdoc/more/classes/Net.html +0 -88
  491. data/doc/rdoc/more/classes/Net/SMTP.html +0 -140
  492. data/doc/rdoc/more/classes/NullClass.html +0 -202
  493. data/doc/rdoc/more/classes/Numeric/Multipliers.html +0 -456
  494. data/doc/rdoc/more/classes/ObjectReflection.html +0 -172
  495. data/doc/rdoc/more/classes/OpEsc.html +0 -137
  496. data/doc/rdoc/more/classes/OpenCascade.html +0 -179
  497. data/doc/rdoc/more/classes/OpenCollection.html +0 -138
  498. data/doc/rdoc/more/classes/OpenHash.html +0 -157
  499. data/doc/rdoc/more/classes/OpenModule.html +0 -135
  500. data/doc/rdoc/more/classes/OpenObject.html +0 -608
  501. data/doc/rdoc/more/classes/OpenStructable.html +0 -326
  502. data/doc/rdoc/more/classes/PQueue.html +0 -607
  503. data/doc/rdoc/more/classes/Paramix.html +0 -201
  504. data/doc/rdoc/more/classes/Paramix/Delegator.html +0 -215
  505. data/doc/rdoc/more/classes/PathList.html +0 -159
  506. data/doc/rdoc/more/classes/PathList/Finder.html +0 -135
  507. data/doc/rdoc/more/classes/Platform.html +0 -444
  508. data/doc/rdoc/more/classes/Pool.html +0 -204
  509. data/doc/rdoc/more/classes/Proc.html +0 -180
  510. data/doc/rdoc/more/classes/ProgressBar.html +0 -356
  511. data/doc/rdoc/more/classes/Prototype.html +0 -243
  512. data/doc/rdoc/more/classes/RWDelegator.html +0 -194
  513. data/doc/rdoc/more/classes/Random.html +0 -145
  514. data/doc/rdoc/more/classes/Random/Array.html +0 -339
  515. data/doc/rdoc/more/classes/Random/Hash.html +0 -378
  516. data/doc/rdoc/more/classes/Random/Object.html +0 -119
  517. data/doc/rdoc/more/classes/Random/String.html +0 -299
  518. data/doc/rdoc/more/classes/Random/String/Self.html +0 -153
  519. data/doc/rdoc/more/classes/Recorder.html +0 -203
  520. data/doc/rdoc/more/classes/Reference.html +0 -196
  521. data/doc/rdoc/more/classes/Registerable.html +0 -157
  522. data/doc/rdoc/more/classes/Semaphore.html +0 -260
  523. data/doc/rdoc/more/classes/Settings.html +0 -288
  524. data/doc/rdoc/more/classes/Settings/Setting.html +0 -223
  525. data/doc/rdoc/more/classes/Settings/SettingCollection.html +0 -144
  526. data/doc/rdoc/more/classes/SimpleStringIO.html +0 -135
  527. data/doc/rdoc/more/classes/Snapshot.html +0 -194
  528. data/doc/rdoc/more/classes/Snapshot/ValueHolder.html +0 -163
  529. data/doc/rdoc/more/classes/SparseArray.html +0 -1397
  530. data/doc/rdoc/more/classes/Stash.html +0 -232
  531. data/doc/rdoc/more/classes/String/Mask.html +0 -555
  532. data/doc/rdoc/more/classes/String/Words.html +0 -328
  533. data/doc/rdoc/more/classes/Struct.html +0 -130
  534. data/doc/rdoc/more/classes/SyncArray.html +0 -127
  535. data/doc/rdoc/more/classes/SyncHash.html +0 -158
  536. data/doc/rdoc/more/classes/SyncHash/Delegator.html +0 -211
  537. data/doc/rdoc/more/classes/SyncHash/Inheritor.html +0 -211
  538. data/doc/rdoc/more/classes/System.html +0 -1117
  539. data/doc/rdoc/more/classes/Timer.html +0 -464
  540. data/doc/rdoc/more/classes/Timer/Dummy.html +0 -139
  541. data/doc/rdoc/more/classes/TracePoint.html +0 -455
  542. data/doc/rdoc/more/classes/Tuple.html +0 -900
  543. data/doc/rdoc/more/classes/TypeCast.html +0 -158
  544. data/doc/rdoc/more/classes/TypeCast/Class.html +0 -127
  545. data/doc/rdoc/more/classes/TypeCast/Object.html +0 -117
  546. data/doc/rdoc/more/classes/TypeCastException.html +0 -96
  547. data/doc/rdoc/more/classes/Uninheritable.html +0 -120
  548. data/doc/rdoc/more/classes/VersionNumber.html +0 -408
  549. data/doc/rdoc/more/classes/X.html +0 -117
  550. data/doc/rdoc/more/classes/XOXO.html +0 -189
  551. data/doc/rdoc/more/classes/ZipUtils.html +0 -568
  552. data/doc/rdoc/more/classes/ZipUtils/DryRun.html +0 -391
  553. data/doc/rdoc/more/classes/ZipUtils/NoWrite.html +0 -391
  554. data/doc/rdoc/more/classes/ZipUtils/Verbose.html +0 -361
  555. data/doc/rdoc/more/created.rid +0 -1
  556. data/doc/rdoc/more/files/README.html +0 -286
  557. data/doc/rdoc/more/files/doc/README_more.html +0 -141
  558. data/doc/rdoc/more/files/lib/more/facets/1stclassmethod_rb.html +0 -181
  559. data/doc/rdoc/more/files/lib/more/facets/advisable_rb.html +0 -124
  560. data/doc/rdoc/more/files/lib/more/facets/ansicode_rb.html +0 -200
  561. data/doc/rdoc/more/files/lib/more/facets/argvector_rb.html +0 -142
  562. data/doc/rdoc/more/files/lib/more/facets/association_rb.html +0 -158
  563. data/doc/rdoc/more/files/lib/more/facets/attr_rb.html +0 -92
  564. data/doc/rdoc/more/files/lib/more/facets/autoarray_rb.html +0 -125
  565. data/doc/rdoc/more/files/lib/more/facets/autoreload_rb.html +0 -134
  566. data/doc/rdoc/more/files/lib/more/facets/basex_rb.html +0 -92
  567. data/doc/rdoc/more/files/lib/more/facets/bbcode_rb.html +0 -138
  568. data/doc/rdoc/more/files/lib/more/facets/bicrypt_rb.html +0 -124
  569. data/doc/rdoc/more/files/lib/more/facets/binding/opvars_rb.html +0 -96
  570. data/doc/rdoc/more/files/lib/more/facets/binreadable_rb.html +0 -141
  571. data/doc/rdoc/more/files/lib/more/facets/blankslate_rb.html +0 -92
  572. data/doc/rdoc/more/files/lib/more/facets/buildable_rb.html +0 -230
  573. data/doc/rdoc/more/files/lib/more/facets/capsule_rb.html +0 -143
  574. data/doc/rdoc/more/files/lib/more/facets/class_extension_rb.html +0 -155
  575. data/doc/rdoc/more/files/lib/more/facets/classmethods_rb.html +0 -213
  576. data/doc/rdoc/more/files/lib/more/facets/cloneable_rb.html +0 -134
  577. data/doc/rdoc/more/files/lib/more/facets/consoleutils_rb.html +0 -92
  578. data/doc/rdoc/more/files/lib/more/facets/coroutine_rb.html +0 -163
  579. data/doc/rdoc/more/files/lib/more/facets/crypt_rb.html +0 -141
  580. data/doc/rdoc/more/files/lib/more/facets/cssfilter_rb.html +0 -121
  581. data/doc/rdoc/more/files/lib/more/facets/daemonize_rb.html +0 -118
  582. data/doc/rdoc/more/files/lib/more/facets/dependency_rb.html +0 -158
  583. data/doc/rdoc/more/files/lib/more/facets/dictionary_rb.html +0 -201
  584. data/doc/rdoc/more/files/lib/more/facets/downloader_rb.html +0 -137
  585. data/doc/rdoc/more/files/lib/more/facets/duplicable_rb.html +0 -100
  586. data/doc/rdoc/more/files/lib/more/facets/duration_rb.html +0 -92
  587. data/doc/rdoc/more/files/lib/more/facets/elementor_rb.html +0 -149
  588. data/doc/rdoc/more/files/lib/more/facets/elementwise_rb.html +0 -96
  589. data/doc/rdoc/more/files/lib/more/facets/enumerablepass_rb.html +0 -154
  590. data/doc/rdoc/more/files/lib/more/facets/equatable_rb.html +0 -146
  591. data/doc/rdoc/more/files/lib/more/facets/expirable_rb.html +0 -116
  592. data/doc/rdoc/more/files/lib/more/facets/fileable_rb.html +0 -138
  593. data/doc/rdoc/more/files/lib/more/facets/filelist_rb.html +0 -165
  594. data/doc/rdoc/more/files/lib/more/facets/filter_rb.html +0 -97
  595. data/doc/rdoc/more/files/lib/more/facets/heap_rb.html +0 -132
  596. data/doc/rdoc/more/files/lib/more/facets/hook_rb.html +0 -96
  597. data/doc/rdoc/more/files/lib/more/facets/htmlfilter_rb.html +0 -153
  598. data/doc/rdoc/more/files/lib/more/facets/infinity_rb.html +0 -153
  599. data/doc/rdoc/more/files/lib/more/facets/inheritor_rb.html +0 -124
  600. data/doc/rdoc/more/files/lib/more/facets/ini_rb.html +0 -105
  601. data/doc/rdoc/more/files/lib/more/facets/instantiable_rb.html +0 -119
  602. data/doc/rdoc/more/files/lib/more/facets/instantise_rb.html +0 -96
  603. data/doc/rdoc/more/files/lib/more/facets/instantize_rb.html +0 -160
  604. data/doc/rdoc/more/files/lib/more/facets/interval_rb.html +0 -163
  605. data/doc/rdoc/more/files/lib/more/facets/ioredirect_rb.html +0 -133
  606. data/doc/rdoc/more/files/lib/more/facets/iteration_rb.html +0 -94
  607. data/doc/rdoc/more/files/lib/more/facets/kernel/meta_rb.html +0 -96
  608. data/doc/rdoc/more/files/lib/more/facets/linkedlist_rb.html +0 -159
  609. data/doc/rdoc/more/files/lib/more/facets/lrucache_rb.html +0 -129
  610. data/doc/rdoc/more/files/lib/more/facets/main_rb.html +0 -126
  611. data/doc/rdoc/more/files/lib/more/facets/matcher_rb.html +0 -97
  612. data/doc/rdoc/more/files/lib/more/facets/memoize_rb.html +0 -164
  613. data/doc/rdoc/more/files/lib/more/facets/memoizer_rb.html +0 -152
  614. data/doc/rdoc/more/files/lib/more/facets/methodspace_rb.html +0 -138
  615. data/doc/rdoc/more/files/lib/more/facets/minitar_rb.html +0 -203
  616. data/doc/rdoc/more/files/lib/more/facets/multipliers_rb.html +0 -132
  617. data/doc/rdoc/more/files/lib/more/facets/multiton_rb.html +0 -187
  618. data/doc/rdoc/more/files/lib/more/facets/nackclass_rb.html +0 -120
  619. data/doc/rdoc/more/files/lib/more/facets/net/smtp_tls_rb.html +0 -143
  620. data/doc/rdoc/more/files/lib/more/facets/nilstatus_rb.html +0 -92
  621. data/doc/rdoc/more/files/lib/more/facets/nullclass_rb.html +0 -122
  622. data/doc/rdoc/more/files/lib/more/facets/opencascade_rb.html +0 -114
  623. data/doc/rdoc/more/files/lib/more/facets/opencollection_rb.html +0 -123
  624. data/doc/rdoc/more/files/lib/more/facets/openhash_rb.html +0 -107
  625. data/doc/rdoc/more/files/lib/more/facets/openmodule_rb.html +0 -92
  626. data/doc/rdoc/more/files/lib/more/facets/openobject_rb.html +0 -169
  627. data/doc/rdoc/more/files/lib/more/facets/opesc_rb.html +0 -94
  628. data/doc/rdoc/more/files/lib/more/facets/orderedhash_rb.html +0 -143
  629. data/doc/rdoc/more/files/lib/more/facets/ostructable_rb.html +0 -92
  630. data/doc/rdoc/more/files/lib/more/facets/overload_rb.html +0 -119
  631. data/doc/rdoc/more/files/lib/more/facets/paramix_rb.html +0 -135
  632. data/doc/rdoc/more/files/lib/more/facets/partial_rb.html +0 -124
  633. data/doc/rdoc/more/files/lib/more/facets/pathlist_rb.html +0 -133
  634. data/doc/rdoc/more/files/lib/more/facets/platform_rb.html +0 -103
  635. data/doc/rdoc/more/files/lib/more/facets/pool_rb.html +0 -131
  636. data/doc/rdoc/more/files/lib/more/facets/pqueue_rb.html +0 -128
  637. data/doc/rdoc/more/files/lib/more/facets/progressbar_rb.html +0 -126
  638. data/doc/rdoc/more/files/lib/more/facets/prototype_rb.html +0 -102
  639. data/doc/rdoc/more/files/lib/more/facets/random_rb.html +0 -149
  640. data/doc/rdoc/more/files/lib/more/facets/rbsystem_rb.html +0 -144
  641. data/doc/rdoc/more/files/lib/more/facets/recorder_rb.html +0 -154
  642. data/doc/rdoc/more/files/lib/more/facets/reference_rb.html +0 -130
  643. data/doc/rdoc/more/files/lib/more/facets/reflection_rb.html +0 -134
  644. data/doc/rdoc/more/files/lib/more/facets/registerable_rb.html +0 -98
  645. data/doc/rdoc/more/files/lib/more/facets/rwdelegator_rb.html +0 -122
  646. data/doc/rdoc/more/files/lib/more/facets/semaphore_rb.html +0 -120
  647. data/doc/rdoc/more/files/lib/more/facets/settings_rb.html +0 -141
  648. data/doc/rdoc/more/files/lib/more/facets/snapshot_rb.html +0 -177
  649. data/doc/rdoc/more/files/lib/more/facets/sparse_array_rb.html +0 -92
  650. data/doc/rdoc/more/files/lib/more/facets/stash_rb.html +0 -166
  651. data/doc/rdoc/more/files/lib/more/facets/string/mask_rb.html +0 -96
  652. data/doc/rdoc/more/files/lib/more/facets/string/words_rb.html +0 -96
  653. data/doc/rdoc/more/files/lib/more/facets/succ_rb.html +0 -92
  654. data/doc/rdoc/more/files/lib/more/facets/syncarray_rb.html +0 -125
  655. data/doc/rdoc/more/files/lib/more/facets/synchash_rb.html +0 -138
  656. data/doc/rdoc/more/files/lib/more/facets/thread_rb.html +0 -132
  657. data/doc/rdoc/more/files/lib/more/facets/timer_rb.html +0 -174
  658. data/doc/rdoc/more/files/lib/more/facets/tracepoint_rb.html +0 -172
  659. data/doc/rdoc/more/files/lib/more/facets/tuple_rb.html +0 -160
  660. data/doc/rdoc/more/files/lib/more/facets/typecast_rb.html +0 -215
  661. data/doc/rdoc/more/files/lib/more/facets/uninheritable_rb.html +0 -129
  662. data/doc/rdoc/more/files/lib/more/facets/version_rb.html +0 -132
  663. data/doc/rdoc/more/files/lib/more/facets/xmlhash_rb.html +0 -97
  664. data/doc/rdoc/more/files/lib/more/facets/xoxo_rb.html +0 -136
  665. data/doc/rdoc/more/files/lib/more/facets/ziputils_rb.html +0 -105
  666. data/doc/rdoc/more/fr_class_index.html +0 -185
  667. data/doc/rdoc/more/fr_file_index.html +0 -156
  668. data/doc/rdoc/more/fr_method_index.html +0 -1132
  669. data/doc/rdoc/more/index.html +0 -26
  670. data/doc/rdoc/more/rdoc-style.css +0 -177
  671. data/lib/core/facets/kernel/__here__.rb +0 -8
  672. data/lib/more/facets/buildable.rb +0 -344
  673. data/lib/more/facets/cssfilter.rb +0 -254
  674. data/lib/more/facets/htmlfilter.rb +0 -595
  675. data/lib/more/facets/kernel/meta.rb +0 -32
  676. data/lib/more/facets/prototype.rb +0 -88
  677. data/lib/more/facets/rwdelegator.rb +0 -74
@@ -1,116 +0,0 @@
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>Module: FileTest</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">Module</span><br />FileTest</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/core/facets/filetest/root_rb.html">lib/core/facets/filetest/root.rb</a>
61
- </td>
62
- </tr>
63
- </table>
64
- </td>
65
- </tr>
66
- </table>
67
- <!-- banner header -->
68
-
69
- <div id="bodyContent">
70
- <div id="content">
71
-
72
-
73
-
74
-
75
- <div class="sectiontitle">Methods</div>
76
- <span style="padding-right: 5px;"><a href="#M000360">root?</a></span>
77
-
78
-
79
-
80
-
81
-
82
-
83
- <div class="sectiontitle">Public Instance methods</div>
84
- <div class="method">
85
- <div class="title">
86
- <a name="M000360"></a><b>root?</b>(dir=nil)
87
- </div>
88
- <div class="description">
89
- <p>
90
- Is the specified directory the root directory?
91
- </p>
92
- <p>
93
- CREDIT: Jeffrey Schwab
94
- </p>
95
- </div>
96
- <div class="sourcecode">
97
- <p class="source-link">[ <a href="javascript:toggleSource('M000360_source')" id="l_M000360_source">+</a> ]</p>
98
- <div id="M000360_source" class="dyn-source">
99
- <pre>
100
- <span class="ruby-comment cmt"># File lib/core/facets/filetest/root.rb, line 9</span>
101
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">root?</span>(<span class="ruby-identifier">dir</span>=<span class="ruby-keyword kw">nil</span>)
102
- <span class="ruby-identifier">pth</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">dir</span><span class="ruby-operator">||</span><span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>)
103
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pth</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span>
104
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pth</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^(\w:)?\/$/</span>
105
- <span class="ruby-keyword kw">false</span>
106
- <span class="ruby-keyword kw">end</span>
107
- </pre>
108
- </div>
109
- </div>
110
- </div>
111
- </div>
112
-
113
- </div>
114
-
115
- </body>
116
- </html>
@@ -1,159 +0,0 @@
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: Float</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 />Float</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/core/facets/numeric/round_rb.html">lib/core/facets/numeric/round.rb</a>
61
- </td>
62
- </tr>
63
- <tr>
64
- <td>Parent:</td>
65
- <td>
66
- <a href="Object.html">
67
- Object
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
-
81
-
82
-
83
- <div class="sectiontitle">Methods</div>
84
- <span style="padding-right: 5px;"><a href="#M000223">round_at</a></span>
85
- <span style="padding-right: 5px;"><a href="#M000224">round_to</a></span>
86
-
87
-
88
-
89
-
90
-
91
-
92
- <div class="sectiontitle">Public Instance methods</div>
93
- <div class="method">
94
- <div class="title">
95
- <a name="M000223"></a><b>round_at</b>( d )
96
- </div>
97
- <div class="description">
98
- <p>
99
- Rounds to the given decimal position.
100
- </p>
101
- <pre>
102
- 4.555.round_at(0) #=&gt; 5.0
103
- 4.555.round_at(1) #=&gt; 4.6
104
- 4.555.round_at(2) #=&gt; 4.56
105
- 4.555.round_at(3) #=&gt; 4.555
106
- </pre>
107
- <p>
108
- CREDIT: Trans
109
- </p>
110
- </div>
111
- <div class="sourcecode">
112
- <p class="source-link">[ <a href="javascript:toggleSource('M000223_source')" id="l_M000223_source">+</a> ]</p>
113
- <div id="M000223_source" class="dyn-source">
114
- <pre>
115
- <span class="ruby-comment cmt"># File lib/core/facets/numeric/round.rb, line 50</span>
116
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">round_at</span>( <span class="ruby-identifier">d</span> ) <span class="ruby-comment cmt">#d=0</span>
117
- (<span class="ruby-keyword kw">self</span> <span class="ruby-operator">*</span> (<span class="ruby-value">10.0</span> <span class="ruby-operator">**</span> <span class="ruby-identifier">d</span>)).<span class="ruby-identifier">round</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> (<span class="ruby-value">10.0</span> <span class="ruby-operator">**</span> <span class="ruby-identifier">d</span>)
118
- <span class="ruby-keyword kw">end</span>
119
- </pre>
120
- </div>
121
- </div>
122
- </div>
123
- <div class="method">
124
- <div class="title">
125
- <a name="M000224"></a><b>round_to</b>( n )
126
- </div>
127
- <div class="description">
128
- <p>
129
- Rounds to the nearest _n_th degree.
130
- </p>
131
- <pre>
132
- 4.555.round_to(1) #=&gt; 5.0
133
- 4.555.round_to(0.1) #=&gt; 4.6
134
- 4.555.round_to(0.01) #=&gt; 4.56
135
- 4.555.round_to(0) #=&gt; 4.555
136
- </pre>
137
- <p>
138
- CREDIT: Trans
139
- </p>
140
- </div>
141
- <div class="sourcecode">
142
- <p class="source-link">[ <a href="javascript:toggleSource('M000224_source')" id="l_M000224_source">+</a> ]</p>
143
- <div id="M000224_source" class="dyn-source">
144
- <pre>
145
- <span class="ruby-comment cmt"># File lib/core/facets/numeric/round.rb, line 63</span>
146
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">round_to</span>( <span class="ruby-identifier">n</span> ) <span class="ruby-comment cmt">#n=1</span>
147
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
148
- (<span class="ruby-keyword kw">self</span> <span class="ruby-operator">*</span> (<span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">n</span>)).<span class="ruby-identifier">round</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> (<span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">n</span>)
149
- <span class="ruby-keyword kw">end</span>
150
- </pre>
151
- </div>
152
- </div>
153
- </div>
154
- </div>
155
-
156
- </div>
157
-
158
- </body>
159
- </html>
@@ -1,171 +0,0 @@
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: Functor</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 />Functor</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/core/facets/functor_rb.html">lib/core/facets/functor.rb</a>
61
- </td>
62
- </tr>
63
- <tr>
64
- <td>Parent:</td>
65
- <td>
66
- <a href="Object.html">
67
- Object
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
- By definition a <a href="Functor.html">Functor</a> is simply a first class
82
- method, but these are common in the form of Method and <a
83
- href="Proc.html">Proc</a>. So for Ruby a <a href="Functor.html">Functor</a>
84
- is a more specialized as a Higher-order function or Metafunction.
85
- Essentally, a <a href="Functor.html">Functor</a> can vary its behavior
86
- accorrding to the operation applied to it.
87
- </p>
88
- <pre>
89
- f = Functor.new { |op, x| x.send(op, x) }
90
- f + 1 #=&gt; 2
91
- f + 2 #=&gt; 4
92
- f + 3 #=&gt; 6
93
- f * 1 #=&gt; 1
94
- f * 2 #=&gt; 4
95
- f * 3 #=&gt; 9
96
- </pre>
97
- </div>
98
-
99
-
100
-
101
- <div class="sectiontitle">Methods</div>
102
- <span style="padding-right: 5px;"><a href="#M000240">method_missing</a></span>
103
- <span style="padding-right: 5px;"><a href="#M000238">new</a></span>
104
- <span style="padding-right: 5px;"><a href="#M000239">to_proc</a></span>
105
-
106
-
107
-
108
-
109
-
110
-
111
- <div class="sectiontitle">Public Class methods</div>
112
- <div class="method">
113
- <div class="title">
114
- <a name="M000238"></a><b>new</b>(&amp;function)
115
- </div>
116
- <div class="sourcecode">
117
- <p class="source-link">[ <a href="javascript:toggleSource('M000238_source')" id="l_M000238_source">+</a> ]</p>
118
- <div id="M000238_source" class="dyn-source">
119
- <pre>
120
- <span class="ruby-comment cmt"># File lib/core/facets/functor.rb, line 63</span>
121
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">function</span>)
122
- <span class="ruby-ivar">@function</span> = <span class="ruby-identifier">function</span>
123
- <span class="ruby-keyword kw">end</span>
124
- </pre>
125
- </div>
126
- </div>
127
- </div>
128
- <div class="sectiontitle">Public Instance methods</div>
129
- <div class="method">
130
- <div class="title">
131
- <a name="M000240"></a><b>method_missing</b>(op, *args, &amp;blk)
132
- </div>
133
- <div class="description">
134
- <p>
135
- Any action against the functor is processesd by the function.
136
- </p>
137
- </div>
138
- <div class="sourcecode">
139
- <p class="source-link">[ <a href="javascript:toggleSource('M000240_source')" id="l_M000240_source">+</a> ]</p>
140
- <div id="M000240_source" class="dyn-source">
141
- <pre>
142
- <span class="ruby-comment cmt"># File lib/core/facets/functor.rb, line 72</span>
143
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">op</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span>)
144
- <span class="ruby-ivar">@function</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">op</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span>)
145
- <span class="ruby-keyword kw">end</span>
146
- </pre>
147
- </div>
148
- </div>
149
- </div>
150
- <div class="method">
151
- <div class="title">
152
- <a name="M000239"></a><b>to_proc</b>()
153
- </div>
154
- <div class="sourcecode">
155
- <p class="source-link">[ <a href="javascript:toggleSource('M000239_source')" id="l_M000239_source">+</a> ]</p>
156
- <div id="M000239_source" class="dyn-source">
157
- <pre>
158
- <span class="ruby-comment cmt"># File lib/core/facets/functor.rb, line 67</span>
159
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_proc</span>
160
- <span class="ruby-ivar">@function</span>
161
- <span class="ruby-keyword kw">end</span>
162
- </pre>
163
- </div>
164
- </div>
165
- </div>
166
- </div>
167
-
168
- </div>
169
-
170
- </body>
171
- </html>
@@ -1,2184 +0,0 @@
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: Hash</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 />Hash</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/core/facets/to_hash_rb.html">lib/core/facets/to_hash.rb</a>
61
- <a href="../files/lib/core/facets/hash/new_with_rb.html">lib/core/facets/hash/new_with.rb</a>
62
- <a href="../files/lib/core/facets/hash/zipnew_rb.html">lib/core/facets/hash/zipnew.rb</a>
63
- <a href="../files/lib/core/facets/hash/dearray_values_rb.html">lib/core/facets/hash/dearray_values.rb</a>
64
- <a href="../files/lib/core/facets/hash/update_values_rb.html">lib/core/facets/hash/update_values.rb</a>
65
- <a href="../files/lib/core/facets/hash/alias_rb.html">lib/core/facets/hash/alias.rb</a>
66
- <a href="../files/lib/core/facets/hash/autonew_rb.html">lib/core/facets/hash/autonew.rb</a>
67
- <a href="../files/lib/core/facets/hash/recursively_rb.html">lib/core/facets/hash/recursively.rb</a>
68
- <a href="../files/lib/core/facets/hash/op_and_rb.html">lib/core/facets/hash/op_and.rb</a>
69
- <a href="../files/lib/core/facets/hash/op_sub_rb.html">lib/core/facets/hash/op_sub.rb</a>
70
- <a href="../files/lib/core/facets/hash/except_rb.html">lib/core/facets/hash/except.rb</a>
71
- <a href="../files/lib/core/facets/hash/keys_rb.html">lib/core/facets/hash/keys.rb</a>
72
- <a href="../files/lib/core/facets/hash/merge_rb.html">lib/core/facets/hash/merge.rb</a>
73
- <a href="../files/lib/core/facets/hash/traverse_rb.html">lib/core/facets/hash/traverse.rb</a>
74
- <a href="../files/lib/core/facets/hash/op_or_rb.html">lib/core/facets/hash/op_or.rb</a>
75
- <a href="../files/lib/core/facets/hash/op_mul_rb.html">lib/core/facets/hash/op_mul.rb</a>
76
- <a href="../files/lib/core/facets/hash/op_push_rb.html">lib/core/facets/hash/op_push.rb</a>
77
- <a href="../files/lib/core/facets/hash/inverse_rb.html">lib/core/facets/hash/inverse.rb</a>
78
- <a href="../files/lib/core/facets/hash/recursive_merge_rb.html">lib/core/facets/hash/recursive_merge.rb</a>
79
- <a href="../files/lib/core/facets/hash/to_proc_rb.html">lib/core/facets/hash/to_proc.rb</a>
80
- <a href="../files/lib/core/facets/hash/insert_rb.html">lib/core/facets/hash/insert.rb</a>
81
- <a href="../files/lib/core/facets/hash/select_rb.html">lib/core/facets/hash/select.rb</a>
82
- <a href="../files/lib/core/facets/hash/diff_rb.html">lib/core/facets/hash/diff.rb</a>
83
- <a href="../files/lib/core/facets/hash/mash_rb.html">lib/core/facets/hash/mash.rb</a>
84
- <a href="../files/lib/core/facets/hash/collate_rb.html">lib/core/facets/hash/collate.rb</a>
85
- <a href="../files/lib/core/facets/hash/delete_rb.html">lib/core/facets/hash/delete.rb</a>
86
- <a href="../files/lib/core/facets/hash/weave_rb.html">lib/core/facets/hash/weave.rb</a>
87
- <a href="../files/lib/core/facets/hash/swap_rb.html">lib/core/facets/hash/swap.rb</a>
88
- <a href="../files/lib/core/facets/hash/to_struct_rb.html">lib/core/facets/hash/to_struct.rb</a>
89
- <a href="../files/lib/core/facets/hash/symbolize_keys_rb.html">lib/core/facets/hash/symbolize_keys.rb</a>
90
- <a href="../files/lib/core/facets/hash/join_rb.html">lib/core/facets/hash/join.rb</a>
91
- <a href="../files/lib/core/facets/hash/group_by_value_rb.html">lib/core/facets/hash/group_by_value.rb</a>
92
- <a href="../files/lib/core/facets/hash/replace_each_rb.html">lib/core/facets/hash/replace_each.rb</a>
93
- <a href="../files/lib/core/facets/hash/slice_rb.html">lib/core/facets/hash/slice.rb</a>
94
- <a href="../files/lib/core/facets/hash/op_add_rb.html">lib/core/facets/hash/op_add.rb</a>
95
- <a href="../files/lib/core/facets/hash/rekey_rb.html">lib/core/facets/hash/rekey.rb</a>
96
- <a href="../files/lib/core/facets/hash/update_each_rb.html">lib/core/facets/hash/update_each.rb</a>
97
- <a href="../files/lib/core/facets/hash/update_keys_rb.html">lib/core/facets/hash/update_keys.rb</a>
98
- <a href="../files/lib/core/facets/hash/argumentize_rb.html">lib/core/facets/hash/argumentize.rb</a>
99
- <a href="../files/lib/core/facets/hash/at_rb.html">lib/core/facets/hash/at.rb</a>
100
- <a href="../files/lib/core/facets/blank_rb.html">lib/core/facets/blank.rb</a>
101
- </td>
102
- </tr>
103
- <tr>
104
- <td>Parent:</td>
105
- <td>
106
- <a href="Object.html">
107
- Object
108
- </a>
109
- </td>
110
- </tr>
111
- </table>
112
- </td>
113
- </tr>
114
- </table>
115
- <!-- banner header -->
116
-
117
- <div id="bodyContent">
118
- <div id="content">
119
-
120
-
121
-
122
-
123
- <div class="sectiontitle">Methods</div>
124
- <span style="padding-right: 5px;"><a href="#M000086">&amp;</a></span>
125
- <span style="padding-right: 5px;"><a href="#M000101">*</a></span>
126
- <span style="padding-right: 5px;"><a href="#M000130">+</a></span>
127
- <span style="padding-right: 5px;"><a href="#M000087">-</a></span>
128
- <span style="padding-right: 5px;"><a href="#M000102">&lt;&lt;</a></span>
129
- <span style="padding-right: 5px;"><a href="#M000082">alias!</a></span>
130
- <span style="padding-right: 5px;"><a href="#M000135">argumentize</a></span>
131
- <span style="padding-right: 5px;"><a href="#M000083">autonew</a></span>
132
- <span style="padding-right: 5px;"><a href="#M000113">collate</a></span>
133
- <span style="padding-right: 5px;"><a href="#M000114">collate!</a></span>
134
- <span style="padding-right: 5px;"><a href="#M000080">dearray_singular_values</a></span>
135
- <span style="padding-right: 5px;"><a href="#M000079">dearray_values</a></span>
136
- <span style="padding-right: 5px;"><a href="#M000115">delete_unless</a></span>
137
- <span style="padding-right: 5px;"><a href="#M000116">delete_values</a></span>
138
- <span style="padding-right: 5px;"><a href="#M000117">delete_values_at</a></span>
139
- <span style="padding-right: 5px;"><a href="#M000110">diff</a></span>
140
- <span style="padding-right: 5px;"><a href="#M000094">each_with_key</a></span>
141
- <span style="padding-right: 5px;"><a href="#M000088">except</a></span>
142
- <span style="padding-right: 5px;"><a href="#M000089">except!</a></span>
143
- <span style="padding-right: 5px;"><a href="#M000112">graph!</a></span>
144
- <span style="padding-right: 5px;"><a href="#M000126">group_by_value</a></span>
145
- <span style="padding-right: 5px;"><a href="#M000090">has_keys?</a></span>
146
- <span style="padding-right: 5px;"><a href="#M000092">has_only_keys?</a></span>
147
- <span style="padding-right: 5px;"><a href="#M000108">insert</a></span>
148
- <span style="padding-right: 5px;"><a href="#M000103">inverse</a></span>
149
- <span style="padding-right: 5px;"><a href="#M000125">join</a></span>
150
- <span style="padding-right: 5px;"><a href="#M000091">keys?</a></span>
151
- <span style="padding-right: 5px;"><a href="#M000111">mash!</a></span>
152
- <span style="padding-right: 5px;"><a href="#M000077">new_with</a></span>
153
- <span style="padding-right: 5px;"><a href="#M000093">only_keys?</a></span>
154
- <span style="padding-right: 5px;"><a href="#M000104">recursive_merge</a></span>
155
- <span style="padding-right: 5px;"><a href="#M000105">recursive_merge!</a></span>
156
- <span style="padding-right: 5px;"><a href="#M000084">recursively</a></span>
157
- <span style="padding-right: 5px;"><a href="#M000085">recursively!</a></span>
158
- <span style="padding-right: 5px;"><a href="#M000131">rekey</a></span>
159
- <span style="padding-right: 5px;"><a href="#M000132">rekey!</a></span>
160
- <span style="padding-right: 5px;"><a href="#M000127">replace_each</a></span>
161
- <span style="padding-right: 5px;"><a href="#M000095">reverse_merge</a></span>
162
- <span style="padding-right: 5px;"><a href="#M000096">reverse_merge!</a></span>
163
- <span style="padding-right: 5px;"><a href="#M000097">reverse_update</a></span>
164
- <span style="padding-right: 5px;"><a href="#M000109">select!</a></span>
165
- <span style="padding-right: 5px;"><a href="#M000128">slice</a></span>
166
- <span style="padding-right: 5px;"><a href="#M000129">slice!</a></span>
167
- <span style="padding-right: 5px;"><a href="#M000123">stringify_keys</a></span>
168
- <span style="padding-right: 5px;"><a href="#M000124">stringify_keys!</a></span>
169
- <span style="padding-right: 5px;"><a href="#M000119">swap!</a></span>
170
- <span style="padding-right: 5px;"><a href="#M000121">symbolize_keys</a></span>
171
- <span style="padding-right: 5px;"><a href="#M000122">symbolize_keys!</a></span>
172
- <span style="padding-right: 5px;"><a href="#M000075">to_h</a></span>
173
- <span style="padding-right: 5px;"><a href="#M000076">to_hash</a></span>
174
- <span style="padding-right: 5px;"><a href="#M000106">to_proc</a></span>
175
- <span style="padding-right: 5px;"><a href="#M000107">to_proc_with_reponse</a></span>
176
- <span style="padding-right: 5px;"><a href="#M000120">to_struct</a></span>
177
- <span style="padding-right: 5px;"><a href="#M000098">traverse</a></span>
178
- <span style="padding-right: 5px;"><a href="#M000099">traverse!</a></span>
179
- <span style="padding-right: 5px;"><a href="#M000133">update_each</a></span>
180
- <span style="padding-right: 5px;"><a href="#M000134">update_keys</a></span>
181
- <span style="padding-right: 5px;"><a href="#M000081">update_values</a></span>
182
- <span style="padding-right: 5px;"><a href="#M000118">weave</a></span>
183
- <span style="padding-right: 5px;"><a href="#M000078">zipnew</a></span>
184
- <span style="padding-right: 5px;"><a href="#M000100">|</a></span>
185
-
186
-
187
-
188
-
189
-
190
-
191
- <div class="sectiontitle">Public Class methods</div>
192
- <div class="method">
193
- <div class="title">
194
- <a name="M000083"></a><b>autonew</b>(*args)
195
- </div>
196
- <div class="description">
197
- <pre>
198
- Hash which auto initializes it's children.
199
-
200
- ah = Hash.autonew
201
- ah['section one']['param one'] = 4
202
- ah['section one']['param two'] = 5
203
- ah['section one']['param three'] = 2
204
- ah['section one']['param four'] = 3
205
-
206
- p ah
207
- # {&quot;section one&quot;=&gt;{&quot;param one&quot;=&gt;4, &quot;param four&quot;=&gt;3, &quot;param three&quot;=&gt;2, &quot;param two&quot;=&gt;5}}
208
-
209
- p ah['section one'].keys
210
- # [&quot;param one&quot;, &quot;param four&quot;, &quot;param three&quot;, &quot;param two&quot;]
211
- </pre>
212
- <p>
213
- CREDIT: Trans, Jan Molic
214
- </p>
215
- </div>
216
- <div class="sourcecode">
217
- <p class="source-link">[ <a href="javascript:toggleSource('M000083_source')" id="l_M000083_source">+</a> ]</p>
218
- <div id="M000083_source" class="dyn-source">
219
- <pre>
220
- <span class="ruby-comment cmt"># File lib/core/facets/hash/autonew.rb, line 19</span>
221
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">autonew</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
222
- <span class="ruby-comment cmt">#new(*args){|a,k| a[k] = self.class::new(*args)}</span>
223
- <span class="ruby-identifier">leet</span> = <span class="ruby-identifier">lambda</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">hsh</span>, <span class="ruby-identifier">key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hsh</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">new</span>( <span class="ruby-operator">&amp;</span><span class="ruby-identifier">leet</span> ) }
224
- <span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">leet</span>)
225
- <span class="ruby-keyword kw">end</span>
226
- </pre>
227
- </div>
228
- </div>
229
- </div>
230
- <div class="method">
231
- <div class="title">
232
- <a name="M000077"></a><b>new_with</b>( {|| ...}
233
- </div>
234
- <div class="description">
235
- <p>
236
- Instantiate a new hash with a default value determined by the block.
237
- </p>
238
- <p>
239
- <a href="Hash.html#M000077">Hash.new_with</a> { [] }
240
- </p>
241
- <p>
242
- CREDIT: Pit Capitan
243
- </p>
244
- </div>
245
- <div class="sourcecode">
246
- <p class="source-link">[ <a href="javascript:toggleSource('M000077_source')" id="l_M000077_source">+</a> ]</p>
247
- <div id="M000077_source" class="dyn-source">
248
- <pre>
249
- <span class="ruby-comment cmt"># File lib/core/facets/hash/new_with.rb, line 10</span>
250
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new_with</span> <span class="ruby-comment cmt">#:yield:</span>
251
- <span class="ruby-identifier">new</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span>, <span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-keyword kw">yield</span> }
252
- <span class="ruby-keyword kw">end</span>
253
- </pre>
254
- </div>
255
- </div>
256
- </div>
257
- <div class="method">
258
- <div class="title">
259
- <a name="M000078"></a><b>zipnew</b>(keys,values)
260
- </div>
261
- <div class="description">
262
- <p>
263
- Creates a new hash from two arrays &#8212;a keys array and a values array.
264
- </p>
265
- <pre>
266
- Hash.zipnew([&quot;a&quot;,&quot;b&quot;,&quot;c&quot;], [1,2,3])
267
- #=&gt; { &quot;a&quot;=&gt;1, &quot;b&quot;=&gt;2, &quot;c&quot;=&gt;3 }
268
- </pre>
269
- <p>
270
- CREDIT: Trans, Ara T. Howard
271
- </p>
272
- </div>
273
- <div class="sourcecode">
274
- <p class="source-link">[ <a href="javascript:toggleSource('M000078_source')" id="l_M000078_source">+</a> ]</p>
275
- <div id="M000078_source" class="dyn-source">
276
- <pre>
277
- <span class="ruby-comment cmt"># File lib/core/facets/hash/zipnew.rb, line 11</span>
278
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zipnew</span>(<span class="ruby-identifier">keys</span>,<span class="ruby-identifier">values</span>) <span class="ruby-comment cmt"># or some better name</span>
279
- <span class="ruby-identifier">h</span> = {}
280
- <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">size</span>.<span class="ruby-identifier">times</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[ <span class="ruby-identifier">keys</span>[<span class="ruby-identifier">i</span>] ] = <span class="ruby-identifier">values</span>[<span class="ruby-identifier">i</span>] }
281
- <span class="ruby-identifier">h</span>
282
- <span class="ruby-keyword kw">end</span>
283
- </pre>
284
- </div>
285
- </div>
286
- </div>
287
- <div class="sectiontitle">Public Instance methods</div>
288
- <div class="method">
289
- <div class="title">
290
- <a name="M000086"></a><b>&amp;</b>(other)
291
- </div>
292
- <div class="description">
293
- <p>
294
- <a href="Hash.html">Hash</a> intersection. Two hashes intersect when their
295
- pairs are equal.
296
- </p>
297
- <pre>
298
- {:a=&gt;1,:b=&gt;2} &amp; {:a=&gt;1,:c=&gt;3} #=&gt; {:a=&gt;1}
299
- </pre>
300
- <p>
301
- A hash can also be intersected with an array to intersect keys only.
302
- </p>
303
- <pre>
304
- {:a=&gt;1,:b=&gt;2} &amp; [:a,:c] #=&gt; {:a=&gt;1}
305
- </pre>
306
- <p>
307
- The later form is similar to pairs_at. The differ only in that pairs_at
308
- will return a nil value for a key not in the hash, but #&amp; will not.
309
- </p>
310
- <p>
311
- CREDIT: Trans
312
- </p>
313
- </div>
314
- <div class="sourcecode">
315
- <p class="source-link">[ <a href="javascript:toggleSource('M000086_source')" id="l_M000086_source">+</a> ]</p>
316
- <div id="M000086_source" class="dyn-source">
317
- <pre>
318
- <span class="ruby-comment cmt"># File lib/core/facets/hash/op_and.rb, line 19</span>
319
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&amp;</span>(<span class="ruby-identifier">other</span>)
320
- <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">other</span>
321
- <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
322
- <span class="ruby-identifier">k</span> = (<span class="ruby-identifier">keys</span> <span class="ruby-operator">&amp;</span> <span class="ruby-identifier">other</span>)
323
- <span class="ruby-constant">Hash</span>[<span class="ruby-operator">*</span>(<span class="ruby-identifier">k</span>.<span class="ruby-identifier">zip</span>(<span class="ruby-identifier">values_at</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">k</span>)).<span class="ruby-identifier">flatten</span>)]
324
- <span class="ruby-keyword kw">else</span>
325
- <span class="ruby-identifier">x</span> = (<span class="ruby-identifier">to_a</span> <span class="ruby-operator">&amp;</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_a</span>).<span class="ruby-identifier">inject</span>([]) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">kv</span><span class="ruby-operator">|</span>
326
- <span class="ruby-identifier">a</span>.<span class="ruby-identifier">concat</span> <span class="ruby-identifier">kv</span>; <span class="ruby-identifier">a</span>
327
- <span class="ruby-keyword kw">end</span>
328
- <span class="ruby-constant">Hash</span>[<span class="ruby-operator">*</span><span class="ruby-identifier">x</span>]
329
- <span class="ruby-keyword kw">end</span>
330
- <span class="ruby-keyword kw">end</span>
331
- </pre>
332
- </div>
333
- </div>
334
- </div>
335
- <div class="method">
336
- <div class="title">
337
- <a name="M000101"></a><b>*</b>(other)
338
- </div>
339
- <div class="description">
340
- <p>
341
- Like merge operator &#8217;+&#8217; but merges in reverse order.
342
- </p>
343
- <pre>
344
- h1 = { :a=&gt;1 }
345
- h2 = { :a=&gt;2, :b=&gt;3 }
346
-
347
- h1 + h2 #=&gt; { :a=&gt;2, :b=&gt;3 }
348
- h1 * h2 #=&gt; { :a=&gt;1, :b=&gt;3 }
349
- </pre>
350
- <p>
351
- CREDIT: Trans
352
- </p>
353
- </div>
354
- <div class="sourcecode">
355
- <p class="source-link">[ <a href="javascript:toggleSource('M000101_source')" id="l_M000101_source">+</a> ]</p>
356
- <div id="M000101_source" class="dyn-source">
357
- <pre>
358
- <span class="ruby-comment cmt"># File lib/core/facets/hash/op_mul.rb, line 13</span>
359
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">*</span>(<span class="ruby-identifier">other</span>)
360
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-keyword kw">self</span>)
361
- <span class="ruby-keyword kw">end</span>
362
- </pre>
363
- </div>
364
- </div>
365
- </div>
366
- <div class="method">
367
- <div class="title">
368
- <a name="M000130"></a><b>+</b>(other)
369
- </div>
370
- <div class="description">
371
- <p>
372
- Operator for merge.
373
- </p>
374
- <p>
375
- CREDIT: Trans
376
- </p>
377
- </div>
378
- <div class="sourcecode">
379
- <p class="source-link">[ <a href="javascript:toggleSource('M000130_source')" id="l_M000130_source">+</a> ]</p>
380
- <div id="M000130_source" class="dyn-source">
381
- <pre>
382
- <span class="ruby-comment cmt"># File lib/core/facets/hash/op_add.rb, line 7</span>
383
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">other</span>)
384
- <span class="ruby-identifier">merge</span>(<span class="ruby-identifier">other</span>)
385
- <span class="ruby-keyword kw">end</span>
386
- </pre>
387
- </div>
388
- </div>
389
- </div>
390
- <div class="method">
391
- <div class="title">
392
- <a name="M000087"></a><b>-</b>(other)
393
- </div>
394
- <div class="description">
395
- <p>
396
- Operator for remove hash paris. If another hash is given the pairs are only
397
- removed if both key and value are equal. If an array is given then matching
398
- keys are removed.
399
- </p>
400
- <p>
401
- CREDIT: Trans
402
- </p>
403
- </div>
404
- <div class="sourcecode">
405
- <p class="source-link">[ <a href="javascript:toggleSource('M000087_source')" id="l_M000087_source">+</a> ]</p>
406
- <div id="M000087_source" class="dyn-source">
407
- <pre>
408
- <span class="ruby-comment cmt"># File lib/core/facets/hash/op_sub.rb, line 9</span>
409
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">other</span>)
410
- <span class="ruby-identifier">h</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
411
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:to_ary</span>)
412
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_ary</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
413
- <span class="ruby-identifier">h</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>)
414
- <span class="ruby-keyword kw">end</span>
415
- <span class="ruby-keyword kw">else</span>
416
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
417
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">k</span>)
418
- <span class="ruby-identifier">h</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">v</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>]
419
- <span class="ruby-keyword kw">end</span>
420
- <span class="ruby-keyword kw">end</span>
421
- <span class="ruby-keyword kw">end</span>
422
- <span class="ruby-identifier">h</span>
423
- <span class="ruby-keyword kw">end</span>
424
- </pre>
425
- </div>
426
- </div>
427
- </div>
428
- <div class="method">
429
- <div class="title">
430
- <a name="M000102"></a><b>&lt;&lt;</b>(other)
431
- </div>
432
- <div class="description">
433
- <p>
434
- Can be used like update, or passed as two-element [key,value] array.
435
- </p>
436
- <p>
437
- CREDIT: Trans
438
- </p>
439
- </div>
440
- <div class="sourcecode">
441
- <p class="source-link">[ <a href="javascript:toggleSource('M000102_source')" id="l_M000102_source">+</a> ]</p>
442
- <div id="M000102_source" class="dyn-source">
443
- <pre>
444
- <span class="ruby-comment cmt"># File lib/core/facets/hash/op_push.rb, line 8</span>
445
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">other</span>)
446
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:to_ary</span>)
447
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">store</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">other</span>)
448
- <span class="ruby-keyword kw">else</span>
449
- <span class="ruby-identifier">update</span>(<span class="ruby-identifier">other</span>)
450
- <span class="ruby-keyword kw">end</span>
451
- <span class="ruby-keyword kw">self</span>
452
- <span class="ruby-keyword kw">end</span>
453
- </pre>
454
- </div>
455
- </div>
456
- </div>
457
- <div class="method">
458
- <div class="title">
459
- <a name="M000082"></a><b>alias!</b>(newkey, oldkey)
460
- </div>
461
- <div class="description">
462
- <p>
463
- Modifies the receiving <a href="Hash.html">Hash</a> so that the value
464
- previously referred to by <em>oldkey</em> is also referenced by
465
- <em>newkey</em>; <em>oldkey</em> is retained in the <a
466
- href="Hash.html">Hash</a>. If <em>oldkey</em> does not exist as a key in
467
- the <a href="Hash.html">Hash</a>, no change is effected.
468
- </p>
469
- <p>
470
- Returns a reference to the <a href="Hash.html">Hash</a>.
471
- </p>
472
- <pre>
473
- foo = { :name=&gt;'Gavin', 'wife'=&gt;:Lisa }
474
- foo.alias!('name',:name) =&gt; { :name=&gt;'Gavin', 'name'=&gt;'Gavin', 'wife'=&gt;:Lisa }
475
-
476
- foo = { :name=&gt;'Gavin', 'wife'=&gt;:Lisa }
477
- foo.alias!('spouse','wife') =&gt; { :name=&gt;'Gavin', 'wife'=&gt;:Lisa, 'spouse'=&gt;:Lisa }
478
-
479
- foo = { :name=&gt;'Gavin', 'wife'=&gt;:Lisa }
480
- foo.alias!('bar','foo') =&gt; { :name=&gt;'Gavin', 'wife'=&gt;:Lisa }
481
- </pre>
482
- <p>
483
- Note that if the <em>oldkey</em> is reassigned, the reference will no
484
- longer exist, and the <em>newkey</em> will remain as it was.
485
- </p>
486
- <p>
487
- CREDIT: Gavin Sinclair
488
- </p>
489
- <p>
490
- TODO: Rename to aliaskey or something else.
491
- </p>
492
- </div>
493
- <div class="sourcecode">
494
- <p class="source-link">[ <a href="javascript:toggleSource('M000082_source')" id="l_M000082_source">+</a> ]</p>
495
- <div id="M000082_source" class="dyn-source">
496
- <pre>
497
- <span class="ruby-comment cmt"># File lib/core/facets/hash/alias.rb, line 25</span>
498
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alias!</span>(<span class="ruby-identifier">newkey</span>, <span class="ruby-identifier">oldkey</span>)
499
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">newkey</span>] = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">oldkey</span>] <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">oldkey</span>)
500
- <span class="ruby-keyword kw">self</span>
501
- <span class="ruby-keyword kw">end</span>
502
- </pre>
503
- </div>
504
- </div>
505
- </div>
506
- <div class="method">
507
- <div class="title">
508
- <a name="M000135"></a><b>argumentize</b>(args_field=nil)
509
- </div>
510
- <div class="description">
511
- <p>
512
- Turn a hash into arguments.
513
- </p>
514
- <pre>
515
- h = { :list =&gt; [1,2], :base =&gt; &quot;HI&quot; }
516
- h.argumentize #=&gt; [ [], { :list =&gt; [1,2], :base =&gt; &quot;HI&quot; } ]
517
- h.argumentize(:list) #=&gt; [ [1,2], { :base =&gt; &quot;HI&quot; } ]
518
- h.argumentize(:base) #=&gt; [ [&quot;HI&quot;], { :list =&gt; [1,2] } ]
519
- </pre>
520
- </div>
521
- <div class="sourcecode">
522
- <p class="source-link">[ <a href="javascript:toggleSource('M000135_source')" id="l_M000135_source">+</a> ]</p>
523
- <div id="M000135_source" class="dyn-source">
524
- <pre>
525
- <span class="ruby-comment cmt"># File lib/core/facets/hash/argumentize.rb, line 10</span>
526
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">argumentize</span>(<span class="ruby-identifier">args_field</span>=<span class="ruby-keyword kw">nil</span>)
527
- <span class="ruby-identifier">config</span> = <span class="ruby-identifier">dup</span>
528
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args_field</span>
529
- <span class="ruby-identifier">args</span> = [<span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">args_field</span>)].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">compact</span>
530
- <span class="ruby-keyword kw">else</span>
531
- <span class="ruby-identifier">args</span> = []
532
- <span class="ruby-keyword kw">end</span>
533
- <span class="ruby-identifier">args</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">config</span>
534
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">args</span>
535
- <span class="ruby-keyword kw">end</span>
536
- </pre>
537
- </div>
538
- </div>
539
- </div>
540
- <div class="method">
541
- <div class="title">
542
- <a name="M000113"></a><b>collate</b>(other_hash)
543
- </div>
544
- <div class="description">
545
- <p>
546
- Merge the values of this hash with those from another, setting all values
547
- to be arrays representing the values from both hashes.
548
- </p>
549
- <pre>
550
- { :a=&gt;1, :b=&gt;2 }.collate :a=&gt;3, :b=&gt;4, :c=&gt;5
551
- #=&gt; { :a=&gt;[1,3], :b=&gt;[2,4], :c=&gt;[5] }
552
- </pre>
553
- <p>
554
- CREDIT: Tilo Sloboda CREDIT: Gavin Kistner (Phrogz)
555
- </p>
556
- </div>
557
- <div class="sourcecode">
558
- <p class="source-link">[ <a href="javascript:toggleSource('M000113_source')" id="l_M000113_source">+</a> ]</p>
559
- <div id="M000113_source" class="dyn-source">
560
- <pre>
561
- <span class="ruby-comment cmt"># File lib/core/facets/hash/collate.rb, line 12</span>
562
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collate</span>(<span class="ruby-identifier">other_hash</span>)
563
- <span class="ruby-identifier">h</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
564
- <span class="ruby-comment cmt"># Prepare, ensuring every existing key is already an Array</span>
565
- <span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
566
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
567
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
568
- <span class="ruby-keyword kw">else</span>
569
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">key</span>] = [<span class="ruby-identifier">value</span>]
570
- <span class="ruby-keyword kw">end</span>
571
- <span class="ruby-keyword kw">end</span>
572
- <span class="ruby-comment cmt"># Collate with values from other_hash</span>
573
- <span class="ruby-identifier">other_hash</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
574
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">key</span>]
575
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
576
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">key</span>].<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">value</span>)
577
- <span class="ruby-keyword kw">else</span>
578
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">value</span>
579
- <span class="ruby-keyword kw">end</span>
580
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
581
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
582
- <span class="ruby-keyword kw">else</span>
583
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">key</span>] = [<span class="ruby-identifier">value</span>]
584
- <span class="ruby-keyword kw">end</span>
585
- <span class="ruby-keyword kw">end</span>
586
- <span class="ruby-comment cmt">#each{ |key, value| value.uniq! } if options[ :uniq ]</span>
587
- <span class="ruby-identifier">h</span>
588
- <span class="ruby-keyword kw">end</span>
589
- </pre>
590
- </div>
591
- </div>
592
- </div>
593
- <div class="method">
594
- <div class="title">
595
- <a name="M000114"></a><b>collate!</b>(other_hash)
596
- </div>
597
- <div class="description">
598
- <p>
599
- The same as <a href="Hash.html#M000113">collate</a>, but modifies the
600
- receiver in place.
601
- </p>
602
- </div>
603
- <div class="sourcecode">
604
- <p class="source-link">[ <a href="javascript:toggleSource('M000114_source')" id="l_M000114_source">+</a> ]</p>
605
- <div id="M000114_source" class="dyn-source">
606
- <pre>
607
- <span class="ruby-comment cmt"># File lib/core/facets/hash/collate.rb, line 42</span>
608
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collate!</span>(<span class="ruby-identifier">other_hash</span>)
609
- <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">collate</span>(<span class="ruby-identifier">other_hash</span>)
610
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>(<span class="ruby-identifier">result</span>)
611
- <span class="ruby-keyword kw">end</span>
612
- </pre>
613
- </div>
614
- </div>
615
- </div>
616
- <div class="method">
617
- <div class="title">
618
- <a name="M000080"></a><b>dearray_singular_values</b>()
619
- </div>
620
- <div class="description">
621
- <p>
622
- Any array values with one or no elements will be set to the element or nil.
623
- </p>
624
- <pre>
625
- h = { :a=&gt;[1], :b=&gt;[1,2], :c=&gt;3, :d=&gt;[] }
626
- h.dearray_singular_values #=&gt; { :a=&gt;1, :b=&gt;[1,2], :c=&gt;3, :d=&gt;nil }
627
- </pre>
628
- <p>
629
- CREDIT: Trans
630
- </p>
631
- </div>
632
- <div class="sourcecode">
633
- <p class="source-link">[ <a href="javascript:toggleSource('M000080_source')" id="l_M000080_source">+</a> ]</p>
634
- <div id="M000080_source" class="dyn-source">
635
- <pre>
636
- <span class="ruby-comment cmt"># File lib/core/facets/hash/dearray_values.rb, line 32</span>
637
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dearray_singular_values</span>
638
- <span class="ruby-identifier">h</span> = {}
639
- <span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
640
- <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">v</span>
641
- <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
642
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = (<span class="ruby-identifier">v</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">2</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">v</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">v</span>
643
- <span class="ruby-keyword kw">else</span>
644
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
645
- <span class="ruby-keyword kw">end</span>
646
- <span class="ruby-keyword kw">end</span>
647
- <span class="ruby-identifier">h</span>
648
- <span class="ruby-keyword kw">end</span>
649
- </pre>
650
- </div>
651
- </div>
652
- </div>
653
- <div class="method">
654
- <div class="title">
655
- <a name="M000079"></a><b>dearray_values</b>(index=0)
656
- </div>
657
- <div class="description">
658
- <p>
659
- Any array values with be replaced with the first element of the array.
660
- Arrays with no elements will be set to nil.
661
- </p>
662
- <pre>
663
- h = { :a=&gt;[1], :b=&gt;[1,2], :c=&gt;3, :d=&gt;[] }
664
- h.dearray_values #=&gt; { :a=&gt;1, :b=&gt;1, :c=&gt;3, :d=&gt;nil }
665
- </pre>
666
- <p>
667
- CREDIT: Trans
668
- </p>
669
- </div>
670
- <div class="sourcecode">
671
- <p class="source-link">[ <a href="javascript:toggleSource('M000079_source')" id="l_M000079_source">+</a> ]</p>
672
- <div id="M000079_source" class="dyn-source">
673
- <pre>
674
- <span class="ruby-comment cmt"># File lib/core/facets/hash/dearray_values.rb, line 11</span>
675
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dearray_values</span>(<span class="ruby-identifier">index</span>=<span class="ruby-value">0</span>)
676
- <span class="ruby-identifier">h</span> = {}
677
- <span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
678
- <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">v</span>
679
- <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
680
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>[<span class="ruby-identifier">index</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">v</span>[<span class="ruby-value">-1</span>]
681
- <span class="ruby-keyword kw">else</span>
682
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
683
- <span class="ruby-keyword kw">end</span>
684
- <span class="ruby-keyword kw">end</span>
685
- <span class="ruby-identifier">h</span>
686
- <span class="ruby-keyword kw">end</span>
687
- </pre>
688
- </div>
689
- </div>
690
- </div>
691
- <div class="method">
692
- <div class="title">
693
- <a name="M000115"></a><b>delete_unless</b>( {|| ...}
694
- </div>
695
- <div class="description">
696
- <p>
697
- Inverse of delete_if.
698
- </p>
699
- <p>
700
- CREDIT: Daniel Schierbeck
701
- </p>
702
- </div>
703
- <div class="sourcecode">
704
- <p class="source-link">[ <a href="javascript:toggleSource('M000115_source')" id="l_M000115_source">+</a> ]</p>
705
- <div id="M000115_source" class="dyn-source">
706
- <pre>
707
- <span class="ruby-comment cmt"># File lib/core/facets/hash/delete.rb, line 11</span>
708
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_unless</span> <span class="ruby-comment cmt">#:yield:</span>
709
- <span class="ruby-identifier">delete_if</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>) }
710
- <span class="ruby-keyword kw">end</span>
711
- </pre>
712
- </div>
713
- </div>
714
- </div>
715
- <div class="method">
716
- <div class="title">
717
- <a name="M000116"></a><b>delete_values</b>(*values)
718
- </div>
719
- <div class="description">
720
- <p>
721
- Minor modification to Ruby&#8216;s Hash#delete method allowing it to take
722
- multiple keys.
723
- </p>
724
- <pre>
725
- hsh = { :a =&gt; 1, :b =&gt; 2 }
726
- hsh.delete_values(1)
727
- hsh #=&gt; { :b =&gt; 2 }
728
- </pre>
729
- <p>
730
- CREDIT: Daniel Schierbeck
731
- </p>
732
- </div>
733
- <div class="sourcecode">
734
- <p class="source-link">[ <a href="javascript:toggleSource('M000116_source')" id="l_M000116_source">+</a> ]</p>
735
- <div id="M000116_source" class="dyn-source">
736
- <pre>
737
- <span class="ruby-comment cmt"># File lib/core/facets/hash/delete.rb, line 24</span>
738
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_values</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">values</span>)
739
- <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">map</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">values</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">key</span>)) }
740
- <span class="ruby-keyword kw">end</span>
741
- </pre>
742
- </div>
743
- </div>
744
- </div>
745
- <div class="method">
746
- <div class="title">
747
- <a name="M000117"></a><b>delete_values_at</b>(*keys, &amp;yld)
748
- </div>
749
- <div class="description">
750
- <p>
751
- Minor modification to Ruby&#8216;s Hash#delete method allowing it to take
752
- multiple keys.
753
- </p>
754
- <p>
755
- This works niely with hash#[] and <a href="Hash.html">Hash</a>#[]= facets.
756
- </p>
757
- <pre>
758
- hsh[:a, :b, :c] = 1, 2, 3
759
-
760
- a, b, c = hsh.delete_values_at(:a, :b, :c)
761
-
762
- [a, b, c] #=&gt; [1, 2, 3]
763
- hsh #=&gt; {}
764
- </pre>
765
- <p>
766
- CREDIT: Daniel Schierbeck
767
- </p>
768
- </div>
769
- <div class="sourcecode">
770
- <p class="source-link">[ <a href="javascript:toggleSource('M000117_source')" id="l_M000117_source">+</a> ]</p>
771
- <div id="M000117_source" class="dyn-source">
772
- <pre>
773
- <span class="ruby-comment cmt"># File lib/core/facets/hash/delete.rb, line 42</span>
774
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_values_at</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keys</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">yld</span>)
775
- <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">yld</span>) }
776
- <span class="ruby-keyword kw">end</span>
777
- </pre>
778
- </div>
779
- </div>
780
- </div>
781
- <div class="method">
782
- <div class="title">
783
- <a name="M000110"></a><b>diff</b>(hash)
784
- </div>
785
- <div class="description">
786
- <p>
787
- Difference comparison of two hashes.
788
- </p>
789
- </div>
790
- <div class="sourcecode">
791
- <p class="source-link">[ <a href="javascript:toggleSource('M000110_source')" id="l_M000110_source">+</a> ]</p>
792
- <div id="M000110_source" class="dyn-source">
793
- <pre>
794
- <span class="ruby-comment cmt"># File lib/core/facets/hash/diff.rb, line 5</span>
795
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">diff</span>(<span class="ruby-identifier">hash</span>)
796
- <span class="ruby-identifier">h1</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">delete_if</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">hash</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">v</span> }
797
- <span class="ruby-identifier">h2</span> = <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">delete_if</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">has_key?</span>(<span class="ruby-identifier">k</span>) }
798
- <span class="ruby-identifier">h1</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">h2</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="M000094"></a><b>each_with_key</b>( &amp;yld )
807
- </div>
808
- <div class="description">
809
- <p>
810
- Each with key is like each_pair but reverses the order the parameters to
811
- [value,key] instead of [key,value].
812
- </p>
813
- <p>
814
- CREDIT: Trans
815
- </p>
816
- </div>
817
- <div class="sourcecode">
818
- <p class="source-link">[ <a href="javascript:toggleSource('M000094_source')" id="l_M000094_source">+</a> ]</p>
819
- <div id="M000094_source" class="dyn-source">
820
- <pre>
821
- <span class="ruby-comment cmt"># File lib/core/facets/hash/keys.rb, line 40</span>
822
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_with_key</span>( <span class="ruby-operator">&amp;</span><span class="ruby-identifier">yld</span> )
823
- <span class="ruby-identifier">each_pair</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">yld</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">v</span>,<span class="ruby-identifier">k</span>) }
824
- <span class="ruby-keyword kw">end</span>
825
- </pre>
826
- </div>
827
- </div>
828
- </div>
829
- <div class="method">
830
- <div class="title">
831
- <a name="M000088"></a><b>except</b>(*less_keys)
832
- </div>
833
- <div class="description">
834
- <p>
835
- Returns a new hash less the given keys.
836
- </p>
837
- </div>
838
- <div class="sourcecode">
839
- <p class="source-link">[ <a href="javascript:toggleSource('M000088_source')" id="l_M000088_source">+</a> ]</p>
840
- <div id="M000088_source" class="dyn-source">
841
- <pre>
842
- <span class="ruby-comment cmt"># File lib/core/facets/hash/except.rb, line 5</span>
843
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">except</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>)
844
- <span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keys</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">less_keys</span>)
845
- <span class="ruby-keyword kw">end</span>
846
- </pre>
847
- </div>
848
- </div>
849
- </div>
850
- <div class="method">
851
- <div class="title">
852
- <a name="M000089"></a><b>except!</b>(*less_keys)
853
- </div>
854
- <div class="description">
855
- <p>
856
- Replaces hash with new hash less the given keys. This returns the hash of
857
- keys removed.
858
- </p>
859
- <pre>
860
- h = {:a=&gt;1, :b=&gt;2, :c=&gt;3}
861
- h.except!(:a) #=&gt; {:a=&gt;1}
862
- h #=&gt; {:b=&gt;2,:c=&gt;3}
863
- </pre>
864
- </div>
865
- <div class="sourcecode">
866
- <p class="source-link">[ <a href="javascript:toggleSource('M000089_source')" id="l_M000089_source">+</a> ]</p>
867
- <div id="M000089_source" class="dyn-source">
868
- <pre>
869
- <span class="ruby-comment cmt"># File lib/core/facets/hash/except.rb, line 18</span>
870
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">except!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>)
871
- <span class="ruby-identifier">removed</span> = <span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>)
872
- <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">except</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>))
873
- <span class="ruby-identifier">removed</span>
874
- <span class="ruby-keyword kw">end</span>
875
- </pre>
876
- </div>
877
- </div>
878
- </div>
879
- <div class="method">
880
- <div class="title">
881
- <a name="M000112"></a><b>graph!</b>(&amp;yld)
882
- </div>
883
- <div class="description">
884
- <p>
885
- Alias for mash!
886
- </p>
887
- </div>
888
- </div>
889
- <div class="method">
890
- <div class="title">
891
- <a name="M000126"></a><b>group_by_value</b>()
892
- </div>
893
- <div class="description">
894
- <p>
895
- Like group_by, but allows hash values to be grouped with weeding out the
896
- keys.
897
- </p>
898
- <pre>
899
- Example:
900
-
901
- birthdays = {...} # Maps each person to his/her birthday.
902
- </pre>
903
- <p>
904
- Now I want to have the list of people that have their birthday on a
905
- specific date. This can be done by creating a hash first, using group_by:
906
- </p>
907
- <pre>
908
- birthdays.group_by{|person, birthday| birthday}
909
- </pre>
910
- <p>
911
- This returns:
912
- </p>
913
- <p>
914
- {date=&gt;[[person1, date], [person2, date], [person3, date]]}
915
- </p>
916
- <p>
917
- &#8230; which is a bit inconvient. Too many dates. I would rather like to
918
- have:
919
- </p>
920
- <pre>
921
- {date=&gt;[person1, person2, person3]]}
922
- </pre>
923
- <p>
924
- This can be achieved by:
925
- </p>
926
- <pre>
927
- birthdays.inject!({}){|h, (person, date)| (h[date] ||= []) &lt;&lt; person}
928
- </pre>
929
- <p>
930
- I&#8216;ve used this pattern just once too often, so I moved the code to <a
931
- href="Hash.html">Hash</a> (and <a href="Enumerable.html">Enumerable</a>,
932
- for associative arrays). Here&#8216;s the cleaner code:
933
- </p>
934
- <p>
935
- birthdays.group_by_value
936
- </p>
937
- <pre>
938
- h = {&quot;A&quot;=&gt;1, &quot;B&quot;=&gt;1, &quot;C&quot;=&gt;1, &quot;D&quot;=&gt;2, &quot;E&quot;=&gt;2, &quot;F&quot;=&gt;2, &quot;G&quot;=&gt;3, &quot;H&quot;=&gt;3, &quot;I&quot;=&gt;3}
939
-
940
- h.group_by{|k, v| v} # ==&gt; {1=&gt;[[&quot;A&quot;, 1], [&quot;B&quot;, 1], [&quot;C&quot;, 1]], 2=&gt;[[&quot;D&quot;, 2], [&quot;E&quot;, 2], [&quot;F&quot;, 2]], 3=&gt;[[&quot;G&quot;, 3], [&quot;H&quot;, 3], [&quot;I&quot;, 3]]}
941
- h.group_by_value # ==&gt; {1=&gt;[&quot;A&quot;, &quot;B&quot;, &quot;C&quot;], 2=&gt;[&quot;D&quot;, &quot;E&quot;, &quot;F&quot;], 3=&gt;[&quot;G&quot;, &quot;H&quot;, &quot;I&quot;]}
942
- h.sort.group_by_value # ==&gt; [[1, [&quot;A&quot;, &quot;B&quot;, &quot;C&quot;]], [2, [&quot;D&quot;, &quot;E&quot;, &quot;F&quot;]], [3, [&quot;G&quot;, &quot;H&quot;, &quot;I&quot;]]]
943
- </pre>
944
- <p>
945
- CREDIT: Erik Veenstra
946
- </p>
947
- </div>
948
- <div class="sourcecode">
949
- <p class="source-link">[ <a href="javascript:toggleSource('M000126_source')" id="l_M000126_source">+</a> ]</p>
950
- <div id="M000126_source" class="dyn-source">
951
- <pre>
952
- <span class="ruby-comment cmt"># File lib/core/facets/hash/group_by_value.rb, line 42</span>
953
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">group_by_value</span>
954
- <span class="ruby-identifier">res</span> = {}
955
- <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">res</span>[<span class="ruby-identifier">v</span>] <span class="ruby-operator">||=</span> []) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">k</span>}
956
- <span class="ruby-identifier">res</span>
957
- <span class="ruby-keyword kw">end</span>
958
- </pre>
959
- </div>
960
- </div>
961
- </div>
962
- <div class="method">
963
- <div class="title">
964
- <a name="M000090"></a><b>has_keys?</b>(*check_keys)
965
- </div>
966
- <div class="description">
967
- <p>
968
- Returns true or false whether the hash contains the given keys.
969
- </p>
970
- <pre>
971
- h = { :a =&gt; 1, :b =&gt; 2 }
972
- h.has_keys?( :a ) #=&gt; true
973
- h.has_keys?( :c ) #=&gt; false
974
- </pre>
975
- <p>
976
- CREDIT: Trans
977
- </p>
978
- </div>
979
- <div class="aka">
980
- This method is also aliased as
981
- <a href="Hash.html#M000091">keys?</a>
982
- </div>
983
- <div class="sourcecode">
984
- <p class="source-link">[ <a href="javascript:toggleSource('M000090_source')" id="l_M000090_source">+</a> ]</p>
985
- <div id="M000090_source" class="dyn-source">
986
- <pre>
987
- <span class="ruby-comment cmt"># File lib/core/facets/hash/keys.rb, line 12</span>
988
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_keys?</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">check_keys</span>)
989
- <span class="ruby-identifier">unknown_keys</span> = <span class="ruby-identifier">check_keys</span> <span class="ruby-operator">-</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">keys</span>
990
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">unknown_keys</span>.<span class="ruby-identifier">empty?</span>
991
- <span class="ruby-keyword kw">end</span>
992
- </pre>
993
- </div>
994
- </div>
995
- </div>
996
- <div class="method">
997
- <div class="title">
998
- <a name="M000092"></a><b>has_only_keys?</b>(*check_keys)
999
- </div>
1000
- <div class="description">
1001
- <p>
1002
- Returns true if the hash contains <em>only</em> the given keys, otherwise
1003
- false.
1004
- </p>
1005
- <pre>
1006
- h = { :a =&gt; 1, :b =&gt; 2 }
1007
- h.has_only_keys?( :a, :b ) #=&gt; true
1008
- h.has_only_keys?( :a ) #=&gt; false
1009
- </pre>
1010
- <p>
1011
- CREDIT: Trans
1012
- </p>
1013
- </div>
1014
- <div class="aka">
1015
- This method is also aliased as
1016
- <a href="Hash.html#M000093">only_keys?</a>
1017
- </div>
1018
- <div class="sourcecode">
1019
- <p class="source-link">[ <a href="javascript:toggleSource('M000092_source')" id="l_M000092_source">+</a> ]</p>
1020
- <div id="M000092_source" class="dyn-source">
1021
- <pre>
1022
- <span class="ruby-comment cmt"># File lib/core/facets/hash/keys.rb, line 28</span>
1023
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_only_keys?</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">check_keys</span>)
1024
- <span class="ruby-identifier">unknown_keys</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">keys</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">check_keys</span>
1025
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">unknown_keys</span>.<span class="ruby-identifier">empty?</span>
1026
- <span class="ruby-keyword kw">end</span>
1027
- </pre>
1028
- </div>
1029
- </div>
1030
- </div>
1031
- <div class="method">
1032
- <div class="title">
1033
- <a name="M000108"></a><b>insert</b>(name, value)
1034
- </div>
1035
- <div class="description">
1036
- <p>
1037
- As with store but only if the key isn&#8216;t already in the hash.
1038
- </p>
1039
- <p>
1040
- TODO: Would store? be a better name?
1041
- </p>
1042
- <p>
1043
- CREDIT: Trans
1044
- </p>
1045
- </div>
1046
- <div class="sourcecode">
1047
- <p class="source-link">[ <a href="javascript:toggleSource('M000108_source')" id="l_M000108_source">+</a> ]</p>
1048
- <div id="M000108_source" class="dyn-source">
1049
- <pre>
1050
- <span class="ruby-comment cmt"># File lib/core/facets/hash/insert.rb, line 10</span>
1051
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">insert</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
1052
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key?</span>(<span class="ruby-identifier">name</span>)
1053
- <span class="ruby-keyword kw">false</span>
1054
- <span class="ruby-keyword kw">else</span>
1055
- <span class="ruby-identifier">store</span>(<span class="ruby-identifier">name</span>,<span class="ruby-identifier">value</span>)
1056
- <span class="ruby-keyword kw">true</span>
1057
- <span class="ruby-keyword kw">end</span>
1058
- <span class="ruby-keyword kw">end</span>
1059
- </pre>
1060
- </div>
1061
- </div>
1062
- </div>
1063
- <div class="method">
1064
- <div class="title">
1065
- <a name="M000103"></a><b>inverse</b>()
1066
- </div>
1067
- <div class="description">
1068
- <p>
1069
- Create a &quot;true&quot; <a href="Hash.html#M000103">inverse</a> hash by
1070
- storing mutliple values in Arrays.
1071
- </p>
1072
- <pre>
1073
- h = {&quot;a&quot;=&gt;3, &quot;b&quot;=&gt;3, &quot;c&quot;=&gt;3, &quot;d&quot;=&gt;2, &quot;e&quot;=&gt;9, &quot;f&quot;=&gt;3, &quot;g&quot;=&gt;9}
1074
-
1075
- h.invert #=&gt; {2=&gt;&quot;d&quot;, 3=&gt;&quot;f&quot;, 9=&gt;&quot;g&quot;}
1076
- h.inverse #=&gt; {2=&gt;&quot;d&quot;, 3=&gt;[&quot;f&quot;, &quot;c&quot;, &quot;b&quot;, &quot;a&quot;], 9=&gt;[&quot;g&quot;, &quot;e&quot;]}
1077
- h.inverse.inverse #=&gt; {&quot;a&quot;=&gt;3, &quot;b&quot;=&gt;3, &quot;c&quot;=&gt;3, &quot;d&quot;=&gt;2, &quot;e&quot;=&gt;9, &quot;f&quot;=&gt;3, &quot;g&quot;=&gt;9}
1078
- h.inverse.inverse == h #=&gt; true
1079
- </pre>
1080
- <p>
1081
- CREDIT: Tilo Sloboda
1082
- </p>
1083
- </div>
1084
- <div class="sourcecode">
1085
- <p class="source-link">[ <a href="javascript:toggleSource('M000103_source')" id="l_M000103_source">+</a> ]</p>
1086
- <div id="M000103_source" class="dyn-source">
1087
- <pre>
1088
- <span class="ruby-comment cmt"># File lib/core/facets/hash/inverse.rb, line 14</span>
1089
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inverse</span>
1090
- <span class="ruby-identifier">i</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
1091
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">each_pair</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
1092
- <span class="ruby-keyword kw">if</span> (<span class="ruby-constant">Array</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">v</span>)
1093
- <span class="ruby-identifier">v</span>.<span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span>[<span class="ruby-identifier">x</span>] = ( <span class="ruby-identifier">i</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">x</span>) <span class="ruby-operator">?</span> [<span class="ruby-identifier">k</span>,<span class="ruby-identifier">i</span>[<span class="ruby-identifier">x</span>]].<span class="ruby-identifier">flatten</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">k</span> ) }
1094
- <span class="ruby-keyword kw">else</span>
1095
- <span class="ruby-identifier">i</span>[<span class="ruby-identifier">v</span>] = ( <span class="ruby-identifier">i</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">v</span>) <span class="ruby-operator">?</span> [<span class="ruby-identifier">k</span>,<span class="ruby-identifier">i</span>[<span class="ruby-identifier">v</span>]].<span class="ruby-identifier">flatten</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">k</span> )
1096
- <span class="ruby-keyword kw">end</span>
1097
- }
1098
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">i</span>
1099
- <span class="ruby-keyword kw">end</span>
1100
- </pre>
1101
- </div>
1102
- </div>
1103
- </div>
1104
- <div class="method">
1105
- <div class="title">
1106
- <a name="M000125"></a><b>join</b>(pair_divider='', elem_divider='')
1107
- </div>
1108
- <div class="description">
1109
- <p>
1110
- Like Array#join but specialized to <a href="Hash.html">Hash</a>.
1111
- </p>
1112
- <p>
1113
- CREDIT: Mauricio Fernandez
1114
- </p>
1115
- </div>
1116
- <div class="sourcecode">
1117
- <p class="source-link">[ <a href="javascript:toggleSource('M000125_source')" id="l_M000125_source">+</a> ]</p>
1118
- <div id="M000125_source" class="dyn-source">
1119
- <pre>
1120
- <span class="ruby-comment cmt"># File lib/core/facets/hash/join.rb, line 7</span>
1121
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">join</span>(<span class="ruby-identifier">pair_divider</span>=<span class="ruby-value str">''</span>, <span class="ruby-identifier">elem_divider</span>=<span class="ruby-value str">''</span>)
1122
- <span class="ruby-identifier">s</span> = []
1123
- <span class="ruby-identifier">each_pair</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">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{k}#{pair_divider}#{v}&quot;</span> }
1124
- <span class="ruby-identifier">s</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">elem_divider</span>)
1125
- <span class="ruby-keyword kw">end</span>
1126
- </pre>
1127
- </div>
1128
- </div>
1129
- </div>
1130
- <div class="method">
1131
- <div class="title">
1132
- <a name="M000091"></a><b>keys?</b>(*check_keys)
1133
- </div>
1134
- <div class="description">
1135
- <p>
1136
- Alias for has_keys?
1137
- </p>
1138
- </div>
1139
- </div>
1140
- <div class="method">
1141
- <div class="title">
1142
- <a name="M000111"></a><b>mash!</b>(&amp;yld)
1143
- </div>
1144
- <div class="description">
1145
- <p>
1146
- In place version of mash.
1147
- </p>
1148
- <pre>
1149
- NOTE: Hash#mash! is only useful for Hash. It is not generally
1150
- applicable to Enumerable.
1151
- </pre>
1152
- </div>
1153
- <div class="aka">
1154
- This method is also aliased as
1155
- <a href="Hash.html#M000112">graph!</a>
1156
- </div>
1157
- <div class="sourcecode">
1158
- <p class="source-link">[ <a href="javascript:toggleSource('M000111_source')" id="l_M000111_source">+</a> ]</p>
1159
- <div id="M000111_source" class="dyn-source">
1160
- <pre>
1161
- <span class="ruby-comment cmt"># File lib/core/facets/hash/mash.rb, line 10</span>
1162
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mash!</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">yld</span>)
1163
- <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">mash</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">yld</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="M000093"></a><b>only_keys?</b>(*check_keys)
1172
- </div>
1173
- <div class="description">
1174
- <p>
1175
- Alias for has_only_keys?
1176
- </p>
1177
- </div>
1178
- </div>
1179
- <div class="method">
1180
- <div class="title">
1181
- <a name="M000104"></a><b>recursive_merge</b>(other)
1182
- </div>
1183
- <div class="description">
1184
- <p>
1185
- Same as Hash#merge but <a href="Hash.html#M000084">recursively</a> merges
1186
- sub-hashes.
1187
- </p>
1188
- </div>
1189
- <div class="sourcecode">
1190
- <p class="source-link">[ <a href="javascript:toggleSource('M000104_source')" id="l_M000104_source">+</a> ]</p>
1191
- <div id="M000104_source" class="dyn-source">
1192
- <pre>
1193
- <span class="ruby-comment cmt"># File lib/core/facets/hash/recursive_merge.rb, line 5</span>
1194
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursive_merge</span>(<span class="ruby-identifier">other</span>)
1195
- <span class="ruby-identifier">hash</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
1196
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
1197
- <span class="ruby-identifier">myval</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>]
1198
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">myval</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
1199
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">myval</span>.<span class="ruby-identifier">recursive_merge</span>(<span class="ruby-identifier">value</span>)
1200
- <span class="ruby-keyword kw">else</span>
1201
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
1202
- <span class="ruby-keyword kw">end</span>
1203
- <span class="ruby-keyword kw">end</span>
1204
- <span class="ruby-identifier">hash</span>
1205
- <span class="ruby-keyword kw">end</span>
1206
- </pre>
1207
- </div>
1208
- </div>
1209
- </div>
1210
- <div class="method">
1211
- <div class="title">
1212
- <a name="M000105"></a><b>recursive_merge!</b>(other)
1213
- </div>
1214
- <div class="description">
1215
- <p>
1216
- Same as Hash#merge! but <a href="Hash.html#M000084">recursively</a> merges
1217
- sub-hashes.
1218
- </p>
1219
- </div>
1220
- <div class="sourcecode">
1221
- <p class="source-link">[ <a href="javascript:toggleSource('M000105_source')" id="l_M000105_source">+</a> ]</p>
1222
- <div id="M000105_source" class="dyn-source">
1223
- <pre>
1224
- <span class="ruby-comment cmt"># File lib/core/facets/hash/recursive_merge.rb, line 20</span>
1225
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursive_merge!</span>(<span class="ruby-identifier">other</span>)
1226
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
1227
- <span class="ruby-identifier">myval</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>]
1228
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">myval</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
1229
- <span class="ruby-identifier">myval</span>.<span class="ruby-identifier">recursive_merge!</span>(<span class="ruby-identifier">value</span>)
1230
- <span class="ruby-keyword kw">else</span>
1231
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
1232
- <span class="ruby-keyword kw">end</span>
1233
- <span class="ruby-keyword kw">end</span>
1234
- <span class="ruby-keyword kw">self</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="M000084"></a><b>recursively</b>() {|h| ...}
1243
- </div>
1244
- <div class="description">
1245
- <p>
1246
- Apply a block to hash, and <a href="Hash.html#M000084">recursively</a>
1247
- apply that block to each subhash.
1248
- </p>
1249
- <pre>
1250
- h = {:a=&gt;1, :b=&gt;{:b1=&gt;1, :b2=&gt;2}}
1251
- h.recursively{|h| h.rekey(&amp;:to_s) }
1252
- =&gt; {&quot;a&quot;=&gt;1, &quot;b&quot;=&gt;{&quot;b1&quot;=&gt;1, &quot;b2&quot;=&gt;2}}
1253
- </pre>
1254
- </div>
1255
- <div class="sourcecode">
1256
- <p class="source-link">[ <a href="javascript:toggleSource('M000084_source')" id="l_M000084_source">+</a> ]</p>
1257
- <div id="M000084_source" class="dyn-source">
1258
- <pre>
1259
- <span class="ruby-comment cmt"># File lib/core/facets/hash/recursively.rb, line 10</span>
1260
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursively</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1261
- <span class="ruby-identifier">h</span> = <span class="ruby-identifier">inject</span>({}) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span>, (<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)<span class="ruby-operator">|</span>
1262
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
1263
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>.<span class="ruby-identifier">recursively</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1264
- <span class="ruby-keyword kw">else</span>
1265
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
1266
- <span class="ruby-keyword kw">end</span>
1267
- <span class="ruby-identifier">hash</span>
1268
- <span class="ruby-keyword kw">end</span>
1269
- <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">h</span>
1270
- <span class="ruby-keyword kw">end</span>
1271
- </pre>
1272
- </div>
1273
- </div>
1274
- </div>
1275
- <div class="method">
1276
- <div class="title">
1277
- <a name="M000085"></a><b>recursively!</b>(&amp;block)
1278
- </div>
1279
- <div class="sourcecode">
1280
- <p class="source-link">[ <a href="javascript:toggleSource('M000085_source')" id="l_M000085_source">+</a> ]</p>
1281
- <div id="M000085_source" class="dyn-source">
1282
- <pre>
1283
- <span class="ruby-comment cmt"># File lib/core/facets/hash/recursively.rb, line 24</span>
1284
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursively!</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1285
- <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">recursively</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>))
1286
- <span class="ruby-keyword kw">end</span>
1287
- </pre>
1288
- </div>
1289
- </div>
1290
- </div>
1291
- <div class="method">
1292
- <div class="title">
1293
- <a name="M000131"></a><b>rekey</b>(*args, &amp;block)
1294
- </div>
1295
- <div class="description">
1296
- <p>
1297
- Rekey a hash.
1298
- </p>
1299
- <pre>
1300
- rekey()
1301
- rekey(to_key, from_key)
1302
- rekey{ |key| ... }
1303
- </pre>
1304
- <p>
1305
- If no arguments or block are given, then all keys are converted to Symbols.
1306
- </p>
1307
- <p>
1308
- If two keys are given, then the second key is changed to the first. You can
1309
- think of it as <tt>alias</tt> for hash keys.
1310
- </p>
1311
- <pre>
1312
- foo = { :a=&gt;1, :b=&gt;2 }
1313
- foo.rekey('a',:a) #=&gt; { 'a'=&gt;1, :b=&gt;2 }
1314
- foo.rekey('b',:b) #=&gt; { 'a'=&gt;1, 'b'=&gt;2 }
1315
- foo.rekey('foo','bar') #=&gt; { 'a'=&gt;1, 'b'=&gt;2 }
1316
- </pre>
1317
- <p>
1318
- If a block is given, converts all keys in the <a href="Hash.html">Hash</a>
1319
- accroding to the given block. If the block returns <tt>nil</tt> for given
1320
- key, then that key will be left intact.
1321
- </p>
1322
- <pre>
1323
- foo = { :name=&gt;'Gavin', :wife=&gt;:Lisa }
1324
- foo.rekey{ |k| k.to_s } #=&gt; { &quot;name&quot;=&gt;&quot;Gavin&quot;, &quot;wife&quot;=&gt;:Lisa }
1325
- foo.inspect #=&gt; { :name =&gt;&quot;Gavin&quot;, :wife=&gt;:Lisa }
1326
- </pre>
1327
- <p>
1328
- CREDIT: Trans, Gavin Kistner
1329
- </p>
1330
- </div>
1331
- <div class="sourcecode">
1332
- <p class="source-link">[ <a href="javascript:toggleSource('M000131_source')" id="l_M000131_source">+</a> ]</p>
1333
- <div id="M000131_source" class="dyn-source">
1334
- <pre>
1335
- <span class="ruby-comment cmt"># File lib/core/facets/hash/rekey.rb, line 32</span>
1336
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rekey</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1337
- <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">rekey!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1338
- <span class="ruby-keyword kw">end</span>
1339
- </pre>
1340
- </div>
1341
- </div>
1342
- </div>
1343
- <div class="method">
1344
- <div class="title">
1345
- <a name="M000132"></a><b>rekey!</b>(*args, &amp;block)
1346
- </div>
1347
- <div class="description">
1348
- <p>
1349
- Synonym for <a href="Hash.html#M000131">Hash#rekey</a>, but modifies the
1350
- receiver in place (and returns it).
1351
- </p>
1352
- <pre>
1353
- foo = { :name=&gt;'Gavin', :wife=&gt;:Lisa }
1354
- foo.rekey!{ |k| k.to_s } #=&gt; { &quot;name&quot;=&gt;&quot;Gavin&quot;, &quot;wife&quot;=&gt;:Lisa }
1355
- foo.inspect #=&gt; { &quot;name&quot;=&gt;&quot;Gavin&quot;, &quot;wife&quot;=&gt;:Lisa }
1356
- </pre>
1357
- <p>
1358
- CREDIT: Trans, Gavin Kistner
1359
- </p>
1360
- </div>
1361
- <div class="sourcecode">
1362
- <p class="source-link">[ <a href="javascript:toggleSource('M000132_source')" id="l_M000132_source">+</a> ]</p>
1363
- <div id="M000132_source" class="dyn-source">
1364
- <pre>
1365
- <span class="ruby-comment cmt"># File lib/core/facets/hash/rekey.rb, line 44</span>
1366
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rekey!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1367
- <span class="ruby-comment cmt"># for backward comptability (TODO: DEPRECATE).</span>
1368
- <span class="ruby-identifier">block</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_sym</span>.<span class="ruby-identifier">to_proc</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
1369
- <span class="ruby-comment cmt"># if no args use block.</span>
1370
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span>
1371
- <span class="ruby-identifier">block</span> = <span class="ruby-identifier">lambda</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_sym</span>} <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">block</span>
1372
- <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
1373
- <span class="ruby-identifier">nk</span> = <span class="ruby-identifier">block</span>[<span class="ruby-identifier">k</span>]
1374
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">nk</span>]=<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nk</span>
1375
- <span class="ruby-keyword kw">end</span>
1376
- <span class="ruby-keyword kw">else</span>
1377
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;3 for 2&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>
1378
- <span class="ruby-identifier">to</span>, <span class="ruby-identifier">from</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
1379
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">to</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">from</span>) <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">from</span>)
1380
- <span class="ruby-keyword kw">end</span>
1381
- <span class="ruby-keyword kw">self</span>
1382
- <span class="ruby-keyword kw">end</span>
1383
- </pre>
1384
- </div>
1385
- </div>
1386
- </div>
1387
- <div class="method">
1388
- <div class="title">
1389
- <a name="M000127"></a><b>replace_each</b>( {|| ...}
1390
- </div>
1391
- <div class="description">
1392
- <p>
1393
- Same as <a href="Hash.html#M000133">update_each</a>, but deletes the key
1394
- element first.
1395
- </p>
1396
- <p>
1397
- CREDIT: Trans
1398
- </p>
1399
- </div>
1400
- <div class="sourcecode">
1401
- <p class="source-link">[ <a href="javascript:toggleSource('M000127_source')" id="l_M000127_source">+</a> ]</p>
1402
- <div id="M000127_source" class="dyn-source">
1403
- <pre>
1404
- <span class="ruby-comment cmt"># File lib/core/facets/hash/replace_each.rb, line 7</span>
1405
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">replace_each</span> <span class="ruby-comment cmt"># :yield:</span>
1406
- <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
1407
- <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>)
1408
- <span class="ruby-identifier">update</span>(<span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>))
1409
- <span class="ruby-keyword kw">end</span>
1410
- <span class="ruby-keyword kw">self</span>
1411
- <span class="ruby-keyword kw">end</span>
1412
- </pre>
1413
- </div>
1414
- </div>
1415
- </div>
1416
- <div class="method">
1417
- <div class="title">
1418
- <a name="M000095"></a><b>reverse_merge</b>(other)
1419
- </div>
1420
- <div class="description">
1421
- <p>
1422
- Allows for reverse merging where its the keys in the calling hash that wins
1423
- over those in the <tt>other_hash</tt>. This is particularly useful for
1424
- initializing an incoming option hash with default values:
1425
- </p>
1426
- <pre>
1427
- def setup(options = {})
1428
- options.reverse_merge! :size =&gt; 25, :velocity =&gt; 10
1429
- end
1430
- </pre>
1431
- <p>
1432
- The default :size and :velocity is only set if the <tt>options</tt> passed
1433
- in doesn&#8216;t already have those keys set.
1434
- </p>
1435
- </div>
1436
- <div class="sourcecode">
1437
- <p class="source-link">[ <a href="javascript:toggleSource('M000095_source')" id="l_M000095_source">+</a> ]</p>
1438
- <div id="M000095_source" class="dyn-source">
1439
- <pre>
1440
- <span class="ruby-comment cmt"># File lib/core/facets/hash/merge.rb, line 15</span>
1441
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse_merge</span>(<span class="ruby-identifier">other</span>)
1442
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-keyword kw">self</span>)
1443
- <span class="ruby-keyword kw">end</span>
1444
- </pre>
1445
- </div>
1446
- </div>
1447
- </div>
1448
- <div class="method">
1449
- <div class="title">
1450
- <a name="M000096"></a><b>reverse_merge!</b>(other)
1451
- </div>
1452
- <div class="description">
1453
- <p>
1454
- Inplace form of <a href="Hash.html#M000095">reverse_merge</a>.
1455
- </p>
1456
- </div>
1457
- <div class="aka">
1458
- This method is also aliased as
1459
- <a href="Hash.html#M000097">reverse_update</a>
1460
- </div>
1461
- <div class="sourcecode">
1462
- <p class="source-link">[ <a href="javascript:toggleSource('M000096_source')" id="l_M000096_source">+</a> ]</p>
1463
- <div id="M000096_source" class="dyn-source">
1464
- <pre>
1465
- <span class="ruby-comment cmt"># File lib/core/facets/hash/merge.rb, line 21</span>
1466
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">other</span>)
1467
- <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">reverse_merge</span>(<span class="ruby-identifier">other</span>))
1468
- <span class="ruby-keyword kw">end</span>
1469
- </pre>
1470
- </div>
1471
- </div>
1472
- </div>
1473
- <div class="method">
1474
- <div class="title">
1475
- <a name="M000097"></a><b>reverse_update</b>(other)
1476
- </div>
1477
- <div class="description">
1478
- <p>
1479
- Alias for <a href="Hash.html#M000095">reverse_merge</a>!
1480
- </p>
1481
- </div>
1482
- </div>
1483
- <div class="method">
1484
- <div class="title">
1485
- <a name="M000109"></a><b>select!</b>() {|k,v| ...}
1486
- </div>
1487
- <div class="description">
1488
- <p>
1489
- In-place version of Hash#select. The opposite of the built-in Hash#reject!.
1490
- </p>
1491
- <p>
1492
- CREDIT: Gavin Sinclair, Noah Gibbs
1493
- </p>
1494
- </div>
1495
- <div class="sourcecode">
1496
- <p class="source-link">[ <a href="javascript:toggleSource('M000109_source')" id="l_M000109_source">+</a> ]</p>
1497
- <div id="M000109_source" class="dyn-source">
1498
- <pre>
1499
- <span class="ruby-comment cmt"># File lib/core/facets/hash/select.rb, line 8</span>
1500
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">select!</span>
1501
- <span class="ruby-identifier">reject!</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-keyword kw">not</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>) }
1502
- <span class="ruby-keyword kw">end</span>
1503
- </pre>
1504
- </div>
1505
- </div>
1506
- </div>
1507
- <div class="method">
1508
- <div class="title">
1509
- <a name="M000128"></a><b>slice</b>(*keep_keys)
1510
- </div>
1511
- <div class="description">
1512
- <p>
1513
- Returns a new hash with only the given keys.
1514
- </p>
1515
- </div>
1516
- <div class="sourcecode">
1517
- <p class="source-link">[ <a href="javascript:toggleSource('M000128_source')" id="l_M000128_source">+</a> ]</p>
1518
- <div id="M000128_source" class="dyn-source">
1519
- <pre>
1520
- <span class="ruby-comment cmt"># File lib/core/facets/hash/slice.rb, line 9</span>
1521
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>)
1522
- <span class="ruby-identifier">h</span> = {}
1523
- <span class="ruby-identifier">keep_keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
1524
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">key</span>)
1525
- <span class="ruby-keyword kw">end</span>
1526
- <span class="ruby-identifier">h</span>
1527
- <span class="ruby-keyword kw">end</span>
1528
- </pre>
1529
- </div>
1530
- </div>
1531
- </div>
1532
- <div class="method">
1533
- <div class="title">
1534
- <a name="M000129"></a><b>slice!</b>(*keep_keys)
1535
- </div>
1536
- <div class="description">
1537
- <p>
1538
- Replaces hash with a new hash having only the given keys. This return the
1539
- hash of keys removed.
1540
- </p>
1541
- <pre>
1542
- h = {:a=&gt;1, :b=&gt;2}
1543
- h.slice!(:a) #=&gt; {:a=&gt;1}
1544
- h #=&gt; {:b=&gt;2}
1545
- </pre>
1546
- </div>
1547
- <div class="sourcecode">
1548
- <p class="source-link">[ <a href="javascript:toggleSource('M000129_source')" id="l_M000129_source">+</a> ]</p>
1549
- <div id="M000129_source" class="dyn-source">
1550
- <pre>
1551
- <span class="ruby-comment cmt"># File lib/core/facets/hash/slice.rb, line 24</span>
1552
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slice!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>)
1553
- <span class="ruby-identifier">removed</span> = <span class="ruby-identifier">except</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>)
1554
- <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>))
1555
- <span class="ruby-identifier">removed</span>
1556
- <span class="ruby-keyword kw">end</span>
1557
- </pre>
1558
- </div>
1559
- </div>
1560
- </div>
1561
- <div class="method">
1562
- <div class="title">
1563
- <a name="M000123"></a><b>stringify_keys</b>(&amp;filter)
1564
- </div>
1565
- <div class="description">
1566
- <p>
1567
- Converts all keys in the <a href="Hash.html">Hash</a> to Strings, returning
1568
- a new <a href="Hash.html">Hash</a>. With a <tt>filter</tt> parameter,
1569
- limits conversion to only a certain selection of keys.
1570
- </p>
1571
- <pre>
1572
- foo = { :name=&gt;'Gavin', :wife=&gt;:Lisa }
1573
- foo.stringify_keys #=&gt; { &quot;name&quot;=&gt;&quot;Gavin&quot;, &quot;wife&quot;=&gt;:Lisa }
1574
- foo.inspect #=&gt; { :name =&gt;&quot;Gavin&quot;, :wife=&gt;:Lisa }
1575
- </pre>
1576
- <p>
1577
- This method is considered archaic. Use <a
1578
- href="Hash.html#M000131">rekey</a> instead.
1579
- </p>
1580
- </div>
1581
- <div class="sourcecode">
1582
- <p class="source-link">[ <a href="javascript:toggleSource('M000123_source')" id="l_M000123_source">+</a> ]</p>
1583
- <div id="M000123_source" class="dyn-source">
1584
- <pre>
1585
- <span class="ruby-comment cmt"># File lib/core/facets/hash/symbolize_keys.rb, line 54</span>
1586
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stringify_keys</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">filter</span>)
1587
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filter</span>
1588
- <span class="ruby-identifier">rekey</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">filter</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span> }
1589
- <span class="ruby-keyword kw">else</span>
1590
- <span class="ruby-identifier">rekey</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span> }
1591
- <span class="ruby-keyword kw">end</span>
1592
- <span class="ruby-keyword kw">end</span>
1593
- </pre>
1594
- </div>
1595
- </div>
1596
- </div>
1597
- <div class="method">
1598
- <div class="title">
1599
- <a name="M000124"></a><b>stringify_keys!</b>(&amp;filter)
1600
- </div>
1601
- <div class="description">
1602
- <p>
1603
- Synonym for <a href="Hash.html#M000123">Hash#stringify_keys</a>, but
1604
- modifies the receiver in place and returns it. With a <tt>filter</tt>
1605
- parameter, limits conversion to only a certain selection of keys.
1606
- </p>
1607
- <pre>
1608
- foo = { :name=&gt;'Gavin', :wife=&gt;:Lisa }
1609
- foo.stringify_keys! #=&gt; { &quot;name&quot;=&gt;&quot;Gavin&quot;, &quot;wife&quot;=&gt;:Lisa }
1610
- foo.inspect #=&gt; { &quot;name&quot;=&gt;&quot;Gavin&quot;, &quot;wife&quot;=&gt;:Lisa }
1611
- </pre>
1612
- <p>
1613
- This method is considered archaic. Use <a
1614
- href="Hash.html#M000131">rekey</a> instead.
1615
- </p>
1616
- </div>
1617
- <div class="sourcecode">
1618
- <p class="source-link">[ <a href="javascript:toggleSource('M000124_source')" id="l_M000124_source">+</a> ]</p>
1619
- <div id="M000124_source" class="dyn-source">
1620
- <pre>
1621
- <span class="ruby-comment cmt"># File lib/core/facets/hash/symbolize_keys.rb, line 73</span>
1622
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stringify_keys!</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">filter</span>)
1623
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filter</span>
1624
- <span class="ruby-identifier">rekey!</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">filter</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span> }
1625
- <span class="ruby-keyword kw">else</span>
1626
- <span class="ruby-identifier">rekey!</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span> }
1627
- <span class="ruby-keyword kw">end</span>
1628
- <span class="ruby-keyword kw">end</span>
1629
- </pre>
1630
- </div>
1631
- </div>
1632
- </div>
1633
- <div class="method">
1634
- <div class="title">
1635
- <a name="M000119"></a><b>swap!</b>(key1, key2)
1636
- </div>
1637
- <div class="description">
1638
- <p>
1639
- Swap the values of a pair of keys in place.
1640
- </p>
1641
- <pre>
1642
- {:a=&gt;1,:b=&gt;2}.swap!(:a,:b) #=&gt; {:a=&gt;2,:b=&gt;1}
1643
- </pre>
1644
- <p>
1645
- CREDIT: Gavin Sinclair
1646
- </p>
1647
- </div>
1648
- <div class="sourcecode">
1649
- <p class="source-link">[ <a href="javascript:toggleSource('M000119_source')" id="l_M000119_source">+</a> ]</p>
1650
- <div id="M000119_source" class="dyn-source">
1651
- <pre>
1652
- <span class="ruby-comment cmt"># File lib/core/facets/hash/swap.rb, line 9</span>
1653
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">swap!</span>(<span class="ruby-identifier">key1</span>, <span class="ruby-identifier">key2</span>)
1654
- <span class="ruby-identifier">tmp</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key1</span>]
1655
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key1</span>] = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key2</span>]
1656
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key2</span>] = <span class="ruby-identifier">tmp</span>
1657
- <span class="ruby-keyword kw">self</span>
1658
- <span class="ruby-keyword kw">end</span>
1659
- </pre>
1660
- </div>
1661
- </div>
1662
- </div>
1663
- <div class="method">
1664
- <div class="title">
1665
- <a name="M000121"></a><b>symbolize_keys</b>(&amp;filter)
1666
- </div>
1667
- <div class="description">
1668
- <p>
1669
- Converts all keys in the <a href="Hash.html">Hash</a> to Symbols, returning
1670
- a new <a href="Hash.html">Hash</a>. With a <tt>filter</tt>, limits
1671
- conversion to only a certain selection of keys.
1672
- </p>
1673
- <pre>
1674
- foo = { :name=&gt;'Gavin', 'wife'=&gt;:Lisa }
1675
- foo.symbolize_keys #=&gt; { :name=&gt;&quot;Gavin&quot;, :wife=&gt;:Lisa }
1676
- foo.inspect #=&gt; { &quot;name&quot; =&gt;&quot;Gavin&quot;, &quot;wife&quot;=&gt;:Lisa }
1677
- </pre>
1678
- <p>
1679
- This method is considered archaic. Use <a
1680
- href="Hash.html#M000131">rekey</a> instead.
1681
- </p>
1682
- </div>
1683
- <div class="sourcecode">
1684
- <p class="source-link">[ <a href="javascript:toggleSource('M000121_source')" id="l_M000121_source">+</a> ]</p>
1685
- <div id="M000121_source" class="dyn-source">
1686
- <pre>
1687
- <span class="ruby-comment cmt"># File lib/core/facets/hash/symbolize_keys.rb, line 20</span>
1688
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">symbolize_keys</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">filter</span>)
1689
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filter</span>
1690
- <span class="ruby-identifier">rekey</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">filter</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_sym</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span> }
1691
- <span class="ruby-keyword kw">else</span>
1692
- <span class="ruby-identifier">rekey</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_sym</span> }
1693
- <span class="ruby-keyword kw">end</span>
1694
- <span class="ruby-keyword kw">end</span>
1695
- </pre>
1696
- </div>
1697
- </div>
1698
- </div>
1699
- <div class="method">
1700
- <div class="title">
1701
- <a name="M000122"></a><b>symbolize_keys!</b>(&amp;filter)
1702
- </div>
1703
- <div class="description">
1704
- <p>
1705
- Synonym for <a href="Hash.html#M000121">Hash#symbolize_keys</a>, but
1706
- modifies the receiver in place and returns it. With a <tt>filter</tt>
1707
- parameter, limits conversion to only a certain selection of keys.
1708
- </p>
1709
- <pre>
1710
- foo = { 'name'=&gt;'Gavin', 'wife'=&gt;:Lisa }
1711
- foo.symbolize_keys! #=&gt; { :name=&gt;&quot;Gavin&quot;, :wife=&gt;:Lisa }
1712
- foo.inspect #=&gt; { :name=&gt;&quot;Gavin&quot;, :wife=&gt;:Lisa }
1713
- </pre>
1714
- <p>
1715
- This method is considered archaic. Use <a
1716
- href="Hash.html#M000131">rekey</a> instead.
1717
- </p>
1718
- </div>
1719
- <div class="sourcecode">
1720
- <p class="source-link">[ <a href="javascript:toggleSource('M000122_source')" id="l_M000122_source">+</a> ]</p>
1721
- <div id="M000122_source" class="dyn-source">
1722
- <pre>
1723
- <span class="ruby-comment cmt"># File lib/core/facets/hash/symbolize_keys.rb, line 37</span>
1724
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">symbolize_keys!</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">filter</span>)
1725
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filter</span>
1726
- <span class="ruby-identifier">rekey!</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">filter</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_sym</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span> }
1727
- <span class="ruby-keyword kw">else</span>
1728
- <span class="ruby-identifier">rekey!</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_sym</span> }
1729
- <span class="ruby-keyword kw">end</span>
1730
- <span class="ruby-keyword kw">end</span>
1731
- </pre>
1732
- </div>
1733
- </div>
1734
- </div>
1735
- <div class="method">
1736
- <div class="title">
1737
- <a name="M000075"></a><b>to_h</b>()
1738
- </div>
1739
- <div class="description">
1740
- <p>
1741
- Return a rehashing of <em>self</em>.
1742
- </p>
1743
- <pre>
1744
- {&quot;a&quot;=&gt;1,&quot;b&quot;=&gt;2}.to_h #=&gt; {&quot;b&quot;=&gt;2,&quot;a&quot;=&gt;1}
1745
- </pre>
1746
- <p>
1747
- CREDIT: Forian Gross
1748
- </p>
1749
- </div>
1750
- <div class="sourcecode">
1751
- <p class="source-link">[ <a href="javascript:toggleSource('M000075_source')" id="l_M000075_source">+</a> ]</p>
1752
- <div id="M000075_source" class="dyn-source">
1753
- <pre>
1754
- <span class="ruby-comment cmt"># File lib/core/facets/to_hash.rb, line 209</span>
1755
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_h</span>; <span class="ruby-identifier">rehash</span>; <span class="ruby-keyword kw">end</span>
1756
- </pre>
1757
- </div>
1758
- </div>
1759
- </div>
1760
- <div class="method">
1761
- <div class="title">
1762
- <a name="M000076"></a><b>to_hash</b>()
1763
- </div>
1764
- <div class="description">
1765
- <p>
1766
- Returns <em>self</em>.
1767
- </p>
1768
- <p>
1769
- CREDIT: Trans
1770
- </p>
1771
- </div>
1772
- <div class="sourcecode">
1773
- <p class="source-link">[ <a href="javascript:toggleSource('M000076_source')" id="l_M000076_source">+</a> ]</p>
1774
- <div id="M000076_source" class="dyn-source">
1775
- <pre>
1776
- <span class="ruby-comment cmt"># File lib/core/facets/to_hash.rb, line 215</span>
1777
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_hash</span>; <span class="ruby-keyword kw">self</span>; <span class="ruby-keyword kw">end</span>
1778
- </pre>
1779
- </div>
1780
- </div>
1781
- </div>
1782
- <div class="method">
1783
- <div class="title">
1784
- <a name="M000106"></a><b>to_proc</b>()
1785
- </div>
1786
- <div class="description">
1787
- <p>
1788
- Constructs a <a href="Proc.html">Proc</a> object from a hash such that the
1789
- parameter of the <a href="Proc.html">Proc</a> is assigned the hash keys as
1790
- attributes.
1791
- </p>
1792
- <pre>
1793
- h = { :a =&gt; 1 }
1794
- p = h.to_proc
1795
- o = OpenStruct.new
1796
- p.call(o)
1797
- o.a #=&gt; 1
1798
- </pre>
1799
- <p>
1800
- CREDIT: Trans
1801
- </p>
1802
- </div>
1803
- <div class="sourcecode">
1804
- <p class="source-link">[ <a href="javascript:toggleSource('M000106_source')" id="l_M000106_source">+</a> ]</p>
1805
- <div id="M000106_source" class="dyn-source">
1806
- <pre>
1807
- <span class="ruby-comment cmt"># File lib/core/facets/hash/to_proc.rb, line 15</span>
1808
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_proc</span>
1809
- <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
1810
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
1811
- <span class="ruby-identifier">ke</span> = <span class="ruby-node">&quot;#{k}=&quot;</span>
1812
- <span class="ruby-identifier">o</span>.<span class="ruby-identifier">__send__</span>(<span class="ruby-identifier">ke</span>, <span class="ruby-identifier">v</span>)
1813
- <span class="ruby-keyword kw">end</span>
1814
- <span class="ruby-keyword kw">end</span>
1815
- <span class="ruby-keyword kw">end</span>
1816
- </pre>
1817
- </div>
1818
- </div>
1819
- </div>
1820
- <div class="method">
1821
- <div class="title">
1822
- <a name="M000107"></a><b>to_proc_with_reponse</b>()
1823
- </div>
1824
- <div class="description">
1825
- <p>
1826
- A fault-tolerent version of <a href="Hash.html#M000106">to_proc</a>.
1827
- </p>
1828
- <p>
1829
- It works just like <a href="Hash.html#M000106">to_proc</a>, but the block
1830
- will make sure# the object responds to the assignment.
1831
- </p>
1832
- <p>
1833
- CREDIT: Trans
1834
- </p>
1835
- </div>
1836
- <div class="sourcecode">
1837
- <p class="source-link">[ <a href="javascript:toggleSource('M000107_source')" id="l_M000107_source">+</a> ]</p>
1838
- <div id="M000107_source" class="dyn-source">
1839
- <pre>
1840
- <span class="ruby-comment cmt"># File lib/core/facets/hash/to_proc.rb, line 31</span>
1841
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_proc_with_reponse</span>
1842
- <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
1843
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
1844
- <span class="ruby-identifier">ke</span> = <span class="ruby-node">&quot;#{k}=&quot;</span>
1845
- <span class="ruby-identifier">o</span>.<span class="ruby-identifier">__send__</span>(<span class="ruby-identifier">ke</span>, <span class="ruby-identifier">v</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">ke</span>)
1846
- <span class="ruby-keyword kw">end</span>
1847
- <span class="ruby-keyword kw">end</span>
1848
- <span class="ruby-keyword kw">end</span>
1849
- </pre>
1850
- </div>
1851
- </div>
1852
- </div>
1853
- <div class="method">
1854
- <div class="title">
1855
- <a name="M000120"></a><b>to_struct</b>(struct_name)
1856
- </div>
1857
- <div class="description">
1858
- <p>
1859
- A method to convert a <a href="Hash.html">Hash</a> into a <a
1860
- href="Struct.html">Struct</a>.
1861
- </p>
1862
- <pre>
1863
- h = {:name=&gt;&quot;Dan&quot;,&quot;age&quot;=&gt;33,&quot;rank&quot;=&gt;&quot;SrA&quot;,&quot;grade&quot;=&gt;&quot;E4&quot;}
1864
- s = h.to_struct(&quot;Foo&quot;)
1865
- </pre>
1866
- <p>
1867
- TODO: Is this robust enough considerd hashes aren&#8216;t ordered?
1868
- </p>
1869
- <p>
1870
- CREDIT: Daniel Berger
1871
- </p>
1872
- </div>
1873
- <div class="sourcecode">
1874
- <p class="source-link">[ <a href="javascript:toggleSource('M000120_source')" id="l_M000120_source">+</a> ]</p>
1875
- <div id="M000120_source" class="dyn-source">
1876
- <pre>
1877
- <span class="ruby-comment cmt"># File lib/core/facets/hash/to_struct.rb, line 12</span>
1878
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_struct</span>(<span class="ruby-identifier">struct_name</span>)
1879
- <span class="ruby-constant">Struct</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">struct_name</span>,<span class="ruby-operator">*</span><span class="ruby-identifier">keys</span>).<span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">values</span>)
1880
- <span class="ruby-keyword kw">end</span>
1881
- </pre>
1882
- </div>
1883
- </div>
1884
- </div>
1885
- <div class="method">
1886
- <div class="title">
1887
- <a name="M000098"></a><b>traverse</b>(&amp;b)
1888
- </div>
1889
- <div class="description">
1890
- <p>
1891
- Returns a new hash created by traversing the hash and its subhashes,
1892
- executing the given block on the key and value. The block should return a
1893
- 2-element array of the form +[key, value]+.
1894
- </p>
1895
- <pre>
1896
- h = { &quot;A&quot;=&gt;&quot;A&quot;, &quot;B&quot;=&gt;&quot;B&quot; }
1897
- g = h.traverse { |k,v| [k.downcase, v] }
1898
- g #=&gt; { &quot;a&quot;=&gt;&quot;A&quot;, &quot;b&quot;=&gt;&quot;B&quot; }
1899
- </pre>
1900
- <p>
1901
- TODO: Contrast these to recursibely &#8212;we may not need both.
1902
- </p>
1903
- <p>
1904
- TODO: Testing value to see if it is a <a href="Hash.html">Hash</a> also
1905
- catches subclasses of <a href="Hash.html">Hash</a>.
1906
- </p>
1907
- <pre>
1908
- This is probably not the right thing to do and should catch Hashes only (?)
1909
- </pre>
1910
- <p>
1911
- CREDIT: Trans
1912
- </p>
1913
- </div>
1914
- <div class="sourcecode">
1915
- <p class="source-link">[ <a href="javascript:toggleSource('M000098_source')" id="l_M000098_source">+</a> ]</p>
1916
- <div id="M000098_source" class="dyn-source">
1917
- <pre>
1918
- <span class="ruby-comment cmt"># File lib/core/facets/hash/traverse.rb, line 18</span>
1919
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">traverse</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)
1920
- <span class="ruby-identifier">inject</span>({}) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">h</span>,(<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>)<span class="ruby-operator">|</span>
1921
- <span class="ruby-identifier">v</span> = ( <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">v</span> <span class="ruby-value">? </span><span class="ruby-identifier">v</span>.<span class="ruby-identifier">traverse</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">v</span> )
1922
- <span class="ruby-identifier">nk</span>, <span class="ruby-identifier">nv</span> = <span class="ruby-identifier">b</span>[<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>]
1923
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">nk</span>] = <span class="ruby-identifier">nv</span> <span class="ruby-comment cmt">#( Hash === v ? v.traverse(base,&amp;b) : nv )</span>
1924
- <span class="ruby-identifier">h</span>
1925
- <span class="ruby-keyword kw">end</span>
1926
- <span class="ruby-keyword kw">end</span>
1927
- </pre>
1928
- </div>
1929
- </div>
1930
- </div>
1931
- <div class="method">
1932
- <div class="title">
1933
- <a name="M000099"></a><b>traverse!</b>(&amp;b)
1934
- </div>
1935
- <div class="description">
1936
- <p>
1937
- In place version of <a href="Hash.html#M000098">traverse</a>, which
1938
- traverses the hash and its subhashes, executing the given block on the key
1939
- and value.
1940
- </p>
1941
- <pre>
1942
- h = { &quot;A&quot;=&gt;&quot;A&quot;, &quot;B&quot;=&gt;&quot;B&quot; }
1943
- h.traverse! { |k,v| [k.downcase, v] }
1944
- h #=&gt; { &quot;a&quot;=&gt;&quot;A&quot;, &quot;b&quot;=&gt;&quot;B&quot; }
1945
- </pre>
1946
- <p>
1947
- CREDIT: Trans
1948
- </p>
1949
- </div>
1950
- <div class="sourcecode">
1951
- <p class="source-link">[ <a href="javascript:toggleSource('M000099_source')" id="l_M000099_source">+</a> ]</p>
1952
- <div id="M000099_source" class="dyn-source">
1953
- <pre>
1954
- <span class="ruby-comment cmt"># File lib/core/facets/hash/traverse.rb, line 36</span>
1955
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">traverse!</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)
1956
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>( <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">traverse</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>) )
1957
- <span class="ruby-keyword kw">end</span>
1958
- </pre>
1959
- </div>
1960
- </div>
1961
- </div>
1962
- <div class="method">
1963
- <div class="title">
1964
- <a name="M000133"></a><b>update_each</b>( {|| ...}
1965
- </div>
1966
- <div class="description">
1967
- <p>
1968
- Iterates through each pair and updates a the hash in place. This is
1969
- formally equivalent to mash! But does not use mash to accomplish the task.
1970
- Hence <a href="Hash.html#M000133">update_each</a> is probably a touch
1971
- faster.
1972
- </p>
1973
- <p>
1974
- CREDIT: Trans
1975
- </p>
1976
- </div>
1977
- <div class="sourcecode">
1978
- <p class="source-link">[ <a href="javascript:toggleSource('M000133_source')" id="l_M000133_source">+</a> ]</p>
1979
- <div id="M000133_source" class="dyn-source">
1980
- <pre>
1981
- <span class="ruby-comment cmt"># File lib/core/facets/hash/update_each.rb, line 10</span>
1982
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_each</span> <span class="ruby-comment cmt"># :yield:</span>
1983
- <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
1984
- <span class="ruby-identifier">update</span>(<span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>))
1985
- <span class="ruby-keyword kw">end</span>
1986
- <span class="ruby-keyword kw">self</span>
1987
- <span class="ruby-keyword kw">end</span>
1988
- </pre>
1989
- </div>
1990
- </div>
1991
- </div>
1992
- <div class="method">
1993
- <div class="title">
1994
- <a name="M000134"></a><b>update_keys</b>( {|| ...}
1995
- </div>
1996
- <div class="description">
1997
- <p>
1998
- Iterate over hash updating just the keys.
1999
- </p>
2000
- <pre>
2001
- h = {:a=&gt;1, :b=&gt;2}
2002
- h.update_keys{ |k| &quot;#{k}!&quot; }
2003
- h #=&gt; { &quot;a!&quot;=&gt;1, &quot;b!&quot;=&gt;2 }
2004
- </pre>
2005
- <p>
2006
- CREDIT: Trans
2007
- </p>
2008
- </div>
2009
- <div class="sourcecode">
2010
- <p class="source-link">[ <a href="javascript:toggleSource('M000134_source')" id="l_M000134_source">+</a> ]</p>
2011
- <div id="M000134_source" class="dyn-source">
2012
- <pre>
2013
- <span class="ruby-comment cmt"># File lib/core/facets/hash/update_keys.rb, line 11</span>
2014
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_keys</span> <span class="ruby-comment cmt">#:yield:</span>
2015
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
2016
- <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">old_key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">store</span>(<span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">old_key</span>), <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">old_key</span>)) }
2017
- <span class="ruby-keyword kw">else</span>
2018
- <span class="ruby-identifier">to_enum</span>(<span class="ruby-identifier">:update_keys</span>)
2019
- <span class="ruby-keyword kw">end</span>
2020
- <span class="ruby-keyword kw">end</span>
2021
- </pre>
2022
- </div>
2023
- </div>
2024
- </div>
2025
- <div class="method">
2026
- <div class="title">
2027
- <a name="M000081"></a><b>update_values</b>( {|| ...}
2028
- </div>
2029
- <div class="description">
2030
- <p>
2031
- Iterate over hash updating just the values.
2032
- </p>
2033
- <pre>
2034
- h = {:a=&gt;1, :b=&gt;2}
2035
- h.update_values{ |v| v+1 }
2036
- h #=&gt; { a:=&gt;2, :b=&gt;3 }
2037
- </pre>
2038
- <p>
2039
- CREDIT: Trans
2040
- </p>
2041
- </div>
2042
- <div class="sourcecode">
2043
- <p class="source-link">[ <a href="javascript:toggleSource('M000081_source')" id="l_M000081_source">+</a> ]</p>
2044
- <div id="M000081_source" class="dyn-source">
2045
- <pre>
2046
- <span class="ruby-comment cmt"># File lib/core/facets/hash/update_values.rb, line 11</span>
2047
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_values</span> <span class="ruby-comment cmt">#:yield:</span>
2048
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
2049
- <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">store</span>(<span class="ruby-identifier">k</span>, <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">v</span>)) }
2050
- <span class="ruby-keyword kw">else</span>
2051
- <span class="ruby-identifier">to_enum</span>(<span class="ruby-identifier">:update_values</span>)
2052
- <span class="ruby-keyword kw">end</span>
2053
- <span class="ruby-keyword kw">end</span>
2054
- </pre>
2055
- </div>
2056
- </div>
2057
- </div>
2058
- <div class="method">
2059
- <div class="title">
2060
- <a name="M000118"></a><b>weave</b>(h)
2061
- </div>
2062
- <div class="description">
2063
- <p>
2064
- Weave is a very uniqe hash operator. I is designed to merge to complex
2065
- hashes in according to sensible, regular pattern. The effect is akin to
2066
- inheritance.
2067
- </p>
2068
- <p>
2069
- Two hashes are weaved together to produce a new hash. The two hashes need
2070
- to be compatible according to the following rules for each node:
2071
- </p>
2072
- <pre>
2073
- &lt;tt&gt;
2074
- hash, hash =&gt; hash (recursive +)
2075
- hash, array =&gt; error
2076
- hash, value =&gt; error
2077
- array, hash =&gt; error
2078
- array, array =&gt; array + array
2079
- array, value =&gt; array &lt;&lt; value
2080
- value, hash =&gt; error
2081
- value, array =&gt; array.unshift(valueB)
2082
- value1, value2 =&gt; value2
2083
- &lt;/tt&gt;
2084
- </pre>
2085
- <p>
2086
- Here is a basic example:
2087
- </p>
2088
- <pre>
2089
- h1 = { :a =&gt; 1, :b =&gt; [ 1 ], :c =&gt; { :x =&gt; 1 } }
2090
- =&gt; {:b=&gt;[1], :c=&gt;{:x=&gt;1}, :a=&gt;1}
2091
-
2092
- h2 = { :a =&gt; 2, :b =&gt; [ 2 ], :c =&gt; { :x =&gt; 2 } }
2093
- =&gt; {:b=&gt;[2], :c=&gt;{:x=&gt;2}, :a=&gt;2}
2094
-
2095
- h1.weave(h2)
2096
- =&gt; {:b=&gt;[1, 2], :c=&gt;{:x=&gt;2}, :a=&gt;2}
2097
- </pre>
2098
- <p>
2099
- Weave follows the most expected pattern of unifying two complex hashes. It
2100
- is especially useful for implementing overridable configuration schemes.
2101
- </p>
2102
- <p>
2103
- CREDIT: Thomas Sawyer
2104
- </p>
2105
- </div>
2106
- <div class="sourcecode">
2107
- <p class="source-link">[ <a href="javascript:toggleSource('M000118_source')" id="l_M000118_source">+</a> ]</p>
2108
- <div id="M000118_source" class="dyn-source">
2109
- <pre>
2110
- <span class="ruby-comment cmt"># File lib/core/facets/hash/weave.rb, line 40</span>
2111
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weave</span>(<span class="ruby-identifier">h</span>)
2112
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;Hash expected&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Hash</span>)
2113
- <span class="ruby-identifier">s</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clone</span>
2114
- <span class="ruby-identifier">h</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
2115
- <span class="ruby-identifier">node_is_hash</span> = <span class="ruby-identifier">node</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Hash</span>)
2116
- <span class="ruby-identifier">node_is_array</span> = <span class="ruby-identifier">node</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Array</span>)
2117
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">k</span>)
2118
- <span class="ruby-identifier">self_node_is_hash</span> = <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Hash</span>)
2119
- <span class="ruby-identifier">self_node_is_array</span> = <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Array</span>)
2120
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">self_node_is_hash</span>
2121
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node_is_hash</span>
2122
- <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">weave</span>(<span class="ruby-identifier">node</span>)
2123
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">node_is_array</span>
2124
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">'Incompatible hash addition'</span> <span class="ruby-comment cmt">#self[k] = node</span>
2125
- <span class="ruby-keyword kw">else</span>
2126
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">'Incompatible hash addition'</span> <span class="ruby-comment cmt">#self[k] = node</span>
2127
- <span class="ruby-keyword kw">end</span>
2128
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">self_node_is_array</span>
2129
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node_is_hash</span>
2130
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">'Incompatible hash addition'</span> <span class="ruby-comment cmt">#self[k] = node</span>
2131
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">node_is_array</span>
2132
- <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">+=</span> <span class="ruby-identifier">node</span>
2133
- <span class="ruby-keyword kw">else</span>
2134
- <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">node</span>
2135
- <span class="ruby-keyword kw">end</span>
2136
- <span class="ruby-keyword kw">else</span>
2137
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node_is_hash</span>
2138
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">'Incompatible hash addition'</span> <span class="ruby-comment cmt">#self[k] = node</span>
2139
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">node_is_array</span>
2140
- <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">unshift</span>( <span class="ruby-identifier">node</span> )
2141
- <span class="ruby-keyword kw">else</span>
2142
- <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">node</span>
2143
- <span class="ruby-keyword kw">end</span>
2144
- <span class="ruby-keyword kw">end</span>
2145
- <span class="ruby-keyword kw">else</span>
2146
- <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">node</span>
2147
- <span class="ruby-keyword kw">end</span>
2148
- }
2149
- <span class="ruby-identifier">s</span>
2150
- <span class="ruby-keyword kw">end</span>
2151
- </pre>
2152
- </div>
2153
- </div>
2154
- </div>
2155
- <div class="method">
2156
- <div class="title">
2157
- <a name="M000100"></a><b>|</b>(other)
2158
- </div>
2159
- <div class="description">
2160
- <p>
2161
- Operator for <a href="Hash.html#M000095">reverse_merge</a>.
2162
- </p>
2163
- <p>
2164
- CREDIT: Trans
2165
- </p>
2166
- </div>
2167
- <div class="sourcecode">
2168
- <p class="source-link">[ <a href="javascript:toggleSource('M000100_source')" id="l_M000100_source">+</a> ]</p>
2169
- <div id="M000100_source" class="dyn-source">
2170
- <pre>
2171
- <span class="ruby-comment cmt"># File lib/core/facets/hash/op_or.rb, line 7</span>
2172
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">other</span>)
2173
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-keyword kw">self</span>)
2174
- <span class="ruby-keyword kw">end</span>
2175
- </pre>
2176
- </div>
2177
- </div>
2178
- </div>
2179
- </div>
2180
-
2181
- </div>
2182
-
2183
- </body>
2184
- </html>