facets 3.1.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (770) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY.md +177 -0
  3. data/LICENSE.txt +21 -343
  4. data/README.md +34 -41
  5. data/lib/core/facets/array/arrange.rb +1 -42
  6. data/lib/core/facets/array/average.rb +0 -1
  7. data/lib/core/facets/array/before.rb +1 -1
  8. data/lib/core/facets/array/delete_first.rb +21 -0
  9. data/lib/core/facets/array/duplicates.rb +13 -0
  10. data/lib/core/facets/array/indexes.rb +113 -0
  11. data/lib/core/facets/array/nonuniq.rb +6 -8
  12. data/lib/core/facets/array/occurrence.rb +4 -1
  13. data/lib/core/facets/array/remove.rb +39 -0
  14. data/lib/core/facets/array/span.rb +29 -0
  15. data/lib/core/facets/array/split_at.rb +25 -0
  16. data/lib/core/facets/array/standard_deviation.rb +7 -2
  17. data/lib/core/facets/array/step.rb +12 -14
  18. data/lib/core/facets/array/to_ranges.rb +48 -0
  19. data/lib/core/facets/array/uniq_by.rb +3 -3
  20. data/lib/core/facets/array.rb +1 -1
  21. data/lib/core/facets/binding/caller.rb +8 -2
  22. data/lib/core/facets/binding/op_get.rb +7 -11
  23. data/lib/core/facets/binding/self.rb +4 -10
  24. data/lib/core/facets/boolean.rb +1 -1
  25. data/lib/core/facets/class/descendants.rb +0 -2
  26. data/lib/core/facets/class.rb +2 -2
  27. data/lib/core/facets/comparable/bound.rb +13 -1
  28. data/lib/core/facets/comparable/clip.rb +3 -32
  29. data/lib/core/facets/denumerable.rb +0 -3
  30. data/lib/core/facets/dir/find.rb +20 -0
  31. data/lib/core/facets/dir/recurse.rb +8 -26
  32. data/lib/core/facets/dir.rb +1 -1
  33. data/lib/core/facets/enumerable/compact_map.rb +2 -12
  34. data/lib/core/facets/enumerable/defer.rb +2 -13
  35. data/lib/core/facets/enumerable/each_by.rb +0 -2
  36. data/lib/core/facets/enumerable/frequency.rb +2 -2
  37. data/lib/core/facets/enumerable/hinge.rb +3 -4
  38. data/lib/core/facets/enumerable/map_with_index.rb +3 -6
  39. data/lib/core/facets/enumerable/mash.rb +5 -28
  40. data/lib/core/facets/enumerable/uniq_by.rb +4 -8
  41. data/lib/core/facets/enumerable/with_position.rb +58 -0
  42. data/lib/core/facets/enumerable.rb +2 -2
  43. data/lib/core/facets/enumerator.rb +2 -75
  44. data/lib/core/facets/essentials.rb +3 -3
  45. data/lib/core/facets/exception/error_print.rb +6 -71
  46. data/lib/core/facets/file/null.rb +3 -15
  47. data/lib/core/facets/file/read_binary.rb +3 -12
  48. data/lib/core/facets/file.rb +1 -1
  49. data/lib/core/facets/hash/except.rb +0 -7
  50. data/lib/core/facets/hash/fetch_nested.rb +8 -9
  51. data/lib/core/facets/hash/graph.rb +1 -1
  52. data/lib/core/facets/hash/rekey.rb +3 -3
  53. data/lib/core/facets/hash/revalue.rb +3 -3
  54. data/lib/core/facets/hash/{to_proc.rb → setter.rb} +8 -9
  55. data/lib/core/facets/hash/slice.rb +0 -26
  56. data/lib/core/facets/hash/update_keys.rb +4 -11
  57. data/lib/core/facets/hash/update_values.rb +4 -10
  58. data/lib/core/facets/hash.rb +1 -1
  59. data/lib/core/facets/indexable.rb +6 -4
  60. data/lib/core/facets/kernel/as.rb +2 -2
  61. data/lib/core/facets/kernel/callstack.rb +5 -24
  62. data/lib/core/facets/kernel/eigenclass.rb +6 -6
  63. data/lib/core/facets/kernel/extension.rb +3 -6
  64. data/lib/core/facets/kernel/functor.rb +16 -0
  65. data/lib/core/facets/kernel/instance_class.rb +4 -20
  66. data/lib/core/facets/kernel/instance_send.rb +5 -3
  67. data/lib/core/facets/kernel/load_relative.rb +8 -20
  68. data/lib/core/facets/kernel/memo.rb +4 -26
  69. data/lib/core/facets/kernel/meta_class.rb +10 -6
  70. data/lib/core/facets/kernel/object_class.rb +5 -6
  71. data/lib/core/facets/kernel/object_send.rb +5 -26
  72. data/lib/core/facets/kernel/qua_class.rb +4 -20
  73. data/lib/core/facets/kernel/require_all.rb +8 -20
  74. data/lib/core/facets/kernel/returning.rb +3 -19
  75. data/lib/core/facets/kernel/tap.rb +3 -36
  76. data/lib/core/facets/kernel/tee.rb +2 -0
  77. data/lib/core/facets/kernel/try.rb +38 -28
  78. data/lib/core/facets/kernel.rb +2 -4
  79. data/lib/core/facets/lazy.rb +1 -1
  80. data/lib/core/facets/matchdata.rb +1 -1
  81. data/lib/core/facets/module/alias_method_chain.rb +4 -43
  82. data/lib/core/facets/module/attr_setter.rb +3 -2
  83. data/lib/core/facets/module/can.rb +5 -16
  84. data/lib/core/facets/module/class_extend.rb +2 -2
  85. data/lib/core/facets/numeric.rb +2 -2
  86. data/lib/core/facets/object/dup.rb +0 -46
  87. data/lib/core/facets/object.rb +2 -2
  88. data/lib/core/facets/proc/bind.rb +0 -2
  89. data/lib/core/facets/proc/compose.rb +7 -28
  90. data/lib/core/facets/proc/to_method.rb +0 -1
  91. data/lib/core/facets/proc/update.rb +8 -1
  92. data/lib/core/facets/process.rb +1 -1
  93. data/lib/core/facets/range/intersection.rb +42 -0
  94. data/lib/core/facets/range/nudge.rb +6 -8
  95. data/lib/core/facets/range.rb +1 -1
  96. data/lib/core/facets/string/ascii_only.rb +2 -2
  97. data/lib/core/facets/string/cleanlines.rb +0 -2
  98. data/lib/core/facets/string/dashcase.rb +21 -0
  99. data/lib/core/facets/string/lchomp.rb +7 -14
  100. data/lib/core/facets/string/newlines.rb +0 -2
  101. data/lib/core/facets/string/snakecase.rb +12 -5
  102. data/lib/core/facets/string/words.rb +13 -1
  103. data/lib/core/facets/string.rb +0 -1
  104. data/lib/core/facets/struct/attributes.rb +2 -3
  105. data/lib/core/facets/symbol.rb +1 -1
  106. data/lib/core/facets/time/trunc.rb +12 -5
  107. data/lib/core/facets/unboundmethod/arguments.rb +1 -0
  108. data/lib/core/facets/version.rb +1 -17
  109. data/lib/core/facets.rb +0 -1
  110. data/lib/standard/facets/argvector.rb +1 -1
  111. data/lib/standard/facets/cgi/escape_html.rb +14 -25
  112. data/lib/standard/facets/cloneable.rb +4 -51
  113. data/lib/standard/facets/continuation.rb +2 -56
  114. data/lib/standard/facets/crypt3.rb +126 -0
  115. data/lib/standard/facets/date/cmp.rb +32 -0
  116. data/lib/standard/facets/date.rb +1 -0
  117. data/lib/standard/facets/digest.rb +0 -1
  118. data/lib/standard/facets/fileutils/cp_rx.rb +0 -2
  119. data/lib/standard/facets/fileutils/ln_r.rb +0 -1
  120. data/lib/standard/facets/find/select.rb +0 -2
  121. data/lib/standard/facets/getoptlong.rb +3 -59
  122. data/lib/standard/facets/load_monitor.rb +2 -26
  123. data/lib/standard/facets/math/gini_coefficient.rb +5 -4
  124. data/lib/standard/facets/math/kldivergence.rb +8 -7
  125. data/lib/standard/facets/math/percentile.rb +1 -1
  126. data/lib/standard/facets/multiton.rb +1 -1
  127. data/lib/standard/facets/opendsl.rb +33 -0
  128. data/lib/standard/facets/ostruct/initialize.rb +4 -19
  129. data/lib/standard/facets/ostruct/to_ostruct.rb +2 -1
  130. data/lib/standard/facets/ostruct.rb +0 -88
  131. data/lib/standard/facets/pathname/empty.rb +2 -10
  132. data/lib/standard/facets/pathname/glob.rb +19 -12
  133. data/lib/standard/facets/pathname/null.rb +3 -14
  134. data/lib/standard/facets/pic.rb +173 -0
  135. data/lib/standard/facets/random.rb +47 -133
  136. data/lib/standard/facets/tuple.rb +2 -4
  137. data/lib/standard/facets/uri.rb +3 -2
  138. metadata +31 -1172
  139. data/.index +0 -80
  140. data/.yardopts +0 -10
  141. data/NOTICE.rdoc +0 -167
  142. data/demo/applique/assertion_framework.rb +0 -1
  143. data/demo/applique/file_helpers.rb +0 -34
  144. data/demo/core/array/after.md +0 -13
  145. data/demo/core/array/arrange.md +0 -17
  146. data/demo/core/array/before.md +0 -14
  147. data/demo/core/array/collapse.md +0 -15
  148. data/demo/core/array/collisions.md +0 -30
  149. data/demo/core/array/commonality.md +0 -31
  150. data/demo/core/array/conjoin.md +0 -47
  151. data/demo/core/array/contains.md +0 -9
  152. data/demo/core/array/delete_unless.md +0 -13
  153. data/demo/core/array/delete_values.md +0 -10
  154. data/demo/core/array/delete_values_at.md +0 -15
  155. data/demo/core/array/divide.md +0 -14
  156. data/demo/core/array/duplicates.md +0 -14
  157. data/demo/core/array/each_overlap.md +0 -12
  158. data/demo/core/array/each_pair.md +0 -13
  159. data/demo/core/array/each_value.md +0 -12
  160. data/demo/core/array/entropy.md +0 -13
  161. data/demo/core/array/extract_options.md +0 -13
  162. data/demo/core/array/first.md +0 -11
  163. data/demo/core/array/from.md +0 -11
  164. data/demo/core/array/ideal_entropy.md +0 -11
  165. data/demo/core/array/intersection.md +0 -11
  166. data/demo/core/array/last.md +0 -11
  167. data/demo/core/array/median.md +0 -23
  168. data/demo/core/array/merge.md +0 -15
  169. data/demo/core/array/missing.md +0 -10
  170. data/demo/core/array/mode.md +0 -9
  171. data/demo/core/array/nonuniq.md +0 -16
  172. data/demo/core/array/not_empty.md +0 -8
  173. data/demo/core/array/occur.md +0 -18
  174. data/demo/core/array/occurrence.md +0 -13
  175. data/demo/core/array/only.md +0 -9
  176. data/demo/core/array/op_pow.md +0 -10
  177. data/demo/core/array/pad.md +0 -28
  178. data/demo/core/array/peek.md +0 -10
  179. data/demo/core/array/poke.md +0 -15
  180. data/demo/core/array/probability +0 -8
  181. data/demo/core/array/pull.md +0 -10
  182. data/demo/core/array/recurse.md +0 -10
  183. data/demo/core/array/recursively.md +0 -20
  184. data/demo/core/array/reject_values.md +0 -10
  185. data/demo/core/array/splice.md +0 -14
  186. data/demo/core/array/split.md +0 -13
  187. data/demo/core/array/squeeze.md +0 -14
  188. data/demo/core/array/step.md +0 -16
  189. data/demo/core/array/store.md +0 -9
  190. data/demo/core/array/thru.md +0 -12
  191. data/demo/core/array/to_h.md +0 -11
  192. data/demo/core/array/traverse.md +0 -20
  193. data/demo/core/array/uniq_by.md +0 -16
  194. data/demo/core/array/unique_permutation.md +0 -14
  195. data/demo/core/array/zip.md +0 -8
  196. data/demo/core/binding/caller.md +0 -57
  197. data/demo/core/binding/defined.md +0 -10
  198. data/demo/core/binding/opvars.md +0 -16
  199. data/demo/core/binding/self.md +0 -6
  200. data/demo/core/class/descendants.md +0 -13
  201. data/demo/core/class/to_proc.md +0 -11
  202. data/demo/core/comparable/at_least.md +0 -11
  203. data/demo/core/comparable/at_most.md +0 -11
  204. data/demo/core/comparable/bound.md +0 -13
  205. data/demo/core/comparable/cap.md +0 -11
  206. data/demo/core/comparable/clip.md +0 -29
  207. data/demo/core/comparable/cmp.md +0 -18
  208. data/demo/core/comparable/op_get.md +0 -32
  209. data/demo/core/dir/ascend.md +0 -24
  210. data/demo/core/dir/descend.md +0 -16
  211. data/demo/core/dir/multiglob.md +0 -41
  212. data/demo/core/dir/parent.md +0 -6
  213. data/demo/core/dir/recurse.md +0 -41
  214. data/demo/core/exception/detail.md +0 -19
  215. data/demo/core/facets.md +0 -6
  216. data/demo/core/filetest/root.md +0 -13
  217. data/demo/core/hash/recursively.md +0 -21
  218. data/demo/core/indexable.md +0 -95
  219. data/demo/core/integer/bitmask.md +0 -46
  220. data/demo/core/integer/factorial.md +0 -10
  221. data/demo/core/integer/length.md +0 -7
  222. data/demo/core/integer/multiple.md +0 -12
  223. data/demo/core/integer/of.md +0 -11
  224. data/demo/core/integer/ordinal.md +0 -11
  225. data/demo/core/integer/times_collect.md +0 -9
  226. data/demo/core/matchdata/match.md +0 -7
  227. data/demo/core/matchdata/matchset.md +0 -7
  228. data/demo/core/matchdata/matchtree.md +0 -10
  229. data/demo/core/module/cattr.md +0 -43
  230. data/demo/core/module/class_extend.md +0 -64
  231. data/demo/core/module/class_inheritor.md +0 -126
  232. data/demo/core/module/copy_inheritor.md +0 -30
  233. data/demo/core/module/include_as.md +0 -31
  234. data/demo/core/module/method_space.md +0 -24
  235. data/demo/core/string/acronym.md +0 -9
  236. data/demo/core/string/align.md +0 -34
  237. data/demo/core/string/ascii_only.md +0 -37
  238. data/demo/core/string/bracket.md +0 -35
  239. data/demo/core/string/camelcase.md +0 -47
  240. data/demo/core/string/capitalized.md +0 -27
  241. data/demo/core/string/characters.md +0 -11
  242. data/demo/core/string/cleanlines.md +0 -10
  243. data/demo/core/string/cleave.md +0 -49
  244. data/demo/core/string/compress_lines.md +0 -22
  245. data/demo/core/string/crypt.md +0 -15
  246. data/demo/core/string/divide.md +0 -9
  247. data/demo/core/string/each_word.md +0 -11
  248. data/demo/core/string/edit_distance.md +0 -15
  249. data/demo/core/string/exclude.md +0 -15
  250. data/demo/core/string/expand_tabs.md +0 -69
  251. data/demo/core/string/fold.md +0 -14
  252. data/demo/core/string/indent.md +0 -65
  253. data/demo/core/string/index_all.md +0 -14
  254. data/demo/core/string/interpolate.md +0 -8
  255. data/demo/core/string/lchomp.md +0 -14
  256. data/demo/core/string/line_wrap.md +0 -7
  257. data/demo/core/string/lowercase.md +0 -12
  258. data/demo/core/string/methodize.md +0 -22
  259. data/demo/core/string/modulize.md +0 -22
  260. data/demo/core/string/mscan.md +0 -10
  261. data/demo/core/string/natcmp.md +0 -10
  262. data/demo/core/string/nchar.md +0 -9
  263. data/demo/core/string/newlines.md +0 -9
  264. data/demo/core/string/number.md +0 -27
  265. data/demo/core/string/op_div.md +0 -10
  266. data/demo/core/string/op_sub.md +0 -7
  267. data/demo/core/string/pathize.md +0 -22
  268. data/demo/core/string/quote.md +0 -20
  269. data/demo/core/string/random.md +0 -25
  270. data/demo/core/string/range.md +0 -19
  271. data/demo/core/string/remove.md +0 -33
  272. data/demo/core/string/rewrite.md +0 -9
  273. data/demo/core/string/shatter.md +0 -9
  274. data/demo/core/string/similarity.md +0 -12
  275. data/demo/core/string/snakecase.md +0 -14
  276. data/demo/core/string/splice.md +0 -28
  277. data/demo/core/string/squish.md +0 -27
  278. data/demo/core/string/store.md +0 -10
  279. data/demo/core/string/subtract.md +0 -8
  280. data/demo/core/string/titlecase.md +0 -8
  281. data/demo/core/string/to_re.md +0 -22
  282. data/demo/core/string/trim.md +0 -92
  283. data/demo/core/string/unbracket.md +0 -24
  284. data/demo/core/string/underscore.md +0 -17
  285. data/demo/core/string/unfold.md +0 -9
  286. data/demo/core/string/unindent.md +0 -65
  287. data/demo/core/string/unquote.md +0 -6
  288. data/demo/core/string/uppercase.md +0 -15
  289. data/demo/core/string/variablize.md +0 -7
  290. data/demo/core/string/word_wrap.md +0 -54
  291. data/demo/core/string/words.md +0 -13
  292. data/demo/core/string/xor.md +0 -8
  293. data/demo/standard/02_cloneable.rdoc +0 -46
  294. data/demo/standard/03_enumargs.rdoc +0 -75
  295. data/demo/standard/04_equitable.rdoc +0 -35
  296. data/demo/standard/05_instantiable.rdoc +0 -42
  297. data/demo/standard/basic_object.rdoc +0 -22
  298. data/demo/standard/memoizable.rdoc +0 -134
  299. data/demo/standard/mulititon.rdoc +0 -156
  300. data/lib/core/facets/applique/file_helpers.rb +0 -33
  301. data/lib/core/facets/array/intersection.rb +0 -25
  302. data/lib/core/facets/array/op_pow.rb +0 -12
  303. data/lib/core/facets/array/to_h.rb +0 -19
  304. data/lib/core/facets/class/singleton.rb +0 -1
  305. data/lib/core/facets/class/singleton_class.rb +0 -16
  306. data/lib/core/facets/class/subclasses.rb +0 -28
  307. data/lib/core/facets/dir/each_child.rb +0 -16
  308. data/lib/core/facets/enumerable/filter.rb +0 -33
  309. data/lib/core/facets/enumerable/sum.rb +0 -40
  310. data/lib/core/facets/exception/set_message.rb +0 -10
  311. data/lib/core/facets/file/write.rb +0 -24
  312. data/lib/core/facets/fixnum.rb +0 -7
  313. data/lib/core/facets/kernel/__dir__.rb +0 -28
  314. data/lib/core/facets/kernel/constant.rb +0 -22
  315. data/lib/core/facets/kernel/instance_exec.rb +0 -47
  316. data/lib/core/facets/kernel/p.rb +0 -24
  317. data/lib/core/facets/kernel/singleton_class.rb +0 -10
  318. data/lib/core/facets/matchdata/match.rb +0 -15
  319. data/lib/core/facets/method/curry.rb +0 -13
  320. data/lib/core/facets/numeric/negative.rb +0 -1
  321. data/lib/core/facets/numeric/positive.rb +0 -15
  322. data/lib/core/facets/object/itself.rb +0 -16
  323. data/lib/core/facets/object/try_dup.rb +0 -1
  324. data/lib/core/facets/process/daemon.rb +0 -32
  325. data/lib/core/facets/range/overlap.rb +0 -12
  326. data/lib/core/facets/string/characters.rb +0 -13
  327. data/lib/core/facets/string/crypt.rb +0 -22
  328. data/lib/core/facets/symbol/succ.rb +0 -23
  329. data/lib/core/facets.yml +0 -80
  330. data/lib/standard/facets/basicobject.rb +0 -75
  331. data/lib/standard/facets/digest/base64digest.rb +0 -45
  332. data/lib/standard/facets/ostruct/each.rb +0 -11
  333. data/lib/standard/facets/ostruct/merge.rb +0 -21
  334. data/lib/standard/facets/ostruct/op_fetch.rb +0 -29
  335. data/lib/standard/facets/ostruct/op_store.rb +0 -1
  336. data/lib/standard/facets/ostruct/to_h.rb +0 -10
  337. data/test/core/array/test_arrange.rb +0 -37
  338. data/test/core/array/test_average.rb +0 -16
  339. data/test/core/array/test_before.rb +0 -48
  340. data/test/core/array/test_collapse.rb +0 -23
  341. data/test/core/array/test_commonality.rb +0 -35
  342. data/test/core/array/test_conjoin.rb +0 -50
  343. data/test/core/array/test_contains.rb +0 -14
  344. data/test/core/array/test_delete.rb +0 -42
  345. data/test/core/array/test_delete_unless.rb +0 -17
  346. data/test/core/array/test_delete_values.rb +0 -31
  347. data/test/core/array/test_divide.rb +0 -24
  348. data/test/core/array/test_duplicates.rb +0 -29
  349. data/test/core/array/test_each_overlap.rb +0 -31
  350. data/test/core/array/test_each_pair.rb +0 -16
  351. data/test/core/array/test_each_value.rb +0 -16
  352. data/test/core/array/test_entropy.rb +0 -23
  353. data/test/core/array/test_extract_options.rb +0 -28
  354. data/test/core/array/test_first.rb +0 -17
  355. data/test/core/array/test_from.rb +0 -42
  356. data/test/core/array/test_intersection.rb +0 -19
  357. data/test/core/array/test_last.rb +0 -17
  358. data/test/core/array/test_median.rb +0 -27
  359. data/test/core/array/test_merge.rb +0 -27
  360. data/test/core/array/test_missing.rb +0 -12
  361. data/test/core/array/test_mode.rb +0 -17
  362. data/test/core/array/test_nonuniq.rb +0 -25
  363. data/test/core/array/test_not_empty.rb +0 -17
  364. data/test/core/array/test_occur.rb +0 -52
  365. data/test/core/array/test_occurrence.rb +0 -20
  366. data/test/core/array/test_only.rb +0 -17
  367. data/test/core/array/test_op_pow.rb +0 -13
  368. data/test/core/array/test_pad.rb +0 -40
  369. data/test/core/array/test_peek.rb +0 -28
  370. data/test/core/array/test_poke.rb +0 -21
  371. data/test/core/array/test_probability.rb +0 -18
  372. data/test/core/array/test_pull.rb +0 -15
  373. data/test/core/array/test_recurse.rb +0 -40
  374. data/test/core/array/test_recursively.rb +0 -33
  375. data/test/core/array/test_reject_values.rb +0 -17
  376. data/test/core/array/test_splice.rb +0 -21
  377. data/test/core/array/test_split.rb +0 -22
  378. data/test/core/array/test_squeeze.rb +0 -22
  379. data/test/core/array/test_standard_deviation.rb +0 -18
  380. data/test/core/array/test_step.rb +0 -28
  381. data/test/core/array/test_store.rb +0 -22
  382. data/test/core/array/test_to_h.rb +0 -14
  383. data/test/core/array/test_traverse.rb +0 -26
  384. data/test/core/array/test_uniq_by.rb +0 -24
  385. data/test/core/array/test_unique_permutation.rb +0 -23
  386. data/test/core/array/test_variance.rb +0 -17
  387. data/test/core/array/test_zip.rb +0 -13
  388. data/test/core/binding/test_caller.rb +0 -69
  389. data/test/core/binding/test_defined.rb +0 -18
  390. data/test/core/binding/test_op.rb +0 -24
  391. data/test/core/binding/test_self.rb +0 -16
  392. data/test/core/class/test_descendents.rb +0 -19
  393. data/test/core/class/test_preallocate.rb +0 -32
  394. data/test/core/class/test_subclasses.rb +0 -20
  395. data/test/core/class/test_to_proc.rb +0 -16
  396. data/test/core/comparable/test_bound.rb +0 -32
  397. data/test/core/comparable/test_cap.rb +0 -36
  398. data/test/core/comparable/test_clip.rb +0 -31
  399. data/test/core/comparable/test_cmp.rb +0 -16
  400. data/test/core/comparable/test_op_get.rb +0 -61
  401. data/test/core/denumerable_tc.rb +0 -194
  402. data/test/core/dir/test_ascend.rb +0 -40
  403. data/test/core/dir/test_descend.rb +0 -24
  404. data/test/core/dir/test_each_child.rb +0 -22
  405. data/test/core/dir/test_multiglob.rb +0 -25
  406. data/test/core/dir/test_parent.rb +0 -14
  407. data/test/core/dir/test_recurse.rb +0 -26
  408. data/test/core/enumerable/test_accumulate.rb +0 -44
  409. data/test/core/enumerable/test_cluster.rb +0 -36
  410. data/test/core/enumerable/test_compact_map.rb +0 -32
  411. data/test/core/enumerable/test_defer.rb +0 -27
  412. data/test/core/enumerable/test_each_by.rb +0 -49
  413. data/test/core/enumerable/test_every.rb +0 -33
  414. data/test/core/enumerable/test_ewise.rb +0 -30
  415. data/test/core/enumerable/test_exclude.rb +0 -15
  416. data/test/core/enumerable/test_expand.rb +0 -15
  417. data/test/core/enumerable/test_filter.rb +0 -19
  418. data/test/core/enumerable/test_find_yield.rb +0 -96
  419. data/test/core/enumerable/test_frequency.rb +0 -15
  420. data/test/core/enumerable/test_graph.rb +0 -42
  421. data/test/core/enumerable/test_hashify.rb +0 -113
  422. data/test/core/enumerable/test_key_by.rb +0 -22
  423. data/test/core/enumerable/test_map_by.rb +0 -27
  424. data/test/core/enumerable/test_map_send.rb +0 -26
  425. data/test/core/enumerable/test_map_with_index.rb +0 -23
  426. data/test/core/enumerable/test_mash.rb +0 -17
  427. data/test/core/enumerable/test_modulate.rb +0 -17
  428. data/test/core/enumerable/test_occur.rb +0 -40
  429. data/test/core/enumerable/test_only.rb +0 -40
  430. data/test/core/enumerable/test_per.rb +0 -19
  431. data/test/core/enumerable/test_purge.rb +0 -22
  432. data/test/core/enumerable/test_recursively.rb +0 -33
  433. data/test/core/enumerable/test_squeeze.rb +0 -35
  434. data/test/core/enumerable/test_sum.rb +0 -40
  435. data/test/core/enumerable/test_uniq_by.rb +0 -25
  436. data/test/core/enumerable/test_visit.rb +0 -14
  437. data/test/core/enumerator/lazy/test_squeeze.rb +0 -33
  438. data/test/core/enumerator/test_fx.rb +0 -16
  439. data/test/core/enumerator/test_new.rb +0 -21
  440. data/test/core/enumerator_tc.rb +0 -40
  441. data/test/core/exception/test_detail.rb +0 -15
  442. data/test/core/exception/test_raised.rb +0 -15
  443. data/test/core/exception/test_suppress.rb +0 -16
  444. data/test/core/file/test_append.rb +0 -22
  445. data/test/core/file/test_create.rb +0 -17
  446. data/test/core/file/test_ext.rb +0 -31
  447. data/test/core/file/test_null.rb +0 -14
  448. data/test/core/file/test_read_binary.rb +0 -19
  449. data/test/core/file/test_read_list.rb +0 -16
  450. data/test/core/file/test_rewrite.rb +0 -35
  451. data/test/core/file/test_rootname.rb +0 -13
  452. data/test/core/file/test_sanitize.rb +0 -32
  453. data/test/core/file/test_split_all.rb +0 -14
  454. data/test/core/file/test_write.rb +0 -22
  455. data/test/core/file/test_writelines.rb +0 -21
  456. data/test/core/filetest/test_root.rb +0 -14
  457. data/test/core/functor_tc.rb +0 -41
  458. data/test/core/hash/test_alias.rb +0 -25
  459. data/test/core/hash/test_argumentize.rb +0 -23
  460. data/test/core/hash/test_at.rb +0 -16
  461. data/test/core/hash/test_autonew.rb +0 -22
  462. data/test/core/hash/test_collate.rb +0 -61
  463. data/test/core/hash/test_count.rb +0 -23
  464. data/test/core/hash/test_data.rb +0 -35
  465. data/test/core/hash/test_dearray_values.rb +0 -26
  466. data/test/core/hash/test_deep_merge.rb +0 -31
  467. data/test/core/hash/test_deep_rekey.rb +0 -131
  468. data/test/core/hash/test_delete_at.rb +0 -18
  469. data/test/core/hash/test_delete_unless.rb +0 -18
  470. data/test/core/hash/test_delete_values.rb +0 -30
  471. data/test/core/hash/test_diff.rb +0 -16
  472. data/test/core/hash/test_each_with_key.rb +0 -16
  473. data/test/core/hash/test_expect.rb +0 -34
  474. data/test/core/hash/test_fetch_nested.rb +0 -24
  475. data/test/core/hash/test_graph.rb +0 -40
  476. data/test/core/hash/test_insert.rb +0 -20
  477. data/test/core/hash/test_inverse.rb +0 -20
  478. data/test/core/hash/test_join.rb +0 -32
  479. data/test/core/hash/test_keys.rb +0 -41
  480. data/test/core/hash/test_new_with.rb +0 -17
  481. data/test/core/hash/test_op_add.rb +0 -17
  482. data/test/core/hash/test_op_and.rb +0 -31
  483. data/test/core/hash/test_op_mul.rb +0 -17
  484. data/test/core/hash/test_op_or.rb +0 -17
  485. data/test/core/hash/test_op_push.rb +0 -34
  486. data/test/core/hash/test_op_sub.rb +0 -28
  487. data/test/core/hash/test_recurse.rb +0 -39
  488. data/test/core/hash/test_recursively.rb +0 -71
  489. data/test/core/hash/test_rekey.rb +0 -119
  490. data/test/core/hash/test_replace_each.rb +0 -17
  491. data/test/core/hash/test_revalue.rb +0 -98
  492. data/test/core/hash/test_reverse_merge.rb +0 -39
  493. data/test/core/hash/test_slice.rb +0 -36
  494. data/test/core/hash/test_stringify_keys.rb +0 -26
  495. data/test/core/hash/test_swap.rb +0 -15
  496. data/test/core/hash/test_symbolize_keys.rb +0 -26
  497. data/test/core/hash/test_to_mod.rb +0 -24
  498. data/test/core/hash/test_to_proc.rb +0 -23
  499. data/test/core/hash/test_to_struct.rb +0 -22
  500. data/test/core/hash/test_traverse.rb +0 -29
  501. data/test/core/hash/test_update_each.rb +0 -16
  502. data/test/core/hash/test_update_keys.rb +0 -21
  503. data/test/core/hash/test_update_values.rb +0 -15
  504. data/test/core/hash/test_weave.rb +0 -18
  505. data/test/core/hash/test_zip.rb +0 -16
  506. data/test/core/indexable_tc.rb +0 -226
  507. data/test/core/integer/test_bitmask.rb +0 -73
  508. data/test/core/integer/test_factorial.rb +0 -30
  509. data/test/core/integer/test_multiple.rb +0 -16
  510. data/test/core/integer/test_of.rb +0 -36
  511. data/test/core/integer/test_ordinal.rb +0 -27
  512. data/test/core/kernel/test_as.rb +0 -74
  513. data/test/core/kernel/test_ask.rb +0 -9
  514. data/test/core/kernel/test_assign.rb +0 -61
  515. data/test/core/kernel/test_assign_from.rb +0 -48
  516. data/test/core/kernel/test_attr_singleton.rb +0 -51
  517. data/test/core/kernel/test_blank.rb +0 -103
  518. data/test/core/kernel/test_callstack.rb +0 -21
  519. data/test/core/kernel/test_class.rb +0 -14
  520. data/test/core/kernel/test_complete.rb +0 -19
  521. data/test/core/kernel/test_constant.rb +0 -18
  522. data/test/core/kernel/test_d.rb +0 -10
  523. data/test/core/kernel/test_deep_clone.rb +0 -31
  524. data/test/core/kernel/test_deep_copy.rb +0 -15
  525. data/test/core/kernel/test_dir.rb +0 -24
  526. data/test/core/kernel/test_disable_warnings.rb +0 -38
  527. data/test/core/kernel/test_ergo.rb +0 -34
  528. data/test/core/kernel/test_extension.rb +0 -18
  529. data/test/core/kernel/test_get.rb +0 -54
  530. data/test/core/kernel/test_here.rb +0 -13
  531. data/test/core/kernel/test_hierarchical_send.rb +0 -48
  532. data/test/core/kernel/test_in.rb +0 -14
  533. data/test/core/kernel/test_instance_assign.rb +0 -19
  534. data/test/core/kernel/test_instance_class.rb +0 -15
  535. data/test/core/kernel/test_instance_extract.rb +0 -28
  536. data/test/core/kernel/test_instance_replace.rb +0 -47
  537. data/test/core/kernel/test_instance_send.rb +0 -26
  538. data/test/core/kernel/test_maybe.rb +0 -13
  539. data/test/core/kernel/test_meta_alias.rb +0 -18
  540. data/test/core/kernel/test_meta_class.rb +0 -33
  541. data/test/core/kernel/test_meta_def.rb +0 -15
  542. data/test/core/kernel/test_meta_eval.rb +0 -18
  543. data/test/core/kernel/test_method.rb +0 -20
  544. data/test/core/kernel/test_not.rb +0 -51
  545. data/test/core/kernel/test_not_nil.rb +0 -25
  546. data/test/core/kernel/test_object_class.rb +0 -22
  547. data/test/core/kernel/test_object_hexid.rb +0 -20
  548. data/test/core/kernel/test_object_send.rb +0 -25
  549. data/test/core/kernel/test_presence.rb +0 -37
  550. data/test/core/kernel/test_qua_class.rb +0 -25
  551. data/test/core/kernel/test_require_all.rb +0 -11
  552. data/test/core/kernel/test_respond.rb +0 -38
  553. data/test/core/kernel/test_returning.rb +0 -17
  554. data/test/core/kernel/test_silence.rb +0 -24
  555. data/test/core/kernel/test_singleton_class.rb +0 -15
  556. data/test/core/kernel/test_super_method.rb +0 -23
  557. data/test/core/kernel/test_tap.rb +0 -38
  558. data/test/core/kernel/test_temporarily.rb +0 -25
  559. data/test/core/kernel/test_true.rb +0 -31
  560. data/test/core/kernel/test_try.rb +0 -35
  561. data/test/core/kernel/test_val.rb +0 -30
  562. data/test/core/kernel/test_with.rb +0 -18
  563. data/test/core/kernel/test_writers.rb +0 -53
  564. data/test/core/matchdata/test_match.rb +0 -14
  565. data/test/core/matchdata/test_matchset.rb +0 -29
  566. data/test/core/method/test_composition.rb +0 -42
  567. data/test/core/module/test_abstract.rb +0 -24
  568. data/test/core/module/test_alias_accessor.rb +0 -27
  569. data/test/core/module/test_alias_method_chain.rb +0 -34
  570. data/test/core/module/test_alias_module_function.rb +0 -24
  571. data/test/core/module/test_all_instance_methods.rb +0 -27
  572. data/test/core/module/test_ancestor.rb +0 -16
  573. data/test/core/module/test_anonymous.rb +0 -18
  574. data/test/core/module/test_attr_setter.rb +0 -28
  575. data/test/core/module/test_basename.rb +0 -14
  576. data/test/core/module/test_can.rb +0 -22
  577. data/test/core/module/test_class.rb +0 -22
  578. data/test/core/module/test_class_def.rb +0 -22
  579. data/test/core/module/test_class_extend.rb +0 -73
  580. data/test/core/module/test_class_inheritor.rb +0 -135
  581. data/test/core/module/test_copy_inheritor.rb +0 -35
  582. data/test/core/module/test_enclosure.rb +0 -24
  583. data/test/core/module/test_instance_function.rb +0 -30
  584. data/test/core/module/test_instance_method.rb +0 -20
  585. data/test/core/module/test_instance_method_defined.rb +0 -38
  586. data/test/core/module/test_integrate.rb +0 -28
  587. data/test/core/module/test_is.rb +0 -50
  588. data/test/core/module/test_memoize.rb +0 -33
  589. data/test/core/module/test_method_clash.rb +0 -59
  590. data/test/core/module/test_method_space.rb +0 -72
  591. data/test/core/module/test_methodize.rb +0 -26
  592. data/test/core/module/test_modname.rb +0 -13
  593. data/test/core/module/test_module_def.rb +0 -22
  594. data/test/core/module/test_module_load.rb +0 -23
  595. data/test/core/module/test_nodef.rb +0 -19
  596. data/test/core/module/test_op.rb +0 -56
  597. data/test/core/module/test_pathize.rb +0 -25
  598. data/test/core/module/test_preextend.rb +0 -26
  599. data/test/core/module/test_redefine_method.rb +0 -30
  600. data/test/core/module/test_redirect_method.rb +0 -32
  601. data/test/core/module/test_remove.rb +0 -18
  602. data/test/core/module/test_rename_method.rb +0 -34
  603. data/test/core/module/test_revise.rb +0 -61
  604. data/test/core/module/test_set.rb +0 -30
  605. data/test/core/module/test_spacename.rb +0 -15
  606. data/test/core/module/test_to_obj.rb +0 -20
  607. data/test/core/module/test_wrap_method.rb +0 -32
  608. data/test/core/numeric/test_approx.rb +0 -26
  609. data/test/core/numeric/test_delimit.rb +0 -68
  610. data/test/core/numeric/test_distance.rb +0 -16
  611. data/test/core/numeric/test_length.rb +0 -16
  612. data/test/core/numeric/test_round_to.rb +0 -76
  613. data/test/core/numeric/test_spacing.rb +0 -17
  614. data/test/core/object/test_dup.rb +0 -115
  615. data/test/core/object/test_object_state.rb +0 -75
  616. data/test/core/object/test_try_dup.rb +0 -59
  617. data/test/core/proc/test_bind.rb +0 -29
  618. data/test/core/proc/test_bind_to.rb +0 -17
  619. data/test/core/proc/test_compose.rb +0 -27
  620. data/test/core/proc/test_partial.rb +0 -27
  621. data/test/core/proc/test_to_method.rb +0 -43
  622. data/test/core/proc/test_update.rb +0 -15
  623. data/test/core/range/test_combine.rb +0 -32
  624. data/test/core/range/test_nudge.rb +0 -32
  625. data/test/core/range/test_op_add.rb +0 -24
  626. data/test/core/range/test_op_sub.rb +0 -34
  627. data/test/core/range/test_overlap.rb +0 -15
  628. data/test/core/range/test_to_rng.rb +0 -20
  629. data/test/core/range/test_umbrella.rb +0 -32
  630. data/test/core/range/test_within.rb +0 -25
  631. data/test/core/regexp/test_arity.rb +0 -30
  632. data/test/core/regexp/test_multiline.rb +0 -19
  633. data/test/core/regexp/test_op_add.rb +0 -15
  634. data/test/core/regexp/test_op_or.rb +0 -16
  635. data/test/core/regexp/test_to_re.rb +0 -24
  636. data/test/core/string/test_acronym.rb +0 -14
  637. data/test/core/string/test_align.rb +0 -32
  638. data/test/core/string/test_ascii_only.rb +0 -51
  639. data/test/core/string/test_bracket.rb +0 -37
  640. data/test/core/string/test_camelcase.rb +0 -59
  641. data/test/core/string/test_capitalized.rb +0 -36
  642. data/test/core/string/test_characters.rb +0 -13
  643. data/test/core/string/test_cleanlines.rb +0 -12
  644. data/test/core/string/test_cleave.rb +0 -27
  645. data/test/core/string/test_cmp.rb +0 -18
  646. data/test/core/string/test_compress_lines.rb +0 -27
  647. data/test/core/string/test_crypt.rb +0 -17
  648. data/test/core/string/test_divide.rb +0 -17
  649. data/test/core/string/test_each_word.rb +0 -17
  650. data/test/core/string/test_edit_distance.rb +0 -20
  651. data/test/core/string/test_exclude.rb +0 -23
  652. data/test/core/string/test_expand_tabs.rb +0 -83
  653. data/test/core/string/test_file.rb +0 -15
  654. data/test/core/string/test_fold.rb +0 -21
  655. data/test/core/string/test_indent.rb +0 -90
  656. data/test/core/string/test_index_all.rb +0 -22
  657. data/test/core/string/test_interpolate.rb +0 -16
  658. data/test/core/string/test_lchomp.rb +0 -25
  659. data/test/core/string/test_line_wrap.rb +0 -15
  660. data/test/core/string/test_lowercase.rb +0 -18
  661. data/test/core/string/test_margin.rb +0 -16
  662. data/test/core/string/test_methodize.rb +0 -28
  663. data/test/core/string/test_modulize.rb +0 -28
  664. data/test/core/string/test_mscan.rb +0 -18
  665. data/test/core/string/test_natcmp.rb +0 -17
  666. data/test/core/string/test_nchar.rb +0 -17
  667. data/test/core/string/test_newlines.rb +0 -14
  668. data/test/core/string/test_number.rb +0 -44
  669. data/test/core/string/test_op_div.rb +0 -15
  670. data/test/core/string/test_op_sub.rb +0 -15
  671. data/test/core/string/test_pathize.rb +0 -31
  672. data/test/core/string/test_quote.rb +0 -41
  673. data/test/core/string/test_random.rb +0 -25
  674. data/test/core/string/test_range.rb +0 -35
  675. data/test/core/string/test_remove.rb +0 -50
  676. data/test/core/string/test_rewrite.rb +0 -17
  677. data/test/core/string/test_rotate.rb +0 -31
  678. data/test/core/string/test_shatter.rb +0 -17
  679. data/test/core/string/test_similarity.rb +0 -22
  680. data/test/core/string/test_snakecase.rb +0 -22
  681. data/test/core/string/test_splice.rb +0 -37
  682. data/test/core/string/test_squish.rb +0 -31
  683. data/test/core/string/test_store.rb +0 -16
  684. data/test/core/string/test_subtract.rb +0 -16
  685. data/test/core/string/test_titlecase.rb +0 -16
  686. data/test/core/string/test_to_re.rb +0 -35
  687. data/test/core/string/test_trim.rb +0 -116
  688. data/test/core/string/test_unbracket.rb +0 -38
  689. data/test/core/string/test_underscore.rb +0 -21
  690. data/test/core/string/test_unfold.rb +0 -17
  691. data/test/core/string/test_unindent.rb +0 -105
  692. data/test/core/string/test_unquote.rb +0 -13
  693. data/test/core/string/test_uppercase.rb +0 -22
  694. data/test/core/string/test_variablize.rb +0 -15
  695. data/test/core/string/test_word_wrap.rb +0 -80
  696. data/test/core/string/test_words.rb +0 -24
  697. data/test/core/string/test_xor.rb +0 -16
  698. data/test/core/struct/test_replace.rb +0 -18
  699. data/test/core/symbol/test_as_s.rb +0 -15
  700. data/test/core/symbol/test_bang.rb +0 -15
  701. data/test/core/symbol/test_chomp.rb +0 -22
  702. data/test/core/symbol/test_generate.rb +0 -20
  703. data/test/core/symbol/test_not.rb +0 -19
  704. data/test/core/symbol/test_op_div.rb +0 -15
  705. data/test/core/symbol/test_plain.rb +0 -19
  706. data/test/core/symbol/test_query.rb +0 -19
  707. data/test/core/symbol/test_setter.rb +0 -17
  708. data/test/core/symbol/test_succ.rb +0 -16
  709. data/test/core/symbol/test_thrown.rb +0 -22
  710. data/test/core/symbol/test_variablize.rb +0 -14
  711. data/test/core/time/test_ago.rb +0 -18
  712. data/test/core/time/test_change.rb +0 -17
  713. data/test/core/time/test_dst_adjustment.rb +0 -19
  714. data/test/core/time/test_elapse.rb +0 -15
  715. data/test/core/time/test_future.rb +0 -32
  716. data/test/core/time/test_hence.rb +0 -18
  717. data/test/core/time/test_in.rb +0 -18
  718. data/test/core/time/test_less.rb +0 -139
  719. data/test/core/time/test_past.rb +0 -32
  720. data/test/core/time/test_round_to.rb +0 -34
  721. data/test/core/time/test_set.rb +0 -43
  722. data/test/core/time/test_shift.rb +0 -135
  723. data/test/core/time/test_stamp.rb +0 -42
  724. data/test/core/time/test_to_time.rb +0 -15
  725. data/test/core/time/test_trunc.rb +0 -34
  726. data/test/core/unboundmethod/test_arguments.rb +0 -25
  727. data/test/standard/binding/test_block_exec.rb +0 -21
  728. data/test/standard/math/test_abs.rb +0 -13
  729. data/test/standard/math/test_acot.rb +0 -23
  730. data/test/standard/math/test_acoth.rb +0 -22
  731. data/test/standard/math/test_beta.rb +0 -19
  732. data/test/standard/math/test_ceil.rb +0 -22
  733. data/test/standard/math/test_cosec.rb +0 -19
  734. data/test/standard/math/test_cosech.rb +0 -19
  735. data/test/standard/math/test_cot.rb +0 -13
  736. data/test/standard/math/test_coth.rb +0 -13
  737. data/test/standard/math/test_distance.rb +0 -16
  738. data/test/standard/math/test_exp10.rb +0 -14
  739. data/test/standard/math/test_exp2.rb +0 -14
  740. data/test/standard/math/test_factorial.rb +0 -13
  741. data/test/standard/math/test_floor.rb +0 -23
  742. data/test/standard/math/test_gcd.rb +0 -18
  743. data/test/standard/math/test_lcm.rb +0 -13
  744. data/test/standard/math/test_median.rb +0 -17
  745. data/test/standard/math/test_percentile.rb +0 -13
  746. data/test/standard/math/test_pow.rb +0 -30
  747. data/test/standard/math/test_root.rb +0 -15
  748. data/test/standard/math/test_sec.rb +0 -19
  749. data/test/standard/math/test_sech.rb +0 -19
  750. data/test/standard/math/test_sign.rb +0 -20
  751. data/test/standard/math/test_sinc.rb +0 -15
  752. data/test/standard/math/test_srq.rb +0 -20
  753. data/test/standard/pathname/test_chdir.rb +0 -16
  754. data/test/standard/pathname/test_readline.rb +0 -23
  755. data/test/standard/test_argvector.rb +0 -64
  756. data/test/standard/test_cloneable.rb +0 -60
  757. data/test/standard/test_date.rb +0 -82
  758. data/test/standard/test_enumargs.rb +0 -105
  759. data/test/standard/test_equitable.rb +0 -46
  760. data/test/standard/test_instantiable.rb +0 -40
  761. data/test/standard/test_math.rb +0 -3
  762. data/test/standard/test_memoizable.rb +0 -42
  763. data/test/standard/test_multipliers.rb +0 -141
  764. data/test/standard/test_ostruct.rb +0 -191
  765. data/test/standard/test_random.rb +0 -241
  766. data/test/standard/test_shellwords.rb +0 -74
  767. data/test/standard/test_thread.rb +0 -24
  768. data/test/standard/test_timer.rb +0 -62
  769. data/test/standard/test_tuple.rb +0 -68
  770. data/test/standard/test_uri.rb +0 -50
