facets 3.1.0 → 3.2.1

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 (770) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY.md +177 -0
  3. data/LICENSE.txt +21 -343
  4. data/README.md +34 -41
  5. data/lib/core/facets/array/arrange.rb +1 -42
  6. data/lib/core/facets/array/average.rb +0 -1
  7. data/lib/core/facets/array/before.rb +1 -1
  8. data/lib/core/facets/array/delete_first.rb +21 -0
  9. data/lib/core/facets/array/duplicates.rb +13 -0
  10. data/lib/core/facets/array/indexes.rb +113 -0
  11. data/lib/core/facets/array/nonuniq.rb +6 -8
  12. data/lib/core/facets/array/occurrence.rb +4 -1
  13. data/lib/core/facets/array/remove.rb +39 -0
  14. data/lib/core/facets/array/span.rb +29 -0
  15. data/lib/core/facets/array/split_at.rb +25 -0
  16. data/lib/core/facets/array/standard_deviation.rb +7 -2
  17. data/lib/core/facets/array/step.rb +12 -14
  18. data/lib/core/facets/array/to_ranges.rb +48 -0
  19. data/lib/core/facets/array/uniq_by.rb +3 -3
  20. data/lib/core/facets/array.rb +1 -1
  21. data/lib/core/facets/binding/caller.rb +8 -2
  22. data/lib/core/facets/binding/op_get.rb +7 -11
  23. data/lib/core/facets/binding/self.rb +4 -10
  24. data/lib/core/facets/boolean.rb +1 -1
  25. data/lib/core/facets/class/descendants.rb +0 -2
  26. data/lib/core/facets/class.rb +2 -2
  27. data/lib/core/facets/comparable/bound.rb +13 -1
  28. data/lib/core/facets/comparable/clip.rb +3 -32
  29. data/lib/core/facets/denumerable.rb +0 -3
  30. data/lib/core/facets/dir/find.rb +20 -0
  31. data/lib/core/facets/dir/recurse.rb +8 -26
  32. data/lib/core/facets/dir.rb +1 -1
  33. data/lib/core/facets/enumerable/compact_map.rb +2 -12
  34. data/lib/core/facets/enumerable/defer.rb +2 -13
  35. data/lib/core/facets/enumerable/each_by.rb +0 -2
  36. data/lib/core/facets/enumerable/frequency.rb +2 -2
  37. data/lib/core/facets/enumerable/hinge.rb +3 -4
  38. data/lib/core/facets/enumerable/map_with_index.rb +3 -6
  39. data/lib/core/facets/enumerable/mash.rb +5 -28
  40. data/lib/core/facets/enumerable/uniq_by.rb +4 -8
  41. data/lib/core/facets/enumerable/with_position.rb +58 -0
  42. data/lib/core/facets/enumerable.rb +2 -2
  43. data/lib/core/facets/enumerator.rb +2 -75
  44. data/lib/core/facets/essentials.rb +3 -3
  45. data/lib/core/facets/exception/error_print.rb +6 -71
  46. data/lib/core/facets/file/null.rb +3 -15
  47. data/lib/core/facets/file/read_binary.rb +3 -12
  48. data/lib/core/facets/file.rb +1 -1
  49. data/lib/core/facets/hash/except.rb +0 -7
  50. data/lib/core/facets/hash/fetch_nested.rb +8 -9
  51. data/lib/core/facets/hash/graph.rb +1 -1
  52. data/lib/core/facets/hash/rekey.rb +3 -3
  53. data/lib/core/facets/hash/revalue.rb +3 -3
  54. data/lib/core/facets/hash/{to_proc.rb → setter.rb} +8 -9
  55. data/lib/core/facets/hash/slice.rb +0 -26
  56. data/lib/core/facets/hash/update_keys.rb +4 -11
  57. data/lib/core/facets/hash/update_values.rb +4 -10
  58. data/lib/core/facets/hash.rb +1 -1
  59. data/lib/core/facets/indexable.rb +6 -4
  60. data/lib/core/facets/kernel/as.rb +2 -2
  61. data/lib/core/facets/kernel/callstack.rb +5 -24
  62. data/lib/core/facets/kernel/eigenclass.rb +6 -6
  63. data/lib/core/facets/kernel/extension.rb +3 -6
  64. data/lib/core/facets/kernel/functor.rb +16 -0
  65. data/lib/core/facets/kernel/instance_class.rb +4 -20
  66. data/lib/core/facets/kernel/instance_send.rb +5 -3
  67. data/lib/core/facets/kernel/load_relative.rb +8 -20
  68. data/lib/core/facets/kernel/memo.rb +4 -26
  69. data/lib/core/facets/kernel/meta_class.rb +10 -6
  70. data/lib/core/facets/kernel/object_class.rb +5 -6
  71. data/lib/core/facets/kernel/object_send.rb +5 -26
  72. data/lib/core/facets/kernel/qua_class.rb +4 -20
  73. data/lib/core/facets/kernel/require_all.rb +8 -20
  74. data/lib/core/facets/kernel/returning.rb +3 -19
  75. data/lib/core/facets/kernel/tap.rb +3 -36
  76. data/lib/core/facets/kernel/tee.rb +2 -0
  77. data/lib/core/facets/kernel/try.rb +38 -28
  78. data/lib/core/facets/kernel.rb +2 -4
  79. data/lib/core/facets/lazy.rb +1 -1
  80. data/lib/core/facets/matchdata.rb +1 -1
  81. data/lib/core/facets/module/alias_method_chain.rb +4 -43
  82. data/lib/core/facets/module/attr_setter.rb +3 -2
  83. data/lib/core/facets/module/can.rb +5 -16
  84. data/lib/core/facets/module/class_extend.rb +2 -2
  85. data/lib/core/facets/numeric.rb +2 -2
  86. data/lib/core/facets/object/dup.rb +0 -46
  87. data/lib/core/facets/object.rb +2 -2
  88. data/lib/core/facets/proc/bind.rb +0 -2
  89. data/lib/core/facets/proc/compose.rb +7 -28
  90. data/lib/core/facets/proc/to_method.rb +0 -1
  91. data/lib/core/facets/proc/update.rb +8 -1
  92. data/lib/core/facets/process.rb +1 -1
  93. data/lib/core/facets/range/intersection.rb +42 -0
  94. data/lib/core/facets/range/nudge.rb +6 -8
  95. data/lib/core/facets/range.rb +1 -1
  96. data/lib/core/facets/string/ascii_only.rb +2 -2
  97. data/lib/core/facets/string/cleanlines.rb +0 -2
  98. data/lib/core/facets/string/dashcase.rb +21 -0
  99. data/lib/core/facets/string/lchomp.rb +7 -14
  100. data/lib/core/facets/string/newlines.rb +0 -2
  101. data/lib/core/facets/string/snakecase.rb +12 -5
  102. data/lib/core/facets/string/words.rb +13 -1
  103. data/lib/core/facets/string.rb +0 -1
  104. data/lib/core/facets/struct/attributes.rb +2 -3
  105. data/lib/core/facets/symbol.rb +1 -1
  106. data/lib/core/facets/time/trunc.rb +12 -5
  107. data/lib/core/facets/unboundmethod/arguments.rb +1 -0
  108. data/lib/core/facets/version.rb +1 -17
  109. data/lib/core/facets.rb +0 -1
  110. data/lib/standard/facets/argvector.rb +1 -1
  111. data/lib/standard/facets/cgi/escape_html.rb +14 -25
  112. data/lib/standard/facets/cloneable.rb +4 -51
  113. data/lib/standard/facets/continuation.rb +2 -56
  114. data/lib/standard/facets/crypt3.rb +126 -0
  115. data/lib/standard/facets/date/cmp.rb +32 -0
  116. data/lib/standard/facets/date.rb +1 -0
  117. data/lib/standard/facets/digest.rb +0 -1
  118. data/lib/standard/facets/fileutils/cp_rx.rb +0 -2
  119. data/lib/standard/facets/fileutils/ln_r.rb +0 -1
  120. data/lib/standard/facets/find/select.rb +0 -2
  121. data/lib/standard/facets/getoptlong.rb +3 -59
  122. data/lib/standard/facets/load_monitor.rb +2 -26
  123. data/lib/standard/facets/math/gini_coefficient.rb +5 -4
  124. data/lib/standard/facets/math/kldivergence.rb +8 -7
  125. data/lib/standard/facets/math/percentile.rb +1 -1
  126. data/lib/standard/facets/multiton.rb +1 -1
  127. data/lib/standard/facets/opendsl.rb +33 -0
  128. data/lib/standard/facets/ostruct/initialize.rb +4 -19
  129. data/lib/standard/facets/ostruct/to_ostruct.rb +2 -1
  130. data/lib/standard/facets/ostruct.rb +0 -88
  131. data/lib/standard/facets/pathname/empty.rb +2 -10
  132. data/lib/standard/facets/pathname/glob.rb +19 -12
  133. data/lib/standard/facets/pathname/null.rb +3 -14
  134. data/lib/standard/facets/pic.rb +173 -0
  135. data/lib/standard/facets/random.rb +47 -133
  136. data/lib/standard/facets/tuple.rb +2 -4
  137. data/lib/standard/facets/uri.rb +3 -2
  138. metadata +31 -1172
  139. data/.index +0 -80
  140. data/.yardopts +0 -10
  141. data/NOTICE.rdoc +0 -167
  142. data/demo/applique/assertion_framework.rb +0 -1
  143. data/demo/applique/file_helpers.rb +0 -34
  144. data/demo/core/array/after.md +0 -13
  145. data/demo/core/array/arrange.md +0 -17
  146. data/demo/core/array/before.md +0 -14
  147. data/demo/core/array/collapse.md +0 -15
  148. data/demo/core/array/collisions.md +0 -30
  149. data/demo/core/array/commonality.md +0 -31
  150. data/demo/core/array/conjoin.md +0 -47
  151. data/demo/core/array/contains.md +0 -9
  152. data/demo/core/array/delete_unless.md +0 -13
  153. data/demo/core/array/delete_values.md +0 -10
  154. data/demo/core/array/delete_values_at.md +0 -15
  155. data/demo/core/array/divide.md +0 -14
  156. data/demo/core/array/duplicates.md +0 -14
  157. data/demo/core/array/each_overlap.md +0 -12
  158. data/demo/core/array/each_pair.md +0 -13
  159. data/demo/core/array/each_value.md +0 -12
  160. data/demo/core/array/entropy.md +0 -13
  161. data/demo/core/array/extract_options.md +0 -13
  162. data/demo/core/array/first.md +0 -11
  163. data/demo/core/array/from.md +0 -11
  164. data/demo/core/array/ideal_entropy.md +0 -11
  165. data/demo/core/array/intersection.md +0 -11
  166. data/demo/core/array/last.md +0 -11
  167. data/demo/core/array/median.md +0 -23
  168. data/demo/core/array/merge.md +0 -15
  169. data/demo/core/array/missing.md +0 -10
  170. data/demo/core/array/mode.md +0 -9
  171. data/demo/core/array/nonuniq.md +0 -16
  172. data/demo/core/array/not_empty.md +0 -8
  173. data/demo/core/array/occur.md +0 -18
  174. data/demo/core/array/occurrence.md +0 -13
  175. data/demo/core/array/only.md +0 -9
  176. data/demo/core/array/op_pow.md +0 -10
  177. data/demo/core/array/pad.md +0 -28
  178. data/demo/core/array/peek.md +0 -10
  179. data/demo/core/array/poke.md +0 -15
  180. data/demo/core/array/probability +0 -8
  181. data/demo/core/array/pull.md +0 -10
  182. data/demo/core/array/recurse.md +0 -10
  183. data/demo/core/array/recursively.md +0 -20
  184. data/demo/core/array/reject_values.md +0 -10
  185. data/demo/core/array/splice.md +0 -14
  186. data/demo/core/array/split.md +0 -13
  187. data/demo/core/array/squeeze.md +0 -14
  188. data/demo/core/array/step.md +0 -16
  189. data/demo/core/array/store.md +0 -9
  190. data/demo/core/array/thru.md +0 -12
  191. data/demo/core/array/to_h.md +0 -11
  192. data/demo/core/array/traverse.md +0 -20
  193. data/demo/core/array/uniq_by.md +0 -16
  194. data/demo/core/array/unique_permutation.md +0 -14
  195. data/demo/core/array/zip.md +0 -8
  196. data/demo/core/binding/caller.md +0 -57
  197. data/demo/core/binding/defined.md +0 -10
  198. data/demo/core/binding/opvars.md +0 -16
  199. data/demo/core/binding/self.md +0 -6
  200. data/demo/core/class/descendants.md +0 -13
  201. data/demo/core/class/to_proc.md +0 -11
  202. data/demo/core/comparable/at_least.md +0 -11
  203. data/demo/core/comparable/at_most.md +0 -11
  204. data/demo/core/comparable/bound.md +0 -13
  205. data/demo/core/comparable/cap.md +0 -11
  206. data/demo/core/comparable/clip.md +0 -29
  207. data/demo/core/comparable/cmp.md +0 -18
  208. data/demo/core/comparable/op_get.md +0 -32
  209. data/demo/core/dir/ascend.md +0 -24
  210. data/demo/core/dir/descend.md +0 -16
  211. data/demo/core/dir/multiglob.md +0 -41
  212. data/demo/core/dir/parent.md +0 -6
  213. data/demo/core/dir/recurse.md +0 -41
  214. data/demo/core/exception/detail.md +0 -19
  215. data/demo/core/facets.md +0 -6
  216. data/demo/core/filetest/root.md +0 -13
  217. data/demo/core/hash/recursively.md +0 -21
  218. data/demo/core/indexable.md +0 -95
  219. data/demo/core/integer/bitmask.md +0 -46
  220. data/demo/core/integer/factorial.md +0 -10
  221. data/demo/core/integer/length.md +0 -7
  222. data/demo/core/integer/multiple.md +0 -12
  223. data/demo/core/integer/of.md +0 -11
  224. data/demo/core/integer/ordinal.md +0 -11
  225. data/demo/core/integer/times_collect.md +0 -9
  226. data/demo/core/matchdata/match.md +0 -7
  227. data/demo/core/matchdata/matchset.md +0 -7
  228. data/demo/core/matchdata/matchtree.md +0 -10
  229. data/demo/core/module/cattr.md +0 -43
  230. data/demo/core/module/class_extend.md +0 -64
  231. data/demo/core/module/class_inheritor.md +0 -126
  232. data/demo/core/module/copy_inheritor.md +0 -30
  233. data/demo/core/module/include_as.md +0 -31
  234. data/demo/core/module/method_space.md +0 -24
  235. data/demo/core/string/acronym.md +0 -9
  236. data/demo/core/string/align.md +0 -34
  237. data/demo/core/string/ascii_only.md +0 -37
  238. data/demo/core/string/bracket.md +0 -35
  239. data/demo/core/string/camelcase.md +0 -47
  240. data/demo/core/string/capitalized.md +0 -27
  241. data/demo/core/string/characters.md +0 -11
  242. data/demo/core/string/cleanlines.md +0 -10
  243. data/demo/core/string/cleave.md +0 -49
  244. data/demo/core/string/compress_lines.md +0 -22
  245. data/demo/core/string/crypt.md +0 -15
  246. data/demo/core/string/divide.md +0 -9
  247. data/demo/core/string/each_word.md +0 -11
  248. data/demo/core/string/edit_distance.md +0 -15
  249. data/demo/core/string/exclude.md +0 -15
  250. data/demo/core/string/expand_tabs.md +0 -69
  251. data/demo/core/string/fold.md +0 -14
  252. data/demo/core/string/indent.md +0 -65
  253. data/demo/core/string/index_all.md +0 -14
  254. data/demo/core/string/interpolate.md +0 -8
  255. data/demo/core/string/lchomp.md +0 -14
  256. data/demo/core/string/line_wrap.md +0 -7
  257. data/demo/core/string/lowercase.md +0 -12
  258. data/demo/core/string/methodize.md +0 -22
  259. data/demo/core/string/modulize.md +0 -22
  260. data/demo/core/string/mscan.md +0 -10
  261. data/demo/core/string/natcmp.md +0 -10
  262. data/demo/core/string/nchar.md +0 -9
  263. data/demo/core/string/newlines.md +0 -9
  264. data/demo/core/string/number.md +0 -27
  265. data/demo/core/string/op_div.md +0 -10
  266. data/demo/core/string/op_sub.md +0 -7
  267. data/demo/core/string/pathize.md +0 -22
  268. data/demo/core/string/quote.md +0 -20
  269. data/demo/core/string/random.md +0 -25
  270. data/demo/core/string/range.md +0 -19
  271. data/demo/core/string/remove.md +0 -33
  272. data/demo/core/string/rewrite.md +0 -9
  273. data/demo/core/string/shatter.md +0 -9
  274. data/demo/core/string/similarity.md +0 -12
  275. data/demo/core/string/snakecase.md +0 -14
  276. data/demo/core/string/splice.md +0 -28
  277. data/demo/core/string/squish.md +0 -27
  278. data/demo/core/string/store.md +0 -10
  279. data/demo/core/string/subtract.md +0 -8
  280. data/demo/core/string/titlecase.md +0 -8
  281. data/demo/core/string/to_re.md +0 -22
  282. data/demo/core/string/trim.md +0 -92
  283. data/demo/core/string/unbracket.md +0 -24
  284. data/demo/core/string/underscore.md +0 -17
  285. data/demo/core/string/unfold.md +0 -9
  286. data/demo/core/string/unindent.md +0 -65
  287. data/demo/core/string/unquote.md +0 -6
  288. data/demo/core/string/uppercase.md +0 -15
  289. data/demo/core/string/variablize.md +0 -7
  290. data/demo/core/string/word_wrap.md +0 -54
  291. data/demo/core/string/words.md +0 -13
  292. data/demo/core/string/xor.md +0 -8
  293. data/demo/standard/02_cloneable.rdoc +0 -46
  294. data/demo/standard/03_enumargs.rdoc +0 -75
  295. data/demo/standard/04_equitable.rdoc +0 -35
  296. data/demo/standard/05_instantiable.rdoc +0 -42
  297. data/demo/standard/basic_object.rdoc +0 -22
  298. data/demo/standard/memoizable.rdoc +0 -134
  299. data/demo/standard/mulititon.rdoc +0 -156
  300. data/lib/core/facets/applique/file_helpers.rb +0 -33
  301. data/lib/core/facets/array/intersection.rb +0 -25
  302. data/lib/core/facets/array/op_pow.rb +0 -12
  303. data/lib/core/facets/array/to_h.rb +0 -19
  304. data/lib/core/facets/class/singleton.rb +0 -1
  305. data/lib/core/facets/class/singleton_class.rb +0 -16
  306. data/lib/core/facets/class/subclasses.rb +0 -28
  307. data/lib/core/facets/dir/each_child.rb +0 -16
  308. data/lib/core/facets/enumerable/filter.rb +0 -33
  309. data/lib/core/facets/enumerable/sum.rb +0 -40
  310. data/lib/core/facets/exception/set_message.rb +0 -10
  311. data/lib/core/facets/file/write.rb +0 -24
  312. data/lib/core/facets/fixnum.rb +0 -7
  313. data/lib/core/facets/kernel/__dir__.rb +0 -28
  314. data/lib/core/facets/kernel/constant.rb +0 -22
  315. data/lib/core/facets/kernel/instance_exec.rb +0 -47
  316. data/lib/core/facets/kernel/p.rb +0 -24
  317. data/lib/core/facets/kernel/singleton_class.rb +0 -10
  318. data/lib/core/facets/matchdata/match.rb +0 -15
  319. data/lib/core/facets/method/curry.rb +0 -13
  320. data/lib/core/facets/numeric/negative.rb +0 -1
  321. data/lib/core/facets/numeric/positive.rb +0 -15
  322. data/lib/core/facets/object/itself.rb +0 -16
  323. data/lib/core/facets/object/try_dup.rb +0 -1
  324. data/lib/core/facets/process/daemon.rb +0 -32
  325. data/lib/core/facets/range/overlap.rb +0 -12
  326. data/lib/core/facets/string/characters.rb +0 -13
  327. data/lib/core/facets/string/crypt.rb +0 -22
  328. data/lib/core/facets/symbol/succ.rb +0 -23
  329. data/lib/core/facets.yml +0 -80
  330. data/lib/standard/facets/basicobject.rb +0 -75
  331. data/lib/standard/facets/digest/base64digest.rb +0 -45
  332. data/lib/standard/facets/ostruct/each.rb +0 -11
  333. data/lib/standard/facets/ostruct/merge.rb +0 -21
  334. data/lib/standard/facets/ostruct/op_fetch.rb +0 -29
  335. data/lib/standard/facets/ostruct/op_store.rb +0 -1
  336. data/lib/standard/facets/ostruct/to_h.rb +0 -10
  337. data/test/core/array/test_arrange.rb +0 -37
  338. data/test/core/array/test_average.rb +0 -16
  339. data/test/core/array/test_before.rb +0 -48
  340. data/test/core/array/test_collapse.rb +0 -23
  341. data/test/core/array/test_commonality.rb +0 -35
  342. data/test/core/array/test_conjoin.rb +0 -50
  343. data/test/core/array/test_contains.rb +0 -14
  344. data/test/core/array/test_delete.rb +0 -42
  345. data/test/core/array/test_delete_unless.rb +0 -17
  346. data/test/core/array/test_delete_values.rb +0 -31
  347. data/test/core/array/test_divide.rb +0 -24
  348. data/test/core/array/test_duplicates.rb +0 -29
  349. data/test/core/array/test_each_overlap.rb +0 -31
  350. data/test/core/array/test_each_pair.rb +0 -16
  351. data/test/core/array/test_each_value.rb +0 -16
  352. data/test/core/array/test_entropy.rb +0 -23
  353. data/test/core/array/test_extract_options.rb +0 -28
  354. data/test/core/array/test_first.rb +0 -17
  355. data/test/core/array/test_from.rb +0 -42
  356. data/test/core/array/test_intersection.rb +0 -19
  357. data/test/core/array/test_last.rb +0 -17
  358. data/test/core/array/test_median.rb +0 -27
  359. data/test/core/array/test_merge.rb +0 -27
  360. data/test/core/array/test_missing.rb +0 -12
  361. data/test/core/array/test_mode.rb +0 -17
  362. data/test/core/array/test_nonuniq.rb +0 -25
  363. data/test/core/array/test_not_empty.rb +0 -17
  364. data/test/core/array/test_occur.rb +0 -52
  365. data/test/core/array/test_occurrence.rb +0 -20
  366. data/test/core/array/test_only.rb +0 -17
  367. data/test/core/array/test_op_pow.rb +0 -13
  368. data/test/core/array/test_pad.rb +0 -40
  369. data/test/core/array/test_peek.rb +0 -28
  370. data/test/core/array/test_poke.rb +0 -21
  371. data/test/core/array/test_probability.rb +0 -18
  372. data/test/core/array/test_pull.rb +0 -15
  373. data/test/core/array/test_recurse.rb +0 -40
  374. data/test/core/array/test_recursively.rb +0 -33
  375. data/test/core/array/test_reject_values.rb +0 -17
  376. data/test/core/array/test_splice.rb +0 -21
  377. data/test/core/array/test_split.rb +0 -22
  378. data/test/core/array/test_squeeze.rb +0 -22
  379. data/test/core/array/test_standard_deviation.rb +0 -18
  380. data/test/core/array/test_step.rb +0 -28
  381. data/test/core/array/test_store.rb +0 -22
  382. data/test/core/array/test_to_h.rb +0 -14
  383. data/test/core/array/test_traverse.rb +0 -26
  384. data/test/core/array/test_uniq_by.rb +0 -24
  385. data/test/core/array/test_unique_permutation.rb +0 -23
  386. data/test/core/array/test_variance.rb +0 -17
  387. data/test/core/array/test_zip.rb +0 -13
  388. data/test/core/binding/test_caller.rb +0 -69
  389. data/test/core/binding/test_defined.rb +0 -18
  390. data/test/core/binding/test_op.rb +0 -24
  391. data/test/core/binding/test_self.rb +0 -16
  392. data/test/core/class/test_descendents.rb +0 -19
  393. data/test/core/class/test_preallocate.rb +0 -32
  394. data/test/core/class/test_subclasses.rb +0 -20
  395. data/test/core/class/test_to_proc.rb +0 -16
  396. data/test/core/comparable/test_bound.rb +0 -32
  397. data/test/core/comparable/test_cap.rb +0 -36
  398. data/test/core/comparable/test_clip.rb +0 -31
  399. data/test/core/comparable/test_cmp.rb +0 -16
  400. data/test/core/comparable/test_op_get.rb +0 -61
  401. data/test/core/denumerable_tc.rb +0 -194
  402. data/test/core/dir/test_ascend.rb +0 -40
  403. data/test/core/dir/test_descend.rb +0 -24
  404. data/test/core/dir/test_each_child.rb +0 -22
  405. data/test/core/dir/test_multiglob.rb +0 -25
  406. data/test/core/dir/test_parent.rb +0 -14
  407. data/test/core/dir/test_recurse.rb +0 -26
  408. data/test/core/enumerable/test_accumulate.rb +0 -44
  409. data/test/core/enumerable/test_cluster.rb +0 -36
  410. data/test/core/enumerable/test_compact_map.rb +0 -32
  411. data/test/core/enumerable/test_defer.rb +0 -27
  412. data/test/core/enumerable/test_each_by.rb +0 -49
  413. data/test/core/enumerable/test_every.rb +0 -33
  414. data/test/core/enumerable/test_ewise.rb +0 -30
  415. data/test/core/enumerable/test_exclude.rb +0 -15
  416. data/test/core/enumerable/test_expand.rb +0 -15
  417. data/test/core/enumerable/test_filter.rb +0 -19
  418. data/test/core/enumerable/test_find_yield.rb +0 -96
  419. data/test/core/enumerable/test_frequency.rb +0 -15
  420. data/test/core/enumerable/test_graph.rb +0 -42
  421. data/test/core/enumerable/test_hashify.rb +0 -113
  422. data/test/core/enumerable/test_key_by.rb +0 -22
  423. data/test/core/enumerable/test_map_by.rb +0 -27
  424. data/test/core/enumerable/test_map_send.rb +0 -26
  425. data/test/core/enumerable/test_map_with_index.rb +0 -23
  426. data/test/core/enumerable/test_mash.rb +0 -17
  427. data/test/core/enumerable/test_modulate.rb +0 -17
  428. data/test/core/enumerable/test_occur.rb +0 -40
  429. data/test/core/enumerable/test_only.rb +0 -40
  430. data/test/core/enumerable/test_per.rb +0 -19
  431. data/test/core/enumerable/test_purge.rb +0 -22
  432. data/test/core/enumerable/test_recursively.rb +0 -33
  433. data/test/core/enumerable/test_squeeze.rb +0 -35
  434. data/test/core/enumerable/test_sum.rb +0 -40
  435. data/test/core/enumerable/test_uniq_by.rb +0 -25
  436. data/test/core/enumerable/test_visit.rb +0 -14
  437. data/test/core/enumerator/lazy/test_squeeze.rb +0 -33
  438. data/test/core/enumerator/test_fx.rb +0 -16
  439. data/test/core/enumerator/test_new.rb +0 -21
  440. data/test/core/enumerator_tc.rb +0 -40
  441. data/test/core/exception/test_detail.rb +0 -15
  442. data/test/core/exception/test_raised.rb +0 -15
  443. data/test/core/exception/test_suppress.rb +0 -16
  444. data/test/core/file/test_append.rb +0 -22
  445. data/test/core/file/test_create.rb +0 -17
  446. data/test/core/file/test_ext.rb +0 -31
  447. data/test/core/file/test_null.rb +0 -14
  448. data/test/core/file/test_read_binary.rb +0 -19
  449. data/test/core/file/test_read_list.rb +0 -16
  450. data/test/core/file/test_rewrite.rb +0 -35
  451. data/test/core/file/test_rootname.rb +0 -13
  452. data/test/core/file/test_sanitize.rb +0 -32
  453. data/test/core/file/test_split_all.rb +0 -14
  454. data/test/core/file/test_write.rb +0 -22
  455. data/test/core/file/test_writelines.rb +0 -21
  456. data/test/core/filetest/test_root.rb +0 -14
  457. data/test/core/functor_tc.rb +0 -41
  458. data/test/core/hash/test_alias.rb +0 -25
  459. data/test/core/hash/test_argumentize.rb +0 -23
  460. data/test/core/hash/test_at.rb +0 -16
  461. data/test/core/hash/test_autonew.rb +0 -22
  462. data/test/core/hash/test_collate.rb +0 -61
  463. data/test/core/hash/test_count.rb +0 -23
  464. data/test/core/hash/test_data.rb +0 -35
  465. data/test/core/hash/test_dearray_values.rb +0 -26
  466. data/test/core/hash/test_deep_merge.rb +0 -31
  467. data/test/core/hash/test_deep_rekey.rb +0 -131
  468. data/test/core/hash/test_delete_at.rb +0 -18
  469. data/test/core/hash/test_delete_unless.rb +0 -18
  470. data/test/core/hash/test_delete_values.rb +0 -30
  471. data/test/core/hash/test_diff.rb +0 -16
  472. data/test/core/hash/test_each_with_key.rb +0 -16
  473. data/test/core/hash/test_expect.rb +0 -34
  474. data/test/core/hash/test_fetch_nested.rb +0 -24
  475. data/test/core/hash/test_graph.rb +0 -40
  476. data/test/core/hash/test_insert.rb +0 -20
  477. data/test/core/hash/test_inverse.rb +0 -20
  478. data/test/core/hash/test_join.rb +0 -32
  479. data/test/core/hash/test_keys.rb +0 -41
  480. data/test/core/hash/test_new_with.rb +0 -17
  481. data/test/core/hash/test_op_add.rb +0 -17
  482. data/test/core/hash/test_op_and.rb +0 -31
  483. data/test/core/hash/test_op_mul.rb +0 -17
  484. data/test/core/hash/test_op_or.rb +0 -17
  485. data/test/core/hash/test_op_push.rb +0 -34
  486. data/test/core/hash/test_op_sub.rb +0 -28
  487. data/test/core/hash/test_recurse.rb +0 -39
  488. data/test/core/hash/test_recursively.rb +0 -71
  489. data/test/core/hash/test_rekey.rb +0 -119
  490. data/test/core/hash/test_replace_each.rb +0 -17
  491. data/test/core/hash/test_revalue.rb +0 -98
  492. data/test/core/hash/test_reverse_merge.rb +0 -39
  493. data/test/core/hash/test_slice.rb +0 -36
  494. data/test/core/hash/test_stringify_keys.rb +0 -26
  495. data/test/core/hash/test_swap.rb +0 -15
  496. data/test/core/hash/test_symbolize_keys.rb +0 -26
  497. data/test/core/hash/test_to_mod.rb +0 -24
  498. data/test/core/hash/test_to_proc.rb +0 -23
  499. data/test/core/hash/test_to_struct.rb +0 -22
  500. data/test/core/hash/test_traverse.rb +0 -29
  501. data/test/core/hash/test_update_each.rb +0 -16
  502. data/test/core/hash/test_update_keys.rb +0 -21
  503. data/test/core/hash/test_update_values.rb +0 -15
  504. data/test/core/hash/test_weave.rb +0 -18
  505. data/test/core/hash/test_zip.rb +0 -16
  506. data/test/core/indexable_tc.rb +0 -226
  507. data/test/core/integer/test_bitmask.rb +0 -73
  508. data/test/core/integer/test_factorial.rb +0 -30
  509. data/test/core/integer/test_multiple.rb +0 -16
  510. data/test/core/integer/test_of.rb +0 -36
  511. data/test/core/integer/test_ordinal.rb +0 -27
  512. data/test/core/kernel/test_as.rb +0 -74
  513. data/test/core/kernel/test_ask.rb +0 -9
  514. data/test/core/kernel/test_assign.rb +0 -61
  515. data/test/core/kernel/test_assign_from.rb +0 -48
  516. data/test/core/kernel/test_attr_singleton.rb +0 -51
  517. data/test/core/kernel/test_blank.rb +0 -103
  518. data/test/core/kernel/test_callstack.rb +0 -21
  519. data/test/core/kernel/test_class.rb +0 -14
  520. data/test/core/kernel/test_complete.rb +0 -19
  521. data/test/core/kernel/test_constant.rb +0 -18
  522. data/test/core/kernel/test_d.rb +0 -10
  523. data/test/core/kernel/test_deep_clone.rb +0 -31
  524. data/test/core/kernel/test_deep_copy.rb +0 -15
  525. data/test/core/kernel/test_dir.rb +0 -24
  526. data/test/core/kernel/test_disable_warnings.rb +0 -38
  527. data/test/core/kernel/test_ergo.rb +0 -34
  528. data/test/core/kernel/test_extension.rb +0 -18
  529. data/test/core/kernel/test_get.rb +0 -54
  530. data/test/core/kernel/test_here.rb +0 -13
  531. data/test/core/kernel/test_hierarchical_send.rb +0 -48
  532. data/test/core/kernel/test_in.rb +0 -14
  533. data/test/core/kernel/test_instance_assign.rb +0 -19
  534. data/test/core/kernel/test_instance_class.rb +0 -15
  535. data/test/core/kernel/test_instance_extract.rb +0 -28
  536. data/test/core/kernel/test_instance_replace.rb +0 -47
  537. data/test/core/kernel/test_instance_send.rb +0 -26
  538. data/test/core/kernel/test_maybe.rb +0 -13
  539. data/test/core/kernel/test_meta_alias.rb +0 -18
  540. data/test/core/kernel/test_meta_class.rb +0 -33
  541. data/test/core/kernel/test_meta_def.rb +0 -15
  542. data/test/core/kernel/test_meta_eval.rb +0 -18
  543. data/test/core/kernel/test_method.rb +0 -20
  544. data/test/core/kernel/test_not.rb +0 -51
  545. data/test/core/kernel/test_not_nil.rb +0 -25
  546. data/test/core/kernel/test_object_class.rb +0 -22
  547. data/test/core/kernel/test_object_hexid.rb +0 -20
  548. data/test/core/kernel/test_object_send.rb +0 -25
  549. data/test/core/kernel/test_presence.rb +0 -37
  550. data/test/core/kernel/test_qua_class.rb +0 -25
  551. data/test/core/kernel/test_require_all.rb +0 -11
  552. data/test/core/kernel/test_respond.rb +0 -38
  553. data/test/core/kernel/test_returning.rb +0 -17
  554. data/test/core/kernel/test_silence.rb +0 -24
  555. data/test/core/kernel/test_singleton_class.rb +0 -15
  556. data/test/core/kernel/test_super_method.rb +0 -23
  557. data/test/core/kernel/test_tap.rb +0 -38
  558. data/test/core/kernel/test_temporarily.rb +0 -25
  559. data/test/core/kernel/test_true.rb +0 -31
  560. data/test/core/kernel/test_try.rb +0 -35
  561. data/test/core/kernel/test_val.rb +0 -30
  562. data/test/core/kernel/test_with.rb +0 -18
  563. data/test/core/kernel/test_writers.rb +0 -53
  564. data/test/core/matchdata/test_match.rb +0 -14
  565. data/test/core/matchdata/test_matchset.rb +0 -29
  566. data/test/core/method/test_composition.rb +0 -42
  567. data/test/core/module/test_abstract.rb +0 -24
  568. data/test/core/module/test_alias_accessor.rb +0 -27
  569. data/test/core/module/test_alias_method_chain.rb +0 -34
  570. data/test/core/module/test_alias_module_function.rb +0 -24
  571. data/test/core/module/test_all_instance_methods.rb +0 -27
  572. data/test/core/module/test_ancestor.rb +0 -16
  573. data/test/core/module/test_anonymous.rb +0 -18
  574. data/test/core/module/test_attr_setter.rb +0 -28
  575. data/test/core/module/test_basename.rb +0 -14
  576. data/test/core/module/test_can.rb +0 -22
  577. data/test/core/module/test_class.rb +0 -22
  578. data/test/core/module/test_class_def.rb +0 -22
  579. data/test/core/module/test_class_extend.rb +0 -73
  580. data/test/core/module/test_class_inheritor.rb +0 -135
  581. data/test/core/module/test_copy_inheritor.rb +0 -35
  582. data/test/core/module/test_enclosure.rb +0 -24
  583. data/test/core/module/test_instance_function.rb +0 -30
  584. data/test/core/module/test_instance_method.rb +0 -20
  585. data/test/core/module/test_instance_method_defined.rb +0 -38
  586. data/test/core/module/test_integrate.rb +0 -28
  587. data/test/core/module/test_is.rb +0 -50
  588. data/test/core/module/test_memoize.rb +0 -33
  589. data/test/core/module/test_method_clash.rb +0 -59
  590. data/test/core/module/test_method_space.rb +0 -72
  591. data/test/core/module/test_methodize.rb +0 -26
  592. data/test/core/module/test_modname.rb +0 -13
  593. data/test/core/module/test_module_def.rb +0 -22
  594. data/test/core/module/test_module_load.rb +0 -23
  595. data/test/core/module/test_nodef.rb +0 -19
  596. data/test/core/module/test_op.rb +0 -56
  597. data/test/core/module/test_pathize.rb +0 -25
  598. data/test/core/module/test_preextend.rb +0 -26
  599. data/test/core/module/test_redefine_method.rb +0 -30
  600. data/test/core/module/test_redirect_method.rb +0 -32
  601. data/test/core/module/test_remove.rb +0 -18
  602. data/test/core/module/test_rename_method.rb +0 -34
  603. data/test/core/module/test_revise.rb +0 -61
  604. data/test/core/module/test_set.rb +0 -30
  605. data/test/core/module/test_spacename.rb +0 -15
  606. data/test/core/module/test_to_obj.rb +0 -20
  607. data/test/core/module/test_wrap_method.rb +0 -32
  608. data/test/core/numeric/test_approx.rb +0 -26
  609. data/test/core/numeric/test_delimit.rb +0 -68
  610. data/test/core/numeric/test_distance.rb +0 -16
  611. data/test/core/numeric/test_length.rb +0 -16
  612. data/test/core/numeric/test_round_to.rb +0 -76
  613. data/test/core/numeric/test_spacing.rb +0 -17
  614. data/test/core/object/test_dup.rb +0 -115
  615. data/test/core/object/test_object_state.rb +0 -75
  616. data/test/core/object/test_try_dup.rb +0 -59
  617. data/test/core/proc/test_bind.rb +0 -29
  618. data/test/core/proc/test_bind_to.rb +0 -17
  619. data/test/core/proc/test_compose.rb +0 -27
  620. data/test/core/proc/test_partial.rb +0 -27
  621. data/test/core/proc/test_to_method.rb +0 -43
  622. data/test/core/proc/test_update.rb +0 -15
  623. data/test/core/range/test_combine.rb +0 -32
  624. data/test/core/range/test_nudge.rb +0 -32
  625. data/test/core/range/test_op_add.rb +0 -24
  626. data/test/core/range/test_op_sub.rb +0 -34
  627. data/test/core/range/test_overlap.rb +0 -15
  628. data/test/core/range/test_to_rng.rb +0 -20
  629. data/test/core/range/test_umbrella.rb +0 -32
  630. data/test/core/range/test_within.rb +0 -25
  631. data/test/core/regexp/test_arity.rb +0 -30
  632. data/test/core/regexp/test_multiline.rb +0 -19
  633. data/test/core/regexp/test_op_add.rb +0 -15
  634. data/test/core/regexp/test_op_or.rb +0 -16
  635. data/test/core/regexp/test_to_re.rb +0 -24
  636. data/test/core/string/test_acronym.rb +0 -14
  637. data/test/core/string/test_align.rb +0 -32
  638. data/test/core/string/test_ascii_only.rb +0 -51
  639. data/test/core/string/test_bracket.rb +0 -37
  640. data/test/core/string/test_camelcase.rb +0 -59
  641. data/test/core/string/test_capitalized.rb +0 -36
  642. data/test/core/string/test_characters.rb +0 -13
  643. data/test/core/string/test_cleanlines.rb +0 -12
  644. data/test/core/string/test_cleave.rb +0 -27
  645. data/test/core/string/test_cmp.rb +0 -18
  646. data/test/core/string/test_compress_lines.rb +0 -27
  647. data/test/core/string/test_crypt.rb +0 -17
  648. data/test/core/string/test_divide.rb +0 -17
  649. data/test/core/string/test_each_word.rb +0 -17
  650. data/test/core/string/test_edit_distance.rb +0 -20
  651. data/test/core/string/test_exclude.rb +0 -23
  652. data/test/core/string/test_expand_tabs.rb +0 -83
  653. data/test/core/string/test_file.rb +0 -15
  654. data/test/core/string/test_fold.rb +0 -21
  655. data/test/core/string/test_indent.rb +0 -90
  656. data/test/core/string/test_index_all.rb +0 -22
  657. data/test/core/string/test_interpolate.rb +0 -16
  658. data/test/core/string/test_lchomp.rb +0 -25
  659. data/test/core/string/test_line_wrap.rb +0 -15
  660. data/test/core/string/test_lowercase.rb +0 -18
  661. data/test/core/string/test_margin.rb +0 -16
  662. data/test/core/string/test_methodize.rb +0 -28
  663. data/test/core/string/test_modulize.rb +0 -28
  664. data/test/core/string/test_mscan.rb +0 -18
  665. data/test/core/string/test_natcmp.rb +0 -17
  666. data/test/core/string/test_nchar.rb +0 -17
  667. data/test/core/string/test_newlines.rb +0 -14
  668. data/test/core/string/test_number.rb +0 -44
  669. data/test/core/string/test_op_div.rb +0 -15
  670. data/test/core/string/test_op_sub.rb +0 -15
  671. data/test/core/string/test_pathize.rb +0 -31
  672. data/test/core/string/test_quote.rb +0 -41
  673. data/test/core/string/test_random.rb +0 -25
  674. data/test/core/string/test_range.rb +0 -35
  675. data/test/core/string/test_remove.rb +0 -50
  676. data/test/core/string/test_rewrite.rb +0 -17
  677. data/test/core/string/test_rotate.rb +0 -31
  678. data/test/core/string/test_shatter.rb +0 -17
  679. data/test/core/string/test_similarity.rb +0 -22
  680. data/test/core/string/test_snakecase.rb +0 -22
  681. data/test/core/string/test_splice.rb +0 -37
  682. data/test/core/string/test_squish.rb +0 -31
  683. data/test/core/string/test_store.rb +0 -16
  684. data/test/core/string/test_subtract.rb +0 -16
  685. data/test/core/string/test_titlecase.rb +0 -16
  686. data/test/core/string/test_to_re.rb +0 -35
  687. data/test/core/string/test_trim.rb +0 -116
  688. data/test/core/string/test_unbracket.rb +0 -38
  689. data/test/core/string/test_underscore.rb +0 -21
  690. data/test/core/string/test_unfold.rb +0 -17
  691. data/test/core/string/test_unindent.rb +0 -105
  692. data/test/core/string/test_unquote.rb +0 -13
  693. data/test/core/string/test_uppercase.rb +0 -22
  694. data/test/core/string/test_variablize.rb +0 -15
  695. data/test/core/string/test_word_wrap.rb +0 -80
  696. data/test/core/string/test_words.rb +0 -24
  697. data/test/core/string/test_xor.rb +0 -16
  698. data/test/core/struct/test_replace.rb +0 -18
  699. data/test/core/symbol/test_as_s.rb +0 -15
  700. data/test/core/symbol/test_bang.rb +0 -15
  701. data/test/core/symbol/test_chomp.rb +0 -22
  702. data/test/core/symbol/test_generate.rb +0 -20
  703. data/test/core/symbol/test_not.rb +0 -19
  704. data/test/core/symbol/test_op_div.rb +0 -15
  705. data/test/core/symbol/test_plain.rb +0 -19
  706. data/test/core/symbol/test_query.rb +0 -19
  707. data/test/core/symbol/test_setter.rb +0 -17
  708. data/test/core/symbol/test_succ.rb +0 -16
  709. data/test/core/symbol/test_thrown.rb +0 -22
  710. data/test/core/symbol/test_variablize.rb +0 -14
  711. data/test/core/time/test_ago.rb +0 -18
  712. data/test/core/time/test_change.rb +0 -17
  713. data/test/core/time/test_dst_adjustment.rb +0 -19
  714. data/test/core/time/test_elapse.rb +0 -15
  715. data/test/core/time/test_future.rb +0 -32
  716. data/test/core/time/test_hence.rb +0 -18
  717. data/test/core/time/test_in.rb +0 -18
  718. data/test/core/time/test_less.rb +0 -139
  719. data/test/core/time/test_past.rb +0 -32
  720. data/test/core/time/test_round_to.rb +0 -34
  721. data/test/core/time/test_set.rb +0 -43
  722. data/test/core/time/test_shift.rb +0 -135
  723. data/test/core/time/test_stamp.rb +0 -42
  724. data/test/core/time/test_to_time.rb +0 -15
  725. data/test/core/time/test_trunc.rb +0 -34
  726. data/test/core/unboundmethod/test_arguments.rb +0 -25
  727. data/test/standard/binding/test_block_exec.rb +0 -21
  728. data/test/standard/math/test_abs.rb +0 -13
  729. data/test/standard/math/test_acot.rb +0 -23
  730. data/test/standard/math/test_acoth.rb +0 -22
  731. data/test/standard/math/test_beta.rb +0 -19
  732. data/test/standard/math/test_ceil.rb +0 -22
  733. data/test/standard/math/test_cosec.rb +0 -19
  734. data/test/standard/math/test_cosech.rb +0 -19
  735. data/test/standard/math/test_cot.rb +0 -13
  736. data/test/standard/math/test_coth.rb +0 -13
  737. data/test/standard/math/test_distance.rb +0 -16
  738. data/test/standard/math/test_exp10.rb +0 -14
  739. data/test/standard/math/test_exp2.rb +0 -14
  740. data/test/standard/math/test_factorial.rb +0 -13
  741. data/test/standard/math/test_floor.rb +0 -23
  742. data/test/standard/math/test_gcd.rb +0 -18
  743. data/test/standard/math/test_lcm.rb +0 -13
  744. data/test/standard/math/test_median.rb +0 -17
  745. data/test/standard/math/test_percentile.rb +0 -13
  746. data/test/standard/math/test_pow.rb +0 -30
  747. data/test/standard/math/test_root.rb +0 -15
  748. data/test/standard/math/test_sec.rb +0 -19
  749. data/test/standard/math/test_sech.rb +0 -19
  750. data/test/standard/math/test_sign.rb +0 -20
  751. data/test/standard/math/test_sinc.rb +0 -15
  752. data/test/standard/math/test_srq.rb +0 -20
  753. data/test/standard/pathname/test_chdir.rb +0 -16
  754. data/test/standard/pathname/test_readline.rb +0 -23
  755. data/test/standard/test_argvector.rb +0 -64
  756. data/test/standard/test_cloneable.rb +0 -60
  757. data/test/standard/test_date.rb +0 -82
  758. data/test/standard/test_enumargs.rb +0 -105
  759. data/test/standard/test_equitable.rb +0 -46
  760. data/test/standard/test_instantiable.rb +0 -40
  761. data/test/standard/test_math.rb +0 -3
  762. data/test/standard/test_memoizable.rb +0 -42
  763. data/test/standard/test_multipliers.rb +0 -141
  764. data/test/standard/test_ostruct.rb +0 -191
  765. data/test/standard/test_random.rb +0 -241
  766. data/test/standard/test_shellwords.rb +0 -74
  767. data/test/standard/test_thread.rb +0 -24
  768. data/test/standard/test_timer.rb +0 -62
  769. data/test/standard/test_tuple.rb +0 -68
  770. data/test/standard/test_uri.rb +0 -50
