facets 3.1.0 → 3.2.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 (755) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY.md +141 -0
  3. data/LICENSE.txt +21 -343
  4. data/README.md +26 -19
  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/binding/caller.rb +8 -2
  21. data/lib/core/facets/binding/op_get.rb +7 -11
  22. data/lib/core/facets/binding/self.rb +4 -10
  23. data/lib/core/facets/boolean.rb +1 -1
  24. data/lib/core/facets/class/descendants.rb +0 -2
  25. data/lib/core/facets/class.rb +2 -2
  26. data/lib/core/facets/comparable/bound.rb +13 -1
  27. data/lib/core/facets/comparable/clip.rb +3 -32
  28. data/lib/core/facets/denumerable.rb +0 -3
  29. data/lib/core/facets/dir/find.rb +20 -0
  30. data/lib/core/facets/dir/recurse.rb +8 -26
  31. data/lib/core/facets/enumerable/compact_map.rb +2 -12
  32. data/lib/core/facets/enumerable/defer.rb +2 -13
  33. data/lib/core/facets/enumerable/each_by.rb +0 -2
  34. data/lib/core/facets/enumerable/frequency.rb +2 -2
  35. data/lib/core/facets/enumerable/hinge.rb +3 -4
  36. data/lib/core/facets/enumerable/map_with_index.rb +3 -6
  37. data/lib/core/facets/enumerable/mash.rb +5 -28
  38. data/lib/core/facets/enumerable/uniq_by.rb +4 -8
  39. data/lib/core/facets/enumerable/with_position.rb +58 -0
  40. data/lib/core/facets/enumerator.rb +2 -75
  41. data/lib/core/facets/exception/error_print.rb +6 -71
  42. data/lib/core/facets/file/null.rb +3 -15
  43. data/lib/core/facets/file/read_binary.rb +3 -12
  44. data/lib/core/facets/hash/except.rb +0 -7
  45. data/lib/core/facets/hash/fetch_nested.rb +8 -9
  46. data/lib/core/facets/hash/graph.rb +1 -1
  47. data/lib/core/facets/hash/rekey.rb +3 -3
  48. data/lib/core/facets/hash/revalue.rb +3 -3
  49. data/lib/core/facets/hash/{to_proc.rb → setter.rb} +8 -9
  50. data/lib/core/facets/hash/slice.rb +0 -26
  51. data/lib/core/facets/hash/update_keys.rb +4 -11
  52. data/lib/core/facets/hash/update_values.rb +4 -10
  53. data/lib/core/facets/indexable.rb +6 -4
  54. data/lib/core/facets/kernel/callstack.rb +5 -24
  55. data/lib/core/facets/kernel/eigenclass.rb +6 -6
  56. data/lib/core/facets/kernel/extension.rb +3 -6
  57. data/lib/core/facets/kernel/functor.rb +16 -0
  58. data/lib/core/facets/kernel/instance_class.rb +4 -20
  59. data/lib/core/facets/kernel/instance_send.rb +5 -3
  60. data/lib/core/facets/kernel/load_relative.rb +8 -20
  61. data/lib/core/facets/kernel/memo.rb +4 -26
  62. data/lib/core/facets/kernel/meta_class.rb +10 -6
  63. data/lib/core/facets/kernel/object_class.rb +5 -6
  64. data/lib/core/facets/kernel/object_send.rb +5 -26
  65. data/lib/core/facets/kernel/qua_class.rb +4 -20
  66. data/lib/core/facets/kernel/require_all.rb +8 -20
  67. data/lib/core/facets/kernel/returning.rb +3 -19
  68. data/lib/core/facets/kernel/tap.rb +3 -36
  69. data/lib/core/facets/kernel/tee.rb +2 -0
  70. data/lib/core/facets/kernel/try.rb +38 -28
  71. data/lib/core/facets/kernel.rb +2 -4
  72. data/lib/core/facets/lazy.rb +1 -1
  73. data/lib/core/facets/module/alias_method_chain.rb +4 -43
  74. data/lib/core/facets/module/attr_setter.rb +3 -2
  75. data/lib/core/facets/module/can.rb +5 -16
  76. data/lib/core/facets/module/class_extend.rb +2 -2
  77. data/lib/core/facets/object/dup.rb +0 -46
  78. data/lib/core/facets/proc/bind.rb +0 -2
  79. data/lib/core/facets/proc/compose.rb +7 -28
  80. data/lib/core/facets/proc/to_method.rb +0 -1
  81. data/lib/core/facets/proc/update.rb +8 -1
  82. data/lib/core/facets/range/intersection.rb +42 -0
  83. data/lib/core/facets/range/nudge.rb +6 -8
  84. data/lib/core/facets/string/ascii_only.rb +2 -2
  85. data/lib/core/facets/string/cleanlines.rb +0 -2
  86. data/lib/core/facets/string/dashcase.rb +21 -0
  87. data/lib/core/facets/string/lchomp.rb +7 -14
  88. data/lib/core/facets/string/newlines.rb +0 -2
  89. data/lib/core/facets/string/snakecase.rb +12 -5
  90. data/lib/core/facets/string/words.rb +13 -1
  91. data/lib/core/facets/string.rb +0 -1
  92. data/lib/core/facets/struct/attributes.rb +2 -3
  93. data/lib/core/facets/time/trunc.rb +12 -5
  94. data/lib/core/facets/unboundmethod/arguments.rb +1 -0
  95. data/lib/core/facets/version.rb +1 -17
  96. data/lib/core/facets.rb +0 -1
  97. data/lib/standard/facets/argvector.rb +1 -1
  98. data/lib/standard/facets/cgi/escape_html.rb +14 -25
  99. data/lib/standard/facets/cloneable.rb +4 -51
  100. data/lib/standard/facets/continuation.rb +2 -56
  101. data/lib/standard/facets/crypt3.rb +126 -0
  102. data/lib/standard/facets/date/cmp.rb +32 -0
  103. data/lib/standard/facets/date.rb +1 -0
  104. data/lib/standard/facets/digest.rb +0 -1
  105. data/lib/standard/facets/fileutils/cp_rx.rb +0 -2
  106. data/lib/standard/facets/fileutils/ln_r.rb +0 -1
  107. data/lib/standard/facets/find/select.rb +0 -2
  108. data/lib/standard/facets/getoptlong.rb +3 -59
  109. data/lib/standard/facets/load_monitor.rb +2 -26
  110. data/lib/standard/facets/math/gini_coefficient.rb +5 -4
  111. data/lib/standard/facets/math/kldivergence.rb +8 -7
  112. data/lib/standard/facets/math/percentile.rb +1 -1
  113. data/lib/standard/facets/multiton.rb +1 -1
  114. data/lib/standard/facets/ostruct/initialize.rb +4 -19
  115. data/lib/standard/facets/ostruct/to_ostruct.rb +2 -1
  116. data/lib/standard/facets/ostruct.rb +0 -88
  117. data/lib/standard/facets/pathname/empty.rb +2 -10
  118. data/lib/standard/facets/pathname/glob.rb +19 -12
  119. data/lib/standard/facets/pathname/null.rb +3 -14
  120. data/lib/standard/facets/random.rb +47 -133
  121. data/lib/standard/facets/tuple.rb +2 -4
  122. data/lib/standard/facets/uri.rb +3 -2
  123. metadata +29 -1172
  124. data/.index +0 -80
  125. data/.yardopts +0 -10
  126. data/NOTICE.rdoc +0 -167
  127. data/demo/applique/assertion_framework.rb +0 -1
  128. data/demo/applique/file_helpers.rb +0 -34
  129. data/demo/core/array/after.md +0 -13
  130. data/demo/core/array/arrange.md +0 -17
  131. data/demo/core/array/before.md +0 -14
  132. data/demo/core/array/collapse.md +0 -15
  133. data/demo/core/array/collisions.md +0 -30
  134. data/demo/core/array/commonality.md +0 -31
  135. data/demo/core/array/conjoin.md +0 -47
  136. data/demo/core/array/contains.md +0 -9
  137. data/demo/core/array/delete_unless.md +0 -13
  138. data/demo/core/array/delete_values.md +0 -10
  139. data/demo/core/array/delete_values_at.md +0 -15
  140. data/demo/core/array/divide.md +0 -14
  141. data/demo/core/array/duplicates.md +0 -14
  142. data/demo/core/array/each_overlap.md +0 -12
  143. data/demo/core/array/each_pair.md +0 -13
  144. data/demo/core/array/each_value.md +0 -12
  145. data/demo/core/array/entropy.md +0 -13
  146. data/demo/core/array/extract_options.md +0 -13
  147. data/demo/core/array/first.md +0 -11
  148. data/demo/core/array/from.md +0 -11
  149. data/demo/core/array/ideal_entropy.md +0 -11
  150. data/demo/core/array/intersection.md +0 -11
  151. data/demo/core/array/last.md +0 -11
  152. data/demo/core/array/median.md +0 -23
  153. data/demo/core/array/merge.md +0 -15
  154. data/demo/core/array/missing.md +0 -10
  155. data/demo/core/array/mode.md +0 -9
  156. data/demo/core/array/nonuniq.md +0 -16
  157. data/demo/core/array/not_empty.md +0 -8
  158. data/demo/core/array/occur.md +0 -18
  159. data/demo/core/array/occurrence.md +0 -13
  160. data/demo/core/array/only.md +0 -9
  161. data/demo/core/array/op_pow.md +0 -10
  162. data/demo/core/array/pad.md +0 -28
  163. data/demo/core/array/peek.md +0 -10
  164. data/demo/core/array/poke.md +0 -15
  165. data/demo/core/array/probability +0 -8
  166. data/demo/core/array/pull.md +0 -10
  167. data/demo/core/array/recurse.md +0 -10
  168. data/demo/core/array/recursively.md +0 -20
  169. data/demo/core/array/reject_values.md +0 -10
  170. data/demo/core/array/splice.md +0 -14
  171. data/demo/core/array/split.md +0 -13
  172. data/demo/core/array/squeeze.md +0 -14
  173. data/demo/core/array/step.md +0 -16
  174. data/demo/core/array/store.md +0 -9
  175. data/demo/core/array/thru.md +0 -12
  176. data/demo/core/array/to_h.md +0 -11
  177. data/demo/core/array/traverse.md +0 -20
  178. data/demo/core/array/uniq_by.md +0 -16
  179. data/demo/core/array/unique_permutation.md +0 -14
  180. data/demo/core/array/zip.md +0 -8
  181. data/demo/core/binding/caller.md +0 -57
  182. data/demo/core/binding/defined.md +0 -10
  183. data/demo/core/binding/opvars.md +0 -16
  184. data/demo/core/binding/self.md +0 -6
  185. data/demo/core/class/descendants.md +0 -13
  186. data/demo/core/class/to_proc.md +0 -11
  187. data/demo/core/comparable/at_least.md +0 -11
  188. data/demo/core/comparable/at_most.md +0 -11
  189. data/demo/core/comparable/bound.md +0 -13
  190. data/demo/core/comparable/cap.md +0 -11
  191. data/demo/core/comparable/clip.md +0 -29
  192. data/demo/core/comparable/cmp.md +0 -18
  193. data/demo/core/comparable/op_get.md +0 -32
  194. data/demo/core/dir/ascend.md +0 -24
  195. data/demo/core/dir/descend.md +0 -16
  196. data/demo/core/dir/multiglob.md +0 -41
  197. data/demo/core/dir/parent.md +0 -6
  198. data/demo/core/dir/recurse.md +0 -41
  199. data/demo/core/exception/detail.md +0 -19
  200. data/demo/core/facets.md +0 -6
  201. data/demo/core/filetest/root.md +0 -13
  202. data/demo/core/hash/recursively.md +0 -21
  203. data/demo/core/indexable.md +0 -95
  204. data/demo/core/integer/bitmask.md +0 -46
  205. data/demo/core/integer/factorial.md +0 -10
  206. data/demo/core/integer/length.md +0 -7
  207. data/demo/core/integer/multiple.md +0 -12
  208. data/demo/core/integer/of.md +0 -11
  209. data/demo/core/integer/ordinal.md +0 -11
  210. data/demo/core/integer/times_collect.md +0 -9
  211. data/demo/core/matchdata/match.md +0 -7
  212. data/demo/core/matchdata/matchset.md +0 -7
  213. data/demo/core/matchdata/matchtree.md +0 -10
  214. data/demo/core/module/cattr.md +0 -43
  215. data/demo/core/module/class_extend.md +0 -64
  216. data/demo/core/module/class_inheritor.md +0 -126
  217. data/demo/core/module/copy_inheritor.md +0 -30
  218. data/demo/core/module/include_as.md +0 -31
  219. data/demo/core/module/method_space.md +0 -24
  220. data/demo/core/string/acronym.md +0 -9
  221. data/demo/core/string/align.md +0 -34
  222. data/demo/core/string/ascii_only.md +0 -37
  223. data/demo/core/string/bracket.md +0 -35
  224. data/demo/core/string/camelcase.md +0 -47
  225. data/demo/core/string/capitalized.md +0 -27
  226. data/demo/core/string/characters.md +0 -11
  227. data/demo/core/string/cleanlines.md +0 -10
  228. data/demo/core/string/cleave.md +0 -49
  229. data/demo/core/string/compress_lines.md +0 -22
  230. data/demo/core/string/crypt.md +0 -15
  231. data/demo/core/string/divide.md +0 -9
  232. data/demo/core/string/each_word.md +0 -11
  233. data/demo/core/string/edit_distance.md +0 -15
  234. data/demo/core/string/exclude.md +0 -15
  235. data/demo/core/string/expand_tabs.md +0 -69
  236. data/demo/core/string/fold.md +0 -14
  237. data/demo/core/string/indent.md +0 -65
  238. data/demo/core/string/index_all.md +0 -14
  239. data/demo/core/string/interpolate.md +0 -8
  240. data/demo/core/string/lchomp.md +0 -14
  241. data/demo/core/string/line_wrap.md +0 -7
  242. data/demo/core/string/lowercase.md +0 -12
  243. data/demo/core/string/methodize.md +0 -22
  244. data/demo/core/string/modulize.md +0 -22
  245. data/demo/core/string/mscan.md +0 -10
  246. data/demo/core/string/natcmp.md +0 -10
  247. data/demo/core/string/nchar.md +0 -9
  248. data/demo/core/string/newlines.md +0 -9
  249. data/demo/core/string/number.md +0 -27
  250. data/demo/core/string/op_div.md +0 -10
  251. data/demo/core/string/op_sub.md +0 -7
  252. data/demo/core/string/pathize.md +0 -22
  253. data/demo/core/string/quote.md +0 -20
  254. data/demo/core/string/random.md +0 -25
  255. data/demo/core/string/range.md +0 -19
  256. data/demo/core/string/remove.md +0 -33
  257. data/demo/core/string/rewrite.md +0 -9
  258. data/demo/core/string/shatter.md +0 -9
  259. data/demo/core/string/similarity.md +0 -12
  260. data/demo/core/string/snakecase.md +0 -14
  261. data/demo/core/string/splice.md +0 -28
  262. data/demo/core/string/squish.md +0 -27
  263. data/demo/core/string/store.md +0 -10
  264. data/demo/core/string/subtract.md +0 -8
  265. data/demo/core/string/titlecase.md +0 -8
  266. data/demo/core/string/to_re.md +0 -22
  267. data/demo/core/string/trim.md +0 -92
  268. data/demo/core/string/unbracket.md +0 -24
  269. data/demo/core/string/underscore.md +0 -17
  270. data/demo/core/string/unfold.md +0 -9
  271. data/demo/core/string/unindent.md +0 -65
  272. data/demo/core/string/unquote.md +0 -6
  273. data/demo/core/string/uppercase.md +0 -15
  274. data/demo/core/string/variablize.md +0 -7
  275. data/demo/core/string/word_wrap.md +0 -54
  276. data/demo/core/string/words.md +0 -13
  277. data/demo/core/string/xor.md +0 -8
  278. data/demo/standard/02_cloneable.rdoc +0 -46
  279. data/demo/standard/03_enumargs.rdoc +0 -75
  280. data/demo/standard/04_equitable.rdoc +0 -35
  281. data/demo/standard/05_instantiable.rdoc +0 -42
  282. data/demo/standard/basic_object.rdoc +0 -22
  283. data/demo/standard/memoizable.rdoc +0 -134
  284. data/demo/standard/mulititon.rdoc +0 -156
  285. data/lib/core/facets/applique/file_helpers.rb +0 -33
  286. data/lib/core/facets/array/intersection.rb +0 -25
  287. data/lib/core/facets/array/op_pow.rb +0 -12
  288. data/lib/core/facets/array/to_h.rb +0 -19
  289. data/lib/core/facets/class/singleton.rb +0 -1
  290. data/lib/core/facets/class/singleton_class.rb +0 -16
  291. data/lib/core/facets/class/subclasses.rb +0 -28
  292. data/lib/core/facets/dir/each_child.rb +0 -16
  293. data/lib/core/facets/enumerable/filter.rb +0 -33
  294. data/lib/core/facets/enumerable/sum.rb +0 -40
  295. data/lib/core/facets/exception/set_message.rb +0 -10
  296. data/lib/core/facets/file/write.rb +0 -24
  297. data/lib/core/facets/fixnum.rb +0 -7
  298. data/lib/core/facets/kernel/__dir__.rb +0 -28
  299. data/lib/core/facets/kernel/constant.rb +0 -22
  300. data/lib/core/facets/kernel/instance_exec.rb +0 -47
  301. data/lib/core/facets/kernel/p.rb +0 -24
  302. data/lib/core/facets/kernel/singleton_class.rb +0 -10
  303. data/lib/core/facets/matchdata/match.rb +0 -15
  304. data/lib/core/facets/method/curry.rb +0 -13
  305. data/lib/core/facets/numeric/negative.rb +0 -1
  306. data/lib/core/facets/numeric/positive.rb +0 -15
  307. data/lib/core/facets/object/itself.rb +0 -16
  308. data/lib/core/facets/object/try_dup.rb +0 -1
  309. data/lib/core/facets/process/daemon.rb +0 -32
  310. data/lib/core/facets/range/overlap.rb +0 -12
  311. data/lib/core/facets/string/characters.rb +0 -13
  312. data/lib/core/facets/string/crypt.rb +0 -22
  313. data/lib/core/facets/symbol/succ.rb +0 -23
  314. data/lib/core/facets.yml +0 -80
  315. data/lib/standard/facets/basicobject.rb +0 -75
  316. data/lib/standard/facets/digest/base64digest.rb +0 -45
  317. data/lib/standard/facets/ostruct/each.rb +0 -11
  318. data/lib/standard/facets/ostruct/merge.rb +0 -21
  319. data/lib/standard/facets/ostruct/op_fetch.rb +0 -29
  320. data/lib/standard/facets/ostruct/op_store.rb +0 -1
  321. data/lib/standard/facets/ostruct/to_h.rb +0 -10
  322. data/test/core/array/test_arrange.rb +0 -37
  323. data/test/core/array/test_average.rb +0 -16
  324. data/test/core/array/test_before.rb +0 -48
  325. data/test/core/array/test_collapse.rb +0 -23
  326. data/test/core/array/test_commonality.rb +0 -35
  327. data/test/core/array/test_conjoin.rb +0 -50
  328. data/test/core/array/test_contains.rb +0 -14
  329. data/test/core/array/test_delete.rb +0 -42
  330. data/test/core/array/test_delete_unless.rb +0 -17
  331. data/test/core/array/test_delete_values.rb +0 -31
  332. data/test/core/array/test_divide.rb +0 -24
  333. data/test/core/array/test_duplicates.rb +0 -29
  334. data/test/core/array/test_each_overlap.rb +0 -31
  335. data/test/core/array/test_each_pair.rb +0 -16
  336. data/test/core/array/test_each_value.rb +0 -16
  337. data/test/core/array/test_entropy.rb +0 -23
  338. data/test/core/array/test_extract_options.rb +0 -28
  339. data/test/core/array/test_first.rb +0 -17
  340. data/test/core/array/test_from.rb +0 -42
  341. data/test/core/array/test_intersection.rb +0 -19
  342. data/test/core/array/test_last.rb +0 -17
  343. data/test/core/array/test_median.rb +0 -27
  344. data/test/core/array/test_merge.rb +0 -27
  345. data/test/core/array/test_missing.rb +0 -12
  346. data/test/core/array/test_mode.rb +0 -17
  347. data/test/core/array/test_nonuniq.rb +0 -25
  348. data/test/core/array/test_not_empty.rb +0 -17
  349. data/test/core/array/test_occur.rb +0 -52
  350. data/test/core/array/test_occurrence.rb +0 -20
  351. data/test/core/array/test_only.rb +0 -17
  352. data/test/core/array/test_op_pow.rb +0 -13
  353. data/test/core/array/test_pad.rb +0 -40
  354. data/test/core/array/test_peek.rb +0 -28
  355. data/test/core/array/test_poke.rb +0 -21
  356. data/test/core/array/test_probability.rb +0 -18
  357. data/test/core/array/test_pull.rb +0 -15
  358. data/test/core/array/test_recurse.rb +0 -40
  359. data/test/core/array/test_recursively.rb +0 -33
  360. data/test/core/array/test_reject_values.rb +0 -17
  361. data/test/core/array/test_splice.rb +0 -21
  362. data/test/core/array/test_split.rb +0 -22
  363. data/test/core/array/test_squeeze.rb +0 -22
  364. data/test/core/array/test_standard_deviation.rb +0 -18
  365. data/test/core/array/test_step.rb +0 -28
  366. data/test/core/array/test_store.rb +0 -22
  367. data/test/core/array/test_to_h.rb +0 -14
  368. data/test/core/array/test_traverse.rb +0 -26
  369. data/test/core/array/test_uniq_by.rb +0 -24
  370. data/test/core/array/test_unique_permutation.rb +0 -23
  371. data/test/core/array/test_variance.rb +0 -17
  372. data/test/core/array/test_zip.rb +0 -13
  373. data/test/core/binding/test_caller.rb +0 -69
  374. data/test/core/binding/test_defined.rb +0 -18
  375. data/test/core/binding/test_op.rb +0 -24
  376. data/test/core/binding/test_self.rb +0 -16
  377. data/test/core/class/test_descendents.rb +0 -19
  378. data/test/core/class/test_preallocate.rb +0 -32
  379. data/test/core/class/test_subclasses.rb +0 -20
  380. data/test/core/class/test_to_proc.rb +0 -16
  381. data/test/core/comparable/test_bound.rb +0 -32
  382. data/test/core/comparable/test_cap.rb +0 -36
  383. data/test/core/comparable/test_clip.rb +0 -31
  384. data/test/core/comparable/test_cmp.rb +0 -16
  385. data/test/core/comparable/test_op_get.rb +0 -61
  386. data/test/core/denumerable_tc.rb +0 -194
  387. data/test/core/dir/test_ascend.rb +0 -40
  388. data/test/core/dir/test_descend.rb +0 -24
  389. data/test/core/dir/test_each_child.rb +0 -22
  390. data/test/core/dir/test_multiglob.rb +0 -25
  391. data/test/core/dir/test_parent.rb +0 -14
  392. data/test/core/dir/test_recurse.rb +0 -26
  393. data/test/core/enumerable/test_accumulate.rb +0 -44
  394. data/test/core/enumerable/test_cluster.rb +0 -36
  395. data/test/core/enumerable/test_compact_map.rb +0 -32
  396. data/test/core/enumerable/test_defer.rb +0 -27
  397. data/test/core/enumerable/test_each_by.rb +0 -49
  398. data/test/core/enumerable/test_every.rb +0 -33
  399. data/test/core/enumerable/test_ewise.rb +0 -30
  400. data/test/core/enumerable/test_exclude.rb +0 -15
  401. data/test/core/enumerable/test_expand.rb +0 -15
  402. data/test/core/enumerable/test_filter.rb +0 -19
  403. data/test/core/enumerable/test_find_yield.rb +0 -96
  404. data/test/core/enumerable/test_frequency.rb +0 -15
  405. data/test/core/enumerable/test_graph.rb +0 -42
  406. data/test/core/enumerable/test_hashify.rb +0 -113
  407. data/test/core/enumerable/test_key_by.rb +0 -22
  408. data/test/core/enumerable/test_map_by.rb +0 -27
  409. data/test/core/enumerable/test_map_send.rb +0 -26
  410. data/test/core/enumerable/test_map_with_index.rb +0 -23
  411. data/test/core/enumerable/test_mash.rb +0 -17
  412. data/test/core/enumerable/test_modulate.rb +0 -17
  413. data/test/core/enumerable/test_occur.rb +0 -40
  414. data/test/core/enumerable/test_only.rb +0 -40
  415. data/test/core/enumerable/test_per.rb +0 -19
  416. data/test/core/enumerable/test_purge.rb +0 -22
  417. data/test/core/enumerable/test_recursively.rb +0 -33
  418. data/test/core/enumerable/test_squeeze.rb +0 -35
  419. data/test/core/enumerable/test_sum.rb +0 -40
  420. data/test/core/enumerable/test_uniq_by.rb +0 -25
  421. data/test/core/enumerable/test_visit.rb +0 -14
  422. data/test/core/enumerator/lazy/test_squeeze.rb +0 -33
  423. data/test/core/enumerator/test_fx.rb +0 -16
  424. data/test/core/enumerator/test_new.rb +0 -21
  425. data/test/core/enumerator_tc.rb +0 -40
  426. data/test/core/exception/test_detail.rb +0 -15
  427. data/test/core/exception/test_raised.rb +0 -15
  428. data/test/core/exception/test_suppress.rb +0 -16
  429. data/test/core/file/test_append.rb +0 -22
  430. data/test/core/file/test_create.rb +0 -17
  431. data/test/core/file/test_ext.rb +0 -31
  432. data/test/core/file/test_null.rb +0 -14
  433. data/test/core/file/test_read_binary.rb +0 -19
  434. data/test/core/file/test_read_list.rb +0 -16
  435. data/test/core/file/test_rewrite.rb +0 -35
  436. data/test/core/file/test_rootname.rb +0 -13
  437. data/test/core/file/test_sanitize.rb +0 -32
  438. data/test/core/file/test_split_all.rb +0 -14
  439. data/test/core/file/test_write.rb +0 -22
  440. data/test/core/file/test_writelines.rb +0 -21
  441. data/test/core/filetest/test_root.rb +0 -14
  442. data/test/core/functor_tc.rb +0 -41
  443. data/test/core/hash/test_alias.rb +0 -25
  444. data/test/core/hash/test_argumentize.rb +0 -23
  445. data/test/core/hash/test_at.rb +0 -16
  446. data/test/core/hash/test_autonew.rb +0 -22
  447. data/test/core/hash/test_collate.rb +0 -61
  448. data/test/core/hash/test_count.rb +0 -23
  449. data/test/core/hash/test_data.rb +0 -35
  450. data/test/core/hash/test_dearray_values.rb +0 -26
  451. data/test/core/hash/test_deep_merge.rb +0 -31
  452. data/test/core/hash/test_deep_rekey.rb +0 -131
  453. data/test/core/hash/test_delete_at.rb +0 -18
  454. data/test/core/hash/test_delete_unless.rb +0 -18
  455. data/test/core/hash/test_delete_values.rb +0 -30
  456. data/test/core/hash/test_diff.rb +0 -16
  457. data/test/core/hash/test_each_with_key.rb +0 -16
  458. data/test/core/hash/test_expect.rb +0 -34
  459. data/test/core/hash/test_fetch_nested.rb +0 -24
  460. data/test/core/hash/test_graph.rb +0 -40
  461. data/test/core/hash/test_insert.rb +0 -20
  462. data/test/core/hash/test_inverse.rb +0 -20
  463. data/test/core/hash/test_join.rb +0 -32
  464. data/test/core/hash/test_keys.rb +0 -41
  465. data/test/core/hash/test_new_with.rb +0 -17
  466. data/test/core/hash/test_op_add.rb +0 -17
  467. data/test/core/hash/test_op_and.rb +0 -31
  468. data/test/core/hash/test_op_mul.rb +0 -17
  469. data/test/core/hash/test_op_or.rb +0 -17
  470. data/test/core/hash/test_op_push.rb +0 -34
  471. data/test/core/hash/test_op_sub.rb +0 -28
  472. data/test/core/hash/test_recurse.rb +0 -39
  473. data/test/core/hash/test_recursively.rb +0 -71
  474. data/test/core/hash/test_rekey.rb +0 -119
  475. data/test/core/hash/test_replace_each.rb +0 -17
  476. data/test/core/hash/test_revalue.rb +0 -98
  477. data/test/core/hash/test_reverse_merge.rb +0 -39
  478. data/test/core/hash/test_slice.rb +0 -36
  479. data/test/core/hash/test_stringify_keys.rb +0 -26
  480. data/test/core/hash/test_swap.rb +0 -15
  481. data/test/core/hash/test_symbolize_keys.rb +0 -26
  482. data/test/core/hash/test_to_mod.rb +0 -24
  483. data/test/core/hash/test_to_proc.rb +0 -23
  484. data/test/core/hash/test_to_struct.rb +0 -22
  485. data/test/core/hash/test_traverse.rb +0 -29
  486. data/test/core/hash/test_update_each.rb +0 -16
  487. data/test/core/hash/test_update_keys.rb +0 -21
  488. data/test/core/hash/test_update_values.rb +0 -15
  489. data/test/core/hash/test_weave.rb +0 -18
  490. data/test/core/hash/test_zip.rb +0 -16
  491. data/test/core/indexable_tc.rb +0 -226
  492. data/test/core/integer/test_bitmask.rb +0 -73
  493. data/test/core/integer/test_factorial.rb +0 -30
  494. data/test/core/integer/test_multiple.rb +0 -16
  495. data/test/core/integer/test_of.rb +0 -36
  496. data/test/core/integer/test_ordinal.rb +0 -27
  497. data/test/core/kernel/test_as.rb +0 -74
  498. data/test/core/kernel/test_ask.rb +0 -9
  499. data/test/core/kernel/test_assign.rb +0 -61
  500. data/test/core/kernel/test_assign_from.rb +0 -48
  501. data/test/core/kernel/test_attr_singleton.rb +0 -51
  502. data/test/core/kernel/test_blank.rb +0 -103
  503. data/test/core/kernel/test_callstack.rb +0 -21
  504. data/test/core/kernel/test_class.rb +0 -14
  505. data/test/core/kernel/test_complete.rb +0 -19
  506. data/test/core/kernel/test_constant.rb +0 -18
  507. data/test/core/kernel/test_d.rb +0 -10
  508. data/test/core/kernel/test_deep_clone.rb +0 -31
  509. data/test/core/kernel/test_deep_copy.rb +0 -15
  510. data/test/core/kernel/test_dir.rb +0 -24
  511. data/test/core/kernel/test_disable_warnings.rb +0 -38
  512. data/test/core/kernel/test_ergo.rb +0 -34
  513. data/test/core/kernel/test_extension.rb +0 -18
  514. data/test/core/kernel/test_get.rb +0 -54
  515. data/test/core/kernel/test_here.rb +0 -13
  516. data/test/core/kernel/test_hierarchical_send.rb +0 -48
  517. data/test/core/kernel/test_in.rb +0 -14
  518. data/test/core/kernel/test_instance_assign.rb +0 -19
  519. data/test/core/kernel/test_instance_class.rb +0 -15
  520. data/test/core/kernel/test_instance_extract.rb +0 -28
  521. data/test/core/kernel/test_instance_replace.rb +0 -47
  522. data/test/core/kernel/test_instance_send.rb +0 -26
  523. data/test/core/kernel/test_maybe.rb +0 -13
  524. data/test/core/kernel/test_meta_alias.rb +0 -18
  525. data/test/core/kernel/test_meta_class.rb +0 -33
  526. data/test/core/kernel/test_meta_def.rb +0 -15
  527. data/test/core/kernel/test_meta_eval.rb +0 -18
  528. data/test/core/kernel/test_method.rb +0 -20
  529. data/test/core/kernel/test_not.rb +0 -51
  530. data/test/core/kernel/test_not_nil.rb +0 -25
  531. data/test/core/kernel/test_object_class.rb +0 -22
  532. data/test/core/kernel/test_object_hexid.rb +0 -20
  533. data/test/core/kernel/test_object_send.rb +0 -25
  534. data/test/core/kernel/test_presence.rb +0 -37
  535. data/test/core/kernel/test_qua_class.rb +0 -25
  536. data/test/core/kernel/test_require_all.rb +0 -11
  537. data/test/core/kernel/test_respond.rb +0 -38
  538. data/test/core/kernel/test_returning.rb +0 -17
  539. data/test/core/kernel/test_silence.rb +0 -24
  540. data/test/core/kernel/test_singleton_class.rb +0 -15
  541. data/test/core/kernel/test_super_method.rb +0 -23
  542. data/test/core/kernel/test_tap.rb +0 -38
  543. data/test/core/kernel/test_temporarily.rb +0 -25
  544. data/test/core/kernel/test_true.rb +0 -31
  545. data/test/core/kernel/test_try.rb +0 -35
  546. data/test/core/kernel/test_val.rb +0 -30
  547. data/test/core/kernel/test_with.rb +0 -18
  548. data/test/core/kernel/test_writers.rb +0 -53
  549. data/test/core/matchdata/test_match.rb +0 -14
  550. data/test/core/matchdata/test_matchset.rb +0 -29
  551. data/test/core/method/test_composition.rb +0 -42
  552. data/test/core/module/test_abstract.rb +0 -24
  553. data/test/core/module/test_alias_accessor.rb +0 -27
  554. data/test/core/module/test_alias_method_chain.rb +0 -34
  555. data/test/core/module/test_alias_module_function.rb +0 -24
  556. data/test/core/module/test_all_instance_methods.rb +0 -27
  557. data/test/core/module/test_ancestor.rb +0 -16
  558. data/test/core/module/test_anonymous.rb +0 -18
  559. data/test/core/module/test_attr_setter.rb +0 -28
  560. data/test/core/module/test_basename.rb +0 -14
  561. data/test/core/module/test_can.rb +0 -22
  562. data/test/core/module/test_class.rb +0 -22
  563. data/test/core/module/test_class_def.rb +0 -22
  564. data/test/core/module/test_class_extend.rb +0 -73
  565. data/test/core/module/test_class_inheritor.rb +0 -135
  566. data/test/core/module/test_copy_inheritor.rb +0 -35
  567. data/test/core/module/test_enclosure.rb +0 -24
  568. data/test/core/module/test_instance_function.rb +0 -30
  569. data/test/core/module/test_instance_method.rb +0 -20
  570. data/test/core/module/test_instance_method_defined.rb +0 -38
  571. data/test/core/module/test_integrate.rb +0 -28
  572. data/test/core/module/test_is.rb +0 -50
  573. data/test/core/module/test_memoize.rb +0 -33
  574. data/test/core/module/test_method_clash.rb +0 -59
  575. data/test/core/module/test_method_space.rb +0 -72
  576. data/test/core/module/test_methodize.rb +0 -26
  577. data/test/core/module/test_modname.rb +0 -13
  578. data/test/core/module/test_module_def.rb +0 -22
  579. data/test/core/module/test_module_load.rb +0 -23
  580. data/test/core/module/test_nodef.rb +0 -19
  581. data/test/core/module/test_op.rb +0 -56
  582. data/test/core/module/test_pathize.rb +0 -25
  583. data/test/core/module/test_preextend.rb +0 -26
  584. data/test/core/module/test_redefine_method.rb +0 -30
  585. data/test/core/module/test_redirect_method.rb +0 -32
  586. data/test/core/module/test_remove.rb +0 -18
  587. data/test/core/module/test_rename_method.rb +0 -34
  588. data/test/core/module/test_revise.rb +0 -61
  589. data/test/core/module/test_set.rb +0 -30
  590. data/test/core/module/test_spacename.rb +0 -15
  591. data/test/core/module/test_to_obj.rb +0 -20
  592. data/test/core/module/test_wrap_method.rb +0 -32
  593. data/test/core/numeric/test_approx.rb +0 -26
  594. data/test/core/numeric/test_delimit.rb +0 -68
  595. data/test/core/numeric/test_distance.rb +0 -16
  596. data/test/core/numeric/test_length.rb +0 -16
  597. data/test/core/numeric/test_round_to.rb +0 -76
  598. data/test/core/numeric/test_spacing.rb +0 -17
  599. data/test/core/object/test_dup.rb +0 -115
  600. data/test/core/object/test_object_state.rb +0 -75
  601. data/test/core/object/test_try_dup.rb +0 -59
  602. data/test/core/proc/test_bind.rb +0 -29
  603. data/test/core/proc/test_bind_to.rb +0 -17
  604. data/test/core/proc/test_compose.rb +0 -27
  605. data/test/core/proc/test_partial.rb +0 -27
  606. data/test/core/proc/test_to_method.rb +0 -43
  607. data/test/core/proc/test_update.rb +0 -15
  608. data/test/core/range/test_combine.rb +0 -32
  609. data/test/core/range/test_nudge.rb +0 -32
  610. data/test/core/range/test_op_add.rb +0 -24
  611. data/test/core/range/test_op_sub.rb +0 -34
  612. data/test/core/range/test_overlap.rb +0 -15
  613. data/test/core/range/test_to_rng.rb +0 -20
  614. data/test/core/range/test_umbrella.rb +0 -32
  615. data/test/core/range/test_within.rb +0 -25
  616. data/test/core/regexp/test_arity.rb +0 -30
  617. data/test/core/regexp/test_multiline.rb +0 -19
  618. data/test/core/regexp/test_op_add.rb +0 -15
  619. data/test/core/regexp/test_op_or.rb +0 -16
  620. data/test/core/regexp/test_to_re.rb +0 -24
  621. data/test/core/string/test_acronym.rb +0 -14
  622. data/test/core/string/test_align.rb +0 -32
  623. data/test/core/string/test_ascii_only.rb +0 -51
  624. data/test/core/string/test_bracket.rb +0 -37
  625. data/test/core/string/test_camelcase.rb +0 -59
  626. data/test/core/string/test_capitalized.rb +0 -36
  627. data/test/core/string/test_characters.rb +0 -13
  628. data/test/core/string/test_cleanlines.rb +0 -12
  629. data/test/core/string/test_cleave.rb +0 -27
  630. data/test/core/string/test_cmp.rb +0 -18
  631. data/test/core/string/test_compress_lines.rb +0 -27
  632. data/test/core/string/test_crypt.rb +0 -17
  633. data/test/core/string/test_divide.rb +0 -17
  634. data/test/core/string/test_each_word.rb +0 -17
  635. data/test/core/string/test_edit_distance.rb +0 -20
  636. data/test/core/string/test_exclude.rb +0 -23
  637. data/test/core/string/test_expand_tabs.rb +0 -83
  638. data/test/core/string/test_file.rb +0 -15
  639. data/test/core/string/test_fold.rb +0 -21
  640. data/test/core/string/test_indent.rb +0 -90
  641. data/test/core/string/test_index_all.rb +0 -22
  642. data/test/core/string/test_interpolate.rb +0 -16
  643. data/test/core/string/test_lchomp.rb +0 -25
  644. data/test/core/string/test_line_wrap.rb +0 -15
  645. data/test/core/string/test_lowercase.rb +0 -18
  646. data/test/core/string/test_margin.rb +0 -16
  647. data/test/core/string/test_methodize.rb +0 -28
  648. data/test/core/string/test_modulize.rb +0 -28
  649. data/test/core/string/test_mscan.rb +0 -18
  650. data/test/core/string/test_natcmp.rb +0 -17
  651. data/test/core/string/test_nchar.rb +0 -17
  652. data/test/core/string/test_newlines.rb +0 -14
  653. data/test/core/string/test_number.rb +0 -44
  654. data/test/core/string/test_op_div.rb +0 -15
  655. data/test/core/string/test_op_sub.rb +0 -15
  656. data/test/core/string/test_pathize.rb +0 -31
  657. data/test/core/string/test_quote.rb +0 -41
  658. data/test/core/string/test_random.rb +0 -25
  659. data/test/core/string/test_range.rb +0 -35
  660. data/test/core/string/test_remove.rb +0 -50
  661. data/test/core/string/test_rewrite.rb +0 -17
  662. data/test/core/string/test_rotate.rb +0 -31
  663. data/test/core/string/test_shatter.rb +0 -17
  664. data/test/core/string/test_similarity.rb +0 -22
  665. data/test/core/string/test_snakecase.rb +0 -22
  666. data/test/core/string/test_splice.rb +0 -37
  667. data/test/core/string/test_squish.rb +0 -31
  668. data/test/core/string/test_store.rb +0 -16
  669. data/test/core/string/test_subtract.rb +0 -16
  670. data/test/core/string/test_titlecase.rb +0 -16
  671. data/test/core/string/test_to_re.rb +0 -35
  672. data/test/core/string/test_trim.rb +0 -116
  673. data/test/core/string/test_unbracket.rb +0 -38
  674. data/test/core/string/test_underscore.rb +0 -21
  675. data/test/core/string/test_unfold.rb +0 -17
  676. data/test/core/string/test_unindent.rb +0 -105
  677. data/test/core/string/test_unquote.rb +0 -13
  678. data/test/core/string/test_uppercase.rb +0 -22
  679. data/test/core/string/test_variablize.rb +0 -15
  680. data/test/core/string/test_word_wrap.rb +0 -80
  681. data/test/core/string/test_words.rb +0 -24
  682. data/test/core/string/test_xor.rb +0 -16
  683. data/test/core/struct/test_replace.rb +0 -18
  684. data/test/core/symbol/test_as_s.rb +0 -15
  685. data/test/core/symbol/test_bang.rb +0 -15
  686. data/test/core/symbol/test_chomp.rb +0 -22
  687. data/test/core/symbol/test_generate.rb +0 -20
  688. data/test/core/symbol/test_not.rb +0 -19
  689. data/test/core/symbol/test_op_div.rb +0 -15
  690. data/test/core/symbol/test_plain.rb +0 -19
  691. data/test/core/symbol/test_query.rb +0 -19
  692. data/test/core/symbol/test_setter.rb +0 -17
  693. data/test/core/symbol/test_succ.rb +0 -16
  694. data/test/core/symbol/test_thrown.rb +0 -22
  695. data/test/core/symbol/test_variablize.rb +0 -14
  696. data/test/core/time/test_ago.rb +0 -18
  697. data/test/core/time/test_change.rb +0 -17
  698. data/test/core/time/test_dst_adjustment.rb +0 -19
  699. data/test/core/time/test_elapse.rb +0 -15
  700. data/test/core/time/test_future.rb +0 -32
  701. data/test/core/time/test_hence.rb +0 -18
  702. data/test/core/time/test_in.rb +0 -18
  703. data/test/core/time/test_less.rb +0 -139
  704. data/test/core/time/test_past.rb +0 -32
  705. data/test/core/time/test_round_to.rb +0 -34
  706. data/test/core/time/test_set.rb +0 -43
  707. data/test/core/time/test_shift.rb +0 -135
  708. data/test/core/time/test_stamp.rb +0 -42
  709. data/test/core/time/test_to_time.rb +0 -15
  710. data/test/core/time/test_trunc.rb +0 -34
  711. data/test/core/unboundmethod/test_arguments.rb +0 -25
  712. data/test/standard/binding/test_block_exec.rb +0 -21
  713. data/test/standard/math/test_abs.rb +0 -13
  714. data/test/standard/math/test_acot.rb +0 -23
  715. data/test/standard/math/test_acoth.rb +0 -22
  716. data/test/standard/math/test_beta.rb +0 -19
  717. data/test/standard/math/test_ceil.rb +0 -22
  718. data/test/standard/math/test_cosec.rb +0 -19
  719. data/test/standard/math/test_cosech.rb +0 -19
  720. data/test/standard/math/test_cot.rb +0 -13
  721. data/test/standard/math/test_coth.rb +0 -13
  722. data/test/standard/math/test_distance.rb +0 -16
  723. data/test/standard/math/test_exp10.rb +0 -14
  724. data/test/standard/math/test_exp2.rb +0 -14
  725. data/test/standard/math/test_factorial.rb +0 -13
  726. data/test/standard/math/test_floor.rb +0 -23
  727. data/test/standard/math/test_gcd.rb +0 -18
  728. data/test/standard/math/test_lcm.rb +0 -13
  729. data/test/standard/math/test_median.rb +0 -17
  730. data/test/standard/math/test_percentile.rb +0 -13
  731. data/test/standard/math/test_pow.rb +0 -30
  732. data/test/standard/math/test_root.rb +0 -15
  733. data/test/standard/math/test_sec.rb +0 -19
  734. data/test/standard/math/test_sech.rb +0 -19
  735. data/test/standard/math/test_sign.rb +0 -20
  736. data/test/standard/math/test_sinc.rb +0 -15
  737. data/test/standard/math/test_srq.rb +0 -20
  738. data/test/standard/pathname/test_chdir.rb +0 -16
  739. data/test/standard/pathname/test_readline.rb +0 -23
  740. data/test/standard/test_argvector.rb +0 -64
  741. data/test/standard/test_cloneable.rb +0 -60
  742. data/test/standard/test_date.rb +0 -82
  743. data/test/standard/test_enumargs.rb +0 -105
  744. data/test/standard/test_equitable.rb +0 -46
  745. data/test/standard/test_instantiable.rb +0 -40
  746. data/test/standard/test_math.rb +0 -3
  747. data/test/standard/test_memoizable.rb +0 -42
  748. data/test/standard/test_multipliers.rb +0 -141
  749. data/test/standard/test_ostruct.rb +0 -191
  750. data/test/standard/test_random.rb +0 -241
  751. data/test/standard/test_shellwords.rb +0 -74
  752. data/test/standard/test_thread.rb +0 -24
  753. data/test/standard/test_timer.rb +0 -62
  754. data/test/standard/test_tuple.rb +0 -68
  755. data/test/standard/test_uri.rb +0 -50
