facets 2.6.0 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (321) hide show
  1. data/HISTORY.rdoc +331 -35
  2. data/MANIFEST +685 -826
  3. data/{doc/guide/notes.rd → NOTES} +0 -0
  4. data/README.rdoc +73 -25
  5. data/Rakefile +245 -2
  6. data/TODO +5 -0
  7. data/demo/hook.rd +47 -0
  8. data/demo/scenario_require.rd +9 -0
  9. data/doc/README.more +24 -6
  10. data/doc/manual/about.rb +47 -0
  11. data/doc/manual/annotations.rdoc +60 -0
  12. data/doc/manual/associations.rdoc +55 -0
  13. data/doc/manual/blockups.rdoc +101 -0
  14. data/doc/manual/capsule.rdoc +34 -0
  15. data/doc/manual/command.rdoc +177 -0
  16. data/doc/manual/core.rdoc +37 -0
  17. data/doc/manual/faq.rdoc +32 -0
  18. data/doc/manual/typecast.html +112 -0
  19. data/lib/core/facets.rb +359 -11
  20. data/lib/core/facets/array/combination.rb +3 -3
  21. data/lib/core/facets/array/index.rb +4 -1
  22. data/lib/core/facets/array/permutation.rb +2 -2
  23. data/lib/core/facets/array/product.rb +1 -1
  24. data/lib/core/facets/binding/eval.rb +1 -1
  25. data/lib/core/facets/denumerable.rb +76 -0
  26. data/lib/core/facets/duplicable.rb +34 -0
  27. data/lib/core/facets/enumerable/count.rb +10 -4
  28. data/lib/core/facets/enumerable/defer.rb +77 -0
  29. data/lib/core/facets/enumerable/each_by.rb +1 -1
  30. data/lib/core/facets/enumerable/every.rb +35 -0
  31. data/lib/{more/facets/elementwise.rb → core/facets/enumerable/ewise.rb} +0 -0
  32. data/lib/core/facets/enumerable/filter.rb +25 -0
  33. data/lib/core/facets/enumerable/group_by.rb +1 -1
  34. data/lib/core/facets/enumerable/none.rb +3 -2
  35. data/lib/core/facets/enumerable/one.rb +3 -2
  36. data/lib/core/facets/enumerable/per.rb +61 -0
  37. data/lib/core/facets/exception/raised.rb +14 -0
  38. data/lib/core/facets/integer/odd.rb +5 -1
  39. data/lib/core/facets/kernel/__dir__.rb +13 -3
  40. data/lib/core/facets/kernel/__here__.rb +14 -0
  41. data/lib/core/facets/kernel/__method__.rb +9 -3
  42. data/lib/core/facets/kernel/ask.rb +1 -0
  43. data/lib/core/facets/kernel/equate.rb +13 -0
  44. data/lib/core/facets/kernel/extension.rb +9 -0
  45. data/lib/core/facets/kernel/identical.rb +4 -0
  46. data/lib/core/facets/kernel/instance_exec.rb +2 -1
  47. data/lib/core/facets/kernel/method.rb +49 -0
  48. data/lib/core/facets/kernel/object_send.rb +2 -2
  49. data/lib/core/facets/kernel/{state.rb → object_state.rb} +23 -12
  50. data/lib/core/facets/kernel/require_all.rb +6 -1
  51. data/lib/core/facets/kernel/require_local.rb +8 -1
  52. data/lib/core/facets/kernel/require_relative.rb +52 -0
  53. data/lib/core/facets/kernel/source_location.rb +13 -0
  54. data/lib/core/facets/kernel/tap.rb +13 -6
  55. data/lib/core/facets/module/attr_setter.rb +57 -0
  56. data/lib/core/facets/module/instance_method.rb +24 -0
  57. data/lib/core/facets/module/module_load.rb +60 -44
  58. data/lib/core/facets/module/module_require.rb +1 -0
  59. data/lib/core/facets/nilclass/to_f.rb +1 -1
  60. data/lib/core/facets/objectspace/op_fetch.rb +3 -0
  61. data/lib/core/facets/proc/curry.rb +4 -3
  62. data/lib/core/facets/string/bytes.rb +10 -4
  63. data/lib/core/facets/string/camelcase.rb +6 -5
  64. data/lib/core/facets/string/chars.rb +5 -1
  65. data/lib/core/facets/string/each_char.rb +1 -1
  66. data/lib/core/facets/string/each_word.rb +1 -1
  67. data/lib/core/facets/string/lines.rb +11 -4
  68. data/lib/core/facets/string/start_with.rb +9 -2
  69. data/lib/core/facets/string/unfold.rb +27 -0
  70. data/lib/core/facets/symbol/succ.rb +3 -3
  71. data/lib/core/facets/symbol/thrown.rb +20 -0
  72. data/lib/core/facets/symbol/to_proc.rb +3 -2
  73. data/lib/core/facets/time/to_time.rb +1 -1
  74. data/lib/core/facets/to_hash.rb +41 -100
  75. data/lib/core/facets/unboundmethod/name.rb +20 -23
  76. data/lib/more/facets/ansicode.rb +1 -10
  77. data/lib/more/facets/autoarray.rb +3 -31
  78. data/lib/more/facets/basicobject.rb +73 -0
  79. data/lib/more/facets/blankslate.rb +2 -66
  80. data/lib/{lore → more}/facets/cgi.rb +0 -0
  81. data/lib/more/facets/class_extend.rb +1 -0
  82. data/lib/{lore → more}/facets/continuation.rb +0 -0
  83. data/lib/{lore → more}/facets/date.rb +3 -3
  84. data/lib/more/facets/enumargs.rb +192 -0
  85. data/lib/more/facets/enumerablepass.rb +2 -216
  86. data/lib/more/facets/enumerator.rb +62 -0
  87. data/lib/more/facets/{equatable.rb → equitable.rb} +11 -11
  88. data/lib/more/facets/expirable.rb +13 -41
  89. data/lib/{lore → more}/facets/fileutils.rb +0 -0
  90. data/lib/{lore → more}/facets/fileutils/head.rb +0 -0
  91. data/lib/{lore → more}/facets/fileutils/safe_ln.rb +0 -0
  92. data/lib/{lore → more}/facets/fileutils/slice.rb +0 -0
  93. data/lib/{lore → more}/facets/fileutils/tail.rb +0 -0
  94. data/lib/{lore → more}/facets/fileutils/wc.rb +0 -0
  95. data/lib/{lore → more}/facets/fileutils/whereis.rb +0 -0
  96. data/lib/{lore → more}/facets/fileutils/which.rb +0 -0
  97. data/lib/{lore → more}/facets/getoptlong.rb +0 -0
  98. data/lib/more/facets/hook.rb +2 -29
  99. data/lib/more/facets/inheritor.rb +2 -2
  100. data/lib/more/facets/instance_eval.rb +50 -0
  101. data/lib/more/facets/instance_function.rb +78 -0
  102. data/lib/more/facets/main.rb +20 -15
  103. data/lib/more/facets/memoize.rb +1 -113
  104. data/lib/more/facets/module/attr.rb +83 -0
  105. data/lib/more/facets/module/attr_tester.rb +44 -0
  106. data/lib/more/facets/module/attr_toggler.rb +59 -0
  107. data/lib/more/facets/module/attr_validator.rb +34 -0
  108. data/lib/more/facets/{class_extension.rb → module/class_extend.rb} +21 -13
  109. data/lib/more/facets/once.rb +59 -0
  110. data/lib/more/facets/openmodule.rb +1 -0
  111. data/lib/more/facets/orderedhash.rb +1 -33
  112. data/lib/{lore → more}/facets/ostruct.rb +0 -0
  113. data/lib/more/facets/ostructable.rb +1 -4
  114. data/lib/more/facets/partial.rb +18 -16
  115. data/lib/{lore → more}/facets/pathname.rb +0 -0
  116. data/lib/more/facets/preinitialize.rb +157 -0
  117. data/lib/{lore → more}/facets/rbconfig.rb +0 -0
  118. data/lib/more/facets/recorder.rb +1 -2
  119. data/lib/{lore → more}/facets/set.rb +0 -0
  120. data/lib/{lore → more}/facets/shellwords.rb +0 -0
  121. data/lib/{lore → more}/facets/uri.rb +0 -0
  122. data/lib/{lore → more}/facets/yaml.rb +0 -0
  123. data/lib/{lore → more}/facets/zlib.rb +0 -0
  124. data/meta/loadpath +0 -1
  125. data/meta/sitemap +4 -0
  126. data/meta/version +1 -1
  127. data/test/core/enumerable/test_count.rb +1 -1
  128. data/test/{more/test_filter.rb → core/enumerable/test_defer.rb} +24 -22
  129. data/test/{more/test_elementor.rb → core/enumerable/test_every.rb} +2 -15
  130. data/test/core/enumerable/test_ewise.rb +23 -0
  131. data/test/core/enumerable/test_per.rb +18 -0
  132. data/test/core/enumerable/test_take.rb +13 -0
  133. data/test/core/kernel/test_deepcopy.rb +1 -1
  134. data/test/{more/test_1stclassmethod.rb → core/kernel/test_method.rb} +2 -7
  135. data/test/core/kernel/test_tap.rb +1 -1
  136. data/test/core/proc/test_curry.rb +11 -0
  137. data/test/core/string/test_bytes.rb +1 -1
  138. data/test/core/string/test_camelcase.rb +23 -6
  139. data/test/core/string/test_lines.rb +1 -1
  140. data/test/core/string/test_unfold.rb +14 -0
  141. data/test/{more → core}/test_blank.rb +0 -0
  142. data/test/{more → core}/test_boolean.rb +0 -0
  143. data/test/{more → core}/test_functor.rb +0 -0
  144. data/test/{lore → more}/test_basicobject.rb +0 -0
  145. data/test/more/{test_class_extension.rb → test_class_extend.rb} +6 -6
  146. data/test/{lore → more}/test_continuation.rb +0 -0
  147. data/test/{lore → more}/test_date.rb +0 -0
  148. data/test/more/{test_enumerablepass.rb → test_enumargs.rb} +2 -4
  149. data/test/more/{test_equatable.rb → test_equitable.rb} +2 -2
  150. data/test/more/{test_instantise.rb → test_instance_function.rb} +3 -2
  151. data/test/more/test_memoize.rb +1 -1
  152. data/test/{lore → more}/test_ostruct.rb +0 -0
  153. metadata +865 -1016
  154. data/RELEASE +0 -38
  155. data/doc/README.lore +0 -51
  156. data/doc/log/basic_stats/index.html +0 -39
  157. data/doc/log/changelog.html +0 -648
  158. data/doc/log/changelog.txt +0 -217
  159. data/doc/log/stats/index.html +0 -39
  160. data/doc/log/testlog.txt +0 -278
  161. data/doc/notes/CHANGES +0 -2529
  162. data/doc/rdoc/lore/classes/Array.html +0 -176
  163. data/doc/rdoc/lore/classes/CGI.html +0 -191
  164. data/doc/rdoc/lore/classes/Config.html +0 -135
  165. data/doc/rdoc/lore/classes/Continuation.html +0 -113
  166. data/doc/rdoc/lore/classes/Date.html +0 -631
  167. data/doc/rdoc/lore/classes/DateTime.html +0 -583
  168. data/doc/rdoc/lore/classes/Enumerable.html +0 -89
  169. data/doc/rdoc/lore/classes/Enumerable/Enumerator.html +0 -147
  170. data/doc/rdoc/lore/classes/File.html +0 -128
  171. data/doc/rdoc/lore/classes/FileUtils.html +0 -434
  172. data/doc/rdoc/lore/classes/GetoptLong.html +0 -118
  173. data/doc/rdoc/lore/classes/GetoptLong/DSL.html +0 -208
  174. data/doc/rdoc/lore/classes/Kernel.html +0 -135
  175. data/doc/rdoc/lore/classes/Logger.html +0 -229
  176. data/doc/rdoc/lore/classes/Logger/Ansicolor.html +0 -277
  177. data/doc/rdoc/lore/classes/Logger/LogDevice.html +0 -121
  178. data/doc/rdoc/lore/classes/NilClass.html +0 -119
  179. data/doc/rdoc/lore/classes/OpenStruct.html +0 -432
  180. data/doc/rdoc/lore/classes/Pathname.html +0 -353
  181. data/doc/rdoc/lore/classes/Set.html +0 -117
  182. data/doc/rdoc/lore/classes/Shellwords.html +0 -111
  183. data/doc/rdoc/lore/classes/String.html +0 -140
  184. data/doc/rdoc/lore/classes/Time.html +0 -154
  185. data/doc/rdoc/lore/classes/URI.html +0 -454
  186. data/doc/rdoc/lore/classes/URI/Hash.html +0 -105
  187. data/doc/rdoc/lore/classes/URI/Kernel.html +0 -122
  188. data/doc/rdoc/lore/classes/Zlib.html +0 -188
  189. data/doc/rdoc/lore/created.rid +0 -1
  190. data/doc/rdoc/lore/files/README.html +0 -286
  191. data/doc/rdoc/lore/files/doc/README_lore.html +0 -155
  192. data/doc/rdoc/lore/files/lib/lore/facets/basicobject_rb.html +0 -118
  193. data/doc/rdoc/lore/files/lib/lore/facets/cgi_rb.html +0 -111
  194. data/doc/rdoc/lore/files/lib/lore/facets/continuation_rb.html +0 -147
  195. data/doc/rdoc/lore/files/lib/lore/facets/date_rb.html +0 -97
  196. data/doc/rdoc/lore/files/lib/lore/facets/enumerator_rb.html +0 -111
  197. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/head_rb.html +0 -96
  198. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/safe_ln_rb.html +0 -96
  199. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/slice_rb.html +0 -96
  200. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/tail_rb.html +0 -96
  201. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/wc_rb.html +0 -96
  202. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/whereis_rb.html +0 -96
  203. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/which_rb.html +0 -96
  204. data/doc/rdoc/lore/files/lib/lore/facets/fileutils_rb.html +0 -131
  205. data/doc/rdoc/lore/files/lib/lore/facets/getoptlong_rb.html +0 -135
  206. data/doc/rdoc/lore/files/lib/lore/facets/logger_rb.html +0 -142
  207. data/doc/rdoc/lore/files/lib/lore/facets/ostruct_rb.html +0 -135
  208. data/doc/rdoc/lore/files/lib/lore/facets/pathname_rb.html +0 -145
  209. data/doc/rdoc/lore/files/lib/lore/facets/rbconfig_rb.html +0 -124
  210. data/doc/rdoc/lore/files/lib/lore/facets/set_rb.html +0 -96
  211. data/doc/rdoc/lore/files/lib/lore/facets/shellwords_rb.html +0 -124
  212. data/doc/rdoc/lore/files/lib/lore/facets/uri_rb.html +0 -125
  213. data/doc/rdoc/lore/files/lib/lore/facets/yaml_rb.html +0 -146
  214. data/doc/rdoc/lore/files/lib/lore/facets/zlib_rb.html +0 -97
  215. data/doc/rdoc/lore/fr_class_index.html +0 -73
  216. data/doc/rdoc/lore/fr_file_index.html +0 -71
  217. data/doc/rdoc/lore/fr_method_index.html +0 -177
  218. data/doc/rdoc/lore/index.html +0 -26
  219. data/doc/rdoc/lore/rdoc-style.css +0 -177
  220. data/doc/release-notes/RELEASE-2.0.5 +0 -8
  221. data/doc/release-notes/RELEASE-2.1.0 +0 -9
  222. data/doc/release-notes/RELEASE-2.1.1 +0 -5
  223. data/doc/release-notes/RELEASE-2.1.2 +0 -6
  224. data/doc/release-notes/RELEASE-2.1.3 +0 -5
  225. data/doc/release-notes/RELEASE-2.2.0 +0 -14
  226. data/doc/release-notes/RELEASE-2.2.1 +0 -4
  227. data/doc/release-notes/RELEASE-2.3.0 +0 -6
  228. data/doc/release-notes/RELEASE-2.4.0 +0 -70
  229. data/doc/release-notes/RELEASE-2.4.1 +0 -8
  230. data/doc/release-notes/RELEASE-2.4.2 +0 -4
  231. data/doc/release-notes/RELEASE-2.4.3 +0 -78
  232. data/doc/release-notes/RELEASE-2.4.4 +0 -38
  233. data/doc/release-notes/RELEASE-2.4.5 +0 -37
  234. data/doc/release-notes/RELEASE-2.5.0 +0 -83
  235. data/lib/core/facets/kernel/instance.rb +0 -19
  236. data/lib/lore/facets/basicobject.rb +0 -14
  237. data/lib/lore/facets/enumerator.rb +0 -67
  238. data/lib/lore/facets/logger.rb +0 -291
  239. data/lib/more/facets/1stclassmethod.rb +0 -140
  240. data/lib/more/facets/advisable.rb +0 -162
  241. data/lib/more/facets/association.rb +0 -210
  242. data/lib/more/facets/attr.rb +0 -209
  243. data/lib/more/facets/basex.rb +0 -37
  244. data/lib/more/facets/bbcode.rb +0 -397
  245. data/lib/more/facets/bicrypt.rb +0 -265
  246. data/lib/more/facets/binreadable.rb +0 -221
  247. data/lib/more/facets/censor.rb +0 -97
  248. data/lib/more/facets/classmethods.rb +0 -199
  249. data/lib/more/facets/consoleutils.rb +0 -99
  250. data/lib/more/facets/crypt.rb +0 -166
  251. data/lib/more/facets/dependency.rb +0 -151
  252. data/lib/more/facets/downloader.rb +0 -281
  253. data/lib/more/facets/duplicable.rb +0 -43
  254. data/lib/more/facets/elementor.rb +0 -133
  255. data/lib/more/facets/filter.rb +0 -121
  256. data/lib/more/facets/heap.rb +0 -22
  257. data/lib/more/facets/infinity.rb +0 -193
  258. data/lib/more/facets/ini.rb +0 -264
  259. data/lib/more/facets/instantise.rb +0 -1
  260. data/lib/more/facets/instantize.rb +0 -95
  261. data/lib/more/facets/interval.rb +0 -282
  262. data/lib/more/facets/iteration.rb +0 -65
  263. data/lib/more/facets/linkedlist.rb +0 -222
  264. data/lib/more/facets/lrucache.rb +0 -157
  265. data/lib/more/facets/matcher.rb +0 -140
  266. data/lib/more/facets/memoizer.rb +0 -74
  267. data/lib/more/facets/minitar.rb +0 -1063
  268. data/lib/more/facets/nackclass.rb +0 -41
  269. data/lib/more/facets/net/smtp_tls.rb +0 -131
  270. data/lib/more/facets/nilstatus.rb +0 -48
  271. data/lib/more/facets/overload.rb +0 -94
  272. data/lib/more/facets/paramix.rb +0 -202
  273. data/lib/more/facets/pool.rb +0 -91
  274. data/lib/more/facets/pqueue.rb +0 -449
  275. data/lib/more/facets/pry.rb +0 -32
  276. data/lib/more/facets/reflection.rb +0 -145
  277. data/lib/more/facets/semaphore.rb +0 -92
  278. data/lib/more/facets/settings.rb +0 -248
  279. data/lib/more/facets/snapshot.rb +0 -209
  280. data/lib/more/facets/sparse_array.rb +0 -809
  281. data/lib/more/facets/string/mask.rb +0 -278
  282. data/lib/more/facets/string/obfuscate.rb +0 -65
  283. data/lib/more/facets/string/stylize.rb +0 -169
  284. data/lib/more/facets/string/words.rb +0 -167
  285. data/lib/more/facets/syncarray.rb +0 -114
  286. data/lib/more/facets/synchash.rb +0 -157
  287. data/lib/more/facets/typecast.rb +0 -261
  288. data/lib/more/facets/uninheritable.rb +0 -50
  289. data/lib/more/facets/xmlhash.rb +0 -112
  290. data/lib/more/facets/xoxo.rb +0 -259
  291. data/lib/more/facets/ziputils.rb +0 -490
  292. data/task/conflicts +0 -63
  293. data/task/coverage.rake +0 -37
  294. data/task/methods +0 -49
  295. data/task/rdoc.rake +0 -17
  296. data/task/setup.rake +0 -38
  297. data/task/test.rake +0 -145
  298. data/test/more/test_advisable.rb +0 -71
  299. data/test/more/test_association.rb +0 -38
  300. data/test/more/test_bbcode.rb +0 -21
  301. data/test/more/test_binreadable.rb +0 -50
  302. data/test/more/test_buildable.rb +0 -73
  303. data/test/more/test_classmethods.rb +0 -56
  304. data/test/more/test_crypt.rb +0 -32
  305. data/test/more/test_dependency.rb +0 -69
  306. data/test/more/test_elementwise.rb +0 -25
  307. data/test/more/test_infinity.rb +0 -40
  308. data/test/more/test_interval.rb +0 -151
  309. data/test/more/test_linkedlist.rb +0 -41
  310. data/test/more/test_lrucache.rb +0 -14
  311. data/test/more/test_overload.rb +0 -160
  312. data/test/more/test_paramix.rb +0 -170
  313. data/test/more/test_prototype.rb +0 -35
  314. data/test/more/test_snapshot.rb +0 -21
  315. data/test/more/test_sparsearray.rb +0 -279
  316. data/test/more/test_syncarray.rb +0 -15
  317. data/test/more/test_synchash.rb +0 -16
  318. data/test/more/test_typecast.rb +0 -54
  319. data/test/more/test_uninheritable.rb +0 -31
  320. data/test/more/test_xoxo.rb +0 -274
  321. data/test/test_facets.rb +0 -9
