facets 1.0.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1318) hide show
  1. data/AUTHORS +1 -0
  2. data/CHANGELOG +266 -0
  3. data/ProjectInfo +31 -29
  4. data/README +55 -31
  5. data/Rakefile +175 -0
  6. data/{packages/core/TODO → TODO} +0 -0
  7. data/{packages/core/conf → conf}/facets/noauto +0 -0
  8. data/data/facets/index.yml +464 -0
  9. data/{packages/core/data/facets/index.yml → data/facets/methods.yaml} +0 -0
  10. data/lib/facet/array.rb +34 -0
  11. data/{packages/core/lib → lib}/facet/array/at_rand.rb +0 -0
  12. data/{packages/core/lib → lib}/facet/array/body.rb +0 -0
  13. data/{packages/core/lib → lib}/facet/array/delete_unless.rb +0 -0
  14. data/{packages/core/lib → lib}/facet/array/delete_values.rb +0 -0
  15. data/{packages/core/lib → lib}/facet/array/delete_values_at.rb +0 -0
  16. data/{packages/core/lib → lib}/facet/array/each_with_key.rb +0 -0
  17. data/{packages/core/lib → lib}/facet/array/first.rb +0 -0
  18. data/{packages/core/lib → lib}/facet/array/foot.rb +0 -0
  19. data/{packages/core/lib → lib}/facet/array/head.rb +0 -0
  20. data/{packages/core/lib → lib}/facet/array/last.rb +0 -0
  21. data/{packages/core/lib → lib}/facet/array/last_index.rb +0 -0
  22. data/{packages/core/lib → lib}/facet/array/merge.rb +0 -0
  23. data/{packages/core/lib → lib}/facet/array/mid.rb +0 -0
  24. data/{packages/core/lib → lib}/facet/array/middle.rb +0 -0
  25. data/{packages/core/lib → lib}/facet/array/op_fetch.rb +0 -0
  26. data/{packages/core/lib → lib}/facet/array/op_mod.rb +0 -0
  27. data/{packages/core/lib → lib}/facet/array/op_store.rb +0 -0
  28. data/{packages/core/lib → lib}/facet/array/pick.rb +0 -0
  29. data/{packages/core/lib → lib}/facet/array/pos.rb +0 -0
  30. data/{packages/core/lib → lib}/facet/array/pull.rb +0 -0
  31. data/{packages/core/lib → lib}/facet/array/rand_index.rb +0 -0
  32. data/{packages/core/lib → lib}/facet/array/rand_subset.rb +0 -0
  33. data/{packages/core/lib → lib}/facet/array/range.rb +0 -0
  34. data/{packages/core/lib → lib}/facet/array/rotate.rb +0 -0
  35. data/{packages/core/lib → lib}/facet/array/select.rb +0 -0
  36. data/{packages/core/lib → lib}/facet/array/shuffle.rb +0 -0
  37. data/{packages/core/lib → lib}/facet/array/slap.rb +0 -0
  38. data/{packages/core/lib → lib}/facet/array/store.rb +0 -0
  39. data/{packages/core/lib → lib}/facet/array/tail.rb +0 -0
  40. data/{packages/core/lib → lib}/facet/array/thru.rb +0 -0
  41. data/{packages/core/lib → lib}/facet/array/to_b.rb +0 -0
  42. data/{packages/core/lib → lib}/facet/array/to_h.rb +0 -0
  43. data/{packages/core/lib → lib}/facet/array/to_hash.rb +0 -0
  44. data/{packages/core/lib → lib}/facet/array/unzip.rb +0 -0
  45. data/{packages/core/lib → lib}/facet/binding.rb +0 -0
  46. data/{packages/core/lib → lib}/facet/binding/__DIR__.rb +0 -0
  47. data/{packages/core/lib → lib}/facet/binding/__FILE__.rb +0 -0
  48. data/{packages/core/lib → lib}/facet/binding/__LINE__.rb +0 -0
  49. data/{packages/core/lib → lib}/facet/binding/call_stack.rb +0 -0
  50. data/{packages/core/lib → lib}/facet/binding/called.rb +0 -0
  51. data/{packages/core/lib → lib}/facet/binding/caller.rb +0 -0
  52. data/{packages/core/lib → lib}/facet/binding/defined.rb +0 -0
  53. data/{packages/core/lib → lib}/facet/binding/eval.rb +0 -0
  54. data/{packages/core/lib → lib}/facet/binding/local_variables.rb +0 -0
  55. data/{packages/core/lib → lib}/facet/binding/method_name.rb +0 -0
  56. data/{packages/core/lib → lib}/facet/binding/op_fetch.rb +0 -0
  57. data/{packages/core/lib → lib}/facet/binding/op_store.rb +0 -0
  58. data/{packages/core/lib → lib}/facet/binding/self.rb +0 -0
  59. data/{packages/core/lib → lib}/facet/binding/self/of_caller.rb +0 -0
  60. data/lib/facet/class.rb +7 -0
  61. data/{packages/core/lib → lib}/facet/class/by_name.rb +0 -0
  62. data/{packages/core/lib → lib}/facet/class/descendents.rb +0 -0
  63. data/{packages/core/lib → lib}/facet/class/method_name.rb +0 -0
  64. data/{packages/core/lib → lib}/facet/class/remove_descendents.rb +0 -0
  65. data/{packages/core/lib → lib}/facet/class/remove_subclasses.rb +0 -0
  66. data/{packages/core/lib → lib}/facet/class/subclasses.rb +0 -0
  67. data/lib/facet/class/unix_path.rb +34 -0
  68. data/{packages/core/lib → lib}/facet/comparable.rb +0 -0
  69. data/{packages/core/lib → lib}/facet/comparable/at_least.rb +0 -0
  70. data/{packages/core/lib → lib}/facet/comparable/at_most.rb +0 -0
  71. data/{packages/core/lib → lib}/facet/comparable/cap.rb +0 -0
  72. data/{packages/core/lib → lib}/facet/comparable/clip.rb +0 -0
  73. data/{packages/core/lib → lib}/facet/comparable/cmp.rb +0 -0
  74. data/{packages/core/lib → lib}/facet/continuation.rb +0 -0
  75. data/{packages/core/lib → lib}/facet/continuation/self/create.rb +0 -0
  76. data/{packages/core/lib → lib}/facet/date.rb +0 -0
  77. data/{packages/core/lib → lib}/facet/date/days_in_month.rb +0 -0
  78. data/{packages/core/lib → lib}/facet/date/days_of_month.rb +0 -0
  79. data/{packages/core/lib → lib}/facet/date/stamp.rb +0 -0
  80. data/{packages/core/lib → lib}/facet/date/to_date.rb +0 -0
  81. data/{packages/core/lib → lib}/facet/date/to_s.rb +0 -0
  82. data/{packages/core/lib → lib}/facet/date/to_time.rb +0 -0
  83. data/{packages/core/lib → lib}/facet/dir.rb +0 -0
  84. data/{packages/core/lib → lib}/facet/dir/self/ancestor.rb +0 -0
  85. data/{packages/core/lib → lib}/facet/dir/self/ascend.rb +0 -0
  86. data/{packages/core/lib → lib}/facet/dir/self/ls_r.rb +0 -0
  87. data/{packages/core/lib → lib}/facet/dir/self/recurse.rb +0 -0
  88. data/lib/facet/enumerable.rb +39 -0
  89. data/{packages/core/lib → lib}/facet/enumerable/collect_with_counter.rb +0 -0
  90. data/{packages/core/lib → lib}/facet/enumerable/collect_with_index.rb +0 -0
  91. data/{packages/core/lib → lib}/facet/enumerable/commonality.rb +0 -0
  92. data/{packages/core/lib → lib}/facet/enumerable/compact_collect.rb +0 -0
  93. data/{packages/core/lib → lib}/facet/enumerable/compact_map.rb +0 -0
  94. data/{packages/core/lib → lib}/facet/enumerable/cross.rb +0 -0
  95. data/{packages/core/lib → lib}/facet/enumerable/each_by.rb +0 -0
  96. data/{packages/core/lib → lib}/facet/enumerable/each_combination.rb +0 -0
  97. data/{packages/core/lib → lib}/facet/enumerable/each_pair.rb +0 -0
  98. data/{packages/core/lib → lib}/facet/enumerable/each_permutation.rb +0 -0
  99. data/{packages/core/lib → lib}/facet/enumerable/each_slice.rb +0 -0
  100. data/{packages/core/lib → lib}/facet/enumerable/each_unique_pair.rb +0 -0
  101. data/{packages/core/lib → lib}/facet/enumerable/each_with_counter.rb +0 -0
  102. data/{packages/core/lib → lib}/facet/enumerable/elementwise.rb +0 -0
  103. data/{packages/core/lib → lib}/facet/enumerable/entropy.rb +0 -0
  104. data/{packages/core/lib → lib}/facet/enumerable/every.rb +0 -0
  105. data/{packages/core/lib → lib}/facet/enumerable/ew.rb +0 -0
  106. data/{packages/core/lib → lib}/facet/enumerable/filter_collect.rb +0 -0
  107. data/{packages/core/lib → lib}/facet/enumerable/filter_map.rb +0 -0
  108. data/{packages/core/lib → lib}/facet/enumerable/find_collisions.rb +0 -0
  109. data/{packages/core/lib → lib}/facet/enumerable/frequency.rb +0 -0
  110. data/{packages/core/lib → lib}/facet/enumerable/graph.rb +0 -0
  111. data/{packages/core/lib → lib}/facet/enumerable/ideal_entropy.rb +0 -0
  112. data/{packages/core/lib → lib}/facet/enumerable/map_with_counter.rb +0 -0
  113. data/{packages/core/lib → lib}/facet/enumerable/map_with_index.rb +0 -0
  114. data/{packages/core/lib → lib}/facet/enumerable/none.rb +0 -0
  115. data/{packages/core/lib → lib}/facet/enumerable/nonuniq.rb +0 -0
  116. data/{packages/core/lib → lib}/facet/enumerable/occur.rb +0 -0
  117. data/{packages/core/lib → lib}/facet/enumerable/one.rb +0 -0
  118. data/{packages/core/lib → lib}/facet/enumerable/op_pow.rb +0 -0
  119. data/{packages/core/lib → lib}/facet/enumerable/partition_by.rb +0 -0
  120. data/{packages/core/lib → lib}/facet/enumerable/permute.rb +0 -0
  121. data/{packages/core/lib → lib}/facet/enumerable/probability.rb +0 -0
  122. data/lib/facet/enumerable/project.rb +11 -0
  123. data/{packages/core/lib → lib}/facet/enumerable/self/combinations.rb +0 -0
  124. data/{packages/core/lib → lib}/facet/enumerable/self/cross.rb +0 -0
  125. data/{packages/core/lib → lib}/facet/enumerable/to_h.rb +0 -0
  126. data/{packages/core/lib → lib}/facet/enumerable/uniq_by.rb +0 -0
  127. data/lib/facet/enumerable/where.rb +12 -0
  128. data/{packages/core/lib → lib}/facet/file.rb +0 -0
  129. data/{packages/core/lib → lib}/facet/file/self/create.rb +0 -0
  130. data/{packages/core/lib → lib}/facet/file/self/open_as_string.rb +0 -0
  131. data/{packages/core/lib → lib}/facet/file/self/read_list.rb +0 -0
  132. data/{packages/core/lib → lib}/facet/file/self/sanitize.rb +0 -0
  133. data/{packages/core/lib → lib}/facet/file/self/split_all.rb +0 -0
  134. data/{packages/core/lib → lib}/facet/fileutils.rb +0 -0
  135. data/{packages/core/lib → lib}/facet/fileutils/head.rb +0 -0
  136. data/{packages/core/lib → lib}/facet/fileutils/safe_ln.rb +0 -0
  137. data/{packages/core/lib → lib}/facet/fileutils/slice.rb +0 -0
  138. data/{packages/core/lib → lib}/facet/fileutils/split_all.rb +0 -0
  139. data/{packages/core/lib → lib}/facet/fileutils/tail.rb +0 -0
  140. data/{packages/core/lib → lib}/facet/fileutils/wc.rb +0 -0
  141. data/{packages/core/lib → lib}/facet/fileutils/whereis.rb +0 -0
  142. data/{packages/core/lib → lib}/facet/fileutils/which.rb +0 -0
  143. data/{packages/core/lib → lib}/facet/float.rb +0 -0
  144. data/{packages/core/lib → lib}/facet/float/approx.rb +0 -0
  145. data/{packages/core/lib → lib}/facet/float/round_at.rb +0 -0
  146. data/{packages/core/lib → lib}/facet/float/round_to.rb +0 -0
  147. data/{packages/core/lib → lib}/facet/functor.rb +0 -0
  148. data/lib/facet/gem.rb +3 -0
  149. data/lib/facet/gem/self/active.rb +9 -0
  150. data/lib/facet/gem/self/gempath.rb +10 -0
  151. data/lib/facet/gem/self/gemspec.rb +10 -0
  152. data/{packages/core/lib → lib}/facet/hash.rb +0 -0
  153. data/{packages/core/lib → lib}/facet/hash/alias.rb +0 -0
  154. data/{packages/core/lib → lib}/facet/hash/assert_has_keys.rb +0 -0
  155. data/{packages/core/lib → lib}/facet/hash/assert_has_only_keys.rb +0 -0
  156. data/{packages/core/lib → lib}/facet/hash/at.rb +0 -0
  157. data/{packages/core/lib → lib}/facet/hash/collate.rb +0 -0
  158. data/{packages/core/lib → lib}/facet/hash/delete_unless.rb +0 -0
  159. data/{packages/core/lib → lib}/facet/hash/each.rb +0 -0
  160. data/{packages/core/lib → lib}/facet/hash/each_with_index.rb +0 -0
  161. data/{packages/core/lib → lib}/facet/hash/each_with_key.rb +0 -0
  162. data/{packages/core/lib → lib}/facet/hash/graph.rb +0 -0
  163. data/{packages/core/lib → lib}/facet/hash/has_keys.rb +0 -0
  164. data/{packages/core/lib → lib}/facet/hash/has_only_keys.rb +0 -0
  165. data/{packages/core/lib → lib}/facet/hash/inverse.rb +0 -0
  166. data/{packages/core/lib → lib}/facet/hash/join.rb +0 -0
  167. data/{packages/core/lib → lib}/facet/hash/keys_to_iv.rb +0 -0
  168. data/{packages/core/lib → lib}/facet/hash/keys_to_s.rb +0 -0
  169. data/{packages/core/lib → lib}/facet/hash/keys_to_sym.rb +0 -0
  170. data/{packages/core/lib → lib}/facet/hash/op_fetch.rb +0 -0
  171. data/{packages/core/lib → lib}/facet/hash/op_lshift.rb +0 -0
  172. data/{packages/core/lib → lib}/facet/hash/op_store.rb +0 -0
  173. data/{packages/core/lib → lib}/facet/hash/rand_key.rb +0 -0
  174. data/{packages/core/lib → lib}/facet/hash/rand_pair.rb +0 -0
  175. data/{packages/core/lib → lib}/facet/hash/rand_value.rb +0 -0
  176. data/{packages/core/lib → lib}/facet/hash/replace_each.rb +0 -0
  177. data/{packages/core/lib → lib}/facet/hash/self/zipnew.rb +0 -0
  178. data/{packages/core/lib → lib}/facet/hash/shuffle.rb +0 -0
  179. data/{packages/core/lib → lib}/facet/hash/slice.rb +0 -0
  180. data/{packages/core/lib → lib}/facet/hash/stringify_keys.rb +0 -0
  181. data/{packages/core/lib → lib}/facet/hash/swap.rb +0 -0
  182. data/{packages/core/lib → lib}/facet/hash/swapkey.rb +0 -0
  183. data/{packages/core/lib → lib}/facet/hash/symoblize_keys.rb +0 -0
  184. data/{packages/core/lib → lib}/facet/hash/to_h.rb +0 -0
  185. data/{packages/core/lib → lib}/facet/hash/to_ostruct.rb +0 -0
  186. data/{packages/core/lib → lib}/facet/hash/to_ostruct_recurse.rb +0 -0
  187. data/{packages/core/lib → lib}/facet/hash/traverse.rb +0 -0
  188. data/{packages/core/lib → lib}/facet/hash/update_each.rb +0 -0
  189. data/{packages/core/lib → lib}/facet/hash/update_keys.rb +0 -0
  190. data/{packages/core/lib → lib}/facet/hash/update_values.rb +0 -0
  191. data/{packages/core/lib → lib}/facet/hash/variablize_keys.rb +0 -0
  192. data/{packages/core/lib → lib}/facet/hash/weave.rb +0 -0
  193. data/{packages/core/lib → lib}/facet/inflect.rb +0 -0
  194. data/lib/facet/integer.rb +9 -0
  195. data/{packages/core/lib → lib}/facet/integer/even.rb +0 -0
  196. data/{packages/core/lib → lib}/facet/integer/fac.rb +0 -0
  197. data/{packages/core/lib → lib}/facet/integer/fact.rb +0 -0
  198. data/{packages/core/lib → lib}/facet/integer/factorial.rb +0 -0
  199. data/{packages/core/lib → lib}/facet/integer/multiple.rb +0 -0
  200. data/{packages/core/lib → lib}/facet/integer/odd.rb +0 -0
  201. data/{packages/core/lib → lib}/facet/integer/ordinal.rb +0 -0
  202. data/{packages/core/lib → lib}/facet/integer/times_collect.rb +0 -0
  203. data/{packages/core/lib → lib}/facet/integer/times_map.rb +0 -0
  204. data/lib/facet/kernel.rb +68 -0
  205. data/{packages/core/lib → lib}/facet/kernel/__DIR__.rb +0 -0
  206. data/{packages/core/lib → lib}/facet/kernel/__class__.rb +0 -0
  207. data/{packages/core/lib → lib}/facet/kernel/__meta__.rb +0 -0
  208. data/{packages/core/lib → lib}/facet/kernel/adhoc.rb +0 -0
  209. data/{packages/core/lib → lib}/facet/kernel/as.rb +0 -0
  210. data/{packages/core/lib → lib}/facet/kernel/assign_from.rb +0 -0
  211. data/{packages/core/lib → lib}/facet/kernel/assign_with.rb +0 -0
  212. data/{packages/core/lib → lib}/facet/kernel/autoreload.rb +0 -0
  213. data/{packages/core/lib → lib}/facet/kernel/autoreload_files.rb +0 -0
  214. data/{packages/core/lib → lib}/facet/kernel/autoreload_glob.rb +0 -0
  215. data/{packages/core/lib → lib}/facet/kernel/bool.rb +0 -0
  216. data/{packages/core/lib → lib}/facet/kernel/bug.rb +0 -0
  217. data/{packages/core/lib → lib}/facet/kernel/call_stack.rb +0 -0
  218. data/{packages/core/lib → lib}/facet/kernel/called.rb +0 -0
  219. data/{packages/core/lib → lib}/facet/kernel/complete.rb +0 -0
  220. data/{packages/core/lib → lib}/facet/kernel/constant.rb +0 -0
  221. data/{packages/core/lib → lib}/facet/kernel/copy.rb +0 -0
  222. data/{packages/core/lib → lib}/facet/kernel/deep_copy.rb +0 -0
  223. data/{packages/core/lib → lib}/facet/kernel/demo.rb +0 -0
  224. data/{packages/core/lib → lib}/facet/kernel/eigenclass.rb +0 -0
  225. data/{packages/core/lib → lib}/facet/kernel/false.rb +0 -0
  226. data/{packages/core/lib → lib}/facet/kernel/fn.rb +0 -0
  227. data/lib/facet/kernel/generate_method_name.rb +39 -0
  228. data/{packages/core/lib → lib}/facet/kernel/get_by_id.rb +0 -0
  229. data/{packages/core/lib → lib}/facet/kernel/here.rb +0 -0
  230. data/{packages/core/lib → lib}/facet/kernel/in.rb +0 -0
  231. data/{packages/core/lib → lib}/facet/kernel/instance_assign.rb +0 -0
  232. data/{packages/core/lib → lib}/facet/kernel/instvar.rb +0 -0
  233. data/{packages/core/lib → lib}/facet/kernel/is.rb +0 -0
  234. data/{packages/core/lib → lib}/facet/kernel/maybe.rb +0 -0
  235. data/{packages/core/lib → lib}/facet/kernel/me.rb +0 -0
  236. data/{packages/core/lib → lib}/facet/kernel/meta.rb +0 -0
  237. data/{packages/core/lib → lib}/facet/kernel/metaclass.rb +0 -0
  238. data/{packages/core/lib → lib}/facet/kernel/method.rb +0 -0
  239. data/{packages/core/lib → lib}/facet/kernel/method_name.rb +0 -0
  240. data/{packages/core/lib → lib}/facet/kernel/methods.rb +0 -0
  241. data/{packages/core/lib → lib}/facet/kernel/nack.rb +0 -0
  242. data/{packages/core/lib → lib}/facet/kernel/new.rb +0 -0
  243. data/{packages/core/lib → lib}/facet/kernel/object_class.rb +0 -0
  244. data/{packages/core/lib → lib}/facet/kernel/object_hexid.rb +0 -0
  245. data/{packages/core/lib → lib}/facet/kernel/op_esc.rb +0 -0
  246. data/{packages/core/lib → lib}/facet/kernel/own.rb +0 -0
  247. data/{packages/core/lib → lib}/facet/kernel/p.rb +0 -0
  248. data/{packages/core/lib → lib}/facet/kernel/require_all.rb +0 -0
  249. data/{packages/core/lib → lib}/facet/kernel/require_esc.rb +0 -0
  250. data/{packages/core/lib → lib}/facet/kernel/require_facet.rb +0 -0
  251. data/{packages/core/lib → lib}/facet/kernel/require_local.rb +0 -0
  252. data/{packages/core/lib → lib}/facet/kernel/resc.rb +0 -0
  253. data/{packages/core/lib → lib}/facet/kernel/returning.rb +0 -0
  254. data/{packages/core/lib → lib}/facet/kernel/send_as.rb +0 -0
  255. data/{packages/core/lib → lib}/facet/kernel/set_from.rb +0 -0
  256. data/{packages/core/lib → lib}/facet/kernel/set_with.rb +0 -0
  257. data/{packages/core/lib → lib}/facet/kernel/silence_warnings.rb +0 -0
  258. data/{packages/core/lib → lib}/facet/kernel/silently.rb +0 -0
  259. data/{packages/core/lib → lib}/facet/kernel/singleton.rb +0 -0
  260. data/{packages/core/lib → lib}/facet/kernel/superior.rb +0 -0
  261. data/{packages/core/lib → lib}/facet/kernel/supermethod.rb +0 -0
  262. data/{packages/core/lib → lib}/facet/kernel/this.rb +0 -0
  263. data/{packages/core/lib → lib}/facet/kernel/to_b.rb +0 -0
  264. data/{packages/core/lib → lib}/facet/kernel/to_bool.rb +0 -0
  265. data/{packages/core/lib → lib}/facet/kernel/true.rb +0 -0
  266. data/{packages/core/lib → lib}/facet/kernel/unuri.rb +0 -0
  267. data/{packages/core/lib → lib}/facet/kernel/uri.rb +0 -0
  268. data/{packages/core/lib → lib}/facet/kernel/val.rb +0 -0
  269. data/{packages/core/lib → lib}/facet/kernel/warn_with_line.rb +0 -0
  270. data/{packages/core/lib → lib}/facet/kernel/with_accessor.rb +0 -0
  271. data/{packages/core/lib → lib}/facet/kernel/with_reader.rb +0 -0
  272. data/{packages/core/lib → lib}/facet/kernel/with_writer.rb +0 -0
  273. data/{packages/core/lib → lib}/facet/logger.rb +0 -0
  274. data/{packages/core/lib → lib}/facet/logger/format.rb +0 -0
  275. data/{packages/core/lib → lib}/facet/logger/format_message.rb +0 -0
  276. data/{packages/core/lib → lib}/facet/matchdata.rb +0 -0
  277. data/{packages/core/lib → lib}/facet/matchdata/match.rb +0 -0
  278. data/{packages/core/lib → lib}/facet/matchdata/matchset.rb +0 -0
  279. data/{packages/core/lib → lib}/facet/matchdata/matchtree.rb +0 -0
  280. data/{packages/core/lib → lib}/facet/module.rb +0 -0
  281. data/{packages/core/lib → lib}/facet/module/abstract.rb +0 -0
  282. data/{packages/core/lib → lib}/facet/module/alias_module_function.rb +0 -0
  283. data/{packages/core/lib → lib}/facet/module/ancestor.rb +0 -0
  284. data/lib/facet/module/attr.rb +23 -0
  285. data/lib/facet/module/attr_setter.rb +48 -0
  286. data/lib/facet/module/attr_tester.rb +56 -0
  287. data/{packages/core/lib → lib}/facet/module/basename.rb +0 -0
  288. data/{packages/core/lib → lib}/facet/module/by_name.rb +0 -0
  289. data/{packages/core/lib → lib}/facet/module/cattr_accessor.rb +0 -0
  290. data/{packages/core/lib → lib}/facet/module/cattr_reader.rb +0 -0
  291. data/{packages/core/lib → lib}/facet/module/cattr_writer.rb +0 -0
  292. data/{packages/core/lib → lib}/facet/module/clone_removing.rb +0 -0
  293. data/{packages/core/lib → lib}/facet/module/clone_renaming.rb +0 -0
  294. data/{packages/core/lib → lib}/facet/module/clone_using.rb +0 -0
  295. data/{packages/core/lib → lib}/facet/module/dirname.rb +0 -0
  296. data/{packages/core/lib → lib}/facet/module/equate_on.rb +0 -0
  297. data/lib/facet/module/generate_instance_method_name.rb +47 -0
  298. data/{packages/core/lib → lib}/facet/module/include_as.rb +0 -0
  299. data/lib/facet/module/initializer.rb +65 -0
  300. data/{packages/core/lib → lib}/facet/module/instance_methods.rb +0 -0
  301. data/{packages/core/lib → lib}/facet/module/integrate.rb +0 -0
  302. data/{packages/core/lib → lib}/facet/module/is.rb +0 -0
  303. data/{packages/core/lib → lib}/facet/module/memoize.rb +0 -0
  304. data/{packages/core/lib → lib}/facet/module/modspace.rb +0 -0
  305. data/{packages/core/lib → lib}/facet/module/namespace.rb +0 -0
  306. data/{packages/core/lib → lib}/facet/module/nesting.rb +0 -0
  307. data/{packages/core/lib → lib}/facet/module/redef.rb +0 -0
  308. data/{packages/core/lib → lib}/facet/module/redefine_method.rb +0 -0
  309. data/{packages/core/lib → lib}/facet/module/redirect.rb +0 -0
  310. data/{packages/core/lib → lib}/facet/module/redirect_method.rb +0 -0
  311. data/{packages/core/lib → lib}/facet/module/remove.rb +0 -0
  312. data/{packages/core/lib → lib}/facet/module/rename.rb +0 -0
  313. data/{packages/core/lib → lib}/facet/module/rename_method.rb +0 -0
  314. data/{packages/core/lib → lib}/facet/module/revisal.rb +0 -0
  315. data/{packages/core/lib → lib}/facet/module/shadow_all.rb +0 -0
  316. data/{packages/core/lib → lib}/facet/module/shadow_method.rb +0 -0
  317. data/{packages/core/lib → lib}/facet/module/sort_on.rb +0 -0
  318. data/{packages/core/lib → lib}/facet/module/undef.rb +0 -0
  319. data/{packages/core/lib → lib}/facet/module/wrap.rb +0 -0
  320. data/{packages/core/lib → lib}/facet/module/wrap_method.rb +0 -0
  321. data/{packages/core/lib → lib}/facet/nil_as_emptiness.rb +0 -0
  322. data/{packages/core/lib → lib}/facet/nilclass.rb +0 -0
  323. data/{packages/core/lib → lib}/facet/nilclass/empty.rb +0 -0
  324. data/{packages/core/lib → lib}/facet/nilclass/include.rb +0 -0
  325. data/{packages/core/lib → lib}/facet/nilclass/length.rb +0 -0
  326. data/{packages/core/lib → lib}/facet/nilclass/op_fetch.rb +0 -0
  327. data/{packages/core/lib → lib}/facet/nilclass/size.rb +0 -0
  328. data/{packages/core/lib → lib}/facet/nilclass/to_f.rb +0 -0
  329. data/{packages/core/lib → lib}/facet/nilclass/to_h.rb +0 -0
  330. data/{packages/core/lib → lib}/facet/numeric.rb +0 -0
  331. data/{packages/core/lib → lib}/facet/numeric/ceil_multiple.rb +0 -0
  332. data/{packages/core/lib → lib}/facet/numeric/pred.rb +0 -0
  333. data/{packages/core/lib → lib}/facet/numeric/succ.rb +0 -0
  334. data/{packages/core/lib → lib}/facet/numeric/to_b.rb +0 -0
  335. data/{packages/core/lib → lib}/facet/ostruct.rb +0 -0
  336. data/{packages/core/lib → lib}/facet/ostruct/__merge__.rb +0 -0
  337. data/{packages/core/lib → lib}/facet/ostruct/__table__.rb +0 -0
  338. data/{packages/core/lib → lib}/facet/ostruct/__update__.rb +0 -0
  339. data/{packages/core/lib → lib}/facet/ostruct/op_fetch.rb +0 -0
  340. data/{packages/core/lib → lib}/facet/ostruct/op_store.rb +0 -0
  341. data/{packages/core/lib → lib}/facet/ostruct/to_h.rb +0 -0
  342. data/{packages/core/lib → lib}/facet/pathname.rb +0 -0
  343. data/{packages/core/lib → lib}/facet/pathname/ascend.rb +0 -0
  344. data/{packages/core/lib → lib}/facet/pathname/descend.rb +0 -0
  345. data/{packages/core/lib → lib}/facet/proc.rb +0 -0
  346. data/{packages/core/lib → lib}/facet/proc/compose.rb +0 -0
  347. data/{packages/core/lib → lib}/facet/proc/op_mul.rb +0 -0
  348. data/{packages/core/lib → lib}/facet/proc/to_method.rb +0 -0
  349. data/{packages/core/lib → lib}/facet/random.rb +0 -0
  350. data/{packages/core/lib → lib}/facet/range.rb +0 -0
  351. data/{packages/core/lib → lib}/facet/range/to_r.rb +0 -0
  352. data/{packages/core/lib → lib}/facet/range/to_range.rb +0 -0
  353. data/{packages/core/lib → lib}/facet/range/umbrella.rb +0 -0
  354. data/{packages/core/lib → lib}/facet/range/within.rb +0 -0
  355. data/{packages/core/lib → lib}/facet/regexp.rb +0 -0
  356. data/{packages/core/lib → lib}/facet/regexp/arity.rb +0 -0
  357. data/{packages/core/lib → lib}/facet/regexp/to_re.rb +0 -0
  358. data/{packages/core/lib → lib}/facet/regexp/to_regexp.rb +0 -0
  359. data/lib/facet/string.rb +91 -0
  360. data/{packages/core/lib → lib}/facet/string/align_center.rb +0 -0
  361. data/{packages/core/lib → lib}/facet/string/align_left.rb +0 -0
  362. data/{packages/core/lib → lib}/facet/string/align_right.rb +0 -0
  363. data/{packages/core/lib → lib}/facet/string/at.rb +0 -0
  364. data/{packages/core/lib → lib}/facet/string/at_rand.rb +0 -0
  365. data/{packages/core/lib → lib}/facet/string/basename.rb +0 -0
  366. data/{packages/core/lib → lib}/facet/string/blank.rb +0 -0
  367. data/{packages/core/lib → lib}/facet/string/bracket.rb +0 -0
  368. data/{packages/core/lib → lib}/facet/string/brief.rb +0 -0
  369. data/{packages/core/lib → lib}/facet/string/bytes.rb +0 -0
  370. data/{packages/core/lib → lib}/facet/string/camelcase.rb +0 -0
  371. data/{packages/core/lib → lib}/facet/string/camelize.rb +0 -0
  372. data/{packages/core/lib → lib}/facet/string/capitalized.rb +0 -0
  373. data/{packages/core/lib → lib}/facet/string/chars.rb +0 -0
  374. data/{packages/core/lib → lib}/facet/string/cmp.rb +0 -0
  375. data/{packages/core/lib → lib}/facet/string/demodulize.rb +0 -0
  376. data/{packages/core/lib → lib}/facet/string/dequote.rb +0 -0
  377. data/{packages/core/lib → lib}/facet/string/downcase.rb +0 -0
  378. data/{packages/core/lib → lib}/facet/string/dresner.rb +0 -0
  379. data/{packages/core/lib → lib}/facet/string/each_char.rb +0 -0
  380. data/{packages/core/lib → lib}/facet/string/each_word.rb +0 -0
  381. data/{packages/core/lib → lib}/facet/string/ends_with.rb +0 -0
  382. data/{packages/core/lib → lib}/facet/string/first.rb +0 -0
  383. data/{packages/core/lib → lib}/facet/string/first_char.rb +0 -0
  384. data/{packages/core/lib → lib}/facet/string/fold.rb +0 -0
  385. data/{packages/core/lib → lib}/facet/string/format.rb +0 -0
  386. data/{packages/core/lib → lib}/facet/string/frequency.rb +0 -0
  387. data/{packages/core/lib → lib}/facet/string/humanize.rb +0 -0
  388. data/{packages/core/lib → lib}/facet/string/indent.rb +0 -0
  389. data/{packages/core/lib → lib}/facet/string/index_all.rb +0 -0
  390. data/{packages/core/lib → lib}/facet/string/last.rb +0 -0
  391. data/{packages/core/lib → lib}/facet/string/last_char.rb +0 -0
  392. data/{packages/core/lib → lib}/facet/string/line_wrap.rb +0 -0
  393. data/{packages/core/lib → lib}/facet/string/lines.rb +0 -0
  394. data/{packages/core/lib → lib}/facet/string/lowercase.rb +0 -0
  395. data/{packages/core/lib → lib}/facet/string/margin.rb +0 -0
  396. data/lib/facet/string/methodize.rb +44 -0
  397. data/lib/facet/string/modulize.rb +44 -0
  398. data/{packages/core/lib → lib}/facet/string/mscan.rb +0 -0
  399. data/{packages/core/lib → lib}/facet/string/natcmp.rb +0 -0
  400. data/{packages/core/lib → lib}/facet/string/nchar.rb +0 -0
  401. data/{packages/core/lib → lib}/facet/string/ordinal.rb +0 -0
  402. data/lib/facet/string/pathize.rb +46 -0
  403. data/{packages/core/lib → lib}/facet/string/plural.rb +0 -0
  404. data/{packages/core/lib → lib}/facet/string/pop.rb +0 -0
  405. data/{packages/core/lib → lib}/facet/string/probability.rb +0 -0
  406. data/{packages/core/lib → lib}/facet/string/pull.rb +0 -0
  407. data/{packages/core/lib → lib}/facet/string/push.rb +0 -0
  408. data/{packages/core/lib → lib}/facet/string/quote.rb +0 -0
  409. data/{packages/core/lib → lib}/facet/string/rand_byte.rb +0 -0
  410. data/{packages/core/lib → lib}/facet/string/rand_index.rb +0 -0
  411. data/{packages/core/lib → lib}/facet/string/range.rb +0 -0
  412. data/{packages/core/lib → lib}/facet/string/range_all.rb +0 -0
  413. data/{packages/core/lib → lib}/facet/string/range_of_line.rb +0 -0
  414. data/{packages/core/lib → lib}/facet/string/regesc.rb +0 -0
  415. data/{packages/core/lib → lib}/facet/string/self/format.rb +0 -0
  416. data/{packages/core/lib → lib}/facet/string/self/interpolate.rb +0 -0
  417. data/{packages/core/lib → lib}/facet/string/self/patterns.rb +0 -0
  418. data/{packages/core/lib → lib}/facet/string/self/rand_letter.rb +0 -0
  419. data/lib/facet/string/self/random.rb +37 -0
  420. data/{packages/core/lib → lib}/facet/string/shatter.rb +0 -0
  421. data/{packages/core/lib → lib}/facet/string/shift.rb +0 -0
  422. data/{packages/core/lib → lib}/facet/string/shuffle.rb +0 -0
  423. data/{packages/core/lib → lib}/facet/string/similarity.rb +0 -0
  424. data/{packages/core/lib → lib}/facet/string/singular.rb +0 -0
  425. data/{packages/core/lib → lib}/facet/string/slap.rb +0 -0
  426. data/{packages/core/lib → lib}/facet/string/soundex.rb +0 -0
  427. data/{packages/core/lib → lib}/facet/string/starts_with.rb +0 -0
  428. data/{packages/core/lib → lib}/facet/string/succ.rb +0 -0
  429. data/{packages/core/lib → lib}/facet/string/tab.rb +0 -0
  430. data/{packages/core/lib → lib}/facet/string/tabto.rb +0 -0
  431. data/{packages/core/lib → lib}/facet/string/to_a.rb +0 -0
  432. data/{packages/core/lib → lib}/facet/string/to_arr.rb +0 -0
  433. data/{packages/core/lib → lib}/facet/string/to_b.rb +0 -0
  434. data/{packages/core/lib → lib}/facet/string/to_const.rb +0 -0
  435. data/{packages/core/lib → lib}/facet/string/to_date.rb +0 -0
  436. data/{packages/core/lib → lib}/facet/string/to_proc.rb +0 -0
  437. data/{packages/core/lib → lib}/facet/string/to_re.rb +0 -0
  438. data/{packages/core/lib → lib}/facet/string/to_rx.rb +0 -0
  439. data/{packages/core/lib → lib}/facet/string/to_time.rb +0 -0
  440. data/lib/facet/string/unbracket.rb +46 -0
  441. data/{packages/core/lib → lib}/facet/string/underscore.rb +0 -0
  442. data/{packages/core/lib → lib}/facet/string/unix_crypt.rb +0 -0
  443. data/{packages/core/lib → lib}/facet/string/unpack.rb +0 -0
  444. data/{packages/core/lib → lib}/facet/string/unshift.rb +0 -0
  445. data/{packages/core/lib → lib}/facet/string/upcase.rb +0 -0
  446. data/{packages/core/lib → lib}/facet/string/uppercase.rb +0 -0
  447. data/{packages/core/lib → lib}/facet/string/whitespace.rb +0 -0
  448. data/{packages/core/lib → lib}/facet/string/word_filter.rb +0 -0
  449. data/{packages/core/lib → lib}/facet/string/word_wrap.rb +0 -0
  450. data/{packages/core/lib → lib}/facet/string/words.rb +0 -0
  451. data/{packages/core/lib → lib}/facet/string_as_array.rb +0 -0
  452. data/{packages/core/lib → lib}/facet/symbol.rb +0 -0
  453. data/{packages/core/lib → lib}/facet/symbol/camelcase.rb +0 -0
  454. data/{packages/core/lib → lib}/facet/symbol/camelize.rb +0 -0
  455. data/{packages/core/lib → lib}/facet/symbol/capitalize.rb +0 -0
  456. data/{packages/core/lib → lib}/facet/symbol/capitalized.rb +0 -0
  457. data/{packages/core/lib → lib}/facet/symbol/downcase.rb +0 -0
  458. data/lib/facet/symbol/not.rb +40 -0
  459. data/{packages/core/lib → lib}/facet/symbol/pad.rb +0 -0
  460. data/{packages/core/lib → lib}/facet/symbol/succ.rb +0 -0
  461. data/{packages/core/lib → lib}/facet/symbol/to_const.rb +0 -0
  462. data/{packages/core/lib → lib}/facet/symbol/to_proc.rb +0 -0
  463. data/{packages/core/lib → lib}/facet/symbol/to_str.rb +0 -0
  464. data/{packages/core/lib → lib}/facet/symbol/underscore.rb +0 -0
  465. data/{packages/core/lib → lib}/facet/symbol/upcase.rb +0 -0
  466. data/lib/facet/time.rb +8 -0
  467. data/{packages/core/lib → lib}/facet/time/change.rb +0 -0
  468. data/{packages/core/lib → lib}/facet/time/elapse.rb +0 -0
  469. data/{packages/core/lib → lib}/facet/time/self/days_extrema.rb +0 -0
  470. data/{packages/core/lib → lib}/facet/time/self/stamp.rb +0 -0
  471. data/{packages/core/lib → lib}/facet/time/stamp.rb +0 -0
  472. data/{packages/core/lib → lib}/facet/time/to_date.rb +0 -0
  473. data/{packages/core/lib → lib}/facet/time/to_s.rb +0 -0
  474. data/{packages/core/lib → lib}/facet/time/to_time.rb +0 -0
  475. data/{packages/core/lib → lib}/facet/unboundmethod.rb +0 -0
  476. data/{packages/core/lib → lib}/facet/unboundmethod/name.rb +0 -0
  477. data/{packages/core/lib → lib}/facets.rb +0 -0
  478. data/setup.rb +1 -0
  479. data/{packages/core/test → test}/FIXTURE/create_file +0 -0
  480. data/{packages/core/test → test}/FIXTURE/ls_r/A.txt +0 -0
  481. data/{packages/core/test → test}/FIXTURE/ls_r/A/B.txt +0 -0
  482. data/{packages/core/test → test}/FIXTURE/ls_r/A/B/C.txt +0 -0
  483. data/{packages/core/test → test}/FIXTURE/open_as_string_file +0 -0
  484. data/{packages/core/test → test}/FIXTURE/read_list_file +0 -0
  485. data/{packages/core/test → test}/FIXTURE/test_file.txt +0 -0
  486. data/{packages/core/test → test}/FIXTURE/test_file2.txt +0 -0
  487. data/test/lib/facet/array/test_at_rand.rb +34 -0
  488. data/test/lib/facet/array/test_delete_unless.rb +28 -0
  489. data/test/lib/facet/array/test_delete_values.rb +28 -0
  490. data/test/lib/facet/array/test_delete_values_at.rb +31 -0
  491. data/test/lib/facet/array/test_first.rb +46 -0
  492. data/test/lib/facet/array/test_head.rb +42 -0
  493. data/test/lib/facet/array/test_last_index.rb +26 -0
  494. data/test/lib/facet/array/test_merge.rb +35 -0
  495. data/test/lib/facet/array/test_mid.rb +33 -0
  496. data/test/lib/facet/array/test_middle.rb +29 -0
  497. data/test/lib/facet/array/test_op_fetch.rb +27 -0
  498. data/test/lib/facet/array/test_op_store.rb +30 -0
  499. data/test/lib/facet/array/test_pick.rb +40 -0
  500. data/test/lib/facet/array/test_pos.rb +28 -0
  501. data/test/lib/facet/array/test_pull.rb +28 -0
  502. data/test/lib/facet/array/test_rand_index.rb +29 -0
  503. data/test/lib/facet/array/test_rand_subset.rb +29 -0
  504. data/test/lib/facet/array/test_range.rb +32 -0
  505. data/test/lib/facet/array/test_rotate.rb +36 -0
  506. data/test/lib/facet/array/test_select.rb +28 -0
  507. data/test/lib/facet/array/test_shuffle.rb +35 -0
  508. data/test/lib/facet/array/test_slap.rb +28 -0
  509. data/test/lib/facet/array/test_thru.rb +27 -0
  510. data/test/lib/facet/array/test_to_b.rb +27 -0
  511. data/test/lib/facet/array/test_to_h.rb +33 -0
  512. data/test/lib/facet/array/test_to_hash.rb +27 -0
  513. data/test/lib/facet/binding/self/test_of_caller.rb +35 -0
  514. data/test/lib/facet/binding/test___LINE__.rb +43 -0
  515. data/test/lib/facet/binding/test_call_stack.rb +34 -0
  516. data/test/lib/facet/binding/test_called.rb +30 -0
  517. data/test/lib/facet/binding/test_caller.rb +35 -0
  518. data/test/lib/facet/binding/test_defined.rb +34 -0
  519. data/test/lib/facet/binding/test_eval.rb +34 -0
  520. data/test/lib/facet/binding/test_local_variables.rb +34 -0
  521. data/test/lib/facet/binding/test_method_name.rb +34 -0
  522. data/test/lib/facet/binding/test_op_fetch.rb +34 -0
  523. data/test/lib/facet/binding/test_op_store.rb +35 -0
  524. data/test/lib/facet/binding/test_self.rb +34 -0
  525. data/test/lib/facet/class/test_descendents.rb +30 -0
  526. data/test/lib/facet/class/test_method_name.rb +26 -0
  527. data/test/lib/facet/class/test_remove_descendents.rb +32 -0
  528. data/test/lib/facet/class/test_unix_path.rb +26 -0
  529. data/test/lib/facet/comparable/test_at_least.rb +34 -0
  530. data/test/lib/facet/comparable/test_clip.rb +44 -0
  531. data/test/lib/facet/comparable/test_cmp.rb +28 -0
  532. data/test/lib/facet/continuation/self/test_create.rb +26 -0
  533. data/test/lib/facet/date/test_days_in_month.rb +30 -0
  534. data/test/lib/facet/date/test_days_of_month.rb +30 -0
  535. data/test/lib/facet/date/test_stamp.rb +38 -0
  536. data/test/lib/facet/date/test_to_date.rb +30 -0
  537. data/test/lib/facet/date/test_to_s.rb +30 -0
  538. data/test/lib/facet/date/test_to_time.rb +30 -0
  539. data/test/lib/facet/dir/self/test_ancestor.rb +26 -0
  540. data/test/lib/facet/dir/self/test_ascend.rb +41 -0
  541. data/test/lib/facet/dir/self/test_ls_r.rb +52 -0
  542. data/test/lib/facet/enumerable/self/test_combinations.rb +43 -0
  543. data/test/lib/facet/enumerable/self/test_cross.rb +31 -0
  544. data/test/lib/facet/enumerable/test_collect_with_index.rb +27 -0
  545. data/test/lib/facet/enumerable/test_commonality.rb +31 -0
  546. data/test/lib/facet/enumerable/test_compact_collect.rb +27 -0
  547. data/test/lib/facet/enumerable/test_cross.rb +30 -0
  548. data/test/lib/facet/enumerable/test_each_combination.rb +29 -0
  549. data/test/lib/facet/enumerable/test_each_pair.rb +29 -0
  550. data/test/lib/facet/enumerable/test_each_slice.rb +74 -0
  551. data/test/lib/facet/enumerable/test_each_unique_pair.rb +29 -0
  552. data/test/lib/facet/enumerable/test_entropy.rb +26 -0
  553. data/test/lib/facet/enumerable/test_every.rb +35 -0
  554. data/test/lib/facet/enumerable/test_ew.rb +31 -0
  555. data/test/lib/facet/enumerable/test_filter_collect.rb +31 -0
  556. data/test/lib/facet/enumerable/test_find_collisions.rb +30 -0
  557. data/test/lib/facet/enumerable/test_frequency.rb +27 -0
  558. data/test/lib/facet/enumerable/test_graph.rb +30 -0
  559. data/test/lib/facet/enumerable/test_ideal_entropy.rb +27 -0
  560. data/test/lib/facet/enumerable/test_none.rb +33 -0
  561. data/test/lib/facet/enumerable/test_occur.rb +30 -0
  562. data/test/lib/facet/enumerable/test_one.rb +35 -0
  563. data/test/lib/facet/enumerable/test_op_pow.rb +27 -0
  564. data/test/lib/facet/enumerable/test_partition_by.rb +31 -0
  565. data/test/lib/facet/enumerable/test_permute.rb +29 -0
  566. data/test/lib/facet/enumerable/test_probability.rb +27 -0
  567. data/test/lib/facet/enumerable/test_to_h.rb +27 -0
  568. data/test/lib/facet/enumerable/test_uniq_by.rb +28 -0
  569. data/test/lib/facet/file/self/test_create.rb +39 -0
  570. data/test/lib/facet/file/self/test_open_as_string.rb +40 -0
  571. data/test/lib/facet/file/self/test_read_list.rb +37 -0
  572. data/test/lib/facet/file/self/test_sanitize.rb +46 -0
  573. data/test/lib/facet/file/self/test_split_all.rb +27 -0
  574. data/{packages/core/test → test}/lib/facet/fileutils/test_slice.rb +0 -0
  575. data/test/lib/facet/fileutils/test_wc.rb +68 -0
  576. data/test/lib/facet/fileutils/test_which.rb +61 -0
  577. data/test/lib/facet/float/test_approx.rb +28 -0
  578. data/test/lib/facet/float/test_round_at.rb +46 -0
  579. data/test/lib/facet/float/test_round_to.rb +46 -0
  580. data/test/lib/facet/hash/self/test_zipnew.rb +28 -0
  581. data/test/lib/facet/hash/test_alias.rb +31 -0
  582. data/test/lib/facet/hash/test_assert_has_keys.rb +27 -0
  583. data/test/lib/facet/hash/test_assert_has_only_keys.rb +27 -0
  584. data/test/lib/facet/hash/test_at.rb +28 -0
  585. data/test/lib/facet/hash/test_collate.rb +35 -0
  586. data/test/lib/facet/hash/test_each.rb +36 -0
  587. data/test/lib/facet/hash/test_each_with_index.rb +29 -0
  588. data/test/lib/facet/hash/test_each_with_key.rb +29 -0
  589. data/test/lib/facet/hash/test_graph.rb +28 -0
  590. data/test/lib/facet/hash/test_has_keys.rb +27 -0
  591. data/test/lib/facet/hash/test_has_only_keys.rb +27 -0
  592. data/test/lib/facet/hash/test_inverse.rb +28 -0
  593. data/test/lib/facet/hash/test_keys_to_s.rb +34 -0
  594. data/test/lib/facet/hash/test_keys_to_sym.rb +34 -0
  595. data/test/lib/facet/hash/test_op_fetch.rb +111 -0
  596. data/test/lib/facet/hash/test_op_lshift.rb +29 -0
  597. data/test/lib/facet/hash/test_rand_key.rb +27 -0
  598. data/test/lib/facet/hash/test_rand_pair.rb +27 -0
  599. data/test/lib/facet/hash/test_rand_value.rb +27 -0
  600. data/test/lib/facet/hash/test_replace_each.rb +29 -0
  601. data/test/lib/facet/hash/test_shuffle.rb +32 -0
  602. data/test/lib/facet/hash/test_slice.rb +27 -0
  603. data/test/lib/facet/hash/test_swap.rb +27 -0
  604. data/test/lib/facet/hash/test_swapkey.rb +29 -0
  605. data/test/lib/facet/hash/test_to_h.rb +27 -0
  606. data/test/lib/facet/hash/test_to_ostruct.rb +30 -0
  607. data/test/lib/facet/hash/test_to_ostruct_recurse.rb +30 -0
  608. data/test/lib/facet/hash/test_traverse.rb +37 -0
  609. data/test/lib/facet/hash/test_update_each.rb +29 -0
  610. data/test/lib/facet/hash/test_update_keys.rb +28 -0
  611. data/test/lib/facet/hash/test_update_values.rb +28 -0
  612. data/test/lib/facet/hash/test_weave.rb +29 -0
  613. data/test/lib/facet/integer/test_factorial.rb +30 -0
  614. data/test/lib/facet/integer/test_multiple.rb +43 -0
  615. data/test/lib/facet/integer/test_ordinal.rb +29 -0
  616. data/test/lib/facet/integer/test_times_collect.rb +28 -0
  617. data/test/lib/facet/kernel/test___class__.rb +26 -0
  618. data/test/lib/facet/kernel/test_as.rb +42 -0
  619. data/test/lib/facet/kernel/test_assign_from.rb +31 -0
  620. data/test/lib/facet/kernel/test_assign_with.rb +31 -0
  621. data/test/lib/facet/kernel/test_bool.rb +41 -0
  622. data/test/lib/facet/kernel/test_bug.rb +26 -0
  623. data/test/lib/facet/kernel/test_call_stack.rb +26 -0
  624. data/test/lib/facet/kernel/test_called.rb +26 -0
  625. data/test/lib/facet/kernel/test_constant.rb +33 -0
  626. data/test/lib/facet/kernel/test_copy.rb +40 -0
  627. data/test/lib/facet/kernel/test_deep_copy.rb +40 -0
  628. data/test/lib/facet/kernel/test_demo.rb +28 -0
  629. data/test/lib/facet/kernel/test_fn.rb +26 -0
  630. data/test/lib/facet/kernel/test_generate_method_name.rb +26 -0
  631. data/test/lib/facet/kernel/test_get_by_id.rb +28 -0
  632. data/test/lib/facet/kernel/test_here.rb +26 -0
  633. data/test/lib/facet/kernel/test_in.rb +27 -0
  634. data/test/lib/facet/kernel/test_maybe.rb +26 -0
  635. data/test/lib/facet/kernel/test_metaclass.rb +34 -0
  636. data/test/lib/facet/kernel/test_method.rb +32 -0
  637. data/test/lib/facet/kernel/test_method_name.rb +31 -0
  638. data/test/lib/facet/kernel/test_methods.rb +50 -0
  639. data/test/lib/facet/kernel/test_new.rb +30 -0
  640. data/test/lib/facet/kernel/test_object_class.rb +26 -0
  641. data/test/lib/facet/kernel/test_object_hexid.rb +27 -0
  642. data/test/lib/facet/kernel/test_require_all.rb +26 -0
  643. data/test/lib/facet/kernel/test_require_esc.rb +27 -0
  644. data/test/lib/facet/kernel/test_require_facet.rb +27 -0
  645. data/test/lib/facet/kernel/test_resc.rb +27 -0
  646. data/test/lib/facet/kernel/test_returning.rb +30 -0
  647. data/test/lib/facet/kernel/test_send_as.rb +26 -0
  648. data/test/lib/facet/kernel/test_set_from.rb +33 -0
  649. data/test/lib/facet/kernel/test_set_with.rb +33 -0
  650. data/test/lib/facet/kernel/test_silently.rb +28 -0
  651. data/test/lib/facet/kernel/test_singleton.rb +40 -0
  652. data/test/lib/facet/kernel/test_superior.rb +30 -0
  653. data/test/lib/facet/kernel/test_supermethod.rb +33 -0
  654. data/test/lib/facet/kernel/test_this.rb +26 -0
  655. data/test/lib/facet/kernel/test_to_b.rb +28 -0
  656. data/test/lib/facet/kernel/test_to_bool.rb +28 -0
  657. data/test/lib/facet/kernel/test_uri.rb +30 -0
  658. data/test/lib/facet/kernel/test_val.rb +43 -0
  659. data/test/lib/facet/kernel/test_with_accessor.rb +51 -0
  660. data/test/lib/facet/matchdata/test_match.rb +29 -0
  661. data/test/lib/facet/matchdata/test_matchtree.rb +32 -0
  662. data/test/lib/facet/module/test_abstract.rb +36 -0
  663. data/test/lib/facet/module/test_alias_module_function.rb +34 -0
  664. data/test/lib/facet/module/test_ancestor.rb +26 -0
  665. data/test/lib/facet/module/test_basename.rb +26 -0
  666. data/test/lib/facet/module/test_by_name.rb +29 -0
  667. data/test/lib/facet/module/test_cattr_accessor.rb +55 -0
  668. data/test/lib/facet/module/test_clone_using.rb +55 -0
  669. data/test/lib/facet/module/test_dirname.rb +26 -0
  670. data/test/lib/facet/module/test_equate_on.rb +37 -0
  671. data/test/lib/facet/module/test_generate_instance_method_name.rb +33 -0
  672. data/test/lib/facet/module/test_include_as.rb +35 -0
  673. data/test/lib/facet/module/test_initializer.rb +32 -0
  674. data/test/lib/facet/module/test_instance_methods.rb +59 -0
  675. data/test/lib/facet/module/test_integrate.rb +35 -0
  676. data/test/lib/facet/module/test_memoize.rb +50 -0
  677. data/test/lib/facet/module/test_modspace.rb +27 -0
  678. data/test/lib/facet/module/test_namespace.rb +33 -0
  679. data/test/lib/facet/module/test_nesting.rb +36 -0
  680. data/test/lib/facet/module/test_redef.rb +30 -0
  681. data/test/lib/facet/module/test_redefine_method.rb +30 -0
  682. data/test/lib/facet/module/test_redirect.rb +30 -0
  683. data/test/lib/facet/module/test_redirect_method.rb +30 -0
  684. data/test/lib/facet/module/test_remove.rb +30 -0
  685. data/test/lib/facet/module/test_rename.rb +31 -0
  686. data/test/lib/facet/module/test_rename_method.rb +31 -0
  687. data/test/lib/facet/module/test_revisal.rb +35 -0
  688. data/test/lib/facet/module/test_shadow_method.rb +30 -0
  689. data/test/lib/facet/module/test_sort_on.rb +42 -0
  690. data/test/lib/facet/module/test_undef.rb +30 -0
  691. data/test/lib/facet/module/test_wrap.rb +30 -0
  692. data/test/lib/facet/module/test_wrap_method.rb +30 -0
  693. data/test/lib/facet/nilclass/test_empty.rb +26 -0
  694. data/test/lib/facet/nilclass/test_include.rb +26 -0
  695. data/test/lib/facet/nilclass/test_op_fetch.rb +28 -0
  696. data/test/lib/facet/nilclass/test_size.rb +30 -0
  697. data/test/lib/facet/nilclass/test_to_f.rb +26 -0
  698. data/test/lib/facet/nilclass/test_to_h.rb +26 -0
  699. data/test/lib/facet/numeric/test_ceil_multiple.rb +31 -0
  700. data/test/lib/facet/numeric/test_succ.rb +40 -0
  701. data/test/lib/facet/numeric/test_to_b.rb +27 -0
  702. data/test/lib/facet/ostruct/test___merge__.rb +38 -0
  703. data/test/lib/facet/ostruct/test___update__.rb +29 -0
  704. data/test/lib/facet/ostruct/test_op_fetch.rb +27 -0
  705. data/test/lib/facet/ostruct/test_op_store.rb +28 -0
  706. data/test/lib/facet/proc/test_compose.rb +36 -0
  707. data/test/lib/facet/proc/test_to_method.rb +31 -0
  708. data/test/lib/facet/range/test_to_r.rb +27 -0
  709. data/test/lib/facet/range/test_to_range.rb +27 -0
  710. data/test/lib/facet/range/test_umbrella.rb +34 -0
  711. data/test/lib/facet/range/test_within.rb +29 -0
  712. data/test/lib/facet/regexp/test_arity.rb +33 -0
  713. data/test/lib/facet/regexp/test_to_re.rb +27 -0
  714. data/test/lib/facet/regexp/test_to_regexp.rb +27 -0
  715. data/test/lib/facet/string/self/test_interpolate.rb +27 -0
  716. data/test/lib/facet/string/self/test_patterns.rb +28 -0
  717. data/test/lib/facet/string/self/test_rand_letter.rb +26 -0
  718. data/test/lib/facet/string/test_align_center.rb +34 -0
  719. data/test/lib/facet/string/test_at_rand.rb +35 -0
  720. data/test/lib/facet/string/test_basename.rb +41 -0
  721. data/test/lib/facet/string/test_blank.rb +27 -0
  722. data/test/lib/facet/string/test_bracket.rb +49 -0
  723. data/test/lib/facet/string/test_camelcase.rb +39 -0
  724. data/test/lib/facet/string/test_camelize.rb +26 -0
  725. data/test/lib/facet/string/test_capitalized.rb +26 -0
  726. data/test/lib/facet/string/test_chars.rb +27 -0
  727. data/test/lib/facet/string/test_cmp.rb +30 -0
  728. data/test/lib/facet/string/test_demodulize.rb +38 -0
  729. data/test/lib/facet/string/test_downcase.rb +26 -0
  730. data/test/lib/facet/string/test_dresner.rb +32 -0
  731. data/test/lib/facet/string/test_each_char.rb +29 -0
  732. data/test/lib/facet/string/test_each_word.rb +29 -0
  733. data/test/lib/facet/string/test_first.rb +43 -0
  734. data/test/lib/facet/string/test_fold.rb +34 -0
  735. data/test/lib/facet/string/test_frequency.rb +28 -0
  736. data/test/lib/facet/string/test_humanize.rb +26 -0
  737. data/test/lib/facet/string/test_indent.rb +40 -0
  738. data/test/lib/facet/string/test_index_all.rb +26 -0
  739. data/test/lib/facet/string/test_last.rb +46 -0
  740. data/test/lib/facet/string/test_line_wrap.rb +27 -0
  741. data/test/lib/facet/string/test_lines.rb +26 -0
  742. data/test/lib/facet/string/test_lowercase.rb +26 -0
  743. data/test/lib/facet/string/test_margin.rb +117 -0
  744. data/test/lib/facet/string/test_methodize.rb +27 -0
  745. data/test/lib/facet/string/test_modulize.rb +29 -0
  746. data/test/lib/facet/string/test_mscan.rb +30 -0
  747. data/test/lib/facet/string/test_natcmp.rb +30 -0
  748. data/test/lib/facet/string/test_nchar.rb +29 -0
  749. data/test/lib/facet/string/test_pathize.rb +29 -0
  750. data/test/lib/facet/string/test_pop.rb +47 -0
  751. data/test/lib/facet/string/test_probability.rb +28 -0
  752. data/test/lib/facet/string/test_push.rb +40 -0
  753. data/test/lib/facet/string/test_quote.rb +49 -0
  754. data/test/lib/facet/string/test_rand_byte.rb +35 -0
  755. data/test/lib/facet/string/test_rand_index.rb +26 -0
  756. data/test/lib/facet/string/test_range.rb +27 -0
  757. data/test/lib/facet/string/test_range_all.rb +27 -0
  758. data/test/lib/facet/string/test_range_of_line.rb +28 -0
  759. data/test/lib/facet/string/test_regesc.rb +28 -0
  760. data/test/lib/facet/string/test_shatter.rb +29 -0
  761. data/test/lib/facet/string/test_shift.rb +40 -0
  762. data/test/lib/facet/string/test_shuffle.rb +27 -0
  763. data/test/lib/facet/string/test_similarity.rb +26 -0
  764. data/test/lib/facet/string/test_singular.rb +32 -0
  765. data/test/lib/facet/string/test_slap.rb +40 -0
  766. data/test/lib/facet/string/test_soundex.rb +41 -0
  767. data/test/lib/facet/string/test_succ.rb +29 -0
  768. data/test/lib/facet/string/test_to_a.rb +27 -0
  769. data/test/lib/facet/string/test_to_arr.rb +26 -0
  770. data/test/lib/facet/string/test_to_b.rb +41 -0
  771. data/test/lib/facet/string/test_to_const.rb +28 -0
  772. data/test/lib/facet/string/test_to_date.rb +30 -0
  773. data/test/lib/facet/string/test_to_proc.rb +33 -0
  774. data/test/lib/facet/string/test_to_re.rb +28 -0
  775. data/test/lib/facet/string/test_to_time.rb +30 -0
  776. data/test/lib/facet/string/test_unix_crypt.rb +30 -0
  777. data/test/lib/facet/string/test_unpack.rb +34 -0
  778. data/test/lib/facet/string/test_unshift.rb +39 -0
  779. data/test/lib/facet/string/test_upcase.rb +30 -0
  780. data/test/lib/facet/string/test_whitespace.rb +27 -0
  781. data/test/lib/facet/string/test_word_filter.rb +34 -0
  782. data/test/lib/facet/string/test_word_wrap.rb +51 -0
  783. data/test/lib/facet/string/test_words.rb +37 -0
  784. data/test/lib/facet/symbol/test_camelcase.rb +26 -0
  785. data/test/lib/facet/symbol/test_camelize.rb +27 -0
  786. data/test/lib/facet/symbol/test_capitalize.rb +26 -0
  787. data/test/lib/facet/symbol/test_capitalized.rb +27 -0
  788. data/test/lib/facet/symbol/test_downcase.rb +27 -0
  789. data/test/lib/facet/symbol/test_not.rb +29 -0
  790. data/test/lib/facet/symbol/test_pad.rb +27 -0
  791. data/test/lib/facet/symbol/test_succ.rb +28 -0
  792. data/test/lib/facet/symbol/test_to_const.rb +28 -0
  793. data/test/lib/facet/symbol/test_to_proc.rb +27 -0
  794. data/test/lib/facet/symbol/test_to_str.rb +28 -0
  795. data/test/lib/facet/symbol/test_underscore.rb +26 -0
  796. data/test/lib/facet/symbol/test_upcase.rb +27 -0
  797. data/test/lib/facet/time/test_change.rb +33 -0
  798. data/test/lib/facet/time/test_elapse.rb +27 -0
  799. data/test/lib/facet/time/test_stamp.rb +31 -0
  800. data/test/lib/facet/time/test_to_date.rb +31 -0
  801. data/test/lib/facet/time/test_to_s.rb +31 -0
  802. data/test/lib/facet/time/test_to_time.rb +31 -0
  803. data/{packages/core/test → test}/testdir.rb +0 -0
  804. metadata +891 -1084
  805. data/packages/core/AUTHORS +0 -33
  806. data/packages/core/CHANGELOG +0 -257
  807. data/packages/core/COPYING +0 -403
  808. data/packages/core/ProjectInfo +0 -39
  809. data/packages/core/README +0 -252
  810. data/packages/core/Rakefile +0 -175
  811. data/packages/core/lib/facet/array.rb +0 -33
  812. data/packages/core/lib/facet/class.rb +0 -5
  813. data/packages/core/lib/facet/class/unix_path.rb +0 -32
  814. data/packages/core/lib/facet/enumerable.rb +0 -38
  815. data/packages/core/lib/facet/enumerable/project.rb +0 -11
  816. data/packages/core/lib/facet/enumerable/where.rb +0 -12
  817. data/packages/core/lib/facet/integer.rb +0 -8
  818. data/packages/core/lib/facet/kernel.rb +0 -65
  819. data/packages/core/lib/facet/kernel/generate_method_name.rb +0 -39
  820. data/packages/core/lib/facet/module/attr.rb +0 -23
  821. data/packages/core/lib/facet/module/attr_setter.rb +0 -48
  822. data/packages/core/lib/facet/module/attr_tester.rb +0 -56
  823. data/packages/core/lib/facet/module/generate_instance_method_name.rb +0 -47
  824. data/packages/core/lib/facet/module/initializer.rb +0 -65
  825. data/packages/core/lib/facet/string.rb +0 -86
  826. data/packages/core/lib/facet/string/self/random.rb +0 -36
  827. data/packages/core/lib/facet/string/unbracket.rb +0 -46
  828. data/packages/core/lib/facet/symbol/not.rb +0 -40
  829. data/packages/core/lib/facet/time.rb +0 -7
  830. data/packages/core/test/FIXTURE/filelist/testfile.txt +0 -0
  831. data/packages/core/test/FIXTURE/filelist/testfile2.txt +0 -0
  832. data/packages/core/test/lib/facet/array/test_at_rand.rb +0 -34
  833. data/packages/core/test/lib/facet/array/test_delete_unless.rb +0 -28
  834. data/packages/core/test/lib/facet/array/test_delete_values.rb +0 -28
  835. data/packages/core/test/lib/facet/array/test_delete_values_at.rb +0 -31
  836. data/packages/core/test/lib/facet/array/test_first.rb +0 -46
  837. data/packages/core/test/lib/facet/array/test_head.rb +0 -42
  838. data/packages/core/test/lib/facet/array/test_last_index.rb +0 -26
  839. data/packages/core/test/lib/facet/array/test_merge.rb +0 -35
  840. data/packages/core/test/lib/facet/array/test_mid.rb +0 -33
  841. data/packages/core/test/lib/facet/array/test_middle.rb +0 -29
  842. data/packages/core/test/lib/facet/array/test_op_fetch.rb +0 -27
  843. data/packages/core/test/lib/facet/array/test_op_store.rb +0 -30
  844. data/packages/core/test/lib/facet/array/test_pick.rb +0 -40
  845. data/packages/core/test/lib/facet/array/test_pos.rb +0 -28
  846. data/packages/core/test/lib/facet/array/test_pull.rb +0 -28
  847. data/packages/core/test/lib/facet/array/test_rand_index.rb +0 -29
  848. data/packages/core/test/lib/facet/array/test_rand_subset.rb +0 -29
  849. data/packages/core/test/lib/facet/array/test_range.rb +0 -32
  850. data/packages/core/test/lib/facet/array/test_rotate.rb +0 -36
  851. data/packages/core/test/lib/facet/array/test_select.rb +0 -28
  852. data/packages/core/test/lib/facet/array/test_shuffle.rb +0 -35
  853. data/packages/core/test/lib/facet/array/test_slap.rb +0 -28
  854. data/packages/core/test/lib/facet/array/test_thru.rb +0 -27
  855. data/packages/core/test/lib/facet/array/test_to_b.rb +0 -27
  856. data/packages/core/test/lib/facet/array/test_to_h.rb +0 -33
  857. data/packages/core/test/lib/facet/array/test_to_hash.rb +0 -27
  858. data/packages/core/test/lib/facet/binding/self/test_of_caller.rb +0 -35
  859. data/packages/core/test/lib/facet/binding/test___LINE__.rb +0 -43
  860. data/packages/core/test/lib/facet/binding/test_call_stack.rb +0 -34
  861. data/packages/core/test/lib/facet/binding/test_called.rb +0 -30
  862. data/packages/core/test/lib/facet/binding/test_caller.rb +0 -35
  863. data/packages/core/test/lib/facet/binding/test_defined.rb +0 -34
  864. data/packages/core/test/lib/facet/binding/test_eval.rb +0 -34
  865. data/packages/core/test/lib/facet/binding/test_local_variables.rb +0 -34
  866. data/packages/core/test/lib/facet/binding/test_method_name.rb +0 -34
  867. data/packages/core/test/lib/facet/binding/test_op_fetch.rb +0 -34
  868. data/packages/core/test/lib/facet/binding/test_op_store.rb +0 -35
  869. data/packages/core/test/lib/facet/binding/test_self.rb +0 -34
  870. data/packages/core/test/lib/facet/class/test_descendents.rb +0 -30
  871. data/packages/core/test/lib/facet/class/test_remove_descendents.rb +0 -32
  872. data/packages/core/test/lib/facet/comparable/test_at_least.rb +0 -34
  873. data/packages/core/test/lib/facet/comparable/test_clip.rb +0 -44
  874. data/packages/core/test/lib/facet/comparable/test_cmp.rb +0 -28
  875. data/packages/core/test/lib/facet/continuation/self/test_create.rb +0 -26
  876. data/packages/core/test/lib/facet/date/test_days_in_month.rb +0 -30
  877. data/packages/core/test/lib/facet/date/test_days_of_month.rb +0 -30
  878. data/packages/core/test/lib/facet/date/test_stamp.rb +0 -38
  879. data/packages/core/test/lib/facet/date/test_to_date.rb +0 -30
  880. data/packages/core/test/lib/facet/date/test_to_s.rb +0 -30
  881. data/packages/core/test/lib/facet/date/test_to_time.rb +0 -30
  882. data/packages/core/test/lib/facet/dir/self/test_ancestor.rb +0 -26
  883. data/packages/core/test/lib/facet/dir/self/test_ascend.rb +0 -41
  884. data/packages/core/test/lib/facet/dir/self/test_ls_r.rb +0 -52
  885. data/packages/core/test/lib/facet/enumerable/self/test_combinations.rb +0 -43
  886. data/packages/core/test/lib/facet/enumerable/self/test_cross.rb +0 -31
  887. data/packages/core/test/lib/facet/enumerable/test_collect_with_index.rb +0 -27
  888. data/packages/core/test/lib/facet/enumerable/test_commonality.rb +0 -31
  889. data/packages/core/test/lib/facet/enumerable/test_compact_collect.rb +0 -27
  890. data/packages/core/test/lib/facet/enumerable/test_cross.rb +0 -30
  891. data/packages/core/test/lib/facet/enumerable/test_each_combination.rb +0 -29
  892. data/packages/core/test/lib/facet/enumerable/test_each_pair.rb +0 -29
  893. data/packages/core/test/lib/facet/enumerable/test_each_slice.rb +0 -74
  894. data/packages/core/test/lib/facet/enumerable/test_each_unique_pair.rb +0 -29
  895. data/packages/core/test/lib/facet/enumerable/test_entropy.rb +0 -26
  896. data/packages/core/test/lib/facet/enumerable/test_every.rb +0 -35
  897. data/packages/core/test/lib/facet/enumerable/test_ew.rb +0 -31
  898. data/packages/core/test/lib/facet/enumerable/test_filter_collect.rb +0 -31
  899. data/packages/core/test/lib/facet/enumerable/test_find_collisions.rb +0 -30
  900. data/packages/core/test/lib/facet/enumerable/test_frequency.rb +0 -27
  901. data/packages/core/test/lib/facet/enumerable/test_graph.rb +0 -30
  902. data/packages/core/test/lib/facet/enumerable/test_ideal_entropy.rb +0 -27
  903. data/packages/core/test/lib/facet/enumerable/test_none.rb +0 -33
  904. data/packages/core/test/lib/facet/enumerable/test_occur.rb +0 -30
  905. data/packages/core/test/lib/facet/enumerable/test_one.rb +0 -35
  906. data/packages/core/test/lib/facet/enumerable/test_op_pow.rb +0 -27
  907. data/packages/core/test/lib/facet/enumerable/test_partition_by.rb +0 -31
  908. data/packages/core/test/lib/facet/enumerable/test_permute.rb +0 -29
  909. data/packages/core/test/lib/facet/enumerable/test_probability.rb +0 -27
  910. data/packages/core/test/lib/facet/enumerable/test_to_h.rb +0 -27
  911. data/packages/core/test/lib/facet/enumerable/test_uniq_by.rb +0 -28
  912. data/packages/core/test/lib/facet/file/self/test_create.rb +0 -39
  913. data/packages/core/test/lib/facet/file/self/test_open_as_string.rb +0 -40
  914. data/packages/core/test/lib/facet/file/self/test_read_list.rb +0 -37
  915. data/packages/core/test/lib/facet/file/self/test_sanitize.rb +0 -46
  916. data/packages/core/test/lib/facet/file/self/test_split_all.rb +0 -27
  917. data/packages/core/test/lib/facet/fileutils/test_wc.rb +0 -68
  918. data/packages/core/test/lib/facet/fileutils/test_which.rb +0 -61
  919. data/packages/core/test/lib/facet/float/test_approx.rb +0 -28
  920. data/packages/core/test/lib/facet/float/test_round_at.rb +0 -46
  921. data/packages/core/test/lib/facet/float/test_round_to.rb +0 -46
  922. data/packages/core/test/lib/facet/hash/self/test_zipnew.rb +0 -28
  923. data/packages/core/test/lib/facet/hash/test_alias.rb +0 -31
  924. data/packages/core/test/lib/facet/hash/test_assert_has_keys.rb +0 -27
  925. data/packages/core/test/lib/facet/hash/test_assert_has_only_keys.rb +0 -27
  926. data/packages/core/test/lib/facet/hash/test_at.rb +0 -28
  927. data/packages/core/test/lib/facet/hash/test_collate.rb +0 -35
  928. data/packages/core/test/lib/facet/hash/test_each.rb +0 -36
  929. data/packages/core/test/lib/facet/hash/test_each_with_index.rb +0 -29
  930. data/packages/core/test/lib/facet/hash/test_each_with_key.rb +0 -29
  931. data/packages/core/test/lib/facet/hash/test_graph.rb +0 -28
  932. data/packages/core/test/lib/facet/hash/test_has_keys.rb +0 -27
  933. data/packages/core/test/lib/facet/hash/test_has_only_keys.rb +0 -27
  934. data/packages/core/test/lib/facet/hash/test_inverse.rb +0 -28
  935. data/packages/core/test/lib/facet/hash/test_keys_to_s.rb +0 -34
  936. data/packages/core/test/lib/facet/hash/test_keys_to_sym.rb +0 -34
  937. data/packages/core/test/lib/facet/hash/test_op_fetch.rb +0 -111
  938. data/packages/core/test/lib/facet/hash/test_op_lshift.rb +0 -29
  939. data/packages/core/test/lib/facet/hash/test_rand_key.rb +0 -27
  940. data/packages/core/test/lib/facet/hash/test_rand_pair.rb +0 -27
  941. data/packages/core/test/lib/facet/hash/test_rand_value.rb +0 -27
  942. data/packages/core/test/lib/facet/hash/test_replace_each.rb +0 -29
  943. data/packages/core/test/lib/facet/hash/test_shuffle.rb +0 -32
  944. data/packages/core/test/lib/facet/hash/test_slice.rb +0 -27
  945. data/packages/core/test/lib/facet/hash/test_swap.rb +0 -27
  946. data/packages/core/test/lib/facet/hash/test_swapkey.rb +0 -29
  947. data/packages/core/test/lib/facet/hash/test_to_h.rb +0 -27
  948. data/packages/core/test/lib/facet/hash/test_to_ostruct.rb +0 -30
  949. data/packages/core/test/lib/facet/hash/test_to_ostruct_recurse.rb +0 -30
  950. data/packages/core/test/lib/facet/hash/test_traverse.rb +0 -37
  951. data/packages/core/test/lib/facet/hash/test_update_each.rb +0 -29
  952. data/packages/core/test/lib/facet/hash/test_update_keys.rb +0 -28
  953. data/packages/core/test/lib/facet/hash/test_update_values.rb +0 -28
  954. data/packages/core/test/lib/facet/hash/test_weave.rb +0 -29
  955. data/packages/core/test/lib/facet/integer/test_factorial.rb +0 -30
  956. data/packages/core/test/lib/facet/integer/test_multiple.rb +0 -43
  957. data/packages/core/test/lib/facet/integer/test_ordinal.rb +0 -29
  958. data/packages/core/test/lib/facet/integer/test_times_collect.rb +0 -28
  959. data/packages/core/test/lib/facet/kernel/test___class__.rb +0 -26
  960. data/packages/core/test/lib/facet/kernel/test_as.rb +0 -42
  961. data/packages/core/test/lib/facet/kernel/test_assign_from.rb +0 -31
  962. data/packages/core/test/lib/facet/kernel/test_assign_with.rb +0 -31
  963. data/packages/core/test/lib/facet/kernel/test_bool.rb +0 -41
  964. data/packages/core/test/lib/facet/kernel/test_bug.rb +0 -26
  965. data/packages/core/test/lib/facet/kernel/test_call_stack.rb +0 -26
  966. data/packages/core/test/lib/facet/kernel/test_called.rb +0 -26
  967. data/packages/core/test/lib/facet/kernel/test_constant.rb +0 -33
  968. data/packages/core/test/lib/facet/kernel/test_copy.rb +0 -40
  969. data/packages/core/test/lib/facet/kernel/test_deep_copy.rb +0 -40
  970. data/packages/core/test/lib/facet/kernel/test_demo.rb +0 -28
  971. data/packages/core/test/lib/facet/kernel/test_fn.rb +0 -26
  972. data/packages/core/test/lib/facet/kernel/test_generate_method_name.rb +0 -26
  973. data/packages/core/test/lib/facet/kernel/test_get_by_id.rb +0 -28
  974. data/packages/core/test/lib/facet/kernel/test_here.rb +0 -26
  975. data/packages/core/test/lib/facet/kernel/test_in.rb +0 -27
  976. data/packages/core/test/lib/facet/kernel/test_maybe.rb +0 -26
  977. data/packages/core/test/lib/facet/kernel/test_metaclass.rb +0 -34
  978. data/packages/core/test/lib/facet/kernel/test_method.rb +0 -32
  979. data/packages/core/test/lib/facet/kernel/test_method_name.rb +0 -31
  980. data/packages/core/test/lib/facet/kernel/test_methods.rb +0 -50
  981. data/packages/core/test/lib/facet/kernel/test_new.rb +0 -30
  982. data/packages/core/test/lib/facet/kernel/test_object_class.rb +0 -26
  983. data/packages/core/test/lib/facet/kernel/test_object_hexid.rb +0 -27
  984. data/packages/core/test/lib/facet/kernel/test_require_all.rb +0 -26
  985. data/packages/core/test/lib/facet/kernel/test_require_esc.rb +0 -27
  986. data/packages/core/test/lib/facet/kernel/test_require_facet.rb +0 -27
  987. data/packages/core/test/lib/facet/kernel/test_resc.rb +0 -27
  988. data/packages/core/test/lib/facet/kernel/test_returning.rb +0 -30
  989. data/packages/core/test/lib/facet/kernel/test_send_as.rb +0 -26
  990. data/packages/core/test/lib/facet/kernel/test_set_from.rb +0 -33
  991. data/packages/core/test/lib/facet/kernel/test_set_with.rb +0 -33
  992. data/packages/core/test/lib/facet/kernel/test_silently.rb +0 -28
  993. data/packages/core/test/lib/facet/kernel/test_singleton.rb +0 -40
  994. data/packages/core/test/lib/facet/kernel/test_superior.rb +0 -30
  995. data/packages/core/test/lib/facet/kernel/test_supermethod.rb +0 -33
  996. data/packages/core/test/lib/facet/kernel/test_this.rb +0 -26
  997. data/packages/core/test/lib/facet/kernel/test_to_b.rb +0 -28
  998. data/packages/core/test/lib/facet/kernel/test_to_bool.rb +0 -28
  999. data/packages/core/test/lib/facet/kernel/test_uri.rb +0 -30
  1000. data/packages/core/test/lib/facet/kernel/test_val.rb +0 -43
  1001. data/packages/core/test/lib/facet/kernel/test_with_accessor.rb +0 -51
  1002. data/packages/core/test/lib/facet/matchdata/test_match.rb +0 -29
  1003. data/packages/core/test/lib/facet/matchdata/test_matchtree.rb +0 -32
  1004. data/packages/core/test/lib/facet/module/test_abstract.rb +0 -36
  1005. data/packages/core/test/lib/facet/module/test_alias_module_function.rb +0 -34
  1006. data/packages/core/test/lib/facet/module/test_ancestor.rb +0 -26
  1007. data/packages/core/test/lib/facet/module/test_basename.rb +0 -26
  1008. data/packages/core/test/lib/facet/module/test_by_name.rb +0 -29
  1009. data/packages/core/test/lib/facet/module/test_cattr_accessor.rb +0 -55
  1010. data/packages/core/test/lib/facet/module/test_clone_using.rb +0 -55
  1011. data/packages/core/test/lib/facet/module/test_dirname.rb +0 -26
  1012. data/packages/core/test/lib/facet/module/test_equate_on.rb +0 -37
  1013. data/packages/core/test/lib/facet/module/test_generate_instance_method_name.rb +0 -33
  1014. data/packages/core/test/lib/facet/module/test_include_as.rb +0 -35
  1015. data/packages/core/test/lib/facet/module/test_initializer.rb +0 -32
  1016. data/packages/core/test/lib/facet/module/test_instance_methods.rb +0 -59
  1017. data/packages/core/test/lib/facet/module/test_integrate.rb +0 -35
  1018. data/packages/core/test/lib/facet/module/test_memoize.rb +0 -50
  1019. data/packages/core/test/lib/facet/module/test_modspace.rb +0 -27
  1020. data/packages/core/test/lib/facet/module/test_namespace.rb +0 -33
  1021. data/packages/core/test/lib/facet/module/test_nesting.rb +0 -36
  1022. data/packages/core/test/lib/facet/module/test_redef.rb +0 -30
  1023. data/packages/core/test/lib/facet/module/test_redefine_method.rb +0 -30
  1024. data/packages/core/test/lib/facet/module/test_redirect.rb +0 -30
  1025. data/packages/core/test/lib/facet/module/test_redirect_method.rb +0 -30
  1026. data/packages/core/test/lib/facet/module/test_remove.rb +0 -30
  1027. data/packages/core/test/lib/facet/module/test_rename.rb +0 -31
  1028. data/packages/core/test/lib/facet/module/test_rename_method.rb +0 -31
  1029. data/packages/core/test/lib/facet/module/test_revisal.rb +0 -35
  1030. data/packages/core/test/lib/facet/module/test_shadow_method.rb +0 -30
  1031. data/packages/core/test/lib/facet/module/test_sort_on.rb +0 -42
  1032. data/packages/core/test/lib/facet/module/test_undef.rb +0 -30
  1033. data/packages/core/test/lib/facet/module/test_wrap.rb +0 -30
  1034. data/packages/core/test/lib/facet/module/test_wrap_method.rb +0 -30
  1035. data/packages/core/test/lib/facet/nilclass/test_empty.rb +0 -26
  1036. data/packages/core/test/lib/facet/nilclass/test_include.rb +0 -26
  1037. data/packages/core/test/lib/facet/nilclass/test_op_fetch.rb +0 -28
  1038. data/packages/core/test/lib/facet/nilclass/test_size.rb +0 -30
  1039. data/packages/core/test/lib/facet/nilclass/test_to_f.rb +0 -26
  1040. data/packages/core/test/lib/facet/nilclass/test_to_h.rb +0 -26
  1041. data/packages/core/test/lib/facet/numeric/test_ceil_multiple.rb +0 -31
  1042. data/packages/core/test/lib/facet/numeric/test_succ.rb +0 -40
  1043. data/packages/core/test/lib/facet/numeric/test_to_b.rb +0 -27
  1044. data/packages/core/test/lib/facet/ostruct/test___merge__.rb +0 -38
  1045. data/packages/core/test/lib/facet/ostruct/test___update__.rb +0 -29
  1046. data/packages/core/test/lib/facet/ostruct/test_op_fetch.rb +0 -27
  1047. data/packages/core/test/lib/facet/ostruct/test_op_store.rb +0 -28
  1048. data/packages/core/test/lib/facet/proc/test_compose.rb +0 -36
  1049. data/packages/core/test/lib/facet/proc/test_to_method.rb +0 -31
  1050. data/packages/core/test/lib/facet/range/test_to_r.rb +0 -27
  1051. data/packages/core/test/lib/facet/range/test_to_range.rb +0 -27
  1052. data/packages/core/test/lib/facet/range/test_umbrella.rb +0 -34
  1053. data/packages/core/test/lib/facet/range/test_within.rb +0 -29
  1054. data/packages/core/test/lib/facet/regexp/test_arity.rb +0 -33
  1055. data/packages/core/test/lib/facet/regexp/test_to_re.rb +0 -27
  1056. data/packages/core/test/lib/facet/regexp/test_to_regexp.rb +0 -27
  1057. data/packages/core/test/lib/facet/string/self/test_interpolate.rb +0 -27
  1058. data/packages/core/test/lib/facet/string/self/test_patterns.rb +0 -28
  1059. data/packages/core/test/lib/facet/string/self/test_rand_letter.rb +0 -26
  1060. data/packages/core/test/lib/facet/string/test_align_center.rb +0 -34
  1061. data/packages/core/test/lib/facet/string/test_at_rand.rb +0 -35
  1062. data/packages/core/test/lib/facet/string/test_basename.rb +0 -41
  1063. data/packages/core/test/lib/facet/string/test_blank.rb +0 -27
  1064. data/packages/core/test/lib/facet/string/test_bracket.rb +0 -49
  1065. data/packages/core/test/lib/facet/string/test_camelcase.rb +0 -39
  1066. data/packages/core/test/lib/facet/string/test_camelize.rb +0 -26
  1067. data/packages/core/test/lib/facet/string/test_capitalized.rb +0 -26
  1068. data/packages/core/test/lib/facet/string/test_chars.rb +0 -27
  1069. data/packages/core/test/lib/facet/string/test_cmp.rb +0 -30
  1070. data/packages/core/test/lib/facet/string/test_demodulize.rb +0 -38
  1071. data/packages/core/test/lib/facet/string/test_downcase.rb +0 -26
  1072. data/packages/core/test/lib/facet/string/test_dresner.rb +0 -32
  1073. data/packages/core/test/lib/facet/string/test_each_char.rb +0 -29
  1074. data/packages/core/test/lib/facet/string/test_each_word.rb +0 -29
  1075. data/packages/core/test/lib/facet/string/test_first.rb +0 -43
  1076. data/packages/core/test/lib/facet/string/test_fold.rb +0 -34
  1077. data/packages/core/test/lib/facet/string/test_frequency.rb +0 -28
  1078. data/packages/core/test/lib/facet/string/test_humanize.rb +0 -26
  1079. data/packages/core/test/lib/facet/string/test_indent.rb +0 -40
  1080. data/packages/core/test/lib/facet/string/test_index_all.rb +0 -26
  1081. data/packages/core/test/lib/facet/string/test_last.rb +0 -46
  1082. data/packages/core/test/lib/facet/string/test_line_wrap.rb +0 -27
  1083. data/packages/core/test/lib/facet/string/test_lines.rb +0 -26
  1084. data/packages/core/test/lib/facet/string/test_lowercase.rb +0 -26
  1085. data/packages/core/test/lib/facet/string/test_margin.rb +0 -117
  1086. data/packages/core/test/lib/facet/string/test_mscan.rb +0 -30
  1087. data/packages/core/test/lib/facet/string/test_natcmp.rb +0 -30
  1088. data/packages/core/test/lib/facet/string/test_nchar.rb +0 -29
  1089. data/packages/core/test/lib/facet/string/test_pop.rb +0 -47
  1090. data/packages/core/test/lib/facet/string/test_probability.rb +0 -28
  1091. data/packages/core/test/lib/facet/string/test_push.rb +0 -40
  1092. data/packages/core/test/lib/facet/string/test_quote.rb +0 -49
  1093. data/packages/core/test/lib/facet/string/test_rand_byte.rb +0 -35
  1094. data/packages/core/test/lib/facet/string/test_rand_index.rb +0 -26
  1095. data/packages/core/test/lib/facet/string/test_range.rb +0 -27
  1096. data/packages/core/test/lib/facet/string/test_range_all.rb +0 -27
  1097. data/packages/core/test/lib/facet/string/test_range_of_line.rb +0 -28
  1098. data/packages/core/test/lib/facet/string/test_regesc.rb +0 -28
  1099. data/packages/core/test/lib/facet/string/test_shatter.rb +0 -29
  1100. data/packages/core/test/lib/facet/string/test_shift.rb +0 -40
  1101. data/packages/core/test/lib/facet/string/test_shuffle.rb +0 -27
  1102. data/packages/core/test/lib/facet/string/test_similarity.rb +0 -26
  1103. data/packages/core/test/lib/facet/string/test_singular.rb +0 -32
  1104. data/packages/core/test/lib/facet/string/test_slap.rb +0 -40
  1105. data/packages/core/test/lib/facet/string/test_soundex.rb +0 -41
  1106. data/packages/core/test/lib/facet/string/test_succ.rb +0 -29
  1107. data/packages/core/test/lib/facet/string/test_to_a.rb +0 -27
  1108. data/packages/core/test/lib/facet/string/test_to_arr.rb +0 -26
  1109. data/packages/core/test/lib/facet/string/test_to_b.rb +0 -41
  1110. data/packages/core/test/lib/facet/string/test_to_const.rb +0 -28
  1111. data/packages/core/test/lib/facet/string/test_to_date.rb +0 -30
  1112. data/packages/core/test/lib/facet/string/test_to_proc.rb +0 -33
  1113. data/packages/core/test/lib/facet/string/test_to_re.rb +0 -28
  1114. data/packages/core/test/lib/facet/string/test_to_time.rb +0 -30
  1115. data/packages/core/test/lib/facet/string/test_unix_crypt.rb +0 -30
  1116. data/packages/core/test/lib/facet/string/test_unpack.rb +0 -34
  1117. data/packages/core/test/lib/facet/string/test_unshift.rb +0 -39
  1118. data/packages/core/test/lib/facet/string/test_upcase.rb +0 -30
  1119. data/packages/core/test/lib/facet/string/test_whitespace.rb +0 -27
  1120. data/packages/core/test/lib/facet/string/test_word_filter.rb +0 -34
  1121. data/packages/core/test/lib/facet/string/test_word_wrap.rb +0 -51
  1122. data/packages/core/test/lib/facet/string/test_words.rb +0 -37
  1123. data/packages/core/test/lib/facet/symbol/test_camelcase.rb +0 -26
  1124. data/packages/core/test/lib/facet/symbol/test_camelize.rb +0 -27
  1125. data/packages/core/test/lib/facet/symbol/test_capitalize.rb +0 -26
  1126. data/packages/core/test/lib/facet/symbol/test_capitalized.rb +0 -27
  1127. data/packages/core/test/lib/facet/symbol/test_downcase.rb +0 -27
  1128. data/packages/core/test/lib/facet/symbol/test_not.rb +0 -29
  1129. data/packages/core/test/lib/facet/symbol/test_pad.rb +0 -27
  1130. data/packages/core/test/lib/facet/symbol/test_succ.rb +0 -28
  1131. data/packages/core/test/lib/facet/symbol/test_to_const.rb +0 -28
  1132. data/packages/core/test/lib/facet/symbol/test_to_proc.rb +0 -27
  1133. data/packages/core/test/lib/facet/symbol/test_to_str.rb +0 -28
  1134. data/packages/core/test/lib/facet/symbol/test_underscore.rb +0 -26
  1135. data/packages/core/test/lib/facet/symbol/test_upcase.rb +0 -27
  1136. data/packages/core/test/lib/facet/time/test_change.rb +0 -33
  1137. data/packages/core/test/lib/facet/time/test_elapse.rb +0 -27
  1138. data/packages/core/test/lib/facet/time/test_stamp.rb +0 -31
  1139. data/packages/core/test/lib/facet/time/test_to_date.rb +0 -31
  1140. data/packages/core/test/lib/facet/time/test_to_s.rb +0 -31
  1141. data/packages/core/test/lib/facet/time/test_to_time.rb +0 -31
  1142. data/packages/more/ProjectInfo +0 -42
  1143. data/packages/more/README +0 -131
  1144. data/packages/more/TODO +0 -30
  1145. data/packages/more/bench/b_calls.rb +0 -74
  1146. data/packages/more/bench/b_harray.rb +0 -49
  1147. data/packages/more/bench/b_pathname.rb +0 -24
  1148. data/packages/more/bench/b_range.rb +0 -64
  1149. data/packages/more/bench/return-bench.rb +0 -56
  1150. data/packages/more/data/facets/units/binary/base.yaml +0 -12
  1151. data/packages/more/data/facets/units/binary/extra.yaml +0 -8
  1152. data/packages/more/data/facets/units/cex.yaml +0 -7
  1153. data/packages/more/data/facets/units/currency/base.yaml +0 -268
  1154. data/packages/more/data/facets/units/default.yaml +0 -22
  1155. data/packages/more/data/facets/units/dump_yaml.rb +0 -309
  1156. data/packages/more/data/facets/units/si/base.yaml +0 -36
  1157. data/packages/more/data/facets/units/si/derived.yaml +0 -133
  1158. data/packages/more/data/facets/units/si/extra.yaml +0 -107
  1159. data/packages/more/data/facets/units/standard.yaml +0 -5
  1160. data/packages/more/data/facets/units/uk.yaml +0 -16
  1161. data/packages/more/data/facets/units/uk/base.yaml +0 -107
  1162. data/packages/more/data/facets/units/us.yaml +0 -16
  1163. data/packages/more/data/facets/units/us/base.yaml +0 -112
  1164. data/packages/more/data/facets/units/xmethods/cached.yaml +0 -83
  1165. data/packages/more/data/facets/units/xmethods/mapping.yaml +0 -85
  1166. data/packages/more/demo/ansicolor/cdiff.rb +0 -20
  1167. data/packages/more/demo/ansicolor/example.rb +0 -82
  1168. data/packages/more/demo/demo_annotation.rb +0 -22
  1169. data/packages/more/demo/io-reactor/chatserver.rb +0 -347
  1170. data/packages/more/demo/lisp/game.rb +0 -47
  1171. data/packages/more/doc/tagiter.html +0 -145
  1172. data/packages/more/info/ProjectInfo.annotation +0 -46
  1173. data/packages/more/info/ProjectInfo.ansicode +0 -38
  1174. data/packages/more/info/ProjectInfo.asociation +0 -34
  1175. data/packages/more/info/ProjectInfo.basicobject +0 -36
  1176. data/packages/more/info/ProjectInfo.bbcode +0 -34
  1177. data/packages/more/info/ProjectInfo.binaryreader +0 -35
  1178. data/packages/more/info/ProjectInfo.bitmask +0 -33
  1179. data/packages/more/info/ProjectInfo.classinherit +0 -36
  1180. data/packages/more/info/ProjectInfo.classmethods +0 -36
  1181. data/packages/more/info/ProjectInfo.cloneable +0 -33
  1182. data/packages/more/info/ProjectInfo.consoleapp +0 -35
  1183. data/packages/more/info/ProjectInfo.coroutine +0 -37
  1184. data/packages/more/info/ProjectInfo.crypt +0 -33
  1185. data/packages/more/info/ProjectInfo.dictionary +0 -40
  1186. data/packages/more/info/ProjectInfo.downloader +0 -37
  1187. data/packages/more/info/ProjectInfo.enumerablepass +0 -35
  1188. data/packages/more/info/ProjectInfo.expirable +0 -37
  1189. data/packages/more/info/ProjectInfo.floatstring +0 -35
  1190. data/packages/more/info/ProjectInfo.functor +0 -40
  1191. data/packages/more/info/ProjectInfo.heap +0 -33
  1192. data/packages/more/info/ProjectInfo.inheritor +0 -36
  1193. data/packages/more/info/ProjectInfo.interval +0 -36
  1194. data/packages/more/info/ProjectInfo.lisp +0 -38
  1195. data/packages/more/info/ProjectInfo.lrucache +0 -34
  1196. data/packages/more/info/ProjectInfo.mathconstants +0 -41
  1197. data/packages/more/info/ProjectInfo.methodprobe +0 -38
  1198. data/packages/more/info/ProjectInfo.mock +0 -34
  1199. data/packages/more/info/ProjectInfo.multiton +0 -36
  1200. data/packages/more/info/ProjectInfo.nackclass +0 -33
  1201. data/packages/more/info/ProjectInfo.nilcomparable +0 -35
  1202. data/packages/more/info/ProjectInfo.nullclass +0 -35
  1203. data/packages/more/info/ProjectInfo.oone +0 -37
  1204. data/packages/more/info/ProjectInfo.openobject +0 -39
  1205. data/packages/more/info/ProjectInfo.paramix +0 -38
  1206. data/packages/more/info/ProjectInfo.pool +0 -33
  1207. data/packages/more/info/ProjectInfo.progressbar +0 -37
  1208. data/packages/more/info/ProjectInfo.reference +0 -36
  1209. data/packages/more/info/ProjectInfo.semaphore +0 -36
  1210. data/packages/more/info/ProjectInfo.stateparser +0 -39
  1211. data/packages/more/info/ProjectInfo.statichash +0 -33
  1212. data/packages/more/info/ProjectInfo.system +0 -34
  1213. data/packages/more/info/ProjectInfo.tagiterator +0 -36
  1214. data/packages/more/info/ProjectInfo.timer +0 -35
  1215. data/packages/more/info/ProjectInfo.tracepoint +0 -37
  1216. data/packages/more/info/ProjectInfo.tuple +0 -36
  1217. data/packages/more/info/ProjectInfo.uniheritable +0 -34
  1218. data/packages/more/info/ProjectInfo.units +0 -34
  1219. data/packages/more/info/ProjectInfo.yamlstruct +0 -34
  1220. data/packages/more/lib/facet/annotation.rb +0 -580
  1221. data/packages/more/lib/facet/ansicode.rb +0 -313
  1222. data/packages/more/lib/facet/association.rb +0 -156
  1223. data/packages/more/lib/facet/basicobject.rb +0 -135
  1224. data/packages/more/lib/facet/bbcode.rb +0 -390
  1225. data/packages/more/lib/facet/binaryreader.rb +0 -246
  1226. data/packages/more/lib/facet/bitmask.rb +0 -112
  1227. data/packages/more/lib/facet/bytes.rb +0 -212
  1228. data/packages/more/lib/facet/classinherit.rb +0 -216
  1229. data/packages/more/lib/facet/classmethods.rb +0 -219
  1230. data/packages/more/lib/facet/cloneable.rb +0 -55
  1231. data/packages/more/lib/facet/consoleapp.rb +0 -123
  1232. data/packages/more/lib/facet/coroutine.rb +0 -172
  1233. data/packages/more/lib/facet/crypt.rb +0 -180
  1234. data/packages/more/lib/facet/dictionary.rb +0 -436
  1235. data/packages/more/lib/facet/downloader.rb +0 -273
  1236. data/packages/more/lib/facet/enumerablepass.rb +0 -285
  1237. data/packages/more/lib/facet/expirable.rb +0 -87
  1238. data/packages/more/lib/facet/floatstring.rb +0 -179
  1239. data/packages/more/lib/facet/functor.rb +0 -98
  1240. data/packages/more/lib/facet/heap.rb +0 -226
  1241. data/packages/more/lib/facet/inheritor.rb +0 -239
  1242. data/packages/more/lib/facet/interval.rb +0 -426
  1243. data/packages/more/lib/facet/ioredirect.rb +0 -130
  1244. data/packages/more/lib/facet/lisp.rb +0 -387
  1245. data/packages/more/lib/facet/lisp_format.rb +0 -1843
  1246. data/packages/more/lib/facet/lrucache.rb +0 -183
  1247. data/packages/more/lib/facet/mathconstants.rb +0 -320
  1248. data/packages/more/lib/facet/methodprobe.rb +0 -215
  1249. data/packages/more/lib/facet/mock.rb +0 -233
  1250. data/packages/more/lib/facet/multipliers.rb +0 -192
  1251. data/packages/more/lib/facet/multiton.rb +0 -359
  1252. data/packages/more/lib/facet/nackclass.rb +0 -162
  1253. data/packages/more/lib/facet/nilcomparable.rb +0 -133
  1254. data/packages/more/lib/facet/nullclass.rb +0 -68
  1255. data/packages/more/lib/facet/one.rb +0 -109
  1256. data/packages/more/lib/facet/openobject.rb +0 -220
  1257. data/packages/more/lib/facet/ormsupport.rb +0 -233
  1258. data/packages/more/lib/facet/paramix.rb +0 -243
  1259. data/packages/more/lib/facet/pool.rb +0 -98
  1260. data/packages/more/lib/facet/preinitialize.rb +0 -152
  1261. data/packages/more/lib/facet/progressbar.rb +0 -227
  1262. data/packages/more/lib/facet/quaternion.rb +0 -527
  1263. data/packages/more/lib/facet/reference.rb +0 -83
  1264. data/packages/more/lib/facet/semaphore.rb +0 -103
  1265. data/packages/more/lib/facet/snapshot.rb +0 -190
  1266. data/packages/more/lib/facet/stateparser.rb +0 -579
  1267. data/packages/more/lib/facet/statichash.rb +0 -87
  1268. data/packages/more/lib/facet/syncarray.rb +0 -144
  1269. data/packages/more/lib/facet/synchash.rb +0 -173
  1270. data/packages/more/lib/facet/system.rb +0 -169
  1271. data/packages/more/lib/facet/tagiterator.rb +0 -387
  1272. data/packages/more/lib/facet/timer.rb +0 -307
  1273. data/packages/more/lib/facet/times.rb +0 -327
  1274. data/packages/more/lib/facet/tracepoint.rb +0 -185
  1275. data/packages/more/lib/facet/tuple.rb +0 -170
  1276. data/packages/more/lib/facet/typecast.rb +0 -259
  1277. data/packages/more/lib/facet/uninheritable.rb +0 -92
  1278. data/packages/more/lib/facet/units.rb +0 -926
  1279. data/packages/more/lib/facet/yamlstruct.rb +0 -90
  1280. data/packages/more/setup.rb +0 -1551
  1281. data/packages/more/test/lib/facet/test_annotation.rb +0 -217
  1282. data/packages/more/test/lib/facet/test_ansicode.rb +0 -36
  1283. data/packages/more/test/lib/facet/test_association.rb +0 -46
  1284. data/packages/more/test/lib/facet/test_bbcode.rb +0 -34
  1285. data/packages/more/test/lib/facet/test_bitmask.rb +0 -47
  1286. data/packages/more/test/lib/facet/test_bytes.rb +0 -84
  1287. data/packages/more/test/lib/facet/test_classinherit.rb +0 -65
  1288. data/packages/more/test/lib/facet/test_coroutine.rb +0 -60
  1289. data/packages/more/test/lib/facet/test_crypt.rb +0 -46
  1290. data/packages/more/test/lib/facet/test_dictionary.rb +0 -97
  1291. data/packages/more/test/lib/facet/test_enumerablepass.rb +0 -86
  1292. data/packages/more/test/lib/facet/test_floatstring.rb +0 -36
  1293. data/packages/more/test/lib/facet/test_functor.rb +0 -39
  1294. data/packages/more/test/lib/facet/test_inheritor.rb +0 -155
  1295. data/packages/more/test/lib/facet/test_interval.rb +0 -119
  1296. data/packages/more/test/lib/facet/test_lisp-format.rb +0 -37
  1297. data/packages/more/test/lib/facet/test_lisp.rb +0 -47
  1298. data/packages/more/test/lib/facet/test_lrucache.rb +0 -25
  1299. data/packages/more/test/lib/facet/test_mathconstants.rb +0 -18
  1300. data/packages/more/test/lib/facet/test_methodprobe.rb +0 -53
  1301. data/packages/more/test/lib/facet/test_multipliers.rb +0 -114
  1302. data/packages/more/test/lib/facet/test_multiton.rb +0 -200
  1303. data/packages/more/test/lib/facet/test_nackclass.rb +0 -45
  1304. data/packages/more/test/lib/facet/test_nilcomparable.rb +0 -43
  1305. data/packages/more/test/lib/facet/test_openobject.rb +0 -66
  1306. data/packages/more/test/lib/facet/test_paramix.rb +0 -86
  1307. data/packages/more/test/lib/facet/test_preinitialize.rb +0 -49
  1308. data/packages/more/test/lib/facet/test_snapshot.rb +0 -34
  1309. data/packages/more/test/lib/facet/test_statichash.rb +0 -31
  1310. data/packages/more/test/lib/facet/test_syncarray.rb +0 -28
  1311. data/packages/more/test/lib/facet/test_synchash.rb +0 -28
  1312. data/packages/more/test/lib/facet/test_tagiterator.rb +0 -93
  1313. data/packages/more/test/lib/facet/test_time.rb +0 -73
  1314. data/packages/more/test/lib/facet/test_timer.rb +0 -66
  1315. data/packages/more/test/lib/facet/test_tuple.rb +0 -32
  1316. data/packages/more/test/lib/facet/test_uninheritable.rb +0 -42
  1317. data/packages/more/test/lib/facet/test_units.rb +0 -104
  1318. data/packages/more/test/lib/facet/test_yamlstruct.rb +0 -37
