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,91 +1,3 @@
1
1
  require 'ostruct'
2
2
  require 'facets/ostruct/initialize'
3
- require 'facets/ostruct/to_h'
4
- require 'facets/ostruct/merge'
5
- require 'facets/ostruct/each'
6
3
  require 'facets/ostruct/to_ostruct'
7
- require 'facets/ostruct/op_fetch'
8
- require 'facets/ostruct/op_store'
9
-
10
- class OpenStruct
11
-
12
- #--
13
- # TO BE DEPRECATED
14
- # Must consider that accessing instance_delegate instead can be dangerous.
15
- # Might we us a Functor to ensure the table keys are always symbols?
16
- #++
17
-
18
- # Provides access to an OpenStruct's inner table.
19
- #
20
- # o = OpenStruct.new
21
- # o.a = 1
22
- # o.b = 2
23
- # o.instance_delegate.map { |k, v| "#{k} #{v}" }
24
- # #=> ["a 1", "b 2"]
25
- #
26
- # @deprecated Use `#marshal_dump` instead.
27
- #
28
- def instance_delegate
29
- warn "OpenStruct#instance_delegate is deprecated, use #marshal_dump instead."
30
- @table
31
- end
32
-
33
- # @deprecated Use `#marshal_dump` instead.
34
- alias ostruct_delegate instance_delegate
35
-
36
- # Insert/update hash data on the fly.
37
- #
38
- # o = OpenStruct.new
39
- # o.ostruct_update(:a => 2)
40
- # o.a #=> 2
41
- #
42
- # @deprecated Use #merge! instead.
43
- #
44
- def ostruct_update(other)
45
- warn "OpenSrtuct#ostruct_update has been deprecated. Use #merge! instead."
46
- merge!(other)
47
- end
48
-
49
- # Insert/update hash data on the fly.
50
- #
51
- # o = OpenStruct.new
52
- # o.ostruct_update(:a => 2)
53
- # o.a #=> 2
54
- #
55
- # @deprecated Use #merge! instead.
56
- #
57
- def __update__(other)
58
- raise NameError, "OpenSrtuct#__update__ has been deprecated. Use #merge! instead."
59
- #merge!(other)
60
- end
61
-
62
- # TODO: How to handle regular merge, since it lacks punctuation to make it safe.
63
- # Maybe `#update!`? Kind of odd but could work.
64
-
65
- # Merge hash data creating a new OpenStruct object.
66
- #
67
- # o = OpenStruct.new
68
- # x = o.ostruct_merge(:a => 2)
69
- # x.a #=> 2
70
- #
71
- def ostruct_merge(other)
72
- o = dup
73
- o.merge!(other)
74
- o
75
- end
76
-
77
- # Merge hash data creating a new OpenStruct object.
78
- #
79
- # o = OpenStruct.new
80
- # x = o.__merge__(:a => 2)
81
- # x.a #=> 2
82
- #
83
- def __merge__(other)
84
- o = dup
85
- o.merge!(other)
86
- o
87
- end
88
-
89
- end
90
-
91
- # Copyright (c) 2005 Thomas Sawyer (Ruby License)
@@ -1,10 +1,2 @@
1
- class Pathname
2
-
3
- # Is a directory path empty?
4
- #
5
- # Returns [Boolean]
6
- def empty?
7
- Dir.glob(::File.join(to_s, '*')).empty?
8
- end
9
-
10
- end
1
+ # Pathname#empty? is now built into Ruby.
2
+ # This file is kept for backward compatibility but does nothing.
@@ -1,16 +1,26 @@
1
1
  class Pathname
2
2
 
3
- # Glob pathnames.
3
+ # Extends Ruby's built-in Pathname#glob to accept symbol-based
4
+ # flags in addition to the standard File::FNM_* constants.
5
+ #
6
+ # Pathname.new('/tmp').glob('*', :dotmatch)
7
+ #
8
+ # Supported symbols: :noescape, :pathname, :dotmatch, :casefold
9
+ #
10
+ alias_method :_glob_original, :glob
11
+ private :_glob_original
12
+
4
13
  def glob(match, *opts)
