facets 1.8.8 → 1.8.20

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 (448) hide show
  1. data/{doc/COPYING → COPYING} +0 -0
  2. data/PROJECT +18 -11
  3. data/README +8 -14
  4. data/Rakefile +3 -7
  5. data/VERSION +1 -1
  6. data/doc/AUTHORS +6 -1
  7. data/doc/{HISTORY.txt → ChangeLog} +96 -0
  8. data/doc/{HISTORY.1 → History} +0 -0
  9. data/lib/facet/array/pad.rb +1 -0
  10. data/lib/facet/dir/self/multiglob_r.rb +1 -0
  11. data/lib/facet/dir/self/multiglob_with_default.rb +1 -0
  12. data/lib/facet/string/capitalize_all.rb +1 -0
  13. data/lib/facet/string/cleave.rb +1 -0
  14. data/lib/facets/core/array/pad.rb +76 -0
  15. data/lib/facets/core/dir/self/ls_r.rb +2 -3
  16. data/lib/facets/core/dir/self/multiglob.rb +90 -12
  17. data/lib/facets/core/dir/self/{multiglob_recurse.rb → multiglob_r.rb} +1 -1
  18. data/lib/facets/core/dir/self/multiglob_with_default.rb +3 -0
  19. data/lib/facets/core/enumerable/accumulate.rb +1 -3
  20. data/lib/facets/core/enumerable/cart.rb +28 -53
  21. data/lib/facets/core/enumerable/graph.rb +1 -4
  22. data/lib/facets/core/enumerable/self/cart.rb +5 -117
  23. data/lib/facets/core/enumerable/self/cartesian_product.rb +3 -3
  24. data/lib/facets/core/file/self/create.rb +1 -3
  25. data/lib/facets/core/hash/rekey.rb +1 -5
  26. data/lib/facets/core/kernel/ask.rb +2 -2
  27. data/lib/facets/core/kernel/autoreload.rb +3 -5
  28. data/lib/facets/core/module/attr_tester.rb +40 -12
  29. data/lib/facets/core/module/on_included.rb +1 -3
  30. data/lib/facets/core/nilclass/op_cmp.rb +2 -1
  31. data/lib/facets/core/string/capitalize_all.rb +30 -0
  32. data/lib/facets/core/string/capitalized.rb +2 -4
  33. data/lib/facets/core/string/cleave.rb +66 -0
  34. data/lib/facets/core/symbol/self/generate.rb +5 -4
  35. data/lib/facets/core/symbol/to_s.rb +3 -1
  36. data/lib/facets/more/aspects.rb +4 -8
  37. data/lib/facets/more/expirable.rb +2 -2
  38. data/lib/facets/more/lrucache.rb +173 -173
  39. data/lib/facets/more/openobject.rb +1 -1
  40. data/lib/facets/more/pool.rb +2 -2
  41. data/lib/facets/more/syncarray.rb +3 -3
  42. data/lib/facets/more/synchash.rb +3 -3
  43. data/lib/facets/more/uploadutils.rb +14 -16
  44. data/lib/facets/yore/enumerable/cross.rb +117 -0
  45. data/test/lib/facets/core/array/test_at_rand.rb +34 -0
  46. data/test/lib/facets/core/array/test_delete_unless.rb +28 -0
  47. data/test/lib/facets/core/array/test_delete_values.rb +28 -0
  48. data/test/lib/facets/core/array/test_delete_values_at.rb +31 -0
  49. data/test/lib/facets/core/array/test_first.rb +46 -0
  50. data/test/lib/facets/core/array/test_head.rb +42 -0
  51. data/test/lib/facets/core/array/test_last_index.rb +26 -0
  52. data/test/lib/facets/core/array/test_merge.rb +35 -0
  53. data/test/lib/facets/core/array/test_mid.rb +33 -0
  54. data/test/lib/facets/core/array/test_middle.rb +29 -0
  55. data/test/lib/facets/core/array/test_op_fetch.rb +35 -0
  56. data/test/lib/facets/core/array/test_pad.rb +48 -0
  57. data/test/lib/facets/core/array/test_pick.rb +40 -0
  58. data/test/lib/facets/core/array/test_pos.rb +28 -0
  59. data/test/lib/facets/core/array/test_pot.rb +28 -0
  60. data/test/lib/facets/core/array/test_pull.rb +28 -0
  61. data/test/lib/facets/core/array/test_rand_index.rb +29 -0
  62. data/test/lib/facets/core/array/test_rand_subset.rb +29 -0
  63. data/test/lib/facets/core/array/test_range.rb +32 -0
  64. data/test/lib/facets/core/array/test_rotate.rb +36 -0
  65. data/test/lib/facets/core/array/test_select.rb +28 -0
  66. data/test/lib/facets/core/array/test_shuffle.rb +35 -0
  67. data/test/lib/facets/core/array/test_thru.rb +27 -0
  68. data/test/lib/facets/core/array/test_to_b.rb +27 -0
  69. data/test/lib/facets/core/array/test_to_h.rb +33 -0
  70. data/test/lib/facets/core/array/test_to_hash.rb +27 -0
  71. data/test/lib/facets/core/binding/self/test_of_caller.rb +35 -0
  72. data/test/lib/facets/core/binding/test___LINE__.rb +43 -0
  73. data/test/lib/facets/core/binding/test_call_stack.rb +34 -0
  74. data/test/lib/facets/core/binding/test_called.rb +30 -0
  75. data/test/lib/facets/core/binding/test_caller.rb +35 -0
  76. data/test/lib/facets/core/binding/test_defined.rb +34 -0
  77. data/test/lib/facets/core/binding/test_eval.rb +34 -0
  78. data/test/lib/facets/core/binding/test_local_variables.rb +34 -0
  79. data/test/lib/facets/core/binding/test_method_name.rb +34 -0
  80. data/test/lib/facets/core/binding/test_op_fetch.rb +34 -0
  81. data/test/lib/facets/core/binding/test_op_store.rb +35 -0
  82. data/test/lib/facets/core/binding/test_self.rb +34 -0
  83. data/test/lib/facets/core/class/test_cattr.rb +63 -0
  84. data/test/lib/facets/core/class/test_descendents.rb +30 -0
  85. data/test/lib/facets/core/class/test_method_name.rb +26 -0
  86. data/test/lib/facets/core/class/test_remove_descendents.rb +32 -0
  87. data/test/lib/facets/core/class/test_unix_path.rb +26 -0
  88. data/test/lib/facets/core/comparable/test_at_least.rb +34 -0
  89. data/test/lib/facets/core/comparable/test_clip.rb +44 -0
  90. data/test/lib/facets/core/comparable/test_cmp.rb +28 -0
  91. data/test/lib/facets/core/continuation/self/test_create.rb +26 -0
  92. data/test/lib/facets/core/date/test_days_in_month.rb +30 -0
  93. data/test/lib/facets/core/date/test_days_of_month.rb +30 -0
  94. data/test/lib/facets/core/date/test_stamp.rb +38 -0
  95. data/test/lib/facets/core/date/test_to_date.rb +30 -0
  96. data/test/lib/facets/core/date/test_to_s.rb +30 -0
  97. data/test/lib/facets/core/date/test_to_time.rb +30 -0
  98. data/test/lib/facets/core/dir/self/test_ancestor.rb +26 -0
  99. data/test/lib/facets/core/dir/self/test_ascend.rb +41 -0
  100. data/test/lib/facets/core/enumerable/self/test_cart.rb +44 -0
  101. data/test/lib/facets/core/enumerable/self/test_combinations.rb +46 -0
  102. data/test/lib/facets/core/enumerable/self/test_cross.rb +31 -0
  103. data/test/lib/facets/core/enumerable/test_cart.rb +49 -0
  104. data/test/lib/facets/core/enumerable/test_collect_with_index.rb +27 -0
  105. data/test/lib/facets/core/enumerable/test_commonality.rb +31 -0
  106. data/test/lib/facets/core/enumerable/test_compact_collect.rb +27 -0
  107. data/test/lib/facets/core/enumerable/test_count.rb +38 -0
  108. data/test/lib/facets/core/enumerable/test_cross.rb +30 -0
  109. data/test/lib/facets/core/enumerable/test_each_by.rb +71 -0
  110. data/test/lib/facets/core/enumerable/test_each_combination.rb +29 -0
  111. data/test/lib/facets/core/enumerable/test_each_pair.rb +29 -0
  112. data/test/lib/facets/core/enumerable/test_each_slice.rb +57 -0
  113. data/test/lib/facets/core/enumerable/test_each_unique_pair.rb +29 -0
  114. data/test/lib/facets/core/enumerable/test_eachn.rb +34 -0
  115. data/test/lib/facets/core/enumerable/test_entropy.rb +26 -0
  116. data/test/lib/facets/core/enumerable/test_every.rb +35 -0
  117. data/test/lib/facets/core/enumerable/test_ew.rb +31 -0
  118. data/test/lib/facets/core/enumerable/test_filter_collect.rb +31 -0
  119. data/test/lib/facets/core/enumerable/test_find_collisions.rb +30 -0
  120. data/test/lib/facets/core/enumerable/test_frequency.rb +27 -0
  121. data/test/lib/facets/core/enumerable/test_graph.rb +30 -0
  122. data/test/lib/facets/core/enumerable/test_ideal_entropy.rb +27 -0
  123. data/test/lib/facets/core/enumerable/test_none.rb +33 -0
  124. data/test/lib/facets/core/enumerable/test_occur.rb +30 -0
  125. data/test/lib/facets/core/enumerable/test_one.rb +35 -0
  126. data/test/lib/facets/core/enumerable/test_op_pow.rb +27 -0
  127. data/test/lib/facets/core/enumerable/test_partition_by.rb +31 -0
  128. data/test/lib/facets/core/enumerable/test_permutation.rb +29 -0
  129. data/test/lib/facets/core/enumerable/test_probability.rb +27 -0
  130. data/test/lib/facets/core/enumerable/test_to_h.rb +27 -0
  131. data/test/lib/facets/core/enumerable/test_uniq_by.rb +28 -0
  132. data/test/lib/facets/core/file/self/test_create.rb +44 -0
  133. data/test/lib/facets/core/file/self/test_open_as_string.rb +50 -0
  134. data/test/lib/facets/core/file/self/test_read_list.rb +40 -0
  135. data/test/lib/facets/core/file/self/test_sanitize.rb +46 -0
  136. data/test/lib/facets/core/file/self/test_split_all.rb +27 -0
  137. data/test/lib/facets/core/float/test_round_at.rb +46 -0
  138. data/test/lib/facets/core/float/test_round_to.rb +46 -0
  139. data/test/lib/facets/core/hash/self/test_zipnew.rb +28 -0
  140. data/test/lib/facets/core/hash/test_alias.rb +31 -0
  141. data/test/lib/facets/core/hash/test_assert_has_keys.rb +27 -0
  142. data/test/lib/facets/core/hash/test_assert_has_only_keys.rb +27 -0
  143. data/test/lib/facets/core/hash/test_at.rb +28 -0
  144. data/test/lib/facets/core/hash/test_collate.rb +35 -0
  145. data/test/lib/facets/core/hash/test_each_with_index.rb +29 -0
  146. data/test/lib/facets/core/hash/test_each_with_key.rb +29 -0
  147. data/test/lib/facets/core/hash/test_graph.rb +28 -0
  148. data/test/lib/facets/core/hash/test_has_keys.rb +27 -0
  149. data/test/lib/facets/core/hash/test_has_only_keys.rb +27 -0
  150. data/test/lib/facets/core/hash/test_inverse.rb +30 -0
  151. data/test/lib/facets/core/hash/test_normalize_keys.rb +34 -0
  152. data/test/lib/facets/core/hash/test_op_fetch.rb +111 -0
  153. data/test/lib/facets/core/hash/test_op_lshift.rb +29 -0
  154. data/test/lib/facets/core/hash/test_rand_key.rb +27 -0
  155. data/test/lib/facets/core/hash/test_rand_pair.rb +27 -0
  156. data/test/lib/facets/core/hash/test_rand_value.rb +27 -0
  157. data/test/lib/facets/core/hash/test_rekey.rb +52 -0
  158. data/test/lib/facets/core/hash/test_replace_each.rb +29 -0
  159. data/test/lib/facets/core/hash/test_shuffle.rb +32 -0
  160. data/test/lib/facets/core/hash/test_slice.rb +27 -0
  161. data/test/lib/facets/core/hash/test_stringify_keys.rb +34 -0
  162. data/test/lib/facets/core/hash/test_swap.rb +27 -0
  163. data/test/lib/facets/core/hash/test_swapkey.rb +29 -0
  164. data/test/lib/facets/core/hash/test_symbolize_keys.rb +34 -0
  165. data/test/lib/facets/core/hash/test_to_h.rb +27 -0
  166. data/test/lib/facets/core/hash/test_to_ostruct.rb +30 -0
  167. data/test/lib/facets/core/hash/test_to_ostruct_recurse.rb +44 -0
  168. data/test/lib/facets/core/hash/test_traverse.rb +37 -0
  169. data/test/lib/facets/core/hash/test_update_each.rb +29 -0
  170. data/test/lib/facets/core/hash/test_update_keys.rb +28 -0
  171. data/test/lib/facets/core/hash/test_update_values.rb +28 -0
  172. data/test/lib/facets/core/hash/test_weave.rb +29 -0
  173. data/test/lib/facets/core/integer/test_factorial.rb +30 -0
  174. data/test/lib/facets/core/integer/test_multiple.rb +43 -0
  175. data/test/lib/facets/core/integer/test_of.rb +28 -0
  176. data/test/lib/facets/core/integer/test_ordinal.rb +29 -0
  177. data/test/lib/facets/core/integer/test_times_collect.rb +28 -0
  178. data/test/lib/facets/core/kernel/test___class__.rb +26 -0
  179. data/test/lib/facets/core/kernel/test_as.rb +42 -0
  180. data/test/lib/facets/core/kernel/test_assign_from.rb +31 -0
  181. data/test/lib/facets/core/kernel/test_assign_with.rb +31 -0
  182. data/test/lib/facets/core/kernel/test_bool.rb +41 -0
  183. data/test/lib/facets/core/kernel/test_bug.rb +26 -0
  184. data/test/lib/facets/core/kernel/test_call_stack.rb +26 -0
  185. data/test/lib/facets/core/kernel/test_called.rb +26 -0
  186. data/test/lib/facets/core/kernel/test_callee.rb +26 -0
  187. data/test/lib/facets/core/kernel/test_constant.rb +33 -0
  188. data/test/lib/facets/core/kernel/test_copy.rb +40 -0
  189. data/test/lib/facets/core/kernel/test_deep_copy.rb +40 -0
  190. data/test/lib/facets/core/kernel/test_demo.rb +28 -0
  191. data/test/lib/facets/core/kernel/test_fn.rb +26 -0
  192. data/test/lib/facets/core/kernel/test_get_by_id.rb +28 -0
  193. data/test/lib/facets/core/kernel/test_here.rb +26 -0
  194. data/test/lib/facets/core/kernel/test_in.rb +27 -0
  195. data/test/lib/facets/core/kernel/test_instance_class.rb +27 -0
  196. data/test/lib/facets/core/kernel/test_instance_exec.rb +58 -0
  197. data/test/lib/facets/core/kernel/test_maybe.rb +26 -0
  198. data/test/lib/facets/core/kernel/test_meta_class.rb +27 -0
  199. data/test/lib/facets/core/kernel/test_metaclass.rb +27 -0
  200. data/test/lib/facets/core/kernel/test_method.rb +32 -0
  201. data/test/lib/facets/core/kernel/test_methods.rb +50 -0
  202. data/test/lib/facets/core/kernel/test_new.rb +30 -0
  203. data/test/lib/facets/core/kernel/test_object_class.rb +26 -0
  204. data/test/lib/facets/core/kernel/test_object_hexid.rb +27 -0
  205. data/test/lib/facets/core/kernel/test_qua_class.rb +27 -0
  206. data/test/lib/facets/core/kernel/test_require_all.rb +26 -0
  207. data/test/lib/facets/core/kernel/test_require_esc.rb +27 -0
  208. data/test/lib/facets/core/kernel/test_resc.rb +27 -0
  209. data/test/lib/facets/core/kernel/test_send_as.rb +26 -0
  210. data/test/lib/facets/core/kernel/test_set_from.rb +33 -0
  211. data/test/lib/facets/core/kernel/test_set_with.rb +42 -0
  212. data/test/lib/facets/core/kernel/test_silently.rb +28 -0
  213. data/test/lib/facets/core/kernel/test_singleton.rb +40 -0
  214. data/test/lib/facets/core/kernel/test_singleton_class.rb +27 -0
  215. data/test/lib/facets/core/kernel/test_super_at.rb +30 -0
  216. data/test/lib/facets/core/kernel/test_supermethod.rb +33 -0
  217. data/test/lib/facets/core/kernel/test_this.rb +26 -0
  218. data/test/lib/facets/core/kernel/test_to_b.rb +28 -0
  219. data/test/lib/facets/core/kernel/test_to_bool.rb +28 -0
  220. data/test/lib/facets/core/kernel/test_to_data.rb +59 -0
  221. data/test/lib/facets/core/kernel/test_uri.rb +30 -0
  222. data/test/lib/facets/core/kernel/test_val.rb +43 -0
  223. data/test/lib/facets/core/kernel/test_with.rb +30 -0
  224. data/test/lib/facets/core/kernel/test_with_accessor.rb +51 -0
  225. data/test/lib/facets/core/matchdata/test_match.rb +29 -0
  226. data/test/lib/facets/core/matchdata/test_matchtree.rb +37 -0
  227. data/test/lib/facets/core/module/self/test_op_add.rb +48 -0
  228. data/test/lib/facets/core/module/test_abstract.rb +36 -0
  229. data/test/lib/facets/core/module/test_alias_method_chain.rb +44 -0
  230. data/test/lib/facets/core/module/test_alias_module_function.rb +34 -0
  231. data/test/lib/facets/core/module/test_ancestor.rb +26 -0
  232. data/test/lib/facets/core/module/test_attr_tester.rb +39 -0
  233. data/test/lib/facets/core/module/test_basename.rb +26 -0
  234. data/test/lib/facets/core/module/test_by_name.rb +29 -0
  235. data/test/lib/facets/core/module/test_class_extension.rb +70 -0
  236. data/test/lib/facets/core/module/test_clone_using.rb +55 -0
  237. data/test/lib/facets/core/module/test_dirname.rb +26 -0
  238. data/test/lib/facets/core/module/test_equate_on.rb +37 -0
  239. data/test/lib/facets/core/module/test_include_as.rb +45 -0
  240. data/test/lib/facets/core/module/test_initializer.rb +32 -0
  241. data/test/lib/facets/core/module/test_instance_methods.rb +59 -0
  242. data/test/lib/facets/core/module/test_integrate.rb +35 -0
  243. data/test/lib/facets/core/module/test_memoize.rb +50 -0
  244. data/test/lib/facets/core/module/test_modspace.rb +27 -0
  245. data/test/lib/facets/core/module/test_namespace.rb +66 -0
  246. data/test/lib/facets/core/module/test_nesting.rb +36 -0
  247. data/test/lib/facets/core/module/test_new.rb +34 -0
  248. data/test/lib/facets/core/module/test_nodef.rb +30 -0
  249. data/test/lib/facets/core/module/test_on_included.rb +36 -0
  250. data/test/lib/facets/core/module/test_redef.rb +30 -0
  251. data/test/lib/facets/core/module/test_redefine_method.rb +30 -0
  252. data/test/lib/facets/core/module/test_redirect.rb +30 -0
  253. data/test/lib/facets/core/module/test_redirect_method.rb +30 -0
  254. data/test/lib/facets/core/module/test_remove.rb +30 -0
  255. data/test/lib/facets/core/module/test_rename.rb +31 -0
  256. data/test/lib/facets/core/module/test_rename_method.rb +31 -0
  257. data/test/lib/facets/core/module/test_revisal.rb +35 -0
  258. data/test/lib/facets/core/module/test_shadow_method.rb +30 -0
  259. data/test/lib/facets/core/module/test_sort_on.rb +42 -0
  260. data/test/lib/facets/core/module/test_this.rb +31 -0
  261. data/test/lib/facets/core/module/test_wrap.rb +30 -0
  262. data/test/lib/facets/core/module/test_wrap_method.rb +30 -0
  263. data/test/lib/facets/core/nilclass/test_blank.rb +26 -0
  264. data/test/lib/facets/core/nilclass/test_empty.rb +26 -0
  265. data/test/lib/facets/core/nilclass/test_include.rb +26 -0
  266. data/test/lib/facets/core/nilclass/test_op_fetch.rb +28 -0
  267. data/test/lib/facets/core/nilclass/test_size.rb +30 -0
  268. data/test/lib/facets/core/nilclass/test_to_h.rb +26 -0
  269. data/test/lib/facets/core/numeric/test_approx.rb +29 -0
  270. data/test/lib/facets/core/numeric/test_ceil_multiple.rb +31 -0
  271. data/test/lib/facets/core/numeric/test_distance.rb +28 -0
  272. data/test/lib/facets/core/numeric/test_succ.rb +40 -0
  273. data/test/lib/facets/core/numeric/test_to_b.rb +27 -0
  274. data/test/lib/facets/core/ostruct/test___update__.rb +45 -0
  275. data/test/lib/facets/core/ostruct/test_instance_delegate.rb +34 -0
  276. data/test/lib/facets/core/ostruct/test_op_fetch.rb +33 -0
  277. data/test/lib/facets/core/proc/test_compose.rb +29 -0
  278. data/test/lib/facets/core/proc/test_op_mul.rb +34 -0
  279. data/test/lib/facets/core/proc/test_to_method.rb +44 -0
  280. data/test/lib/facets/core/range/test_to_r.rb +27 -0
  281. data/test/lib/facets/core/range/test_to_range.rb +27 -0
  282. data/test/lib/facets/core/range/test_umbrella.rb +34 -0
  283. data/test/lib/facets/core/range/test_within.rb +29 -0
  284. data/test/lib/facets/core/regexp/test_arity.rb +33 -0
  285. data/test/lib/facets/core/regexp/test_to_re.rb +27 -0
  286. data/test/lib/facets/core/regexp/test_to_regexp.rb +27 -0
  287. data/test/lib/facets/core/string/self/test_interpolate.rb +27 -0
  288. data/test/lib/facets/core/string/self/test_patterns.rb +28 -0
  289. data/test/lib/facets/core/string/self/test_rand_letter.rb +26 -0
  290. data/test/lib/facets/core/string/test_align_center.rb +34 -0
  291. data/test/lib/facets/core/string/test_at_rand.rb +35 -0
  292. data/test/lib/facets/core/string/test_basename.rb +41 -0
  293. data/test/lib/facets/core/string/test_blank.rb +27 -0
  294. data/test/lib/facets/core/string/test_bracket.rb +49 -0
  295. data/test/lib/facets/core/string/test_camelcase.rb +39 -0
  296. data/test/lib/facets/core/string/test_camelize.rb +26 -0
  297. data/test/lib/facets/core/string/test_capitalize_all.rb +26 -0
  298. data/test/lib/facets/core/string/test_capitalized.rb +26 -0
  299. data/test/lib/facets/core/string/test_chars.rb +27 -0
  300. data/test/lib/facets/core/string/test_cleave.rb +43 -0
  301. data/test/lib/facets/core/string/test_cmp.rb +30 -0
  302. data/test/lib/facets/core/string/test_demodulize.rb +38 -0
  303. data/test/lib/facets/core/string/test_divide.rb +29 -0
  304. data/test/lib/facets/core/string/test_downcase.rb +26 -0
  305. data/test/lib/facets/core/string/test_dresner.rb +32 -0
  306. data/test/lib/facets/core/string/test_each_char.rb +29 -0
  307. data/test/lib/facets/core/string/test_each_word.rb +29 -0
  308. data/test/lib/facets/core/string/test_first.rb +43 -0
  309. data/test/lib/facets/core/string/test_fold.rb +34 -0
  310. data/test/lib/facets/core/string/test_humanize.rb +26 -0
  311. data/test/lib/facets/core/string/test_indent.rb +40 -0
  312. data/test/lib/facets/core/string/test_index_all.rb +26 -0
  313. data/test/lib/facets/core/string/test_last.rb +46 -0
  314. data/test/lib/facets/core/string/test_line_wrap.rb +27 -0
  315. data/test/lib/facets/core/string/test_lines.rb +26 -0
  316. data/test/lib/facets/core/string/test_lowercase.rb +26 -0
  317. data/test/lib/facets/core/string/test_margin.rb +117 -0
  318. data/test/lib/facets/core/string/test_methodize.rb +27 -0
  319. data/test/lib/facets/core/string/test_modulize.rb +29 -0
  320. data/test/lib/facets/core/string/test_mscan.rb +30 -0
  321. data/test/lib/facets/core/string/test_natcmp.rb +30 -0
  322. data/test/lib/facets/core/string/test_nchar.rb +29 -0
  323. data/test/lib/facets/core/string/test_pathize.rb +29 -0
  324. data/test/lib/facets/core/string/test_pop.rb +47 -0
  325. data/test/lib/facets/core/string/test_pot.rb +39 -0
  326. data/test/lib/facets/core/string/test_push.rb +40 -0
  327. data/test/lib/facets/core/string/test_quote.rb +49 -0
  328. data/test/lib/facets/core/string/test_rand_byte.rb +35 -0
  329. data/test/lib/facets/core/string/test_rand_index.rb +26 -0
  330. data/test/lib/facets/core/string/test_range.rb +27 -0
  331. data/test/lib/facets/core/string/test_range_all.rb +27 -0
  332. data/test/lib/facets/core/string/test_range_of_line.rb +28 -0
  333. data/test/lib/facets/core/string/test_regesc.rb +28 -0
  334. data/test/lib/facets/core/string/test_shatter.rb +29 -0
  335. data/test/lib/facets/core/string/test_shift.rb +40 -0
  336. data/test/lib/facets/core/string/test_shuffle.rb +27 -0
  337. data/test/lib/facets/core/string/test_similarity.rb +26 -0
  338. data/test/lib/facets/core/string/test_singular.rb +86 -0
  339. data/test/lib/facets/core/string/test_soundex.rb +41 -0
  340. data/test/lib/facets/core/string/test_succ.rb +29 -0
  341. data/test/lib/facets/core/string/test_to_a.rb +27 -0
  342. data/test/lib/facets/core/string/test_to_b.rb +41 -0
  343. data/test/lib/facets/core/string/test_to_const.rb +28 -0
  344. data/test/lib/facets/core/string/test_to_date.rb +30 -0
  345. data/test/lib/facets/core/string/test_to_proc.rb +33 -0
  346. data/test/lib/facets/core/string/test_to_re.rb +28 -0
  347. data/test/lib/facets/core/string/test_to_time.rb +30 -0
  348. data/test/lib/facets/core/string/test_unix_crypt.rb +30 -0
  349. data/test/lib/facets/core/string/test_unpack.rb +34 -0
  350. data/test/lib/facets/core/string/test_unshift.rb +39 -0
  351. data/test/lib/facets/core/string/test_upcase.rb +30 -0
  352. data/test/lib/facets/core/string/test_whitespace.rb +27 -0
  353. data/test/lib/facets/core/string/test_word_filter.rb +34 -0
  354. data/test/lib/facets/core/string/test_word_wrap.rb +51 -0
  355. data/test/lib/facets/core/string/test_words.rb +37 -0
  356. data/test/lib/facets/core/symbol/test_camelcase.rb +26 -0
  357. data/test/lib/facets/core/symbol/test_camelize.rb +27 -0
  358. data/test/lib/facets/core/symbol/test_capitalize.rb +26 -0
  359. data/test/lib/facets/core/symbol/test_capitalized.rb +27 -0
  360. data/test/lib/facets/core/symbol/test_downcase.rb +27 -0
  361. data/test/lib/facets/core/symbol/test_not.rb +29 -0
  362. data/test/lib/facets/core/symbol/test_pad.rb +27 -0
  363. data/test/lib/facets/core/symbol/test_succ.rb +28 -0
  364. data/test/lib/facets/core/symbol/test_to_const.rb +28 -0
  365. data/test/lib/facets/core/symbol/test_to_proc.rb +33 -0
  366. data/test/lib/facets/core/symbol/test_to_str.rb +28 -0
  367. data/test/lib/facets/core/symbol/test_underscore.rb +26 -0
  368. data/test/lib/facets/core/symbol/test_upcase.rb +27 -0
  369. data/test/lib/facets/core/time/test_change.rb +33 -0
  370. data/test/lib/facets/core/time/test_elapse.rb +27 -0
  371. data/test/lib/facets/core/time/test_stamp.rb +39 -0
  372. data/test/lib/facets/core/time/test_to_date.rb +31 -0
  373. data/test/lib/facets/core/time/test_to_s.rb +31 -0
  374. data/test/lib/facets/core/time/test_to_time.rb +31 -0
  375. data/test/lib/facets/more/test_ann.rb +112 -0
  376. data/test/lib/facets/more/test_ann_attr.rb +39 -0
  377. data/test/lib/facets/more/test_ansicode.rb +36 -0
  378. data/test/lib/facets/more/test_arguments.rb +83 -0
  379. data/test/lib/facets/more/test_association.rb +51 -0
  380. data/test/lib/facets/more/test_autoarray.rb +32 -0
  381. data/test/lib/facets/more/test_basicobject.rb +67 -0
  382. data/test/lib/facets/more/test_bbcode.rb +34 -0
  383. data/test/lib/facets/more/test_binaryreader.rb +64 -0
  384. data/test/lib/facets/more/test_bitmask.rb +47 -0
  385. data/test/lib/facets/more/test_buildingblock.rb +47 -0
  386. data/test/lib/facets/more/test_bytes.rb +84 -0
  387. data/test/lib/facets/more/test_classmethods.rb +69 -0
  388. data/test/lib/facets/more/test_command.rb +69 -0
  389. data/test/lib/facets/more/test_coroutine.rb +60 -0
  390. data/test/lib/facets/more/test_crypt.rb +46 -0
  391. data/test/lib/facets/more/test_cut.rb +198 -0
  392. data/test/lib/facets/more/test_dependency.rb +82 -0
  393. data/test/lib/facets/more/test_dictionary.rb +107 -0
  394. data/test/lib/facets/more/test_elementor.rb +52 -0
  395. data/test/lib/facets/more/test_enumerablepass.rb +86 -0
  396. data/test/lib/facets/more/test_floatstring.rb +36 -0
  397. data/test/lib/facets/more/test_functor.rb +39 -0
  398. data/test/lib/facets/more/test_htmlbuilder.rb +38 -0
  399. data/test/lib/facets/more/test_htmlfilter.rb +86 -0
  400. data/test/lib/facets/more/test_infinity.rb +50 -0
  401. data/test/lib/facets/more/test_inheritor.rb +155 -0
  402. data/test/lib/facets/more/test_instance_intercept.rb +50 -0
  403. data/test/lib/facets/more/test_interval.rb +119 -0
  404. data/test/lib/facets/more/test_json.rb +232 -0
  405. data/test/lib/facets/more/test_linkedlist.rb +53 -0
  406. data/test/lib/facets/more/test_lisp.rb +47 -0
  407. data/test/lib/facets/more/test_lisp_format.rb +37 -0
  408. data/test/lib/facets/more/test_lrucache.rb +25 -0
  409. data/test/lib/facets/more/test_mathconstants.rb +18 -0
  410. data/test/lib/facets/more/test_methodfilter.rb +45 -0
  411. data/test/lib/facets/more/test_methodprobe.rb +53 -0
  412. data/test/lib/facets/more/test_multipliers.rb +114 -0
  413. data/test/lib/facets/more/test_multiton.rb +199 -0
  414. data/test/lib/facets/more/test_nackclass.rb +45 -0
  415. data/test/lib/facets/more/test_nilcomparable.rb +47 -0
  416. data/test/lib/facets/more/test_opencascade.rb +75 -0
  417. data/test/lib/facets/more/test_openhash.rb +126 -0
  418. data/test/lib/facets/more/test_openobject.rb +126 -0
  419. data/test/lib/facets/more/test_overload.rb +54 -0
  420. data/test/lib/facets/more/test_paramix.rb +100 -0
  421. data/test/lib/facets/more/test_pqueue.rb +39 -0
  422. data/test/lib/facets/more/test_preinitialize.rb +49 -0
  423. data/test/lib/facets/more/test_promoteself.rb +45 -0
  424. data/test/lib/facets/more/test_recorder.rb +44 -0
  425. data/test/lib/facets/more/test_snapshot.rb +34 -0
  426. data/test/lib/facets/more/test_statichash.rb +31 -0
  427. data/test/lib/facets/more/test_syncarray.rb +28 -0
  428. data/test/lib/facets/more/test_synchash.rb +28 -0
  429. data/test/lib/facets/more/test_tagiterator.rb +93 -0
  430. data/test/lib/facets/more/test_timer.rb +66 -0
  431. data/test/lib/facets/more/test_times.rb +103 -0
  432. data/test/lib/facets/more/test_tuple.rb +64 -0
  433. data/test/lib/facets/more/test_typecast.rb +68 -0
  434. data/test/lib/facets/more/test_uninheritable.rb +42 -0
  435. data/test/lib/facets/more/test_units.rb +111 -0
  436. data/test/lib/facets/more/test_xmlbuilder.rb +54 -0
  437. data/test/lib/facets/more/test_xmlhelper.rb +40 -0
  438. data/test/lib/facets/more/test_xoxo.rb +288 -0
  439. data/test/lib/facets/more/test_yamlstruct.rb +37 -0
  440. data/test/lib/facets/yore/enumerable/test_cross.rb +44 -0
  441. data/test/lib/facets/yore/kernel/test_require_facet.rb +27 -0
  442. data/test/lib/facets/yore/module/test_namespace.rb +33 -0
  443. data/test/lib/facets/yore/test_annattr.rb +39 -0
  444. data/test/lib/facets/yore/test_annotation.rb +318 -0
  445. metadata +589 -9
  446. data/lib/facet/dir/self/multiglob_recurse.rb +0 -1
  447. data/lib/facet/dir/self/multiglob_sum.rb +0 -1
  448. data/lib/facets/core/dir/self/multiglob_sum.rb +0 -42