@@ -1,18 +1,9 @@
1
1
  class File
2
2
 
3
- # Read in a file as binary data.
4
- #
5
- # Assuming we had a binary file 'binary.dat'.
6
- #
7
- # File.read_binary('binary.dat')
8
- #
9
- # CREDIT: George Moschovitis
10
-
3
+ # @deprecated Use File.binread instead (built-in since Ruby 1.9.3).
11
4
  def self.read_binary(fname)
12
- open(fname, 'rb') do |f|
13
- return f.read
14
- end
5
+ warn "File.read_binary is deprecated. Use File.binread instead.", uplevel: 1
6
+ binread(fname)
15
7
  end
16
8
 
17
9
  end
18
-
@@ -11,6 +11,6 @@ require_relative 'file/rootname.rb'
11
11
  require_relative 'file/sanitize.rb'
12
12
  require_relative 'file/split_all.rb'
13
13
  require_relative 'file/split_root.rb'
14
- require_relative 'file/write.rb'
14
+ #require_relative 'file/write.rb' # removed: now provided by Ruby
15
15
  require_relative 'file/writelines.rb'
16
16
 
@@ -1,12 +1,5 @@
1
1
  class Hash
2
2
 
3
- # Returns a new hash less the given keys.
4
- def except(*less_keys)
5
- hash = dup
6
- less_keys.each{ |k| hash.delete(k) }
7
- hash
8
- end
9
-
10
3
  # Replaces hash with new hash less the given keys.