@@ -1,59 +1,3 @@
1
- require 'getoptlong'
2
-
3
- # = GetoptLong
4
- #
5
- # Ruby's standard GetoptLong class with an added DSL.
6
- #
7
- # opts = GetoptLong.new do
8
- # reqs '--expect', '-x'
9
- # flag '--help', '-h'
10
- # end
11
- #
12
- # See GetoptLong::DSL for details.
13
-
14
- class GetoptLong
15
-
16
- alias :init :initialize
17
-
18
- #
19
- def initialize(*arguments, &block)
20
- if block_given?
21
- raise ArgumentError unless arguments.empty?
22
- arguments = DSL.new(&block).arguments
23
- end
24
- init(*arguments)
25
- end
26
-
27
- # DSL-mode parser.
28
- class DSL
29
- attr :arguments
30
-
31
- def initialize(&block)
32
- @arguments = []
33
- instance_eval(&block)
34
- end
35
-
36
- #
37
- def flag(*opts)
38
- @arguments << (opts << GetoptLong::NO_ARGUMENT)
39
- end
40
-
41
- #
42
- def required(*opts)
43
- @arguments << (opts << GetoptLong::REQUIRED_ARGUMENT)
44
- end
45
-
46
- #
47
- alias :reqs :required
48
-
49
- #
50
- def optional(*opts)
51
- @arguments << (opts << GetoptLong::OPTIONAL_ARGUMENT)
52
- end
53
-
54
- #
55
- alias :opts :optional
56
- end
57
-
58
- end
59
-
1
+ # @deprecated GetoptLong is a bundled gem heading for removal.
2
+ # Consider using OptionParser or a modern CLI library instead.
3
+ warn "facets/getoptlong is deprecated. Consider OptionParser instead.", uplevel: 1
@@ -1,26 +1,2 @@
1
- module ::Kernel
2
- class << self
3
- alias_method :require_without_monitor, :require
4
- alias_method :load_without_monitor, :load
5
- end
6
-
7
- alias_method :require_without_monitor, :require
8
- alias_method :load_without_monitor, :load
9
-
10
- # Require script and print what is being require.
11
- def require(file)
12
- $stderr.puts "monitor require: #{file}\n#{caller.inspect}\n\n"
13
- require_without_monitor(file)
14
- end
15
-
16
- module_function :require
17
-
18
- # Load script and print what is being loaded.
19
- def load(file, wrap=false)
20
- $stderr.puts "monitor load: #{file}\n#{caller.inspect}\n\n"
21
- load_without_monitor(file, wrap)
22
- end
23
-
24
- module_function :load
25
- end
26
-
1
+ # @deprecated Monkey-patching require/load globally is dangerous.
2
+ warn "facets/load_monitor is deprecated. It monkey-patches require/load globally.", uplevel: 1
@@ -1,4 +1,5 @@
1
1
  require 'facets/math/approx_equal'
