facets 2.6.0 → 2.7.0

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 (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
@@ -1,37 +0,0 @@
1
- Facets 2.4.5 is a maintaince release. This release is notable
2
- however in that it will likely be the last that to use SVN.
3
- Facets will be switching to Git. Also, some libraries that
4
- have been flagged "to be deprecated" for some time will
5
- finally be so.
6
-
7
-
8
- ### 2.4.5 / 2008-10-02
9
-
10
- * 6 Major Enhancements
11
-
12
- * Re-added date.rb to lore library, and removed from core. (#r1014)
13
- * Much improved date.rb extension now in Lore library. (#r1027)
14
- * Deprecated kernel/suppress. Use Exception.suppress from now on. (#r1040)
15
- * Deprecated string/style.rb. Use English project instead. (#r1074)
16
- * Console namespace is no longer supported (for Ansicode). (#r1077)
17
- * enumerable/mode.rb, Enumerable#mode returns array since there can be more than one. (#r1079)
18
- * OpenCascade automatically creates nodes, use foo? to query. (#r1056)
19
-
20
- * 11 Minor Enhancements
21
-
22
- * Moved variablize methods out of metaid.rb and into separate files (string/ and symbol/). (#r1042)
23
- * Added Time#advance. (#r1046)
24
- * Speed up of Integer odd/even methods. (#r1057)
25
- * Array#index now takes a block (this is a core override). (#r1059)
26
- * Spilt file/write.rb into separate method files (append, create, writelines). (#r1073)
27
- * Modified Enumerable#split to behave like String#split. (#r1076)
28
- * hash/op.rb, split into separate method files. (#r1081)
29
- * Added string/modulize. string/methodize handles path names now too. (#r1085)
30
- * Class#cattr is now part of core. (#r1089)
31
-
32
- * 2 Bug Fixes
33
-
34
- * OpenStruct#to_h dups internal table. (#r1015)
35
- * Fixed require of string/xor in bicrypt.rb. (#r1039)
36
- * integer/odd.rb, fixed Ruby 1.9 condition. (#r1080)
37
-
@@ -1,83 +0,0 @@
1
- Facets 2.5.0 is an important milestone in the development of Facets.
2
-
3
- This release has been tested against Rails' ActiveSupport library.
4
- As long as Facets is loaded after ActiveSupport, everything
5
- should work fine. Of course, there's no counting for real world
6
- trials, but all ActiveSupport testcases pass under this scenario.
7
-
8
- Secondly, this release is the first of two (or three) down-scaling
9
- releases intended to remove all the remaining "excess" from the
10
- library. This is being done for a variety of reasons. Some scripts
11
- are substantial enough to be one their own and have been spun-off
12
- into separate largely compatible projects. In this release:
13
-
14
- If you were using... Use this project instead...
15
-
16
- annotations.rb Anise
17
-
18
- bytes.rb RichUnits
19
- times.rb
20
-
21
- command.rb Clio
22
- consoleutils.rb
23
-
24
- A few others scripts have been deprecated, without an alternative
25
- recourse, simply because they were too weak, such as uploadutils.rb,
26
- or highly experimental, such as chain.rb and eventhook.rb.
27
-
28
- Although this release constitutes an over all slimming down of Facets,
29
- two excellent new libraries have been added.
30
-
31
- 1) *ini.rb* by Jeena Paradies. While YAML is frequently used by
32
- Rubyists for configuration files, a full-on serializer like YAML
33
- is often overkill. INI files provide a lightweight solution
34
- specifically geared for configuration.
35
-
36
- 2) *filter.rb* by Brian Candler offers lazy evaluation chains of
37
- Enumerable methods. This is an elegant way to optimize contiguous
38
- maps, selections, etc. --effective even on infinite enumerators.
39
- (Note, the name of this library may be changed in the next release.)
40
-
41
- While work remains to be done, I am happy to say, Facets is
42
- finally beginning to approach the level of solidity I set out to
43
- achieve just over a year ago. Thank the Maker!
44
-
45
- Special thanks to Brian Candler, Jeena Paradies and Tyler Rick.
46
-
47
- Enjoy!
48
-
49
-
50
- ### 2.5.0 / 2008-11-23
51
-
52
- * 9 Major Changes
53
-
54
- * added Brian Candler's Enumerator::Filter
55
- * added sparse_array.rb (was old harray.rb)
56
- * added Jeena Paradies' ini.rb
57
- * renamed CacheDelegator to Memoizer
58
- * renamed DictionaryMatcher to just Matcher
59
- * deprecated bytes.rb and times.rb (use RichUnits instead)
60
- * deprecated uploadutils.rb; ziputils.rb will be (use Folio)
61
- * deprecated annotations.rb (use Anise instead)
62
- * deprecated command.rb and consoleutils.rb (use Clio instead)
63
-
64
- * 5 Minor Changes
65
-
66
- * deprecated chain.rb (very expiremental)
67
- * deprecated eventhook.rb (moved to ToadCode project)
68
- * deprecated tagiter.rb (moved to ToadCode project)
69
- * moved Hash#symolize_keys and #stringify_keys to core lib
70
- (still recommend #rekey instead though)
71
- * switched to git as of 2.4.5
72
-
73
- * 4 Bug Fixes
74
-
75
- * memoize.rb, cache was at class-level, now at instance-level
76
- * binding/caller.rb, fixed require for callstack.rb
77
- * fixed missing require in string/tabto.rb
78
- * Fixed some bugs with Time#ago/Time#hence not changing years
79
- correctly when you changed months.
80
- (For example, Time.utc(2008, 1, 1).ago(12, :months) incorrectly
81
- returned 2009-01-01 instead of 2007-01-01.)
82
- Changed Time#ago/Time#hence to still work if passed negative number.
83
-
@@ -1,19 +0,0 @@
1
- require 'facets/functor'
2
-
3
- module Kernel
4
-
5
- # Access internals of an object as if with
6
- # private access.
7
- #
8
- # class X
9
- # metaclass.instance.attr_reader :x
10
- # end
11
- #
12
- def instance
13
- @_instance_functor ||= Functor.new do |op,*args|
14
- send(op,*args)
15
- end
16
- end
17
-
18
- end
19
-
@@ -1,14 +0,0 @@
1
- # Facets' old BasicObject has been replaced totally replaced by
2
- # Jim Weirich's BlankSlate. Since Ruby 1.9 has a BasicObject class
3
- # this will of course be deprecated when 1.9 goes mainstream.
4
-
5
- unless defined? ::BasicObject # just in case it already exists!
6
-
7
- require 'facets/blankslate'
8
-
9
- # ActiveSupport compatiable version of BasicObject
10
- # if not Ruby 1.9+ uses Jim Weirich's BlankSlate.
11
- BasicObject = BlankSlate
12
-
13
- end
14
-
@@ -1,67 +0,0 @@
1
- require 'enumerator'
2
-
3
- if RUBY_VERSION < "1.9"
4
-
5
- module Enumerable
6
-
7
- class Enumerator
8
-
9
- alias :old_initialize :initialize
10
-
11
- # Provides the ruby-1.9 block form of Enumerator, where you can write:
12
- #
13
- # obj = Enumerator.new do |yielder|
14
- # .. do stuff
15
- # yielder.yield data # or: yielder << data
16
- # .. etc
17
- # end
18
- #
19
- # When obj.each is called, the block is run once. It should call
20
- # yielder.yield with each item it wishes to generate.
21
- #
22
- # Example:
23
- #
24
- # fib = Enumerator.new { |y|
25
- # a = b = 1
26
- # loop {
27
- # y << a
28
- # a, b = b, a + b
29
- # }
30
- # }
31
- #
32
- # assert_equal [1, 1, 2, 3, 5, 8, 13, 21, 34, 55], fib.take(10)
33
-
34
- def initialize(*args, &block)
35
- if block_given?
36
- @body = block
37
- old_initialize(self, :_start)
38
- else
39
- old_initialize(*args)
40
- end
41
- end
42
-
43
- def _start(*args,&receiver) #:nodoc:
44
- @body.call(Yielder.new(receiver), *args)
45
- end
46
-
47
- # Wrapper to allow yielder.yield(output) or yielder << output
48
- # in the same way as ruby-1.9
49
-
50
- class Yielder #:nodoc:
51
- def initialize(proc)
52
- @proc = proc
53
- end
54
- def yield(*args)
55
- @proc[*args]
56
- end
57
- alias :<< :yield
58
- end
59
- end
60
-
61
- end
62
-
63
- # For ruby-1.9 compatibility, define Enumerator class at top level
64
- Enumerator = Enumerable::Enumerator unless defined? ::Enumerator
65
-
66
- end # if RUBY_VERSION
67
-
@@ -1,291 +0,0 @@
1
- # = Logger
2
- #
3
- # Extended variation of Ruby's standard Logger library.
4
- #
5
- # log = Logger.new
6
- #
7
- # log.setup_format do |severity, timestamp, progname, msg|
8
- # Logger::SIMPLE_FORMAT % [severity, msg]
9
- # end
10
- #
11
- # == Conventions
12
- #
13
- # When using debug level logger messages always append 'if $DBG'
14
- # at the end. This hack is needed because Ruby does not support
15
- # lazy evaluation (lisp macros).
16
- #
17
- # == Authors
18
- #
19
- # * George Moschovitis
20
- # * TransLogarithim
21
- #
22
- # == Copying
23
- #
24
- # Copyright (c) 2005 George Moschovitis
25
- #
26
- # Ruby License
27
- #
28
- # This module is free software. You may use, modify, and/or redistribute this
29
- # software under the same terms as Ruby.
30
- #
31
- # This program is distributed in the hope that it will be useful, but WITHOUT
32
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
33
- # FOR A PARTICULAR PURPOSE.
34
-
35
- require "logger"
36
- require "time"
37
- require "facets/ansicode"
38
-
39
- # = Logger
40
- #
41
- # Extended variation of Ruby's standard Logger library.
42
- # Mainly for compatibility purposes (with what?)
43
- #
44
- # log = Logger.new
45
- #
46
- # log.setup_format do |severity, timestamp, progname, msg|
47
- # Logger::SIMPLE_FORMAT % [severity, msg]
48
- # end
49
- #
50
- # When using debug level logger messages always append 'if $DBG'
51
- # at the end. This hack is needed because Ruby does not support
52
- # lazy evaluation (lisp macros).
53
- #
54
- # TODO: What's all this about then?
55
-
56
- class Logger
57
-
58
- # Some available logging formats.
59
- SIMPLE_FORMAT = "%5s: %s\n"
60
- DETAILED_FORMAT = "%s %5s: %s\n"
61
-
62
- # Why these names ?
63
- alias_method :devel, :debug
64
- alias_method :fine, :debug
65
-
66
- def ansicolor=(on)
67
- unless is_a?(Ansicolor)
68
- class << self
69
- include Ansicolor
70
- end
71
- end
72
- @logdev.ansicolor = on
73
- end
74
-
75
- # NOTE: trace is deprecated b/c binding of caller is no longer possible.
76
- =begin
77
- # Prints a trace message to DEBUGLOG (at debug level).
78
- # Useful for emitting the value of variables, etc. Use
79
- # like this:
80
- #
81
- # x = y = 5
82
- # trace 'x' # -> 'x = 5'
83
- # trace 'x ** y' # -> 'x ** y = 3125'
84
- #
85
- # If you have a more complicated value, like an array of
86
- # hashes, then you'll probably want to use an alternative
87
- # output format. For instance:
88
- #
89
- # trace 'value', :yaml
90
- #
91
- # Valid output format values (the _style_ parameter) are:
92
- #
93
- # :p :inspect
94
- # :pp (pretty-print, using 'pp' library)
95
- # :s :to_s
96
- # :y :yaml :to_yaml (using the 'yaml' library')
97
- #
98
- # The default is <tt>:p</tt>.
99
- #
100
- # CREDITS:
101
- #
102
- # This code comes straight from the dev-utils Gem.
103
- # Author: Gavin Sinclair <gsinclair@soyabean.com.au>
104
-
105
- def trace(expr, style=:p)
106
- unless expr.respond_to? :to_str
107
- warn "trace: Can't evaluate the given value: #{caller.first}"
108
- else
109
- raise "FACETS: binding/or_caller is no longer possible"
110
- require "facets/core/binding/self/of_caller"
111
-
112
- Binding.of_caller do |b|
113
- value = b.eval(expr.to_str)
114
- formatter = TRACE_STYLES[style] || :inspect
115
- case formatter
116
- when :pp then require 'pp'
117
- when :y, :yaml, :to_yaml then require 'yaml'
118
- end
119
- value_s = value.send(formatter)
120
- message = "#{expr} = #{value_s}"
121
- lines = message.split(/\n/)
122
- indent = " "
123
- debug(lines.shift)
124
- lines.each do |line|
125
- debug(indent + line)
126
- end
127
- end
128
- end
129
- end
130
-
131
- TRACE_STYLES = {} # :nodoc:
132
- TRACE_STYLES.update(
133
- :pp => :pp_s, :s => :to_s, :p => :inspect,
134
- :y => :to_yaml, :yaml => :to_yaml,
135
- :inspect => :inspect, :to_yaml => :to_yaml
136
- )
137
- =end
138
-
139
- # Dictate the way in which this logger should format the
140
- # messages it displays. This method requires a block. The
141
- # block should return formatted strings given severity,
142
- # timestamp, msg, progname.
143
- #
144
- # === Example
145
- #
146
- # logger = Logger.new
147
- # logger.setup_format do |severity, timestamp, msg, progname|
148
- # "#{progname}@#{timestamp} - #{severity}::#{msg}"
149
- # end
150
-
151
- def setup_format(&format_proc)
152
- raise "Formating block needed" unless format_proc
153
- @format_proc = format_proc
154
- end
155
-
156
- def format_procedure
157
- @format_proc
158
- end
159
-
160
- private
161
-
162
- attr_accessor :format_proc
163
-
164
- alias_method :format_message_without_proc, :format_message # :nodoc:
165
-
166
- def format_message(*args) # :nodoc:
167
- @format_proc ? @format_proc.call(*args) : format_message_without_proc(*args)
168
- end
169
-
170
- class LogDevice
171
- attr_writer :ansicolor
172
-
173
- def ansicolor?
174
- @ansicolor
175
- end
176
- end
177
-
178
- # For adding ansicolor output.
179
-
180
- module Ansicolor
181
-
182
- def info(str)
183
- return unless info?
184
- @logdev.ansicolor? ? info_with_color{ super } : super
185
- end
186
-
187
- def warn(str)
188
- return unless warn?
189
- @logdev.ansicolor? ? warn_with_color{ super } : super
190
- end
191
-
192
- def debug(str)
193
- return unless debug?
194
- @logdev.ansicolor? ? debug_with_color{ super } : super
195
- end
196
-
197
- def error(str)
198
- return unless error?
199
- @logdev.ansicolor? ? error_with_color{ super } : super
200
- end
201
-
202
- def fatal(str)
203
- return unless error?
204
- @logdev.ansicolor? ? fatal_with_color{ super } : super
205
- end
206
-
207
- def info_with_color #:yield:
208
- self << ANSICode.green
209
- yield
210
- self << ANSICode.clear
211
- end
212
-
213
- def warn_with_color #:yield:
214
- self << ANSICode.cyan
215
- yield
216
- self << ANSICode.clear
217
- end
218
-
219
- def error_with_color #:yield:
220
- self << ANSICode.red
221
- yield
222
- self << ANSICode.clear
223
- end
224
-
225
- def debug_with_color #:yield:
226
- self << ANSICode.yellow
227
- yield
228
- self << ANSICode.clear
229
- end
230
-
231
- def fatal_with_color #:yield:
232
- self << ANSICode.bold + ANSICode.red
233
- yield
234
- self << ANSICode.clear
235
- end
236
-
237
- end
238
-
239
- end
240
-
241
- # OLD WAY TO ADD COLOR
242
- =begin
243
- module Console
244
-
245
- class Logger < ::Logger
246
-
247
- attr_accessor :style
248
-
249
- def style
250
- @style ||= Style.new
251
- end
252
-
253
- def info(str)
254
- return if level > Logger::INFO
255
- self << style.info(str)
256
- super
257
- self << ANSICode.clear
258
- end
259
-
260
- def warn(str)
261
- self << style.warn(str)
262
- super
263
- self << ANSICode.clear
264
- end
265
-
266
- def error(str)
267
- return if level > Logger::ERROR
268
- self << style.error(str)
269
- super
270
- self << ANSICode.clear
271
- end
272
-
273
- def debug(str)
274
- self << style.debug(str)
275
- super
276
- self << ANSICode.clear
277
- end
278
-
279
- # Logger Style
280
-
281
- class Style
282
- def info(str) ; ANSICode.green ; end
283
- def warn(str) ; ANSICode.cyan ; end
284
- def error(str) ; ANSICode.bold + ANSICode.red ; end
285
- def debug(str) ; '' ; end
286
- end
287
-
288
- end
289
- end
290
- =end
291
-