@@ -0,0 +1,37 @@
1
+ = Facets Core
2
+
3
+ Core contains the *essentials* of Facets. Core consists of a number
4
+ of generally useful core extension methods, and a couple small support
5
+ classes.
6
+
7
+ By definition Core contains anything that will load automatically when
8
+ issuing:
9
+
10
+ require 'facets'
11
+
12
+ == Facets by the Method
13
+
14
+ In the 1.0 series of Facets, all extensions were stored on a per-method
15
+ basis. This had some advantages, organization and complete fine-grain control
16
+ over requires was possible, but it proved in practice to be _too_ granular.
17
+ Some method simply too close in nature, or dependency, to go without others.
18
+
19
+ So version 2.0 has grouped the extensions method into small groups.
20
+ The library is still highly granular, but not excessively. But there's
21
+ still refinement being done in this regard. You need not worry about it
22
+ though, becuase per-method redirect libraries are provided. This is useful,
23
+ not only for backward compatability, but also if you know what method you
24
+ want, but don't recall exactly which core file it is in.
25
+
26
+ Here's an example:
27
+
28
+ require 'facets-by-method/hash/collate'
29
+
30
+ == Authors
31
+
32
+ This library more than any other part of Facets is full of contributions
33
+ from sources all across the Ruby community. For all who have code here,
34
+ the Facets Team salutes you.
35
+
36
+ For a list of names, look to the README in Facet's main documetation.
37
+
@@ -0,0 +1,32 @@
1
+ = Facets FAQs
2
+
3
+ Q. How do I use the core mixins on object-by-object basis?
4
+
5
+ A. One way is to use Facets' Capsule library.
6
+
7
+ require 'facets/capsule'
8
+
9
+ MyStringExts = Capsule.load('facets/string/align')::String
10
+
11
+ s = "string"
12
+
13
+ s.extend(MyStringExts)
14
+
15
+ s.align_right(10) #=> " string"
16
+
17
+ Or handle it using in-module load methods.
18
+
19
+ require 'facets/module/require'
20
+
21
+ module MyStringExts
22
+ module_load 'facets/string/align'
23
+ include String
24
+ end
25
+
26
+ s = "string"
27
+
28
+ s.extend(MyStringExts)
29
+
30
+ s.align_right(10) #=> " string"
31
+
32
+
@@ -0,0 +1,112 @@
1
+ <html>
2
+
3
+ <head>
4
+ <title>Facets Typecast</title>
5
+
6
+ <style>
7
+ body { font: 12pt sans-serif;
8
+ padding: 0; margin: 0;
9
+ }
10
+ #container {
11
+ margin: 0 auto;
12
+ }
13
+ #title {
14
+ color: #dddddd;
15
+ border-bottom: 1px solid gray;
16
+ padding: 20px;
17
+ }
18
+ #project {
19
+ font: 22pt sans-serif;
20
+ color: black;
21
+ }
22
+ #package {
23
+ font: bold 42pt sans-serif;
24
+ color: red;
25
+ }
26
+ #corpus {
27
+ padding: 20px;
28
+ }
29
+ </style>
30
+ </head>
31
+
32
+ <body>
33
+ <div id="container">
34
+
35
+ <div id="title">
36
+ <div id="project">Facets</div>
37
+ <div id="package">Typecast</div>
38
+ </div>
39
+
40
+ <div id="corpus">
41
+ <h2>Overview</h2>
42
+ <p>Typecast provides a simple generic type conversion system. All the ruby core
43
+ conversions are available by default.</p>
44
+
45
+ <p>To implement a new type conversion, you have two choices. Given:</p>
46
+
47
+ <pre>
48
+ class CustomType
49
+ def initialize(my_var)
50
+ @my_var = my_var
51
+ end
52
+ end
53
+ </pre>
54
+
55
+ <p> 1) Define a to_class_name instance method </p>
56
+
57
+ <pre>
58
+ class CustomType
59
+ def to_string
60
+ my_var.to_s
61
+ end
62
+ end
63
+
64
+ c = CustomType.new 1234
65
+ s.cast_to String => "1234" (String)
66
+ </pre>
67
+
68
+ <p> 2. Define a from_class_name class method </p>
69
+
70
+ <pre>
71
+ class CustomType
72
+ def self.from_string(str)
73
+ self.new(str)
74
+ end
75
+ end
76
+
77
+ "1234".cast_to CustomType => #<CustomType:0xb7d1958c @my_var="1234">
78
+ </pre>
79
+
80
+ <p>Those two methods are equivalent in the result. It was coded like that to
81
+ avoid the pollution of core classes with tons of to_* methods.</p>
82
+
83
+ <p>The standard methods to_s, to_f, to_i, to_a and to_sym are also used by
84
+ this system if available.</p>
85
+
86
+ <p>Usage looks like</p>
87
+
88
+ <pre>
89
+ "1234".cast_to Float => 1234.0 (Float)
90
+ Time.cast_from("6:30") => 1234.0 (Time)
91
+ </pre>
92
+
93
+ <h2>FAQ</h2>
94
+
95
+ <p>Why didn't you name the `cast_to` method to `to` ?</p>
96
+
97
+ <p>Even if it would make the syntax more friendly, I suspect it could cause
98
+ a lot of collisions with already existing code. The goal is that each
99
+ time you call cast_to, you either get your result, either a
100
+ TypeCastException.</p>
101
+ </div>
102
+
103
+ <div id="copy">
104
+ Copyright &copy; 2004 Thomas Sawyer and all respective authors.
105
+ Ruby License
106
+ </div>
107
+
108
+ </div>
109
+ </body>
110
+
111
+ </html>
112
+
@@ -1,11 +1,359 @@
1
- # Dynamically load all core libraries.
2
-
3
- __DIR__ = File.dirname(__FILE__)
4
-
5
- list = []
6
- Dir.chdir("#{__DIR__}/facets") do
7
- list = Dir['*']
8
- end
9
-
10
- list.each{ |f| require "facets/#{f}" }
11
-
1
+ # Generated Sat Aug 22 15:28:53 -0400 2009
2
+ require 'facets/array.rb'
3
+ require 'facets/array/combination.rb'
4
+ require 'facets/array/conjoin.rb'
5
+ require 'facets/array/delete.rb'
6
+ require 'facets/array/delete_unless.rb'
7
+ require 'facets/array/delete_values.rb'
8
+ require 'facets/array/index.rb'
9
+ require 'facets/array/indexable.rb'
10
+ require 'facets/array/merge.rb'
11
+ require 'facets/array/not_empty.rb'
12
+ require 'facets/array/only.rb'
13
+ require 'facets/array/pad.rb'
14
+ require 'facets/array/permutation.rb'
15
+ require 'facets/array/product.rb'
16
+ require 'facets/array/recursively.rb'
17
+ require 'facets/array/rotate.rb'
18
+ require 'facets/array/select.rb'
19
+ require 'facets/array/splice.rb'
20
+ require 'facets/array/stackable.rb'
21
+ require 'facets/array/traverse.rb'
22
+ require 'facets/binding.rb'
23
+ require 'facets/binding/caller.rb'
24
+ require 'facets/binding/callstack.rb'
25
+ require 'facets/binding/defined.rb'
26
+ require 'facets/binding/eval.rb'
27
+ require 'facets/binding/local_variables.rb'
28
+ require 'facets/binding/opvars.rb'
29
+ require 'facets/binding/self.rb'
30
+ require 'facets/bitmask.rb'
31
+ require 'facets/blank.rb'
32
+ require 'facets/boolean.rb'
33
+ require 'facets/cattr.rb'
34
+ require 'facets/class.rb'
35
+ require 'facets/class/cattr.rb'
36
+ require 'facets/class/cattr_accessor.rb'
37
+ require 'facets/class/cattr_reader.rb'
38
+ require 'facets/class/cattr_writer.rb'
39
+ require 'facets/class/descendents.rb'
40
+ require 'facets/class/methodize.rb'
41
+ require 'facets/class/pathize.rb'
42
+ require 'facets/class/prepend.rb'
43
+ require 'facets/class/subclasses.rb'
44
+ require 'facets/class/to_proc.rb'
45
+ require 'facets/comparable.rb'
46
+ require 'facets/comparable/at_least.rb'
47
+ require 'facets/comparable/at_most.rb'
48
+ require 'facets/comparable/bound.rb'
49
+ require 'facets/comparable/cap.rb'
50
+ require 'facets/comparable/clip.rb'
51
+ require 'facets/comparable/cmp.rb'
52
+ require 'facets/comparable/comparable.rb'
53
+ require 'facets/denumerable.rb'
54
+ require 'facets/dir.rb'
55
+ require 'facets/dir/ascend.rb'
56
+ require 'facets/dir/descend.rb'
57
+ require 'facets/dir/multiglob.rb'
58
+ require 'facets/dir/parent.rb'
59
+ require 'facets/dir/recurse.rb'
60
+ require 'facets/duplicable.rb'
61
+ require 'facets/enumerable.rb'
62
+ require 'facets/enumerable/accumulate.rb'
63
+ require 'facets/enumerable/cluster_by.rb'
64
+ require 'facets/enumerable/collect.rb'
65
+ require 'facets/enumerable/commonality.rb'
66
+ require 'facets/enumerable/compact_map.rb'
67
+ require 'facets/enumerable/count.rb'
68
+ require 'facets/enumerable/defer.rb'
69
+ require 'facets/enumerable/divide.rb'
70
+ require 'facets/enumerable/duplicates.rb'
71
+ require 'facets/enumerable/each_by.rb'
72
+ require 'facets/enumerable/entropy.rb'
73
+ require 'facets/enumerable/every.rb'
74
+ require 'facets/enumerable/ewise.rb'
75
+ require 'facets/enumerable/filter.rb'
76
+ require 'facets/enumerable/frequency.rb'
77
+ require 'facets/enumerable/graph.rb'
78
+ require 'facets/enumerable/group_by.rb'
79
+ require 'facets/enumerable/inject.rb'
80
+ require 'facets/enumerable/map_send.rb'
81
+ require 'facets/enumerable/map_with_index.rb'
82
+ require 'facets/enumerable/mash.rb'
83
+ require 'facets/enumerable/mode.rb'
84
+ require 'facets/enumerable/modulate.rb'
85
+ require 'facets/enumerable/none.rb'
86
+ require 'facets/enumerable/occur.rb'
87
+ require 'facets/enumerable/one.rb'
88
+ require 'facets/enumerable/per.rb'
89
+ require 'facets/enumerable/probability.rb'
90
+ require 'facets/enumerable/split.rb'
91
+ require 'facets/enumerable/sum.rb'
92
+ require 'facets/enumerable/take.rb'
93
+ require 'facets/enumerable/uniq_by.rb'
94
+ require 'facets/exception.rb'
95
+ require 'facets/exception/detail.rb'
96
+ require 'facets/exception/raised.rb'
97
+ require 'facets/exception/suppress.rb'
98
+ require 'facets/file.rb'
99
+ require 'facets/file/append.rb'
100
+ require 'facets/file/create.rb'
101
+ require 'facets/file/null.rb'
102
+ require 'facets/file/read.rb'
103
+ require 'facets/file/rewrite.rb'
104
+ require 'facets/file/rootname.rb'
105
+ require 'facets/file/split_all.rb'
106
+ require 'facets/file/split_root.rb'
107
+ require 'facets/file/write.rb'
108
+ require 'facets/file/writelines.rb'
109
+ require 'facets/filetest.rb'
110
+ require 'facets/filetest/root.rb'
111
+ require 'facets/float.rb'
112
+ require 'facets/float/round.rb'
113
+ require 'facets/functor.rb'
114
+ require 'facets/hash.rb'
115
+ require 'facets/hash/alias.rb'
116
+ require 'facets/hash/argumentize.rb'
117
+ require 'facets/hash/at.rb'
118
+ require 'facets/hash/autonew.rb'
119
+ require 'facets/hash/collate.rb'
120
+ require 'facets/hash/dearray_values.rb'
121
+ require 'facets/hash/delete.rb'
122
+ require 'facets/hash/diff.rb'
123
+ require 'facets/hash/except.rb'
124
+ require 'facets/hash/group_by_value.rb'
125
+ require 'facets/hash/insert.rb'
126
+ require 'facets/hash/inverse.rb'
127
+ require 'facets/hash/join.rb'
128
+ require 'facets/hash/keys.rb'
129
+ require 'facets/hash/mash.rb'
130
+ require 'facets/hash/merge.rb'
131
+ require 'facets/hash/new_with.rb'
132
+ require 'facets/hash/op.rb'
133
+ require 'facets/hash/op_add.rb'
134
+ require 'facets/hash/op_and.rb'
135
+ require 'facets/hash/op_mul.rb'
136
+ require 'facets/hash/op_or.rb'
137
+ require 'facets/hash/op_push.rb'
138
+ require 'facets/hash/op_sub.rb'
139
+ require 'facets/hash/recursive_merge.rb'
140
+ require 'facets/hash/recursively.rb'
141
+ require 'facets/hash/rekey.rb'
142
+ require 'facets/hash/replace_each.rb'
143
+ require 'facets/hash/select.rb'
144
+ require 'facets/hash/slice.rb'
145
+ require 'facets/hash/stringify_keys.rb'
146
+ require 'facets/hash/swap.rb'
147
+ require 'facets/hash/symbolize_keys.rb'
148
+ require 'facets/hash/to_h.rb'
149
+ require 'facets/hash/to_options.rb'
150
+ require 'facets/hash/to_proc.rb'
151
+ require 'facets/hash/to_struct.rb'
152
+ require 'facets/hash/traverse.rb'
153
+ require 'facets/hash/update.rb'
154
+ require 'facets/hash/update_each.rb'
155
+ require 'facets/hash/update_keys.rb'
156
+ require 'facets/hash/update_values.rb'
157
+ require 'facets/hash/weave.rb'
158
+ require 'facets/hash/zipnew.rb'
159
+ require 'facets/indexable.rb'
160
+ require 'facets/integer.rb'
161
+ require 'facets/integer/even.rb'
162
+ require 'facets/integer/factorial.rb'
163
+ require 'facets/integer/length.rb'
164
+ require 'facets/integer/multiple.rb'
165
+ require 'facets/integer/odd.rb'
166
+ require 'facets/integer/of.rb'
167
+ require 'facets/integer/ordinal.rb'
168
+ require 'facets/kernel.rb'
169
+ require 'facets/kernel/__callee__.rb'
170
+ require 'facets/kernel/__class__.rb'
171
+ require 'facets/kernel/__dir__.rb'
172
+ require 'facets/kernel/__get__.rb'
173
+ require 'facets/kernel/__here__.rb'
174
+ require 'facets/kernel/__method__.rb'
175
+ require 'facets/kernel/__set__.rb'
176
+ require 'facets/kernel/as.rb'
177
+ require 'facets/kernel/ask.rb'
178
+ require 'facets/kernel/attr_singleton.rb'
179
+ require 'facets/kernel/callstack.rb'
180
+ require 'facets/kernel/complete.rb'
181
+ require 'facets/kernel/constant.rb'
182
+ require 'facets/kernel/d.rb'
183
+ require 'facets/kernel/deep_copy.rb'
184
+ require 'facets/kernel/demo.rb'
185
+ require 'facets/kernel/equate.rb'
186
+ require 'facets/kernel/ergo.rb'
187
+ require 'facets/kernel/extension.rb'
188
+ require 'facets/kernel/here.rb'
189
+ require 'facets/kernel/identical.rb'
190
+ require 'facets/kernel/in.rb'
191
+ require 'facets/kernel/instance_assign.rb'
192
+ require 'facets/kernel/instance_class.rb'
193
+ require 'facets/kernel/instance_exec.rb'
194
+ require 'facets/kernel/instance_send.rb'
195
+ require 'facets/kernel/instance_variables.rb'
196
+ require 'facets/kernel/maybe.rb'
197
+ require 'facets/kernel/method.rb'
198
+ require 'facets/kernel/not_nil.rb'
199
+ require 'facets/kernel/object_class.rb'
200
+ require 'facets/kernel/object_hexid.rb'
201
+ require 'facets/kernel/object_send.rb'
202
+ require 'facets/kernel/object_state.rb'
203
+ require 'facets/kernel/p.rb'
204
+ require 'facets/kernel/populate.rb'
205
+ require 'facets/kernel/qua_class.rb'
206
+ require 'facets/kernel/require_all.rb'
207
+ require 'facets/kernel/require_local.rb'
208
+ require 'facets/kernel/require_relative.rb'
209
+ require 'facets/kernel/resc.rb'
210
+ require 'facets/kernel/respond.rb'
211
+ require 'facets/kernel/returning.rb'
212
+ require 'facets/kernel/silence.rb'
213
+ require 'facets/kernel/singleton_class.rb'
214
+ require 'facets/kernel/source_location.rb'
215
+ require 'facets/kernel/tap.rb'
216
+ require 'facets/kernel/try.rb'
217
+ require 'facets/kernel/val.rb'
218
+ require 'facets/kernel/with.rb'
219
+ require 'facets/lazy.rb'
220
+ require 'facets/matchdata.rb'
221
+ require 'facets/matchdata/match.rb'
222
+ require 'facets/matchdata/matchset.rb'
223
+ require 'facets/metaid.rb'
224
+ require 'facets/module.rb'
225
+ require 'facets/module/abstract.rb'
226
+ require 'facets/module/alias_accessor.rb'
227
+ require 'facets/module/alias_method_chain.rb'
228
+ require 'facets/module/alias_module_function.rb'
229
+ require 'facets/module/ancestor.rb'
230
+ require 'facets/module/attr_setter.rb'
231
+ require 'facets/module/basename.rb'
232
+ require 'facets/module/can.rb'
233
+ require 'facets/module/class.rb'
234
+ require 'facets/module/conflict.rb'
235
+ require 'facets/module/extend.rb'
236
+ require 'facets/module/include_function_module.rb'
237
+ require 'facets/module/instance_method.rb'
238
+ require 'facets/module/instance_methods.rb'
239
+ require 'facets/module/integrate.rb'
240
+ require 'facets/module/is.rb'
241
+ require 'facets/module/methodize.rb'
242
+ require 'facets/module/modspace.rb'
243
+ require 'facets/module/module_load.rb'
244
+ require 'facets/module/module_require.rb'
245
+ require 'facets/module/nesting.rb'
246
+ require 'facets/module/op.rb'
247
+ require 'facets/module/pathize.rb'
248
+ require 'facets/module/prepend.rb'
249
+ require 'facets/module/redefine_method.rb'
250
+ require 'facets/module/redirect_method.rb'
251
+ require 'facets/module/rename_method.rb'
252
+ require 'facets/module/revise.rb'
253
+ require 'facets/module/spacename.rb'
254
+ require 'facets/module/wrap_method.rb'
255
+ require 'facets/nilclass.rb'
256
+ require 'facets/nilclass/ergo.rb'
257
+ require 'facets/nilclass/to_f.rb'
258
+ require 'facets/numeric.rb'
259
+ require 'facets/numeric/approx.rb'
260
+ require 'facets/numeric/distance.rb'
261
+ require 'facets/numeric/round.rb'
262
+ require 'facets/objectspace.rb'
263
+ require 'facets/objectspace/classes.rb'
264
+ require 'facets/objectspace/op_fetch.rb'
265
+ require 'facets/proc.rb'
266
+ require 'facets/proc/bind.rb'
267
+ require 'facets/proc/compose.rb'
268
+ require 'facets/proc/curry.rb'
269
+ require 'facets/proc/to_method.rb'
270
+ require 'facets/proc/update.rb'
271
+ require 'facets/range.rb'
272
+ require 'facets/range/combine.rb'
273
+ require 'facets/range/overlap.rb'
274
+ require 'facets/range/to_r.rb'
275
+ require 'facets/range/umbrella.rb'
276
+ require 'facets/range/within.rb'
277
+ require 'facets/regexp.rb'
278
+ require 'facets/regexp/arity.rb'
279
+ require 'facets/regexp/to_re.rb'
280
+ require 'facets/stackable.rb'
281
+ require 'facets/string.rb'
282
+ require 'facets/string/align.rb'
283
+ require 'facets/string/bracket.rb'
284
+ require 'facets/string/bytes.rb'
285
+ require 'facets/string/camelcase.rb'
286
+ require 'facets/string/capitalized.rb'
287
+ require 'facets/string/chars.rb'
288
+ require 'facets/string/chomp.rb'
289
+ require 'facets/string/cleave.rb'
290
+ require 'facets/string/compress_lines.rb'
291
+ require 'facets/string/contains.rb'
292
+ require 'facets/string/divide.rb'
293
+ require 'facets/string/each_char.rb'
294
+ require 'facets/string/each_word.rb'
295
+ require 'facets/string/end_with.rb'
296
+ require 'facets/string/expand_tab.rb'
297
+ require 'facets/string/file.rb'
298
+ require 'facets/string/fold.rb'
299
+ require 'facets/string/indent.rb'
300
+ require 'facets/string/interpolate.rb'
301
+ require 'facets/string/line_wrap.rb'
302
+ require 'facets/string/lines.rb'
303
+ require 'facets/string/lowercase.rb'
304
+ require 'facets/string/margin.rb'
305
+ require 'facets/string/methodize.rb'
306
+ require 'facets/string/modulize.rb'
307
+ require 'facets/string/mscan.rb'
308
+ require 'facets/string/natcmp.rb'
309
+ require 'facets/string/nchar.rb'
310
+ require 'facets/string/op_sub.rb'
311
+ require 'facets/string/outdent.rb'
312
+ require 'facets/string/pathize.rb'
313
+ require 'facets/string/range.rb'
314
+ require 'facets/string/rewrite.rb'
315
+ require 'facets/string/shatter.rb'
316
+ require 'facets/string/snakecase.rb'
317
+ require 'facets/string/splice.rb'
318
+ require 'facets/string/start_with.rb'
319
+ require 'facets/string/subtract.rb'
320
+ require 'facets/string/tab.rb'
321
+ require 'facets/string/tabto.rb'
322
+ require 'facets/string/titlecase.rb'
323
+ require 'facets/string/to_re.rb'
324
+ require 'facets/string/underscore.rb'
325
+ require 'facets/string/unfold.rb'
326
+ require 'facets/string/uppercase.rb'
327
+ require 'facets/string/variablize.rb'
328
+ require 'facets/string/word_wrap.rb'
329
+ require 'facets/string/words.rb'
330
+ require 'facets/string/xor.rb'
331
+ require 'facets/struct.rb'
332
+ require 'facets/struct/attributes.rb'
333
+ require 'facets/symbol.rb'
334
+ require 'facets/symbol/chomp.rb'
335
+ require 'facets/symbol/generate.rb'
336
+ require 'facets/symbol/not.rb'
337
+ require 'facets/symbol/plain.rb'
338
+ require 'facets/symbol/query.rb'
339
+ require 'facets/symbol/re_s.rb'
340
+ require 'facets/symbol/setter.rb'
341
+ require 'facets/symbol/succ.rb'
342
+ require 'facets/symbol/thrown.rb'
343
+ require 'facets/symbol/to_proc.rb'
344
+ require 'facets/symbol/variablize.rb'
345
+ require 'facets/time.rb'
346
+ require 'facets/time/advance.rb'
347
+ require 'facets/time/ago.rb'
348
+ require 'facets/time/change.rb'
349
+ require 'facets/time/elapse.rb'
350
+ require 'facets/time/hence.rb'
351
+ require 'facets/time/round.rb'
352
+ require 'facets/time/set.rb'
353
+ require 'facets/time/stamp.rb'
354
+ require 'facets/time/to_time.rb'
355
+ require 'facets/time/trunc.rb'
356
+ require 'facets/to_hash.rb'
357
+ require 'facets/unboundmethod.rb'
358
+ require 'facets/unboundmethod/arguments.rb'
359
+ require 'facets/unboundmethod/name.rb'