2
+ require 'facets/math/mean'
2
3
 
3
4
  module Math
4
5
 
@@ -13,11 +14,11 @@ module Math
13
14
  # GC = \frac{\sum_{i=1}^N (2i-N-1)x_i}{N^2-\bar{x}}
14
15
  #
15
16
  def self.gini_coefficient(array)
16
- return -1 if size <= 0 or any? { |x| x < 0 }
17
- return 0 if size < 2 or all? { |x| approx_equal(x,0) }
17
+ return -1 if array.size <= 0 or array.any? { |x| x < 0 }
18
+ return 0 if array.size < 2 or array.all? { |x| approx_equal(x,0) }
18
19
  s = 0
19
- sort.each_with_index { |li,i| s += (2*i+1-size)*li }
20
- s.to_f/(size**2*mean).to_f
20
+ array.sort.each_with_index { |li,i| s += (2*i+1-array.size)*li }
21
+ s.to_f/(array.size**2*mean(array)).to_f
21
22
  end
22
23
 
23
24
  ## OLD WAY
@@ -1,19 +1,20 @@
1
1
  module Math
2
2
 
3
- # The Kullback-Leibler divergence from this array to that of +q+.
3
+ # The Kullback-Leibler divergence from distribution +p+ to distribution +q+.
4
+ #
5
+ # Both arrays must be the same size and represent probability distributions
6
+ # (values should be positive).
4
7
  #