@@ -1,4 +1,4 @@
1
- # = multiglob-recurse.rb
1
+ # = multiglob_recurse.rb
2
2
  #
3
3
  # Stub for multiglob.
4
4
 
@@ -0,0 +1,3 @@
1
+ # stub
2
+ require 'facets/core/dir/self/multiglob'
3
+
@@ -1,6 +1,4 @@
1
- #--
2
- # * George Moschovitis <gm@navel.gr>
3
- #++
1
+ # CREDIT George Moschovitis
4
2
 
5
3
  require 'facets/more/functor'
6
4
 
@@ -1,8 +1,4 @@
1
- #--
2
- # Cross product adapted from code by Michael Neuman.
3
- #++
4
-
5
- require 'generator'
1
+ # CREDIT Thomas Hafner
6
2
 
7
3
  module Enumerable
8
4
 
@@ -17,65 +13,39 @@ module Enumerable
17
13
  #
18
14
  # Enumerable.cross([1,2], [3,4])
19
15
  # #=> [[1, 3], [1, 4], [2, 3], [2, 4]]
20
- #
21
- #--
22
- # TODO Make a more efficient version just for Array (?)
23
- #++
24
16
 
25
17
  def cartesian_product(*enums, &block)
26
- raise if enums.empty?
27
- gens = enums.map{|e| Generator.new(e)}
28
- return [] if gens.any? {|g| g.end?}
29
-
30
- sz = gens.size
31
- res = []
32
- tuple = Array.new(sz)
33
-
34
- loop do
35
- # fill tuple
36
- (0 ... sz).each { |i|
37
- tuple[i] = gens[i].current
38
- }
39
- if block.nil?
40
- res << tuple.dup
41
- else
42
- block.call(tuple.dup)
43
- end
44
-
45
- # step forward
46
- gens[-1].next
47
- (sz-1).downto(0) do |i|
48
- if gens[i].end?
49
- if i > 0
50
- gens[i].rewind
51
- gens[i-1].next
52
- else
53
- return res
54
- end
18
+ result = [[]]
19
+ while [] != enums
20
+ t, result = result, []
21
+ b, *enums = enums
22
+ t.each do |a|
23
+ b.each do |n|
24
+ result << a + [n]
55
25
  end