@@ -1,35 +1,17 @@
1
+ require 'facets/dir/find'
2
+
1
3
  class Dir
2
4
 
3
- # Recursively scan a directory and pass each file to the given block.
4
- #
5
- # Dir.recurse('.') do |path|
6
- # # ...
7
- # end
8
- #
9
- # CREDIT: George Moschovitis
10
- #
11
- # TODO: If fully compatible, reimplement as alias of Find.find,
12
- # or just copy and paste Find.find code here if it looks more robust.
13
- #
5
+ # @deprecated Use Dir.find or Find.find instead.
14
6
  def self.recurse(path='.', &block)
15
- list = []
16
- stoplist = ['.', '..']
17
- Dir.foreach(path) do |f|
18
- next if stoplist.include?(f)
19
- filename = (path == '.' ? f : path + '/' + f)
20
- list << filename
21
- block.call(filename) if block
22
- if FileTest.directory?(filename) and not FileTest.symlink?(filename)
23
- list.concat(Dir.recurse(filename, &block))
24
- end
25
- end
26
- list
7
+ warn "Dir.recurse is deprecated. Use Dir.find or Find.find instead.", uplevel: 1
8
+ Dir.find(path, &block)
27
9
  end
28
10
 
29
- # Same as Dir#recurse.
11
+ # @deprecated Use Dir.find or Find.find instead.
30
12
  def self.ls_r(path='.', &block)