11
4
  #
12
5
  # h = {:a=>1, :b=>2, :c=>3}
@@ -1,18 +1,17 @@
1
1
  class Hash
2
2
 
3
- # Similar to Hash#fetch but supports nested lookup and is `nil` safe.
3
+ # @deprecated Use Hash#dig instead (built-in since Ruby 2.3).
4
4
  #
5
- # {}.fetch_nested('anything','at','all') #=> nil
5
+ # Similar to Hash#dig but supports a block for missing keys,
6
+ # like Hash#fetch does. Ruby's #dig does not support a block.
6
7
  #
7
- # h = {'hello'=>{'world'=>42}}
8
- # h.fetch_nested(*['hello','world']) #=> 42
8
+ # TODO: Consider proposing block support for Hash#dig to Ruby core.
9
9
  #
10
- # CREDIT: T. Yamada and Sean Mackesey
11
-
12
- def fetch_nested(*keys)
10
+ def fetch_nested(*keys, &block)
11
+ warn "Hash#fetch_nested is deprecated. Use Hash#dig instead.", uplevel: 1
13
12
  begin
14
- keys.reduce(self){|accum, k| accum.fetch(k)}
15
- rescue (RUBY_VERSION<'1.9' ? IndexError : KeyError)
13
+ keys.reduce(self) { |accum, k| accum.fetch(k) }
14
+ rescue KeyError
16
15
  block_given? ? yield(*keys) : nil