5
8
  # NB: You will possibly want to sort both P and Q before calling this
6
9
  # depending on what you're actually trying to measure.
7
10
  #
8
11
  # http://en.wikipedia.org/wiki/Kullback-Leibler_divergence
9
12
  #
10
- def self.kldivergence(array, q)
11
- fail "Buggy."
12
- fail "Cannot compare differently sized arrays." unless size = q.size
13
- kld = 0
14
- each_with_index { |pi,i| kld += pi*Math::log(pi.to_f/q[i].to_f) }
13
+ def self.kldivergence(p, q)
14
+ raise ArgumentError, "Cannot compare differently sized arrays." unless p.size == q.size
15
+ kld = 0.0
16
+ p.each_with_index { |pi, i| kld += pi * Math.log(pi.to_f / q[i].to_f) }
15
17
  kld
16
18
  end
17
19
 
18
20
  end
19
-
@@ -13,7 +13,7 @@ module Math
13
13
  # CREDIT: Ben Koski
14
14
  #
15
15
  # @non-core
16
- # require 'facets/array/precentile'
16
+ # require 'facets/math/percentile'
17
17
  #
18
18
  def self.percentile(array, pcnt)
19
19
  sorted_array = array.sort
@@ -76,7 +76,7 @@
76
76
  #