31
- recurse(path, &block)
13
+ warn "Dir.ls_r is deprecated. Use Dir.find or Find.find instead.", uplevel: 1
14
+ Dir.find(path, &block)
32
15
  end
33
16
 
34
17
  end
35
-
@@ -15,18 +15,8 @@ module Enumerable
15
15
  # does almost the same thing and enum.map{}.compact works too.
16
16
 
17
17
  def compact_map(&block)
18
- y = []
19
- if block_given?
20
- each do |*a|
21
- r = yield(*a)
22
- y << r unless r.nil?
23
- end
24
- else
25
- each do |r|
26
- y << r unless r.nil?
27
- end
28
- end
29
- y
18
+ warn "Enumerable#compact_map is deprecated. Use Enumerable#filter_map instead.", uplevel: 1
19
+ filter_map(&block)
30
20
  end
31
21
 
32
22
  #
@@ -27,19 +27,8 @@ module Enumerable
27
27
  # to output each result and discard it.
28
28
  #
29
29
  def defer(&blk)
30
- if block_given?
31
- Denumerator.new do |output|
32
- each do |*input|
33
- yield(output, *input)
34
- end
35
- end
36
- else
37
- Denumerator.new do |output|
38
- each do |*input|
39
- output.yield(*input)
40
- end
41
- end
42
- end
30
+ warn "Enumerable#defer is deprecated. Use Enumerable#lazy instead.", uplevel: 1
31
+ lazy
43
32
  end
