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,25 +1,21 @@
1
1
  class Binding
2
2
 
3
- # Returns the value of some variable.
3
+ # Returns the value of a local variable.
4
4
  #
5
5
  # a = 2
6
- # binding["a"] #=> 2
6
+ # binding[:a] #=> 2
7
7
  #
8
- def []( x )
9
- eval( x.to_s )
8
+ def [](name)
9
+ local_variable_get(name.to_sym)
10
10
  end
11
11
 
12
12
  # Set the value of a local variable.
13
13
  #
14
- # binding["a"] = 4
14
+ # binding[:a] = 4
15
15
  # a #=> 4
16
16
  #
17
- # @deprecated No longer wortks in Ruby 1.9+.
18
- #
19
- # @see Binding#with for an alternative.
20
- def []=( l, v )
21
- eval( "lambda {|v| #{l} = v}").call( v )
17
+ def []=(name, value)
18
+ local_variable_set(name.to_sym, value)
22
19
  end
23
20
 
24
21
  end
25
-
@@ -1,15 +1,9 @@
1
1
  class Binding
2
2
 
3
- # This is already defined by Rubinius:
4
- # Kernel.eval('Rubinius::VariableScope.current.self', self)
5
- unless method_defined?(:self)
6
-
7
- # Returns self of the binding's context.
8
- def self
9
- eval('self')
10
- end
11
-
3
+ # @deprecated Use Binding#receiver instead (built-in since Ruby 2.6).
4
+ def self
5
+ warn "Binding#self is deprecated. Use Binding#receiver instead.", uplevel: 1
6
+ receiver
12
7
  end
13
8
 
14
9
  end
15
-
@@ -86,7 +86,7 @@ class String
86
86
  #
87
87
  # All other strings return false.
88
88
  #
89
- # Here are some exmamples.
89
+ # Here are some examples.
90
90
  #
91
91
  # "true".to_b #=> true
92
92
  # "yes".to_b #=> true
@@ -1,5 +1,3 @@
1
- require 'facets/class/subclasses'
2
-
3
1
  class Class
4
2
 
5
3
  # List all descedents of this class.
@@ -3,7 +3,7 @@ require_relative 'class/descendants.rb'
3
3
  require_relative 'class/methodize.rb'
4
4
  require_relative 'class/pathize.rb'
5
5
  #require_relative 'class/preallocate.rb' # uncommon
6
- #require_relative 'class/singleton.rb' # uncommon
7
- require_relative 'class/subclasses.rb'
6
+ #require_relative 'class/singleton.rb' # removed, use Ruby's singleton_class
7
+ #require_relative 'class/subclasses.rb' # removed, use Ruby's subclasses
8
8
  require_relative 'class/to_proc.rb'
9
9
 
@@ -1 +1,13 @@
1
- require 'facets/comparable/clip'
1
+ module Comparable
2
+
3
+ # Alias for Comparable#clamp. Reads more naturally in some contexts.
4
+ #
5
+ # 4.bound(2, 7) #=> 4
6
+ # 9.bound(2, 7) #=> 7
7
+ # 1.bound(2, 7) #=> 2
8
+ #
9
+ def bound(lower, upper=nil)
10
+ upper ? clamp(lower, upper) : clamp(lower..)
11
+ end
12
+
13
+ end
@@ -1,38 +1,9 @@
1
1
  module Comparable
2
2
 
3
- # Returns self if above the given lower bound, or
4
- # within the given lower and upper bounds,
5
- # otherwise returns the the bound of which the
6
- # value falls outside.
7
- #
8
- # 4.clip(3) #=> 4
9
- # 4.clip(5) #=> 5
10
- # 4.clip(2,7) #=> 4
11
- # 9.clip(2,7) #=> 7
12
- # 1.clip(2,7) #=> 2
13
- #
14
- # CREDIT Florian Gross, Trans
15
-
3
+ # @deprecated Use Comparable#clamp instead (built-in since Ruby 2.4).
16
4
  def clip(lower, upper=nil)
17
- return lower if self < lower
18
- return self unless upper
19
- return upper if self > upper
20
- return self
5
+ warn "Comparable#clip is deprecated. Use Comparable#clamp instead.", uplevel: 1
6
+ upper ? clamp(lower, upper) : clamp(lower..)
21
7
  end
