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,20 +1,14 @@
1
1
  class Hash
2
2
 
3
- # Iterate over hash updating just the values.
3
+ # @deprecated Use Hash#transform_values! (Ruby 2.4+) or Hash#revalue! instead.
4
4
  #
5
- # h = {:a=>1, :b=>2}
6
- # h.update_values{ |v| v + 1 }
7
- # h #=> { :a=>2, :b=>3 }
8
- #
9
- # CREDIT: Trans
10
-
11
- def update_values #:yield:
5
+ def update_values(&block)
6
+ warn "Hash#update_values is deprecated. Use Hash#transform_values! or Hash#revalue! instead.", uplevel: 1
12
7
  if block_given?
13
- each{ |k,v| store(k, yield(v)) }
8
+ transform_values!(&block)
14
9
  else
15
10
  to_enum(:update_values)
16
11
  end
17
12
  end
18
13
 
19
14
  end
20
-
@@ -199,19 +199,21 @@ module Indexable
199
199
  splice(-1)
200
200
  end
201
201
 
202
- # A shorting of "ends at", returns the
203
- # last index of the indexable object.
204
- # Returns nil if there are no elements.
202
+ # A shortening of "ends at". Returns the
203
+ # last index of the indexable object,
204
+ # or nil if there are no elements.
205
205
  #
206
206
  # [1,2,3,4,5].ends #=> 4
207
207
  #
208
- # This nearly equivalent to +size - 1+.
208
+ # This is nearly equivalent to +size - 1+.
209
209
  #
210
210
  def ends
211
211
  return nil if size == 0
212
212
  size - 1
213
213
  end
214
214
 
215
+ alias_method :last_index, :ends
216
+
215
217
  # Returns the positive ordinal index given
216
218
  # a cardinal position, 1 to n or -n to -1.
217
219
  #
@@ -3,12 +3,7 @@ module Kernel
3
3
  alias_method :pp_callstack, :caller
4
4
  alias_method :pp_call_stack, :caller
5
5
 
6
- # Parse a caller string and break it into its components,
7
- # returning an array composed of:
8
- #
9
- # * file (String)
10
- # * lineno (Integer)
11
- # * method (Symbol)
6
+ # Returns the call stack as an array of [file, lineno, method] entries.
12
7
  #
13
8
  # For example, from irb
14
9
  #
@@ -16,27 +11,14 @@ module Kernel
16
11
  #
17
12
  # _produces_ ...
18
13
  #
19
- # [["(irb)", 2, :irb_binding],
20
- # ["/usr/lib/ruby/1.8/irb/workspace.rb", 52, :irb_binding],
21
- # ["/usr/lib/ruby/1.8/irb/workspace.rb", 52, nil]]
22
- #
23
- # Note: If the user decides to redefine caller() to output data
24
- # in a different format, _prior_ to requiring this, then the
25
- # results will be indeterminate.
14
+ # [["(irb)", 2, :irb_binding], ...]
26
15
  #
27
16
  # CREDIT: Trans
28
17
 
29
18
  def callstack(level = 1)
