facets 2.9.2 → 2.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1109) hide show
  1. data/.ruby +9 -12
  2. data/.yardopts +10 -0
  3. data/HISTORY.rdoc +586 -898
  4. data/NOTICE.rdoc +30 -30
  5. data/README.rdoc +50 -60
  6. data/lib/core/facets.rb +1 -59
  7. data/lib/core/facets/array.rb +63 -89
  8. data/lib/core/facets/array/each_pair.rb +14 -0
  9. data/lib/core/facets/array/each_value.rb +6 -0
  10. data/lib/core/facets/array/median.rb +32 -0
  11. data/lib/core/facets/array/mode.rb +1 -1
  12. data/lib/core/facets/array/nonuniq.rb +41 -4
  13. data/{src/core/facets/array/duplicates.rb → lib/core/facets/array/occurent.rb} +0 -0
  14. data/{src/core-uncommon → lib/core}/facets/array/op_pow.rb +6 -1
  15. data/lib/core/facets/binding.rb +14 -36
  16. data/lib/core/facets/binding/local_variables.rb +1 -0
  17. data/lib/core/facets/binding/op.rb +3 -23
  18. data/{src/core/facets/binding/op.rb → lib/core/facets/binding/op_get.rb} +3 -0
  19. data/lib/core/facets/binding/op_set.rb +1 -0
  20. data/lib/core/facets/binding/self.rb +8 -3
  21. data/lib/core/facets/binding/with.rb +12 -0
  22. data/lib/core/facets/class.rb +9 -14
  23. data/lib/core/facets/class/descendants.rb +2 -1
  24. data/lib/core/facets/class/hierarchically.rb +12 -0
  25. data/lib/{core-uncommon → core}/facets/class/preallocate.rb +5 -2
  26. data/lib/core/facets/class/singleton.rb +13 -0
  27. data/lib/core/facets/comparable.rb +8 -18
  28. data/lib/core/facets/denumerable.rb +3 -2
  29. data/lib/core/facets/dir.rb +7 -16
  30. data/lib/core/facets/enumerable.rb +37 -74
  31. data/lib/core/facets/enumerable/accumulate.rb +8 -4
  32. data/lib/core/facets/enumerable/defer.rb +0 -27
  33. data/lib/core/facets/enumerable/hashify.rb +31 -0
  34. data/lib/core/facets/enumerable/incase.rb +19 -0
  35. data/lib/core/facets/enumerable/map_with.rb +3 -0
  36. data/lib/core/facets/enumerable/modulate.rb +1 -1
  37. data/lib/core/facets/enumerable/sum.rb +4 -2
  38. data/lib/core/facets/exception.rb +4 -11
  39. data/lib/core/facets/exception/detail.rb +3 -9
  40. data/lib/core/facets/exception/error_print.rb +80 -0
  41. data/lib/core/facets/file.rb +15 -30
  42. data/lib/core/facets/file/atomic_id.rb +9 -0
  43. data/lib/core/facets/file/atomic_open.rb +26 -0
  44. data/lib/{supplemental/facets/atomicfile.rb → core/facets/file/atomic_write.rb} +15 -8
  45. data/lib/core/facets/filetest.rb +7 -16
  46. data/lib/core/facets/fixnum.rb +7 -0
  47. data/lib/core/facets/float.rb +2 -6
  48. data/lib/core/facets/functor.rb +16 -0
  49. data/lib/core/facets/hash.rb +54 -108
  50. data/lib/core/facets/hash/collate.rb +3 -30
  51. data/lib/core/facets/hash/op_sub.rb +1 -0
  52. data/lib/core/facets/hash/rekey.rb +18 -8
  53. data/lib/core/facets/hash/slice.rb +3 -2
  54. data/lib/core/facets/hash/update_keys.rb +2 -1
  55. data/lib/core/facets/hash/url_params.rb +21 -0
  56. data/lib/core/facets/indexable.rb +0 -2
  57. data/lib/core/facets/integer.rb +10 -20
  58. data/lib/core/facets/integer/roman.rb +1 -0
  59. data/lib/core/facets/kernel.rb +77 -140
  60. data/lib/core/facets/kernel/assign.rb +11 -13
  61. data/lib/{core-uncommon → core}/facets/kernel/demo.rb +8 -5
  62. data/lib/core/facets/kernel/eigen.rb +33 -0
  63. data/{src/core-uncommon → lib/core}/facets/kernel/eigenclass.rb +5 -2
  64. data/lib/core/facets/kernel/extend.rb +4 -1
  65. data/lib/core/facets/kernel/extension.rb +2 -2
  66. data/lib/core/facets/kernel/hierarchical_send.rb +44 -0
  67. data/lib/{core-uncommon → core}/facets/kernel/instance_exec.rb +4 -1
  68. data/lib/{core-uncommon → core}/facets/kernel/memo.rb +5 -2
  69. data/lib/core/facets/kernel/object_hexid.rb +23 -21
  70. data/lib/core/facets/kernel/singleton_class.rb +3 -2
  71. data/{src/core-uncommon → lib/core}/facets/kernel/trap_chain.rb +6 -1
  72. data/lib/{core-uncommon → core}/facets/kernel/y.rb +5 -2
  73. data/lib/core/facets/lazy.rb +6 -7
  74. data/lib/core/facets/matchdata.rb +3 -8
  75. data/lib/{supplemental → core}/facets/metaid.rb +0 -0
  76. data/lib/core/facets/method.rb +5 -6
  77. data/lib/core/facets/method/composition.rb +80 -0
  78. data/lib/{core-uncommon → core}/facets/method/memoize.rb +5 -1
  79. data/lib/core/facets/method/op_mul.rb +1 -0
  80. data/lib/core/facets/method/op_pow.rb +1 -0
  81. data/lib/core/facets/module.rb +60 -86
  82. data/{src/core-uncommon → lib/core}/facets/module/attr_class_accessor.rb +15 -3
  83. data/{src/core-uncommon → lib/core}/facets/module/attr_tester.rb +12 -5
  84. data/lib/{core-uncommon → core}/facets/module/attr_validator.rb +11 -5
  85. data/lib/core/facets/module/class.rb +1 -1
  86. data/lib/{core-uncommon → core}/facets/module/class_accessor.rb +16 -3
  87. data/lib/{core-uncommon → core}/facets/module/class_extend.rb +9 -2
  88. data/{src/core-uncommon → lib/core}/facets/module/class_inheritor.rb +5 -2
  89. data/lib/{core-uncommon → core}/facets/module/copy_inheritor.rb +5 -2
  90. data/{src/core-uncommon → lib/core}/facets/module/enclosure.rb +16 -4
  91. data/lib/{core-uncommon → core}/facets/module/enclosures.rb +0 -0
  92. data/lib/{core-uncommon → core}/facets/module/include_as.rb +0 -0
  93. data/{src/core-uncommon → lib/core}/facets/module/instance_function.rb +5 -1
  94. data/lib/{core-uncommon → core}/facets/module/let.rb +4 -0
  95. data/{src/core-uncommon/facets/module/cattr.rb → lib/core/facets/module/mattr.rb} +40 -8
  96. data/{src/core-uncommon → lib/core}/facets/module/memoize.rb +4 -0
  97. data/lib/{core-uncommon → core}/facets/module/method_clash.rb +11 -4
  98. data/lib/{core-uncommon → core}/facets/module/method_space.rb +10 -2
  99. data/{src/core-uncommon → lib/core}/facets/module/module_load.rb +10 -5
  100. data/lib/{core-uncommon → core}/facets/module/preextend.rb +4 -1
  101. data/lib/core/facets/nilclass.rb +3 -8
  102. data/lib/core/facets/numeric.rb +10 -18
  103. data/lib/core/facets/numeric/approx.rb +29 -6
  104. data/lib/core/facets/numeric/close.rb +1 -0
  105. data/lib/core/facets/numeric/negative.rb +1 -0
  106. data/lib/core/facets/numeric/positive.rb +15 -0
  107. data/lib/core/facets/object.rb +6 -14
  108. data/lib/core/facets/objectspace.rb +4 -10
  109. data/lib/core/facets/proc.rb +8 -18
  110. data/lib/core/facets/process.rb +2 -6
  111. data/lib/core/facets/range.rb +7 -14
  112. data/lib/core/facets/range/quantile.rb +18 -0
  113. data/lib/core/facets/regexp.rb +6 -14
  114. data/lib/core/facets/regexp/op_or.rb +5 -8
  115. data/lib/{core-uncommon/facets/integer → core/facets}/roman.rb +15 -3
  116. data/lib/core/facets/string.rb +69 -134
  117. data/{src/core-uncommon → lib/core}/facets/string/acronym.rb +4 -1
  118. data/lib/core/facets/string/briefcase.rb +1 -0
  119. data/lib/core/facets/string/camelcase.rb +60 -49
  120. data/{src/core-uncommon → lib/core}/facets/string/crypt.rb +5 -2
  121. data/lib/core/facets/string/methodize.rb +10 -11
  122. data/lib/core/facets/string/modulize.rb +12 -12
  123. data/lib/core/facets/string/natcmp.rb +3 -1
  124. data/lib/core/facets/string/pathize.rb +8 -4
  125. data/lib/core/facets/string/roman.rb +1 -0
  126. data/lib/core/facets/string/snakecase.rb +19 -9
  127. data/lib/core/facets/string/titlecase.rb +14 -2
  128. data/lib/core/facets/string/underscore.rb +1 -22
  129. data/lib/core/facets/struct.rb +2 -6
  130. data/lib/core/facets/symbol.rb +14 -30
  131. data/lib/core/facets/symbol/plain.rb +8 -0
  132. data/{src/core/facets/symbol/bang.rb → lib/core/facets/symbol/reader.rb} +0 -0
  133. data/{src/core/facets/symbol/query.rb → lib/core/facets/symbol/writer.rb} +0 -0
  134. data/lib/core/facets/time.rb +16 -34
  135. data/lib/core/facets/time/shift.rb +2 -0
  136. data/lib/core/facets/time/stamp.rb +14 -12
  137. data/lib/core/facets/unboundmethod.rb +3 -8
  138. data/lib/core/facets/version.rb +19 -0
  139. data/lib/{supplemental → standard}/facets/argvector.rb +0 -0
  140. data/lib/standard/facets/cloneable.rb +64 -0
  141. data/lib/{supplemental → standard}/facets/enumargs.rb +0 -0
  142. data/lib/standard/facets/equitable.rb +76 -0
  143. data/lib/standard/facets/fileutils/amass.rb +9 -8
  144. data/lib/standard/facets/instantiable.rb +25 -0
  145. data/lib/{supplemental → standard}/facets/interval.rb +60 -67
  146. data/lib/standard/facets/math.rb +57 -5
  147. data/lib/standard/facets/math/lgamma.rb +3 -1
  148. data/lib/standard/facets/math/linsolve.rb +2 -0
  149. data/lib/standard/facets/math/median.rb +15 -0
  150. data/lib/standard/facets/math/percentile.rb +40 -0
  151. data/lib/standard/facets/math/round.rb +9 -0
  152. data/lib/standard/facets/math/sqsolve.rb +7 -5
  153. data/lib/standard/facets/math/tgamma.rb +10 -0
  154. data/lib/{supplemental → standard}/facets/memoizable.rb +0 -0
  155. data/lib/{supplemental → standard}/facets/multipliers.rb +0 -0
  156. data/lib/{supplemental → standard}/facets/multiton.rb +0 -0
  157. data/lib/{supplemental → standard}/facets/nullclass.rb +0 -0
  158. data/lib/{supplemental → standard}/facets/opesc.rb +0 -0
  159. data/lib/standard/facets/pathname.rb +14 -1
  160. data/lib/{supplemental → standard}/facets/platform.rb +0 -0
  161. data/lib/standard/facets/set.rb +5 -1
  162. data/{src/supplemental → lib/standard}/facets/timer.rb +3 -2
  163. data/lib/{supplemental → standard}/facets/tuple.rb +0 -0
  164. data/qed/applique/file_helpers.rb +1 -1
  165. data/qed/core/dir/multiglob.rdoc +10 -10
  166. data/qed/core/dir/recurse.rdoc +13 -13
  167. data/qed/{core-uncommon → core}/module/cattr.rdoc +0 -0
  168. data/qed/{core-uncommon → core}/module/class_extend.rdoc +0 -0
  169. data/qed/{core-uncommon → core}/module/class_inheritor.rdoc +0 -0
  170. data/qed/{core-uncommon → core}/module/copy_inheritor.rdoc +0 -0
  171. data/qed/{core-uncommon → core}/module/method_space.rdoc +0 -0
  172. data/qed/core/string/camelcase.rdoc +19 -39
  173. data/qed/core/string/snakecase.rdoc +4 -3
  174. data/qed/standard/02_cloneable.rdoc +46 -0
  175. data/qed/standard/03_enumargs.rdoc +75 -0
  176. data/qed/standard/04_equitable.rdoc +35 -0
  177. data/qed/standard/05_instantiable.rdoc +42 -0
  178. data/qed/{supplemental → standard}/memoizable.rdoc +0 -0
  179. data/qed/{supplemental → standard}/mulititon.rdoc +0 -0
  180. data/test/core/array/test_duplicates.rb +15 -1
  181. data/test/core/array/test_median.rb +27 -0
  182. data/test/core/array/test_nonuniq.rb +2 -2
  183. data/test/core/array/test_occurent.rb +33 -0
  184. data/test/{core-uncommon → core}/class/test_preallocate.rb +0 -0
  185. data/test/core/denumerable_tc.rb +7 -8
  186. data/test/core/dir/test_each_child.rb +1 -1
  187. data/test/core/dir/test_multiglob.rb +1 -1
  188. data/test/core/enumerable/test_sum.rb +22 -0
  189. data/test/core/hash/test_url_params.rb +26 -0
  190. data/test/core/kernel/test_constant.rb +3 -3
  191. data/test/core/kernel/test_hierarchical_send.rb +48 -0
  192. data/test/core/kernel/test_object_hexid.rb +8 -4
  193. data/test/core/kernel/test_super_method.rb +1 -1
  194. data/test/{core-uncommon → core}/module/test_class_extend.rb +0 -0
  195. data/test/{core-uncommon → core}/module/test_class_inheritor.rb +0 -0
  196. data/test/{core-uncommon → core}/module/test_copy_inheritor.rb +0 -0
  197. data/test/{core-uncommon → core}/module/test_enclosure.rb +0 -0
  198. data/test/{core-uncommon → core}/module/test_instance_function.rb +0 -0
  199. data/test/{core-uncommon → core}/module/test_memoize.rb +0 -0
  200. data/test/{core-uncommon → core}/module/test_method_clash.rb +0 -0
  201. data/test/{core-uncommon → core}/module/test_method_space.rb +0 -0
  202. data/test/{core-uncommon → core}/module/test_module_load.rb +0 -0
  203. data/test/{core-uncommon → core}/module/test_preextend.rb +0 -0
  204. data/test/core/numeric/test_approx.rb +10 -1
  205. data/test/core/string/test_camelcase.rb +21 -38
  206. data/test/core/string/test_index_all.rb +5 -1
  207. data/test/core/string/test_pathize.rb +4 -0
  208. data/test/core/string/test_snakecase.rb +9 -4
  209. data/test/core/string/test_underscore.rb +2 -2
  210. data/test/core/time/test_dst_adjustment.rb +9 -1
  211. data/test/core/time/test_less.rb +1 -1
  212. data/test/core/time/test_shift.rb +6 -6
  213. data/test/core/time/test_stamp.rb +7 -3
  214. data/test/standard/math/test_abs.rb +13 -0
  215. data/test/standard/math/test_median.rb +17 -0
  216. data/test/standard/math/test_percentile.rb +13 -0
  217. data/test/standard/math/test_sign.rb +14 -0
  218. data/test/{supplemental → standard}/test_argvector.rb +0 -0
  219. data/test/standard/test_cloneable.rb +60 -0
  220. data/test/{supplemental → standard}/test_enumargs.rb +0 -0
  221. data/test/standard/test_equitable.rb +46 -0
  222. data/test/standard/test_instantiable.rb +40 -0
  223. data/test/{supplemental → standard}/test_memoizable.rb +0 -0
  224. data/test/{supplemental → standard}/test_multipliers.rb +0 -0
  225. data/test/standard/test_timer.rb +24 -12
  226. data/test/{supplemental → standard}/test_tuple.rb +0 -0
  227. metadata +209 -1070
  228. data/.gitignore +0 -11
  229. data/.locat +0 -24
  230. data/.reap/ignore +0 -1
  231. data/.reap/yard.reap +0 -42
  232. data/.test +0 -31
  233. data/.yard/core.yardopts +0 -7
  234. data/.yard/standard.yardopts +0 -7
  235. data/.yard/supplemental.yardopts +0 -7
  236. data/.yard/uncommon.yardopts +0 -7
  237. data/AUTHORS.rdoc +0 -100
  238. data/Assembly +0 -38
  239. data/GPL3.txt +0 -282
  240. data/MANIFEST +0 -1107
  241. data/Profile +0 -41
  242. data/Rakefile +0 -403
  243. data/VERSION +0 -1
  244. data/facets.gemspec +0 -152
  245. data/lib/core-uncommon/facets/array/median.rb +0 -17
  246. data/lib/core-uncommon/facets/array/op_pow.rb +0 -9
  247. data/lib/core-uncommon/facets/array/percentile.rb +0 -32
  248. data/lib/core-uncommon/facets/class/singleton.rb +0 -8
  249. data/lib/core-uncommon/facets/enumerable/has.rb +0 -22
  250. data/lib/core-uncommon/facets/enumerable/have.rb +0 -1
  251. data/lib/core-uncommon/facets/kernel/eigenclass.rb +0 -21
  252. data/lib/core-uncommon/facets/kernel/trap_chain.rb +0 -23
  253. data/lib/core-uncommon/facets/module/attr_class_accessor.rb +0 -39
  254. data/lib/core-uncommon/facets/module/attr_inheritor.rb +0 -15
  255. data/lib/core-uncommon/facets/module/attr_tester.rb +0 -49
  256. data/lib/core-uncommon/facets/module/cattr.rb +0 -264
  257. data/lib/core-uncommon/facets/module/class_inheritor.rb +0 -77
  258. data/lib/core-uncommon/facets/module/enclosure.rb +0 -82
  259. data/lib/core-uncommon/facets/module/instance_function.rb +0 -90
  260. data/lib/core-uncommon/facets/module/memoize.rb +0 -12
  261. data/lib/core-uncommon/facets/module/module_load.rb +0 -78
  262. data/lib/core-uncommon/facets/module/prepend.rb +0 -61
  263. data/lib/core-uncommon/facets/regexp/op_or.rb +0 -13
  264. data/lib/core-uncommon/facets/string/acronym.rb +0 -8
  265. data/lib/core-uncommon/facets/string/crypt.rb +0 -19
  266. data/lib/core-uncommon/facets/string/roman.rb +0 -1
  267. data/lib/supplemental/facets/main.rb +0 -62
  268. data/lib/supplemental/facets/reference.rb +0 -83
  269. data/lib/supplemental/facets/timer.rb +0 -207
  270. data/rdoc.assembly +0 -50
  271. data/site/.brite +0 -2
  272. data/site/assets/hover.js +0 -14
  273. data/site/assets/rdocs.js +0 -28
  274. data/site/assets/site.css +0 -324
  275. data/site/assets/syntax.css +0 -60
  276. data/site/atom.page +0 -25
  277. data/site/atom.xml +0 -20
  278. data/site/brite.yml +0 -3
  279. data/site/default.layout +0 -114
  280. data/site/index.html +0 -110
  281. data/site/index.page +0 -94
  282. data/site/learn.html +0 -110
  283. data/site/learn.page +0 -78
  284. data/site/media/APIdocs.png +0 -0
  285. data/site/media/RubyFacets.png +0 -0
  286. data/site/media/RubyFacetsShadow.png +0 -0
  287. data/site/media/RubyFacetsShadow2.png +0 -0
  288. data/site/media/RubyFacetsShadowFade.png +0 -0
  289. data/site/media/SPYlights.png +0 -0
  290. data/site/media/WeHeartFacets.png +0 -0
  291. data/site/media/abc.png +0 -0
  292. data/site/media/abc1.png +0 -0
  293. data/site/media/adverts/21-5G3Eta1L._AA_SL160_.jpg +0 -0
  294. data/site/media/adverts/21B53PF6W5L._AA_SL160_.jpg +0 -0
  295. data/site/media/adverts/21OsAAT9MaL._AA_SL160_.jpg +0 -0
  296. data/site/media/adverts/21PYg8IoswL._AA_SL160_.jpg +0 -0
  297. data/site/media/adverts/21WvvRAsbhL._AA_SL160_.jpg +0 -0
  298. data/site/media/adverts/amazon.html +0 -30
  299. data/site/media/adverts/rdoc.html +0 -15
  300. data/site/media/appleslice.jpg +0 -0
  301. data/site/media/clear.gif +0 -0
  302. data/site/media/core.jpg +0 -0
  303. data/site/media/fade_black_down.png +0 -0
  304. data/site/media/fade_blue_down.gif +0 -0
  305. data/site/media/fade_blue_up.gif +0 -0
  306. data/site/media/fade_red_down.png +0 -0
  307. data/site/media/fade_red_up (copy).png +0 -0
  308. data/site/media/fade_red_up.png +0 -0
  309. data/site/media/fade_yellow_down.jpg +0 -0
  310. data/site/media/fade_yellow_right.jpg +0 -0
  311. data/site/media/fade_yellow_up.jpg +0 -0
  312. data/site/media/favicon.ico +0 -0
  313. data/site/media/forkme.png +0 -0
  314. data/site/media/gray.jpg +0 -0
  315. data/site/media/heart.gif +0 -0
  316. data/site/media/itcamefrom.png +0 -0
  317. data/site/media/license.jpg +0 -0
  318. data/site/media/lightbulb.jpg +0 -0
  319. data/site/media/menu_bkg.png +0 -0
  320. data/site/media/mini.png +0 -0
  321. data/site/media/nitro.png +0 -0
  322. data/site/media/patch125.jpg +0 -0
  323. data/site/media/people.jpg +0 -0
  324. data/site/media/reap.png +0 -0
  325. data/site/media/ruby-lg.png +0 -0
  326. data/site/media/ruby.gif +0 -0
  327. data/site/media/temp.png +0 -0
  328. data/site/media/treetop.jpg +0 -0
  329. data/site/news.html +0 -110
  330. data/site/news.page +0 -22
  331. data/site/post.layout +0 -23
  332. data/site/posts/2008-01-01-how-facets-was-born.html +0 -110
  333. data/site/posts/2008-01-01-how-facets-was-born.post +0 -26
  334. data/site/posts/2008-03-24-release-2-4.html +0 -110
  335. data/site/posts/2008-03-24-release-2-4.post +0 -61
  336. data/site/posts/2009-07-21-new-website.html +0 -110
  337. data/site/posts/2009-07-21-new-website.post +0 -17
  338. data/site/posts/2009-08-22-release-2-7.html +0 -110
  339. data/site/posts/2009-08-22-release-2-7.post +0 -130
  340. data/site/posts/2009-11-09-release-2-8.html +0 -110
  341. data/site/posts/2009-11-09-release-2-8.post +0 -61
  342. data/site/posts/2010-09-01-release-2-9.html +0 -110
  343. data/site/posts/2010-09-01-release-2-9.post +0 -39
  344. data/site/source.html +0 -110
  345. data/site/source.page +0 -46
  346. data/src/core-uncommon/facets/array/median.rb +0 -17
  347. data/src/core-uncommon/facets/array/percentile.rb +0 -32
  348. data/src/core-uncommon/facets/class/preallocate.rb +0 -52
  349. data/src/core-uncommon/facets/class/singleton.rb +0 -8
  350. data/src/core-uncommon/facets/enumerable/has.rb +0 -22
  351. data/src/core-uncommon/facets/enumerable/have.rb +0 -1
  352. data/src/core-uncommon/facets/integer/roman.rb +0 -77
  353. data/src/core-uncommon/facets/kernel/demo.rb +0 -27
  354. data/src/core-uncommon/facets/kernel/instance_exec.rb +0 -44
  355. data/src/core-uncommon/facets/kernel/memo.rb +0 -41
  356. data/src/core-uncommon/facets/kernel/y.rb +0 -20
  357. data/src/core-uncommon/facets/method/memoize.rb +0 -13
  358. data/src/core-uncommon/facets/module/attr_inheritor.rb +0 -15
  359. data/src/core-uncommon/facets/module/attr_validator.rb +0 -40
  360. data/src/core-uncommon/facets/module/class_accessor.rb +0 -33
  361. data/src/core-uncommon/facets/module/class_extend.rb +0 -85
  362. data/src/core-uncommon/facets/module/copy_inheritor.rb +0 -42
  363. data/src/core-uncommon/facets/module/enclosures.rb +0 -1
  364. data/src/core-uncommon/facets/module/include_as.rb +0 -1
  365. data/src/core-uncommon/facets/module/let.rb +0 -27
  366. data/src/core-uncommon/facets/module/method_clash.rb +0 -59
  367. data/src/core-uncommon/facets/module/method_space.rb +0 -99
  368. data/src/core-uncommon/facets/module/preextend.rb +0 -29
  369. data/src/core-uncommon/facets/module/prepend.rb +0 -61
  370. data/src/core-uncommon/facets/regexp/op_or.rb +0 -13
  371. data/src/core-uncommon/facets/string/roman.rb +0 -1
  372. data/src/core/facets.rb +0 -70
  373. data/src/core/facets.yml +0 -57
  374. data/src/core/facets/applique/file_helpers.rb +0 -33
  375. data/src/core/facets/array.rb +0 -28
  376. data/src/core/facets/array/after.rb +0 -1
  377. data/src/core/facets/array/before.rb +0 -39
  378. data/src/core/facets/array/collapse.rb +0 -12
  379. data/src/core/facets/array/collisions.rb +0 -1
  380. data/src/core/facets/array/combination.rb +0 -43
  381. data/src/core/facets/array/commonality.rb +0 -37
  382. data/src/core/facets/array/conjoin.rb +0 -89
  383. data/src/core/facets/array/contains.rb +0 -7
  384. data/src/core/facets/array/delete.rb +0 -4
  385. data/src/core/facets/array/delete_unless.rb +0 -15
  386. data/src/core/facets/array/delete_values.rb +0 -50
  387. data/src/core/facets/array/divide.rb +0 -20
  388. data/src/core/facets/array/entropy.rb +0 -39
  389. data/src/core/facets/array/extract_options.rb +0 -31
  390. data/src/core/facets/array/from.rb +0 -33
  391. data/src/core/facets/array/index.rb +0 -23
  392. data/src/core/facets/array/indexable.rb +0 -31
  393. data/src/core/facets/array/merge.rb +0 -22
  394. data/src/core/facets/array/mode.rb +0 -22
  395. data/src/core/facets/array/nonuniq.rb +0 -37
  396. data/src/core/facets/array/not_empty.rb +0 -13
  397. data/src/core/facets/array/only.rb +0 -26
  398. data/src/core/facets/array/pad.rb +0 -41
  399. data/src/core/facets/array/peek.rb +0 -1
  400. data/src/core/facets/array/permutation.rb +0 -32
  401. data/src/core/facets/array/poke.rb +0 -1
  402. data/src/core/facets/array/probability.rb +0 -39
  403. data/src/core/facets/array/product.rb +0 -30
  404. data/src/core/facets/array/pull.rb +0 -30
  405. data/src/core/facets/array/recurse.rb +0 -29
  406. data/src/core/facets/array/recursively.rb +0 -47
  407. data/src/core/facets/array/rotate.rb +0 -48
  408. data/src/core/facets/array/select.rb +0 -20
  409. data/src/core/facets/array/splice.rb +0 -27
  410. data/src/core/facets/array/split.rb +0 -27
  411. data/src/core/facets/array/store.rb +0 -12
  412. data/src/core/facets/array/thru.rb +0 -1
  413. data/src/core/facets/array/traverse.rb +0 -44
  414. data/src/core/facets/array/uniq_by.rb +0 -16
  415. data/src/core/facets/binding.rb +0 -32
  416. data/src/core/facets/binding/__callee__.rb +0 -1
  417. data/src/core/facets/binding/__method__.rb +0 -1
  418. data/src/core/facets/binding/call_stack.rb +0 -1
  419. data/src/core/facets/binding/caller.rb +0 -44
  420. data/src/core/facets/binding/callstack.rb +0 -1
  421. data/src/core/facets/binding/defined.rb +0 -12
  422. data/src/core/facets/binding/eval.rb +0 -14
  423. data/src/core/facets/binding/local_variables.rb +0 -17
  424. data/src/core/facets/binding/self.rb +0 -12
  425. data/src/core/facets/boolean.rb +0 -121
  426. data/src/core/facets/class.rb +0 -20
  427. data/src/core/facets/class/descendants.rb +0 -35
  428. data/src/core/facets/class/methodize.rb +0 -19
  429. data/src/core/facets/class/pathize.rb +0 -19
  430. data/src/core/facets/class/subclasses.rb +0 -28
  431. data/src/core/facets/class/to_proc.rb +0 -25
  432. data/src/core/facets/comparable.rb +0 -20
  433. data/src/core/facets/comparable/at_least.rb +0 -1
  434. data/src/core/facets/comparable/at_most.rb +0 -1
  435. data/src/core/facets/comparable/bound.rb +0 -1
  436. data/src/core/facets/comparable/cap.rb +0 -34
  437. data/src/core/facets/comparable/clip.rb +0 -38
  438. data/src/core/facets/comparable/cmp.rb +0 -41
  439. data/src/core/facets/comparable/op_get.rb +0 -45
  440. data/src/core/facets/denumerable.rb +0 -76
  441. data/src/core/facets/dir.rb +0 -20
  442. data/src/core/facets/dir/ascend.rb +0 -56
  443. data/src/core/facets/dir/descend.rb +0 -1
  444. data/src/core/facets/dir/each_child.rb +0 -16
  445. data/src/core/facets/dir/multiglob.rb +0 -78
  446. data/src/core/facets/dir/parent.rb +0 -16
  447. data/src/core/facets/dir/recurse.rb +0 -35
  448. data/src/core/facets/enumerable.rb +0 -20
  449. data/src/core/facets/enumerable/accumulate.rb +0 -61
  450. data/src/core/facets/enumerable/cluster_by.rb +0 -18
  451. data/src/core/facets/enumerable/collect_with_index.rb +0 -2
  452. data/src/core/facets/enumerable/compact_map.rb +0 -36
  453. data/src/core/facets/enumerable/count.rb +0 -53
  454. data/src/core/facets/enumerable/defer.rb +0 -73
  455. data/src/core/facets/enumerable/each_by.rb +0 -33
  456. data/src/core/facets/enumerable/each_with_object.rb +0 -38
  457. data/src/core/facets/enumerable/every.rb +0 -40
  458. data/src/core/facets/enumerable/ewise.rb +0 -59
  459. data/src/core/facets/enumerable/exclude.rb +0 -16
  460. data/src/core/facets/enumerable/expand.rb +0 -15
  461. data/src/core/facets/enumerable/filter.rb +0 -33
  462. data/src/core/facets/enumerable/find_yield.rb +0 -42
  463. data/src/core/facets/enumerable/frequency.rb +0 -24
  464. data/src/core/facets/enumerable/graph.rb +0 -37
  465. data/src/core/facets/enumerable/group_by.rb +0 -33
  466. data/src/core/facets/enumerable/map_by.rb +0 -35
  467. data/src/core/facets/enumerable/map_detect.rb +0 -1
  468. data/src/core/facets/enumerable/map_send.rb +0 -26
  469. data/src/core/facets/enumerable/map_with.rb +0 -18
  470. data/src/core/facets/enumerable/map_with_index.rb +0 -23
  471. data/src/core/facets/enumerable/mash.rb +0 -1
  472. data/src/core/facets/enumerable/modulate.rb +0 -22
  473. data/src/core/facets/enumerable/none.rb +0 -32
  474. data/src/core/facets/enumerable/occur.rb +0 -38
  475. data/src/core/facets/enumerable/one.rb +0 -39
  476. data/src/core/facets/enumerable/per.rb +0 -85
  477. data/src/core/facets/enumerable/purge.rb +0 -43
  478. data/src/core/facets/enumerable/recursively.rb +0 -66
  479. data/src/core/facets/enumerable/sum.rb +0 -16
  480. data/src/core/facets/enumerable/take.rb +0 -16
  481. data/src/core/facets/enumerable/uniq_by.rb +0 -13
  482. data/src/core/facets/enumerable/visit.rb +0 -30
  483. data/src/core/facets/enumerable/zip_map.rb +0 -1
  484. data/src/core/facets/enumerator.rb +0 -75
  485. data/src/core/facets/enumerator/fx.rb +0 -36
  486. data/src/core/facets/exception.rb +0 -21
  487. data/src/core/facets/exception/detail.rb +0 -23
  488. data/src/core/facets/exception/raised.rb +0 -14
  489. data/src/core/facets/exception/suppress.rb +0 -22
  490. data/src/core/facets/file.rb +0 -20
  491. data/src/core/facets/file/append.rb +0 -14
  492. data/src/core/facets/file/create.rb +0 -21
  493. data/src/core/facets/file/ext.rb +0 -36
  494. data/src/core/facets/file/null.rb +0 -21
  495. data/src/core/facets/file/read_binary.rb +0 -18
  496. data/src/core/facets/file/read_list.rb +0 -34
  497. data/src/core/facets/file/rewrite.rb +0 -90
  498. data/src/core/facets/file/rootname.rb +0 -23
  499. data/src/core/facets/file/sanitize.rb +0 -18
  500. data/src/core/facets/file/split_all.rb +0 -19
  501. data/src/core/facets/file/split_root.rb +0 -13
  502. data/src/core/facets/file/write.rb +0 -24
  503. data/src/core/facets/file/writelines.rb +0 -27
  504. data/src/core/facets/filetest.rb +0 -20
  505. data/src/core/facets/filetest/absolute.rb +0 -1
  506. data/src/core/facets/filetest/contains.rb +0 -12
  507. data/src/core/facets/filetest/relative.rb +0 -38
  508. data/src/core/facets/filetest/root.rb +0 -17
  509. data/src/core/facets/filetest/safe.rb +0 -20
  510. data/src/core/facets/filetest/separator_pattern.rb +0 -19
  511. data/src/core/facets/float.rb +0 -20
  512. data/src/core/facets/float/round.rb +0 -2
  513. data/src/core/facets/functor.rb +0 -78
  514. data/src/core/facets/hash.rb +0 -20
  515. data/src/core/facets/hash/alias.rb +0 -31
  516. data/src/core/facets/hash/argumentize.rb +0 -28
  517. data/src/core/facets/hash/at.rb +0 -8
  518. data/src/core/facets/hash/autonew.rb +0 -24
  519. data/src/core/facets/hash/collate.rb +0 -62
  520. data/src/core/facets/hash/count.rb +0 -12
  521. data/src/core/facets/hash/data.rb +0 -41
  522. data/src/core/facets/hash/dearray_values.rb +0 -46
  523. data/src/core/facets/hash/deep_merge.rb +0 -33
  524. data/src/core/facets/hash/delete.rb +0 -4
  525. data/src/core/facets/hash/delete_at.rb +0 -7
  526. data/src/core/facets/hash/delete_unless.rb +0 -17
  527. data/src/core/facets/hash/delete_values.rb +0 -41
  528. data/src/core/facets/hash/diff.rb +0 -17
  529. data/src/core/facets/hash/except.rb +0 -25
  530. data/src/core/facets/hash/graph.rb +0 -18
  531. data/src/core/facets/hash/insert.rb +0 -19
  532. data/src/core/facets/hash/inverse.rb +0 -30
  533. data/src/core/facets/hash/join.rb +0 -17
  534. data/src/core/facets/hash/keys.rb +0 -45
  535. data/src/core/facets/hash/mash.rb +0 -1
  536. data/src/core/facets/hash/new_with.rb +0 -15
  537. data/src/core/facets/hash/op.rb +0 -7
  538. data/src/core/facets/hash/op_add.rb +0 -12
  539. data/src/core/facets/hash/op_and.rb +0 -33
  540. data/src/core/facets/hash/op_mul.rb +0 -18
  541. data/src/core/facets/hash/op_or.rb +0 -12
  542. data/src/core/facets/hash/op_push.rb +0 -17
  543. data/src/core/facets/hash/op_sub.rb +0 -26
  544. data/src/core/facets/hash/recurse.rb +0 -29
  545. data/src/core/facets/hash/recursively.rb +0 -61
  546. data/src/core/facets/hash/rekey.rb +0 -79
  547. data/src/core/facets/hash/replace_each.rb +0 -16
  548. data/src/core/facets/hash/reverse_merge.rb +0 -30
  549. data/src/core/facets/hash/select.rb +0 -17
  550. data/src/core/facets/hash/slice.rb +0 -37
  551. data/src/core/facets/hash/stringify_keys.rb +0 -1
  552. data/src/core/facets/hash/subset.rb +0 -24
  553. data/src/core/facets/hash/swap.rb +0 -17
  554. data/src/core/facets/hash/symbolize_keys.rb +0 -92
  555. data/src/core/facets/hash/to_h.rb +0 -1
  556. data/src/core/facets/hash/to_mod.rb +0 -33
  557. data/src/core/facets/hash/to_options.rb +0 -1
  558. data/src/core/facets/hash/to_proc.rb +0 -39
  559. data/src/core/facets/hash/to_struct.rb +0 -17
  560. data/src/core/facets/hash/traverse.rb +0 -47
  561. data/src/core/facets/hash/update.rb +0 -6
  562. data/src/core/facets/hash/update_each.rb +0 -18
  563. data/src/core/facets/hash/update_keys.rb +0 -20
  564. data/src/core/facets/hash/update_values.rb +0 -20
  565. data/src/core/facets/hash/weave.rb +0 -76
  566. data/src/core/facets/hash/zip.rb +0 -18
  567. data/src/core/facets/indexable.rb +0 -270
  568. data/src/core/facets/instance.rb +0 -157
  569. data/src/core/facets/integer.rb +0 -20
  570. data/src/core/facets/integer/bit.rb +0 -1
  571. data/src/core/facets/integer/bitmask.rb +0 -99
  572. data/src/core/facets/integer/even.rb +0 -1
  573. data/src/core/facets/integer/factorial.rb +0 -21
  574. data/src/core/facets/integer/multiple.rb +0 -19
  575. data/src/core/facets/integer/odd.rb +0 -37
  576. data/src/core/facets/integer/of.rb +0 -18
  577. data/src/core/facets/integer/ordinal.rb +0 -24
  578. data/src/core/facets/kernel.rb +0 -20
  579. data/src/core/facets/kernel/__callee__.rb +0 -1
  580. data/src/core/facets/kernel/__class__.rb +0 -9
  581. data/src/core/facets/kernel/__dir__.rb +0 -26
  582. data/src/core/facets/kernel/__get__.rb +0 -15
  583. data/src/core/facets/kernel/__method__.rb +0 -48
  584. data/src/core/facets/kernel/__set__.rb +0 -1
  585. data/src/core/facets/kernel/as.rb +0 -115
  586. data/src/core/facets/kernel/ask.rb +0 -28
  587. data/src/core/facets/kernel/assign.rb +0 -76
  588. data/src/core/facets/kernel/assign_from.rb +0 -1
  589. data/src/core/facets/kernel/attr_singleton.rb +0 -59
  590. data/src/core/facets/kernel/blank.rb +0 -84
  591. data/src/core/facets/kernel/call_stack.rb +0 -56
  592. data/src/core/facets/kernel/callstack.rb +0 -1
  593. data/src/core/facets/kernel/case.rb +0 -8
  594. data/src/core/facets/kernel/complete.rb +0 -26
  595. data/src/core/facets/kernel/constant.rb +0 -20
  596. data/src/core/facets/kernel/d.rb +0 -27
  597. data/src/core/facets/kernel/deep_clone.rb +0 -1
  598. data/src/core/facets/kernel/deep_copy.rb +0 -38
  599. data/src/core/facets/kernel/disable_warnings.rb +0 -26
  600. data/src/core/facets/kernel/enable_warnings.rb +0 -1
  601. data/src/core/facets/kernel/equate.rb +0 -16
  602. data/src/core/facets/kernel/ergo.rb +0 -43
  603. data/src/core/facets/kernel/extend.rb +0 -27
  604. data/src/core/facets/kernel/extension.rb +0 -12
  605. data/src/core/facets/kernel/false.rb +0 -2
  606. data/src/core/facets/kernel/here.rb +0 -11
  607. data/src/core/facets/kernel/identical.rb +0 -4
  608. data/src/core/facets/kernel/in.rb +0 -13
  609. data/src/core/facets/kernel/instance_assign.rb +0 -20
  610. data/src/core/facets/kernel/instance_class.rb +0 -26
  611. data/src/core/facets/kernel/instance_send.rb +0 -7
  612. data/src/core/facets/kernel/load_all.rb +0 -1
  613. data/src/core/facets/kernel/load_relative.rb +0 -1
  614. data/src/core/facets/kernel/maybe.rb +0 -19
  615. data/src/core/facets/kernel/meta_alias.rb +0 -23
  616. data/src/core/facets/kernel/meta_class.rb +0 -17
  617. data/src/core/facets/kernel/meta_def.rb +0 -20
  618. data/src/core/facets/kernel/meta_eval.rb +0 -20
  619. data/src/core/facets/kernel/method.rb +0 -50
  620. data/src/core/facets/kernel/no.rb +0 -1
  621. data/src/core/facets/kernel/not.rb +0 -37
  622. data/src/core/facets/kernel/not_nil.rb +0 -18
  623. data/src/core/facets/kernel/object_class.rb +0 -10
  624. data/src/core/facets/kernel/object_hexid.rb +0 -31
  625. data/src/core/facets/kernel/object_send.rb +0 -33
  626. data/src/core/facets/kernel/p.rb +0 -24
  627. data/src/core/facets/kernel/presence.rb +0 -1
  628. data/src/core/facets/kernel/present.rb +0 -1
  629. data/src/core/facets/kernel/qua_class.rb +0 -31
  630. data/src/core/facets/kernel/require_all.rb +0 -42
  631. data/src/core/facets/kernel/require_relative.rb +0 -52
  632. data/src/core/facets/kernel/respond.rb +0 -42
  633. data/src/core/facets/kernel/returning.rb +0 -27
  634. data/src/core/facets/kernel/silence.rb +0 -73
  635. data/src/core/facets/kernel/silence_warnings.rb +0 -1
  636. data/src/core/facets/kernel/singleton_class.rb +0 -9
  637. data/src/core/facets/kernel/source_location.rb +0 -13
  638. data/src/core/facets/kernel/super_method.rb +0 -11
  639. data/src/core/facets/kernel/tap.rb +0 -48
  640. data/src/core/facets/kernel/temporarily.rb +0 -23
  641. data/src/core/facets/kernel/true.rb +0 -26
  642. data/src/core/facets/kernel/try.rb +0 -58
  643. data/src/core/facets/kernel/val.rb +0 -19
  644. data/src/core/facets/kernel/with.rb +0 -20
  645. data/src/core/facets/kernel/writers.rb +0 -91
  646. data/src/core/facets/kernel/yes.rb +0 -25
  647. data/src/core/facets/lazy.rb +0 -238
  648. data/src/core/facets/matchdata.rb +0 -20
  649. data/src/core/facets/matchdata/match.rb +0 -15
  650. data/src/core/facets/matchdata/matchset.rb +0 -44
  651. data/src/core/facets/method.rb +0 -20
  652. data/src/core/facets/module.rb +0 -20
  653. data/src/core/facets/module/abstract.rb +0 -24
  654. data/src/core/facets/module/alias_accessor.rb +0 -45
  655. data/src/core/facets/module/alias_method_chain.rb +0 -67
  656. data/src/core/facets/module/alias_module_function.rb +0 -30
  657. data/src/core/facets/module/all_instance_methods.rb +0 -19
  658. data/src/core/facets/module/ancestor.rb +0 -16
  659. data/src/core/facets/module/anonymous.rb +0 -25
  660. data/src/core/facets/module/attr_setter.rb +0 -52
  661. data/src/core/facets/module/basename.rb +0 -31
  662. data/src/core/facets/module/can.rb +0 -20
  663. data/src/core/facets/module/class.rb +0 -12
  664. data/src/core/facets/module/class_def.rb +0 -2
  665. data/src/core/facets/module/class_method_defined.rb +0 -1
  666. data/src/core/facets/module/extend.rb +0 -1
  667. data/src/core/facets/module/home.rb +0 -90
  668. data/src/core/facets/module/homename.rb +0 -1
  669. data/src/core/facets/module/housing.rb +0 -1
  670. data/src/core/facets/module/include_function_module.rb +0 -25
  671. data/src/core/facets/module/instance_method.rb +0 -25
  672. data/src/core/facets/module/instance_method_defined.rb +0 -23
  673. data/src/core/facets/module/integrate.rb +0 -49
  674. data/src/core/facets/module/is.rb +0 -57
  675. data/src/core/facets/module/methodize.rb +0 -20
  676. data/src/core/facets/module/modname.rb +0 -1
  677. data/src/core/facets/module/module_def.rb +0 -31
  678. data/src/core/facets/module/nodef.rb +0 -13
  679. data/src/core/facets/module/op.rb +0 -107
  680. data/src/core/facets/module/op_add.rb +0 -1
  681. data/src/core/facets/module/op_mul.rb +0 -1
  682. data/src/core/facets/module/op_sub.rb +0 -1
  683. data/src/core/facets/module/pathize.rb +0 -20
  684. data/src/core/facets/module/redefine_method.rb +0 -37
  685. data/src/core/facets/module/redirect_method.rb +0 -46
  686. data/src/core/facets/module/remove.rb +0 -1
  687. data/src/core/facets/module/rename_method.rb +0 -30
  688. data/src/core/facets/module/revise.rb +0 -41
  689. data/src/core/facets/module/set.rb +0 -36
  690. data/src/core/facets/module/singleton_method_defined.rb +0 -1
  691. data/src/core/facets/module/spacename.rb +0 -25
  692. data/src/core/facets/module/to_obj.rb +0 -20
  693. data/src/core/facets/module/wrap_method.rb +0 -35
  694. data/src/core/facets/na.rb +0 -21
  695. data/src/core/facets/nilclass.rb +0 -20
  696. data/src/core/facets/nilclass/ergo.rb +0 -1
  697. data/src/core/facets/nilclass/to_f.rb +0 -17
  698. data/src/core/facets/numeric.rb +0 -20
  699. data/src/core/facets/numeric/approx.rb +0 -15
  700. data/src/core/facets/numeric/distance.rb +0 -14
  701. data/src/core/facets/numeric/length.rb +0 -10
  702. data/src/core/facets/numeric/round.rb +0 -69
  703. data/src/core/facets/numeric/round_at.rb +0 -1
  704. data/src/core/facets/numeric/round_to.rb +0 -1
  705. data/src/core/facets/numeric/spacing.rb +0 -20
  706. data/src/core/facets/object.rb +0 -20
  707. data/src/core/facets/object/clone.rb +0 -1
  708. data/src/core/facets/object/dup.rb +0 -79
  709. data/src/core/facets/object/object_state.rb +0 -77
  710. data/src/core/facets/object/replace.rb +0 -43
  711. data/src/core/facets/object/try_dup.rb +0 -1
  712. data/src/core/facets/objectspace.rb +0 -20
  713. data/src/core/facets/objectspace/classes.rb +0 -11
  714. data/src/core/facets/objectspace/op_fetch.rb +0 -3
  715. data/src/core/facets/objectspace/reflect.rb +0 -62
  716. data/src/core/facets/proc.rb +0 -20
  717. data/src/core/facets/proc/bind.rb +0 -24
  718. data/src/core/facets/proc/bind_to.rb +0 -17
  719. data/src/core/facets/proc/compose.rb +0 -42
  720. data/src/core/facets/proc/curry.rb +0 -32
  721. data/src/core/facets/proc/partial.rb +0 -33
  722. data/src/core/facets/proc/to_method.rb +0 -38
  723. data/src/core/facets/proc/update.rb +0 -9
  724. data/src/core/facets/process.rb +0 -20
  725. data/src/core/facets/process/daemon.rb +0 -32
  726. data/src/core/facets/range.rb +0 -20
  727. data/src/core/facets/range/combine.rb +0 -47
  728. data/src/core/facets/range/overlap.rb +0 -12
  729. data/src/core/facets/range/to_r.rb +0 -26
  730. data/src/core/facets/range/umbrella.rb +0 -1
  731. data/src/core/facets/range/within.rb +0 -64
  732. data/src/core/facets/regexp.rb +0 -20
  733. data/src/core/facets/regexp/arity.rb +0 -17
  734. data/src/core/facets/regexp/multiline.rb +0 -13
  735. data/src/core/facets/regexp/op_add.rb +0 -18
  736. data/src/core/facets/regexp/op_or.rb +0 -18
  737. data/src/core/facets/regexp/to_re.rb +0 -28
  738. data/src/core/facets/string.rb +0 -20
  739. data/src/core/facets/string/align.rb +0 -125
  740. data/src/core/facets/string/bracket.rb +0 -64
  741. data/src/core/facets/string/bytes.rb +0 -21
  742. data/src/core/facets/string/camelcase.rb +0 -62
  743. data/src/core/facets/string/capitalized.rb +0 -49
  744. data/src/core/facets/string/characters.rb +0 -13
  745. data/src/core/facets/string/cleanlines.rb +0 -27
  746. data/src/core/facets/string/cleave.rb +0 -36
  747. data/src/core/facets/string/cmp.rb +0 -1
  748. data/src/core/facets/string/compress_lines.rb +0 -17
  749. data/src/core/facets/string/divide.rb +0 -18
  750. data/src/core/facets/string/each_char.rb +0 -31
  751. data/src/core/facets/string/each_word.rb +0 -17
  752. data/src/core/facets/string/edit_distance.rb +0 -124
  753. data/src/core/facets/string/end_with.rb +0 -1
  754. data/src/core/facets/string/exclude.rb +0 -10
  755. data/src/core/facets/string/expand_tab.rb +0 -35
  756. data/src/core/facets/string/file.rb +0 -35
  757. data/src/core/facets/string/fold.rb +0 -39
  758. data/src/core/facets/string/indent.rb +0 -67
  759. data/src/core/facets/string/index_all.rb +0 -24
  760. data/src/core/facets/string/interpolate.rb +0 -19
  761. data/src/core/facets/string/lchomp.rb +0 -33
  762. data/src/core/facets/string/line_wrap.rb +0 -18
  763. data/src/core/facets/string/lines.rb +0 -19
  764. data/src/core/facets/string/lowercase.rb +0 -1
  765. data/src/core/facets/string/margin.rb +0 -31
  766. data/src/core/facets/string/methodize.rb +0 -27
  767. data/src/core/facets/string/modulize.rb +0 -31
  768. data/src/core/facets/string/mscan.rb +0 -19
  769. data/src/core/facets/string/natcmp.rb +0 -86
  770. data/src/core/facets/string/nchar.rb +0 -32
  771. data/src/core/facets/string/newlines.rb +0 -32
  772. data/src/core/facets/string/op_div.rb +0 -14
  773. data/src/core/facets/string/op_sub.rb +0 -14
  774. data/src/core/facets/string/outdent.rb +0 -1
  775. data/src/core/facets/string/pathize.rb +0 -28
  776. data/src/core/facets/string/quote.rb +0 -93
  777. data/src/core/facets/string/random_binary.rb +0 -10
  778. data/src/core/facets/string/range.rb +0 -60
  779. data/src/core/facets/string/range_all.rb +0 -1
  780. data/src/core/facets/string/range_of_line.rb +0 -1
  781. data/src/core/facets/string/rewrite.rb +0 -24
  782. data/src/core/facets/string/shatter.rb +0 -22
  783. data/src/core/facets/string/similarity.rb +0 -89
  784. data/src/core/facets/string/snakecase.rb +0 -21
  785. data/src/core/facets/string/splice.rb +0 -33
  786. data/src/core/facets/string/squish.rb +0 -22
  787. data/src/core/facets/string/start_with.rb +0 -60
  788. data/src/core/facets/string/store.rb +0 -7
  789. data/src/core/facets/string/subtract.rb +0 -4
  790. data/src/core/facets/string/tab.rb +0 -17
  791. data/src/core/facets/string/tabto.rb +0 -19
  792. data/src/core/facets/string/titlecase.rb +0 -15
  793. data/src/core/facets/string/to_re.rb +0 -26
  794. data/src/core/facets/string/unbracket.rb +0 -1
  795. data/src/core/facets/string/underscore.rb +0 -22
  796. data/src/core/facets/string/unfold.rb +0 -27
  797. data/src/core/facets/string/unindent.rb +0 -1
  798. data/src/core/facets/string/unquote.rb +0 -1
  799. data/src/core/facets/string/uppercase.rb +0 -23
  800. data/src/core/facets/string/variablize.rb +0 -13
  801. data/src/core/facets/string/word_wrap.rb +0 -32
  802. data/src/core/facets/string/words.rb +0 -12
  803. data/src/core/facets/string/xor.rb +0 -26
  804. data/src/core/facets/struct.rb +0 -20
  805. data/src/core/facets/struct/attributes.rb +0 -15
  806. data/src/core/facets/symbol.rb +0 -20
  807. data/src/core/facets/symbol/as_s.rb +0 -17
  808. data/src/core/facets/symbol/chomp.rb +0 -24
  809. data/src/core/facets/symbol/generate.rb +0 -24
  810. data/src/core/facets/symbol/not.rb +0 -29
  811. data/src/core/facets/symbol/op_div.rb +0 -21
  812. data/src/core/facets/symbol/plain.rb +0 -43
  813. data/src/core/facets/symbol/setter.rb +0 -1
  814. data/src/core/facets/symbol/succ.rb +0 -23
  815. data/src/core/facets/symbol/thrown.rb +0 -18
  816. data/src/core/facets/symbol/to_proc.rb +0 -33
  817. data/src/core/facets/symbol/variablize.rb +0 -14
  818. data/src/core/facets/time.rb +0 -20
  819. data/src/core/facets/time/ago.rb +0 -1
  820. data/src/core/facets/time/change.rb +0 -46
  821. data/src/core/facets/time/dst_adjustment.rb +0 -24
  822. data/src/core/facets/time/elapse.rb +0 -18
  823. data/src/core/facets/time/future.rb +0 -14
  824. data/src/core/facets/time/hence.rb +0 -1
  825. data/src/core/facets/time/in.rb +0 -1
  826. data/src/core/facets/time/less.rb +0 -1
  827. data/src/core/facets/time/past.rb +0 -1
  828. data/src/core/facets/time/round_to.rb +0 -21
  829. data/src/core/facets/time/set.rb +0 -27
  830. data/src/core/facets/time/shift.rb +0 -95
  831. data/src/core/facets/time/stamp.rb +0 -45
  832. data/src/core/facets/time/to_time.rb +0 -21
  833. data/src/core/facets/time/trunc.rb +0 -15
  834. data/src/core/facets/to_hash.rb +0 -336
  835. data/src/core/facets/unboundmethod.rb +0 -20
  836. data/src/core/facets/unboundmethod/arguments.rb +0 -44
  837. data/src/core/facets/unboundmethod/name.rb +0 -28
  838. data/src/standard/facets/basicobject.rb +0 -75
  839. data/src/standard/facets/cgi.rb +0 -44
  840. data/src/standard/facets/continuation.rb +0 -56
  841. data/src/standard/facets/date.rb +0 -433
  842. data/src/standard/facets/digest.rb +0 -2
  843. data/src/standard/facets/digest/base64digest.rb +0 -45
  844. data/src/standard/facets/digest/salted_digest.rb +0 -44
  845. data/src/standard/facets/erb.rb +0 -66
  846. data/src/standard/facets/fileutils.rb +0 -13
  847. data/src/standard/facets/fileutils/amass.rb +0 -33
  848. data/src/standard/facets/fileutils/cp_rx.rb +0 -44
  849. data/src/standard/facets/fileutils/head.rb +0 -1
  850. data/src/standard/facets/fileutils/ln_r.rb +0 -99
  851. data/src/standard/facets/fileutils/outofdate.rb +0 -38
  852. data/src/standard/facets/fileutils/safe_ln.rb +0 -27
  853. data/src/standard/facets/fileutils/slice.rb +0 -55
  854. data/src/standard/facets/fileutils/stage.rb +0 -66
  855. data/src/standard/facets/fileutils/tail.rb +0 -1
  856. data/src/standard/facets/fileutils/wc.rb +0 -63
  857. data/src/standard/facets/fileutils/whereis.rb +0 -66
  858. data/src/standard/facets/fileutils/which.rb +0 -60
  859. data/src/standard/facets/find.rb +0 -16
  860. data/src/standard/facets/getoptlong.rb +0 -59
  861. data/src/standard/facets/math.rb +0 -6
  862. data/src/standard/facets/math/abs.rb +0 -8
  863. data/src/standard/facets/math/acot.rb +0 -8
  864. data/src/standard/facets/math/acoth.rb +0 -8
  865. data/src/standard/facets/math/acsc.rb +0 -8
  866. data/src/standard/facets/math/acsch.rb +0 -8
  867. data/src/standard/facets/math/amd.rb +0 -17
  868. data/src/standard/facets/math/approx_equal.rb +0 -15
  869. data/src/standard/facets/math/asec.rb +0 -8
  870. data/src/standard/facets/math/asech.rb +0 -8
  871. data/src/standard/facets/math/atkinson_index.rb +0 -16
  872. data/src/standard/facets/math/beta.rb +0 -9
  873. data/src/standard/facets/math/cdf.rb +0 -10
  874. data/src/standard/facets/math/ceil.rb +0 -8
  875. data/src/standard/facets/math/cot.rb +0 -8
  876. data/src/standard/facets/math/coth.rb +0 -8
  877. data/src/standard/facets/math/csc.rb +0 -8
  878. data/src/standard/facets/math/csch.rb +0 -8
  879. data/src/standard/facets/math/delta.rb +0 -9
  880. data/src/standard/facets/math/epsilon.rb +0 -21
  881. data/src/standard/facets/math/exp10.rb +0 -8
  882. data/src/standard/facets/math/exp2.rb +0 -8
  883. data/src/standard/facets/math/factorial.rb +0 -37
  884. data/src/standard/facets/math/floor.rb +0 -8
  885. data/src/standard/facets/math/gamma.rb +0 -12
  886. data/src/standard/facets/math/gcd.rb +0 -23
  887. data/src/standard/facets/math/gini_coefficient.rb +0 -33
  888. data/src/standard/facets/math/kldivergence.rb +0 -19
  889. data/src/standard/facets/math/lcm.rb +0 -15
  890. data/src/standard/facets/math/lgamma.rb +0 -21
  891. data/src/standard/facets/math/linsolve.rb +0 -10
  892. data/src/standard/facets/math/log2.rb +0 -14
  893. data/src/standard/facets/math/max.rb +0 -1
  894. data/src/standard/facets/math/mean.rb +0 -16
  895. data/src/standard/facets/math/median.rb +0 -15
  896. data/src/standard/facets/math/min.rb +0 -35
  897. data/src/standard/facets/math/pow.rb +0 -8
  898. data/src/standard/facets/math/pstd.rb +0 -1
  899. data/src/standard/facets/math/pvariance.rb +0 -1
  900. data/src/standard/facets/math/rmd.rb +0 -16
  901. data/src/standard/facets/math/root.rb +0 -8
  902. data/src/standard/facets/math/sec.rb +0 -8
  903. data/src/standard/facets/math/sech.rb +0 -8
  904. data/src/standard/facets/math/sign.rb +0 -9
  905. data/src/standard/facets/math/sinc.rb +0 -8
  906. data/src/standard/facets/math/sqr.rb +0 -8
  907. data/src/standard/facets/math/sqsolve.rb +0 -53
  908. data/src/standard/facets/math/std.rb +0 -27
  909. data/src/standard/facets/math/stderr.rb +0 -1
  910. data/src/standard/facets/math/sum.rb +0 -16
  911. data/src/standard/facets/math/summed_sqdevs.rb +0 -14
  912. data/src/standard/facets/math/theil_index.rb +0 -24
  913. data/src/standard/facets/math/variance.rb +0 -31
  914. data/src/standard/facets/net/http.rb +0 -32
  915. data/src/standard/facets/ostruct.rb +0 -210
  916. data/src/standard/facets/pathname.rb +0 -240
  917. data/src/standard/facets/random.rb +0 -446
  918. data/src/standard/facets/rbconfig.rb +0 -78
  919. data/src/standard/facets/set.rb +0 -32
  920. data/src/standard/facets/shellwords.rb +0 -112
  921. data/src/standard/facets/strscan.rb +0 -16
  922. data/src/standard/facets/thread.rb +0 -98
  923. data/src/standard/facets/uri.rb +0 -211
  924. data/src/standard/facets/yaml.rb +0 -59
  925. data/src/standard/facets/zlib.rb +0 -38
  926. data/src/supplemental/facets/argvector.rb +0 -343
  927. data/src/supplemental/facets/atomicfile.rb +0 -51
  928. data/src/supplemental/facets/enumargs.rb +0 -195
  929. data/src/supplemental/facets/interval.rb +0 -284
  930. data/src/supplemental/facets/main.rb +0 -62
  931. data/src/supplemental/facets/memoizable.rb +0 -141
  932. data/src/supplemental/facets/metaid.rb +0 -7
  933. data/src/supplemental/facets/multipliers.rb +0 -65
  934. data/src/supplemental/facets/multiton.rb +0 -387
  935. data/src/supplemental/facets/nullclass.rb +0 -38
  936. data/src/supplemental/facets/opesc.rb +0 -79
  937. data/src/supplemental/facets/platform.rb +0 -377
  938. data/src/supplemental/facets/reference.rb +0 -83
  939. data/src/supplemental/facets/tuple.rb +0 -282
  940. data/test/core-uncommon/array/test_median.rb +0 -12
  941. data/test/core-uncommon/array/test_percentile.rb +0 -12
  942. data/test/core-uncommon/module/test_cattr.rb +0 -53
  943. data/test/core-uncommon/module/test_prepend.rb +0 -26
  944. data/work/CHANGES +0 -2529
  945. data/work/NOTES.rdoc +0 -143
  946. data/work/bench/bench_load.rb +0 -56
  947. data/work/bench/enumerable/bench_collect.rb +0 -84
  948. data/work/bench/enumerable/bench_count.rb +0 -58
  949. data/work/bench/general/bench_calls.rb +0 -74
  950. data/work/bench/general/bench_includes.rb +0 -25
  951. data/work/bench/general/bench_methods.rb +0 -17
  952. data/work/bench/general/bench_pathname.rb +0 -24
  953. data/work/bench/general/bench_range.rb +0 -64
  954. data/work/bench/general/bench_return.rb +0 -56
  955. data/work/bench/general/bench_yeild.rb +0 -75
  956. data/work/bench/general/comment_loading/bench.rb +0 -46
  957. data/work/bench/general/comment_loading/comments_begin.rb +0 -109
  958. data/work/bench/general/comment_loading/comments_end.rb +0 -127
  959. data/work/bench/general/comment_loading/comments_none.rb +0 -1
  960. data/work/bench/general/comment_loading/comments_sharp.rb +0 -125
  961. data/work/bench/hash/bench_slice.rb +0 -62
  962. data/work/bench/integer/bench_factorial.rb +0 -31
  963. data/work/consider/aspects.rb +0 -254
  964. data/work/consider/attr.rb +0 -82
  965. data/work/consider/bin.rb +0 -26
  966. data/work/consider/blackmagic.rb +0 -103
  967. data/work/consider/bool_attr_accessor.rb +0 -414
  968. data/work/consider/duration.rb +0 -286
  969. data/work/consider/forwardable_chain.patch +0 -448
  970. data/work/consider/knowself.rb +0 -42
  971. data/work/consider/lib/core/facets.rb +0 -37
  972. data/work/consider/lib/core/facets/array/fetch.rb +0 -37
  973. data/work/consider/lib/core/facets/array/op_div.rb +0 -23
  974. data/work/consider/lib/core/facets/hash/having.rb +0 -75
  975. data/work/consider/lib/core/facets/string/trim.rb +0 -70
  976. data/work/consider/lib/more/facets/argv.rb +0 -47
  977. data/work/consider/lib/more/facets/extension.rb +0 -30
  978. data/work/consider/lib/more/facets/fixnum.rb +0 -55
  979. data/work/consider/lib/more/facets/forwardable_chain.patch +0 -448
  980. data/work/consider/lib/more/facets/gem.rb +0 -23
  981. data/work/consider/lib/more/facets/interface.rb +0 -230
  982. data/work/consider/lib/more/facets/plugin.rb +0 -153
  983. data/work/consider/lib/more/facets/recorder.rb +0 -54
  984. data/work/consider/lib/more/facets/tasksystem.rb +0 -350
  985. data/work/consider/mapcar.rb +0 -74
  986. data/work/consider/require_directory.rb +0 -4
  987. data/work/consider/set.rb +0 -47
  988. data/work/consider/succ.rb +0 -44
  989. data/work/consider/succ_case.rb +0 -39
  990. data/work/defunct/core/facets/array/combinations.rb +0 -33
  991. data/work/defunct/core/facets/array/combos.rb +0 -47
  992. data/work/defunct/core/facets/array/each_uniq_pair.rb +0 -43
  993. data/work/defunct/core/facets/array/permutation.rb +0 -75
  994. data/work/defunct/core/facets/array/to_path.rb +0 -14
  995. data/work/defunct/core/facets/class/initializer.rb +0 -60
  996. data/work/defunct/core/facets/class/prepend.rb +0 -52
  997. data/work/defunct/core/facets/class/remove_descendents.rb +0 -42
  998. data/work/defunct/core/facets/enumerable/cascade.rb +0 -28
  999. data/work/defunct/core/facets/enumerable/each.rb +0 -89
  1000. data/work/defunct/core/facets/enumerable/to_hash.rb +0 -30
  1001. data/work/defunct/core/facets/hash/access.rb +0 -146
  1002. data/work/defunct/core/facets/hash/group_by_value.rb +0 -66
  1003. data/work/defunct/core/facets/hash/normalize_keys.rb +0 -134
  1004. data/work/defunct/core/facets/hash/op_div.rb +0 -11
  1005. data/work/defunct/core/facets/hash/variablize_keys.rb +0 -48
  1006. data/work/defunct/core/facets/kernel/__assign__.rb +0 -28
  1007. data/work/defunct/core/facets/kernel/__real__.rb +0 -48
  1008. data/work/defunct/core/facets/kernel/deep_clone.rb +0 -48
  1009. data/work/defunct/core/facets/kernel/instance_assume.rb +0 -66
  1010. data/work/defunct/core/facets/kernel/once.rb +0 -54
  1011. data/work/defunct/core/facets/kernel/warn_with_line.rb +0 -29
  1012. data/work/defunct/core/facets/method/curry.rb +0 -10
  1013. data/work/defunct/core/facets/method/partial.rb +0 -10
  1014. data/work/defunct/core/facets/module/attr_toggler.rb +0 -59
  1015. data/work/defunct/core/facets/module/by_name.rb +0 -56
  1016. data/work/defunct/core/facets/module/compare_on.rb +0 -35
  1017. data/work/defunct/core/facets/module/equate_on.rb +0 -36
  1018. data/work/defunct/core/facets/module/methodize.rb +0 -19
  1019. data/work/defunct/core/facets/module/module_method.rb +0 -14
  1020. data/work/defunct/core/facets/module/on_included.rb +0 -80
  1021. data/work/defunct/core/facets/proc/bind.rb +0 -38
  1022. data/work/defunct/core/facets/proc/to_h.rb +0 -22
  1023. data/work/defunct/core/facets/string/camelcase.rb +0 -25
  1024. data/work/defunct/core/facets/string/indexable.rb +0 -144
  1025. data/work/defunct/core/facets/string/stackable.rb +0 -181
  1026. data/work/defunct/core/facets/string/to_const.rb +0 -31
  1027. data/work/defunct/core/facets/string/to_proc.rb +0 -52
  1028. data/work/defunct/core/facets/symbol/pad.rb +0 -1
  1029. data/work/defunct/core/facets/symbol/shadow.rb +0 -37
  1030. data/work/defunct/core/facets/symbol/to_const.rb +0 -31
  1031. data/work/defunct/more/facets/annotations.rb +0 -302
  1032. data/work/defunct/more/facets/duration.rb +0 -540
  1033. data/work/defunct/more/facets/logger.rb +0 -158
  1034. data/work/defunct/more/facets/multiton.rb +0 -390
  1035. data/work/defunct/more/facets/multiton2.rb +0 -237
  1036. data/work/defunct/more/facets/uploadutils.rb +0 -466
  1037. data/work/defunct/script/conflicts +0 -63
  1038. data/work/defunct/script/methods +0 -49
  1039. data/work/defunct/test/string/test_crypt.rb +0 -17
  1040. data/work/defunct/test/string/test_indexable.rb +0 -68
  1041. data/work/defunct/test/string/test_stackable.rb +0 -94
  1042. data/work/defunct/test/string/test_stylize.rb +0 -52
  1043. data/work/defunct/test/test_continuation.rb +0 -15
  1044. data/work/defunct/test/test_instance_exec.rb +0 -44
  1045. data/work/defunct/test/test_ioredirect.rb +0 -23
  1046. data/work/defunct/test/test_prepend.rb +0 -19
  1047. data/work/defunct/test/test_succ.rb +0 -35
  1048. data/work/defunct/yard.assembly +0 -44
  1049. data/work/sandbox/component.rb +0 -120
  1050. data/work/sandbox/enumerator.rb +0 -12
  1051. data/work/sandbox/enumx.rb +0 -116
  1052. data/work/sandbox/express.rb +0 -48
  1053. data/work/sandbox/multidispatch.rb +0 -236
  1054. data/work/sandbox/multidispatch0.rb +0 -224
  1055. data/work/sandbox/multiton2.rb +0 -590
  1056. data/work/sandbox/namespace.rb +0 -169
  1057. data/work/sandbox/safe-study/safe_extension.rb +0 -17
  1058. data/work/sandbox/safe-study/safe_study.rb +0 -16
  1059. data/work/sandbox/to_data.rb +0 -141
  1060. data/work/sandbox/visit.rb +0 -62
  1061. data/work/site/endorse.page +0 -65
  1062. data/work/site/posts/2010-01-25-test_rails_with_facets.post +0 -151
  1063. data/work/site/posts/enumargs.md +0 -30
  1064. data/work/site/posts/tomslib.rb +0 -47
  1065. data/work/site/posts/weblog.xml +0 -78
  1066. data/work/site/sidebar.txt +0 -19
  1067. data/work/todo/more/test_basicobject.rb +0 -34
  1068. data/work/todo/more/test_fileutils_slice.rb +0 -88
  1069. data/work/todo/more/test_fileutils_wc.rb +0 -53
  1070. data/work/todo/more/test_fileutils_which.rb +0 -45
  1071. data/work/todo/more/test_getoptlong.rb +0 -26
  1072. data/work/todo/more/test_multiton.rb +0 -184
  1073. data/work/trash/hook.rdoc +0 -49
  1074. data/work/trash/menu.html +0 -71
  1075. data/work/trash/site-jekyll/.htaccess +0 -1
  1076. data/work/trash/site-jekyll/.rsync-filter +0 -7
  1077. data/work/trash/site-jekyll/.till +0 -1
  1078. data/work/trash/site-jekyll/_config.yml +0 -6
  1079. data/work/trash/site-jekyll/_layouts/default.html +0 -101
  1080. data/work/trash/site-jekyll/_layouts/post.html +0 -23
  1081. data/work/trash/site-jekyll/_posts/2008-01-01-how-facets-was-born.markdown +0 -25
  1082. data/work/trash/site-jekyll/_posts/2008-04-04-times-collect.markdown +0 -33
  1083. data/work/trash/site-jekyll/_posts/2008-10-10-string-margin.markdown +0 -52
  1084. data/work/trash/site-jekyll/_posts/2009-07-21-new-website.markdown +0 -16
  1085. data/work/trash/site-jekyll/_posts/2009-08-22-release-2-7.markdown +0 -127
  1086. data/work/trash/site-jekyll/_posts/2009-11-09-release-2-8.markdown +0 -58
  1087. data/work/trash/site-jekyll/about.html +0 -79
  1088. data/work/trash/site-jekyll/assets/scripts/hover.js +0 -14
  1089. data/work/trash/site-jekyll/assets/scripts/rdocs.js +0 -28
  1090. data/work/trash/site-jekyll/assets/styles/site.css +0 -317
  1091. data/work/trash/site-jekyll/assets/styles/syntax.css +0 -60
  1092. data/work/trash/site-jekyll/atom.xml +0 -23
  1093. data/work/trash/site-jekyll/community.html +0 -72
  1094. data/work/trash/site-jekyll/download.html +0 -84
  1095. data/work/trash/site-jekyll/endorse.html +0 -64
  1096. data/work/trash/site-jekyll/index.html +0 -17
  1097. data/work/trash/site-jekyll/learn.html +0 -221
  1098. data/work/trash/site-jekyll/source.html +0 -74
  1099. data/work/trash/site/.htaccess +0 -1
  1100. data/work/trash/site/.rsync-filter +0 -10
  1101. data/work/trash/site/js/hover.js +0 -14
  1102. data/work/trash/site/js/rdocs.js +0 -28
  1103. data/work/trash/site/quick.html +0 -250
  1104. data/work/trash/site/splash.html +0 -44
  1105. data/work/trash/task/count +0 -48
  1106. data/work/trash/task/load +0 -40
  1107. data/work/trash/task/publish +0 -83
  1108. data/work/trash/task/tag +0 -26
  1109. data/work/trash/test_inject.rb +0 -17
