facets 1.0.2 → 1.0.3

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 (973) hide show
  1. data/ProjectInfo +22 -12
  2. data/README +14 -38
  3. data/packages/core/AUTHORS +33 -0
  4. data/packages/core/CHANGELOG +257 -0
  5. data/packages/core/COPYING +403 -0
  6. data/packages/core/ProjectInfo +39 -0
  7. data/packages/core/README +252 -0
  8. data/packages/core/Rakefile +175 -0
  9. data/packages/core/TODO +73 -0
  10. data/packages/core/conf/facets/noauto +48 -0
  11. data/packages/core/data/facets/index.yml +446 -0
  12. data/packages/core/lib/facet/array.rb +33 -0
  13. data/packages/core/lib/facet/array/at_rand.rb +52 -0
  14. data/packages/core/lib/facet/array/body.rb +2 -0
  15. data/packages/core/lib/facet/array/delete_unless.rb +35 -0
  16. data/packages/core/lib/facet/array/delete_values.rb +38 -0
  17. data/packages/core/lib/facet/array/delete_values_at.rb +57 -0
  18. data/packages/core/lib/facet/array/each_with_key.rb +9 -0
  19. data/packages/core/lib/facet/array/first.rb +84 -0
  20. data/packages/core/lib/facet/array/foot.rb +2 -0
  21. data/packages/core/lib/facet/array/head.rb +80 -0
  22. data/packages/core/lib/facet/array/last.rb +2 -0
  23. data/packages/core/lib/facet/array/last_index.rb +35 -0
  24. data/packages/core/lib/facet/array/merge.rb +40 -0
  25. data/packages/core/lib/facet/array/mid.rb +50 -0
  26. data/packages/core/lib/facet/array/middle.rb +45 -0
  27. data/packages/core/lib/facet/array/op_fetch.rb +40 -0
  28. data/packages/core/lib/facet/array/op_mod.rb +16 -0
  29. data/packages/core/lib/facet/array/op_store.rb +47 -0
  30. data/packages/core/lib/facet/array/pick.rb +68 -0
  31. data/packages/core/lib/facet/array/pos.rb +39 -0
  32. data/packages/core/lib/facet/array/pull.rb +37 -0
  33. data/packages/core/lib/facet/array/rand_index.rb +30 -0
  34. data/packages/core/lib/facet/array/rand_subset.rb +56 -0
  35. data/packages/core/lib/facet/array/range.rb +47 -0
  36. data/packages/core/lib/facet/array/rotate.rb +67 -0
  37. data/packages/core/lib/facet/array/select.rb +37 -0
  38. data/packages/core/lib/facet/array/shuffle.rb +66 -0
  39. data/packages/core/lib/facet/array/slap.rb +37 -0
  40. data/packages/core/lib/facet/array/store.rb +7 -0
  41. data/packages/core/lib/facet/array/tail.rb +2 -0
  42. data/packages/core/lib/facet/array/thru.rb +38 -0
  43. data/packages/core/lib/facet/array/to_b.rb +31 -0
  44. data/packages/core/lib/facet/array/to_h.rb +57 -0
  45. data/packages/core/lib/facet/array/to_hash.rb +46 -0
  46. data/packages/core/lib/facet/array/unzip.rb +20 -0
  47. data/packages/core/lib/facet/binding.rb +14 -0
  48. data/packages/core/lib/facet/binding/__DIR__.rb +2 -0
  49. data/packages/core/lib/facet/binding/__FILE__.rb +2 -0
  50. data/packages/core/lib/facet/binding/__LINE__.rb +58 -0
  51. data/packages/core/lib/facet/binding/call_stack.rb +42 -0
  52. data/packages/core/lib/facet/binding/called.rb +41 -0
  53. data/packages/core/lib/facet/binding/caller.rb +42 -0
  54. data/packages/core/lib/facet/binding/defined.rb +41 -0
  55. data/packages/core/lib/facet/binding/eval.rb +42 -0
  56. data/packages/core/lib/facet/binding/local_variables.rb +45 -0
  57. data/packages/core/lib/facet/binding/method_name.rb +48 -0
  58. data/packages/core/lib/facet/binding/op_fetch.rb +45 -0
  59. data/packages/core/lib/facet/binding/op_store.rb +46 -0
  60. data/packages/core/lib/facet/binding/self.rb +41 -0
  61. data/packages/core/lib/facet/binding/self/of_caller.rb +122 -0
  62. data/packages/core/lib/facet/class.rb +5 -0
  63. data/packages/core/lib/facet/class/by_name.rb +1 -0
  64. data/packages/core/lib/facet/class/descendents.rb +44 -0
  65. data/packages/core/lib/facet/class/method_name.rb +33 -0
  66. data/packages/core/lib/facet/class/remove_descendents.rb +46 -0
  67. data/packages/core/lib/facet/class/remove_subclasses.rb +2 -0
  68. data/packages/core/lib/facet/class/subclasses.rb +2 -0
  69. data/packages/core/lib/facet/class/unix_path.rb +32 -0
  70. data/packages/core/lib/facet/comparable.rb +5 -0
  71. data/packages/core/lib/facet/comparable/at_least.rb +53 -0
  72. data/packages/core/lib/facet/comparable/at_most.rb +2 -0
  73. data/packages/core/lib/facet/comparable/cap.rb +2 -0
  74. data/packages/core/lib/facet/comparable/clip.rb +72 -0
  75. data/packages/core/lib/facet/comparable/cmp.rb +38 -0
  76. data/packages/core/lib/facet/continuation.rb +1 -0
  77. data/packages/core/lib/facet/continuation/self/create.rb +71 -0
  78. data/packages/core/lib/facet/date.rb +0 -0
  79. data/packages/core/lib/facet/date/days_in_month.rb +42 -0
  80. data/packages/core/lib/facet/date/days_of_month.rb +34 -0
  81. data/packages/core/lib/facet/date/stamp.rb +52 -0
  82. data/packages/core/lib/facet/date/to_date.rb +36 -0
  83. data/packages/core/lib/facet/date/to_s.rb +33 -0
  84. data/packages/core/lib/facet/date/to_time.rb +36 -0
  85. data/packages/core/lib/facet/dir.rb +4 -0
  86. data/packages/core/lib/facet/dir/self/ancestor.rb +33 -0
  87. data/packages/core/lib/facet/dir/self/ascend.rb +56 -0
  88. data/packages/core/lib/facet/dir/self/ls_r.rb +76 -0
  89. data/packages/core/lib/facet/dir/self/recurse.rb +2 -0
  90. data/packages/core/lib/facet/enumerable.rb +38 -0
  91. data/packages/core/lib/facet/enumerable/collect_with_counter.rb +2 -0
  92. data/packages/core/lib/facet/enumerable/collect_with_index.rb +51 -0
  93. data/packages/core/lib/facet/enumerable/commonality.rb +63 -0
  94. data/packages/core/lib/facet/enumerable/compact_collect.rb +50 -0
  95. data/packages/core/lib/facet/enumerable/compact_map.rb +2 -0
  96. data/packages/core/lib/facet/enumerable/cross.rb +44 -0
  97. data/packages/core/lib/facet/enumerable/each_by.rb +2 -0
  98. data/packages/core/lib/facet/enumerable/each_combination.rb +59 -0
  99. data/packages/core/lib/facet/enumerable/each_pair.rb +50 -0
  100. data/packages/core/lib/facet/enumerable/each_permutation.rb +2 -0
  101. data/packages/core/lib/facet/enumerable/each_slice.rb +131 -0
  102. data/packages/core/lib/facet/enumerable/each_unique_pair.rb +66 -0
  103. data/packages/core/lib/facet/enumerable/each_with_counter.rb +8 -0
  104. data/packages/core/lib/facet/enumerable/elementwise.rb +2 -0
  105. data/packages/core/lib/facet/enumerable/entropy.rb +52 -0
  106. data/packages/core/lib/facet/enumerable/every.rb +65 -0
  107. data/packages/core/lib/facet/enumerable/ew.rb +64 -0
  108. data/packages/core/lib/facet/enumerable/filter_collect.rb +58 -0
  109. data/packages/core/lib/facet/enumerable/filter_map.rb +2 -0
  110. data/packages/core/lib/facet/enumerable/find_collisions.rb +41 -0
  111. data/packages/core/lib/facet/enumerable/frequency.rb +39 -0
  112. data/packages/core/lib/facet/enumerable/graph.rb +59 -0
  113. data/packages/core/lib/facet/enumerable/ideal_entropy.rb +49 -0
  114. data/packages/core/lib/facet/enumerable/map_with_counter.rb +2 -0
  115. data/packages/core/lib/facet/enumerable/map_with_index.rb +2 -0
  116. data/packages/core/lib/facet/enumerable/none.rb +56 -0
  117. data/packages/core/lib/facet/enumerable/nonuniq.rb +39 -0
  118. data/packages/core/lib/facet/enumerable/occur.rb +62 -0
  119. data/packages/core/lib/facet/enumerable/one.rb +65 -0
  120. data/packages/core/lib/facet/enumerable/op_pow.rb +38 -0
  121. data/packages/core/lib/facet/enumerable/partition_by.rb +55 -0
  122. data/packages/core/lib/facet/enumerable/permute.rb +135 -0
  123. data/packages/core/lib/facet/enumerable/probability.rb +59 -0
  124. data/packages/core/lib/facet/enumerable/project.rb +11 -0
  125. data/packages/core/lib/facet/enumerable/self/combinations.rb +68 -0
  126. data/packages/core/lib/facet/enumerable/self/cross.rb +79 -0
  127. data/packages/core/lib/facet/enumerable/to_h.rb +50 -0
  128. data/packages/core/lib/facet/enumerable/uniq_by.rb +39 -0
  129. data/packages/core/lib/facet/enumerable/where.rb +12 -0
  130. data/packages/core/lib/facet/file.rb +5 -0
  131. data/packages/core/lib/facet/file/self/create.rb +52 -0
  132. data/packages/core/lib/facet/file/self/open_as_string.rb +81 -0
  133. data/packages/core/lib/facet/file/self/read_list.rb +47 -0
  134. data/packages/core/lib/facet/file/self/sanitize.rb +50 -0
  135. data/packages/core/lib/facet/file/self/split_all.rb +36 -0
  136. data/packages/core/lib/facet/fileutils.rb +0 -0
  137. data/packages/core/lib/facet/fileutils/head.rb +2 -0
  138. data/packages/core/lib/facet/fileutils/safe_ln.rb +38 -0
  139. data/packages/core/lib/facet/fileutils/slice.rb +152 -0
  140. data/packages/core/lib/facet/fileutils/split_all.rb +29 -0
  141. data/packages/core/lib/facet/fileutils/tail.rb +2 -0
  142. data/packages/core/lib/facet/fileutils/wc.rb +128 -0
  143. data/packages/core/lib/facet/fileutils/whereis.rb +76 -0
  144. data/packages/core/lib/facet/fileutils/which.rb +117 -0
  145. data/packages/core/lib/facet/float.rb +3 -0
  146. data/packages/core/lib/facet/float/approx.rb +42 -0
  147. data/packages/core/lib/facet/float/round_at.rb +72 -0
  148. data/packages/core/lib/facet/float/round_to.rb +73 -0
  149. data/packages/core/lib/facet/functor.rb +41 -0
  150. data/packages/core/lib/facet/hash.rb +40 -0
  151. data/packages/core/lib/facet/hash/alias.rb +54 -0
  152. data/packages/core/lib/facet/hash/assert_has_keys.rb +38 -0
  153. data/packages/core/lib/facet/hash/assert_has_only_keys.rb +38 -0
  154. data/packages/core/lib/facet/hash/at.rb +26 -0
  155. data/packages/core/lib/facet/hash/collate.rb +53 -0
  156. data/packages/core/lib/facet/hash/delete_unless.rb +15 -0
  157. data/packages/core/lib/facet/hash/each.rb +61 -0
  158. data/packages/core/lib/facet/hash/each_with_index.rb +35 -0
  159. data/packages/core/lib/facet/hash/each_with_key.rb +32 -0
  160. data/packages/core/lib/facet/hash/graph.rb +31 -0
  161. data/packages/core/lib/facet/hash/has_keys.rb +37 -0
  162. data/packages/core/lib/facet/hash/has_only_keys.rb +37 -0
  163. data/packages/core/lib/facet/hash/inverse.rb +51 -0
  164. data/packages/core/lib/facet/hash/join.rb +19 -0
  165. data/packages/core/lib/facet/hash/keys_to_iv.rb +60 -0
  166. data/packages/core/lib/facet/hash/keys_to_s.rb +80 -0
  167. data/packages/core/lib/facet/hash/keys_to_sym.rb +91 -0
  168. data/packages/core/lib/facet/hash/op_fetch.rb +146 -0
  169. data/packages/core/lib/facet/hash/op_lshift.rb +28 -0
  170. data/packages/core/lib/facet/hash/op_store.rb +2 -0
  171. data/packages/core/lib/facet/hash/rand_key.rb +47 -0
  172. data/packages/core/lib/facet/hash/rand_pair.rb +50 -0
  173. data/packages/core/lib/facet/hash/rand_value.rb +60 -0
  174. data/packages/core/lib/facet/hash/replace_each.rb +33 -0
  175. data/packages/core/lib/facet/hash/self/zipnew.rb +37 -0
  176. data/packages/core/lib/facet/hash/shuffle.rb +53 -0
  177. data/packages/core/lib/facet/hash/slice.rb +33 -0
  178. data/packages/core/lib/facet/hash/stringify_keys.rb +2 -0
  179. data/packages/core/lib/facet/hash/swap.rb +36 -0
  180. data/packages/core/lib/facet/hash/swapkey.rb +44 -0
  181. data/packages/core/lib/facet/hash/symoblize_keys.rb +2 -0
  182. data/packages/core/lib/facet/hash/to_h.rb +35 -0
  183. data/packages/core/lib/facet/hash/to_ostruct.rb +40 -0
  184. data/packages/core/lib/facet/hash/to_ostruct_recurse.rb +45 -0
  185. data/packages/core/lib/facet/hash/traverse.rb +63 -0
  186. data/packages/core/lib/facet/hash/update_each.rb +43 -0
  187. data/packages/core/lib/facet/hash/update_keys.rb +31 -0
  188. data/packages/core/lib/facet/hash/update_values.rb +32 -0
  189. data/packages/core/lib/facet/hash/variablize_keys.rb +2 -0
  190. data/packages/core/lib/facet/hash/weave.rb +88 -0
  191. data/packages/core/lib/facet/inflect.rb +70 -0
  192. data/packages/core/lib/facet/integer.rb +8 -0
  193. data/packages/core/lib/facet/integer/even.rb +2 -0
  194. data/packages/core/lib/facet/integer/fac.rb +2 -0
  195. data/packages/core/lib/facet/integer/fact.rb +2 -0
  196. data/packages/core/lib/facet/integer/factorial.rb +61 -0
  197. data/packages/core/lib/facet/integer/multiple.rb +69 -0
  198. data/packages/core/lib/facet/integer/odd.rb +2 -0
  199. data/packages/core/lib/facet/integer/ordinal.rb +41 -0
  200. data/packages/core/lib/facet/integer/times_collect.rb +39 -0
  201. data/packages/core/lib/facet/integer/times_map.rb +2 -0
  202. data/packages/core/lib/facet/kernel.rb +65 -0
  203. data/packages/core/lib/facet/kernel/__DIR__.rb +11 -0
  204. data/packages/core/lib/facet/kernel/__class__.rb +31 -0
  205. data/packages/core/lib/facet/kernel/__meta__.rb +28 -0
  206. data/packages/core/lib/facet/kernel/adhoc.rb +11 -0
  207. data/packages/core/lib/facet/kernel/as.rb +91 -0
  208. data/packages/core/lib/facet/kernel/assign_from.rb +82 -0
  209. data/packages/core/lib/facet/kernel/assign_with.rb +75 -0
  210. data/packages/core/lib/facet/kernel/autoreload.rb +124 -0
  211. data/packages/core/lib/facet/kernel/autoreload_files.rb +2 -0
  212. data/packages/core/lib/facet/kernel/autoreload_glob.rb +3 -0
  213. data/packages/core/lib/facet/kernel/bool.rb +77 -0
  214. data/packages/core/lib/facet/kernel/bug.rb +39 -0
  215. data/packages/core/lib/facet/kernel/call_stack.rb +59 -0
  216. data/packages/core/lib/facet/kernel/called.rb +40 -0
  217. data/packages/core/lib/facet/kernel/complete.rb +6 -0
  218. data/packages/core/lib/facet/kernel/constant.rb +52 -0
  219. data/packages/core/lib/facet/kernel/copy.rb +48 -0
  220. data/packages/core/lib/facet/kernel/deep_copy.rb +49 -0
  221. data/packages/core/lib/facet/kernel/demo.rb +46 -0
  222. data/packages/core/lib/facet/kernel/eigenclass.rb +17 -0
  223. data/packages/core/lib/facet/kernel/false.rb +2 -0
  224. data/packages/core/lib/facet/kernel/fn.rb +33 -0
  225. data/packages/core/lib/facet/kernel/generate_method_name.rb +39 -0
  226. data/packages/core/lib/facet/kernel/get_by_id.rb +33 -0
  227. data/packages/core/lib/facet/kernel/here.rb +34 -0
  228. data/packages/core/lib/facet/kernel/in.rb +35 -0
  229. data/packages/core/lib/facet/kernel/instance_assign.rb +25 -0
  230. data/packages/core/lib/facet/kernel/instvar.rb +13 -0
  231. data/packages/core/lib/facet/kernel/is.rb +5 -0
  232. data/packages/core/lib/facet/kernel/maybe.rb +41 -0
  233. data/packages/core/lib/facet/kernel/me.rb +17 -0
  234. data/packages/core/lib/facet/kernel/meta.rb +2 -0
  235. data/packages/core/lib/facet/kernel/metaclass.rb +42 -0
  236. data/packages/core/lib/facet/kernel/method.rb +76 -0
  237. data/packages/core/lib/facet/kernel/method_name.rb +49 -0
  238. data/packages/core/lib/facet/kernel/methods.rb +79 -0
  239. data/packages/core/lib/facet/kernel/nack.rb +12 -0
  240. data/packages/core/lib/facet/kernel/new.rb +40 -0
  241. data/packages/core/lib/facet/kernel/object_class.rb +31 -0
  242. data/packages/core/lib/facet/kernel/object_hexid.rb +35 -0
  243. data/packages/core/lib/facet/kernel/op_esc.rb +37 -0
  244. data/packages/core/lib/facet/kernel/own.rb +17 -0
  245. data/packages/core/lib/facet/kernel/p.rb +12 -0
  246. data/packages/core/lib/facet/kernel/require_all.rb +44 -0
  247. data/packages/core/lib/facet/kernel/require_esc.rb +42 -0
  248. data/packages/core/lib/facet/kernel/require_facet.rb +41 -0
  249. data/packages/core/lib/facet/kernel/require_local.rb +25 -0
  250. data/packages/core/lib/facet/kernel/resc.rb +32 -0
  251. data/packages/core/lib/facet/kernel/returning.rb +49 -0
  252. data/packages/core/lib/facet/kernel/send_as.rb +34 -0
  253. data/packages/core/lib/facet/kernel/set_from.rb +69 -0
  254. data/packages/core/lib/facet/kernel/set_with.rb +74 -0
  255. data/packages/core/lib/facet/kernel/silence_warnings.rb +2 -0
  256. data/packages/core/lib/facet/kernel/silently.rb +41 -0
  257. data/packages/core/lib/facet/kernel/singleton.rb +47 -0
  258. data/packages/core/lib/facet/kernel/superior.rb +53 -0
  259. data/packages/core/lib/facet/kernel/supermethod.rb +44 -0
  260. data/packages/core/lib/facet/kernel/this.rb +33 -0
  261. data/packages/core/lib/facet/kernel/to_b.rb +41 -0
  262. data/packages/core/lib/facet/kernel/to_bool.rb +47 -0
  263. data/packages/core/lib/facet/kernel/true.rb +2 -0
  264. data/packages/core/lib/facet/kernel/unuri.rb +2 -0
  265. data/packages/core/lib/facet/kernel/uri.rb +38 -0
  266. data/packages/core/lib/facet/kernel/val.rb +52 -0
  267. data/packages/core/lib/facet/kernel/warn_with_line.rb +30 -0
  268. data/packages/core/lib/facet/kernel/with_accessor.rb +94 -0
  269. data/packages/core/lib/facet/kernel/with_reader.rb +2 -0
  270. data/packages/core/lib/facet/kernel/with_writer.rb +2 -0
  271. data/packages/core/lib/facet/logger.rb +0 -0
  272. data/packages/core/lib/facet/logger/format.rb +28 -0
  273. data/packages/core/lib/facet/logger/format_message.rb +1 -0
  274. data/packages/core/lib/facet/matchdata.rb +3 -0
  275. data/packages/core/lib/facet/matchdata/match.rb +37 -0
  276. data/packages/core/lib/facet/matchdata/matchset.rb +2 -0
  277. data/packages/core/lib/facet/matchdata/matchtree.rb +62 -0
  278. data/packages/core/lib/facet/module.rb +40 -0
  279. data/packages/core/lib/facet/module/abstract.rb +50 -0
  280. data/packages/core/lib/facet/module/alias_module_function.rb +57 -0
  281. data/packages/core/lib/facet/module/ancestor.rb +38 -0
  282. data/packages/core/lib/facet/module/attr.rb +23 -0
  283. data/packages/core/lib/facet/module/attr_setter.rb +48 -0
  284. data/packages/core/lib/facet/module/attr_tester.rb +56 -0
  285. data/packages/core/lib/facet/module/basename.rb +39 -0
  286. data/packages/core/lib/facet/module/by_name.rb +68 -0
  287. data/packages/core/lib/facet/module/cattr_accessor.rb +141 -0
  288. data/packages/core/lib/facet/module/cattr_reader.rb +2 -0
  289. data/packages/core/lib/facet/module/cattr_writer.rb +2 -0
  290. data/packages/core/lib/facet/module/clone_removing.rb +2 -0
  291. data/packages/core/lib/facet/module/clone_renaming.rb +2 -0
  292. data/packages/core/lib/facet/module/clone_using.rb +87 -0
  293. data/packages/core/lib/facet/module/dirname.rb +42 -0
  294. data/packages/core/lib/facet/module/equate_on.rb +70 -0
  295. data/packages/core/lib/facet/module/generate_instance_method_name.rb +47 -0
  296. data/packages/core/lib/facet/module/include_as.rb +102 -0
  297. data/packages/core/lib/facet/module/initializer.rb +65 -0
  298. data/packages/core/lib/facet/module/instance_methods.rb +186 -0
  299. data/packages/core/lib/facet/module/integrate.rb +51 -0
  300. data/packages/core/lib/facet/module/is.rb +34 -0
  301. data/packages/core/lib/facet/module/memoize.rb +95 -0
  302. data/packages/core/lib/facet/module/modspace.rb +43 -0
  303. data/packages/core/lib/facet/module/namespace.rb +61 -0
  304. data/packages/core/lib/facet/module/nesting.rb +45 -0
  305. data/packages/core/lib/facet/module/redef.rb +31 -0
  306. data/packages/core/lib/facet/module/redefine_method.rb +57 -0
  307. data/packages/core/lib/facet/module/redirect.rb +30 -0
  308. data/packages/core/lib/facet/module/redirect_method.rb +64 -0
  309. data/packages/core/lib/facet/module/remove.rb +29 -0
  310. data/packages/core/lib/facet/module/rename.rb +31 -0
  311. data/packages/core/lib/facet/module/rename_method.rb +38 -0
  312. data/packages/core/lib/facet/module/revisal.rb +49 -0
  313. data/packages/core/lib/facet/module/shadow_all.rb +17 -0
  314. data/packages/core/lib/facet/module/shadow_method.rb +42 -0
  315. data/packages/core/lib/facet/module/sort_on.rb +73 -0
  316. data/packages/core/lib/facet/module/undef.rb +29 -0
  317. data/packages/core/lib/facet/module/wrap.rb +30 -0
  318. data/packages/core/lib/facet/module/wrap_method.rb +48 -0
  319. data/packages/core/lib/facet/nil_as_emptiness.rb +34 -0
  320. data/packages/core/lib/facet/nilclass.rb +7 -0
  321. data/packages/core/lib/facet/nilclass/empty.rb +32 -0
  322. data/packages/core/lib/facet/nilclass/include.rb +32 -0
  323. data/packages/core/lib/facet/nilclass/length.rb +2 -0
  324. data/packages/core/lib/facet/nilclass/op_fetch.rb +37 -0
  325. data/packages/core/lib/facet/nilclass/size.rb +44 -0
  326. data/packages/core/lib/facet/nilclass/to_f.rb +32 -0
  327. data/packages/core/lib/facet/nilclass/to_h.rb +33 -0
  328. data/packages/core/lib/facet/numeric.rb +5 -0
  329. data/packages/core/lib/facet/numeric/ceil_multiple.rb +40 -0
  330. data/packages/core/lib/facet/numeric/pred.rb +2 -0
  331. data/packages/core/lib/facet/numeric/succ.rb +69 -0
  332. data/packages/core/lib/facet/numeric/to_b.rb +38 -0
  333. data/packages/core/lib/facet/ostruct.rb +0 -0
  334. data/packages/core/lib/facet/ostruct/__merge__.rb +52 -0
  335. data/packages/core/lib/facet/ostruct/__table__.rb +17 -0
  336. data/packages/core/lib/facet/ostruct/__update__.rb +45 -0
  337. data/packages/core/lib/facet/ostruct/op_fetch.rb +40 -0
  338. data/packages/core/lib/facet/ostruct/op_store.rb +42 -0
  339. data/packages/core/lib/facet/ostruct/to_h.rb +8 -0
  340. data/packages/core/lib/facet/pathname.rb +2 -0
  341. data/packages/core/lib/facet/pathname/ascend.rb +22 -0
  342. data/packages/core/lib/facet/pathname/descend.rb +20 -0
  343. data/packages/core/lib/facet/proc.rb +3 -0
  344. data/packages/core/lib/facet/proc/compose.rb +62 -0
  345. data/packages/core/lib/facet/proc/op_mul.rb +2 -0
  346. data/packages/core/lib/facet/proc/to_method.rb +74 -0
  347. data/packages/core/lib/facet/random.rb +21 -0
  348. data/packages/core/lib/facet/range.rb +4 -0
  349. data/packages/core/lib/facet/range/to_r.rb +32 -0
  350. data/packages/core/lib/facet/range/to_range.rb +36 -0
  351. data/packages/core/lib/facet/range/umbrella.rb +67 -0
  352. data/packages/core/lib/facet/range/within.rb +44 -0
  353. data/packages/core/lib/facet/regexp.rb +3 -0
  354. data/packages/core/lib/facet/regexp/arity.rb +41 -0
  355. data/packages/core/lib/facet/regexp/to_re.rb +38 -0
  356. data/packages/core/lib/facet/regexp/to_regexp.rb +36 -0
  357. data/packages/core/lib/facet/string.rb +86 -0
  358. data/packages/core/lib/facet/string/align_center.rb +87 -0
  359. data/packages/core/lib/facet/string/align_left.rb +2 -0
  360. data/packages/core/lib/facet/string/align_right.rb +2 -0
  361. data/packages/core/lib/facet/string/at.rb +8 -0
  362. data/packages/core/lib/facet/string/at_rand.rb +65 -0
  363. data/packages/core/lib/facet/string/basename.rb +48 -0
  364. data/packages/core/lib/facet/string/blank.rb +36 -0
  365. data/packages/core/lib/facet/string/bracket.rb +70 -0
  366. data/packages/core/lib/facet/string/brief.rb +33 -0
  367. data/packages/core/lib/facet/string/bytes.rb +19 -0
  368. data/packages/core/lib/facet/string/camelcase.rb +58 -0
  369. data/packages/core/lib/facet/string/camelize.rb +35 -0
  370. data/packages/core/lib/facet/string/capitalized.rb +38 -0
  371. data/packages/core/lib/facet/string/chars.rb +34 -0
  372. data/packages/core/lib/facet/string/cmp.rb +43 -0
  373. data/packages/core/lib/facet/string/demodulize.rb +40 -0
  374. data/packages/core/lib/facet/string/dequote.rb +29 -0
  375. data/packages/core/lib/facet/string/downcase.rb +37 -0
  376. data/packages/core/lib/facet/string/dresner.rb +49 -0
  377. data/packages/core/lib/facet/string/each_char.rb +35 -0
  378. data/packages/core/lib/facet/string/each_word.rb +50 -0
  379. data/packages/core/lib/facet/string/ends_with.rb +2 -0
  380. data/packages/core/lib/facet/string/first.rb +94 -0
  381. data/packages/core/lib/facet/string/first_char.rb +20 -0
  382. data/packages/core/lib/facet/string/fold.rb +67 -0
  383. data/packages/core/lib/facet/string/format.rb +17 -0
  384. data/packages/core/lib/facet/string/frequency.rb +39 -0
  385. data/packages/core/lib/facet/string/humanize.rb +31 -0
  386. data/packages/core/lib/facet/string/indent.rb +68 -0
  387. data/packages/core/lib/facet/string/index_all.rb +40 -0
  388. data/packages/core/lib/facet/string/last.rb +94 -0
  389. data/packages/core/lib/facet/string/last_char.rb +22 -0
  390. data/packages/core/lib/facet/string/line_wrap.rb +77 -0
  391. data/packages/core/lib/facet/string/lines.rb +33 -0
  392. data/packages/core/lib/facet/string/lowercase.rb +32 -0
  393. data/packages/core/lib/facet/string/margin.rb +138 -0
  394. data/packages/core/lib/facet/string/mscan.rb +42 -0
  395. data/packages/core/lib/facet/string/natcmp.rb +108 -0
  396. data/packages/core/lib/facet/string/nchar.rb +45 -0
  397. data/packages/core/lib/facet/string/ordinal.rb +16 -0
  398. data/packages/core/lib/facet/string/plural.rb +2 -0
  399. data/packages/core/lib/facet/string/pop.rb +54 -0
  400. data/packages/core/lib/facet/string/probability.rb +34 -0
  401. data/packages/core/lib/facet/string/pull.rb +17 -0
  402. data/packages/core/lib/facet/string/push.rb +44 -0
  403. data/packages/core/lib/facet/string/quote.rb +68 -0
  404. data/packages/core/lib/facet/string/rand_byte.rb +55 -0
  405. data/packages/core/lib/facet/string/rand_index.rb +29 -0
  406. data/packages/core/lib/facet/string/range.rb +37 -0
  407. data/packages/core/lib/facet/string/range_all.rb +48 -0
  408. data/packages/core/lib/facet/string/range_of_line.rb +42 -0
  409. data/packages/core/lib/facet/string/regesc.rb +32 -0
  410. data/packages/core/lib/facet/string/self/format.rb +17 -0
  411. data/packages/core/lib/facet/string/self/interpolate.rb +31 -0
  412. data/packages/core/lib/facet/string/self/patterns.rb +51 -0
  413. data/packages/core/lib/facet/string/self/rand_letter.rb +34 -0
  414. data/packages/core/lib/facet/string/self/random.rb +36 -0
  415. data/packages/core/lib/facet/string/shatter.rb +45 -0
  416. data/packages/core/lib/facet/string/shift.rb +42 -0
  417. data/packages/core/lib/facet/string/shuffle.rb +42 -0
  418. data/packages/core/lib/facet/string/similarity.rb +108 -0
  419. data/packages/core/lib/facet/string/singular.rb +117 -0
  420. data/packages/core/lib/facet/string/slap.rb +44 -0
  421. data/packages/core/lib/facet/string/soundex.rb +102 -0
  422. data/packages/core/lib/facet/string/starts_with.rb +24 -0
  423. data/packages/core/lib/facet/string/succ.rb +38 -0
  424. data/packages/core/lib/facet/string/tab.rb +2 -0
  425. data/packages/core/lib/facet/string/tabto.rb +2 -0
  426. data/packages/core/lib/facet/string/to_a.rb +35 -0
  427. data/packages/core/lib/facet/string/to_arr.rb +55 -0
  428. data/packages/core/lib/facet/string/to_b.rb +64 -0
  429. data/packages/core/lib/facet/string/to_const.rb +39 -0
  430. data/packages/core/lib/facet/string/to_date.rb +35 -0
  431. data/packages/core/lib/facet/string/to_proc.rb +54 -0
  432. data/packages/core/lib/facet/string/to_re.rb +46 -0
  433. data/packages/core/lib/facet/string/to_rx.rb +2 -0
  434. data/packages/core/lib/facet/string/to_time.rb +34 -0
  435. data/packages/core/lib/facet/string/unbracket.rb +46 -0
  436. data/packages/core/lib/facet/string/underscore.rb +18 -0
  437. data/packages/core/lib/facet/string/unix_crypt.rb +41 -0
  438. data/packages/core/lib/facet/string/unpack.rb +45 -0
  439. data/packages/core/lib/facet/string/unshift.rb +42 -0
  440. data/packages/core/lib/facet/string/upcase.rb +45 -0
  441. data/packages/core/lib/facet/string/uppercase.rb +2 -0
  442. data/packages/core/lib/facet/string/whitespace.rb +27 -0
  443. data/packages/core/lib/facet/string/word_filter.rb +61 -0
  444. data/packages/core/lib/facet/string/word_wrap.rb +90 -0
  445. data/packages/core/lib/facet/string/words.rb +45 -0
  446. data/packages/core/lib/facet/string_as_array.rb +16 -0
  447. data/packages/core/lib/facet/symbol.rb +13 -0
  448. data/packages/core/lib/facet/symbol/camelcase.rb +42 -0
  449. data/packages/core/lib/facet/symbol/camelize.rb +33 -0
  450. data/packages/core/lib/facet/symbol/capitalize.rb +31 -0
  451. data/packages/core/lib/facet/symbol/capitalized.rb +33 -0
  452. data/packages/core/lib/facet/symbol/downcase.rb +36 -0
  453. data/packages/core/lib/facet/symbol/not.rb +40 -0
  454. data/packages/core/lib/facet/symbol/pad.rb +43 -0
  455. data/packages/core/lib/facet/symbol/succ.rb +42 -0
  456. data/packages/core/lib/facet/symbol/to_const.rb +40 -0
  457. data/packages/core/lib/facet/symbol/to_proc.rb +45 -0
  458. data/packages/core/lib/facet/symbol/to_str.rb +39 -0
  459. data/packages/core/lib/facet/symbol/underscore.rb +32 -0
  460. data/packages/core/lib/facet/symbol/upcase.rb +37 -0
  461. data/packages/core/lib/facet/time.rb +7 -0
  462. data/packages/core/lib/facet/time/change.rb +51 -0
  463. data/packages/core/lib/facet/time/elapse.rb +41 -0
  464. data/packages/core/lib/facet/time/self/days_extrema.rb +22 -0
  465. data/packages/core/lib/facet/time/self/stamp.rb +2 -0
  466. data/packages/core/lib/facet/time/stamp.rb +51 -0
  467. data/packages/core/lib/facet/time/to_date.rb +37 -0
  468. data/packages/core/lib/facet/time/to_s.rb +33 -0
  469. data/packages/core/lib/facet/time/to_time.rb +36 -0
  470. data/packages/core/lib/facet/unboundmethod.rb +1 -0
  471. data/packages/core/lib/facet/unboundmethod/name.rb +8 -0
  472. data/packages/core/lib/facets.rb +200 -0
  473. data/packages/core/test/FIXTURE/create_file +1 -0
  474. data/packages/core/test/FIXTURE/filelist/testfile.txt +0 -0
  475. data/packages/core/test/FIXTURE/filelist/testfile2.txt +0 -0
  476. data/packages/core/test/FIXTURE/ls_r/A.txt +0 -0
  477. data/packages/core/test/FIXTURE/ls_r/A/B.txt +0 -0
  478. data/packages/core/test/FIXTURE/ls_r/A/B/C.txt +0 -0
  479. data/packages/core/test/FIXTURE/open_as_string_file +1 -0
  480. data/packages/core/test/FIXTURE/read_list_file +6 -0
  481. data/packages/core/test/FIXTURE/test_file.txt +25 -0
  482. data/packages/core/test/FIXTURE/test_file2.txt +25 -0
  483. data/packages/core/test/lib/facet/array/test_at_rand.rb +34 -0
  484. data/packages/core/test/lib/facet/array/test_delete_unless.rb +28 -0
  485. data/packages/core/test/lib/facet/array/test_delete_values.rb +28 -0
  486. data/packages/core/test/lib/facet/array/test_delete_values_at.rb +31 -0
  487. data/packages/core/test/lib/facet/array/test_first.rb +46 -0
  488. data/packages/core/test/lib/facet/array/test_head.rb +42 -0
  489. data/packages/core/test/lib/facet/array/test_last_index.rb +26 -0
  490. data/packages/core/test/lib/facet/array/test_merge.rb +35 -0
  491. data/packages/core/test/lib/facet/array/test_mid.rb +33 -0
  492. data/packages/core/test/lib/facet/array/test_middle.rb +29 -0
  493. data/packages/core/test/lib/facet/array/test_op_fetch.rb +27 -0
  494. data/packages/core/test/lib/facet/array/test_op_store.rb +30 -0
  495. data/packages/core/test/lib/facet/array/test_pick.rb +40 -0
  496. data/packages/core/test/lib/facet/array/test_pos.rb +28 -0
  497. data/packages/core/test/lib/facet/array/test_pull.rb +28 -0
  498. data/packages/core/test/lib/facet/array/test_rand_index.rb +29 -0
  499. data/packages/core/test/lib/facet/array/test_rand_subset.rb +29 -0
  500. data/packages/core/test/lib/facet/array/test_range.rb +32 -0
  501. data/packages/core/test/lib/facet/array/test_rotate.rb +36 -0
  502. data/packages/core/test/lib/facet/array/test_select.rb +28 -0
  503. data/packages/core/test/lib/facet/array/test_shuffle.rb +35 -0
  504. data/packages/core/test/lib/facet/array/test_slap.rb +28 -0
  505. data/packages/core/test/lib/facet/array/test_thru.rb +27 -0
  506. data/packages/core/test/lib/facet/array/test_to_b.rb +27 -0
  507. data/packages/core/test/lib/facet/array/test_to_h.rb +33 -0
  508. data/packages/core/test/lib/facet/array/test_to_hash.rb +27 -0
  509. data/packages/core/test/lib/facet/binding/self/test_of_caller.rb +35 -0
  510. data/packages/core/test/lib/facet/binding/test___LINE__.rb +43 -0
  511. data/packages/core/test/lib/facet/binding/test_call_stack.rb +34 -0
  512. data/packages/core/test/lib/facet/binding/test_called.rb +30 -0
  513. data/packages/core/test/lib/facet/binding/test_caller.rb +35 -0
  514. data/packages/core/test/lib/facet/binding/test_defined.rb +34 -0
  515. data/packages/core/test/lib/facet/binding/test_eval.rb +34 -0
  516. data/packages/core/test/lib/facet/binding/test_local_variables.rb +34 -0
  517. data/packages/core/test/lib/facet/binding/test_method_name.rb +34 -0
  518. data/packages/core/test/lib/facet/binding/test_op_fetch.rb +34 -0
  519. data/packages/core/test/lib/facet/binding/test_op_store.rb +35 -0
  520. data/packages/core/test/lib/facet/binding/test_self.rb +34 -0
  521. data/packages/core/test/lib/facet/class/test_descendents.rb +30 -0
  522. data/packages/core/test/lib/facet/class/test_remove_descendents.rb +32 -0
  523. data/packages/core/test/lib/facet/comparable/test_at_least.rb +34 -0
  524. data/packages/core/test/lib/facet/comparable/test_clip.rb +44 -0
  525. data/packages/core/test/lib/facet/comparable/test_cmp.rb +28 -0
  526. data/packages/core/test/lib/facet/continuation/self/test_create.rb +26 -0
  527. data/packages/core/test/lib/facet/date/test_days_in_month.rb +30 -0
  528. data/packages/core/test/lib/facet/date/test_days_of_month.rb +30 -0
  529. data/packages/core/test/lib/facet/date/test_stamp.rb +38 -0
  530. data/packages/core/test/lib/facet/date/test_to_date.rb +30 -0
  531. data/packages/core/test/lib/facet/date/test_to_s.rb +30 -0
  532. data/packages/core/test/lib/facet/date/test_to_time.rb +30 -0
  533. data/packages/core/test/lib/facet/dir/self/test_ancestor.rb +26 -0
  534. data/packages/core/test/lib/facet/dir/self/test_ascend.rb +41 -0
  535. data/packages/core/test/lib/facet/dir/self/test_ls_r.rb +52 -0
  536. data/packages/core/test/lib/facet/enumerable/self/test_combinations.rb +43 -0
  537. data/packages/core/test/lib/facet/enumerable/self/test_cross.rb +31 -0
  538. data/packages/core/test/lib/facet/enumerable/test_collect_with_index.rb +27 -0
  539. data/packages/core/test/lib/facet/enumerable/test_commonality.rb +31 -0
  540. data/packages/core/test/lib/facet/enumerable/test_compact_collect.rb +27 -0
  541. data/packages/core/test/lib/facet/enumerable/test_cross.rb +30 -0
  542. data/packages/core/test/lib/facet/enumerable/test_each_combination.rb +29 -0
  543. data/packages/core/test/lib/facet/enumerable/test_each_pair.rb +29 -0
  544. data/packages/core/test/lib/facet/enumerable/test_each_slice.rb +74 -0
  545. data/packages/core/test/lib/facet/enumerable/test_each_unique_pair.rb +29 -0
  546. data/packages/core/test/lib/facet/enumerable/test_entropy.rb +26 -0
  547. data/packages/core/test/lib/facet/enumerable/test_every.rb +35 -0
  548. data/packages/core/test/lib/facet/enumerable/test_ew.rb +31 -0
  549. data/packages/core/test/lib/facet/enumerable/test_filter_collect.rb +31 -0
  550. data/packages/core/test/lib/facet/enumerable/test_find_collisions.rb +30 -0
  551. data/packages/core/test/lib/facet/enumerable/test_frequency.rb +27 -0
  552. data/packages/core/test/lib/facet/enumerable/test_graph.rb +30 -0
  553. data/packages/core/test/lib/facet/enumerable/test_ideal_entropy.rb +27 -0
  554. data/packages/core/test/lib/facet/enumerable/test_none.rb +33 -0
  555. data/packages/core/test/lib/facet/enumerable/test_occur.rb +30 -0
  556. data/packages/core/test/lib/facet/enumerable/test_one.rb +35 -0
  557. data/packages/core/test/lib/facet/enumerable/test_op_pow.rb +27 -0
  558. data/packages/core/test/lib/facet/enumerable/test_partition_by.rb +31 -0
  559. data/packages/core/test/lib/facet/enumerable/test_permute.rb +29 -0
  560. data/packages/core/test/lib/facet/enumerable/test_probability.rb +27 -0
  561. data/packages/core/test/lib/facet/enumerable/test_to_h.rb +27 -0
  562. data/packages/core/test/lib/facet/enumerable/test_uniq_by.rb +28 -0
  563. data/packages/core/test/lib/facet/file/self/test_create.rb +39 -0
  564. data/packages/core/test/lib/facet/file/self/test_open_as_string.rb +40 -0
  565. data/packages/core/test/lib/facet/file/self/test_read_list.rb +37 -0
  566. data/packages/core/test/lib/facet/file/self/test_sanitize.rb +46 -0
  567. data/packages/core/test/lib/facet/file/self/test_split_all.rb +27 -0
  568. data/packages/core/test/lib/facet/fileutils/test_slice.rb +96 -0
  569. data/packages/core/test/lib/facet/fileutils/test_wc.rb +68 -0
  570. data/packages/core/test/lib/facet/fileutils/test_which.rb +61 -0
  571. data/packages/core/test/lib/facet/float/test_approx.rb +28 -0
  572. data/packages/core/test/lib/facet/float/test_round_at.rb +46 -0
  573. data/packages/core/test/lib/facet/float/test_round_to.rb +46 -0
  574. data/packages/core/test/lib/facet/hash/self/test_zipnew.rb +28 -0
  575. data/packages/core/test/lib/facet/hash/test_alias.rb +31 -0
  576. data/packages/core/test/lib/facet/hash/test_assert_has_keys.rb +27 -0
  577. data/packages/core/test/lib/facet/hash/test_assert_has_only_keys.rb +27 -0
  578. data/packages/core/test/lib/facet/hash/test_at.rb +28 -0
  579. data/packages/core/test/lib/facet/hash/test_collate.rb +35 -0
  580. data/packages/core/test/lib/facet/hash/test_each.rb +36 -0
  581. data/packages/core/test/lib/facet/hash/test_each_with_index.rb +29 -0
  582. data/packages/core/test/lib/facet/hash/test_each_with_key.rb +29 -0
  583. data/packages/core/test/lib/facet/hash/test_graph.rb +28 -0
  584. data/packages/core/test/lib/facet/hash/test_has_keys.rb +27 -0
  585. data/packages/core/test/lib/facet/hash/test_has_only_keys.rb +27 -0
  586. data/packages/core/test/lib/facet/hash/test_inverse.rb +28 -0
  587. data/packages/core/test/lib/facet/hash/test_keys_to_s.rb +34 -0
  588. data/packages/core/test/lib/facet/hash/test_keys_to_sym.rb +34 -0
  589. data/packages/core/test/lib/facet/hash/test_op_fetch.rb +111 -0
  590. data/packages/core/test/lib/facet/hash/test_op_lshift.rb +29 -0
  591. data/packages/core/test/lib/facet/hash/test_rand_key.rb +27 -0
  592. data/packages/core/test/lib/facet/hash/test_rand_pair.rb +27 -0
  593. data/packages/core/test/lib/facet/hash/test_rand_value.rb +27 -0
  594. data/packages/core/test/lib/facet/hash/test_replace_each.rb +29 -0
  595. data/packages/core/test/lib/facet/hash/test_shuffle.rb +32 -0
  596. data/packages/core/test/lib/facet/hash/test_slice.rb +27 -0
  597. data/packages/core/test/lib/facet/hash/test_swap.rb +27 -0
  598. data/packages/core/test/lib/facet/hash/test_swapkey.rb +29 -0
  599. data/packages/core/test/lib/facet/hash/test_to_h.rb +27 -0
  600. data/packages/core/test/lib/facet/hash/test_to_ostruct.rb +30 -0
  601. data/packages/core/test/lib/facet/hash/test_to_ostruct_recurse.rb +30 -0
  602. data/packages/core/test/lib/facet/hash/test_traverse.rb +37 -0
  603. data/packages/core/test/lib/facet/hash/test_update_each.rb +29 -0
  604. data/packages/core/test/lib/facet/hash/test_update_keys.rb +28 -0
  605. data/packages/core/test/lib/facet/hash/test_update_values.rb +28 -0
  606. data/packages/core/test/lib/facet/hash/test_weave.rb +29 -0
  607. data/packages/core/test/lib/facet/integer/test_factorial.rb +30 -0
  608. data/packages/core/test/lib/facet/integer/test_multiple.rb +43 -0
  609. data/packages/core/test/lib/facet/integer/test_ordinal.rb +29 -0
  610. data/packages/core/test/lib/facet/integer/test_times_collect.rb +28 -0
  611. data/packages/core/test/lib/facet/kernel/test___class__.rb +26 -0
  612. data/packages/core/test/lib/facet/kernel/test_as.rb +42 -0
  613. data/packages/core/test/lib/facet/kernel/test_assign_from.rb +31 -0
  614. data/packages/core/test/lib/facet/kernel/test_assign_with.rb +31 -0
  615. data/packages/core/test/lib/facet/kernel/test_bool.rb +41 -0
  616. data/packages/core/test/lib/facet/kernel/test_bug.rb +26 -0
  617. data/packages/core/test/lib/facet/kernel/test_call_stack.rb +26 -0
  618. data/packages/core/test/lib/facet/kernel/test_called.rb +26 -0
  619. data/packages/core/test/lib/facet/kernel/test_constant.rb +33 -0
  620. data/packages/core/test/lib/facet/kernel/test_copy.rb +40 -0
  621. data/packages/core/test/lib/facet/kernel/test_deep_copy.rb +40 -0
  622. data/packages/core/test/lib/facet/kernel/test_demo.rb +28 -0
  623. data/packages/core/test/lib/facet/kernel/test_fn.rb +26 -0
  624. data/packages/core/test/lib/facet/kernel/test_generate_method_name.rb +26 -0
  625. data/packages/core/test/lib/facet/kernel/test_get_by_id.rb +28 -0
  626. data/packages/core/test/lib/facet/kernel/test_here.rb +26 -0
  627. data/packages/core/test/lib/facet/kernel/test_in.rb +27 -0
  628. data/packages/core/test/lib/facet/kernel/test_maybe.rb +26 -0
  629. data/packages/core/test/lib/facet/kernel/test_metaclass.rb +34 -0
  630. data/packages/core/test/lib/facet/kernel/test_method.rb +32 -0
  631. data/packages/core/test/lib/facet/kernel/test_method_name.rb +31 -0
  632. data/packages/core/test/lib/facet/kernel/test_methods.rb +50 -0
  633. data/packages/core/test/lib/facet/kernel/test_new.rb +30 -0
  634. data/packages/core/test/lib/facet/kernel/test_object_class.rb +26 -0
  635. data/packages/core/test/lib/facet/kernel/test_object_hexid.rb +27 -0
  636. data/packages/core/test/lib/facet/kernel/test_require_all.rb +26 -0
  637. data/packages/core/test/lib/facet/kernel/test_require_esc.rb +27 -0
  638. data/packages/core/test/lib/facet/kernel/test_require_facet.rb +27 -0
  639. data/packages/core/test/lib/facet/kernel/test_resc.rb +27 -0
  640. data/packages/core/test/lib/facet/kernel/test_returning.rb +30 -0
  641. data/packages/core/test/lib/facet/kernel/test_send_as.rb +26 -0
  642. data/packages/core/test/lib/facet/kernel/test_set_from.rb +33 -0
  643. data/packages/core/test/lib/facet/kernel/test_set_with.rb +33 -0
  644. data/packages/core/test/lib/facet/kernel/test_silently.rb +28 -0
  645. data/packages/core/test/lib/facet/kernel/test_singleton.rb +40 -0
  646. data/packages/core/test/lib/facet/kernel/test_superior.rb +30 -0
  647. data/packages/core/test/lib/facet/kernel/test_supermethod.rb +33 -0
  648. data/packages/core/test/lib/facet/kernel/test_this.rb +26 -0
  649. data/packages/core/test/lib/facet/kernel/test_to_b.rb +28 -0
  650. data/packages/core/test/lib/facet/kernel/test_to_bool.rb +28 -0
  651. data/packages/core/test/lib/facet/kernel/test_uri.rb +30 -0
  652. data/packages/core/test/lib/facet/kernel/test_val.rb +43 -0
  653. data/packages/core/test/lib/facet/kernel/test_with_accessor.rb +51 -0
  654. data/packages/core/test/lib/facet/matchdata/test_match.rb +29 -0
  655. data/packages/core/test/lib/facet/matchdata/test_matchtree.rb +32 -0
  656. data/packages/core/test/lib/facet/module/test_abstract.rb +36 -0
  657. data/packages/core/test/lib/facet/module/test_alias_module_function.rb +34 -0
  658. data/packages/core/test/lib/facet/module/test_ancestor.rb +26 -0
  659. data/packages/core/test/lib/facet/module/test_basename.rb +26 -0
  660. data/packages/core/test/lib/facet/module/test_by_name.rb +29 -0
  661. data/packages/core/test/lib/facet/module/test_cattr_accessor.rb +55 -0
  662. data/packages/core/test/lib/facet/module/test_clone_using.rb +55 -0
  663. data/packages/core/test/lib/facet/module/test_dirname.rb +26 -0
  664. data/packages/core/test/lib/facet/module/test_equate_on.rb +37 -0
  665. data/packages/core/test/lib/facet/module/test_generate_instance_method_name.rb +33 -0
  666. data/packages/core/test/lib/facet/module/test_include_as.rb +35 -0
  667. data/packages/core/test/lib/facet/module/test_initializer.rb +32 -0
  668. data/packages/core/test/lib/facet/module/test_instance_methods.rb +59 -0
  669. data/packages/core/test/lib/facet/module/test_integrate.rb +35 -0
  670. data/packages/core/test/lib/facet/module/test_memoize.rb +50 -0
  671. data/packages/core/test/lib/facet/module/test_modspace.rb +27 -0
  672. data/packages/core/test/lib/facet/module/test_namespace.rb +33 -0
  673. data/packages/core/test/lib/facet/module/test_nesting.rb +36 -0
  674. data/packages/core/test/lib/facet/module/test_redef.rb +30 -0
  675. data/packages/core/test/lib/facet/module/test_redefine_method.rb +30 -0
  676. data/packages/core/test/lib/facet/module/test_redirect.rb +30 -0
  677. data/packages/core/test/lib/facet/module/test_redirect_method.rb +30 -0
  678. data/packages/core/test/lib/facet/module/test_remove.rb +30 -0
  679. data/packages/core/test/lib/facet/module/test_rename.rb +31 -0
  680. data/packages/core/test/lib/facet/module/test_rename_method.rb +31 -0
  681. data/packages/core/test/lib/facet/module/test_revisal.rb +35 -0
  682. data/packages/core/test/lib/facet/module/test_shadow_method.rb +30 -0
  683. data/packages/core/test/lib/facet/module/test_sort_on.rb +42 -0
  684. data/packages/core/test/lib/facet/module/test_undef.rb +30 -0
  685. data/packages/core/test/lib/facet/module/test_wrap.rb +30 -0
  686. data/packages/core/test/lib/facet/module/test_wrap_method.rb +30 -0
  687. data/packages/core/test/lib/facet/nilclass/test_empty.rb +26 -0
  688. data/packages/core/test/lib/facet/nilclass/test_include.rb +26 -0
  689. data/packages/core/test/lib/facet/nilclass/test_op_fetch.rb +28 -0
  690. data/packages/core/test/lib/facet/nilclass/test_size.rb +30 -0
  691. data/packages/core/test/lib/facet/nilclass/test_to_f.rb +26 -0
  692. data/packages/core/test/lib/facet/nilclass/test_to_h.rb +26 -0
  693. data/packages/core/test/lib/facet/numeric/test_ceil_multiple.rb +31 -0
  694. data/packages/core/test/lib/facet/numeric/test_succ.rb +40 -0
  695. data/packages/core/test/lib/facet/numeric/test_to_b.rb +27 -0
  696. data/packages/core/test/lib/facet/ostruct/test___merge__.rb +38 -0
  697. data/packages/core/test/lib/facet/ostruct/test___update__.rb +29 -0
  698. data/packages/core/test/lib/facet/ostruct/test_op_fetch.rb +27 -0
  699. data/packages/core/test/lib/facet/ostruct/test_op_store.rb +28 -0
  700. data/packages/core/test/lib/facet/proc/test_compose.rb +36 -0
  701. data/packages/core/test/lib/facet/proc/test_to_method.rb +31 -0
  702. data/packages/core/test/lib/facet/range/test_to_r.rb +27 -0
  703. data/packages/core/test/lib/facet/range/test_to_range.rb +27 -0
  704. data/packages/core/test/lib/facet/range/test_umbrella.rb +34 -0
  705. data/packages/core/test/lib/facet/range/test_within.rb +29 -0
  706. data/packages/core/test/lib/facet/regexp/test_arity.rb +33 -0
  707. data/packages/core/test/lib/facet/regexp/test_to_re.rb +27 -0
  708. data/packages/core/test/lib/facet/regexp/test_to_regexp.rb +27 -0
  709. data/packages/core/test/lib/facet/string/self/test_interpolate.rb +27 -0
  710. data/packages/core/test/lib/facet/string/self/test_patterns.rb +28 -0
  711. data/packages/core/test/lib/facet/string/self/test_rand_letter.rb +26 -0
  712. data/packages/core/test/lib/facet/string/test_align_center.rb +34 -0
  713. data/packages/core/test/lib/facet/string/test_at_rand.rb +35 -0
  714. data/packages/core/test/lib/facet/string/test_basename.rb +41 -0
  715. data/packages/core/test/lib/facet/string/test_blank.rb +27 -0
  716. data/packages/core/test/lib/facet/string/test_bracket.rb +49 -0
  717. data/packages/core/test/lib/facet/string/test_camelcase.rb +39 -0
  718. data/packages/core/test/lib/facet/string/test_camelize.rb +26 -0
  719. data/packages/core/test/lib/facet/string/test_capitalized.rb +26 -0
  720. data/packages/core/test/lib/facet/string/test_chars.rb +27 -0
  721. data/packages/core/test/lib/facet/string/test_cmp.rb +30 -0
  722. data/packages/core/test/lib/facet/string/test_demodulize.rb +38 -0
  723. data/packages/core/test/lib/facet/string/test_downcase.rb +26 -0
  724. data/packages/core/test/lib/facet/string/test_dresner.rb +32 -0
  725. data/packages/core/test/lib/facet/string/test_each_char.rb +29 -0
  726. data/packages/core/test/lib/facet/string/test_each_word.rb +29 -0
  727. data/packages/core/test/lib/facet/string/test_first.rb +43 -0
  728. data/packages/core/test/lib/facet/string/test_fold.rb +34 -0
  729. data/packages/core/test/lib/facet/string/test_frequency.rb +28 -0
  730. data/packages/core/test/lib/facet/string/test_humanize.rb +26 -0
  731. data/packages/core/test/lib/facet/string/test_indent.rb +40 -0
  732. data/packages/core/test/lib/facet/string/test_index_all.rb +26 -0
  733. data/packages/core/test/lib/facet/string/test_last.rb +46 -0
  734. data/packages/core/test/lib/facet/string/test_line_wrap.rb +27 -0
  735. data/packages/core/test/lib/facet/string/test_lines.rb +26 -0
  736. data/packages/core/test/lib/facet/string/test_lowercase.rb +26 -0
  737. data/packages/core/test/lib/facet/string/test_margin.rb +117 -0
  738. data/packages/core/test/lib/facet/string/test_mscan.rb +30 -0
  739. data/packages/core/test/lib/facet/string/test_natcmp.rb +30 -0
  740. data/packages/core/test/lib/facet/string/test_nchar.rb +29 -0
  741. data/packages/core/test/lib/facet/string/test_pop.rb +47 -0
  742. data/packages/core/test/lib/facet/string/test_probability.rb +28 -0
  743. data/packages/core/test/lib/facet/string/test_push.rb +40 -0
  744. data/packages/core/test/lib/facet/string/test_quote.rb +49 -0
  745. data/packages/core/test/lib/facet/string/test_rand_byte.rb +35 -0
  746. data/packages/core/test/lib/facet/string/test_rand_index.rb +26 -0
  747. data/packages/core/test/lib/facet/string/test_range.rb +27 -0
  748. data/packages/core/test/lib/facet/string/test_range_all.rb +27 -0
  749. data/packages/core/test/lib/facet/string/test_range_of_line.rb +28 -0
  750. data/packages/core/test/lib/facet/string/test_regesc.rb +28 -0
  751. data/packages/core/test/lib/facet/string/test_shatter.rb +29 -0
  752. data/packages/core/test/lib/facet/string/test_shift.rb +40 -0
  753. data/packages/core/test/lib/facet/string/test_shuffle.rb +27 -0
  754. data/packages/core/test/lib/facet/string/test_similarity.rb +26 -0
  755. data/packages/core/test/lib/facet/string/test_singular.rb +32 -0
  756. data/packages/core/test/lib/facet/string/test_slap.rb +40 -0
  757. data/packages/core/test/lib/facet/string/test_soundex.rb +41 -0
  758. data/packages/core/test/lib/facet/string/test_succ.rb +29 -0
  759. data/packages/core/test/lib/facet/string/test_to_a.rb +27 -0
  760. data/packages/core/test/lib/facet/string/test_to_arr.rb +26 -0
  761. data/packages/core/test/lib/facet/string/test_to_b.rb +41 -0
  762. data/packages/core/test/lib/facet/string/test_to_const.rb +28 -0
  763. data/packages/core/test/lib/facet/string/test_to_date.rb +30 -0
  764. data/packages/core/test/lib/facet/string/test_to_proc.rb +33 -0
  765. data/packages/core/test/lib/facet/string/test_to_re.rb +28 -0
  766. data/packages/core/test/lib/facet/string/test_to_time.rb +30 -0
  767. data/packages/core/test/lib/facet/string/test_unix_crypt.rb +30 -0
  768. data/packages/core/test/lib/facet/string/test_unpack.rb +34 -0
  769. data/packages/core/test/lib/facet/string/test_unshift.rb +39 -0
  770. data/packages/core/test/lib/facet/string/test_upcase.rb +30 -0
  771. data/packages/core/test/lib/facet/string/test_whitespace.rb +27 -0
  772. data/packages/core/test/lib/facet/string/test_word_filter.rb +34 -0
  773. data/packages/core/test/lib/facet/string/test_word_wrap.rb +51 -0
  774. data/packages/core/test/lib/facet/string/test_words.rb +37 -0
  775. data/packages/core/test/lib/facet/symbol/test_camelcase.rb +26 -0
  776. data/packages/core/test/lib/facet/symbol/test_camelize.rb +27 -0
  777. data/packages/core/test/lib/facet/symbol/test_capitalize.rb +26 -0
  778. data/packages/core/test/lib/facet/symbol/test_capitalized.rb +27 -0
  779. data/packages/core/test/lib/facet/symbol/test_downcase.rb +27 -0
  780. data/packages/core/test/lib/facet/symbol/test_not.rb +29 -0
  781. data/packages/core/test/lib/facet/symbol/test_pad.rb +27 -0
  782. data/packages/core/test/lib/facet/symbol/test_succ.rb +28 -0
  783. data/packages/core/test/lib/facet/symbol/test_to_const.rb +28 -0
  784. data/packages/core/test/lib/facet/symbol/test_to_proc.rb +27 -0
  785. data/packages/core/test/lib/facet/symbol/test_to_str.rb +28 -0
  786. data/packages/core/test/lib/facet/symbol/test_underscore.rb +26 -0
  787. data/packages/core/test/lib/facet/symbol/test_upcase.rb +27 -0
  788. data/packages/core/test/lib/facet/time/test_change.rb +33 -0
  789. data/packages/core/test/lib/facet/time/test_elapse.rb +27 -0
  790. data/packages/core/test/lib/facet/time/test_stamp.rb +31 -0
  791. data/packages/core/test/lib/facet/time/test_to_date.rb +31 -0
  792. data/packages/core/test/lib/facet/time/test_to_s.rb +31 -0
  793. data/packages/core/test/lib/facet/time/test_to_time.rb +31 -0
  794. data/packages/core/test/testdir.rb +8 -0
  795. data/packages/more/ProjectInfo +42 -0
  796. data/packages/more/README +131 -0
  797. data/packages/more/TODO +30 -0
  798. data/packages/more/bench/b_calls.rb +74 -0
  799. data/packages/more/bench/b_harray.rb +49 -0
  800. data/packages/more/bench/b_pathname.rb +24 -0
  801. data/packages/more/bench/b_range.rb +64 -0
  802. data/packages/more/bench/return-bench.rb +56 -0
  803. data/packages/more/data/facets/units/binary/base.yaml +12 -0
  804. data/packages/more/data/facets/units/binary/extra.yaml +8 -0
  805. data/packages/more/data/facets/units/cex.yaml +7 -0
  806. data/packages/more/data/facets/units/currency/base.yaml +268 -0
  807. data/packages/more/data/facets/units/default.yaml +22 -0
  808. data/packages/more/data/facets/units/dump_yaml.rb +309 -0
  809. data/packages/more/data/facets/units/si/base.yaml +36 -0
  810. data/packages/more/data/facets/units/si/derived.yaml +133 -0
  811. data/packages/more/data/facets/units/si/extra.yaml +107 -0
  812. data/packages/more/data/facets/units/standard.yaml +5 -0
  813. data/packages/more/data/facets/units/uk.yaml +16 -0
  814. data/packages/more/data/facets/units/uk/base.yaml +107 -0
  815. data/packages/more/data/facets/units/us.yaml +16 -0
  816. data/packages/more/data/facets/units/us/base.yaml +112 -0
  817. data/packages/more/data/facets/units/xmethods/cached.yaml +83 -0
  818. data/packages/more/data/facets/units/xmethods/mapping.yaml +85 -0
  819. data/packages/more/demo/ansicolor/cdiff.rb +20 -0
  820. data/packages/more/demo/ansicolor/example.rb +82 -0
  821. data/packages/more/demo/demo_annotation.rb +22 -0
  822. data/packages/more/demo/io-reactor/chatserver.rb +347 -0
  823. data/packages/more/demo/lisp/game.rb +47 -0
  824. data/packages/more/doc/tagiter.html +145 -0
  825. data/packages/more/info/ProjectInfo.annotation +46 -0
  826. data/packages/more/info/ProjectInfo.ansicode +38 -0
  827. data/packages/more/info/ProjectInfo.asociation +34 -0
  828. data/packages/more/info/ProjectInfo.basicobject +36 -0
  829. data/packages/more/info/ProjectInfo.bbcode +34 -0
  830. data/packages/more/info/ProjectInfo.binaryreader +35 -0
  831. data/packages/more/info/ProjectInfo.bitmask +33 -0
  832. data/packages/more/info/ProjectInfo.classinherit +36 -0
  833. data/packages/more/info/ProjectInfo.classmethods +36 -0
  834. data/packages/more/info/ProjectInfo.cloneable +33 -0
  835. data/packages/more/info/ProjectInfo.consoleapp +35 -0
  836. data/packages/more/info/ProjectInfo.coroutine +37 -0
  837. data/packages/more/info/ProjectInfo.crypt +33 -0
  838. data/packages/more/info/ProjectInfo.dictionary +40 -0
  839. data/packages/more/info/ProjectInfo.downloader +37 -0
  840. data/packages/more/info/ProjectInfo.enumerablepass +35 -0
  841. data/packages/more/info/ProjectInfo.expirable +37 -0
  842. data/packages/more/info/ProjectInfo.floatstring +35 -0
  843. data/packages/more/info/ProjectInfo.functor +40 -0
  844. data/packages/more/info/ProjectInfo.heap +33 -0
  845. data/packages/more/info/ProjectInfo.inheritor +36 -0
  846. data/packages/more/info/ProjectInfo.interval +36 -0
  847. data/packages/more/info/ProjectInfo.lisp +38 -0
  848. data/packages/more/info/ProjectInfo.lrucache +34 -0
  849. data/packages/more/info/ProjectInfo.mathconstants +41 -0
  850. data/packages/more/info/ProjectInfo.methodprobe +38 -0
  851. data/packages/more/info/ProjectInfo.mock +34 -0
  852. data/packages/more/info/ProjectInfo.multiton +36 -0
  853. data/packages/more/info/ProjectInfo.nackclass +33 -0
  854. data/packages/more/info/ProjectInfo.nilcomparable +35 -0
  855. data/packages/more/info/ProjectInfo.nullclass +35 -0
  856. data/packages/more/info/ProjectInfo.oone +37 -0
  857. data/packages/more/info/ProjectInfo.openobject +39 -0
  858. data/packages/more/info/ProjectInfo.paramix +38 -0
  859. data/packages/more/info/ProjectInfo.pool +33 -0
  860. data/packages/more/info/ProjectInfo.progressbar +37 -0
  861. data/packages/more/info/ProjectInfo.reference +36 -0
  862. data/packages/more/info/ProjectInfo.semaphore +36 -0
  863. data/packages/more/info/ProjectInfo.stateparser +39 -0
  864. data/packages/more/info/ProjectInfo.statichash +33 -0
  865. data/packages/more/info/ProjectInfo.system +34 -0
  866. data/packages/more/info/ProjectInfo.tagiterator +36 -0
  867. data/packages/more/info/ProjectInfo.timer +35 -0
  868. data/packages/more/info/ProjectInfo.tracepoint +37 -0
  869. data/packages/more/info/ProjectInfo.tuple +36 -0
  870. data/packages/more/info/ProjectInfo.uniheritable +34 -0
  871. data/packages/more/info/ProjectInfo.units +34 -0
  872. data/packages/more/info/ProjectInfo.yamlstruct +34 -0
  873. data/packages/more/lib/facet/annotation.rb +580 -0
  874. data/packages/more/lib/facet/ansicode.rb +313 -0
  875. data/packages/more/lib/facet/association.rb +156 -0
  876. data/packages/more/lib/facet/basicobject.rb +135 -0
  877. data/packages/more/lib/facet/bbcode.rb +390 -0
  878. data/packages/more/lib/facet/binaryreader.rb +246 -0
  879. data/packages/more/lib/facet/bitmask.rb +112 -0
  880. data/packages/more/lib/facet/bytes.rb +212 -0
  881. data/packages/more/lib/facet/classinherit.rb +216 -0
  882. data/packages/more/lib/facet/classmethods.rb +219 -0
  883. data/packages/more/lib/facet/cloneable.rb +55 -0
  884. data/packages/more/lib/facet/consoleapp.rb +123 -0
  885. data/packages/more/lib/facet/coroutine.rb +172 -0
  886. data/packages/more/lib/facet/crypt.rb +180 -0
  887. data/packages/more/lib/facet/dictionary.rb +436 -0
  888. data/packages/more/lib/facet/downloader.rb +273 -0
  889. data/packages/more/lib/facet/enumerablepass.rb +285 -0
  890. data/packages/more/lib/facet/expirable.rb +87 -0
  891. data/packages/more/lib/facet/floatstring.rb +179 -0
  892. data/packages/more/lib/facet/functor.rb +98 -0
  893. data/packages/more/lib/facet/heap.rb +226 -0
  894. data/packages/more/lib/facet/inheritor.rb +239 -0
  895. data/packages/more/lib/facet/interval.rb +426 -0
  896. data/packages/more/lib/facet/ioredirect.rb +130 -0
  897. data/packages/more/lib/facet/lisp.rb +387 -0
  898. data/packages/more/lib/facet/lisp_format.rb +1843 -0
  899. data/packages/more/lib/facet/lrucache.rb +183 -0
  900. data/packages/more/lib/facet/mathconstants.rb +320 -0
  901. data/packages/more/lib/facet/methodprobe.rb +215 -0
  902. data/packages/more/lib/facet/mock.rb +233 -0
  903. data/packages/more/lib/facet/multipliers.rb +192 -0
  904. data/packages/more/lib/facet/multiton.rb +359 -0
  905. data/packages/more/lib/facet/nackclass.rb +162 -0
  906. data/packages/more/lib/facet/nilcomparable.rb +133 -0
  907. data/packages/more/lib/facet/nullclass.rb +68 -0
  908. data/packages/more/lib/facet/one.rb +109 -0
  909. data/packages/more/lib/facet/openobject.rb +220 -0
  910. data/packages/more/lib/facet/ormsupport.rb +233 -0
  911. data/packages/more/lib/facet/paramix.rb +243 -0
  912. data/packages/more/lib/facet/pool.rb +98 -0
  913. data/packages/more/lib/facet/preinitialize.rb +152 -0
  914. data/packages/more/lib/facet/progressbar.rb +227 -0
  915. data/packages/more/lib/facet/quaternion.rb +527 -0
  916. data/packages/more/lib/facet/reference.rb +83 -0
  917. data/packages/more/lib/facet/semaphore.rb +103 -0
  918. data/packages/more/lib/facet/snapshot.rb +190 -0
  919. data/packages/more/lib/facet/stateparser.rb +579 -0
  920. data/packages/more/lib/facet/statichash.rb +87 -0
  921. data/packages/more/lib/facet/syncarray.rb +144 -0
  922. data/packages/more/lib/facet/synchash.rb +173 -0
  923. data/packages/more/lib/facet/system.rb +169 -0
  924. data/packages/more/lib/facet/tagiterator.rb +387 -0
  925. data/packages/more/lib/facet/timer.rb +307 -0
  926. data/packages/more/lib/facet/times.rb +327 -0
  927. data/packages/more/lib/facet/tracepoint.rb +185 -0
  928. data/packages/more/lib/facet/tuple.rb +170 -0
  929. data/packages/more/lib/facet/typecast.rb +259 -0
  930. data/packages/more/lib/facet/uninheritable.rb +92 -0
  931. data/packages/more/lib/facet/units.rb +926 -0
  932. data/packages/more/lib/facet/yamlstruct.rb +90 -0
  933. data/packages/more/setup.rb +1551 -0
  934. data/packages/more/test/lib/facet/test_annotation.rb +217 -0
  935. data/packages/more/test/lib/facet/test_ansicode.rb +36 -0
  936. data/packages/more/test/lib/facet/test_association.rb +46 -0
  937. data/packages/more/test/lib/facet/test_bbcode.rb +34 -0
  938. data/packages/more/test/lib/facet/test_bitmask.rb +47 -0
  939. data/packages/more/test/lib/facet/test_bytes.rb +84 -0
  940. data/packages/more/test/lib/facet/test_classinherit.rb +65 -0
  941. data/packages/more/test/lib/facet/test_coroutine.rb +60 -0
  942. data/packages/more/test/lib/facet/test_crypt.rb +46 -0
  943. data/packages/more/test/lib/facet/test_dictionary.rb +97 -0
  944. data/packages/more/test/lib/facet/test_enumerablepass.rb +86 -0
  945. data/packages/more/test/lib/facet/test_floatstring.rb +36 -0
  946. data/packages/more/test/lib/facet/test_functor.rb +39 -0
  947. data/packages/more/test/lib/facet/test_inheritor.rb +155 -0
  948. data/packages/more/test/lib/facet/test_interval.rb +119 -0
  949. data/packages/more/test/lib/facet/test_lisp-format.rb +37 -0
  950. data/packages/more/test/lib/facet/test_lisp.rb +47 -0
  951. data/packages/more/test/lib/facet/test_lrucache.rb +25 -0
  952. data/packages/more/test/lib/facet/test_mathconstants.rb +18 -0
  953. data/packages/more/test/lib/facet/test_methodprobe.rb +53 -0
  954. data/packages/more/test/lib/facet/test_multipliers.rb +114 -0
  955. data/packages/more/test/lib/facet/test_multiton.rb +200 -0
  956. data/packages/more/test/lib/facet/test_nackclass.rb +45 -0
  957. data/packages/more/test/lib/facet/test_nilcomparable.rb +43 -0
  958. data/packages/more/test/lib/facet/test_openobject.rb +66 -0
  959. data/packages/more/test/lib/facet/test_paramix.rb +86 -0
  960. data/packages/more/test/lib/facet/test_preinitialize.rb +49 -0
  961. data/packages/more/test/lib/facet/test_snapshot.rb +34 -0
  962. data/packages/more/test/lib/facet/test_statichash.rb +31 -0
  963. data/packages/more/test/lib/facet/test_syncarray.rb +28 -0
  964. data/packages/more/test/lib/facet/test_synchash.rb +28 -0
  965. data/packages/more/test/lib/facet/test_tagiterator.rb +93 -0
  966. data/packages/more/test/lib/facet/test_time.rb +73 -0
  967. data/packages/more/test/lib/facet/test_timer.rb +66 -0
  968. data/packages/more/test/lib/facet/test_tuple.rb +32 -0
  969. data/packages/more/test/lib/facet/test_uninheritable.rb +42 -0
  970. data/packages/more/test/lib/facet/test_units.rb +104 -0
  971. data/packages/more/test/lib/facet/test_yamlstruct.rb +37 -0
  972. data/setup.rb +1551 -0
  973. metadata +1082 -23