44
33
 
45
34
  end
@@ -1,5 +1,3 @@
1
- require 'facets/enumerator'
2
-
3
1
  module Enumerable
4
2
 
5
3
  # Iterate through slices. If slice +steps+ is not
@@ -16,8 +16,8 @@ module Enumerable
16
16
  #++
17
17
 
18
18
  def frequency
19
- p = Hash.new(0); each{ |v| p[v] += 1 }; p
20
-
19
+ warn "Enumerable#frequency is deprecated. Use Enumerable#tally instead.", uplevel: 1
20
+ tally
21
21
  end
22
22
 
23
23
  end
@@ -9,10 +9,9 @@ module Enumerable
9
9
  #
10
10
  # TODO: Enumerable#hinge will get a new name.
11
11
  #
12
- def hinge(init={})
13
- h = init
14
- each{ |v| yield(h,v) }
15
- h
12
+ def hinge(init={}, &block)
13
+ warn "Enumerable#hinge is deprecated. Use Enumerable#each_with_object instead (note: block args are reversed).", uplevel: 1
14
+ each_with_object(init) { |e, obj| block.call(obj, e) }
16
15
  end
17
16
 
18
17
  end
@@ -7,12 +7,9 @@ module Enumerable
7
7
  #
8
8
  # CREDIT: Gavin Sinclair