56
26
  end
57
- end #loop
27
+ end
28
+ if block_given?
29
+ result.each{ |e| block.call(e) }
30
+ else
31
+ result
32
+ end
58
33
  end
59
34
 
60
- alias :cart, :cartesian_product
35
+ alias :cart :cartesian_product
61
36
  end
62
37
 
63
-
64
38
  # The instance level version of <tt>Enumerable::cartesian_product</tt>.
65
39
  #
66
40
  # a = []
67
41
  # [1,2].cart([4,5]){|elem| a << elem }
68
42
  # a #=> [[1, 4],[1, 5],[2, 4],[2, 5]]
69
- #
70
- #--
71
- # TODO Make a more efficient version just for Array (?)
72
- #++
73
43
 
74
- def cart(*enums, &block)
75
- Enumerable.cart(self, *enums, &block)
44
+ def cartesian_product(*enums, &block)
45
+ Enumerable.cartesian_product(self, *enums, &block)
76
46
  end
77
47
 
78
- alias :cart, :cartesian_product
48
+ alias :cart :cartesian_product
79
49
  end
80
50
 
81
51
 
@@ -90,12 +60,15 @@ end
90
60
 
91
61
  require 'test/unit'
92
62
 
93
- class TCEnumerableClass < Test::Unit::TestCase
63
+ class TestEnumerableClass < Test::Unit::TestCase
94
64
 