22
8
 
23
- # Returns self if above the given lower bound, or
24
- # within the given lower and upper bounds,
25
- # otherwise returns the the bound of which the
26
- # value falls outside.
27
- #
28
- # 4.bound(3) #=> 4
29
- # 4.bound(5) #=> 5
30
- # 4.bound(2,7) #=> 4
31
- # 9.bound(2,7) #=> 7
32
- # 1.bound(2,7) #=> 2
33
- #
34
- # CREDIT: Florian Gross
35
-
36
- alias_method :bound, :clip
37
-
38
9
  end
@@ -1,6 +1,3 @@
1
- require 'facets/enumerator'
2
- #require 'facets/enumerable/take'
3
-
4
1
  # Classes which include Denumerable will get versions of map,
5
2
  # select, and so on, which return a Denumerator, so that they
6
3
  # work horizontally without creating intermediate arrays.
@@ -0,0 +1,20 @@
1
+ require 'find'
2
+
3
+ class Dir
4
+
5
+ # Recursively traverse a directory, yielding each file and directory path.
6
+ # Supports Find.prune to skip subtrees.
7
+ #
8
+ # Dir.find('.') do |path|
9
+ # puts path
10
+ # end
11
+ #
12
+ # Returns an enumerator if no block is given.
13
+ #
14
+ # This is a convenience wrapper around Ruby's Find.find.
15
+
16
+ def self.find(*paths, ignore_error: true, &block)
17
+ Find.find(*paths, ignore_error: ignore_error, &block)
18
+ end
19
+
20
+ end
@@ -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
-
@@ -1,6 +1,6 @@
1
1
  require_relative 'dir/ascend.rb'
2
2
  require_relative 'dir/descend.rb'
3
- require_relative 'dir/each_child.rb'
3
+ #require_relative 'dir/each_child.rb' # removed: now provided by Ruby
4
4
  require_relative 'dir/multiglob.rb'
5
5
  require_relative 'dir/parent.rb'
6
6
  require_relative 'dir/recurse.rb'
@@ -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
@@ -9,7 +9,7 @@ require_relative 'enumerable/every.rb'
9
9
  require_relative 'enumerable/ewise.rb'
10
10
  require_relative 'enumerable/exclude.rb'
11
11
  require_relative 'enumerable/expand.rb'
12
- require_relative 'enumerable/filter.rb'
12
+ #require_relative 'enumerable/filter.rb' # removed: now provided by Ruby
13
13
  require_relative 'enumerable/find_yield.rb'
14
14
  require_relative 'enumerable/frequency.rb'
15
15
  require_relative 'enumerable/graph.rb'
@@ -31,7 +31,7 @@ require_relative 'enumerable/per.rb'
31
31
  require_relative 'enumerable/purge.rb'
32
32
  require_relative 'enumerable/recursively.rb'
33
33
  require_relative 'enumerable/squeeze.rb'
34
- require_relative 'enumerable/sum.rb'
34
+ #require_relative 'enumerable/sum.rb' # removed: now provided by Ruby
35
35
  require_relative 'enumerable/value_by'
36
36
  #require_relative 'enumerable/unassociate.rb'
37
37
  require_relative 'enumerable/uniq_by.rb'
@@ -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'
@@ -16,7 +16,7 @@ require_relative 'kernel/false'
16
16
  require_relative 'kernel/true'
17
17
 
18
18
  ### Object
19
- require_relative 'object/itself'
19
+ #require_relative 'object/itself' # removed: now provided by Ruby
20
20
 
21
21
  ### Array
22
22
  require_relative 'array/delete_values'
@@ -37,11 +37,11 @@ require_relative 'enumerable/graph'
37
37
  require_relative 'enumerable/value_by'
38
38
 
39
39
  ### File
40
- require_relative 'file/write'
40
+ #require_relative 'file/write' # removed: now provided by Ruby
41
41
 
42
42
  ### Hash
43
43
  require_relative 'hash/autonew'
44
- require_relative 'hash/compact'
44
+ #require_relative 'hash/compact' # removed: now provided by Ruby
45
45
  #require_relative 'hash/data'
46
46
  require_relative 'hash/delete_values'
47
47
  require_relative 'hash/except'
@@ -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
-