17
16
  end
18
17
  end
@@ -1,4 +1,4 @@
1
- require 'facets/enumerable/mash'
1
+ require 'facets/enumerable/graph'
2
2
 
3
3
  class Hash
4
4
 
@@ -40,13 +40,13 @@ class Hash
40
40
 
41
41
  if block
42
42
  hash = dup.clear
43
- if block.arity.abs == 1
43
+ if block.arity == 2
44
44
  each_pair do |k, v|
45
- hash[block[k]] = v #hash[block[k] || k] = v
45
+ hash[block[k,v]] = v
46
46
  end
47
47
  else
48
48
  each_pair do |k, v|
49
- hash[block[k,v]] = v #hash[block[k,v] || k] = v
49
+ hash[block[k]] = v
50
50
  end
51
51
  end
52
52
  else
@@ -21,13 +21,13 @@ class Hash
21
21
 
22
22
  if block
23
23
  hash = dup.clear # to keep default_proc
24
- if block.arity.abs == 1
24
+ if block.arity == 2
25
25
  each_pair do |k, v|
26
- hash[k] = block[v] #hash[k] = block[v] || v
26
+ hash[k] = block[k,v]
27
27
  end
28
28
  else
29
29
  each_pair do |k, v|
30
- hash[k] = block[k,v] #hash[k] = block[k,v] || v
30
+ hash[k] = block[v]
31
31
  end