95
- def test_cross
65
+ def test_cart_01
96
66
  i = [[1,2], [3,4]]
97
67
  o = [[1, 3], [1, 4], [2, 3], [2, 4]]
98
68
  assert_equal( o, Enumerable.cart(*i) )
69
+ end
70
+
71
+ def test_cart_02
99
72
  i = [[1,2], [4], ["apple", "banana"]]
100
73
  o = [[1, 4, "apple"], [1, 4, "banana"], [2, 4, "apple"], [2, 4, "banana"]]
101
74
  assert_equal( o, Enumerable.cart(*i) )
@@ -103,12 +76,14 @@ end
103
76
 
104
77
  end
105
78
 
79
+ class TestEnumerable < Test::Unit::TestCase
106
80
 
107
- class TCEnumerable < Test::Unit::TestCase
108
-
109
- def test_cross
81
+ def test_cart_01
110
82
  a = [1,2,3].cart([4,5,6])
111
83
  assert_equal( [[1, 4],[1, 5],[1, 6],[2, 4],[2, 5],[2, 6],[3, 4],[3, 5],[3, 6]], a )
84
+ end
85
+
86
+ def test_cart_02
112
87
  a = []
113
88
  [1,2,3].cart([4,5,6]) {|elem| a << elem }
114
89
  assert_equal( [[1, 4],[1, 5],[1, 6],[2, 4],[2, 5],[2, 6],[3, 4],[3, 5],[3, 6]], a )