9
9
 
10
- def map_with_index
11
- r = []
12
- each_with_index do |e, i|
13
- r << yield(e, i)
14
- end
15
- r
10
+ def map_with_index(&block)
11
+ warn "Enumerable#map_with_index is deprecated. Use Enumerable#map.with_index instead.", uplevel: 1
12
+ map.with_index(&block)
16
13
  end
17
14
 
18
15
  # Alias for map_with_index.
@@ -1,34 +1,11 @@
1
- module Enumerable
1
+ require 'facets/enumerable/graph'
2
2
 
3
- # Like `#map`/`#collect`, but generates a Hash. The block is expected
4
- # to return two values: the key and the value for the new hash.
5
- #
6
- # numbers = (1..3)
7
- # squares = numbers.mash{ |n| [n, n*n] } # { 1=>1, 2=>4, 3=>9 }
8
- # sq_roots = numbers.mash{ |n| [n*n, n] } # { 1=>1, 4=>2, 9=>3 }
9
- #
10
- # CREDIT: Andrew Dudzik (adudzik), Trans
3
+ module Enumerable
11
4
 
5
+ # @deprecated Use Enumerable#graph instead.
12
6
  def mash(&yld)
13
- if yld
14
- h = {}
15
- each do |*kv|
16
- r = yld[*kv]
17
- case r
18
- when Hash
19
- nk, nv = *r.to_a[0]
20
- when Range
21
- nk, nv = r.first, r.last
22
- else
23
- nk, nv = *r
24
- end
25
- h[nk] = nv
26
- end
27
- h
28
- else
29
- Enumerator.new(self,:graph)
30
- end
7
+ warn "Enumerable#mash is deprecated. Use Enumerable#graph instead.", uplevel: 1
8
+ graph(&yld)
31
9
  end