32
32
  end
33
33
  else
@@ -1,7 +1,7 @@
1
1
  class Hash
2
2
 
3
- # Constructs a Proc object from a hash such that the parameter
4
- # of the Proc is assigned the hash keys as attributes.
3
+ # Constructs a Proc that assigns the hash's key-value pairs as
4
+ # attributes on a given object.
5
5
  #
6
6
  # c = Class.new do
7
7
  # attr_accessor :a
@@ -9,20 +9,20 @@ class Hash
9
9
  #
10
10
  # h = {:a => 1}
11
11
  # o = c.new
12
- # h.to_proc.call(o)
12
+ # h.setter.call(o)
13
13
  # o.a #=> 1
14
14
  #
15
- # If +response+ is set to +true+, then assignment will only occur
16
- # if receiver responds_to? the writer method.
15
+ # If +safe+ is set to +true+, then assignment will only occur
16
+ # if the receiver responds_to? the writer method.
17
17
  #
18
18
  # CREDIT: Trans
19
19
 
20
- def to_proc(response=false)
21
- if response
20
+ def setter(safe=false)
21
+ if safe
22
22
  lambda do |o|
23
23
  self.each do |k,v|
24
24
  ke = "#{k}="
25
- o.__send__(ke, v) if respond_to?(ke)
25
+ o.__send__(ke, v) if o.respond_to?(ke)
26
26
  end