@@ -1,237 +0,0 @@
1
- require 'thread'
2
-
3
- module Multiton
4
-
5
- # disable build-in copying methods
6
- def clone
7
- raise TypeError, "can't clone Multiton #{self}"
8
- end
9
-
10
- def dup
11
- raise TypeError, "can't dup Multiton #{self}"
12
- end
13
-
14
- protected # default marshalling strategy
15
- def _dump(depth=-1)
16
- Marshal.dump(@multiton_initializer)
17
- end
18
- end
19
-
20
- class << Multiton
21
- private
22
- def append_features(mod)
23
- # help out people counting on transitive mixins
24
- unless mod.instance_of?(Class)
25
- raise TypeError, "Inclusion of Multiton in module #{mod}"
26
- end
27
- super
28
- end
29
-
30
- def included(klass)
31
- # gracefully handle multiple inclusions of Multiton
32
- unless class << klass; include?(Multiton::ClassMethods) end
33
- klass.private_class_method :new,:allocate
34
- klass.extend Multiton::ClassMethods
35
- end
36
- end
37
- end
38
-
39
- module Multiton::ClassMethods
40
- def instance(*e)
41
- arg = multiton_id(e)
42
- @multiton_instance.fetch(arg) {
43
- @multiton_mutex[arg].synchronize {
44
- @multiton_instance.fetch(arg) {
45
- val = @multiton_instance[arg] = new(*e)
46
- val.instance_variable_set(:@multiton_initializer,e)
47
- @multiton_mutex.initialized(arg)
48
- val
49
- }}}
50
- end
51
-
52
- def initialized?(*e)
53
- @multiton_instance.key?(multiton_id(e))
54
- end
55
-
56
- protected
57
- def reinitialize
58
- @multiton_instance.clear
59
- @multiton_mutex.clear
60
- end
61
-
62
- def _load(str)
63
- instance(*Marshal.load(str))
64
- end
65
-
66
- private
67
- def multiton_id(e)
68
- # Default method to to create a key to cache already constructed
69
- # instances. In the use case MultitonClass.new(e), MultiClass.new(f)
70
- # must be semantically equal if multiton_id(e).eql?(multiton_id(f))
71
- # evaluates to true.
72
- e
73
- end
74
-
75
- def initialize_copy(orig)
76
- super
77
- @multiton_instance= Hash.new
78
- @multiton_mutex= InstanceMutex.new
79
- end
80
-
81
- def inherited(sub)
82
- super
83
- sub.instance_eval do
84
- @multiton_instance = Hash.new
85
- @multiton_mutex= InstanceMutex.new
86
- end
87
- end
88
-
89
- class InstanceMutex < Hash
90
- def initialize
91
- @global = Mutex.new
92
- end
93
-
94
- def initialized(arg)
95
- store(arg,DummyMutex)
96
- end
97
-
98
- def (DummyMutex = Object.new).synchronize
99
- yield
100
- end
101
-
102
- def default(arg)
103
- @global.synchronize { fetch(arg) { store(arg,Mutex.new) }}
104
- end
105
- end
106
-
107
- def singleton_method_added(sym)
108
- super
109
- if (sym == :marshal_dump) & singleton_methods.include?('marshal_dump')
110
- raise TypeError, "Don't use marshal_dump - rely on _dump and _load instead"
111
- end
112
- end
113
-
114
- def self.extended(klass)
115
- klass.instance_eval do
116
- @multiton_instance = Hash.new
117
- @multiton_mutex = InstanceMutex.new
118
- if singleton_methods.include?(:marshal_dump)
119
- class << self; undef marshal_dump end
120
- warn "warning: marshal_dump was undefined since it is incompatible with the Multiton pattern"
121
- end
122
- end
123
- end
124
-
125
- private_class_method :extended
126
- end
127
-
128
-
129
-
130
-
131
-
132
- if $0 == __FILE__
133
-
134
- ### Simple marshalling test #######
135
- class A
136
- def initialize(a,*e)
137
- @e = a
138
- end
139
-
140
- include Multiton
141
- begin
142
- def self.marshal_dump(depth = -1)
143
- end
144
- rescue => mes
145
- p mes
146
- class << self; undef marshal_dump end
147
- end
148
- end
149
-
150
- C = Class.new(A.clone)
151
- s = C.instance('a','b')
152
-
153
- raise unless Marshal.load(Marshal.dump(s)) == s
154
-
155
-
156
- ### Interdependent initialization example and threading benchmark ###
157
-
158
- class Regular_SymPlane
159
- def self.multiton_id(e)
160
- a,b = e
161
- (a+b - 1)*(a+b )/2 + (a > b ? a : b)
162
- end
163
-
164
- def initialize(a,b)
165
- klass = self.class
166
- if a < b
167
- @l = b > 0 ? klass.instance(a,b-1) : nil
168
- @r = a > 0 ? klass.instance(a-1,b) : nil
169
- else
170
- @l = a > 0 ? klass.instance(a-1,b) : nil
171
- @r = b > 0 ? klass.instance(a,b-1) : nil
172
- end
173
- end
174
-
175
- include Multiton
176
- end
177
-
178
-
179
-
180
- def nap
181
- # Thread.pass
182
- sleep(rand(0.01))
183
- end
184
-
185
- class SymPlane < Regular_SymPlane
186
- @m = Mutex.new
187
- @count = 0
188
- end
189
-
190
- class << SymPlane
191
- attr_reader :count
192
- def reinitialize
193
- super
194
- @m = Mutex.new
195
- @count = 0
196
- end
197
- def inherited(sub_class)
198
- super
199
- sub_class.instance_eval { @m = Mutex.new; @count = 0 }
200
- end
201
-
202
- def multiton_id(e)
203
- nap()
204
- super
205
- end
206
-
207
- def new(*e)
208
- super
209
- ensure
210
- nap()
211
- @m.synchronize { p @count if (@count += 1) % 15 == 0 }
212
- end
213
-
214
- def run(k)
215
- threads = 0
216
- max = k * (k+1) / 2
217
- puts ""
218
- while count() < max
219
- Thread.new { threads+= 1; instance(rand(30),rand(30)) }
220
- end
221
- puts "\nThe simulation created #{threads} threads"
222
- end
223
- end
224
-
225
-
226
- require 'benchmark'
227
- include Benchmark
228
-
229
- bmbm do |x|
230
- x.report('Initialize 465 SymPlane instances') { SymPlane.run(30) }
231
- x.report('Reinitialize ') do
232
- sleep 3
233
- SymPlane.reinitialize
234
- end
235
- end
236
-
237
- end
@@ -1,466 +0,0 @@
1
- # = UploadUtils
2
- #
3
- # Upload files to host. These means of uploading are current
4
- # supported: ftp, sftp, scp and rsync.
5
- #
6
- # user Username for host.
7
- # host Host server's domain name.
8
- # root Document root path on host.
9
- # copy Directory of files to publish, or
10
- # Files to publish using from and to.
11
- #
12
- # dryrun If true only pretend to upload.
13
- # quiet Supress all output.
14
- # verbose Provide extra details.
15
- #
16
- # The copy parameter allows you to simply specify a file
17
- # or directory which will be published to host's document
18
- # root location.
19
- #
20
- # If you need more control over which files to publish
21
- # where, you can use the copy parameter instead. Provide
22
- # an array of pattern strings in the form of "{from} {to}".
23
- # If the desitination is the host's document root you do
24
- # not need to specify the {to} part. For example:
25
- #
26
- # copy = [ 'web/*', 'doc/api/* doc/api' ]
27
- #
28
- # The first copies the files under your project's web directory
29
- # to the host's document root. The second copies your projects
30
- # doc/api files to the doc/api location on the host.
31
- #
32
- # The internal template used for the outbound destination
33
- # is 'username@host:root/'.
34
- #
35
- # == AUTHORS
36
- #
37
- # * Thomas Sawyer
38
- #
39
- # == TODOs
40
- #
41
- # * Needs general improvements.
42
- # * Reduce shelling-out.
43
- # * Incorporate password into scp and ftp ?
44
- # * rsync needs --delete option
45
- #
46
- # == COPYRIGHT
47
- #
48
- # Copyright (c) 2006 Thomas Sawyer
49
- #
50
- # == LICENSE
51
- #
52
- # Ruby License
53
- #
54
- # This module is free software. You may use, modify, and/or redistribute this
55
- # software under the same terms as Ruby.
56
- #
57
- # This program is distributed in the hope that it will be useful, but WITHOUT
58
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
59
- # FOR A PARTICULAR PURPOSE.
60
-
61
- warn "WARNING: facets/uploadutils.rb will be deprecated. Use Folio or alternate solution for future versions."
62
-
63
- require 'openssl'
64
- require 'shellwords'
65
- require 'tmpdir'
66
- require 'facets/openobject'
67
-
68
- # = UploadUtils
69
- #
70
- # Upload files to host. These means of uploading are current
71
- # supported: ftp, sftp, scp and rsync.
72
- #
73
- # user Username for host.
74
- # host Host server's domain name.
75
- # root Document root path on host.
76
- # copy Directory of files to publish, or
77
- # Files to publish using from and to.
78
- #
79
- # dryrun If true only pretend to upload.
80
- # quiet Supress all output.
81
- # verbose Provide extra details.
82
- #
83
- # The copy parameter allows you to simply specify a file
84
- # or directory which will be published to host's document
85
- # root location.
86
- #
87
- # If you need more control over which files to publish
88
- # where, you can use the copy parameter instead. Provide
89
- # an array of pattern strings in the form of "{from} {to}".
90
- # If the desitination is the host's document root you do
91
- # not need to specify the {to} part. For example:
92
- #
93
- # copy = [ 'web/*', 'doc/api/* doc/api' ]
94
- #
95
- # The first copies the files under your project's web directory
96
- # to the host's document root. The second copies your projects
97
- # doc/api files to the doc/api location on the host.
98
- #
99
- # The internal template used for the outbound destination
100
- # is 'username@host:root/'.
101
-
102
- module UploadUtils
103
-
104
- module_function
105
-
106
- #
107
- # Upload via given protocol.
108
- #
109
-
110
- def upload( protocol, opts )
111
- send(protocol.to_s.downcase,opts)
112
- end
113
-
114
- #
115
- # Use ftp to upload files.
116
- #
117
-
118
- def ftp( keys )
119
- keys = upload_parameters(keys)
120
-
121
- # set transfer rules
122
- if keys.stage
123
- trans = stage_transfer(keys.stage)
124
- else
125
- files(keys.dir, keys.copy).each do |from|
126
- trans << [from,from]
127
- end
128
- end
129
-
130
- # append location of publication dir to from
131
- dir = keys.dir
132
- trans.collect!{ |from,to| [File.join(dir,from), to] }
133
-
134
- if keys.dryrun
135
- puts "ftp open #{keys.user}@#{keys.host}:#{keys.root}/"
136
- keys.trans.each do |f, t|
137
- puts "ftp put #{f} #{t}"
138
- end
139
- else
140
- require 'net/ftp'
141
- Net::FTP.open(keys.host) do |ftp|
142
- ftp.login(keys.user) #password?
143
- ftp.chdir(keys.root)
144
- keys.trans.each do |f, t|
145
- puts "ftp #{f} #{t}" unless keys.quiet
146
- ftp.putbinaryfile( f, t, 1024 )
147
- end
148
- end
149
- end
150
- end
151
-
152
- #
153
- # Use sftp to upload files.
154
- #
155
-
156
- def sftp( keys )
157
- keys = upload_parameters(keys)
158
-
159
- # set transfer rules
160
- if keys.stage
161
- trans = stage_transfer(keys.stage)
162
- else
163
- files(keys.dir, keys.copy).each do |from|
164
- trans << [from,from]
165
- end
166
- end
167
-
168
- # append location of publication dir to from
169
- dir = keys.dir
170
- trans.collect!{ |from,to| [File.join(dir,from), to] }
171
-
172
- if keys.dryrun
173
- puts "sftp open #{keys.user}@#{keys.host}:#{keys.root}/"
174
- keys.trans.each do |f,t|
175
- puts "sftp put #{f} #{t}"
176
- end
177
- else
178
- require 'net/sftp'
179
- Net::SFTP.start(keys.host, keys.user, keys.pass) do |sftp|
180
- #sftp.login( user )
181
- sftp.chdir(keys.root)
182
- keys.trans.each do |f,t|
183
- puts "sftp #{f} #{t}" unless keys.quiet
184
- sftp.put_file(f,t) #, 1024 )
185
- end
186
- end
187
- end
188
- end
189
-
190
- #
191
- # Use rsync to upload files.
192
- #
193
-
194
- def rsync( keys )
195
- keys = upload_parameters(keys)
196
-
197
- flags = []
198
- flags << "-n" if keys.dryrun
199
- flags << "-q" if keys.quiet
200
- flags << "-v" if keys.verbose
201
- flags << "--progress" unless keys.quiet
202
- flags = flags.join(' ').strip
203
- flags = ' ' + flags unless flags.empty?
204
-
205
- manfile = 'Publish.txt'
206
-
207
- if keys.stage
208
- dir = stage_linkdir(keys.dir, keys.stage)
209
- Dir.chdir(dir) do
210
- cpy = files(keys.copy)
211
- end
212
- manifest = File.join(dir,manfile)
213
- cmd = %{rsync#{flags} -L -arz --files-from='#{manifest}' #{dir} #{keys.user}@#{keys.host}:/#{keys.root}}
214
- else
215
- dir = keys.dir
216
- cpy = files(dir, keys.copy)
217
- manifest = File.join(dir,manfile)
218
- cmd = %{rsync#{flags} -arz --files-from='#{manifest}' #{dir} #{keys.user}@#{keys.host}:/#{keys.root}}
219
- end
220
-
221
- #Dir.chdir(keys.dir) do
222
- begin
223
- File.open(manifest, 'w'){ |f| f << cpy.join("\n") }
224
- ENV['RSYNC_PASSWORD'] = keys.pass if keys.pass
225
- puts cmd unless keys.quiet
226
- system cmd
227
- ensure
228
- ENV.delete('RSYNC_PASSWORD') if keys.pass
229
- end
230
- #end
231
-
232
- end
233
-
234
- # private (can't do b/c of module_function)
235
-
236
- # parse publishing options.
237
-
238
- def upload_parameters( keys )
239
- keys = OpenObject.new(keys)
240
-
241
- keys.copy = keys.copy || '**/*'
242
- keys.host = keys.host || keys.domain
243
- keys.user = keys.user || keys.username
244
- keys.root = keys.root || '/'
245
- #keys.pass = keys.pass || keys.password
246
-
247
- # validate
248
- raise ArgumentError, "missing publish parameter -- dir" unless keys.dir
249
- raise ArgumentError, "missing publish parameter -- host" unless keys.host
250
- raise ArgumentError, "missing publish parameter -- user" unless keys.user
251
- #raise ArgumentError, "missing publish parameter -- copy" unless keys.copy
252
- #raise ArgumentError, "missing publish parameter -- root" unless keys.root
253
-
254
- keys.root = '' if keys.root.nil?
255
- keys.root.sub!(/^\//,'')
256
-
257
- if String===keys.copy and File.directory?(keys.copy)
258
- copy = File.join(keys.copy, '*')
259
- end
260
- keys.copy = [keys.copy].flatten.compact
261
-
262
- # trans = []
263
- # keys.copy.each do |from|
264
- # #from, to = *Shellwords.shellwords(c)
265
- # #to = from if to.nil?
266
- # #to = to[1..-1] if to[0,1] == '/'
267
- # from.sub('*','**/*') unless from =~ /\*\*/
268
- # files = Dir.glob(from)
269
- # files.each do |f|
270
- # #t = File.join(to,File.basename(f))
271
- # #t = t[1..-1] if t[0,1] == '/'
272
- # trans << [f,f]
273
- # end
274
- # end
275
- # keys.trans = trans
276
-
277
- return keys
278
- end
279
-
280
- # Put together the list of files to copy.
281
-
282
- def files( dir, copy )
283
- Dir.chdir(dir) do
284
- del, add = copy.partition{ |f| /^[-]/ =~ f }
285
-
286
- # remove - and + prefixes
287
- del.collect!{ |f| f.sub(/^[-]/,'') }
288
- add.collect!{ |f| f.sub(/^[+]/,'') }
289
-
290
- #del.concat(must_exclude)
291
-
292
- files = []
293
- add.each{ |g| files += Dir.multiglob(g) }
294
- del.each{ |g| files -= Dir.multiglob(g) }
295
-
296
- files.collect!{ |f| f.sub(/^\//,'') }
297
-
298
- return files
299
- end
300
- end
301
-
302
- # Combine three part stage list into a two part from->to list.
303
- #
304
- # Using the stage list of three space separated fields.
305
- #
306
- # fromdir file todir
307
- #
308
- # This is used to generate a from -> to list of the form:
309
- #
310
- # fromdir/file todir/file
311
- #
312
-
313
- def stage_transfer( list )
314
- trans = []
315
- list.each do |line|
316
- trans << Shellwords.shellwords(line)
317
- end
318
-
319
- trans.collect! do |from, base, to|
320
- file = File.join(from,base)
321
- to = File.join(to,base)
322
- [from, to]
323
- end
324
- end
325
-
326
- # When using stage options this will create temporary linked location.
327
-
328
- def stage_linkdir( dir, list )
329
- folder = File.join(Dir.tmpdir, 'ratchets', 'project', object_id.abs.to_s)
330
- FileUtils.mkdir_p(folder)
331
-
332
- Dir.chdir(dir) do
333
- stage_transfer(list).each do |file, to|
334
- link = File.join(folder,to)
335
- FileUtils.ln_s(link,file)
336
- end
337
- end
338
-
339
- return folder
340
- end
341
-
342
-
343
- =begin
344
-
345
-
346
- #--
347
- # SHELLS OUT! Need net/scp library to fix.
348
- #++
349
-
350
- # Use scp to upload files.
351
-
352
- def scp( keys )
353
- keys = upload_parameters(keys)
354
-
355
- flags = []
356
- flags << "-v" if keys.verbose
357
- flags << "-q" if keys.quiet
358
- flags = flags.join(' ').strip
359
- flags = ' ' + flags unless flags.empty?
360
-
361
- upload_stage(keys) do #|tmpdir|
362
- cmd = "scp -r#{flags} * #{keys.user}@#{keys.host}:/#{keys.root}"
363
- puts cmd unless keys.quiet
364
- system cmd unless keys.dryrun
365
- end
366
- end
367
-
368
- # Use rsync to upload files.
369
-
370
- def rsync( keys )
371
- keys = upload_parameters(keys)
372
-
373
- flags = []
374
- flags << "-n" if keys.dryrun
375
- flags << "-v" if keys.verbose
376
- flags << "-q" if keys.quiet
377
- flags = flags.join(' ').strip
378
- flags = ' ' + flags unless flags.empty?
379
-
380
- upload_stage(keys) do #|tmpdir|
381
- begin
382
- ENV['RSYNC_PASSWORD'] = keys.pass if keys.pass
383
- cmd = "rsync -R#{flags} -arz * #{keys.user}@#{keys.host} /#{keys.root}"
384
- ensure
385
- ENV.delete('RSYNC_PASSWORD') if keys.pass
386
- end
387
- end
388
- end
389
-
390
- # Use ftp to upload files.
391
-
392
- def ftp( keys )
393
- keys = upload_parameters(keys)
394
-
395
- if keys.dryrun
396
- puts "ftp open #{keys.user}@#{keys.host}:#{keys.root}/"
397
- keys.trans.each do |f, t|
398
- puts "ftp put #{f} #{t}"
399
- end
400
- else
401
- require 'net/ftp'
402
- Net::FTP.open(keys.host) do |ftp|
403
- ftp.login(keys.user) #password?
404
- ftp.chdir(keys.root)
405
- keys.trans.each do |f, t|
406
- puts "ftp #{f} #{t}" unless keys.quiet
407
- ftp.putbinaryfile( f, t, 1024 )
408
- end
409
- end
410
- end
411
- end
412
-
413
- # Use sftp to upload files.
414
-
415
- def sftp( keys )
416
- keys = upload_parameters(keys)
417
-
418
- if keys.dryrun
419
- puts "sftp open #{keys.user}@#{keys.host}:#{keys.root}/"
420
- keys.trans.each do |f,t|
421
- puts "sftp put #{f} #{t}"
422
- end
423
- else
424
- require 'net/sftp'
425
- Net::SFTP.start(keys.host, keys.user, keys.pass) do |sftp|
426
- #sftp.login( user )
427
- sftp.chdir(keys.root)
428
- keys.trans.each do |f,t|
429
- puts "sftp #{f} #{t}" unless keys.quiet
430
- sftp.put_file(f,t) #, 1024 )
431
- end
432
- end
433
- end
434
- end
435
-
436
-
437
-
438
- # Creates a stage from which the whole directory can be uploaded.
439
- # This is needed for scp and rsync which have to shelled out,
440
- # and can't conveniently copy one file at a time.
441
-
442
- def upload_stage(keys) #:yield:
443
- tmp = "scp_#{object_id.abs}_#{ Time.now.strftime("%Y%m%d%H%M%S")}"
444
- tmpdir = File.join(Dir.tmpdir,tmp)
445
-
446
- puts "mkdir -p #{tmpdir}" unless keys.quiet
447
- FileUtils.mkdir_p(tmpdir) # go ahead and do this even if dryrun
448
-
449
- fu = keys.dryrun ? FileUtils::DryRun : FileUtils
450
- keys.trans.each do |f, t|
451
- to = File.join(tmpdir, t)
452
- fu.mv(f,to)
453
- end
454
-
455
- puts "cd #{tmpdir}" unless keys.quiet
456
- Dir.chdir(tmpdir) do
457
- yield #(tmpdir)
458
- end
459
-
460
- puts "rm -r #{tmpdir}" unless keys.quiet
461
- FileUtils.rm_r(tmpdir) # now remove the temp dir
462
- end
463
-
464
- =end
465
-
466
- end