30
- call_str_array = pp_callstack(level)
31
- stack = []
32
- call_str_array.each{ |call_str|
33
- file, lineno, method = call_str.split(':')
34
- if method =~ /in `(.*)'/ then
35
- method = $1.intern()
36
- end
37
- stack << [file, lineno.to_i, method]
38
- }
39
- stack
19
+ caller_locations(level).map do |loc|
20
+ [loc.path, loc.lineno, loc.label&.to_sym]
21
+ end
40
22
  end
41
23
 
42
24
  alias_method :call_stack, :callstack
@@ -53,4 +35,3 @@ class Binding
53
35
 
54
36
  alias_method :call_stack, :callstack
55
37
  end
56
-
@@ -3,13 +3,13 @@ module Kernel
3
3
  # During this trying time when no one can get their
4
4
  # techie catchwords to stick to the refrigerator no
5
5
  # matter how hard they slap it with the enchanted
6
- # magnetic spatula, its good to know that the
6
+ # magnetic spatula, it's good to know that the
7
7
  # contrived phrases really do fly, graceful and
8
8
  # unclasped and bearing north toward chilled shrimp.
9
- # I know what my Halloween pumpkin is going to say.
9
+ # I know what my Hallowe'en pumpkin is going to say.
10
10
  #
11
- # NOTE: This method is not a common core extension and is not
12
- # loaded automatically when using `require 'facets'`.
11
+ # @deprecated Use singleton_class or meta_class instead.
12
+ # Kept in tribute to WhyTheLuckyStiff who coined the term.
13
13
  #
14
14
  # CREDIT: WhyTheLuckyStiff
15
15
  #
@@ -17,8 +17,8 @@ module Kernel
17
17
  # require 'facets/kernel/eigenclass'
18
18
  #
19
19
  def eigenclass
20
- (class << self; self; end)
20
+ warn "Kernel#eigenclass is deprecated. Use singleton_class or meta_class instead.", uplevel: 1
21
+ singleton_class
21
22
  end
22
23
 
23
24
  end
24
-
@@ -1,12 +1,9 @@
1
1
  module Kernel
2
2
 
3
- # TODO: Must reduce the number of singleton method methods.
4
-
5
- # Don't say it!
6
- #
3
+ # @deprecated Use singleton_class or meta_class instead.
7
4
  def extension
8
- class << self; self; end
5
+ warn "Kernel#extension is deprecated. Use singleton_class or meta_class instead.", uplevel: 1
6
+ singleton_class
9
7
  end
10
8
 
11
9
  end
12
-
@@ -0,0 +1,16 @@
1
+ require 'facets/functor'
2
+
3
+ module Kernel
4
+
5
+ # Returns a Functor that intercepts method calls, forwards
6
+ # them to self for side effects, and returns self. This is like
7
+ # a block-less version of #tap that allows method chaining.
8
+ #
9
+ # YAML.functor.load_file('foo.yml').load_file('bar.yml')
10
+ #
11
+
12
+ def functor
13
+ Functor.new{ |op,*a,&b| self.send(op, *a, &b); self }
14
+ end
15
+
16
+ end
@@ -1,26 +1,10 @@
1
1
  module Kernel
2
2
 
3
- # Kernel extension prefixed by instance_ which provide
4
- # internal (eg private) access to the object.
5
- # Kernel extension using instance_ prefix which is beneficial
6
- # to separation of metaprogramming from general programming.
7
- # object_ methods, in contrast to the instance_ methods,
8
- # do not access internal state.
9
-
10
- # Easy access to an object qua class, otherwise known
11
- # as the object's metaclass or singleton class. This
12
- # implemnetation alwasy returns the class, even if a
13
- # block is provided to eval against it...
14
- #
15
- # It is what it is.
16
- # But I think I like this one best.
17
- #
18
- # CREDIT: Trans
19
-
3
+ # @deprecated Use singleton_class or meta_class instead.
20
4
  def instance_class(&block)
21
- (class << self; self; end).module_eval(&block) if block
22
- (class << self; self; end)
5
+ warn "Kernel#instance_class is deprecated. Use singleton_class or meta_class instead.", uplevel: 1
6
+ singleton_class.module_eval(&block) if block
7
+ singleton_class
23
8
  end
24
9
 
25
10
  end
26
-
@@ -1,7 +1,9 @@
1
1
  module Kernel
2
2
 
3
- # Private send.
4
- alias_method :instance_send, :__send__
3
+ # @deprecated Use __send__ instead.
4
+ def instance_send(name, *args, &blk)
5
+ warn "Kernel#instance_send is deprecated. Use __send__ instead.", uplevel: 1
6
+ __send__(name, *args, &blk)
7
+ end
5
8
 
6
9
  end
7
-
@@ -1,25 +1,13 @@
1
1
  module Kernel
2
2
 
3
- unless private_method_defined?(:load_relative) # Will Ruby ever support out-of-the-box?
4
-
5
- # Load file from same dir as calling script.
6
- #
7
- # load_relative 'myscript'
8
- #
9
- # CREDIT: Paul Brannan, Pragmatic Programmers
10
- #
11
- def load_relative(relative_feature, safe=nil)
12
- c = caller.first
13
- fail "Can't parse #{c}" unless c.rindex(/:\d+(:in `.*')?$/)
14
- file = $` # File.dirname(c)
15
- if /\A\((.*)\)/ =~ file # eval, etc.
16
- raise LoadError, "require_relative is called in #{$1}"
17
- end
18
- absolute = File.expand_path(relative_feature, File.dirname(file))
19
- load absolute, safe
20
- end
21
-
3
+ # @deprecated Use require_relative for requires; for load, use
4
+ # an absolute path via File.expand_path.
5
+ def load_relative(relative_feature, safe=nil)
6
+ warn "Kernel#load_relative is deprecated.", uplevel: 1
7
+ loc = caller_locations(1, 1).first
8
+ file = loc.absolute_path || loc.path
9
+ absolute = File.expand_path(relative_feature, File.dirname(file))
10
+ load absolute, safe
22
11
  end
23
12
 
24
13
  end
25
-
@@ -1,35 +1,14 @@
1
- require 'facets/binding/eval'
2
- require 'facets/kernel/__method__'
3
-
4
1
  module Kernel
5
2
 
6
- # Global memo cache.
7
- $MEMO ||= {}
8
-
9
- # Memoize a method.
10
- #
11
- # class MemoExample
12
- # attr_accessor :a
13
- # def m
14
- # memo{ @a }
15
- # end
16
- # end
17
- #
18
- # ex = MemoExample.new
19
- #
20
- # ex.a = 10
21
- # ex.m #=> 10
22
- #
23
- # ex.a = 20
24
- # ex.m #=> 10
25
- #
26
- # NOTE: This method is not a common core extension and is not
27
- # loaded automatically when using <code>require 'facets'</code>.
3
+ # @deprecated Use Module#memoize instead, which provides proper
4
+ # per-object memoization without a global variable.
28
5
  #
29
6
  # @uncommon
30
7
  # require 'facets/kernel/memo'
31
8
  #
32
9
  def memo(*args, &block)
10
+ warn "Kernel#memo is deprecated. Use Module#memoize instead.", uplevel: 1
11
+ $MEMO ||= {}
33
12
  if args.empty?
34
13
  args = block.binding.eval('[self, __method__]')
35
14
  end
@@ -41,4 +20,3 @@ module Kernel
41
20
  end
42
21
 
43
22
  end
44
-
@@ -1,17 +1,21 @@
1
1
  module Kernel
2
2
 
3
- # Easy access to an object's "special" class, otherwise known as it's
4
- # singleton class, eigenclass, adhoc class or object-qua-class.
5
- #
3
+ # Easy access to an object's singleton class, with optional block eval.
4
+ #
5
+ # obj.meta_class #=> #<Class:obj>
6
+ # obj.meta_class { def foo; end }
7
+ #
8
+ # This is a concise alternative to Ruby's `singleton_class` that also
9
+ # accepts a block for class_eval.
10
+ #
6
11
  def meta_class(&block)
7
12
  if block_given?
8
- (class << self; self; end).class_eval(&block)
13
+ singleton_class.class_eval(&block)
9
14
  else
10
- (class << self; self; end)
15
+ singleton_class
11
16
  end
12
17
  end
13
18
 
14
- # The non-underscored form of #meta_class if faily common.
15
19
  alias_method :metaclass, :meta_class
16
20
 
17
21
  end
@@ -1,10 +1,9 @@
1
1
  module Kernel
2
2
 
3
- # Defines object_classas an alias of class.
4
- # This is an alternative to __class__, akin to
5
- # #object_id.
6
-
7
- alias_method :object_class, :class
3
+ # @deprecated Use __class__ instead.
4
+ def object_class
5
+ warn "Kernel#object_class is deprecated. Use __class__ instead.", uplevel: 1
6
+ self.class
7
+ end
8
8
 
9
9
  end
10
-
@@ -1,30 +1,9 @@
1
1
  module Kernel
2
2
 
3
- # Send only to public methods.
4
- #
5
- # class SendExample
6
- # private
7
- # def foo; end
8
- # end
9
- #
10
- # obj = SendExample.new
11
- #
12
- # expect NoMethodError do
13
- # obj.object_send(:foo)
14
- # end
15
- #
16
- # DEPRECATED: Use #public_send instead.
17
-
18
- alias object_send public_send rescue nil
19
-
20
- #def object_send(name, *args, &blk)
21
- # #instance_eval "self.#{name}(*args)"
22
- # if respond_to?(name)
23
- # __send__(name, *args, &blk)
24
- # else
25
- # __send__(:method_missing, name, *args, &blk)
26
- # end
27
- #end
3
+ # @deprecated Use public_send instead (built-in since Ruby 1.9.2).
4
+ def object_send(name, *args, &blk)
5
+ warn "Kernel#object_send is deprecated. Use public_send instead.", uplevel: 1
6
+ public_send(name, *args, &blk)
7
+ end
28
8
 
29
9
  end
30
-
@@ -1,31 +1,15 @@
1
1
  module Kernel
2
2
 
3
- # Easy access to an object qua class, otherwise known as the object's
4
- # singleton class. #qua_class can also take a block.
5
- #
6
- # string = "Hello World"
7
- #
8
- # string.qua_class do
9
- # def important
10
- # self + "!"
11
- # end
12
- # end
13
- #
14
- # string.important #=> "Hello World!"
15
- #
16
- # Yes, another one.
17
- #
18
- # CREDIT: Trans
19
-
3
+ # @deprecated Use singleton_class or meta_class instead.
20
4
  def qua_class(&block)
5
+ warn "Kernel#qua_class is deprecated. Use singleton_class or meta_class instead.", uplevel: 1
21
6
  if block_given?
22
- (class << self; self; end).class_eval(&block)
7
+ singleton_class.class_eval(&block)
23
8
  else
24
- (class << self; self; end)
9
+ singleton_class
25
10
  end
26
11
  end
27
12
 
28
- # The +qua_class+ method can also be written +quaclass+.
29
13
  alias_method :quaclass, :qua_class
30
14
 
31
15
  end
@@ -1,23 +1,15 @@
1
1
  module Kernel
2
2
 
3
- # Require a pattern of files relatvie to the current file.
4
- # This makes is easy to require an entire directory, for instance:
3
+ # Require a pattern of files relative to the current file.
4
+ # This makes it easy to require an entire directory, for instance:
5
5
  #
6
6
  # require_all 'core_ext/*'
7
7
  #
8
- # NOTE: This method used to allow glob-based requires from the $LOAD_PATH,
9
- # but this was deprecated in favor of relative requiring only, as it is
10
- # consider the typical usecase, and globbing from the $LOAD_PATH is a
11
- # bit dangerous. Better options exist for globbing the $LOAD_PATH such as
12
- # the +plugins+ gem.
13
8
 
14
9
  def require_all(pattern)
15
- c = caller.first
16
- fail "Can't parse #{c}" unless c.rindex(/:\d+(:in `.*')?$/)
17
- file = $` # File.dirname(c)
18
- if /\A\((.*)\)/ =~ file # eval, etc.
19
- raise LoadError, "require_relative is called in #{$1}"
20
- end
10
+ loc = caller_locations(1, 1).first
11
+ file = loc.absolute_path || loc.path
12
+ raise LoadError, "require_all is called in #{loc.label}" unless file
21
13
  glob = File.expand_path(pattern, File.dirname(file))
22
14
  Dir.glob(glob).each do |absolute|
23
15
  require absolute
@@ -26,12 +18,9 @@ module Kernel
26
18
 
27
19
  # Same as #require_all, but for #load.
28
20
  def load_all(pattern, safe=nil)
29
- c = caller.first
30
- fail "Can't parse #{c}" unless c.rindex(/:\d+(:in `.*')?$/)
31
- file = $` # File.dirname(c)
32
- if /\A\((.*)\)/ =~ file # eval, etc.
33
- raise LoadError, "require_relative is called in #{$1}"
34
- end
21
+ loc = caller_locations(1, 1).first
22
+ file = loc.absolute_path || loc.path
23
+ raise LoadError, "load_all is called in #{loc.label}" unless file
35
24
  glob = File.expand_path(pattern, File.dirname(file))
36
25
  Dir.glob(glob).each do |absolute|
37
26
  load absolute, safe
@@ -39,4 +28,3 @@ module Kernel
39
28
  end
40
29
 
41
30
  end
42
-
@@ -1,25 +1,9 @@
1
1
  module Kernel
2
2
 
3
- # A Ruby-ized realization of the K combinator.
3
+ # @deprecated Use Kernel#tap instead (built-in since Ruby 1.9).
4
4
  #
5
- # book_class = Struct.new(:title, :author)
6
- #
7
- # book = returning book_class.new do |book|
8
- # book.title = "Imperium"
9
- # book.author = "Ulick Varange"
10
- # end
11
- #
12
- # book.class #=> book_class
13
- #
14
- # Technically, #returning probably should force the return of
15
- # the stated object irregardless of any return statements that
16
- # might appear within it's block. This might differentiate
17
- # #returning from #with, however it also would require
18
- # implementation in Ruby itself.
19
- #
20
- # CREDIT: Mikael Brockman
21
-
22
- def returning(obj=self) #:yield:
5
+ def returning(obj=self)
6
+ warn "Kernel#returning is deprecated. Use Kernel#tap instead.", uplevel: 1
23
7
  yield obj
24
8
  obj
25
9
  end
@@ -1,36 +1,3 @@
1
- require 'facets/functor'
2
-
3
- module Kernel
4
-
5
- # The tap K-Combinator. This yields self -and- returns self.
6
- #
7
- # 'foo.yml'.tap{ |f| YAML.load(f) } #=> 'foo.yml'
8
- #
9
- # Unlike Ruby's definition, this rendition can be used as a higher
10
- # order message. This form allows a single call before returning
11
- # the receiver.
12
- #
13
- # YAML.tap.load_file('foo.yml').load_file('bar.yml')
14
- #
15
- # IMPORTANT: This is one of few core overrides in Facets.
16
-
17
- def tap #:yield:
18
- if block_given?
19
- yield(self)
20
- self
21
- else
22
- Functor.new{ |op,*a,&b| self.send(op, *a, &b); self }
23
- end
24
- end
25
-
26
- # Old Definition:
27
- #
28
- # def tap #:yield:
29
- # if block_given?
30
- # b.arity == 1 ? yield(self) : instance_eval(&b)
31
- # end
32
- # return self
33
- # end
34
- #
35
-
36
- end
1
+ # Facets no longer overrides Kernel#tap. Use Kernel#functor instead
2
+ # for the block-less Functor form.
3
+ require 'facets/kernel/functor'
@@ -0,0 +1,2 @@
1
+ # @deprecated Use Kernel#functor instead.
2
+ require 'facets/kernel/functor'
@@ -3,38 +3,36 @@ require 'facets/functor'
3
3
  module Kernel
4
4
 
5
5
  # Invokes the method identified by the symbol +method+, passing it any
6
- # arguments and/or the block specified, just like the regular Ruby
7
- # <tt>Object#send</tt> does.
6
+ # arguments and/or the block specified.
8
7
  #
9
- # *Unlike* that method however, a +NoMethodError+ exception will *not*
10
- # be raised and +nil+ will be returned instead, if the receiving object
11
- # is a +nil+ object or NilClass.
8
+ # Unlike regular send, a +NoMethodError+ exception will *not* be raised
9
+ # if the receiving object is +nil+ (see NilClass#try below).
12
10
  #
13
- # For example, without try
11
+ # Compatible with ActiveSupport's #try, plus an additional Functor
12
+ # form when called with no arguments and no block.
14
13
  #
15
- # @example = Struct.new(:name).new("bob")
16
- #
17
- # @example && @example.name
18
- #
19
- # or:
20
- #
21
- # @example ? @example.name : nil
22
- #
23
- # But with try
24
- #
25
- # @example.try(:name) #=> "bob"
26
- #
27
- # or
28
- #
29
- # @example.try.name #=> "bob"
30
- #
31
- # It also accepts arguments and a block, for the method it is trying:
32
- #
33
- # @people.try(:collect){ |p| p.name }
14
+ # @example.try(:name) #=> "bob"
15
+ # @example.try { |o| o.name } #=> "bob" (ActiveSupport block form)
16
+ # @example.try.name #=> "bob" (Facets Functor form)
34
17
  #
35
18
  def try(method=nil, *args, &block)
36
19
  if method
37
20
  __send__(method, *args, &block)
21
+ elsif block_given?
22
+ yield self
23
+ else
24
+ self
25
+ end
26
+ end
27
+
28
+ # Like #try, but raises NoMethodError if the method doesn't exist
29
+ # (unless receiver is nil). Compatible with ActiveSupport's #try!.
30
+ #
31
+ def try!(method=nil, *args, &block)
32
+ if method
33
+ public_send(method, *args, &block)
34
+ elsif block_given?
35
+ yield self
38
36
  else
39
37
  self
40
38
  end
@@ -46,13 +44,25 @@ end
46
44
  class NilClass
47
45
 
48
46
  # See Kernel#try.
49
- def try(method=nil, *args)
47
+ def try(method=nil, *args, &block)
50
48
  if method
51
49
  nil
50
+ elsif block_given?
51
+ nil
52
52
  else
53
- Functor.new{ nil }
53
+ Functor.new { nil }
54
54
  end
55
55
  end
56
56
 
57
- end
57
+ # See Kernel#try!.
58
+ def try!(method=nil, *args, &block)
59
+ if method
60
+ nil
61
+ elsif block_given?
62
+ nil
63
+ else
64
+ Functor.new { nil }
65
+ end
66
+ end
58
67
 
68
+ end
@@ -8,7 +8,6 @@ require_relative 'kernel/callstack.rb'
8
8
  require_relative 'kernel/call_stack.rb'
9
9
  require_relative 'kernel/case.rb'
10
10
  require_relative 'kernel/complete.rb'
11
- require_relative 'kernel/constant.rb'
12
11
  require_relative 'kernel/d.rb'
13
12
  require_relative 'kernel/deep_clone.rb'
14
13
  require_relative 'kernel/deep_copy.rb'
@@ -48,7 +47,6 @@ require_relative 'kernel/not_nil.rb'
48
47
  require_relative 'kernel/object_class.rb'
49
48
  require_relative 'kernel/object_hexid.rb'
50
49
  require_relative 'kernel/object_send.rb'
51
- require_relative 'kernel/p.rb'
52
50
  require_relative 'kernel/presence.rb'
53
51
  require_relative 'kernel/present.rb'
54
52
  require_relative 'kernel/qua_class.rb'
@@ -57,8 +55,8 @@ require_relative 'kernel/respond.rb'
57
55
  require_relative 'kernel/returning.rb'
58
56
  require_relative 'kernel/silence.rb'
59
57
  require_relative 'kernel/silence_warnings.rb'
60
- require_relative 'kernel/singleton_class.rb'
61
58
  require_relative 'kernel/super_method.rb'
59
+ require_relative 'kernel/functor.rb'
62
60
  require_relative 'kernel/tap.rb'
63
61
  require_relative 'kernel/temporarily.rb'
64
62
  #require_relative 'kernel/trap_chain.rb' # uncommon
@@ -70,7 +68,7 @@ require_relative 'kernel/writers.rb'
70
68
  #require_relative 'kernel/y.rb' # uncommon
71
69
  require_relative 'kernel/yes.rb'
72
70
  require_relative 'kernel/__class__.rb'
73
- require_relative 'kernel/__dir__.rb'
71
+ #require_relative 'kernel/__dir__.rb' # removed, use Ruby's built-in __dir__
74
72
  require_relative 'kernel/__get__.rb'
75
73
  require_relative 'kernel/__set__.rb'
76
74
 
@@ -10,7 +10,7 @@
10
10
  #
11
11
  # Copyright (c) 2005 MenTaLguY <mental@rydia.net>
12
12
  #
13
- # Ruby License
13
+ # Ruby License / BSD-2 License
14
14
  #
15
15
  # This module is free software. You may use, modify, and/or redistribute this
16
16
  # software under the same terms as Ruby.