77
77
  # Copyright (c) 2007 Christoph Rippel, Thomas Sawyer
78
78
  #
79
- # Ruby License
79
+ # Ruby License / BSD-2 License
80
80
  #
81
81
  # This module is free software. You may use, modify, and/or redistribute this
82
82
  # software under the same terms as Ruby.
@@ -0,0 +1,33 @@
1
+ # OpenDSL is a clever way to create a plugable
2
+ # free-form domain specific language.
3
+ #
4
+ # Example = OpenDSL.new do
5
+ # size do
6
+ # 100
7
+ # end
8
+ # end
9
+ #
10
+ # class Foo
11
+ # include Example
12
+ # end
13
+ #
14
+ # Foo.new.size #=> 100
15
+ #
16
+ class OpenDSL < Module
17
+
18
+ #
19
+ def initialize(&block)
20
+ instance_eval(&block) if block_given?
21
+ end
22
+
23
+ #
24
+ def method_missing(s, *a, &b)
25
+ if block_given?
26
+ define_method(s, &b)
27
+ else
28
+ super(s, *a, &b)
29
+ end
30
+ end
31
+
32
+ end
33
+
@@ -17,30 +17,15 @@ class OpenStruct
17
17
  # p.gender = :M
18
18
  # end
19
19
  #