5
- flags = glob_flags(opts)
6
- Dir.glob(::File.join(self.to_s, match), flags).collect{ |m| self.class.new(m) }
14
+ if opts.any? { |o| o.is_a?(Symbol) || o.is_a?(String) }
15
+ flags = glob_flags(opts)
16
+ Dir.glob(::File.join(self.to_s, match), flags).map { |m| self.class.new(m) }
17
+ else
18
+ _glob_original(match, *opts)
19
+ end
7
20
  end
8
21
 
9
22
  # Return the first glob match.
10
23
  #
11
- # DEPRECATE: While slightly faster then glob().first, not really worth it
12
- # unless this can be rewritten to shortcut on first match (using fnmatch?).
13
- # In wich case, is there a better name for this method?
14
24
  def glob_first(match, *opts)
15
25
  flags = glob_flags(opts)
16
26
  file = ::Dir.glob(::File.join(self.to_s, match), flags).first
@@ -28,15 +38,12 @@ class Pathname
28
38
  # Does a directory contain a matching entry?
29
39
  # Or if the pathname is a file, same as #fnmatch.
30
40
  #
31
- # TODO: Move to own file? Better name?
32
- #
33
41
  # Returns [Pathname]
34
-
35
- def include?(pattern,*opts)
42
+ def include?(pattern, *opts)
36
43
  if directory?
37
- glob_first(pattern,*opts)
44
+ glob_first(pattern, *opts)
38
45
  else
39
- fnmatch(pattern,*opts)
46
+ fnmatch(pattern, *opts)
40
47
  end
41
48
  end
42
49
 
@@ -1,20 +1,9 @@
1
1
  class Pathname
2
2
 
3
- # Platform dependent null device.
4
- #
5
- # CREDIT: Daniel Burger
6
-
3
+ # @deprecated Use Pathname.new(File::NULL) instead.
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 "Pathname.null is deprecated. Use Pathname.new(File::NULL) instead.", uplevel: 1
6
+ new(File::NULL)
18
7
  end
19
8
 
20
9
  end
@@ -5,28 +5,13 @@ require 'facets/kernel/maybe'
5
5
  # = Randomization Extensions
6
6
  #
7
7
  # This library extends Array, String, Hash and other classes with randomization
8
- # methods. Most of the methods are of one of two kinds. Either they "pick" a
9
- # random element from the reciever or they randomly "shuffle" the reciever.
10
- #
11
- # The most common example is Array#shuffle, which simply randmomizes the
12
- # order of an array's elements.
13
- #
14
- # [1,2,3].shuffle #~> [2,3,1]
15
- #
16
- # The other methods do similar things for their respective classes.
17
- #
18
- # The classes are all extended via mixins which have been created within
19
- # Ruby's Random class.
8
+ # methods.
20
9
  #
21
10
  # Credit for this work is due to:
22
11
  #
23
12
  # * Ilmari Heikkinen
24
13
  # * Christian Neukirchen
25
14
  # * Thomas Sawyer
26
- #
27
- # NOTE: Inline QED tests are almost pointless here b/c... yea, it's random.
28
- # So indtead of the usual `#=>` we use `#~>` which means approx. equal and
29
- # prevens QED from making a hard assertion.
30
15
 
31
16
  class Random
32
17
 
@@ -37,10 +22,6 @@ class Random
37
22
  public :number
38
23
  end
39
24
 
40
- ##def self.number(*args)
41
- ## ::Kernel.rand(*args)
42
- ##end
43
-
44
25
  # Module method to generate a random letter.
45
26
  #
46
27
  # Random.letter #~> "q"
@@ -68,36 +49,19 @@ class Random
68
49
  # CREDIT: Lavir the Whiolet, Thomas Sawyer
69
50
  def at_rand
70
51
  first, last = first(), last()
71
- if first.respond_to?(:random_delta) # TODO: work on this!!!
52
+ if first.respond_to?(:random_delta)
72
53
  begin
73
54
  first.random_delta(last, exclude_end?)
74
55
  rescue