27
27
  end
28
28
  else
@@ -36,4 +36,3 @@ class Hash
36
36
  end
37
37
 
38
38
  end
39
-
@@ -1,25 +1,5 @@
1
1
  class Hash
2
2
 
3
- # Returns a new hash with only the given keys.
4
- #
5
- # h = {:a=>1, :b=>2, :c=>3}
6
- # h.slice(:a, :c) #=> {:a=>1, :c=>3}
7
- # h.slice(:a, :d) #=> {:a=>1}
8
- #
9
- def slice(*keep_keys)
10
- if block_given?
11
- each do |k, v|
12
- keep_keys << k if yield(k, v)
13
- end
14
- end
15
-
16
- hash = {}
17
- keep_keys.each do |key|
18
- hash[key] = fetch(key) if key?(key)
19
- end
20
- hash
21
- end
22
-
23
3
  # Replaces hash with a new hash having only the given keys.
24
4
  # This return the hash of keys removed.
25
5
  #
@@ -29,12 +9,6 @@ class Hash
29
9
  #
30
10
  # Returns a Hash of the removed pairs.
31
11
  def slice!(*keep_keys)
32
- if block_given?
33
- each do |k, v|
34
- keep_keys << k if yield(k, v)
35
- end
36
- end
37
-
38
12
  rejected = keys - keep_keys