32
10
 
33
11
  end
34
-
@@ -1,13 +1,9 @@
1
1
  module Enumerable
2
2
 
3
- # Like #uniq, but determines uniqueness based on a given block.
4
- #
5
- # (-5..5).to_a.uniq_by {|i| i*i }
6
- # #=> [-5, -4, -3, -2, -1, 0]
7
- #
8
- def uniq_by #:yield:
9
- h = {}; inject([]) {|a,x| h[yield(x)] ||= a << x}
3
+ # @deprecated Use Enumerable#uniq with a block instead (Ruby 1.9.2+).
4
+ def uniq_by(&block)
5
+ warn "Enumerable#uniq_by is deprecated. Use Enumerable#uniq(&block) instead.", uplevel: 1
6
+ uniq(&block)
10
7
  end
11
8
 
12
9
  end
13
-
@@ -0,0 +1,58 @@
1
+
2
+ module Enumerable
3
+ class Position
4
+ def initialize
5
+ @first = true
6
+ @last = false
7
+ end
8
+
9
+ def after_first!
10
+ @first = false
11
+ end
12
+
13
+ def at_end!
14
+ @last = true
15
+ end
16
+
17
+ def first?
18
+ @first
19
+ end
20
+
21
+ def middle?
22
+ not (@first or @last)
23
+ end
24
+
25
+ def last?
26
+ @last
27
+ end
28
+ end
29
+
30
+ # Allows one to know the position of the enumeration easily.
31
+ #
32
+ # 5.times.collect.with_position do |i, position|
33
+ # $stdout.write "#{i}#{position.middle? ? ',' : ''}"
34
+ # end
35
+ #
36
+ # Where this becomes more useful, is when it's easy to determine the position of elements, e.g.
37
+ #
38
+ # 10.times.select(&:odd?).with_position{|n,p| ... }
39
+ #
40
+ def with_position
41
+ return to_enum(:with_position) unless block_given?
42
+
43
+ position = Position.new
44
+
45
+ while item = self.next
46
+ begin
47
+ self.peek
48
+ rescue StopIteration
49
+ position.at_end!
50
+ end
51
+
52
+ yield item, position.dup
53
+
54
+ position.after_first!
55
+ end
56
+ rescue StopIteration
57
+ end
58
+ end
@@ -1,75 +1,2 @@
1
- if RUBY_VERSION < '1.9'
2
-
3
- require 'enumerator'
4
-
5
- # for Ruby 1.8 -> 1.9 transition
6
- Enumerator = Enumerable::Enumerator unless defined?(::Enumerator)
7
-
8
- class Enumerator
9
-
10
- private
11
-
12
- alias :old_initialize :initialize
13
-
14
- # Provides the ruby-1.9 block form of Enumerator, where you can write:
15
- #
16
- # obj = Enumerator.new do |yielder|
17
- # # ...
18
- # yielder.yield(data) # or: yielder << data
19
- # # ...
20
- # end
21
- #
22
- # When obj.each is called, the block is run once. It should call
23
- # yielder.yield with each item it wishes to generate.
24
- #
25
- # Example:
26
- #
27
- # fib = Enumerator.new { |y|
28
- # a = b = 1
29
- # loop {
30
- # y << a
31
- # a, b = b, a + b
32
- # }
33
- # }
34
- #
35
- # fib.take(10) #=> [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
36
- #
37
- def initialize(*args, &block)
38
- if block
39
- @body = block
40
- old_initialize(self, :_start)
41
- else
42
- old_initialize(*args)
43
- end
44
- end
45
-
46
- def _start(*args,&receiver) #:nodoc:
47
- @body.call(Yielder.new(&receiver), *args)
48
- end
49
-
50
- # Wrapper to allow yielder.yield(output) or yielder << output
51
- # in the same way as ruby-1.9
52
- #
53
- # TODO: Why can't Yielder take a block instead of a proc argument?
54
-
55
- class Yielder #:nodoc:
56
- def initialize(&proc)
57
- @proc = proc
58
- end
59
- def yield(*args)
60
- @proc[*args]
61
- end
62
- alias :<< :yield
63
- end
64
-
65
- end
66
-
67
- end
68
-
69
- path = __FILE__.chomp('.rb')
70
- base = File.basename(path)
71
- Dir[File.join(path, '*.rb')].each do |lib|
72
- #require lib # why is this so much slower?
73
- require "facets/#{base}/#{File.basename(lib)}"
74
- end
75
-
1
+ require_relative 'enumerator/fx'
2
+ require_relative 'enumerator/lazy/squeeze'
@@ -1,80 +1,15 @@
1
1
  class Exception