@@ -31,9 +31,6 @@ module Enumerable
31
31
  end
32
32
  end
33
33
 
34
- # no longer used
35
- #alias_method( :build_hash, :graph )
36
- #alias_method( :build_hash!, :graph! )
37
34
  end
38
35
 
39
36
 
@@ -48,7 +45,7 @@ end
48
45
 
49
46
  require 'test/unit'
50
47
 
51
- class TCEnumerable < Test::Unit::TestCase
48
+ class TestEnumerable < Test::Unit::TestCase
52
49
 
53
50
  def test_graph
54
51
  numbers = (1..3)
@@ -1,120 +1,8 @@
1
- # CREDIT Michael Neuman#
2
- # CREDIT Thomas Halfner (name correction from cross.rb)
3
- #
4
- # Cross product adapted from code by Michael Neuman.
5
-
6
- require 'generator'
7
-
8
- module Enumerable
9
-
10
- class << self
11
-
12
- # Provides the cross-product of two or more Enumerables.
13
- # This is the class-level method. The instance method
14
- # calls on this.
15
- #
16
- # Enumerable.cross([1,2], [4], ["apple", "banana"])
17
- # #=> [[1, 4, "apple"], [1, 4, "banana"], [2, 4, "apple"], [2, 4, "banana"]]
18
- #
19
- # Enumerable.cross([1,2], [3,4])
20
- # #=> [[1, 3], [1, 4], [2, 3], [2, 4]]
21
- #
22
- #--
23
- # TODO Make a more efficient version just for Array (?)
24
- #++
25
-
26
- def cartesian_product(*enums, &block)
27
- raise if enums.empty?
28
- gens = enums.map{|e| Generator.new(e)}
29
- return [] if gens.any? {|g| g.end?}
30
-
31
- sz = gens.size
32
- res = []
33
- tuple = Array.new(sz)
34
-
35
- loop do
36
- # fill tuple
37
- (0 ... sz).each { |i|
38
- tuple[i] = gens[i].current
39
- }
40
- if block.nil?
41
- res << tuple.dup
42
- else
43
- block.call(tuple.dup)
44
- end
45
-
46
- # step forward
47
- gens[-1].next
48
- (sz-1).downto(0) do |i|
49
- if gens[i].end?
50
- if i > 0
51
- gens[i].rewind
52
- gens[i-1].next
53
- else
54
- return res
55
- end
56
- end
57
- end
58
- end #loop
59
- end
60
-
61
- alias :cart, :cartesian_product
62
- end
63
-
64
-
65
- # The instance level version of <tt>Enumerable::cartesian_product</tt>.
66
- #
67
- # a = []
68
- # [1,2].cart([4,5]){|elem| a << elem }
69
- # a #=> [[1, 4],[1, 5],[2, 4],[2, 5]]
70
- #
71
- #--
72
- # TODO Make a more efficient version just for Array (?)
73
- #++
74
-
75
- def cart(*enums, &block)
76
- Enumerable.cart(self, *enums, &block)
77
- end
78
-
79
- alias :cart, :cartesian_product
80
- end
81
-
82
-
83
-
84
- # _____ _
85
- # |_ _|__ ___| |_
86
- # | |/ _ \/ __| __|
87
- # | | __/\__ \ |_
88
- # |_|\___||___/\__|
1
+ # = cart.rb
89
2
  #