75
- to_a.at_rand
56
+ to_a.sample
76
57
  end
77
58
  else
78
- to_a.at_rand
59
+ to_a.sample
79
60
  end
80
- ##elsif first.respond_to?(:succ)
81
- ## # optimized algorithm
82
- ## if (Fixnum === first || Bignum === first) &&
83
- ## (Fixnum === last || Bignum === last)
84
- ## last -= 1 if exclude_end?
85
- ## return nil if last < first
86
- ## return Random.number(last - first + 1) + first
87
- ## end
88
- ## # standard algorithm
89
- ## return to_a.at_rand
90
- ##elsif Numeric === first && Numeric === last
91
- ## return nil if last < first
92
- ## return nil if exclude_end? && last == first
93
- ## return (last - first) * Random.number + first
94
- ##else
95
- ## return nil
96
- ##end
97
61
  end
98
62
  end
99
63
 
100
- # Random extensions fo Integer class.
64
+ # Random extensions for Integer class.
101
65
  #
102
66
  module IntegerExtensions
103
67
  #
@@ -124,40 +88,19 @@ class Random
124
88
  # Random extensions for Array class.
125
89
  #
126
90
  module ArrayExtensions
127
- # Return a random element from the array.
128
- #
129
- # [1, 2, 3, 4].at_rand #~> 2
130
- # [1, 2, 3, 4].at_rand #~> 4
131
- #
132
- def at_rand
133
- at(Random.number(size))
134
- end
135
91
 
136
- # Same as #at_rand, but acts in place removing a
137
- # random element from the array.
92
+ # Destructive version of Array#sample. Removes and returns
93
+ # a random element, or n random exclusive elements.
138
94
  #
139
95
  # a = [1,2,3,4]
140
- # a.at_rand! #~> 2
96
+ # a.sample! #~> 2
141
97
  # a #~> [1,3,4]
142
98
  #
143
- def at_rand!
144
- return delete_at( Random.number( size ) )
145
- end
146
-
147
- # Similar to #at_rand, but will return an array of randomly
148
- # picked exclusive elements if given a number.
149
- def pick(n=nil)
150
- if n
151
- a = self.dup
152
- a.pick!(n)
153
- else
154
- at(Random.number(size))
155
- end
156
- end
157
-
158
- # Similar to #at_rand!, but given a number will return
159
- # an array of exclusive elements.
160
- def pick!(n=nil)
99
+ # a = [1,2,3,4,5]
100
+ # a.sample!(3) #~> [2,4,1]
101
+ # a #~> [3,5]
102
+ #
103
+ def sample!(n=nil)
161
104
  if n
162
105
  if n > self.size
163
106
  r = self.dup
@@ -173,6 +116,30 @@ class Random
173
116
  end
174
117
  end
175
118
 
119
+ # @deprecated Use Array#sample instead.
120
+ def at_rand
121
+ warn "Array#at_rand is deprecated. Use Array#sample instead.", uplevel: 1
122
+ sample
123
+ end
124
+
125
+ # @deprecated Use Array#sample! instead.
126
+ def at_rand!
127
+ warn "Array#at_rand! is deprecated. Use Array#sample! instead.", uplevel: 1
128
+ sample!
129
+ end
130
+
131
+ # @deprecated Use Array#sample instead.
132
+ def pick(n=nil)
133
+ warn "Array#pick is deprecated. Use Array#sample instead.", uplevel: 1
134
+ n ? sample(n) : sample
135
+ end
136
+
137
+ # @deprecated Use Array#sample! instead.
138
+ def pick!(n=nil)
139
+ warn "Array#pick! is deprecated. Use Array#sample! instead.", uplevel: 1
140
+ sample!(n)
141
+ end
142
+
176
143
  # Random index.
177
144
  #
178
145
  def rand_index
@@ -184,14 +151,6 @@ class Random
184
151
  # elements, otherwise returns a random number of elements
185
152
  # upto the size of the Array.
186
153
  #