20
- # Alternatively you can provide a default block:
21
- #
22
- # stuff = OpenStruct.new{ |o,k| o[k] = [] }
23
- # stuff.place << :a
24
- # stuff.place << :b
25
- # stuff.place #=> [:a, :b]
26
- #
27
- # A setter block versus a defualt block is determined by the arity of
28
- # the block. You cannot provide both at the same time.
29
- #
30
20
  # CREDIT: Noah Gibbs, Gavin Sinclair
31
21
  def initialize(hash=nil, &block)
32
- if block && block.arity==2
33
- @table = Hash.new(&block)
34
- else
35
- @table = {}
36
- end
22
+ @table = {}
37
23
  if hash
38
- for k,v in hash
39
- @table[k.to_sym] = v
40
- new_ostruct_member(k)
24
+ hash.each_pair do |k, v|
25
+ self[k.to_sym] = v
41
26
  end
42
27
  end
43
- if block && block.arity==1
28
+ if block && block.arity == 1
44
29
  yield self
45
30
  end
46
31
  end
@@ -52,7 +52,8 @@ class Hash
52
52
  each_pair do |k,v|
53
53
  h[k] = v.to_ostruct_recurse( exclude ) if v.respond_to?(:to_ostruct_recurse)
54
54
  end
55
- o.merge!(h)
55
+ h.each_pair { |k, v| o[k.to_sym] = v }
56
+ o
56
57
  end