90
- =begin test
91
-
92
- require 'test/unit'
93
-
94
- class TCEnumerableClass < Test::Unit::TestCase
95
-
96
- def test_cross
97
- i = [[1,2], [3,4]]
98
- o = [[1, 3], [1, 4], [2, 3], [2, 4]]
99
- assert_equal( o, Enumerable.cart(*i) )
100
- i = [[1,2], [4], ["apple", "banana"]]
101
- o = [[1, 4, "apple"], [1, 4, "banana"], [2, 4, "apple"], [2, 4, "banana"]]
102
- assert_equal( o, Enumerable.cart(*i) )
103
- end
104
-
105
- end
106
-
107
-
108
- class TCEnumerable < Test::Unit::TestCase
109
-
110
- def test_cross
111
- a = [1,2,3].cart([4,5,6])
112
- assert_equal( [[1, 4],[1, 5],[1, 6],[2, 4],[2, 5],[2, 6],[3, 4],[3, 5],[3, 6]], a )
113
- a = []
114
- [1,2,3].cart([4,5,6]) {|elem| a << elem }
115
- assert_equal( [[1, 4],[1, 5],[1, 6],[2, 4],[2, 5],[2, 6],[3, 4],[3, 5],[3, 6]], a )
116
- end
3
+ # Stub for <tt>cart.rb</tt>.
4
+ #
5
+ # CREDIT Thomas Halfner
117
6
 