2
2
 
3
- # Formats the Exception so that it looks *familiar*,
4
- # i.e. exactly like your interpreter does it.
5
- #
6
- # Port of MRI native `error_print` function.
7
- #
8
- # @author Evgeniy Dolzhenko
9
-
3
+ # @deprecated Use Exception#full_message instead (built-in since Ruby 2.5).
10
4
  def self.error_print(e)
11
- warn_print = ""
12
- backtrace = e.backtrace
13
- backtrace = [ backtrace ] if backtrace.is_a?(String) # 1.9 returns single String for SystemStackError
14
-
15
- warn_print << backtrace[0]
16
- if e.is_a?(RuntimeError) && e.message.empty?
17
- warn_print << ": unhandled exception\n"
18
- else
19
- if e.message.empty?
20
- warn_print << ": #{ e.class.name }\n"
21
- else
22
- split_message = e.message.split("\n")
23
- warn_print << ": "
24
- if split_message.size == 1
25
- warn_print << "#{ e.message } (#{ e.class.name })\n"
26
- else
27
- warn_print << split_message[0]
28
- warn_print << " (#{ e.class.name })\n"
29
- warn_print << split_message[1..-1].join("\n").chomp << "\n"
30
- end
31
- end
32
- end
33
-
34
- len = backtrace.size
35
-
36
- ## int skip = eclass == rb_eSysStackError;
37
- skip = e.is_a?(SystemStackError)
38
-
39
- ## #define TRACE_MAX (TRACE_HEAD+TRACE_TAIL+5)
40
- ## #define TRACE_HEAD 8
41
- ## #define TRACE_TAIL 5
42
- trace_head = 8
43
- trace_tail = 5
44
- trace_max = (trace_head + trace_tail + 5)
45
- ##
46
- ## for (i = 1; i < len; i++) {
47
- i = 1
48
- while i < len
49
- ## if (TYPE(ptr[i]) == T_STRING) {
50
- ## warn_printf("\tfrom %s\n", RSTRING_PTR(ptr[i]));
51
- ## }
52
- warn_print << "\tfrom %s\n" % e.backtrace[i]
53
-
54
- ## if (skip && i == TRACE_HEAD && len > TRACE_MAX) {
55
- if skip && i == trace_head && len > trace_max
56
- ## warn_printf("\t ... %ld levels...\n",
57
- ## len - TRACE_HEAD - TRACE_TAIL);
58
- warn_print << "\t ... %d levels...\n" % (len - trace_head - trace_tail)
59
- ## i = len - TRACE_TAIL;
60
- i = len - trace_tail
61
- ## }
62
- end
63
- ## }
64
- i += 1
65
- end
66
- warn_print
5
+ warn "Exception.error_print is deprecated. Use Exception#full_message instead.", uplevel: 1
6
+ e.full_message
67
7
  end