39
13
  removed = {}
40
14
  rejected.each{ |k| removed[k] = delete(k) }
@@ -1,21 +1,14 @@
1
1
  class Hash
2
2
 
3
- # Iterate over hash updating just the keys.
3
+ # @deprecated Use Hash#transform_keys! (Ruby 2.5+) or Hash#rekey! instead.
4
4
  #
5
- # h = {:a=>1, :b=>2}
6
- # h.update_keys{ |k| "#{k}!" }
7
- # h #=> { "a!"=>1, "b!"=>2 }
8
- #
9
- # @author Trans
10
- # @author Evgeniy Dolzhenko (bug fix)
11
-
12
- def update_keys #:yield:
5
+ def update_keys(&block)
6
+ warn "Hash#update_keys is deprecated. Use Hash#transform_keys! or Hash#rekey! instead.", uplevel: 1
13
7
  if block_given?
14
- keys.each { |old_key| store(yield(old_key), delete(old_key)) }
8
+ transform_keys!(&block)
15
9
  else
16
10
  to_enum(:update_keys)
17
11
  end
18
12
  end
19
13
 
20
14
  end
21
-
@@ -1,20 +1,14 @@
1
1
  class Hash
2
2
 
3
- # Iterate over hash updating just the values.
3
+ # @deprecated Use Hash#transform_values! (Ruby 2.4+) or Hash#revalue! instead.
4
4
  #
5
- # h = {:a=>1, :b=>2}
6
- # h.update_values{ |v| v + 1 }
7
- # h #=> { :a=>2, :b=>3 }
8
- #
9
- # CREDIT: Trans
10
-
11
- def update_values #:yield:
5
+ def update_values(&block)
6
+ warn "Hash#update_values is deprecated. Use Hash#transform_values! or Hash#revalue! instead.", uplevel: 1
12
7
  if block_given?
13
- each{ |k,v| store(k, yield(v)) }
8
+ transform_values!(&block)
14
9
  else
15
10
  to_enum(:update_values)
16
11
  end
17
12
  end
18
13
 
19
14
  end
20
-
@@ -40,7 +40,7 @@ require_relative 'hash/swap.rb'
40
40
  require_relative 'hash/symbolize_keys.rb'
41
41
  require_relative 'hash/to_mod.rb'
42
42
  require_relative 'hash/to_options.rb'
43
- require_relative 'hash/to_proc.rb'
43
+ require_relative 'hash/setter.rb'
44
44
  require_relative 'hash/to_struct.rb'
45
45
  require_relative 'hash/traverse.rb'
46
46
  require_relative 'hash/update.rb'
@@ -199,19 +199,21 @@ module Indexable
199
199
  splice(-1)
200
200
  end
201
201
 
202
- # A shorting of "ends at", returns the
203
- # last index of the indexable object.
204
- # Returns nil if there are no elements.
202
+ # A shortening of "ends at". Returns the
203
+ # last index of the indexable object,
204
+ # or nil if there are no elements.
205
205
  #
206
206
  # [1,2,3,4,5].ends #=> 4
207
207
  #
208
- # This nearly equivalent to +size - 1+.
208
+ # This is nearly equivalent to +size - 1+.
209
209
  #
210
210
  def ends
211
211
  return nil if size == 0
212
212
  size - 1
213
213
  end
214
214
 
215
+ alias_method :last_index, :ends
216
+
215
217
  # Returns the positive ordinal index given
216
218
  # a cardinal position, 1 to n or -n to -1.
217
219
  #
@@ -99,8 +99,8 @@ class As #:nodoc:
99
99
  private :cache
100
100
  end
101
101
 
102
- # Privatize all methods except #binding an operators.
103
- private(*instance_methods.select { |m| m !~ /(^__|^\W|^binding$)/ })
102
+ # Privatize all methods except #binding, #object_id and operators.
103
+ private(*instance_methods.select { |m| m !~ /(^__|^\W|^binding$|^object_id$)/ })
104
104
 
105
105
  def initialize(subject, ancestor)
106
106
  @subject = subject
@@ -3,12 +3,7 @@ module Kernel
3
3
  alias_method :pp_callstack, :caller
4
4
  alias_method :pp_call_stack, :caller
5
5
 
6
- # Parse a caller string and break it into its components,
7
- # returning an array composed of:
8
- #
9
- # * file (String)
10
- # * lineno (Integer)
11
- # * method (Symbol)
6
+ # Returns the call stack as an array of [file, lineno, method] entries.
12
7
  #
13
8
  # For example, from irb
14
9
  #
@@ -16,27 +11,14 @@ module Kernel
16
11
  #
17
12
  # _produces_ ...
18
13
  #
19
- # [["(irb)", 2, :irb_binding],
20
- # ["/usr/lib/ruby/1.8/irb/workspace.rb", 52, :irb_binding],
21
- # ["/usr/lib/ruby/1.8/irb/workspace.rb", 52, nil]]
22
- #
23
- # Note: If the user decides to redefine caller() to output data
24
- # in a different format, _prior_ to requiring this, then the
25
- # results will be indeterminate.
14
+ # [["(irb)", 2, :irb_binding], ...]
26
15
  #
27
16
  # CREDIT: Trans
28
17
 
29
18
  def callstack(level = 1)