118
- end
7
+ require 'facets/core/enumerable/cart.rb'
119
8
 
120
- =end
@@ -1,8 +1,8 @@
1
1
  # = cartesian_product.rb
2
2
  #
3
3
  # Stub for <tt>cart.rb</tt>.
4
- #
5
- # CREDIT Thomas Halfner (for the name correction from cross.rb)
4
+ #
5
+ # CREDIT Thomas Halfner
6
6
 
7
- require 'facets/core/enumerable/self/cart.rb'
7
+ require 'facets/core/enumerable/cart.rb'
8
8
 
@@ -1,6 +1,4 @@
1
- #--
2
- # Copyright (c) 2005 George Moschovitis <gm@navel.gr>
3
- #++
1
+ # CREDIT George Moschovitis
4
2
 
5
3
  # Creates a new file, or overwrites an existing file,
6
4
  # and writes a string into it. Can also take a block
@@ -1,7 +1,3 @@
1
- #--
2
- # CREDIT Gavin Sinclair -- Adapted fron #convert_keys
3
- #++
4
-
5
1
  require 'facets/core/symbol/to_proc'
6
2
 
7
3
  class Hash
@@ -81,7 +77,7 @@ end
81
77
  foo = { "a"=>1, "b"=>2 }
82
78
  assert_equal( { :a=>1, :b=>2 }, foo.rekey! )