@@ -1,926 +0,0 @@
1
- #--
2
- # Units
3
- #
4
- # Copyright (c) 2005 Peter Vanbroekhoven & Thomas Sawyer
5
- #
6
- # Ruby License
7
- #
8
- # This module is free software. You may use, modify, and/or redistribute this
9
- # software under the same terms as Ruby.
10
- #
11
- # This program is distributed in the hope that it will be useful, but WITHOUT
12
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13
- # FOR A PARTICULAR PURPOSE.
14
- #
15
- # ==========================================================================
16
- # Revision History ::
17
- # --------------------------------------------------------------------------
18
- # 2005.10.01 peter Finished
19
- # 2005.08.01 trans Started
20
- # ==========================================================================
21
- #
22
- #++
23
-
24
- # :title: Units
25
- #
26
- # This is a very extensive SI units system.
27
- #
28
- # == Usage
29
- #
30
- # Here are some examples of usage.
31
- #
32
- # 1.bit/s + 8.bytes/s
33
- # (1.bit/s).to(byte/s)
34
- # 1.mile.to(feet)
35
- # 1.acre.to(yd**2)
36
- # 1.acre.to(sq_yd)
37
- # 1.gallon.to(self.L)
38
- # 1.lb.to(kg)
39
- # 1.m.s.to(m.s)
40
- # 1.sq_mi.to(km**2)
41
- # 1.mile.to(km)
42
- # 1.usd.to(twd)
43
- #
44
- # == Author(s)
45
- #
46
- # * Peter Vanbroekhoven
47
- # * Thomas Sawyer
48
- #
49
-
50
- require 'rbconfig'
51
- require 'soap/wsdlDriver'
52
- require 'yaml'
53
-
54
- # The namespace for all unit related classes. Mixing this in has the additional effect
55
- # of making Units.with_unit_converter available without the <code>Units.</code> prefix,
56
- # as well as the shortcuts for creating Units (see Units#method_missing).
57
- module Units
58
-
59
- def method_missing(m, *args, &blk)
60
- if args.length == 1
61
- args[0] = Units::Converter.converter(args[0]) if not args[0].is_a? Units::Converter
62
- return Units::Unit.new({m => 1}, args[0]) if args[0].registered?(m)
63
- elsif Units::Converter.current.registered?(m)
64
- raise ArgumentError, "Wrong number of arguments" if args.length != 0
65
- return Units::Unit.new({m => 1}, Units::Converter.current)
66
- end
67
- super
68
- end
69
-
70
- # Executes the block with the current Converter changed to
71
- # the given Converter. This allows to temporarily change the
72
- # Converter used by default.
73
- #
74
- # Example:
75
- #
76
- # with_unit_converter(:uk) {
77
- # puts 1.cwt.to(lb) # => 112.0 lb
78
- # }
79
- #
80
- # with_unit_converter(:us) {
81
- # puts 1.cwt.to(lb) # => 100.0 lb
82
- # }
83
- #
84
- # See also Converter.current.
85
- def with_unit_converter(name, &blk) # :yields:
86
- Units::Converter.with_converter(name, &blk)
87
- end
88
-
89
- module_function :with_unit_converter
90
-
91
- # This class represents a Unit. A Unit uses a given Converter with
92
- # a number of registered Units in which it can be expressed.
93
- # A Unit is the product of the powers of other Units. In principle, these
94
- # need not be integer powers, but this may cause problems with rounding.
95
- # The following code for example returns +false+:
96
- # Unit.new(:m => 0.1) * Unit.new(:m => 0.2) == Unit.new(:m => 0.3)
97
- #
98
- # Units can be multiplied and divided, or raised to a given power.
99
- # This can only be done when both units use the same Converter.
100
- # As an extra, 1 can be divided by a Unit.
101
- #
102
- # Examples:
103
- #
104
- # Unit.new(:mi => 1, :s => -1) ** 2 # => mi**2/s**2
105
- # Unit.new(:mi => 1, :s => -1) * Unit.new(:s => 1, :usd => -1) # => mi/usd
106
- # Unit.new(:mi => 1, :s => -1, Converter.converter(:uk)) *
107
- # Unit.new(:s => 1, :usd => -1, Converter.converter(:us)) # => TypeError
108
- # 1 / Unit.new(:mi => 1, :s => -1) # => s/mi
109
- class Unit
110
-
111
- attr_reader :units, :converter
112
-
113
- # Creates a new (composite) Unit.
114
- # It is passed a hash of the form <code>{:unit => exponent}</code>, and the
115
- # Converter to use.
116
- #
117
- # Examples:
118
- #
119
- # Unit.new(:m => 1, :s => -1, Converter.converter(:uk)) # => m/s
120
- # Unit.new(:mi => 1, :s => -2) # => mi/s**2
121
- #
122
- # See also Converter, Converter.converter
123
- def initialize(units = {}, converter = Units::Converter.current)
124
- @units, @converter = {}, converter
125
- units.each_pair { |k, v| @units[k.to_sym] = v }
126
- check_units
127
- end
128
-
129
- # Raises to the given power.
130
- def **(p)
131
- result = {}
132
- @units.each_pair do |u, e|
133
- result[u] = e * p
134
- end
135
- Units::Unit.new(result, @converter)
136
- end
137
-
138
- # Multiplies with the given Unit.
139
- def *(other)
140
- do_op(:*, :+, other)
141
- end
142
-
143
- # Divides by the given Unit.
144
- def /(other)
145
- do_op(:/, :-, other)
146
- end
147
-
148
- # Returns +true+ iff this Unit has all exponents equal to 0.
149
- def unitless?
150
- @units.empty?
151
- end
152
-
153
- def coerce(other) # :nodoc:
154
- return [self, Units::Unit.new({}, converter)] if other == 1
155
- raise TypeError, "incompatible converters" if converter != other.converter
156
- converter.coerce_units(self, other)
157
- end
158
-
159
- # Returns +true+ iff the two Units are equals, <i>i.e.,</i> iff they have
160
- # the same exponent for all units, and they both use the same Converter.
161
- def ==(other)
162
- other.is_a?(Units::Unit) && other.units == units && other.converter == converter
163
- end
164
-
165
- # Returns +true+ iff this Unit is compatible with the given
166
- # Unit. This is less strict than equality because for example hours are
167
- # compatible with seconds ("we can add them"), but hours are not seconds.
168
- def compatible_with?(other)
169
- return false if converter != other.converter
170
- conv1, conv2 = converter.coerce_units(self, other)
171
- conv1.units == conv2.units
172
- end
173
-
174
- # Returns a human readable string representation.
175
- def to_s
176
- numerator = ""
177
- denominator = ""
178
- @units.each_pair do |u, e|
179
- (e > 0 ? numerator : denominator) << " #{u.to_s}#{"**#{e.abs}" if e.abs != 1}"
180
- end
181
- "#{numerator.lstrip}#{"/" + denominator.lstrip if not denominator.empty?}"
182
- end
183
-
184
- alias inspect to_s
185
-
186
- def method_missing(m, *args, &blk)
187
- if converter.registered?(m)
188
- raise ArgumentError, "Wrong number of arguments" if args.length != 0
189
- return Units::Unit.new({m => 1}, converter) * self
190
- end
191
- super
192
- end
193
-
194
- private
195
-
196
- def check_units
197
- @units.keys.each do |unit|
198
- raise ArgumentError, "unit #{unit.to_s.dump} not registered" if not @converter.registered? unit
199
- @units.delete(unit) if @units[unit] == 0
200
- end
201
- end
202
-
203
- def do_op(op, dual_op, other)
204
- raise TypeError, "incompatible converters for #{op}" if converter != other.converter
205
- result = @units.dup
206
- other.units.each_pair do |u, e|
207
- result[u] = 0 if not result[u]
208
- result[u] = result[u].send(dual_op, e)
209
- end
210
- Units::Unit.new(result, @converter)
211
- end
212
-
213
- end
214
-
215
- # This class represents a Value with a numeric value and a Unit.
216
- # The numeric value can be any Numeric, though it is not recommended
217
- # to use Values.
218
- #
219
- # A Value can be added to, subtracted from and multiplied with another value,
220
- # though only when both Values are using the same Converter. While multiplication
221
- # is always possible, adding or subtracting values with incompatible Units
222
- # results in a TypeError. When two Units are compatible but not the same,
223
- # the Value with the larger of the Units is converted to the smaller of the Units.
224
- # For example adding 100 seconds and 1 minute, the latter is converted to 60 seconds
225
- # because a second is smaller than a minute. The result is 160 seconds.
226
- class Value < Numeric
227
-
228
- # The numeric value of this Value.
229
- attr_reader :value
230
- # The Unit of this value.
231
- attr_reader :unit
232
-
233
- # Creates a new Value with the given numeric value and the given unit.
234
- # Simply returns the given value if the given unit is valueless,
235
- # <i>i.e.,</i> when <code>unit.unitless?</code> is true.
236
- def self.new(value, unit)
237
- return value if unit.unitless?
238
- super
239
- end
240
-
241
- def initialize(value, unit) # :nodoc:
242
- @value, @unit = value, unit
243
- end
244
-
245
- # Returns the Converter used by this Value's Unit.
246
- # Equivalent to <code>unit.converter</code>.
247
- def converter
248
- unit.converter
249
- end
250
-
251
- def *(other) # :nodoc:
252
- do_multiplicative_op(:*, other)
253
- end
254
-
255
- def /(other) # :nodoc:
256
- do_multiplicative_op(:/, other)
257
- end
258
-
259
- def +(other) # :nodoc:
260
- do_additive_op(:+, other)
261
- end
262
-
263
- def -(other) # :nodoc:
264
- do_additive_op(:-, other)
265
- end
266
-
267
- def ==(other) # :nodoc:
268
- (self - other).value == 0.0
269
- end
270
-
271
- # Converts this Value to the given Unit.
272
- # This only works if the Converters used by this Value's Unit
273
- # and the given Unit are the same. It obviously fails if the
274
- # Units are not compatible (can't add apples and oranges).
275
- def to(to_unit)
276
- conv1, conv2 = unit.coerce(to_unit)
277
- raise TypeError, "incompatible units for operation" if conv1.units != conv2.units
278
- mult = conv1.multiplier / conv2.multiplier
279
- Value.new(value * mult, to_unit)
280
- end
281
-
282
- def coerce(other) # :nodoc:
283
- [self, Value.new(other, Units::Unit.new({}, @unit.converter))]
284
- end
285
-
286
- # Returns a human readable string representation.
287
- def to_s
288
- "#{@value} #{@unit}"
289
- end
290
-
291
- alias inspect to_s
292
-
293
- def method_missing(m, *args, &blk)
294
- if self.converter.registered?(m)
295
- raise ArgumentError, "Wrong number of arguments" if args.length != 0
296
- return self * Value.new(1, Units::Unit.new({m => 1}, self.converter))
297
- end
298
- super
299
- end
300
-
301
- private
302
-
303
- def do_additive_op(op, other)
304
- if other.is_a? Value
305
- conv1, conv2 = unit.coerce(other.unit)
306
- raise TypeError, "incompatible units for #{op}" if conv1.units != conv2.units
307
- mult = conv2.multiplier / conv1.multiplier
308
- if mult > 1
309
- Value.new(value.send(op, other.value * mult), unit)
310
- else
311
- Value.new(other.value.send(op, value * mult), other.unit)
312
- end
313
- else
314
- raise TypeError, "incompatible operands for #{op}"
315
- end
316
- end
317
-
318
- def do_multiplicative_op(op, other)
319
- if other.is_a? Value
320
- Value.new(value.send(op, other.value), unit.send(op, other.unit))
321
- elsif other.is_a? Units::Unit
322
- Value.new(value, unit.send(op, other))
323
- else
324
- Value.new(value.send(op, other), unit)
325
- end
326
- end
327
-
328
- end
329
-
330
- # This class handles all conversions between Units.
331
- #
332
- # There are two kinds of Units; those that are not expressed as a function
333
- # of other Units --called base units-- and those that are expressed
334
- # as a function of other Units --called derived units. The former kind is
335
- # registered without specifying how it depends on other Units, while the latter
336
- # kind is registered with doing so.
337
- #
338
- # This class also registers a list of Converters that are generally useable.
339
- # The default Converter which is used when none is specified, can be retrieved
340
- # with Converter.current. Converters can be registered with Converter.register.
341
- #
342
- # Converters can be loaded from YAML. This allows Converters to be specified in
343
- # configuration files.
344
- class Converter
345
-
346
- # Encapsulates a service for retrieving exchange rates.
347
- # This is used by Converter.register_currency.
348
- # An instance of this class behaves like a Numeric when used
349
- # in calculations. This class is used to look up exchange rates
350
- # lazily.
351
- #
352
- # This class is not supposed to be instantiated by itself. Instead a
353
- # subclass should be created that defines the method +get_rate+.
354
- # The only subclass provided is currently XMethods.
355
- #
356
- # To be found automatically from YAML files, exchange services should
357
- # be located under Units::Converter::ExchangeRate.
358
- class ExchangeRate
359
-
360
- def self.create_conversion(curr, converter) # :nodoc:
361
- {:unit => Units::Unit.new({%s{--base-currency--} => 1}, converter), :multiplier => self.new(curr)}
362
- end
363
-
364
- def initialize(curr) # :nodoc:
365
- @curr = curr
366
- end
367
-
368
- # This method should be overridden in subclasses to return the
369
- # exchange rate represented by this object. The unit in question
370
- # is available as a String in the instance variable <code>@curr</code>.
371
- # The rate should be calculated against an arbitrary but fixed base currency.
372
- # The rate should be such that the following would be true
373
- # 1 * curr = rate * base_curr
374
- # This function should return +nil+ if the currency is not supported by this
375
- # retrieval service. It should <em>not</em> raise an exception.
376
- def get_rate
377
- raise NoMethodError, "undefined method `get_rate' for #{to_s}:#{self.class}"
378
- end
379
-
380
- def value # :nodoc:
381
- @value ||= get_rate or raise TypeError, "currency not supported by current service: #{@curr.to_s.dump}"
382
- end
383
-
384
- def coerce(other) # :nodoc:
385
- [value, other]
386
- end
387
-
388
- def *(other) # :nodoc:
389
- value * other
390
- end
391
-
392
- def /(other) # :nodoc:
393
- value / other
394
- end
395
-
396
- def +(other) # :nodoc:
397
- value + other
398
- end
399
-
400
- def -(other) # :nodoc:
401
- value - other
402
- end
403
-
404
- def **(other) # :nodoc:
405
- value ** other
406
- end
407
-
408
- # Exchange rate retrieval service that uses a service from http://www.xmethods.com.
409
- # See http://rubyurl.com/7uq.
410
- class XMethods < ExchangeRate
411
-
412
- # This is the only method that a subclass of ExchangeRate
413
- # needs to implement. This is a good example to follow.
414
- def get_rate
415
- driver.getRate(country_mapping[@curr], country_mapping[base])
416
- rescue
417
- nil
418
- end
419
-
420
- private
421
-
422
- def data
423
- @@data ||= YAML.load_file(File.join(Units::Config::DATADIR, 'xmethods', 'mapping.yaml'))
424
- end
425
-
426
- def country_mapping
427
- @@country_mapping ||= data[:mapping]
428
- end
429
-
430
- def base
431
- @@base ||= data[:base]
432
- end
433
-
434
- def driver
435
- @@driver ||= SOAP::WSDLDriverFactory.new("http://www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl").create_rpc_driver #.createDriver
436
- end
437
-
438
- end
439
-
440
- # Cached values for the XMethods exchange rate service.
441
- class CachedXMethods < ExchangeRate
442
-
443
- # This is the only method that a subclass of ExchangeRate
444
- # needs to implement. This is a good example to follow.
445
- def get_rate
446
- data[@curr]
447
- end
448
-
449
- private
450
-
451
- def data
452
- @@data ||= YAML.load_file(File.join(Units::Config::DATADIR, 'xmethods', 'cached.yaml'))
453
- end
454
-
455
- end
456
-
457
- end
458
-
459
- Conversion = Struct.new(:units, :multiplier) # :nodoc:
460
-
461
- class Conversion # :nodoc:
462
-
463
- def **(p)
464
- Conversion.new(units ** p, multiplier ** p)
465
- end
466
-
467
- def *(m)
468
- Conversion.new(units * m.units, multiplier * m.multiplier)
469
- end
470
-
471
- def /(m)
472
- Conversion.new(units / m.units, multiplier / m.multiplier)
473
- end
474
-
475
- end
476
-
477
- # The prefixes used for SI units. See also Converter#register_si_unit.
478
- SI_PREFIXES = {
479
- 'yotta' => {:abbrev => 'Y', :multiplier => 1e24},
480
- 'zetta' => {:abbrev => 'Z', :multiplier => 1e21},
481
- 'exa' => {:abbrev => 'E', :multiplier => 1e18},
482
- 'peta' => {:abbrev => 'P', :multiplier => 1e14},
483
- 'tera' => {:abbrev => 'T', :multiplier => 1e12},
484
- 'giga' => {:abbrev => 'G', :multiplier => 1e9},
485
- 'mega' => {:abbrev => 'M', :multiplier => 1e6},
486
- 'kilo' => {:abbrev => 'k', :multiplier => 1e3},
487
- 'hecto' => {:abbrev => 'h', :multiplier => 1e2},
488
- 'deca' => {:abbrev => 'da', :multiplier => 1e1},
489
- 'deci' => {:abbrev => 'd', :multiplier => 1e-1},
490
- 'centi' => {:abbrev => 'c', :multiplier => 1e-2},
491
- 'milli' => {:abbrev => 'm', :multiplier => 1e-3},
492
- 'micro' => {:abbrev => 'u', :multiplier => 1e-6},
493
- 'nano' => {:abbrev => 'n', :multiplier => 1e-9},
494
- 'pico' => {:abbrev => 'p', :multiplier => 1e-12},
495
- 'femto' => {:abbrev => 'f', :multiplier => 1e-15},
496
- 'atto' => {:abbrev => 'a', :multiplier => 1e-18},
497
- 'zepto' => {:abbrev => 'z', :multiplier => 1e-21},
498
- 'yocto' => {:abbrev => 'y', :multiplier => 1e-24}
499
- }
500
-
501
- # The prefixes used for binary units. See also Converter#register_binary_unit.
502
- BINARY_PREFIXES = {
503
- 'yotta' => {:abbrev => 'Y', :multiplier => 1024.0 ** 8},
504
- 'zetta' => {:abbrev => 'Z', :multiplier => 1024.0 ** 7},
505
- 'exa' => {:abbrev => 'E', :multiplier => 1024.0 ** 6},
506
- 'peta' => {:abbrev => 'P', :multiplier => 1024.0 ** 5},
507
- 'tera' => {:abbrev => 'T', :multiplier => 1024.0 ** 4},
508
- 'giga' => {:abbrev => 'G', :multiplier => 1024.0 ** 3},
509
- 'mega' => {:abbrev => 'M', :multiplier => 1024.0 ** 2},
510
- 'kilo' => {:abbrev => 'k', :multiplier => 1024.0},
511
- }
512
-
513
- # The prefixes used for length units. See also Converter#register_length_unit.
514
- LENGTH_PREFIXES = {
515
- 'square_' => {:abbrev => 'sq_', :power => 2},
516
- 'cubic_' => {:abbrev => 'cu_', :power => 3}
517
- }
518
-
519
- # Creates a new Converter, where the data is loaded from the
520
- # file with the given file name.
521
- def self.from_yaml(file)
522
- Units::Converter.new {
523
- load_yaml(file)
524
- }
525
- end
526
-
527
- # Creates a new Converter. If a block is given,
528
- # it is executed in the newly created Converter's context.
529
- def initialize(&blk)
530
- @loaded_yaml = []
531
- @conversions = {}
532
- instance_eval(&blk) if blk
533
- end
534
-
535
- # Checks whether the unit with the given name is registered.
536
- # The name can be a symbol or a string.
537
- def registered?(unit)
538
- unit = unit.to_sym
539
- conversions(unit) != nil
540
- end
541
-
542
- # Returns the list of registered unit names as symbols.
543
- def registered_units
544
- @conversions.keys
545
- end
546
-
547
- # Registers a new Unit with the given name. The +data+ parameter
548
- # is a Hash with some extra parameters (can be Strings or Symbols):
549
- # +alias+:: Specifies possible aliases for the Unit.
550
- # +abbrev+:: Specifies possible abbreviations or symbols for the Unit.
551
- # The differences with aliases is that prefixes work differently;
552
- # see +register_si_unit+ and +register_binary_unit+.
553
- # +equals+:: If present, specifies how the Unit depends on other Units.
554
- # The value for this key can either be a Hash with +unit+ mapping to
555
- # a Unit and +multiplier+ mapping to a numeric multiplier, or
556
- # a String containing the multiplier, followed by a space, followed by
557
- # a representation of the Unit as returned by Unit#to_s.
558
- #
559
- # Examples:
560
- #
561
- # converter.register_unit(:pint, :alias => :pints, :abbrev => [:pt, :pts]))
562
- # converter.register_unit(:quart, 'alias' => :quarts, :abbrev => ['qt', :qts], :equals => '2.0 pt'))
563
- # converter.register_unit(:gallon, :alias => :gallons, :abbrev => :gal, 'equals' => {:unit => Unit.new('qt' => 1, converter), 'multiplier' => 4.0))
564
- #
565
- # Note that Symbols and Strings are generally exchangeable within this
566
- # library (internally they are converted to Symbols). The number one reason
567
- # for this is that String look better in YAML.
568
- #
569
- # See also +register_si_unit+, +register_binary_unit+, +register_length_unit+
570
- # and +register_currency+.
571
- def register_unit(name, data = {})
572
- unit, aliases, abbrevs = extract_data(name, data, :to_sym)
573
- conversion = data[:equals]
574
- conversion = decode_conversion(conversion) if conversion
575
- conversion = convert_conversion(conversion[:unit].units, conversion[:multiplier]) if conversion
576
- register_unit_internal(unit, conversion)
577
- conversion = convert_conversion({unit => 1}, 1) if not conversion
578
- (aliases + abbrevs).each do |u|
579
- register_unit_internal(u, conversion)
580
- end
581
- end
582
-
583
- # Registers a new SI unit. The Unit and its aliases are registered with
584
- # all available SI prefixes (see SI_PREFIXES) as well, while the
585
- # abbreviations are registered with the abbreviated version of the
586
- # prefixes.
587
- #
588
- # For the syntax of the options, see +register_unit+.
589
- def register_si_unit(unit, data = {})
590
- register_prefixed_unit(unit, SI_PREFIXES, data)
591
- end
592
-
593
- # Registers a new binary unit. The Unit and its aliases are registered with
594
- # all available binary prefixes (see BINARY_PREFIXES) as well, while the
595
- # abbreviations are registered with the abbreviated version of the
596
- # prefixes.
597
- #
598
- # For the syntax of the options, see +register_unit+.
599
- def register_binary_unit(unit, data = {})
600
- register_prefixed_unit(unit, BINARY_PREFIXES, data)
601
- end
602
-
603
- # Registers a new length unit. The Unit and its aliases are registered with
604
- # all available length prefixes (see LENGTH_PREFIXES) as well, while the
605
- # abbreviations are registered with the abbreviated version of the
606
- # prefixes.
607
- #
608
- # For the syntax of the options, see +register_unit+.
609
- def register_length_unit(unit, data = {})
610
- register_prefixed_unit(unit, LENGTH_PREFIXES, data)
611
- end
612
-
613
- # Registers a given currency, with a given servive to find the exchange
614
- # rate between the given currency and a given base currency. The service
615
- # should be a subclass of ExchangeRate. This is not strictly necessary,
616
- # but ExchangeRate handles all of the magic.
617
- def register_currency(curr, service = nil)
618
- service ||= Units::Config::DEFAULT_CURRENCY_SERVICE
619
- register_unit(curr, :equals => service.create_conversion(curr, self))
620
- end
621
-
622
- def coerce_units(unit1, unit2) # :nodoc:
623
- [convert_conversion(unit1.units), convert_conversion(unit2.units)]
624
- end
625
-
626
- def method_missing(m, *args, &blk)
627
- if registered?(m)
628
- raise ArgumentError, "Wrong number of arguments" if args.length != 0
629
- return Units::Unit.new({m => 1}, self)
630
- end
631
- super
632
- end
633
-
634
- # Loads data from the YAML file with the given name.
635
- # Returns +self+.
636
- def load_yaml(file)
637
- return if @loaded_yaml.include? file
638
- data = YAML.load_file(file)
639
- @loaded_yaml << file
640
- old_service = Thread.current['current_currency_exchange_service']
641
- data.each do |r|
642
- rule = {}
643
- r.each_pair do |k, v|
644
- rule[k.to_sym] = v
645
- end
646
- case rule[:type]
647
- when 'import'
648
- load_yaml(File.join(Units::Config::DATADIR, rule[:file] + '.yaml'))
649
- when 'si'
650
- register_si_unit(rule[:name], rule)
651
- when 'unit'
652
- register_unit(rule[:name], rule)
653
- when 'length'
654
- register_length_unit(rule[:name], rule)
655
- when 'binary'
656
- register_binary_unit(rule[:name], rule)
657
- when 'currency'
658
- register_currency(rule[:name], Thread.current['current_currency_exchange_service'])
659
- when 'service'
660
- begin
661
- Thread.current['current_currency_exchange_service'] = Units::Converter::ExchangeRate.const_get(rule[:name])
662
- rescue NameError
663
- raise NameError, "Exchange service not found: #{rule[:name].to_s.dump}"
664
- end
665
- else
666
- raise "unknown rule type #{rule[:type].to_s.dump}"
667
- end
668
- end
669
- Thread.current['current_currency_exchange_service'] = old_service
670
- self
671
- end
672
-
673
- # Returns the current Converter in the current Thread.
674
- # The default converter is the one returned by <code>converter(:default)</code>.
675
- # See also Units#with_converter and Converter.converter.
676
- def self.current
677
- Thread.current["current_unit_converter"] ||= converter(:default)
678
- end
679
-
680
- def self.with_converter(conv) # :nodoc:
681
- old_conv = Thread.current["current_unit_converter"]
682
- if conv.is_a? Units::Converter
683
- Thread.current["current_unit_converter"] = conv
684
- else
685
- Thread.current["current_unit_converter"] = converter(conv)
686
- end
687
- yield
688
- ensure
689
- Thread.current["current_unit_converter"] = old_conv
690
- end
691
-
692
- # Returns the converter with the given name.
693
- # This name can be a Symbol or a String.
694
- def self.converter(name)
695
- converters[name.to_sym] or raise ArgumentError, "No converter #{name.to_s.dump} found"
696
- end
697
-
698
- # Registers the given Converter under the given name.
699
- # This name can be a Symbol or a String.
700
- def self.register(name, converter)
701
- converters[name.to_sym] = converter
702
- end
703
-
704
- # Returns the list of names of registered converters.
705
- def self.registered_converters
706
- converters.keys
707
- end
708
-
709
- private
710
-
711
- def clean_eval(some_name_noone_uses)
712
- eval some_name_noone_uses, binding, __FILE__, __LINE__
713
- end
714
-
715
- def register_unit_internal(unit, conversion)
716
- raise "unit #{unit.to_s.dump} already registered with #{self}" if registered? unit
717
- @conversions[unit] = conversion || :none
718
- end
719
-
720
- def register_prefixed_unit(unit, prefixes, data = {})
721
- unit, aliases, abbrevs = extract_data(unit, data, :to_s)
722
- register_unit(unit, :equals => data[:equals], :alias => aliases, :abbrev => abbrevs)
723
- unit_sym = unit.to_sym
724
- prefixes.each_pair do |pre,info|
725
- abbrev = info[:abbrev]
726
- multiplier = info[:multiplier] || 1
727
- power = info[:power] || 1
728
- register_unit(pre + unit, :equals => {:unit => Units::Unit.new({unit_sym => power}, self), :multiplier => multiplier})
729
- aliases.each do |a|
730
- register_unit(pre + a, :equals => {:unit => Units::Unit.new({unit_sym => power}, self), :multiplier => multiplier})
731
- end
732
- abbrevs.each do |a|
733
- register_unit(abbrev + a, :equals => {:unit => Units::Unit.new({unit_sym => power}, self), :multiplier => multiplier})
734
- end
735
- end
736
- end
737
-
738
- def extract_data(unit, data, conv)
739
- sarray = proc do |k|
740
- list = data[k] || []
741
- list = [list] if not list.is_a? Array
742
- list.map { |a| a.send(conv) }
743
- end
744
- unit = unit.send(conv)
745
- return unit, sarray[:alias], sarray[:abbrev].select { |a| a != unit }
746
- end
747
-
748
- def decode_conversion(data)
749
- if not data.is_a? String
750
- return {:unit => data[:unit] || data['unit'],
751
- :multiplier => data[:multiplier] || data['multiplier']}
752
- end
753
- data.rstrip!
754
- if m = /^(\d+(\.\d+(?:[eE][-+]?\d+)?)?(?:\s+|$))?(.+)?$/.match(data)
755
- unit = m[3] ? clean_eval(m[3].gsub(/\b([A-Z]\w*|in)\b/, 'self.\1')) : Units::Unit.new({}, self)
756
- if m[1]
757
- multiplier = m[2] ? Float(m[1]) : Integer(m[1])
758
- {:unit => unit, :multiplier => multiplier}
759
- else
760
- {:unit => unit}
761
- end
762
- else
763
- raise ArgumentError, "Wrong unit string"
764
- end
765
- end
766
-
767
- def convert_conversion(units, multiplier = nil)
768
- multiplier ||= 1
769
- base_units = {}
770
- other_units = {}
771
- units.each_pair do |u, e|
772
- (conversions(u) != :none ? other_units : base_units)[u] = e
773
- end
774
- result = Conversion.new(Units::Unit.new(base_units, self), multiplier)
775
- other_units.each_pair do |u, e|
776
- result *= (conversions(u) ** e)
777
- end
778
- result
779
- end
780
-
781
- def conversions(unit)
782
- @conversions[unit] || (unit == %s{--base-currency--} ? :none : nil)
783
- end
784
-
785
- def self.converters
786
- @converters ||= {}
787
- end
788
-
789
- end
790
-
791
- # Contains some configuration related constants
792
- module Config
793
-
794
- # The directory in which the data files are searched for
795
- DATADIR = File.join( ::Config::CONFIG['datadir'], 'calibre', 'units' )
796
-
797
- # The standard service used for looking up currency exchange rates
798
- DEFAULT_CURRENCY_SERVICE = Units::Converter::ExchangeRate::XMethods
799
-
800
- end
801
-
802
- #-- Initialization after everything is set up
803
- class Converter
804
- standard_converters = YAML.load_file(File.join(Units::Config::DATADIR, 'standard.yaml'))
805
- standard_converters.each do |name|
806
- register(name, Units::Converter.from_yaml(File.join(Units::Config::DATADIR, name + ".yaml")))
807
- end
808
- end
809
-
810
- end
811
-
812
- class Numeric
813
-
814
- def method_missing(m, *args, &blk)
815
- if args.length == 1
816
- args[0] = Units::Converter.converter(args[0]) if not args[0].is_a? Units::Converter
817
- return Value.new(self, Units::Unit.new({m => 1}, args[0])) if args[0].registered?(m)
818
- elsif Units::Converter.current.registered?(m)
819
- raise ArgumentError, "Wrong number of arguments" if args.length != 0
820
- return Units::Value.new(self, Units::Unit.new({m => 1}, Units::Converter.current))
821
- end
822
- super
823
- end
824
-
825
- end
826
-
827
-
828
-
829
- # _____ _
830
- # |_ _|__ ___| |_
831
- # | |/ _ \/ __| __|
832
- # | | __/\__ \ |_
833
- # |_|\___||___/\__|
834
- #
835
-
836
- =begin testing
837
-
838
- require 'test/unit'
839
-
840
- include Units
841
-
842
- class TC01 < Test::Unit::TestCase
843
-
844
- def test_01_001
845
- assert_equal( "65.0 bit/s", (1.bit/s + 8.bytes/s).to_s )
846
- end
847
-
848
- def test_01_002
849
- assert_equal( "0.125 byte/s", ((1.bit/s).to(byte/s)).to_s )
850
- end
851
-
852
- def test_01_003
853
- assert_equal( "5280.0 feet", (1.mile.to(feet)).to_s )
854
- end
855
-
856
- def test_01_004
857
- assert_equal( "4840.0 yd**2", (1.acre.to(yd**2)).to_s )
858
- end
859
-
860
- def test_01_005
861
- assert_equal( "4840.0 sq_yd", (1.acre.to(sq_yd)).to_s )
862
- end
863
-
864
- def test_01_006
865
- assert_equal( "3.785411784 L", (1.gallon.to(self.L)).to_s )
866
- end
867
-
868
- def test_01_007
869
- assert_equal( "0.45359237 kg", (1.lb.to(kg)).to_s )
870
- end
871
-
872
- def test_01_008
873
- assert_equal( "1 s m", (1.m.s.to(m.s)).to_s )
874
- end
875
-
876
- def test_01_009
877
- assert_equal( "2.589988110336 km**2", (1.sq_mi.to(km**2)).to_s )
878
- end
879
-
880
- def test_01_010
881
- assert_equal( "1.609344 km", (1.mile.to(km)).to_s )
882
- end
883
-
884
- # currency rates change frequently, temp commented
885
- #def test_01_011
886
- # assert_equal( "33.2750003803837 twd", (1.usd.to(twd)).to_s )
887
- #end
888
-
889
- def test_01_012
890
- with_unit_converter(:uk) {
891
- assert_equal( "112.0 lb", 1.cwt.to(lb).to_s )
892
- }
893
- end
894
-
895
- def test_01_013
896
- with_unit_converter(:us) {
897
- assert_equal( "100.0 lb", 1.cwt.to(lb).to_s )
898
- }
899
- end
900
-
901
- def test_01_014
902
- assert_equal( "112.0 lb", (1.cwt(:uk).to(lb(:uk))).to_s )
903
- assert_equal( "100.0 lb", (1.cwt(:us).to(lb(:us))).to_s )
904
- end
905
-
906
- def test_01_015
907
- assert_equal( "lb", (Converter.current.lb).to_s )
908
- end
909
-
910
- def test_01_016
911
- assert_equal( [:us, :cex, :default, :uk], Converter.registered_converters )
912
- end
913
-
914
- def test_01_017
915
- assert_raises(TypeError) {
916
- 1.try.to(usd)
917
- }
918
- end
919
-
920
- def test_01_016
921
- assert_equal( "33.2190007563597 twd", (1.usd(:cex).to(twd(:cex))).to_s )
922
- end
923
-
924
- end
925
-
926
- =end