187
- # By defualt the returned values are exclusive of
188
- # each other, but if _exclusive_ is set to <tt>false</tt>,
189
- # the same values can be choosen more than once.
190
- #
191
- # When _exclusive_ is <tt>true</tt> (the default) and the
192
- # _number_ given is greater than the size of the array,
193
- # then all values are returned.
194
- #
195
154
  # [1, 2, 3, 4].rand_subset(1) #~> [2]
196
155
  # [1, 2, 3, 4].rand_subset(4) #~> [2, 1, 3, 4]
197
156
  # [1, 2, 3, 4].rand_subset #~> [1, 3, 4]
@@ -200,7 +159,6 @@ class Random
200
159
  def rand_subset(number=nil, exclusive=true)
201
160
  number = Random.number(size) unless number
202
161
  number = number.to_int
203
- #return self.dup if (number >= size and exlusive)
204
162
  return sort_by{rand}.slice(0,number) if exclusive
205
163
  ri =[]; number.times { |n| ri << Random.number(size) }
206
164
  return values_at(*ri)
@@ -223,36 +181,6 @@ class Random
223
181
  end
224
182
  end
225
183
 
226
- # Randomize the order of an array.
227
- #
228
- # [1,2,3,4].shuffle #~> [2,4,1,3]
229
- #
230
- def shuffle
231
- dup.shuffle!
232
- #sort_by{Random.number}
233
- end
234
-
235
- # As with #shuffle but modifies the array in place.
236
- # The algorithm used here is known as a Fisher-Yates shuffle.
237
- #
238
- # a = [1,2,3,4]
239
- # a.shuffle!
240
- #
241
- # a #~> [2,4,1,3]
242
- #
243
- # CREDIT Niel Spring
244
- def shuffle!
245
- s = size
246
- each_index do |j|
247
- i = Random.number(s-j)
248
- #self[j], self[j+i] = self[j+i], self[j]
249
- tmp = self[j]
250
- self[j] = self[j+i]
251
- self[j+i] = tmp
252
- end
253
- self
254
- end
255
-
256
184
  end
257
185
 
258
186
  # Random extensions for Hash class.
@@ -260,7 +188,7 @@ class Random
260
188
  module HashExtensions
261
189
  # Returns a random key.
262
190
  #
263
- # {:one => 1, :two => 2, :three => 3}.pick_key #~> :three
191
+ # {:one => 1, :two => 2, :three => 3}.rand_key #~> :three
264
192
  #
265
193
  def rand_key
266
194
  keys.at(Random.number(keys.size))
@@ -278,11 +206,9 @@ class Random
278
206
  return k
279
207
  end
280
208
 
281
- alias_method( :pick_key, :rand_key! )
282
-
283
209
  # Returns a random key-value pair.
284
210
  #
285
- # {:one => 1, :two => 2, :three => 3}.pick #~> [:one, 1]
211
+ # {:one => 1, :two => 2, :three => 3}.rand_pair #~> [:one, 1]
286
212
  #
287
213
  def rand_pair
288
214
  k = rand_key
@@ -301,8 +227,6 @@ class Random
301
227
  return k,v
302
228
  end
303
229
 
304
- alias_method( :pick_pair, :rand_pair! )
305
-
306
230
  # Returns a random hash value.
307
231
  #
308
232
  # {:one => 1, :two => 2, :three => 3}.rand_value #~> 2
@@ -315,8 +239,8 @@ class Random
315
239
  # Deletes a random key-value pair and returns the value.
316
240
  #
317
241
  # a = {:one => 1, :two => 2, :three => 3}
318
- # a.at_rand! #~> 2
319
- # a #~> {:one => 1, :three => 3}
242
+ # a.rand_value! #~> 2
243
+ # a #~> {:one => 1, :three => 3}
320
244
  #
321
245
  def rand_value!
322
246
  k,v = rand_pair
@@ -324,11 +248,6 @@ class Random
324
248
  return v
325
249
  end
326
250
 
327
- alias_method( :pick, :rand_value! )
328
-
329
- alias_method( :at_rand, :rand_value )
330
- alias_method( :at_rand!, :rand_value! )
331
-
332
251
  # Returns a copy of the hash with _values_ arranged