83
79
  assert_equal( { :a=>1, :b=>2 }, foo )
84
- end
80
+ end
85
81
 
86
82
  end
87
83
 
@@ -6,8 +6,8 @@ module Kernel
6
6
  def ask( question, answers=nil )
7
7
  print "#{question}"
8
8
  print " [#{answers}] " if answers
9
- until inp = $stdin.gets[0,1] ; sleep 1 ; end ; puts
10
- inp
9
+ until inp = $stdin.gets ; sleep 1 ; end ; puts
10
+ inp.strip
11
11
  end
12
12
 
13
13
  end
@@ -1,7 +1,5 @@
1
- #--
2
- # Michael Neumann
3
- # George Moschovitis <gm@navel.gr>
4
- #++
1
+ # CREDIT Michael Neumann
2
+ # CREDIT George Moschovitis
5
3
 
6
4
  module Kernel
7
5
 
@@ -80,7 +78,7 @@ module Kernel
80
78
  # This is equivalent to as adding a 'false' parameter to #autoreload.
81
79
 
82
80
  def autoreload_files( *args )
83
- autoreload( *args, false )
81
+ autoreload( false, *args )
84
82
  end
85
83
 
86
84
  # deprecate
@@ -1,12 +1,10 @@
1
- require 'facet/kernel/nack'
2
-
3
1
  class Module
4
2
 
5
3
  # Create an tester attribute. This creates two methods for
6
4
  # each given variable name. One is used to test
7
5
  # the attribute and the other is used to set or toggle it.
8
6
  #
9
- # attr_switch :a
7
+ # attr_tester :a
10
8
  #
11
9
  # is equivalent to
12
10
  #
@@ -14,11 +12,11 @@ class Module
14
12
  # @a ? true : @a
15
13
  # end
16
14
  #
17
- # def a!(switch=nack)
18
- # if switch == nack
19
- # @a = ! @a
15
+ # def a!(switch=Exception)
16
+ # if switch == Exception
17
+ # @a = !@a
20
18
  # else
21
- # @a = @a ? switch : @a
19
+ # @a = switch ? true : @a
22
20
  # self
23
21
  # end
24
22
  # end
@@ -26,13 +24,17 @@ class Module
26
24
  def attr_tester(*args)
27
25
  make = {}
28
26
  args.each { |a|
29
- make["#{a}?".to_sym] = %{ def #{a}?; @#{a} ? true : @#{a}; end }
27
+ make["#{a}?".to_sym] = %{
28
+ def #{a}?(true_value=true)
29
+ @#{a} ? true_value : @#{a}
30
+ end
31
+ }
30
32
  make["#{a}!".to_sym] = %{
31
- def #{a}!(switch=nack)
32
- if switch==nack
33
+ def #{a}!(switch=Exception)
34
+ if switch == Exception
33
35
  @#{a} = !@#{a}
34
36
  else
35
- @#{a} = @#{a} ? switch : @#{a}
37
+ @#{a} = switch ? true : @#{a}
36
38
  self
37
39
  end
38
40
  end
@@ -53,4 +55,30 @@ end
53
55
  # | | __/\__ \ |_
54
56
  # |_|\___||___/\__|
55
57
  #
56
- # TODO
58
+ =begin test
59
+ require 'test/unit'
60
+
61
+ class TestAttrTester < Test::Unit::TestCase
62
+ class X
63
+ attr_tester :a
64
+ end
65
+
66
+ def test_attr_tester_exclimation
67
+ x = X.new
68
+ assert_equal(nil, x.a?)
69
+ x.a!
70
+ assert_equal(true, x.a?)
71
+ x.a!
72
+ assert_equal(false, x.a?)
73
+ end
74
+
75
+ def test_attr_tester_return
76
+ x = X.new
77
+ x.a!
78
+ assert_equal(true, x.a?)
79
+ x.a!("whatever")
80
+ assert_equal(true, x.a?)
81
+ end
82
+ end
83
+ =end
84
+
@@ -1,6 +1,4 @@
1
- #--
2
- # George Moschovitis <gm@navel.gr>
3
- #++
1
+ # CREDIT George Moschovitis
4
2
 
5
3
  class Module
6
4