30
- call_str_array = pp_callstack(level)
31
- stack = []
32
- call_str_array.each{ |call_str|
33
- file, lineno, method = call_str.split(':')
34
- if method =~ /in `(.*)'/ then
35
- method = $1.intern()
36
- end
37
- stack << [file, lineno.to_i, method]
38
- }
39
- stack
19
+ caller_locations(level).map do |loc|
20
+ [loc.path, loc.lineno, loc.label&.to_sym]
21
+ end
40
22
  end
41
23
 
42
24
  alias_method :call_stack, :callstack
@@ -53,4 +35,3 @@ class Binding
53
35
 
54
36
  alias_method :call_stack, :callstack
55
37
  end
56
-
@@ -3,13 +3,13 @@ module Kernel
3
3
  # During this trying time when no one can get their
4
4
  # techie catchwords to stick to the refrigerator no
5
5
  # matter how hard they slap it with the enchanted
6
- # magnetic spatula, its good to know that the
6
+ # magnetic spatula, it's good to know that the
7
7
  # contrived phrases really do fly, graceful and
8
8
  # unclasped and bearing north toward chilled shrimp.
9
- # I know what my Halloween pumpkin is going to say.
9
+ # I know what my Hallowe'en pumpkin is going to say.
10
10
  #
11
- # NOTE: This method is not a common core extension and is not
12
- # loaded automatically when using `require 'facets'`.
11
+ # @deprecated Use singleton_class or meta_class instead.
12
+ # Kept in tribute to WhyTheLuckyStiff who coined the term.
13
13
  #
14
14
  # CREDIT: WhyTheLuckyStiff
15
15
  #
@@ -17,8 +17,8 @@ module Kernel
17
17
  # require 'facets/kernel/eigenclass'
18
18
  #
19
19
  def eigenclass
20
- (class << self; self; end)
20
+ warn "Kernel#eigenclass is deprecated. Use singleton_class or meta_class instead.", uplevel: 1
21
+ singleton_class
21
22
  end
22
23
 
23
24
  end
24
-
@@ -1,12 +1,9 @@
1
1
  module Kernel
2
2
 
3
- # TODO: Must reduce the number of singleton method methods.
4
-
5
- # Don't say it!
6
- #
3
+ # @deprecated Use singleton_class or meta_class instead.
7
4
  def extension
8
- class << self; self; end
5
+ warn "Kernel#extension is deprecated. Use singleton_class or meta_class instead.", uplevel: 1
6
+ singleton_class
9
7
  end
10
8
 
11
9
  end
12
-
@@ -0,0 +1,16 @@
1
+ require 'facets/functor'
2
+
3
+ module Kernel
4
+
5
+ # Returns a Functor that intercepts method calls, forwards
6
+ # them to self for side effects, and returns self. This is like
7
+ # a block-less version of #tap that allows method chaining.
8
+ #
9
+ # YAML.functor.load_file('foo.yml').load_file('bar.yml')
10
+ #
11
+
12
+ def functor
13
+ Functor.new{ |op,*a,&b| self.send(op, *a, &b); self }
14
+ end
15
+
16
+ end
@@ -1,26 +1,10 @@
1
1
  module Kernel
2
2
 
3
- # Kernel extension prefixed by instance_ which provide
4
- # internal (eg private) access to the object.
5
- # Kernel extension using instance_ prefix which is beneficial
6
- # to separation of metaprogramming from general programming.
7
- # object_ methods, in contrast to the instance_ methods,
8
- # do not access internal state.
9
-
10
- # Easy access to an object qua class, otherwise known
11
- # as the object's metaclass or singleton class. This
12
- # implemnetation alwasy returns the class, even if a
13
- # block is provided to eval against it...
14
- #
15
- # It is what it is.
16
- # But I think I like this one best.
17
- #
18
- # CREDIT: Trans
19
-
3
+ # @deprecated Use singleton_class or meta_class instead.
20
4
  def instance_class(&block)
21
- (class << self; self; end).module_eval(&block) if block
22
- (class << self; self; end)
5
+ warn "Kernel#instance_class is deprecated. Use singleton_class or meta_class instead.", uplevel: 1
6
+ singleton_class.module_eval(&block) if block
7
+ singleton_class
23
8
  end
24
9
 
25
10
  end
26
-
@@ -1,7 +1,9 @@
1
1
  module Kernel
2
2
 
3
- # Private send.
4
- alias_method :instance_send, :__send__
3
+ # @deprecated Use __send__ instead.
4
+ def instance_send(name, *args, &blk)
5
+ warn "Kernel#instance_send is deprecated. Use __send__ instead.", uplevel: 1
6
+ __send__(name, *args, &blk)
7
+ end
5
8
 
6
9
  end
7
-
@@ -1,25 +1,13 @@
1
1
  module Kernel
2
2
 
3
- unless private_method_defined?(:load_relative) # Will Ruby ever support out-of-the-box?
4
-
5
- # Load file from same dir as calling script.
6
- #
7
- # load_relative 'myscript'
8
- #
9
- # CREDIT: Paul Brannan, Pragmatic Programmers
10
- #
11
- def load_relative(relative_feature, safe=nil)
12
- c = caller.first
13
- fail "Can't parse #{c}" unless c.rindex(/:\d+(:in `.*')?$/)
14
- file = $` # File.dirname(c)
15
- if /\A\((.*)\)/ =~ file # eval, etc.
16
- raise LoadError, "require_relative is called in #{$1}"
17
- end
18
- absolute = File.expand_path(relative_feature, File.dirname(file))
19
- load absolute, safe
20
- end
21
-
3
+ # @deprecated Use require_relative for requires; for load, use
4
+ # an absolute path via File.expand_path.
5
+ def load_relative(relative_feature, safe=nil)
6
+ warn "Kernel#load_relative is deprecated.", uplevel: 1
7
+ loc = caller_locations(1, 1).first
8
+ file = loc.absolute_path || loc.path
9
+ absolute = File.expand_path(relative_feature, File.dirname(file))
10
+ load absolute, safe
22
11
  end
23
12
 
24
13
  end
25
-
@@ -1,35 +1,14 @@
1
- require 'facets/binding/eval'
2
- require 'facets/kernel/__method__'
3
-
4
1
  module Kernel
5
2
 
6
- # Global memo cache.
7
- $MEMO ||= {}
8
-
9
- # Memoize a method.
10
- #
11
- # class MemoExample
12
- # attr_accessor :a
13
- # def m
14
- # memo{ @a }
15
- # end
16
- # end
17
- #
18
- # ex = MemoExample.new
19
- #
20
- # ex.a = 10
21
- # ex.m #=> 10
22
- #
23
- # ex.a = 20
24
- # ex.m #=> 10
25
- #
26
- # NOTE: This method is not a common core extension and is not
27
- # loaded automatically when using <code>require 'facets'</code>.
3
+ # @deprecated Use Module#memoize instead, which provides proper
4
+ # per-object memoization without a global variable.
28
5
  #
29
6
  # @uncommon
30
7
  # require 'facets/kernel/memo'
31
8
  #
32
9
  def memo(*args, &block)
10
+ warn "Kernel#memo is deprecated. Use Module#memoize instead.", uplevel: 1
11
+ $MEMO ||= {}
33
12
  if args.empty?
34
13
  args = block.binding.eval('[self, __method__]')
35
14
  end
@@ -41,4 +20,3 @@ module Kernel
41
20
  end
42
21
 
43
22
  end
44
-
@@ -1,17 +1,21 @@
1
1
  module Kernel
2
2
 
3
- # Easy access to an object's "special" class, otherwise known as it's
4
- # singleton class, eigenclass, adhoc class or object-qua-class.
5
- #
3
+ # Easy access to an object's singleton class, with optional block eval.
4
+ #
5
+ # obj.meta_class #=> #<Class:obj>
6
+ # obj.meta_class { def foo; end }
7
+ #
8
+ # This is a concise alternative to Ruby's `singleton_class` that also
9
+ # accepts a block for class_eval.
10
+ #
6
11
  def meta_class(&block)
7
12
  if block_given?
8
- (class << self; self; end).class_eval(&block)
13
+ singleton_class.class_eval(&block)
9
14
  else
10
- (class << self; self; end)
15
+ singleton_class
11
16
  end
12
17
  end
13
18
 
14
- # The non-underscored form of #meta_class if faily common.
15
19
  alias_method :metaclass, :meta_class
16
20
 
17
21
  end
@@ -1,10 +1,9 @@
1
1
  module Kernel
2
2
 
3
- # Defines object_classas an alias of class.
4
- # This is an alternative to __class__, akin to
5
- # #object_id.
6
-
7
- alias_method :object_class, :class
3
+ # @deprecated Use __class__ instead.
4
+ def object_class
5
+ warn "Kernel#object_class is deprecated. Use __class__ instead.", uplevel: 1
6
+ self.class
7
+ end
8
8
 
9
9
  end
10
-
@@ -1,30 +1,9 @@
1
1
  module Kernel
2
2
 
3
- # Send only to public methods.
4
- #
5
- # class SendExample
6
- # private
7
- # def foo; end
8
- # end
9
- #
10
- # obj = SendExample.new
11
- #
12
- # expect NoMethodError do
13
- # obj.object_send(:foo)
14
- # end
15
- #
16
- # DEPRECATED: Use #public_send instead.
17
-
18
- alias object_send public_send rescue nil
19
-
20
- #def object_send(name, *args, &blk)
21
- # #instance_eval "self.#{name}(*args)"
22
- # if respond_to?(name)
23
- # __send__(name, *args, &blk)
24
- # else
25
- # __send__(:method_missing, name, *args, &blk)
26
- # end
27
- #end
3
+ # @deprecated Use public_send instead (built-in since Ruby 1.9.2).
4
+ def object_send(name, *args, &blk)
5
+ warn "Kernel#object_send is deprecated. Use public_send instead.", uplevel: 1
6
+ public_send(name, *args, &blk)
7
+ end
28
8
 
29
9
  end
30
-
@@ -1,31 +1,15 @@
1
1
  module Kernel
2
2
 
3
- # Easy access to an object qua class, otherwise known as the object's
4
- # singleton class. #qua_class can also take a block.
5
- #
6
- # string = "Hello World"
7
- #
8
- # string.qua_class do
9
- # def important
10
- # self + "!"
11
- # end
12
- # end
13
- #
14
- # string.important #=> "Hello World!"
15
- #
16
- # Yes, another one.
17
- #
18
- # CREDIT: Trans
19
-
3
+ # @deprecated Use singleton_class or meta_class instead.
20
4
  def qua_class(&block)
5
+ warn "Kernel#qua_class is deprecated. Use singleton_class or meta_class instead.", uplevel: 1
21
6
  if block_given?
22
- (class << self; self; end).class_eval(&block)
7
+ singleton_class.class_eval(&block)
23
8
  else
24
- (class << self; self; end)
9
+ singleton_class
25
10
  end
26
11
  end
27
12
 
28
- # The +qua_class+ method can also be written +quaclass+.
29
13
  alias_method :quaclass, :qua_class
30
14
 
31
15
  end