57
58
  end
58
59
 
@@ -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
@@ -0,0 +1,173 @@
1
+ # PIC - Pattern matching based on COBOL-style Edited Pictures.
2
+ #
3
+ # PIC provides a simple alternative to regular expressions for common
4
+ # data format matching. It uses single-character codes to describe the
5
+ # expected format of a string, inspired by COBOL's PICTURE clause.
6
+ #
7
+ # == Picture Characters
8
+ #
9
+ # The following picture characters are supported:
10
+ #
11
+ # X - Any character (equivalent to regex `.`)
12
+ # 9 - Any digit (equivalent to regex `\d`)
13
+ # Z - Zero or more digits (equivalent to regex `\d*`)
14
+ # 0 - Any digit (equivalent to regex `\d`)
15
+ # A - Any letter, upper or lower case (equivalent to regex `[A-Za-z]`)
16
+ # W - Any word character (equivalent to regex `\w`)
17
+ # . - Literal period
18
+ # , - Literal comma
19
+ # - - Literal hyphen
20
+ # / - Literal forward slash
21
+ #
22
+ # == Repetition
23
+ #
24
+ # Any picture character can be followed by a count in brackets:
25
+ #
26
+ # 9[3] - Exactly 3 digits (e.g. `\d{3}`)
27
+ # 9[2,4] - Between 2 and 4 digits (e.g. `\d{2,4}`)
28
+ # 9[2..4] - Same as above, alternate syntax
29
+ #
30
+ # == Usage
31
+ #
32
+ # require 'pic'
33
+ #
34
+ # # Simple currency pattern
35
+ # PIC['Z.99'].to_re #=> /\d*\.\d\d/
36
+ #
37
+ # # US phone number
38
+ # PIC['9[3]-9[3]-9[4]'].to_re #=> /\d{3}\-\d{3}\-\d{4}/
39
+ #
40
+ # # Match against a string
41
+ # PIC['99/99/9999'] =~ '12/25/2025' #=> 0 (match)
42
+ #
43
+ # == Reference
44
+ #
45
+ # Based on the concept of Edited Pictures from COBOL.
46
+ # See: http://www.csis.ul.ie/cobol/course/EditedPics.htm
47
+ #
48
+ # Copyright (c) 2011 Rubyworks (BSD-2-Clause)
49
+ #
50
+ module PIC
51
+
52
+ # Shortcut to `PIC::Template.new(pic)`.
53
+ #
54
+ # @param [String] pic
55
+ # A picture string describing the expected format.
56
+ #
57
+ # @return [PIC::Template]
58
+ #
59
+ # @example
60
+ # PIC['Z.99'].to_re #=> /\d*\.\d\d/
61
+ #
62
+ def self.[](pic)
63
+ Template.new(pic)
64
+ end
65
+
66
+ # Template class encapsulates a picture string, converts it to a
67
+ # regular expression, and delegates to it for matching.
68
+ #
69
+ # @example
70
+ # t = PIC::Template.new('9[3]-9[3]-9[4]')
71
+ # t.to_re #=> /\d{3}\-\d{3}\-\d{4}/
72
+ # t =~ '555-123-4567' #=> 0
73
+ #
74
+ class Template
75
+
76
+ # New pic template.
77
+ #
78
+ # @param [String] pic
79
+ # Picture string to use for matching.
80
+ #
81
+ def initialize(pic)
82
+ @pic = pic
83
+ end
84
+
85
+ # The picture string.
86
+ #
87
+ # @return [String]
88
+ #
89
+ attr :pic
90
+
91
+ # Convert picture to a regular expression.
92
+ #
93
+ # @return [Regexp]
94
+ #
95
+ # @example
96
+ # PIC::Template.new('99/99/9999').to_re #=> /\d\d\/\d\d\/\d\d\d\d/
97
+ #
98
+ def to_re
99
+ re = ''
100
+ pic.scan(SCAN) do |s,c|
101
+ re << remap(s) + recnt(c)
102
+ end
103
+ Regexp.new(re)
104
+ end
105
+
106
+ # Alias for `#to_re`.
107
+ alias_method :to_regexp, :to_re
108
+
109
+ # Match picture against a given string.
110
+ #
111
+ # @param [String] string
112
+ # String to match picture against.
113
+ #
114
+ # @return [Integer, nil] index position of match, or nil.
115
+ #
116
+ def =~(string)
117
+ to_re =~ string.to_str
118
+ end
119
+
120
+ alias === =~
121
+
122
+ # Check for non-match of the picture against a given string.
123
+ #
124
+ # @param [String] string
125
+ # String to match picture against.
126
+ #
127
+ # @return [Boolean]
128
+ #
129
+ def !~(string)
130
+ to_re !~ string.to_str
131
+ end
132
+
133
+ private
134
+
135
+ # Map a picture character to its regex equivalent.
136
+ def remap(s)
137
+ REMAP[s] || raise(ArgumentError, "unknown picture character: #{s}")
138
+ end
139
+
140
+ # Convert a bracket count to a regex quantifier.
141
+ def recnt(c)
142
+ return '' unless c
143
+
144
+ case c
145
+ when /\[(\d+)\.\.(\d+)\]/
146
+ '{'+$1+','+$2+'}'
147
+ when /\[(\d+)\,(\d+)\]/
148
+ '{'+$1+','+$2+'}'
149
+ when /\[(\d+)\]/
150
+ '{'+$1+'}'
151
+ end
152
+ end
153
+
154
+ # Scan pattern for parsing picture strings.
155
+ SCAN = /(\S)(\[.*?\])?/
156
+
157
+ # Mapping of picture characters to regex fragments.
158
+ REMAP = {
159
+ 'X' => '.',
160
+ '9' => '\d',
161
+ 'Z' => '\d*',
162
+ '0' => '\d',
163
+ 'A' => '[A-Za-z]',
164
+ 'W' => '\w',
165
+ '.' => '\.',
166
+ ',' => '\,',
167
+ '-' => '\-',
168
+ '/' => '\/'
169
+ }
170
+
171
+ end
172
+
173
+ end