333
252
  # in new random order.
334
253
  #
@@ -364,15 +283,12 @@ class Random
364
283
  # Class-level methods.
365
284
  module Self
366
285
  # Returns a randomly generated string. One possible use is
367
- # password initialization. Takes a max legnth of characters
286
+ # password initialization. Takes a max length of characters
368
287
  # (default 8) and an optional valid char Regexp (default /\w\d/).
369
288
  #
370
289
  # String.random #~> 'dd4qed4r'
371
290
  #
372
291
  # CREDIT George Moschovitis
373
- #--
374
- # TODO: This is not very efficient. Better way?
375
- #++
376
292
  def random(max_length = 8, char_re = /[\w\d]/)
377
293
  raise ArgumentError.new('second argument must be a regular expression') unless char_re.is_a?(Regexp)
378
294
  string = ""
@@ -387,18 +303,17 @@ class Random
387
303
  #
388
304
  # CREDIT: Guido De Rosa
389
305
  def random_binary(n_bytes)
390
- ( Array.new(n_bytes){ rand(0x100) } ).pack('c*')
306
+ ( Array.new(n_bytes){ rand(0x100) } ).pack('c*')
391
307
  end
392
308
  end
393
309
 
394
310
  # Return a random separation of the string.
395
- # Default separation is by charaacter.
311
+ # Default separation is by character.
396
312
  #
397
313
  # "Ruby rules".at_rand(' ') #~> ["Ruby"]
398
314
  #
399
315
  def at_rand( separator=// )
400
- #separator = self.class.patterns( separator )
401
- self.split(separator,-1).at_rand
316
+ self.split(separator,-1).sample
402
317
  end
403
318
 
404
319
  # Return a random separation while removing it
@@ -409,7 +324,6 @@ class Random
409
324
  # s #~> "rules"
410
325
  #
411
326
  def at_rand!( separator=// )
412
- #separator = self.class.patterns( separator )
413
327
  a = self.shatter( separator )
414
328
  w = []; a.each_with_index { |s,i| i % 2 == 0 ? w << s : w.last << s }
415
329
  i = Random.number(w.size)
@@ -447,8 +361,8 @@ class Random
447
361
  Random.number(size)
448
362
  end
449
363
 
450
- # Return the string with seperated sections arranged
451
- # in a random order. The default seperation is by character.
364
+ # Return the string with separated sections arranged
365
+ # in a random order. The default separation is by character.
452
366
  #
453
367
  # "Ruby rules".shuffle #~> "e lybRsuur"
454
368
  #
@@ -42,7 +42,7 @@ class Tuple
42
42
  if block_given?
43
43
  values = []
44
44
  arg.times { |i| values << block[i] }
45
- elseif Integer === arg
45
+ elsif Integer === arg
46
46
  values = [ default ] * arg
47
47
  else
48
48
  values = arg.to_ary
@@ -54,7 +54,7 @@ class Tuple
54
54
  if block_given?
55
55
  @values = []
56
56
  arg.times { |i| @values << blk[i] }
57
- elseif Integer === arg
57
+ elsif Integer === arg
58
58
  @values = [ default ] * arg
59
59
  else
60
60
  @values = arg.to_ary
@@ -278,5 +278,3 @@ class ::Array
278
278
  end
279
279
 
280
280
  end
281
-
282
- # Copyright (c) 2005 Thomas Sawyer (Ruby License)
@@ -1,4 +1,5 @@
1
1
  require 'uri'
2
+ require 'cgi'
2
3
 
3
4
  require 'facets/uri/cgi_escape.rb'
4
5
  require 'facets/uri/cgi_unescape.rb'
@@ -12,12 +13,12 @@ module URI
12
13
  module Kernel
13
14
  #
14
15
  def uri(s, w=%r{[^a-zA-Z_0-9./-]})
15
- URI.escape(s, w)
16
+ CGI.escape(s)
16
17
  end
17
18
 
18
19
  #
19
20
  def unuri(s)
20
- URI.unescape(s)
21
+ CGI.unescape(s)
21
22
  end
22
23
  end
23
24