68
8
 
69
- # Formats the Exception so that it looks *familiar*,
70
- # i.e. exactly like your interpreter does it.
71
- #
72
- # @author Evgeniy Dolzhenko
73
- #
74
- # @todo Anyone have a better name for this method?
9
+ # @deprecated Use Exception#full_message instead (built-in since Ruby 2.5).
75
10
  def error_print
76
- Exception.error_print(self)
11
+ warn "Exception#error_print is deprecated. Use Exception#full_message instead.", uplevel: 1
12
+ full_message
77
13
  end
78
14
 
79
15
  end
80
-
@@ -1,21 +1,9 @@
1
1
  class File
2
2
 
3
- # Platform dependent null device.
4
- #
5
- # CREDIT: Daniel Burger
6
-
3
+ # @deprecated Use File::NULL constant instead (built-in since Ruby 1.9.3).
7
4
  def self.null
8
- case RUBY_PLATFORM
9
- when /mswin/i
10
- 'NUL'
11
- when /amiga/i
12
- 'NIL:'
13
- when /openvms/i
14
- 'NL:'
15
- else
16
- '/dev/null'
17
- end
5
+ warn "File.null is deprecated. Use File::NULL instead.", uplevel: 1
6
+ File::NULL
18
7
  end
19
8
 
20
9
  end
21
-
@@ -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
-
@@ -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
-