@@ -0,0 +1,39 @@
1
+ --- %YAML:1.0
2
+
3
+ TITLE : Facets Core
4
+ NAME : facets_core
5
+ VERSION : '1.0.3'
6
+ DATE : '2006-02-10'
7
+ STATUS : Beta/Stable
8
+
9
+ AUTHOR : Thomas Sawyer
10
+ EMAIL : &email transfire@gmail.com
11
+ HOMEPAGE : "http://facets.rubyforge.org"
12
+
13
+ SUMMARY: Vast collection of atomic core extension methods.
14
+
15
+ DESCRIPTION: >
16
+ Facets Core is a large collection of core extension methods for
17
+ the Ruby programming language. The extensions are unique by virtue
18
+ of thier atomicity. Methods are stored in their own files,
19
+ allowing for highly granular control of requirements, for
20
+ this reason I like to call it Ruby's Atomic Library.
21
+
22
+ DISTRIBUTE: [ gem, tar.bz2 ]
23
+
24
+ PACKAGE:
25
+ exclude:
26
+ - dev
27
+
28
+ RUBYFORGE:
29
+ PROJECT: 'facets'
30
+ USERNAME: transami
31
+
32
+ RDOC:
33
+ dir: ../website/doc/api/core
34
+ template: jamis
35
+ options: ['--all', '--inline-source']
36
+ include:
37
+ - 'lib/facet/**/*'
38
+ - '[A-Z]*'
39
+
@@ -0,0 +1,252 @@
1
+
2
+ = Ruby Facets
3
+
4
+ "ALL BASE COMMON"
5
+
6
+
7
+ == Introduction
8
+
9
+ Ruby Facets is a vast collection of methods which extend the core
10
+ capabilities of Ruby's built-in classes and modules PLUS a large
11
+ collection of additional modules, classes and microframeworks.
12
+ The goal of the project is to offer large set of high-quality
13
+ programming "parts" that target a variety of usecases.
14
+
15
+ The collection of extension methods is unique by virtue of its atomicity.
16
+ The methods are stored individually so that each can be required
17
+ independently. This gives developers fine-grain control over which
18
+ extra methods to bring into his or her code. The collection currently
19
+ contains over 400 methods spanning 28 classes and modules.
20
+
21
+ The class, module and microframework additions consitute an ever growing
22
+ and improving source of reusable components. Some very nice addations
23
+ havve recently been added, from an amazing Units system to an elegant
24
+ annotations systems. And of course there are all the more typical goodies
25
+ like Tuple, Functor and Multiton.
26
+
27
+ Facets holds to the notion that the more we can reasonably integrate into
28
+ a common foundation directed toward general needs, the better that foundation
29
+ will be able to serve us. There are a number of advantages here:
30
+
31
+ * Better Code-reuse
32
+ * Collaborative Improvements
33
+ * Greater Name Consistency
34
+ * One-stop Shop and Installation
35
+
36
+
37
+ == Status
38
+
39
+ The current status is quite good. While various parts are still considered
40
+ Beta, everything should be relatively usable.
41
+
42
+
43
+ == Installation
44
+
45
+
46
+ The easiest way to install is via RubyGems. On the command line enter:
47
+
48
+ > gem install facets
49
+
50
+ To manually install, unpack the .tbz (.tar.bz2) package and use the included
51
+ setup.rb script. For example:
52
+
53
+ > tar -xvzf facets,YYYY-MM-DD.tbz
54
+ > cd facets,YYYY-MM-DD
55
+ > sudo ruby setup.rb
56
+
57
+
58
+ == Usage
59
+
60
+ For detailed usage of any given method or module please refer to the
61
+ API RDocs. Most are well documented.
62
+
63
+ To use a facet you simply require the method by name, for example:
64
+
65
+ require 'facet/time/stamp'
66
+
67
+ Although not neccessary it is recommended that before requiring
68
+ any other facet you first require the main facility.
69
+
70
+ require 'facets'
71
+
72
+ This loads all the core facets considered "base" (a couple dozen common methods)
73
+ and the Facets system module. The Facets module provides meta information about
74
+ the facets available.
75
+
76
+ Some extension method sets are also available. For example:
77
+
78
+ require 'facet/string_as_array'
79
+
80
+ The most extensive of these is 'all'. The 'all' set requires nearly every
81
+ Facets extension method there is. The only methods NOT required are those
82
+ considered "cautionary" in the way they effect Ruby b/c they may potentially
83
+ disrupt pre-existing code. Note that 'all' is not the recommended way to
84
+ use Facets and is only provided with a priviso of caution --that's alot
85
+ of methods!
86
+
87
+ More useful sets include, 'random' which loads every facet method related to
88
+ randomness and 'inflect' which loads a number of methods for manipulating
89
+ strings in high-level ways, like #camelize and #pluralize.
90
+
91
+ The rest of Facets, the modules, classses and microframeworks are
92
+ requirable through the traditional interface as well. For example:
93
+
94
+ require 'facet/units'
95
+
96
+ Facets also includes an alternative way to use classes and modules.
97
+ By calling the #autorequire method, Facets will automatically
98
+ require the appropriate files when you first attempt to use one.
99
+ For example:
100
+
101
+ require 'facets'
102
+
103
+ Facets.autorequire
104
+
105
+ t = Tuple[1,2,3]
106
+
107
+ And the 'tuple.rb' file will be automatically required. The auto-requiring
108
+ also handily applies to some of Ruby's standard library.
109
+ Keep in mind though that the microframeworks do not generally work with this,
110
+ since they are not typical bound to a particular module or class,
111
+ so those will have to be required on their own.
112
+
113
+ Please see the API Docs for details pertaining to the functionality
114
+ of each feature.
115
+
116
+ == Developer Notes
117
+
118
+ === Directories
119
+
120
+ There are presently three subdirs in Facets: 'nano', which stores
121
+ the method extensions, 'mega' which store the modules, classes and
122
+ micorframeworks, and 'unit' which stores development utilities.
123
+
124
+ The layout of Facets' method files is straightfoward and well organized.
125
+ All individual methods are stored in subdirectories under their effected
126
+ downcased class' or module's name.
127
+
128
+ '<class|module>/<method-name>'
129
+
130
+ Class method are stored in the same manner but under a 'self' subdirectory.
131
+
132
+ '<class|module>/self/<method-name>'
133
+
134
+ === Method File Names
135
+
136
+ Operators are stored in the file system using english names. For instance for
137
+ Proc#* is 'proc/op_mul'.
138
+
139
+ For reference, here is the chart.
140
+
141
+ +@ => op_plus_self
142
+ -@ => op_minus_self
143
+ + => op_plus
144
+ - => op_minus
145
+ ** => op_pow
146
+ * => op_mul
147
+ / => op_div
148
+ % => op_mod
149
+ ~ => op_tilde
150
+ <=> => op_cmp
151
+ << => op_lshift
152
+ >> => op_rshift
153
+ < => op_lt
154
+ > => op_gt
155
+ === => op_case_eq
156
+ == => op_equal
157
+ =~ => op_apply
158
+ <= => op_lt_eq
159
+ >= => op_gt_eq
160
+ | => op_or
161
+ & => op_and
162
+ ^ => op_xor
163
+ []= => op_store
164
+ [] => op_fetch
165
+
166
+ Facets simply takes the '*' and translates it into a string acceptable
167
+ to all file systems. Also, if a method ends in '=', '?' or '!' it is
168
+ simply removed.
169
+
170
+ == Contribute
171
+
172
+ This project thrives on contribution.
173
+
174
+ If you have any extension methods, classes, modules or microframeworks
175
+ that you think have general applicability and would like to see them
176
+ included in this project, don't hesitiate to submit. There's a very good
177
+ chance it will be included. Also, if you have better versions of any thing
178
+ already included or simply have a patch, they too are more than welcome.
179
+ We want Ruby Facets to be of the highest quality.
180
+
181
+
182
+ == Authorship
183
+
184
+ This collection was put together by, and largely written by Thomas Sawyer
185
+ (aka Trans Onoma). He can be reached via email at transfire at gmail.com.
186
+
187
+ Some parts of this collection were written and/or inspired by other
188
+ persons. Fortunately nearly all were copyrighted under the same open
189
+ license, the Ruby License. In the few excpetions I have included the
190
+ copyright notice with the source code.
191
+
192
+ Any code file not specifically labelled shall fall under the Ruby License.
193
+
194
+ In all cases, I have made every effort to give credit where credit is due. You will find these copyrights, thanks and acknowledgements embedded in the source code, and an unobtrusive
195
+ "Author(s)" section is given in the RDocs.
196
+
197
+ Main Developers include:
198
+
199
+ * Thomas Sawyer
200
+ * George Moschovitis
201
+ * Peter Vanbroekhoven
202
+ * Florian Gross
203
+
204
+ See the AUTHORS file for a list of all other contributing Rubyists.
205
+
206
+ If anyone is missing from the list, please let me know and
207
+ I will correct right away. Thanks.
208
+
209
+
210
+ == License
211
+
212
+ In so far as it matters, the collection PER COLLECTION is licensed
213
+ as follows:
214
+
215
+ Ruby Facets
216
+ Copyright (c) 2004,2005 Thomas Sawyer
217
+ Ruby License
218
+
219
+ The Ruby license is a dual license that also provides for use of the GPL.
220
+ A copy of both licenses accompany this document (see COPYING).
221
+
222
+ Fortunately nearly all the code is copyrighted under the same open license,
223
+ namely the Ruby License. But some of the code is licensed differently
224
+ according to the original authors wishes. In the few excpetions I have
225
+ included the copyright notice with the source code. All such licesnses are
226
+ OOS licesnes. I am in the proccess of asking the particular authors to consider
227
+ allowing the use of the single Ruby license so that one license can
228
+ serve for all. (UPDATE: Not very much left under seperate licenses.)
229
+
230
+ Any code file not specifically labelled shall fall under the Ruby License.
231
+
232
+
233
+ == Pitch
234
+
235
+ ALL YOUR BASE ARE BELONG TO RUBY
236
+
237
+
238
+ ----
239
+
240
+ [1] A lot of mental anguish went into finding a good title Ruby Facets.
241
+ Of course, in the end only one name can take the honor. Other good names which were
242
+ considered: Warchest w/ Atomix, Downs & Ace, Trix & Atomx and even Pillbox & Pills
243
+ (a _why suggestion). Then the names that almost won out and were used for a good while:
244
+ Nano Methods and Mega Modules --great names but turned maybe a little to "fad".
245
+ Finally let's not forget even older "working" titles that were used along the way:
246
+ Raspberry, ABC, Succ and the very original Tomslib.
247
+
248
+ # Copyright (c)2005 Thomas Sawyer
249
+ # --.com : The web page without a name.
250
+ # (ruby-lang.org) Do you Ruby?
251
+
252
+
@@ -0,0 +1,175 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # $:.unshift('lib')
4
+
5
+ #require 'uri'
6
+ require 'yaml'
7
+ require 'fileutils'
8
+
9
+ require './lib/facet/file/self/read_list'
10
+
11
+ #VERSION = "2005-11-05"
12
+ REQPATH = "facet"
13
+ DATPATH = "data/facets"
14
+ ETCPATH = "conf/facets"
15
+ MTHPATH = "lib/facet"
16
+ GENPATH = "lib/facets"
17
+
18
+ #-----------------------------------------------------
19
+ # Generate facet/
20
+ #-----------------------------------------------------
21
+ =begin
22
+ desc %{Build facet redirect directory}
23
+ task :facet do
24
+ sh %{rm -R './lib/facet'}
25
+ ['ext','set/special','set/general'].each{ |d|
26
+ from = "lib/facets/2005-11-05"
27
+ rbs = Dir.glob( File.join( from, d, '**/*.rb' ) )
28
+ rbs.each { |e|
29
+ nolib = e.gsub( /^lib\//, '' )
30
+ re = Regexp.new( Regexp.escape( File.join( from, d ) + '/' ) )
31
+ link = e.gsub( re, 'lib/facet/')
32
+ FileUtils.mkdir_p( File.dirname( link ) )
33
+ File.open( link, "w+" ) { |w|
34
+ w << "require '#{nolib}'"
35
+ }
36
+ }
37
+ }
38
+ end
39
+ =end
40
+
41
+ #-----------------------------------------------------
42
+ # Read in the facets directory and sort-out per class
43
+ #-----------------------------------------------------
44
+ Methods = {}
45
+ task :methods do
46
+ Dir.chdir(MTHPATH) do
47
+ dg = Dir.glob('*/**/*.rb')
48
+ dg.each { |f|
49
+ klass, *meth= f.split('/')
50
+ Methods[ klass ] ||= []
51
+ Methods[ klass ] << "#{meth.join('/').chomp('.rb')}"
52
+ }
53
+ Methods.keys.each { |k| Methods[k].sort! }
54
+ end
55
+ end
56
+
57
+ #-----------------------------------------------------
58
+ # Save method index to file in yaml format
59
+ #-----------------------------------------------------
60
+ desc %{Generate method index file}
61
+ task :index => [ :methods ] do
62
+ print "Creating method index... "
63
+ loc = File.join( DATPATH, 'index.yml' )
64
+ File.open( loc, 'w' ) { |f|
65
+ f << Methods.to_yaml
66
+ }
67
+ puts "[done]"
68
+ end
69
+
70
+ #-----------------------------------------------------
71
+ # Create per class feature files
72
+ #-----------------------------------------------------
73
+ desc %Q{Generate per-class feature files}
74
+ task :class => [:methods ] do
75
+ print "Creating per class files... "
76
+
77
+ index = Methods
78
+ noauto = File.read_list( File.join( ETCPATH, 'noauto' ) )
79
+ allfiles = index.collect{ |k,ms| ms.collect{ |m| "#{k}/#{m}" } }.flatten
80
+ full = calc_full(allfiles, noauto)
81
+
82
+ index.each { |classname, method_files|
83
+ File.open( "#{GENPATH}/#{classname.downcase}.rb", 'w' ) { |f|
84
+ method_files.each { |rf|
85
+ mfn = "#{classname.downcase}/#{rf}"
86
+ if full.include?(mfn)
87
+ f << %Q{require '#{REQPATH}/#{mfn}'\n}
88
+ end
89
+ }
90
+ }
91
+ }
92
+ puts "[done]"
93
+ end
94
+
95
+ #-----------------------------------------------------
96
+ # Do all prep tasks (do this to generate data index
97
+ # file and method group files)
98
+ #-----------------------------------------------------
99
+ desc %{Do all preperation (index, class)}
100
+ task :prep => [ :index, :class ] do
101
+ end
102
+
103
+ #-----------------------------------------------------
104
+ # List Methods
105
+ #-----------------------------------------------------
106
+ desc %{Output a list of all methods}
107
+ task 'list' => [ :methods ] do
108
+ puts method_list_outline
109
+ end
110
+
111
+ # #-----------------------------------------------------
112
+ # # HTML List MethodsFile.new(
113
+ # #-----------------------------------------------------
114
+ #
115
+ # HEAD = <<-HERE
116
+ # <html>
117
+ # <head>
118
+ # <style>
119
+ # pre#methods {
120
+ # font-size: .8em;
121
+ # line-height: 1em;
122
+ # }
123
+ # </style>
124
+ # </head>
125
+ # <body>
126
+ # <pre id="methods">
127
+ # HERE
128
+ #
129
+ # FOOT=<<-HERE
130
+ # </pre>
131
+ # </body>
132
+ # </html>
133
+ # HERE
134
+ #
135
+ # desc %{generate method list html file}
136
+ # task 'listHtml' => [ :scrape_methods ] do
137
+ # s = HEAD + method_list_outline + FOOT
138
+ # File.open('pub/www/methods.html', 'w') { |f| f << s }
139
+ # end
140
+
141
+ #desc "Check for open comment tests"
142
+ #task :testchk do
143
+ # system %q{grep -r ^#=begin\ test ./lib}
144
+ #end
145
+
146
+
147
+ #-----------------------------------------------------
148
+ # Supporting Methods
149
+ #-----------------------------------------------------
150
+
151
+ private
152
+
153
+ def method_list_outline
154
+ s = ''
155
+ Methods.keys.sort.each { |k|
156
+ ms = Methods[k].collect{|m| m.gsub(%r{^self\/},'::')}.sort
157
+ s << "#{k}:\n"
158
+ ms.each { |m| s << " #{m}\n" }
159
+ }
160
+ s
161
+ end
162
+
163
+ # Full set of require files (allfiles minus noauto and unsafe)
164
+ def calc_full( allfiles, noauto )
165
+ sf = allfiles.dup
166
+ noauto.each do |f|
167
+ if f.include?('*')
168
+ re = %r"#{f.gsub('*','.*')}"
169
+ sf.reject!{ |x| x =~ re }
170
+ elsif sf.include?(f)
171
+ sf.delete f
172
+ end
173
+ end
174
+ sf.sort
175
+ end