facets 2.9.3 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (491) hide show
  1. checksums.yaml +7 -0
  2. data/.index +76 -0
  3. data/CONTRIBUTE.md +78 -0
  4. data/HISTORY.md +2459 -0
  5. data/{RUBY.txt → LICENSE.txt} +0 -0
  6. data/README.rdoc +29 -7
  7. data/demo/applique/assertion_framework.rb +1 -0
  8. data/{qed → demo}/applique/file_helpers.rb +0 -0
  9. data/{qed → demo}/core/array/combination.rdoc +0 -0
  10. data/{qed → demo}/core/array/delete.rdoc +0 -0
  11. data/{qed → demo}/core/array/index.rdoc +0 -0
  12. data/{qed → demo}/core/array/merge.rdoc +0 -0
  13. data/{qed → demo}/core/array/only.rdoc +0 -0
  14. data/{qed → demo}/core/array/pad.rdoc +0 -0
  15. data/{qed → demo}/core/array/permutation.rdoc +0 -0
  16. data/{qed → demo}/core/array/product.rdoc +0 -0
  17. data/{qed → demo}/core/array/recursively.rdoc +0 -0
  18. data/{qed → demo}/core/array/rotate.rdoc +0 -0
  19. data/{qed → demo}/core/array/select.rdoc +0 -0
  20. data/{qed → demo}/core/array/uniq_by.rdoc +0 -0
  21. data/{qed → demo}/core/binding/caller.rdoc +0 -0
  22. data/{qed → demo}/core/binding/defined.rdoc +0 -0
  23. data/{qed → demo}/core/binding/eval.rdoc +0 -0
  24. data/{qed → demo}/core/binding/local_variables.rdoc +0 -0
  25. data/{qed → demo}/core/binding/opvars.rdoc +0 -0
  26. data/{qed → demo}/core/binding/self.rdoc +0 -0
  27. data/{qed → demo}/core/class/descendants.rdoc +0 -0
  28. data/{qed → demo}/core/class/to_proc.rdoc +0 -0
  29. data/{qed → demo}/core/comparable/cap.rdoc +0 -0
  30. data/{qed → demo}/core/comparable/clip.rdoc +0 -0
  31. data/{qed → demo}/core/comparable/cmp.rdoc +0 -0
  32. data/{qed → demo}/core/comparable/op_get.rdoc +0 -0
  33. data/{qed → demo}/core/dir/ascend.rdoc +0 -0
  34. data/{qed → demo}/core/dir/descend.rdoc +0 -0
  35. data/{qed → demo}/core/dir/multiglob.rdoc +0 -0
  36. data/{qed → demo}/core/dir/parent.rdoc +0 -0
  37. data/{qed → demo}/core/dir/recurse.rdoc +0 -0
  38. data/{qed → demo}/core/exception/detail.rdoc +0 -0
  39. data/{qed → demo}/core/facets.rdoc +0 -0
  40. data/{qed → demo}/core/filetest/root.rdoc +0 -0
  41. data/{qed → demo}/core/hash/recursively.rdoc +0 -0
  42. data/{qed → demo}/core/indexable.rdoc +0 -0
  43. data/{qed → demo}/core/integer/bitmask.rdoc +0 -0
  44. data/{qed → demo}/core/integer/even.rdoc +0 -0
  45. data/{qed → demo}/core/integer/factorial.rdoc +0 -0
  46. data/{qed → demo}/core/integer/length.rdoc +0 -0
  47. data/{qed → demo}/core/integer/multiple.rdoc +0 -0
  48. data/{qed → demo}/core/integer/odd.rdoc +0 -0
  49. data/{qed → demo}/core/integer/of.rdoc +0 -0
  50. data/{qed → demo}/core/integer/ordinal.rdoc +0 -0
  51. data/{qed → demo}/core/matchdata/match.rdoc +0 -0
  52. data/{qed → demo}/core/matchdata/matchset.rdoc +0 -0
  53. data/{qed → demo}/core/module/cattr.rdoc +0 -0
  54. data/{qed → demo}/core/module/class_extend.rdoc +0 -0
  55. data/{qed → demo}/core/module/class_inheritor.rdoc +0 -0
  56. data/{qed → demo}/core/module/copy_inheritor.rdoc +0 -0
  57. data/{qed → demo}/core/module/method_space.rdoc +0 -0
  58. data/{qed → demo}/core/string/align.rdoc +0 -0
  59. data/{qed → demo}/core/string/bracket.rdoc +0 -0
  60. data/{qed → demo}/core/string/bytes.rdoc +0 -0
  61. data/{qed → demo}/core/string/camelcase.rdoc +0 -0
  62. data/{qed → demo}/core/string/capitalized.rdoc +0 -0
  63. data/{qed → demo}/core/string/characters.rdoc +0 -0
  64. data/{qed → demo}/core/string/cleanlines.rdoc +0 -0
  65. data/{qed → demo}/core/string/cleave.rdoc +0 -0
  66. data/{qed → demo}/core/string/divide.rdoc +0 -0
  67. data/{qed → demo}/core/string/each_char.rdoc +0 -0
  68. data/{qed → demo}/core/string/each_word.rdoc +0 -0
  69. data/{qed → demo}/core/string/end_with.rdoc +0 -0
  70. data/{qed → demo}/core/string/expand_tabs.rdoc +0 -0
  71. data/{qed → demo}/core/string/fold.rdoc +0 -0
  72. data/{qed → demo}/core/string/indent.rdoc +0 -0
  73. data/{qed → demo}/core/string/interpolate.rdoc +0 -0
  74. data/{qed → demo}/core/string/lchomp.rdoc +0 -0
  75. data/{qed → demo}/core/string/line_wrap.rdoc +0 -0
  76. data/{qed → demo}/core/string/lines.rdoc +0 -0
  77. data/{qed → demo}/core/string/margin.rdoc +0 -0
  78. data/{qed → demo}/core/string/methodize.rdoc +0 -0
  79. data/{qed → demo}/core/string/modulize.rdoc +0 -0
  80. data/{qed → demo}/core/string/mscan.rdoc +0 -0
  81. data/{qed → demo}/core/string/natcmp.rdoc +0 -0
  82. data/{qed → demo}/core/string/nchar.rdoc +0 -0
  83. data/{qed → demo}/core/string/newlines.rdoc +0 -0
  84. data/{qed → demo}/core/string/op_sub.rdoc +0 -0
  85. data/{qed → demo}/core/string/pathize.rdoc +0 -0
  86. data/{qed → demo}/core/string/quote.rdoc +0 -0
  87. data/{qed → demo}/core/string/range.rdoc +0 -0
  88. data/{qed → demo}/core/string/rewrite.rdoc +0 -0
  89. data/{qed → demo}/core/string/shatter.rdoc +0 -0
  90. data/{qed → demo}/core/string/snakecase.rdoc +0 -0
  91. data/{qed → demo}/core/string/splice.rdoc +0 -0
  92. data/{qed → demo}/core/string/start_with.rdoc +0 -0
  93. data/{qed → demo}/core/string/subtract.rdoc +0 -0
  94. data/{qed → demo}/core/string/tab.rdoc +0 -0
  95. data/{qed → demo}/core/string/tabto.rdoc +0 -0
  96. data/{qed → demo}/core/string/titlecase.rdoc +0 -0
  97. data/{qed → demo}/core/string/to_re.rdoc +0 -0
  98. data/{qed → demo}/core/string/unfold.rdoc +0 -0
  99. data/{qed → demo}/core/string/unindent.rdoc +0 -0
  100. data/{qed → demo}/core/string/unquote.rdoc +0 -0
  101. data/{qed → demo}/core/string/variablize.rdoc +0 -0
  102. data/{qed → demo}/core/string/word_wrap.rdoc +0 -0
  103. data/{qed → demo}/core/string/words.rdoc +0 -0
  104. data/{qed → demo}/core/string/xor.rdoc +0 -0
  105. data/{qed → demo}/standard/02_cloneable.rdoc +0 -0
  106. data/{qed → demo}/standard/03_enumargs.rdoc +0 -0
  107. data/{qed → demo}/standard/04_equitable.rdoc +0 -0
  108. data/{qed → demo}/standard/05_instantiable.rdoc +0 -0
  109. data/{qed → demo}/standard/basic_object.rdoc +0 -0
  110. data/{qed → demo}/standard/memoizable.rdoc +0 -0
  111. data/{qed → demo}/standard/mulititon.rdoc +0 -0
  112. data/lib/core/facets.rb +1 -2
  113. data/lib/core/facets.yml +61 -42
  114. data/lib/core/facets/array.rb +8 -28
  115. data/lib/core/facets/array/arrange.rb +42 -0
  116. data/lib/core/facets/array/before.rb +2 -0
  117. data/lib/core/facets/array/collapse.rb +2 -0
  118. data/lib/core/facets/array/commonality.rb +24 -12
  119. data/lib/core/facets/array/duplicates.rb +22 -1
  120. data/lib/core/facets/array/each_overlap.rb +25 -0
  121. data/lib/core/facets/array/intersection.rb +25 -0
  122. data/lib/core/facets/array/missing.rb +29 -0
  123. data/lib/core/facets/array/nonuniq.rb +7 -53
  124. data/lib/core/facets/array/occur.rb +38 -0
  125. data/lib/core/facets/array/occurrence.rb +28 -0
  126. data/lib/core/facets/array/only.rb +12 -1
  127. data/lib/core/facets/array/recursively.rb +11 -5
  128. data/lib/core/facets/array/reject_values.rb +21 -0
  129. data/lib/core/facets/array/splice.rb +5 -1
  130. data/lib/core/facets/array/split.rb +5 -2
  131. data/lib/core/facets/array/squeeze.rb +23 -0
  132. data/lib/core/facets/array/step.rb +31 -0
  133. data/lib/core/facets/array/store.rb +4 -0
  134. data/lib/core/facets/array/to_h.rb +22 -0
  135. data/lib/core/facets/array/traverse.rb +11 -5
  136. data/lib/core/facets/array/uniq_by.rb +5 -1
  137. data/lib/core/facets/array/unique_permutation.rb +29 -0
  138. data/lib/core/facets/array/zip.rb +21 -0
  139. data/lib/core/facets/binding.rb +0 -3
  140. data/lib/core/facets/binding/call_stack.rb +1 -1
  141. data/lib/core/facets/binding/caller.rb +1 -3
  142. data/lib/core/facets/binding/callstack.rb +1 -1
  143. data/lib/core/facets/binding/defined.rb +0 -2
  144. data/lib/core/facets/binding/local_variables.rb +0 -2
  145. data/lib/core/facets/binding/op_get.rb +0 -2
  146. data/lib/core/facets/binding/self.rb +1 -3
  147. data/lib/core/facets/cattr.rb +1 -0
  148. data/lib/core/facets/class.rb +0 -2
  149. data/lib/core/facets/class/cattr.rb +1 -0
  150. data/lib/core/facets/class/singleton.rb +1 -13
  151. data/lib/core/facets/class/singleton_class.rb +16 -0
  152. data/lib/core/facets/comparable.rb +0 -2
  153. data/lib/core/facets/dir.rb +0 -2
  154. data/lib/core/facets/dir/ascend.rb +2 -2
  155. data/lib/core/facets/dir/lookup.rb +20 -0
  156. data/lib/core/facets/enumerable.rb +10 -9
  157. data/lib/core/facets/enumerable/accumulate.rb +18 -16
  158. data/lib/core/facets/enumerable/apply.rb +20 -0
  159. data/lib/core/facets/enumerable/associate.rb +6 -0
  160. data/lib/core/facets/enumerable/cluster.rb +24 -0
  161. data/lib/core/facets/enumerable/every.rb +1 -1
  162. data/lib/core/facets/enumerable/ewise.rb +2 -0
  163. data/lib/core/facets/enumerable/graph.rb +0 -3
  164. data/lib/core/facets/enumerable/hashify.rb +222 -19
  165. data/lib/core/facets/enumerable/hinge.rb +18 -0
  166. data/lib/core/facets/enumerable/key_by.rb +27 -0
  167. data/lib/core/facets/enumerable/map_to.rb +13 -0
  168. data/lib/core/facets/enumerable/mash.rb +34 -1
  169. data/lib/core/facets/enumerable/occur.rb +12 -9
  170. data/lib/core/facets/enumerable/only.rb +56 -0
  171. data/lib/core/facets/enumerable/{cluster_by.rb → organize_by.rb} +5 -4
  172. data/lib/core/facets/enumerable/pair.rb +20 -0
  173. data/lib/core/facets/enumerable/per.rb +27 -35
  174. data/lib/core/facets/enumerable/recursively.rb +3 -3
  175. data/lib/core/facets/enumerable/squeeze.rb +36 -0
  176. data/lib/core/facets/enumerable/sum.rb +18 -6
  177. data/lib/core/facets/enumerable/unassociate.rb +23 -0
  178. data/lib/core/facets/enumerable/value_by.rb +25 -0
  179. data/lib/core/facets/enumerator/fx.rb +16 -25
  180. data/lib/core/facets/enumerator/lazy/squeeze.rb +33 -0
  181. data/lib/core/facets/essentials.rb +65 -0
  182. data/lib/core/facets/exception.rb +0 -2
  183. data/lib/core/facets/exception/set_message.rb +10 -0
  184. data/lib/core/facets/file.rb +1 -2
  185. data/lib/core/facets/file/common_path.rb +17 -0
  186. data/lib/core/facets/file/rootname.rb +1 -1
  187. data/lib/core/facets/filetest.rb +0 -2
  188. data/lib/core/facets/filetest/relative.rb +1 -1
  189. data/lib/core/facets/filetest/safe.rb +14 -10
  190. data/lib/core/facets/float.rb +1 -3
  191. data/lib/core/facets/float/round_to.rb +1 -0
  192. data/lib/core/facets/functor.rb +8 -10
  193. data/lib/core/facets/hash.rb +2 -5
  194. data/lib/core/facets/hash/collate.rb +22 -8
  195. data/lib/core/facets/hash/count.rb +8 -4
  196. data/lib/core/facets/hash/data.rb +5 -2
  197. data/lib/core/facets/hash/dearray_values.rb +1 -1
  198. data/lib/core/facets/hash/deep_rekey.rb +54 -0
  199. data/lib/core/facets/hash/each_with_key.rb +12 -0
  200. data/lib/core/facets/hash/fetch_nested.rb +20 -0
  201. data/lib/core/facets/hash/keys.rb +4 -13
  202. data/lib/core/facets/hash/only_keys.rb +1 -0
  203. data/lib/core/facets/hash/op_push.rb +9 -1
  204. data/lib/core/facets/hash/op_sub.rb +1 -1
  205. data/lib/core/facets/hash/recursively.rb +6 -6
  206. data/lib/core/facets/hash/rekey.rb +26 -34
  207. data/lib/core/facets/hash/revalue.rb +61 -0
  208. data/lib/core/facets/hash/slice.rb +16 -3
  209. data/lib/core/facets/hash/subset.rb +11 -8
  210. data/lib/core/facets/hash/update_each.rb +1 -1
  211. data/lib/core/facets/hash/weave.rb +1 -1
  212. data/lib/core/facets/indexable.rb +6 -6
  213. data/lib/core/facets/integer.rb +0 -4
  214. data/lib/core/facets/kernel.rb +4 -7
  215. data/lib/core/facets/kernel/__dir__.rb +2 -0
  216. data/lib/core/facets/kernel/as.rb +2 -1
  217. data/lib/core/facets/kernel/call_stack.rb +1 -56
  218. data/lib/core/facets/kernel/callstack.rb +56 -1
  219. data/lib/core/facets/kernel/constant.rb +2 -0
  220. data/lib/core/facets/kernel/deep_clone.rb +27 -1
  221. data/lib/core/facets/kernel/deep_copy.rb +0 -24
  222. data/lib/core/facets/kernel/eigen.rb +2 -33
  223. data/lib/core/facets/kernel/eigenclass.rb +1 -1
  224. data/lib/core/facets/kernel/ergo.rb +1 -1
  225. data/lib/core/facets/kernel/extend.rb +4 -6
  226. data/lib/core/facets/kernel/instance_assign.rb +8 -6
  227. data/lib/core/facets/kernel/instance_extract.rb +22 -0
  228. data/lib/core/facets/kernel/instance_replace.rb +40 -0
  229. data/lib/core/facets/kernel/{equate.rb → like.rb} +7 -4
  230. data/lib/core/facets/kernel/load_relative.rb +25 -1
  231. data/lib/core/facets/kernel/meta.rb +35 -0
  232. data/lib/core/facets/kernel/meta_def.rb +4 -0
  233. data/lib/core/facets/kernel/object_send.rb +11 -14
  234. data/lib/core/facets/kernel/respond.rb +3 -13
  235. data/lib/core/facets/kernel/tap.rb +27 -39
  236. data/lib/core/facets/load_path.rb +1 -0
  237. data/lib/core/facets/load_path/search.rb +16 -0
  238. data/lib/core/facets/matchdata.rb +0 -2
  239. data/lib/core/facets/method.rb +0 -2
  240. data/lib/core/facets/method/composition.rb +32 -16
  241. data/lib/core/facets/method/curry.rb +13 -0
  242. data/lib/core/facets/method/partial.rb +10 -0
  243. data/lib/core/facets/method/public.rb +33 -0
  244. data/lib/core/facets/module.rb +0 -2
  245. data/lib/core/facets/module/alias_class_method.rb +11 -0
  246. data/lib/core/facets/module/basename.rb +1 -31
  247. data/lib/core/facets/module/cattr.rb +1 -0
  248. data/lib/core/facets/module/lastname.rb +30 -0
  249. data/lib/core/facets/module/mattr.rb +4 -4
  250. data/lib/core/facets/nilclass.rb +0 -3
  251. data/lib/core/facets/numeric.rb +0 -4
  252. data/lib/core/facets/numeric/approx.rb +3 -2
  253. data/lib/core/facets/numeric/range.rb +12 -0
  254. data/lib/core/facets/numeric/round_to.rb +32 -1
  255. data/lib/core/facets/object.rb +2 -3
  256. data/lib/core/facets/object/itself.rb +16 -0
  257. data/lib/core/facets/objectspace.rb +0 -3
  258. data/lib/core/facets/proc.rb +0 -3
  259. data/lib/core/facets/proc/bind_to.rb +3 -3
  260. data/lib/core/facets/proc/wrap.rb +17 -0
  261. data/lib/core/facets/process.rb +0 -2
  262. data/lib/core/facets/range.rb +4 -4
  263. data/lib/core/facets/range/op_add.rb +15 -0
  264. data/lib/core/facets/range/op_sub.rb +45 -0
  265. data/lib/core/facets/range/{to_r.rb → to_rng.rb} +1 -1
  266. data/lib/core/facets/regexp.rb +0 -2
  267. data/lib/core/facets/regexp/to_proc.rb +13 -0
  268. data/lib/core/facets/string.rb +8 -9
  269. data/lib/core/facets/string/ascii_only.rb +52 -0
  270. data/lib/core/facets/string/each_match.rb +1 -0
  271. data/lib/core/facets/string/ends_with.rb +1 -0
  272. data/lib/core/facets/string/file.rb +6 -20
  273. data/lib/core/facets/string/fold.rb +5 -5
  274. data/lib/core/facets/string/indent.rb +37 -20
  275. data/lib/core/facets/string/indexable.rb +7 -0
  276. data/lib/core/facets/string/interpolate.rb +6 -2
  277. data/lib/core/facets/string/linear.rb +19 -0
  278. data/lib/core/facets/string/margin.rb +47 -19
  279. data/lib/core/facets/string/mscan.rb +3 -0
  280. data/lib/core/facets/string/number.rb +14 -0
  281. data/lib/core/facets/string/op_sub.rb +1 -14
  282. data/lib/core/facets/string/random.rb +34 -0
  283. data/lib/core/facets/string/remove.rb +30 -0
  284. data/lib/core/facets/string/rotate.rb +24 -0
  285. data/lib/core/facets/string/similarity.rb +2 -2
  286. data/lib/core/facets/string/starts_with.rb +5 -0
  287. data/lib/core/facets/string/tab.rb +2 -17
  288. data/lib/core/facets/string/tabto.rb +2 -19
  289. data/lib/core/facets/string/to_rx.rb +1 -0
  290. data/lib/core/facets/string/trim.rb +45 -0
  291. data/lib/core/facets/string/unfold.rb +7 -2
  292. data/lib/core/facets/struct.rb +1 -2
  293. data/lib/core/facets/struct/replace.rb +8 -0
  294. data/lib/core/facets/symbol.rb +1 -3
  295. data/lib/core/facets/symbol/as_s.rb +3 -1
  296. data/lib/core/facets/symbol/call.rb +29 -0
  297. data/lib/core/facets/symbol/thrown.rb +9 -5
  298. data/lib/core/facets/time.rb +0 -2
  299. data/lib/core/facets/time/future.rb +6 -4
  300. data/lib/core/facets/unboundmethod.rb +0 -3
  301. data/lib/core/facets/version.rb +5 -5
  302. data/lib/standard/facets/against.rb +53 -0
  303. data/lib/standard/facets/binding/block_exec.rb +44 -0
  304. data/lib/standard/facets/cgi.rb +2 -40
  305. data/lib/standard/facets/cgi/esc.rb +11 -0
  306. data/lib/standard/facets/cgi/escape_html.rb +63 -0
  307. data/lib/standard/facets/cgi/marshal.rb +20 -0
  308. data/lib/standard/facets/cli.rb +54 -0
  309. data/lib/standard/facets/cloneable.rb +12 -9
  310. data/lib/standard/facets/enumargs.rb +159 -168
  311. data/lib/standard/facets/find.rb +1 -15
  312. data/lib/standard/facets/find/select.rb +16 -0
  313. data/lib/standard/facets/gem/search.rb +18 -0
  314. data/lib/standard/facets/gem/specification/current_specs.rb +21 -0
  315. data/lib/standard/facets/gem/specification/find_requireable_file.rb +21 -0
  316. data/lib/standard/facets/hash_builder.rb +46 -0
  317. data/lib/standard/facets/load_monitor.rb +26 -0
  318. data/lib/standard/facets/math.rb +57 -57
  319. data/lib/standard/facets/math/acosec.rb +1 -0
  320. data/lib/standard/facets/math/acsc.rb +6 -1
  321. data/lib/standard/facets/math/beta.rb +8 -3
  322. data/lib/standard/facets/math/cosec.rb +1 -0
  323. data/lib/standard/facets/math/cosech.rb +1 -0
  324. data/lib/standard/facets/math/csc.rb +6 -1
  325. data/lib/standard/facets/math/csch.rb +6 -1
  326. data/lib/standard/facets/math/distance.rb +19 -0
  327. data/lib/standard/facets/math/ec.rb +5 -0
  328. data/lib/standard/facets/math/lgamma.rb +21 -21
  329. data/lib/standard/facets/math/lngamma.rb +18 -0
  330. data/lib/standard/facets/math/pow.rb +6 -1
  331. data/lib/standard/facets/math/root.rb +1 -1
  332. data/lib/standard/facets/math/sign.rb +15 -4
  333. data/lib/standard/facets/math/tau.rb +5 -0
  334. data/lib/standard/facets/math/tgamma.rb +1 -1
  335. data/lib/standard/facets/memoizer.rb +63 -0
  336. data/lib/standard/facets/ostruct.rb +37 -156
  337. data/lib/standard/facets/ostruct/each.rb +11 -0
  338. data/lib/standard/facets/ostruct/initialize.rb +48 -0
  339. data/lib/standard/facets/ostruct/merge.rb +21 -0
  340. data/lib/standard/facets/ostruct/op_fetch.rb +29 -0
  341. data/lib/standard/facets/ostruct/op_store.rb +1 -0
  342. data/lib/standard/facets/ostruct/to_h.rb +10 -0
  343. data/lib/standard/facets/ostruct/to_ostruct.rb +65 -0
  344. data/lib/standard/facets/pathname.rb +18 -215
  345. data/lib/standard/facets/pathname/chdir.rb +15 -0
  346. data/lib/standard/facets/pathname/empty.rb +10 -0
  347. data/lib/standard/facets/pathname/exists.rb +6 -0
  348. data/lib/standard/facets/pathname/glob.rb +57 -0
  349. data/lib/standard/facets/pathname/home.rb +12 -0
  350. data/lib/standard/facets/pathname/null.rb +20 -0
  351. data/lib/standard/facets/pathname/op_div.rb +15 -0
  352. data/lib/standard/facets/pathname/op_fetch.rb +13 -0
  353. data/lib/standard/facets/pathname/outofdate.rb +13 -0
  354. data/lib/standard/facets/pathname/readline.rb +13 -0
  355. data/lib/standard/facets/pathname/root.rb +10 -0
  356. data/lib/standard/facets/pathname/rootname.rb +10 -0
  357. data/lib/standard/facets/pathname/safe.rb +15 -0
  358. data/lib/standard/facets/pathname/split_root.rb +9 -0
  359. data/lib/standard/facets/pathname/to_path.rb +28 -0
  360. data/lib/standard/facets/pathname/to_str.rb +8 -0
  361. data/lib/standard/facets/pathname/uptodate.rb +11 -0
  362. data/lib/standard/facets/pathname/visit.rb +38 -0
  363. data/lib/standard/facets/pathname/work.rb +10 -0
  364. data/lib/standard/facets/platform.rb +2 -2
  365. data/lib/standard/facets/random.rb +32 -2
  366. data/lib/standard/facets/shellwords.rb +5 -2
  367. data/lib/standard/facets/thread.rb +2 -2
  368. data/lib/standard/facets/uri.rb +7 -178
  369. data/lib/standard/facets/uri/cgi_escape.rb +46 -0
  370. data/lib/standard/facets/uri/cgi_parse.rb +1 -0
  371. data/lib/standard/facets/uri/cgi_unescape.rb +1 -0
  372. data/lib/standard/facets/uri/decode.rb +32 -0
  373. data/lib/standard/facets/uri/parameters.rb +63 -0
  374. data/lib/standard/facets/uri/query.rb +148 -0
  375. data/lib/standard/facets/yaml.rb +3 -56
  376. data/lib/standard/facets/yaml/file.rb +41 -0
  377. data/lib/standard/facets/yaml/kernel.rb +29 -0
  378. data/lib/standard/facets/yaml/read.rb +12 -0
  379. data/test/core/array/test_arrange.rb +37 -0
  380. data/test/core/array/test_each_overlap.rb +31 -0
  381. data/test/core/array/test_intersection.rb +19 -0
  382. data/test/core/array/test_missing.rb +12 -0
  383. data/test/core/array/test_occur.rb +52 -0
  384. data/test/core/array/test_occurrence.rb +20 -0
  385. data/test/core/array/test_reject_values.rb +17 -0
  386. data/test/core/array/test_squeeze.rb +22 -0
  387. data/test/core/array/test_step.rb +28 -0
  388. data/test/core/array/test_unique_permutation.rb +23 -0
  389. data/test/core/enumerable/test_key_by.rb +22 -0
  390. data/test/core/enumerable/test_occur.rb +18 -5
  391. data/test/core/enumerable/test_only.rb +40 -0
  392. data/test/core/enumerable/test_squeeze.rb +35 -0
  393. data/test/core/enumerable/test_sum.rb +8 -3
  394. data/test/core/enumerator/lazy/test_squeeze.rb +33 -0
  395. data/test/core/hash/test_count.rb +10 -1
  396. data/test/core/hash/test_deep_rekey.rb +131 -0
  397. data/test/core/hash/test_each_with_key.rb +16 -0
  398. data/test/core/hash/test_fetch_nested.rb +24 -0
  399. data/test/core/hash/test_keys.rb +0 -11
  400. data/test/core/hash/test_rekey.rb +41 -1
  401. data/test/core/hash/test_revalue.rb +98 -0
  402. data/test/core/hash/test_slice.rb +12 -1
  403. data/test/core/kernel/test_deep_clone.rb +31 -0
  404. data/test/core/kernel/test_deep_copy.rb +2 -28
  405. data/test/core/kernel/test_instance_extract.rb +28 -0
  406. data/test/core/method/test_composition.rb +42 -0
  407. data/test/core/range/test_op_add.rb +24 -0
  408. data/test/core/range/test_op_sub.rb +34 -0
  409. data/test/core/string/test_ascii_only.rb +30 -0
  410. data/test/core/string/test_margin.rb +4 -104
  411. data/test/core/string/test_number.rb +44 -0
  412. data/test/core/string/test_remove.rb +36 -0
  413. data/test/core/string/test_rotate.rb +31 -0
  414. data/test/core/string/test_trim.rb +116 -0
  415. data/test/core/symbol/test_thrown.rb +22 -0
  416. data/test/standard/binding/test_block_exec.rb +21 -0
  417. data/test/standard/math/test_acot.rb +23 -0
  418. data/test/standard/math/test_acoth.rb +22 -0
  419. data/test/standard/math/test_beta.rb +19 -0
  420. data/test/standard/math/test_ceil.rb +22 -0
  421. data/test/standard/math/test_cosec.rb +19 -0
  422. data/test/standard/math/test_cosech.rb +19 -0
  423. data/test/standard/math/test_cot.rb +13 -0
  424. data/test/standard/math/test_coth.rb +13 -0
  425. data/test/standard/math/test_distance.rb +16 -0
  426. data/test/standard/math/test_exp10.rb +14 -0
  427. data/test/standard/math/test_exp2.rb +14 -0
  428. data/test/standard/math/test_factorial.rb +13 -0
  429. data/test/standard/math/test_floor.rb +23 -0
  430. data/test/standard/math/test_gcd.rb +18 -0
  431. data/test/standard/math/test_lcm.rb +13 -0
  432. data/test/standard/math/test_pow.rb +30 -0
  433. data/test/standard/math/test_root.rb +15 -0
  434. data/test/standard/math/test_sec.rb +19 -0
  435. data/test/standard/math/test_sech.rb +19 -0
  436. data/test/standard/math/test_sign.rb +6 -0
  437. data/test/standard/math/test_sinc.rb +15 -0
  438. data/test/standard/math/test_srq.rb +20 -0
  439. data/test/standard/pathname/test_chdir.rb +16 -0
  440. data/test/standard/pathname/test_readline.rb +23 -0
  441. data/test/standard/test_enumargs.rb +1 -1
  442. data/test/standard/test_math.rb +3 -0
  443. data/test/standard/test_ostruct.rb +26 -21
  444. data/test/standard/test_uri.rb +9 -0
  445. metadata +802 -183
  446. data/.ruby +0 -54
  447. data/HISTORY.rdoc +0 -2386
  448. data/lib/core/facets/array/combination.rb +0 -43
  449. data/lib/core/facets/array/index.rb +0 -23
  450. data/lib/core/facets/array/occurent.rb +0 -1
  451. data/lib/core/facets/array/permutation.rb +0 -32
  452. data/lib/core/facets/array/product.rb +0 -30
  453. data/lib/core/facets/array/rotate.rb +0 -48
  454. data/lib/core/facets/array/select.rb +0 -20
  455. data/lib/core/facets/binding/eval.rb +0 -14
  456. data/lib/core/facets/enumerable/count.rb +0 -53
  457. data/lib/core/facets/enumerable/each_with_object.rb +0 -38
  458. data/lib/core/facets/enumerable/group_by.rb +0 -33
  459. data/lib/core/facets/enumerable/none.rb +0 -32
  460. data/lib/core/facets/enumerable/one.rb +0 -39
  461. data/lib/core/facets/enumerable/take.rb +0 -16
  462. data/lib/core/facets/float/round.rb +0 -2
  463. data/lib/core/facets/hash/select.rb +0 -17
  464. data/lib/core/facets/hash/to_h.rb +0 -1
  465. data/lib/core/facets/hash/url_params.rb +0 -21
  466. data/lib/core/facets/instance.rb +0 -157
  467. data/lib/core/facets/integer/even.rb +0 -1
  468. data/lib/core/facets/integer/odd.rb +0 -37
  469. data/lib/core/facets/kernel/__callee__.rb +0 -1
  470. data/lib/core/facets/kernel/__method__.rb +0 -48
  471. data/lib/core/facets/kernel/require_relative.rb +0 -52
  472. data/lib/core/facets/kernel/source_location.rb +0 -13
  473. data/lib/core/facets/nilclass/to_f.rb +0 -17
  474. data/lib/core/facets/numeric/round.rb +0 -69
  475. data/lib/core/facets/numeric/round_at.rb +0 -1
  476. data/lib/core/facets/object/replace.rb +0 -43
  477. data/lib/core/facets/objectspace/reflect.rb +0 -62
  478. data/lib/core/facets/proc/curry.rb +0 -32
  479. data/lib/core/facets/string/bytes.rb +0 -21
  480. data/lib/core/facets/string/each_char.rb +0 -31
  481. data/lib/core/facets/string/end_with.rb +0 -1
  482. data/lib/core/facets/string/lines.rb +0 -19
  483. data/lib/core/facets/string/random_binary.rb +0 -10
  484. data/lib/core/facets/string/start_with.rb +0 -60
  485. data/lib/core/facets/symbol/to_proc.rb +0 -33
  486. data/lib/core/facets/to_hash.rb +0 -336
  487. data/lib/core/facets/unboundmethod/name.rb +0 -28
  488. data/lib/standard/facets/math/gamma.rb +0 -12
  489. data/test/core/array/test_occurent.rb +0 -33
  490. data/test/core/kernel/test_source_location.rb +0 -25
  491. data/test/core/string/test_tabto.rb +0 -16
data/.ruby DELETED
@@ -1,54 +0,0 @@
1
- ---
2
- source:
3
- - var
4
- authors:
5
- - name: Thomas Sawyer
6
- email: transfire@gmail.com
7
- copyrights:
8
- - holder: Thomas Sawyer
9
- year: '2004'
10
- license: Ruby
11
- replacements: []
12
- alternatives: []
13
- requirements:
14
- - name: lemon
15
- groups:
16
- - test
17
- development: true
18
- - name: qed
19
- groups:
20
- - test
21
- development: true
22
- - name: detroit
23
- groups:
24
- - build
25
- development: true
26
- dependencies: []
27
- conflicts: []
28
- repositories:
29
- - uri: git@github.com:rubyworks/facets.git
30
- scm: git
31
- name: upstream
32
- resources:
33
- home: http://rubyworks.github.com/facets
34
- code: http://github.com/rubyworks/facets
35
- docs: http://rubyworks.github.com/facets/learn.html
36
- wiki: http://wiki.github.com/rubyworks/facets
37
- talk: http://groups.google.com/group/facets-universal
38
- extra: {}
39
- load_path:
40
- - lib/core
41
- - lib/standard
42
- revision: 0
43
- created: '2004-12-16'
44
- summary: Premium Ruby Extensions
45
- title: Facets
46
- version: 2.9.3
47
- name: facets
48
- description: Facets is the premier collection of extension methods for the Ruby programming
49
- language. Facets extensions are unique by virtue of thier atomicity. They are stored
50
- in individual files allowing for highly granular control of requirements. In addition,
51
- Facets includes a few additional classes and mixins suitable to wide variety of
52
- applications.
53
- organization: rubyworks
54
- date: '2011-12-31'
@@ -1,2386 +0,0 @@
1
- = Facets Release History
2
-
3
- == 2.9.3 / 2011-12-31
4
-
5
- Happy New Year! Ruby Facets kicks off the year with a 2.9.x release.
6
- This release adds a number of new methods, a few general improvements
7
- and bug fixes, a couple of deprecations and finally settles the
8
- project down to a two-part core/standard project organization.
9
-
10
- Changes:
11
-
12
- * New Features
13
-
14
- * Add Hash#url_params. (Matt Kirk)
15
- * Add Enumerable#hashify. (Ronen Barzel)
16
- * Add String#briefcase, similar to #titlecase.
17
- * Add Kernel#hierarchical_send (better replacement for preinitialize.rb).
18
- * Add Class#hierarchically, which supports #hierarchical_send.
19
- * Add Array#median, to get the sorted middle of an array.
20
- * Add Math#percentile and Math#median.
21
- * Add Instantiable mixin (returns from Mixers spin-off project).
22
- * Add Equitable mixin (returns from Mixers spin-off project).
23
- * Add Cloneable mixin (returns from Mixers spin-off project).
24
- * Add Array#each_pair and #each_value.
25
- * Add Numeric#positive? and #numeric?.
26
- * Add Method#* and #^ composition methods. (Mike Burns)
27
- * Add back Fixnum::MAX and MIN constants.
28
- * Add Binding#with.
29
-
30
- * Improved Features
31
-
32
- * Improve FileUtils#amass to be more robust.
33
- * Improve String#snakecase to convert spaces to underscores.
34
- * Improve String#camelcase to convert spaces to "camels".
35
- * Improve String#snakecase to not handle path names (use #pathize).
36
- * Improve String#camelcase to not handle module names (ise #modulize).
37
- * Improve Numeric#approx? bu using ratio.
38
-
39
- * Renamed Features
40
-
41
- * Rename Enumerable#has? to #incase?.
42
-
43
- * Bug Fixes
44
-
45
- * Fix Hash#rekey to keep default_proc.
46
- * Fix Binding#self to not be defined for Rubinius.
47
-
48
- * Deprecations
49
-
50
- * Deprecate Preinitializable mixin.
51
- * Deprecate main.rb, spun-off to `main_like_module` gem.
52
-
53
- * Implementation Details
54
-
55
- * Reconsolidated library into just two parts, `core` and `standard`.
56
- * The term "more" is just a synonym for "standard" now.
57
- * Relative requires are being used more extensively.
58
- * Collection scripts, e.g. `require 'facets'`, are static.
59
-
60
-
61
- == 2.9.2 / 2011-08-23
62
-
63
- The main purpose of this release is a fix for Module#redefine_method,
64
- so it will not conflict with ActiveSupport. Beyond that a handful of new
65
- methods have been added. This release also marks the start of using
66
- a src/ directory to generate the lib/ directory.
67
-
68
- Changes:
69
-
70
- * New Features
71
-
72
- * Add Enumerable#map_with and alias #zip_map.
73
- * Hash#delete_values returns removed keys (#12).
74
- * Add clap-like command-line parser to Shellwords.
75
- * Add Module#let, akin to RSpec's method.
76
- * Add uncommon Module#method_clash method.
77
- * Add uncommon Class#singleton? method.
78
-
79
- * Bug Fixes
80
-
81
- * Fix Module#redefine_method to use #remove_method.
82
- * Fix Kernel#object_hexid, or at least try to do so again.
83
- * Fix Exception#detail to not return backtrace if nil.
84
-
85
-
86
- == 2.9.1 / 2011-01-30
87
-
88
- Primarily this release fixes a couple of small issues. But also a handful of
89
- new methods have been added.
90
-
91
- Changes:
92
-
93
- * New Features:
94
-
95
- * Add FileTest#absolute? and #relative?
96
- * Add FileTest#contains?
97
- * Add FileTest#safe?
98
- * Add FileUtils#amass
99
- * Add FileUtils#outofdate
100
- * Add FileUtils#stage
101
- * Add Kernel#yes? and Kernel#no?
102
- * Add Enumerable#has? (TOUR library)
103
- * Add Digest#salted_digest, etc.
104
- * Add Digest#base64digest (1.9.2 method)
105
- * Add String#random_binary
106
-
107
- * Improved Features
108
-
109
- * Better OS detection in Platform class and RBConfig module
110
- * Moved CPU byte order methods from RBConfig to Platform class
111
- * General improvements to Platform class API
112
-
113
- * Bug Fixes
114
-
115
- * Module#redefine_method need not check pre-existence of method
116
- * Fix string/unquote.rb recursive require
117
- * Kernel#object_hexid varies on CPU arch, not Ruby version.
118
-
119
-
120
- == 2.9.0 / 2010-09-01
121
-
122
- This release is fairly extensive as it was originally intended to be v3.0.
123
- After further consideration it was decided to reserve v3.0 for the
124
- polish of real world feedback and more progressive changes. The primary
125
- focus of this release has been the completion of migrating Facets into a true
126
- extensions library. With this release almost all add-on classes and mixins
127
- have now been spun-off to other projects. Only the most general purposes
128
- add-on classes and mixins remain.
129
-
130
- A new TOUR library division has also been added to complement CORE and MORE.
131
- This division houses purely optional extensions. The new division serves
132
- a couple of useful purposes. In particular, it helps separates the standard
133
- library extensions from optional core extension in the RDocs and thus makes
134
- the perfect place to vet new extension ideas.
135
-
136
- One important change that will effect anyone using Facets along side
137
- ActiveSupport is that Facets no longer tries to conditionally avoid
138
- method overlaps with ActiveSupport. This is fine for the upcoming
139
- ActiveSupport 3.0 library which extends core classes directly instead of
140
- using mixins. One need only require 'facets' in the Rails config/preinitializer.rb
141
- file and ActiveSupport will take precedence over Facets. For older versions
142
- of ActiveSupport, the best approach is to cherry pick from Facets just the
143
- extensions you want, thus avoiding any conflicts. There are actually only a
144
- dozen or so overlaps and all are intended to compatible, but it doesn't hurt
145
- to be sure.
146
-
147
- Lastly, it is worth mentioning that this release has been more thuroughly
148
- tested than any version of Facets to date. Thanks to RVM this release runs
149
- green on Ruby 1.8.6, 1.8.7 and 1.9.2.
150
-
151
- Changes:
152
-
153
- * New Features
154
-
155
- * Add Kernel#temporarily, set variables temporarily and eval block
156
- * Add Kernel#deep_clone, a better alternative to #deep_copy
157
- * Add Kernel#present? and Kernel#presence
158
- * Add Kernel#not and #not?
159
- * Add Array#extract_options!, for pulling options off argument list
160
- * Add Regexp#|, operator for Regexp#union
161
- * Add Array#percentile and Array#median
162
- * Add Module#memo, for instance level memoization
163
- * Add YAML.read method
164
- * Add Pathname#include?
165
- * Add Module#anonymous?
166
- * Add Module#copy_inheritor
167
- * Add Indexable#from and Indexable#upto
168
- * Add Array#from and Array#thru
169
- * Add NA class via na.rb
170
- * Add Memoizable in memoizable.rb for a more robust memoization system
171
- * Add Module#safe_memo in thread.rb for thread safe memoization
172
- * Add Kernel#sandbox in thread.rb for threaded $SAFE=4 evaluation
173
- * Add Hash#subset
174
- * Add Kernel#Y to tour library
175
- * Add numerous Math extensions
176
-
177
- * Deprecations
178
-
179
- * Deprecate Module#attr_toggler as a YAGNI
180
- * Deprecate Kernel#class_eval b/c of it's confusing behavior
181
- * Deprecate Module#once is no longer an alias for #memoize
182
- * Deprecate Integer#succ(n) (for compatibility reasons)
183
- * Deprecate Stackable, it's method were moved to CORE
184
- * Deprecate Kernel#populate and #set_from (use #assign and #assign_from)
185
- * Deprecate Kernel#non_nil? since #not_nil? is enough
186
- * Deprecate #__HERE__ b/c implementation was unreliable
187
- * Deprecate Time#since, use #less instead
188
- * Deprecate Time#advance, use #shift instead
189
- * Deprecate Kernel#super_as (no good way to get callers method name)
190
- * Deprecate Integer#clear_bit, use #bit_clear instead
191
- * Deprecate Kernel#resc, use String#to_re or #to_rx instead
192
- * Deprecate Module#modspace
193
- * Deprecate Kernel#__ and class X for Proc#partial, use NA instead
194
- * Deprecate autoreload.rb has been spun-off to a separate project
195
- * Deprecate Module#nesting, b/c redundant and overlap with Module.nesting
196
-
197
- * Renamed Features
198
-
199
- * Rename Module#parent to Module#enclosure
200
- * Rename Module#parents to Module#enclosures
201
- * Rename Module#parent_name to Module#modname
202
- * Rename Array#recurisvely to Array#recurse
203
- * Rename Hash#recurisvely to Hash#recurse
204
- * Rename Enumerable#recursive to Enumerable#recursively
205
- * Rename Array#recursive to Array#recursively
206
- * Rename Hash#recursive to Hash#recursively
207
- * Rename Kernel#silence_warnings to Kernel#disable_warnings
208
- * Rename Hash#recursive_merge to Hash#deep_merge
209
- * Rename Class#prepend to Class#preallocate
210
- * Rename File#atomic_write to FileUtils#atomic_write
211
- * Rename Module#conflict to Module#method_clash
212
- * Rename Class#inheritor to Module#class_inheritor
213
- * Rename Symbol#re_s to Symbol#as_s
214
- * Rename String#chars to String#characters
215
- * Rename String#outdent to String#unindent
216
- * Rename Time#round to Time#round_to
217
- * Rename Time#hence to Time#shift (but keep aliases)
218
- * Rename Hash#zipnew to Hash#zip
219
-
220
- * Moved Libraries
221
-
222
- * Move roman.rb to integer/roman and string/roman.rb
223
- * Move blank.rb to kernel/blank.rb
224
- * Move facets-live.rb to facets/auto_core.rb
225
- * Move cattr.rb to MORE library
226
- * Move duplicable.rb to kernel/dup.rb
227
- * Move bitmask.rb to integer/bitmask.rb
228
- * Move enumerable/divide.rb to array/divide.rb
229
- * Move enumerable/split.rb to array/split.rb
230
- * Move enumerable/entropy.rb to array/entropy.rb
231
- * Move enumerable/probability.rb to array/probability.rb
232
- * Move enumerable/duplicates.rb array/duplicates.rb
233
- * Move module/enclosure.rb to optional TOUR libs
234
- * Move kernel/instance_exec to option TOUR libs
235
-
236
- * Bug Fixes
237
-
238
- * Fix Fixed Hash#rekey! from clobbering previous keys
239
- * Fix Exception#raised? is a class method
240
- * Fix Enumerator#fx should use #map instead of #each
241
- * Fix String#splice needs String#store
242
- * Fix Kernel#blank? empty condition was faulty
243
- * Fix Comparable#bound needs clip.rb, not cap.rb
244
- * Fix String#file needs to pass block
245
- * Fix String#edit_distance use new encodings for Ruby 1.9
246
-
247
- * Improved Features
248
-
249
- * New lib/tour division of libraries
250
- * Module#class_extend dynamically creates append_features method
251
- * Kernel#require_all is only for relative requires
252
- * __DIR__ can take subdirectory arguments
253
- * Hash#join has more sensible default separator (' ')
254
- * Some OpEsc escapes have been renamed
255
- * Kernel#assign does not accept a block
256
- * Kernel#try is now like ActiveSupport's
257
- * Improved #respond (which is like old #try)
258
- * Remove all `if defined?(ActiveSupport)` conditions
259
- * Use #random_range to support specialized Range#at_rand functionality
260
- * Use Comparable.[] instead of Comparable()
261
- * Array#rotate rotates in opposite direction than before (b/c or Ruby 1.9)
262
-
263
-
264
- == 2.8.4 / 2010-04-27
265
-
266
- A minor point release just to get a few improvements out there before
267
- endeavering into more extensive work for the next major release.
268
-
269
- * New Features
270
-
271
- * Added #glob_relative to Pathname
272
-
273
- * Deprecations
274
-
275
- * Deprecated BlankSlate (use BasicObject)
276
- * Deprecate hashbuilder.rb
277
- * Removed casting_hash.rb, moved to new library
278
- * Removed opencollection.rb, moved to new library
279
- * Removed ansicode.rb, use ansi gem
280
-
281
- * Bug Fixes
282
-
283
- * changed Numeric#length to return self, not to_s.self
284
- * Fix mispelling of Class#descendants
285
-
286
- * Other Improvements
287
-
288
- * Range#at_rand has been optimized
289
- * Kernel#singleton_class no longer can take a block
290
- * Hash#to_proc takes response argument replacing #to_proc_with_response
291
- * OpenHash becomes more like OpenObject and OpenObject becomes bare bones
292
- * Range#at_rand optimized for Fixnum/Bignum instead of Integer
293
-
294
-
295
- == 2.8.3 / 2010-04-10
296
-
297
- New release which makes a few adjustments in Kernel core extensions,
298
- adds a few new extensions and additions, plus other small improvements.
299
- The biggest change is the addition of Recusor, which is created via
300
- Enumerable#recursive. This class is somewhat like Enumerator and
301
- provides a number of recursive methods.
302
-
303
- Changes:
304
-
305
- * 9 New Core Extensions
306
-
307
- * Enumerable#recursive provides a number of other recursive methods.
308
- * Enumerable#visit can be used to recursively iterate any Enumerable.
309
- * Module#set has been added (from Sinatra).
310
- * Symbol#/ is added to be like String#/.
311
- * Struct#to_h is added and will ultimately replace Struct#attributes.
312
- * ObjectSpace#reflect routes method calls to Kernel context.
313
- * Hash#to_module converts a hash to mixin module (Jay Fields).
314
- * Kernel#dup! is same as #try_dup from extlib.
315
- * Add File#ext which is a useful variation of #extname (Lavir the Whiolet).
316
-
317
- * 3 Core Extensions Renamed
318
-
319
- * Renamed #set_from to #assign_from (alias remains until Kernel#set is considerd).
320
- * Renamed #populate to #assign and improve.
321
- * Kernel#instance_vars is now Kernel#instance and also more useful.
322
-
323
- * 1 Core Deprecation
324
-
325
- * Removed #instance_eval hack.
326
-
327
- * 2 Core Bug Fixes
328
-
329
- * #map_with_index now uses #each_with_index.
330
- * #to_proc_with_response spelling correction.
331
-
332
- * 1 Core Adjustment
333
-
334
- * Aliased #metadef to #meta_def.
335
-
336
- * 3 New More Libraries
337
-
338
- * casting_hash.rb provides CastingHash class, a hash with flexible keys and values.
339
- * prepend.rb allows for AOP-like inclusion of modules.
340
- * roman.rb provides simple roman numeral extensions to String and Integer.
341
-
342
- * 5 More Improvements
343
-
344
- * Pathname#visit for iterating all entries beneath a path (chikamichi).
345
- * Pathname#to_str, b/c Pathname is basically a type of String (from extlib).
346
- * Range#at_rand in random.rb handles Float ranges (Lavir the Whiolet).
347
- * FileUtils#cp_rx provides controlled copies.
348
- * Stash class in stash.rb is improved and is now available as a stand-alone library.
349
- * ioredirect.rb has been removed as IORedirect no longer worked.
350
- * plugin_manager.rb has been removed. Use 'plugin' gem instead.
351
-
352
-
353
- == 2.8.2 / 2010-02-22
354
-
355
- This release fixes a bug by removing Numeric#size. Turns out that was a
356
- core method already. It includes an "auditing" of the core enumerable
357
- method which has led to a few modifications most noteable amoung them
358
- renaming #map_detect to #find_yield and #compact_map to #purge.
359
-
360
- Changes:
361
-
362
- * 7 New Core Extensions
363
-
364
- * Add Enumerable#each_with_object.
365
- * Add #collapse which is a shortcut for flatten.compact.
366
- * Add Numeric#spacing (Mr. Groff)
367
- * Add Array#uniq_by! to complement Enumerable#uniq_by.
368
- * Add String#exclude? as opposite of #include?
369
- * Add Enumerable#exclude? as opposite of #include?
370
- * Add Proc#bind_to
371
-
372
- * 2 Extensions Renamed
373
-
374
- * Rename Enumerable#compact_map to #purge.
375
- * Rename Enumerable#map_detect to #find_yield.
376
-
377
- * 4 Deprecations
378
-
379
- * Deprecate #inject!/#injecting in favor of #filter.
380
- * Deprecate Array#** as alias of #product.
381
- * Remove Numeric#size, as it was already used by core.
382
- * Spun tracepoint.rb off as a seprate library.
383
-
384
- * 3 Other Changes
385
-
386
- * Integer#multiple? handles zero as an argument.
387
- * facets.rb is now dynamically loaded instead of code generated.
388
- * General imporvements to date.rb.
389
-
390
-
391
- == 2.8.1 / 2009-12-25
392
-
393
- This release simply fixes a few minor issues.
394
-
395
- Changes:
396
-
397
- * 1 New Standard Extension
398
-
399
- * Added Pathname#glob_relative to pathanme.rb.
400
-
401
- * 3 Adjustments
402
-
403
- * Loading string/tab.rb no longer loads margin.rb or expand_tab.rb.
404
- * Fixed FileList method delegations.
405
- * Numeric#length and #size return +self+, not +to_s.length+.
406
-
407
-
408
- == 2.8.0 / 2009-11-05
409
-
410
- Facets 2.8 effectively completes the MORE library clean-up which peaked
411
- with the previous 2.7 release. Another eight libraries have been deprecated,
412
- a few of them spun-off to a separate project. However, this verison also
413
- reverts a few of the deprecations made in the last version. These libs
414
- will remain in Facets's MORE library for the forseeable future.
415
-
416
- This version effectively concludes the MORE library clean-up. The next, and
417
- last version before Facets 3.0, will focus on "auditing" the CORE library.
418
-
419
- Changes:
420
-
421
- * 6 Libraries "Undeprecated":
422
-
423
- * ini.rb
424
- * linkedlist.rb
425
- * matcher.rb
426
- * memoizer.rb
427
- * roman.rb
428
- * semaphore.rb
429
-
430
- * 5 Libraries Deprecated:
431
-
432
- * fileable.rb (too esoteric)
433
- * ioredirect.rb (needs better implementation)
434
- * coroutine.rb (because of Fiber)
435
- * capsule.rb (may be spun-off)
436
- * recorder.rb (may be spun-off)
437
-
438
- * 3 Libraries Spun-Off and Deprecated:
439
-
440
- * ansicode.rb ansi
441
- * progressbar.rb ansi
442
- * logger.rb ansi
443
-
444
- * Additonal Enhancements:
445
-
446
- * Kernel#extend can now take a block
447
- * Fixed kernel#d so it is useable
448
- * Added Range#at_rand (thanks to Tyler Rick)
449
- * Added Enumerable#map_detect (thanks to Scott Taylor)
450
- * String#/ calls File.join
451
- * Added String#newlines and String#cleanlines
452
- * String#titlecase includes apostrophe in words
453
- * BasicObject/BlankSlate is more compliant with 1.9.1 design
454
- * Enumerable#count can take multiple items, treats as logical Or
455
- * Class#class_extend extends class level, not class_eval
456
- * Integer#succ(n) becomes Fixnum#succ(n), succ.rb
457
- * Complete rewrite of Inheritor
458
- * Shellwords extensions have been reworked
459
- * Added String#similarity
460
- * Added Levenshtein String#edit_distance method
461
- * And other minor improvements (some thanks to ccjr)
462
-
463
-
464
- == 2.7.0 / 2009-08-01
465
-
466
- Facets 2.7 is the biggest release of Facets since 2.4. Rather then trickle-release these
467
- changes over the course of the 2.6.x series, I made the decision to let 2.7 have them
468
- all at once. In so doing this release nearly completes the process of trimming down
469
- the MORE library to its essentials. Over 40 high-level libraries have been spun-off
470
- as separate gems and/or deprecated. No doubt this is a big change for Facets, and the
471
- transition may be a bit bumpy over the short-term, but I am certain that in the long-run
472
- everyone involved will be better served. To help, I have listed the effected libraries
473
- and the alternate gems availble to take their place.
474
-
475
- A few other changes have also been made in the release that may also effect your code.
476
- In particular you should note that #class_extension has been renamed to #class_extend
477
- (require 'facets/class_extend'). In addition we have added a few new core methods such
478
- as Exception#raised? and Symbol#thrown?.
479
-
480
- Changes:
481
-
482
- * Spun-Off Projects
483
-
484
- These libraries have been deprectated from Facets entirely, but are available
485
- as separate gems (or soon will be).
486
-
487
- LIBRARY GEM
488
- -------------------- ------------------------------
489
- overload.rb overload
490
- binreadable.rb binaryio
491
- downloader.rb downloader
492
- xoxo.rb xoxo
493
- bicrypt.rb bicrypt
494
- typecast.rb typecast
495
- association.rb association
496
- syncarray.rb sync
497
- synchash.rb sync
498
- paramix.rb paramix
499
- crypt.rb crypt3
500
- lrucache.rb lrucache
501
- net/smtp_tls.rb smtp_tls
502
- advisable.rb advisable
503
- buildable.rb buildable
504
- memoizer.rb memoizer
505
- harray.rb sparray
506
- sparse_array.rb sparray
507
- iteration.rb iteration
508
- interval.rb stick
509
- infinity.rb stick
510
- pool.rb pool
511
- linkedlist.rb linkedlist
512
- semaphore.rb semaphore
513
- pqueue.rb pqueue
514
- censor.rb language
515
- matcher.rb language
516
- basex.rb radix
517
- minitar.rb archive-tar-minitar -or- folio
518
-
519
- * Spun-Off But Still Available
520
-
521
- These libraries have been spun-off into stand-alone gems, but remain
522
- available via Facets too. Ultimately some of these will be removed
523
- from Facets too (in particular the ansi libraries).
524
-
525
- LIBRARY GEM
526
- -------------------- ------------------------------
527
- ansicode.rb ansi
528
- progressbar.rb ansi
529
- logger.rb ansi
530
- tracepoint.rb tracepoint
531
- dictionary.rb dictionary
532
- recorder.rb recorder
533
- ostructable.rb ostructable -or- openhash
534
- openobject.rb openhash
535
- opencollection.rb openhash
536
- opencascade.rb openhash
537
- openhash.rb openhash
538
- openmodule.rb openmodule
539
- fileable.rb fileable
540
- enumerablepass.rb enumargs
541
-
542
- * Deprecations Without Current Replacement
543
-
544
- The libraries have been deprecated but do not yet have replacements.
545
- Seperate gems for these are planned though.
546
-
547
- * bbcode.rb
548
- * ini.rb
549
- * settings.rb
550
- * xmlhash.rb
551
-
552
- * Deprecations Merged Into CORE
553
-
554
- These libraries have been deprecated because their functionality was merged into
555
- the CORE library and/or made available in some another way.
556
-
557
- * 1stclassmethod.rb #method! and #instance_method! are now part of CORE.
558
- * elementor.rb #per has been added to CORE.
559
- * elementwise.rb #ewise has been added to CORE.
560
- * consoleutils.rb #ask is in CORE, for the rest see Ansi or Clio project.
561
- * attr.rb Added Module#attr_setter to CORE, and separated the rest in MORE.
562
-
563
- * General Deprecations
564
-
565
- These libraries have simply been deprecated because they were found lacking in
566
- some significant fashion.
567
-
568
- * nilstatus.rb Poved rather useless, not to mention trivial.
569
- * heap.rb Heap was just an alias for PQueue anyway. Use 'pqueue' instead.
570
- * dependency.rb Other solutions exist that are much better (like Advisable).
571
- * classmethods.rb #class_extend solution is more robust.
572
- * ziputils.rb Have a look at Folio (gem install folio) for replacement.
573
- * unheritable.rb Implementation is trivial and usefulness questionable.
574
- * instantise.rb Replaced by instance_function.rb.
575
-
576
- * Other Enhancements
577
-
578
- * Fixed Proc#curry to work with #define_method (Thanks to R.Potter)
579
- * Module#class_extension has been renamed to #class_extend (require 'facets/class_extend').
580
- * kernel#instance is no longer in core; now it is an extra monkey patch for #instance_eval.
581
- * Kernel#this has been removed. It is equivalent to 'method(__method__)'.
582
- * BlankSlate is now an alias for BasicObject, and will be deprecated in the future.
583
- * Kernel#method! and Module#instance_method! now use a global variable for their cache.
584
- * #object_state (old name was #state) has been added to core.
585
-
586
-
587
- == 2.6.0 / 2009-07-03
588
-
589
- Facets 2.6.0 removes htmlfilter.rb and cssfilter.rb due to licensing
590
- incompatability. These scripts are now available as a separate package
591
- called 'htmlfilter'. Also removed are a few MORE libs that were too
592
- expiremental and/or not robust enough. Effectively this finishes up
593
- the "spring cleaning" of the MORE lib mentioned a few releases back.
594
-
595
- But it also marks a new start in trimming MORE down further. We have
596
- decided to do this for three reasons 1) Some of the MORE libs would
597
- be better served as separate projects. 2) Facets will become a tighter
598
- library, primarily focused on extensions. And 3) all libraries involved
599
- will become easier to maintain and thus more robust in the long run.
600
-
601
- This release also fixes an important arity bug with the recently added
602
- Module#extend method --one of the very few actual core overrides in Facets.
603
-
604
- Changes:
605
-
606
- * 7 Major Enhancements
607
-
608
- * Removed htmlfilter.rb due to licensing issues.
609
- * Also removed cssfilter.rb ('gem install htmlfilter' now)
610
- * Removed rwdelegator.rb, simply not a robust solution.
611
- * Removed buildable.rb, api is too confusing.
612
- * Removed meta.rb which was not very useful and too expiremental anyway.
613
- * Removed prototype.rb, which needs it's own project.
614
-
615
- * 3 Minor Enhancements
616
-
617
- * Removed Kernel#__HERE__ as it simply cannot work.
618
- (Ruby 1.9.2 will offer #source_location for the same, btw)
619
- * Returned binding/opvars to core.
620
- * Added Integer#length as suggested by Victor H. Goff III.
621
-
622
- * 1 Bug Fix
623
-
624
- * Fixed arity issue with Module#extend.
625
-
626
-
627
- == 2.5.2 / 2009-04-07
628
-
629
- Facets 2.5.2 is a simple maintentance release which fixed a few issues
630
- in the new to_hash.rb library. This release also added String#lowercase
631
- and String#uppercae.
632
-
633
- Changes:
634
-
635
- * 1 Major Enhancement
636
-
637
- * added string/uppercase and lowercase
638
-
639
- * 1 Minor Enhancement
640
-
641
- * adjustments to to_hash.rb
642
-
643
-
644
- == 2.5.1 / 2009-03-05
645
-
646
- Facets 2.5.1 fixes a few bugs, makes some small but nice additions
647
- and improves 1.9 compatibility.
648
-
649
- The most important addition to make note of is Object#extend, which has
650
- been overridden to allow a block parameter. This is one of only two or three
651
- actual "monkey patches" in all of Facets. The block, when provided,
652
- is used to create an annonymous module which then extends the reciever.
653
- This is a "good practice" way to extend objects, rather than using class_eval
654
- on the singleton class.
655
-
656
- Special thanks to Erik Veenstra, Pit Capitan and especially Sandor Szücs
657
- for their contributions to this release.
658
-
659
- Changes:
660
-
661
- * 7 Major Enhancements
662
-
663
- * added Hash#group_by_value (thanks to Erik Veenstra)
664
- * added String#file
665
- * added Hash#new_with (Pit Capitan)
666
- * added module/extend.rb, now can take a block.
667
- * added hook.rb
668
- * added to_h_auto
669
- * overhauled to_hash.rb, now has multiple methods
670
-
671
- * 10 Bug Fixes
672
-
673
- * corrected ostruct.rb to test for frozen state on updates
674
- * fixed String#left_align
675
- * fixed conflict between test_name.rb and test_arguments.rb
676
- * fixed Enumreable#split when reciever is empty array
677
- * fixed coruption of reciever by Hash#collate (thanks to Tilo Sloboda)
678
- * fixed Array#to_h, h={} was not initialized
679
- * fixed test of Module#conflict according ruby19
680
- * fixed Hash#dearray_singluar_values
681
- * association.rb stores reference when using #new
682
- * changed Array#product to make it compatible to ruby 19, deleted block parameter
683
-
684
- * 5 Minor Enhancements
685
-
686
- * split enumerable/collect into map_with_index and compact_map
687
- * improved Array#to_h for 1.9 using flatten(1)
688
- * Dictionary#replace can take regular Hash too
689
- * move test_to_hash.rb from more to core
690
- * Doc'd that UnboundMethod#name returns Symbol in 1.9, but String in 1.8
691
-
692
-
693
- == 2.5.0 / 2008-11-23
694
-
695
- Facets 2.5.0 is an important milestone in the development of Facets.
696
-
697
- This release has been tested against Rails' ActiveSupport library.
698
- As long as Facets is loaded after ActiveSupport, everything
699
- should work fine. Of course, there's no counting for real world
700
- trials, but all ActiveSupport testcases pass under this scenario.
701
-
702
- Secondly, this release is the first of two (or three) down-scaling
703
- releases intended to remove all the remaining "excess" from the
704
- library. This is being done for a variety of reasons. Some scripts
705
- are substantial enough to be one their own and have been spun-off
706
- into separate largely compatible projects. In this release:
707
-
708
- If you were using... Use this project instead...
709
-
710
- annotations.rb Anise
711
-
712
- bytes.rb RichUnits
713
- times.rb
714
-
715
- command.rb Clio
716
- consoleutils.rb
717
-
718
- A few others scripts have been deprecated, without an alternative
719
- recourse, simply because they were too weak, such as uploadutils.rb,
720
- or highly experimental, such as chain.rb and eventhook.rb.
721
-
722
- Although this release constitutes an over all slimming down of Facets,
723
- two excellent new libraries have been added.
724
-
725
- 1) *ini.rb* by Jeena Paradies. While YAML is frequently used by
726
- Rubyists for configuration files, a full-on serializer like YAML
727
- is often overkill. INI files provide a lightweight solution
728
- specifically geared for configuration.
729
-
730
- 2) *filter.rb* by Brian Candler offers lazy evaluation chains of
731
- Enumerable methods. This is an elegant way to optimize contiguous
732
- maps, selections, etc. --effective even on infinite enumerators.
733
- (Note, the name of this library may be changed in the next release.)
734
-
735
- While work remains to be done, I am happy to say, Facets is
736
- finally beginning to approach the level of solidity I set out to
737
- achieve just over a year ago. Thank the Maker!
738
-
739
- Special thanks to Brian Candler, Jeena Paradies and Tyler Rick.
740
-
741
- Changes:
742
-
743
- * 9 Major Changes
744
-
745
- * added Brian Candler's Enumerator::Filter
746
- * added sparse_array.rb (was old harray.rb)
747
- * added Jeena Paradies' ini.rb
748
- * renamed CacheDelegator to Memoizer
749
- * renamed DictionaryMatcher to just Matcher
750
- * deprecated bytes.rb and times.rb (use RichUnits instead)
751
- * deprecated uploadutils.rb; ziputils.rb will be (use Folio)
752
- * deprecated annotations.rb (use Anise instead)
753
- * deprecated command.rb and consoleutils.rb (use Clio instead)
754
-
755
- * 5 Minor Changes
756
-
757
- * deprecated chain.rb (very expiremental)
758
- * deprecated eventhook.rb (moved to ToadCode project)
759
- * deprecated tagiter.rb (moved to ToadCode project)
760
- * moved Hash#symolize_keys and #stringify_keys to core lib
761
- (still recommend #rekey instead though)
762
- * switched to git as of 2.4.5
763
-
764
- * 4 Bug Fixes
765
-
766
- * memoize.rb, cache was at class-level, now at instance-level
767
- * binding/caller.rb, fixed require for callstack.rb
768
- * fixed missing require in string/tabto.rb
769
- * Fixed some bugs with Time#ago/Time#hence not changing years
770
- correctly when you changed months.
771
- (For example, Time.utc(2008, 1, 1).ago(12, :months) incorrectly
772
- returned 2009-01-01 instead of 2007-01-01.)
773
- Changed Time#ago/Time#hence to still work if passed negative number.
774
-
775
-
776
- == 2.4.5 / 2008-10-02
777
-
778
- Facets 2.4.5 is a maintaince release. This release is notable however in that
779
- it will likely be the last that to use SVN. Facets will be switching to Git.
780
- Also, some libraries that have been flagged "to be deprecated" for some time
781
- will finally be so.
782
-
783
- Changes:
784
-
785
- * 8 Major Enhancements
786
-
787
- * Re-added date.rb to lore library, and removed from core. (#r1014)
788
- * Much improved date.rb extension now in Lore library. (#r1027)
789
- * Deprecated kernel/suppress. Use Exception.suppress from now on. (#r1040)
790
- * Deprecated string/style.rb. Use English project instead. (#r1074)
791
- * Console namespace is no longer supported (for Ansicode). (#r1077)
792
- * enumerable/mode.rb, Enumerable#mode returns array since there can be more than one. (#r1079)
793
- * OpenCascade automatically creates nodes, use foo? to query. (#r1056)
794
- * Change #index_of to #index which now takes a block.
795
-
796
- * 14 Minor Enhancements
797
-
798
- * OpenStruct.new can now take a default block, like Hash.new.
799
- * Moved variablize methods out of metaid.rb and into separate files (string/ and symbol/). (#r1042)
800
- * Added Time#advance. (#r1046)
801
- * Speed up of Integer odd/even methods. (#r1057)
802
- * Array#index now takes a block (this is a core override). (#r1059)
803
- * Spilt file/write.rb into separate method files (append, create, writelines). (#r1073)
804
- * Modified Enumerable#split to behave like String#split. (#r1076)
805
- * hash/op.rb, split into separate method files. (#r1081)
806
- * Added string/modulize. string/methodize handles path names now too. (#r1085)
807
- * Class#cattr is now part of core. (#r1089)
808
- * Modified Enumerable#split to behave like String#split. [minor]
809
- * Removed Rope class. If anything this will have a separate project.
810
- * Added doc/news.html and doc/authors.html to website (temporarily?).
811
- * Added zlib.rb to Lore library.
812
-
813
- * 7 Bug Fixes
814
-
815
- * OpenStruct#to_h dups internal table. (#r1015)
816
- * Fixed require of string/xor in bicrypt.rb. (#r1039)
817
- * integer/odd.rb, fixed Ruby 1.9 condition. (#r1080)
818
- * class/cattr_*.rb fix require bug
819
- * opencascade.rb, fixed bug when accessing sub-hash.
820
- * typecast.rb, fixed require for string/methodize.
821
- * Fixed Pathname#glob to ensure use of ::File.
822
-
823
-
824
- == 2.4.4 / 2008-09-01
825
-
826
- Facets 2.4.4 includes a major bug fix that caused Facets not to load properly,
827
- having to do with a Time extension. The problem has been fixed. In addition,
828
- this release put Facets only a few pending adjustments away from full
829
- Rails/ActiveSupport compatibility.
830
-
831
- Changes:
832
-
833
- * 10 Major Enhancements
834
-
835
- * Added string/mask providing powerful string manipulation. (#997)
836
- * BasicObject is now just a synonm for BlankSlate unless Ruby 1.9. (#1000)
837
- * Added Symbol#plain?, Symbol#query? and Symbol#setter? (#1011)
838
- * Removed Time#to_date.
839
- * Due to clobberd RI Docs (!) this should have been in Lore lib date.rb
840
- * Moved to Lore date.rb. (#1012)
841
- * Re-added date.rb to lore library, and removed from core. (#1014)
842
- * Much improved date.rb extension now in Lore library. (#1027)
843
- * Deprecated kernel/suppress. Use Exception.suppress from now on. (#1040)
844
- * Improved date.rb and moved to LORE library, and removed from CORE. [major]
845
- * Deprecated kernel/suppress. Use Exception.suppress from now on. [major]
846
- * Deprecated String#to_time.
847
- * This method reqiures the loading of a number of other standard libs.
848
- * We can reconsider adding it again if we decide these other libs should be core.
849
- * Or if we find a more suitable way to define the method.
850
-
851
- * 17 Minor Enhancements
852
-
853
- * Moved style.rb to string/stylize.rb (#998)
854
- * Renamed string/subtract to string/op_sub.
855
- Old name will remain for time being for compatability. (#1002)
856
- * Module#instance_method_define? now only applies to public methods. (#1003)
857
- * Array#index accepts a block (one of the few core overrides). (#1004)
858
- * Moved Hash#<< from hash/update.rb to hash/op_push.rb (#1005)
859
- * Add facets class files (eg. facets/string) have been made dynamic. (#1013)
860
- * Moved variablize methods out of metaid.rb and into separate files (string/ and symbol/). (#1042)
861
- * Added Time#advance. (#1046)
862
- * Added qua_class.rb. Yea. It really is my favorite.
863
- * Added simple functional test that loads all of Facets.
864
- * Added a benchmark for measuring how fast Facets loads. (Core < 1sec!)
865
- * Made Module#alias_method_chain a public method (for better Rails support).
866
- * Wrapped Nilclass#to_f in 1.9 condition.
867
- * float/round.rb redirects to numeric/round.rb.
868
- * numeric/float.rb holds rounding methods for all classed Numeric, Integer and Float.
869
- * Replaced Kernel#instance_exec with Mauricio's version.
870
- * Improved String#each_char to work like Ruby 1.9.
871
- * This loads strscan.rb.
872
- * It is wrapped in a 1.9 condition.
873
-
874
- * 8 Bug Fixes
875
-
876
- * Hash#<< now returns self (#1001)
877
- * OpenStruct#to_h dups internal table. (#1015)
878
- * Fixed require of string/xor in bicrypt.rb. (#1039)
879
- * Fixed facets.rb to use relative paths.
880
- * Fixed cgi.rb (CGI is a class not a module).
881
- * OpenStruct#to_h dups internal table. [bug]
882
- * Fixed require of string/xor in bicrypt.rb. [bug]
883
- * date.rb (stamp) fixed ref to constant FORMAT.
884
-
885
-
886
- == 2.4.3 / 2008-08-14
887
-
888
- Facets is almost fully interoperable with ActiveSupport and Ruby 1.9.
889
- We will continue to improve this interoperability in upcoming releases.
890
-
891
- As a REMINDER, Facets 2.4+ now encourages:
892
-
893
- require 'facets'
894
-
895
- This is better than cherry-picking methods. It may seem counter-intuitive,
896
- but it actually proves more advantages to do this for the sake of
897
- improved interoperability. The practice of cherry-picking can become
898
- problematic if other dependent libraries have cherry-picked different
899
- methods. In those cases these distinctions go unaccounted and untested.
900
-
901
- Note that this release does not include a setup.rb script. We are working
902
- on a new version of this script, which we plan to include in the next release.
903
-
904
- This release give special thanks to the following people for their contributions:
905
- Ken Bloom, Nick Caruso, Evgeniy Dolzhenko, Andy Freeman, Tomasz Muras and Dave Myron.
906
- And of course, to anyone else I failed to mention that has contributed.
907
-
908
- (NOTE: 2.4.3's changes may actually be long to 2.4.2. Notice the releases are
909
- only two days apart. There was an issue with 2.4.2 and it had to be replaced
910
- immediately. So take the distinct with a grain of salt.)
911
-
912
- Changes:
913
-
914
- * Additions
915
-
916
- * Add Time#trunc and Time#round to Core.
917
- * Add Array#recursively and fixed bug in Hash#recursively.
918
- * Add Kernel#instance method which provides a fluent interface to private object space.
919
- * Add Symbol#plain?, Symbol#query? and Symbol#setter?
920
- * Add Hash#symbolize_keys and #stringify_keys.
921
- * Add File#split_root.
922
- * Add #glob and #glob_first as extensions to Pathname.
923
- * Add NilClass#ergo whic points back to kernel/ergo.
924
- * Add #bump method to VersionNumber class.
925
- * Add String#mask providing powerful string manipulation.
926
- * Add Ken Bloom's DictionaryMatcher class (will be renamed in future version)
927
-
928
- * Deprecations
929
-
930
- * Deprecate Hash#keys_to_s and Hash#keys_to_sym.
931
- * These are the original versions of these methods.
932
- * But now we can use #rekey(:to_s) and #rekey(:to_sym) instead.
933
- * Deprecat ruby.rb, which was a sort 1.9 compatibility layer.
934
-
935
- * 22 Major Enhancements
936
-
937
- * Changed File#rewrite to not use the in-place change of the string.
938
- * Renamed Class#to_pathname and #to_methodname to #pathize and #methodize.
939
- * Removed Console:: namespace for ANSICode.
940
- * Moved Mentalguy's lazy.rb to core!
941
- * Added Indexable and Stackable to core.
942
- * BasicObject is now just a synonm for BlankSlate unless Ruby 1.9. [major]
943
- * Moved Indexable and Stackable to core.
944
- * Renamed arguments.rb and CLI::Arguments to argvector.rb and Argvector.
945
- * Added optional argument to Dictionary#first and #last.
946
- * Moved binding/opvars from core to more.
947
-
948
- * 19 Minor Enhancements
949
-
950
- * Improved File#rootname --it is now more robust.
951
- * Made FileUtils#whereis a module_function again.
952
- * Created Lore library to house extensions to Ruby's standard library.
953
- * Re-added facets class files (eg. facets/string) and are now dynamic.
954
- * Added block to Array#index.
955
- * This is one of the few core overrides in Facets.
956
- * It is a feature already in Ruby 1.9.
957
- * Added Jim Weirich's BlankSlate class.
958
- * This is a temporary measure be compatible w/ AcitveSupport's BasicObject.
959
- * Split kernel/load.rb into require_all.rb and require_local.rb.
960
- * Split module/alias.rb up into alias_accessor, alias_module_function and alias_method_chain.
961
- * Renamed string/subtract to string/op_sub.
962
- Old name will remain for time being for compatability. [minor]
963
- * Moved style.rb to string/stylize.rb [minor]
964
- * Added warning to bytes to use RichUnits instead.
965
- * Updated warn line fore eventual deprecation of fileshell and arguments.*
966
- * Added facets-load.rb to allow old school cherry picking.*
967
- * Between 2.0 and 2.4 require 'facets' simply added core to LOAD_PATH.
968
- * Starting with 2.4 it loads all of core automatically instead.
969
- * facets-load.rb provides a way to use the old behavior.
970
- require 'facets-load.rb
971
- require 'kernel/with'
972
- require 'symbol/to_proc'
973
- * This adds the path to the end of LOAD_PATH to prevent any load conflicts.
974
-
975
- * 5 Bug Fixes
976
-
977
- * Fixed Time#hence changed years when changing months.
978
- * Fixed Time#hence to flip year correctly when adding months.
979
- * Hash#<< returns self
980
- * Fixed String#pathize.
981
- * Module#instance_method_defined? now only applies to public methods.
982
-
983
- * Administrative Enhancements
984
-
985
- * While not perceptible to an end user, there are now 3 divisions: lib/core, lib/lore, lib/more.
986
- * Modified script/test to display $LOAD_PATH before running tests.
987
-
988
- == 2.4.2 / 2008-08-12
989
-
990
- Just some more of those great old work your ass off changes.
991
-
992
- Changes:
993
-
994
- * Major Enhancements
995
-
996
- * Added Ken Bloom's DictionaryMatcher class from Ruby Quiz #103.
997
- (Note this class will probably be renamed in the future.)
998
- * Changed File#rewrite to not use the inplace change of the string.
999
- * If you were using the function, change your code to use File#rewrite! instead.
1000
- * Or, modify your code ot use the new behavior.
1001
- * This change can make for a slippery bug, so be sure to check for it!
1002
- * Moved live.rb to facets-live.rb.
1003
- * Added kernel/instance method which provides a fluent interface to private object space.
1004
-
1005
- * 5 Minor Enhancements
1006
-
1007
- * Added sow generation forms.
1008
- * Spilt Time#trunc into separate file.
1009
- * Remove old log files --shouldn't version control these.
1010
- * Added note to FileList to add glob options parameter.
1011
- * Added optional argument to Dictionary#first and #last.
1012
-
1013
- * Other Enhancements
1014
-
1015
- * Move "lore" tests to test/lore (lore are extensions to Ruby's standard lib).
1016
- * Added test/core, test/lore and test/more.
1017
- * Added time/test_round.rb
1018
- * Added array/recursively.
1019
- * Added time/round.
1020
- * Time#to_date makes the public (it already existed in Ruby!)
1021
- * Fixed Time#hence to flip year correctly when adding months.
1022
- * Work on documentation using new Sow system.
1023
- * Moved meta.rb to more/kernel/meta.rb and merged facets/core.rb into facets.rb.
1024
- * Added more/kernel directory --hey not every extension can be core.
1025
- * Adjusted loadpath and moved lazy.rb to core!
1026
- * Moved remaing files to subdirectory locations.
1027
- * Moved most core libs to core/.
1028
- * Move most more files to the more directory.
1029
- * Added lore and more directories.
1030
- * Added facets/core directory. Yes, I'm spiliting the lib again.
1031
- * Loadpath will be used, so user inteface will stay the same.
1032
- * Setup.rb will be adjusted to recognaize loadpath.
1033
- * Removed Rope class. If anything this will have a separate project.
1034
- * Moved setup.rb to script/setup.
1035
- * This will either be replaced with configure/install scripts.
1036
- * Or, depend on a separate ruby setup.rb project.
1037
- * Added recorder.rb to consider in work directory.
1038
- * Added admin directory.
1039
- * Added "TO BE DEPRECATED" message to ruby.rb.
1040
- * Added all methods from ruby.rb as individual core methods.
1041
- * These are the methods that overlap with 1.9.
1042
- * They are encased in 'unless RUBY_VERSION' caluses.
1043
- * Imporved file/rootname --now much more robust.
1044
- * Added Kernel#to_yamlfrag to yaml.rb as way to output yaml w/o the "---" header.
1045
- * Perhaps not the most robust solution, but okay for now.
1046
- * Maybe a poor name for the method, but you got a better one?
1047
- * Made FileUtils#whereis a module_function again like it used to be. Because:
1048
- (1) that seems to be the way most other FileUtils methods are (cd, mkdir, cp, ...) and the most
1049
- obvious way that users would WANT to use FileUtils: FileUtils.whereis("ruby").
1050
- (2) I see module_function used in other comparible parts of Facets: UploadUtils, ConsoleUtils,
1051
- ZipUtils, FileUtils#safe_ln, ...
1052
- (3) My code that relied on the old module_function behavior was breaking
1053
- What were you thinking changing it?? ;)
1054
-
1055
-
1056
- == 2.4.1 / 2008-04-03
1057
-
1058
- This release takes aim at improving compatability with ActiveSupport.
1059
- It also reintroduces an improved paramix.rb.
1060
-
1061
- Changes:
1062
-
1063
- * 4 Major Enhancements
1064
-
1065
- * A much improved paramix.rb has been returned to the library.
1066
- * There a no longer capitialize module methods at all.
1067
- * Use Module#[] and mixin_params[] instead.
1068
- * Deprecated behavior.rb. It was not robust.
1069
- * Added basex.rb, for working in any encoding base using any character set (base62 is the default).
1070
-
1071
- * 3 Minor Enhancements
1072
-
1073
- * Comparing to ActiveSupport, found 63 extension clashes, but most are due to 1.9 features.
1074
- The rest should be compatible.
1075
- * Reatomized a number of Kernel and String methods. Reatomization is nearly complete.
1076
- * Continued work on reatomizing core extensions (nearly complete now).
1077
-
1078
-
1079
- == 2.4.0 / 2008-03-24
1080
-
1081
- Facets 2.4 is a major step forward for Facets. It is perhaps the release
1082
- that 2.0 should have been, but of course it took the actual 2.0 release
1083
- to make 2.4 possible. Some annoyances you may have encountered in updating
1084
- your code to 2.0 are now fixed. And from 2.4 on, Facets will now be
1085
- settling down into simple refinement release cycles for a while.
1086
-
1087
- The main change under the hood is to bring everything up to the top
1088
- lib/facets/ directory. No longer are the libraries sorted by category.
1089
- I had done so for a long time to make it easier to track the various libs,
1090
- but in the end it was only making it more diffcult to deal with build tools
1091
- and packaging.
1092
-
1093
- For the end-user, the largest change is a new emphisis on:
1094
-
1095
- require 'facets'
1096
-
1097
- This is better than cherry-picking methods. It may seem counter-
1098
- intuitive, but it actually proves more advantantages to do this
1099
- for the sake of interoperability than the practice of cherry-picking.
1100
- The reason is simply because others may have cherry-picked different
1101
- methods, and those distinctions go unaccounted and untested.
1102
-
1103
- Also with this release, to bolster the use of require 'facets',
1104
- some lack-luster extensions have been deprecated and namespace usage
1105
- has been improved. In addition, we are getting very close to full
1106
- ActiveSupport, and Ruby 1.9, interoperability. Expect this
1107
- to be complete in the next minor release or two.
1108
-
1109
- Changes:
1110
-
1111
- * Enhancements
1112
-
1113
- * String#to_re and String#to_rx have swapped default behaviors. #to_rx escapes, #to_re does not.
1114
- * The Console namespace is being deprecated. command.rb and arguments.rb now use CLI naemspace.
1115
- * #compare_on and #equate_on are now "mixin methods" Comparable() and Equateable().
1116
- * Enumerable#product, #combintations and #permutations have change to be Ruby 1.9 compatible.
1117
- * thread.rb, map_send, et al, block is passed to send instead of yielding on result.
1118
- * namespace.rb has been renamed to methodspace.rb.
1119
- * Ruby 1.9 defined a new Proc#curry method, so Facets version has been made compatible.
1120
- * The old curry method is now called #partial, as in "partial application".
1121
- * Deprecated interface.rb. Perhaps a better approach but nonetheless extraneous.
1122
- * Deprecated paramix.rb. A better way is to use a capitialized methods. (Perhaps a lib for that?)
1123
- * Brought back a few web related libs, htmlfilter.rb and cssfilter.rb in particular.
1124
- * camelcase and snakecase are core extensions. For specialized styles use String#style in style.rb.
1125
- * Renamed ArgVector to CLI::Arguments
1126
- * Moved one_nine.rb to ruby.rb
1127
- * Moved test/test_one_nine.rb to test/test_ruby.rb.
1128
- * Updated requires for "one_nine" to just "ruby" b/c of backports to 1.8.7.
1129
- * Added warning to Rick Kilmers's unit system.
1130
- * Moving Rich Kilmers's units system to it's own package.
1131
- * Three are alternate unit systems available and Facets should work with any of them.
1132
- * Will keep a fair amount of the Time extensions though.
1133
- * Moved nil/status.rb to nilstatus.rb
1134
- * Got rid of Method#curry and Method#partial since they just convert to Procs.
1135
- * Made op_esc.rb a separate module rather thanan extension.
1136
- * Deprecated with_reader, with_writer and with_accessor for attr_singleton_reader, &c.
1137
- * Deprecated Hash#pairs_at. Use Hash#slice instead from core.
1138
- * Fixed the namespaces of some extensions.
1139
- * Added prime directory and files.
1140
- * Removed all "prime" extension files.
1141
- * Move mattr to module.
1142
- * Fixed require bug in time methods.
1143
- * Reverted memomize.rb back to original code --will come back to later.
1144
- * Added stylizer.rb to replace stylize.rb
1145
- * Array #recursively is not only called #traverse.
1146
- * Added case/stylize methods to more/facets/string.
1147
- * Renamed more/string/facets/titlecase to captialize_all.
1148
- * Added uri and xoxo tests.
1149
- * Progressive work on memoize and elementor.
1150
- * Functor no longer privatizes =, == and =~.
1151
- * Properly split conversion.rb.
1152
- * Some string methods extracted from stylize.rb.
1153
- * Moved random.rb to more/.
1154
- * Renamed namespace.eb to methodspace.rb.
1155
- * Moved autoreload to more/facets/kernel.
1156
- * Removed old curry.rb.
1157
- * Added cgi.rb with some standard extensions.
1158
- * Deprecated paramix.rb.
1159
- * Added xmlhash.rb and returned uri.rb extensions to the library.
1160
- * Added #method_name to Date class.
1161
- * Remove cut-bases AOP, now in it's own library.
1162
- * Converted compare_on.rb to Paramtric Mixins.
1163
- * Split fileutils up into individual methods.
1164
- * Renamed console.rb to what it should be consoleutils.rb.
1165
- * Update to command.rb integrating MasterCommand and Command into a single class.
1166
- * Added options back into multiglob_r.
1167
- * Improved cloneable.rb to be a true deep dup/clone mixin using Ken Bloom's suggestion.
1168
- * Added tasksystem.rb.
1169
- * Added enumerable/combinations.
1170
- * Added openhash and tracepoint.
1171
-
1172
- * Bug Fixes
1173
-
1174
- * Fixed bug with #peek in stackable.
1175
- * Fixed bug in Kernel#object_hexid.
1176
- * Fixed bug in multiglob_r so it will NOT follow symlinks.
1177
- * Fixed test_keyize.rb.
1178
-
1179
- * Adminstrative Changes
1180
-
1181
- * This was a fairly large and fast-paced update, so unfortunately not all changes are listed this time.
1182
- * Added ri generation to setup.rb.
1183
- * Updated README and allowed doc/ to be included in package.
1184
- * Finally completed removal of all embedded tests.
1185
- * Organized all libs between core, more, class and mixin.
1186
-
1187
-
1188
- == 2.3.0 / 2008-02-01
1189
-
1190
- Amoung other changes with this release, cloneable.rb is now a true deep
1191
- dup/clone mixin; tracepoint.rb returns to the library.
1192
-
1193
- Changes:
1194
-
1195
- * 4 Major Enhancements
1196
-
1197
- * Cloneable provides true deep cloning.
1198
- * Moved hash_keyize.rb to CORE as hash/keyize.rb.
1199
- * Added tracepoint.rb back to the library.
1200
- * Added hash/collate.
1201
-
1202
- * 3 Bug Fixes
1203
-
1204
- * Fixed multiglob_r bug, so it will NOT follow symlinks.
1205
- * Added a couple of missing binding requires.
1206
- * Fixed test_keyize.rb.
1207
-
1208
- * 6 Admistrative Changes
1209
-
1210
- * Reorganized library into smaller groups: core, more, class and mixin.
1211
- * Remove admin/svn subdir.
1212
- * Remove admin/log.
1213
- * Add admin tasks.
1214
- * Moved admin tasks to admin directory.
1215
- * Added admin directory.
1216
-
1217
-
1218
-
1219
- == 2.2.1 / 2007-12-22
1220
-
1221
- This release get rid of the underlying methods subdir.
1222
- All method redirects are now in core, to ensure there
1223
- are no more name clashes.
1224
-
1225
- Changes:
1226
-
1227
- * Method Renames
1228
-
1229
- * Moved string/format.rb to string/wrap.rb.
1230
- * Updated String#brief.
1231
- * Moved binding/cflow.rb to caller.rb.
1232
- * Moved core hash/keyize to more.
1233
-
1234
- * Other Enhancements
1235
-
1236
- * Fixed up binding extensions.
1237
-
1238
- * Administrative Adjustments
1239
-
1240
- * Got rid of methods subdir. All method redirects are in core/.
1241
- * Moved doc/wiki to apiwiki b/c of Rubyforge's wiki.
1242
- * Removed doc/api dir.
1243
- * Added wiki.
1244
- * Renamed a couple test tasks.
1245
- * Update per-module/class files.
1246
- * Moved methods and groups task to trash.
1247
- * Added test class/remove_descendents.rb.
1248
- * Added all remaining per-method require libs from methods/ (will need to wrok through these over time).
1249
- * Added trash work directory.
1250
- * Adjust text according to per-method file changes.
1251
- * All hash method, but the conversion methods, are now represented in core/facets/hash.
1252
- * Added a few more Hash per-method files.
1253
- * Add per-method libs for hash.
1254
- * Updated facets/string.rb.
1255
- * Renamed ROLLRC to facets.roll.
1256
-
1257
-
1258
- == 2.2.0 / 2007-12-13
1259
-
1260
- This release provides improved rdocs and prepares facets for use with Ruby 1.9.
1261
- It also adds Matthew Harris' duration.rb library. Bug thanks to Matthew!
1262
-
1263
- Changes:
1264
-
1265
- * Additions
1266
-
1267
- * Added Matthew Harris' Duration class.
1268
- * Added Hash#slice and Hash#except (didn't we have this before?)
1269
- * Added registerable.rb, updated history.
1270
- * Added #include_as to facets/namespace.rb.
1271
- * Added op.rb to string.rb.
1272
- * Added String/op.rb with String#- method.
1273
-
1274
- * Method Renames and Reorganizations
1275
-
1276
- * The name Array#unzip didn't makes sense, it was renamed to #modulate (though #collate seems better?)
1277
- * Renamed Enumerable#collate to #mash (Map hASH); #collate and #graph remain aliases for the time being.
1278
- * Renamed accessor #attributes to #instance_attributes.
1279
- * Renamed Enumerable #collate to #mash. (old name, along with graph, will be an alias for time being)
1280
- * Divided enumerable/collect into split.rb and each.rb as well.
1281
- * Moved mapsend.rb to thread.rb.
1282
- * Updated mapsend.rb to focus on threads.
1283
- * Moved continuation extensions to more lib.
1284
-
1285
- * Deprecations
1286
-
1287
- * Deprecated Module#include_and_extend. Just use both silly.
1288
- * More lib pp_s.rb has been removed. Use #pretty_inspect instead.
1289
- * Removed continuation from core.
1290
- * Removed pp_s.rb (use pretty_inspect) add continuation.rb.
1291
- * Remove kernel/require_esc.rb.
1292
-
1293
- * Other Enhancements
1294
-
1295
- * integer/bitmask.rb has changed a bit --pun intended ;) Deprecated some methods and now use "~" instead of "-" to clear bits.
1296
- * Split binding extensions up a bit more finely --eval.rb sprouted here.rb, self.rb and defined.rb.
1297
- * Move Time#stamp out of conversion.rb and into time/ dir, and remove to_s alias.
1298
- * Preliminary addition of Matthew Harris' excellent duration.rb lib (will integrate with times.rb better in future).
1299
- * Minor edit to basicobject.rb in light of 1.9.
1300
- * Minor adjustments to lazy.rb to fix warnings by Ruby 1.9.
1301
- * Added if clauses to handle upcoming Ruby 1.9 gracefully. Facets should now be just about ready for use with 1.9.
1302
-
1303
- * Documentation Enhancements
1304
-
1305
- * A lot of rdoc updates to core extensions --as promised ;)
1306
- * Just about every method now has at least a brief explinaiton and an example.
1307
-
1308
- * Administrative Adjustments
1309
-
1310
- * Moved task/config.yaml to meta/ per new Ratch.
1311
- * Moved task/special to task/doc.
1312
- * Updated todo list (in dev/).
1313
- * Copied log/history.rd to CHANGES.
1314
- * Removed log/history.rd and log/todo.rd
1315
- * Fixed stylize.rb for use with 1.9 (fixed case statement).
1316
- * Separated kernel/returning, now that #tap will be in 1.9.
1317
- * Updated facets.rb for use with 1.9.
1318
- * Separated time/stamp.rb.
1319
- * Divided binding up into a few more pieces.
1320
- * Fixed kernel/instance to play nice with 1.9.
1321
- * Added test for string/op.rb.
1322
- * Added test_collect.rb split-offs and test_mash inplace of test_collate.
1323
- * Cleanup test headers.
1324
- * Added 1.9 check in continuation/create.rb.
1325
- * Add a couple new task for rdoc gen.
1326
- * Added nbsp to quickopts task.
1327
- * Work on website using siteparts.
1328
-
1329
-
1330
- == 2.1.3 / 2007-11-28
1331
-
1332
- This release fixes four bugs --one being fairly serious, as it prevented
1333
- require 'facets' from working at all.
1334
-
1335
- Changes:
1336
-
1337
- * 4 Bug Fixes
1338
-
1339
- * Fixed oddity in Enumerable/collate.
1340
- * Fixed issue that prevented loading of facets.rb.
1341
- * Array#to_h used flatten, but it needed to be flatten(1).
1342
- * Move core/main.rb back to core/facets.rb as it conflicts with lib in more/.
1343
-
1344
-
1345
- == 2.1.2 / 2007-11-22
1346
-
1347
- Changes:
1348
-
1349
- * Additions
1350
-
1351
- * Added Exception#details.
1352
-
1353
- * General Enhancements
1354
-
1355
- * Dir::multiglob no longer handels -/+ modifiers. Use FileList instead.
1356
-
1357
- * Administrative Adjustments
1358
-
1359
- * Fixed task/install script.
1360
- * Improved task/changes.
1361
-
1362
-
1363
- == 2.1.1 / 2007-11-16
1364
-
1365
- Changes:
1366
-
1367
- * Additions
1368
-
1369
- * Added kernel/ergo.rb.
1370
- * Added pp_s.rb (Questionable addition, but we'll leave it for now.)
1371
- * Added validation.rb. This is here for Nitro's sake --better techinques may replace it in the future.
1372
- * Added Console::Logger to logger.rb (may be separated in future).
1373
- * Added option arity to command.rb.
1374
-
1375
- * Deprecations
1376
-
1377
- * Removed tracepoint.rb.
1378
-
1379
- * Bug Fixes
1380
-
1381
- * Fixed bug in command.rb that clobbered options.
1382
- * Fixed options bug in command.rb.
1383
-
1384
-
1385
- == 2.1.0 / 2007-11-10
1386
-
1387
- Major changes include a new and much-improved command.rb, a new BiCrypt
1388
- class for simple two-way crypotgraphy, as well as attr_reader!,
1389
- attr_writer! and attr_accessor! for flag attributes, plus
1390
- alias_xxx methods for all attr_xxx methods.
1391
-
1392
-
1393
- Changes:
1394
-
1395
- * Additions
1396
-
1397
- * Added BiCrypt class for simple two-way encryption.
1398
- * module/attr.rb now has attr_reader!, attr_writer! and attr_accessor!
1399
- * All attr_xxx methods have coresponding alias_xxx methods.
1400
- * Added UniversalOptions module.
1401
- * Added "tester" attribues attr_xxx!. Also added alias_xxx for all attr_xxx methods.
1402
-
1403
- * Enhancements
1404
-
1405
- * command.rb has been completely rewritten. The API has changed completely!
1406
- * There is no longer a Commmand::Optoins class. Use Console::Arguments instead.
1407
- * Moved common alias methods from attr.rb to alias.rb.
1408
- * MasterCommand now passes (args, opts), until 1.9 is main stream.
1409
- * Cleaned up enumerable/permutation.rb
1410
- * Added -q option to zip method in ZipUtils.
1411
- * Ok. #p is back. This will in fact be in 1.9, so we're good.
1412
-
1413
- * Bug Fixes
1414
-
1415
- * Fixed bug in Enumerable#cluster_by which returned nil instead of [].
1416
- * Fixed minor bug in arguments.rb that prevented proper repeat parameters.
1417
- * Fixed bug in to_console.
1418
- * Fixed bug in enumerable/cluster_by (returned nil instead of []).
1419
- * Fixed bug in Hash#- Thanks to Xavier Shay.
1420
- * Fixed to_h in Command::Options
1421
-
1422
- * Admin Changes
1423
-
1424
- * Added dev/test
1425
- * Renamed RELEASE to WHATSNEW
1426
- * Added injecting test and cleaned up.
1427
- * Added comment for potential future #is.
1428
- * Added top-level log directory.
1429
- * Remove #q reference from RELEASE.
1430
- * Cleanup of test_initializer.rb.
1431
-
1432
-
1433
- == 2.0.5 / 2007-11-07
1434
-
1435
- Minor release that fixes a couple of bugs and adds the last of
1436
- adopted methods from Gavin Sinclair's Extensions project.
1437
-
1438
- Also, renamed #p to #q, because of multiple args problem.
1439
- I don't know how Ruby 1.9 plans to handle multiple args.
1440
- Will deprecate for 1.9 anyway so doesn't matter much.
1441
-
1442
- Changes:
1443
-
1444
- * Additions
1445
-
1446
- * Added final methods Gavin Sinclair's Extensions project. (Noah Gibbs)
1447
-
1448
- * General Improvements
1449
-
1450
- * Made #alias_method_chain compatible with current ActiveSupport version.
1451
- * Rename #p to #q, because of multiple args problem.
1452
- * Allow Class#initializer to return the attribute names.
1453
-
1454
- * Bug Fixes
1455
-
1456
- * Fixe return bug in hash/op.rb.
1457
- * Fixe bug with Dictionary#initialize.
1458
- * Fixe bug with Hash#-. (Xavier Shay)
1459
-
1460
- * Admin Adjustments
1461
-
1462
- * Fixed package name in icli.yaml.
1463
- * Added name field to meta/icli.yaml.
1464
- * Added meta/icli.yaml.
1465
- * Added a RELEASE file to hold current release notes.
1466
- * Added log task.
1467
- * Added changelog file in doc/log/.
1468
-
1469
-
1470
- == 2.0.4 / 2007-11-04
1471
-
1472
- Changes:
1473
-
1474
- * Unsorted Changes
1475
-
1476
- * Up'd version to 2.0.4.
1477
- * Update task/groups.
1478
- * Removed extest task. We will no longer need it.
1479
- * Minor update to rdoc.yaml.
1480
- * Renamed old changelogs.
1481
-
1482
-
1483
- == 2.0.3 / 2007-11-02
1484
-
1485
- Changes:
1486
-
1487
- * Unsorted Changes
1488
-
1489
- * Touch up to methods task.
1490
- * Update rsync filter
1491
- * Minor updates fixing issues highlighted by running crosstest.
1492
- * Many minor bug fixes after running against crosstest.
1493
- * Added usage support for __foo options.
1494
- * Fixed a many a test after running against crosstest.
1495
- * Removed load task. It did not isolate the libs, so wasn't effective.
1496
- * Added a number of new tasks.
1497
- * Rename SMTP_TLS to Smtp_tls for Rdocs.
1498
- * Moved rdoc.yaml to config/.
1499
- * moved task/config to task/config/general.
1500
- * Update tasks.
1501
-
1502
-
1503
- 2007-11-01 transami
1504
-
1505
- Changes:
1506
-
1507
- * Unsorted Changes
1508
-
1509
- * Added array/only, symbol/to_proc (where did it go?) and hash/select.
1510
-
1511
- * Update roll file.
1512
- * Moved test_command_options to test_command.
1513
- * Update dictionary test to check dup and autohash.
1514
- * Fixed autohash and dup bugs.
1515
- * Verbatim support for Rails' version of #alias_method_chain.
1516
- * Remove site/ directory.
1517
- * Moved rsync filter up too.
1518
- * Moved doc/site/ up to doc/.
1519
- * Added javascript directory to doc/.
1520
-
1521
- * Updates across the board.
1522
- * Updates to stylize and command.rb.
1523
- * Made facets.rb a shortcut to facets/facets.rb (this is for Rolls, better way?)
1524
- * Oh smack. Lots of stuff fixed.
1525
-
1526
- * Remove version.txt. No longer needed.
1527
- * Removed meta/project.yaml, replaced by facets roll file.
1528
-
1529
- * Modifications to command.rb, snapshot and rbsystem.
1530
- * Merged command.rb and command_options.rb into command.rb.
1531
- * Added to_data aliases to snapshot.rb
1532
- * Minor additions to rbsystem. Rather than System, maybe Ruby?
1533
-
1534
- * Removed embedded test from overload.rb.
1535
- * Allow OpenStruct#initialize to take a setter block.
1536
- * Downloader needs 'wb' flag rather then just 'w'.
1537
- * Fixed typo and removed embedded test.
1538
- * Fixed bug in command_options.rb, putting the class back in the Console namespace.
1539
-
1540
- * improved module/traits.rb
1541
-
1542
-
1543
- == 2.0.2 / 2007-10-08
1544
-
1545
- Changes:
1546
-
1547
- * Administrative Changes
1548
-
1549
- * Cleaned up some test and updated version to 2.0.2
1550
- * Update methods to eleminate duplicate file names between lib/core and lib/methods
1551
-
1552
-
1553
- == 2.0.1 / 2007-10-06
1554
-
1555
- Changes:
1556
-
1557
- * Unsorted Changes
1558
-
1559
- * updated version to 2.0.1
1560
- * minor bugs fixes
1561
- * update methods task to display each file as it process it
1562
- * added benchmarks for some enumerable methods.
1563
- * moved demo/bench/bench_factorial to an demo/bench/integer subclass
1564
- * added Erik Veenstra to AUTHORS for work on enumerable/group_by and cluster_by
1565
- * minor improvement to test task to specifically read test_*.rb files
1566
- * removed enumerable/partition.rb
1567
- * move enumerable/partition.rb methods to collect.rb.
1568
- * Improved Integer#of.
1569
- * Minor improvements to collect.rb and partition.rb
1570
- * Deprecated nonuniq!, bug fixed cluster_by and aliased group_by and partition_by.
1571
- * Renamed Enumerable#partition_by to group_by (like Ruby 1.9) and fixed bug in cluster_by.
1572
-
1573
-
1574
- == 2.0.0 / 2007-10-02
1575
-
1576
- Changes:
1577
-
1578
- * General Enhancements
1579
-
1580
- * Added Oliver Renaud to the AUTHORS list (oops!)
1581
-
1582
- * Bug Fixes
1583
-
1584
- * Fix requires in `cut.rb` and `attributes.rb`.
1585
- * Fix `String#brief` in `format.rb`.
1586
-
1587
- * Unsorted Changes
1588
-
1589
- * removed 1stClassMethod from "more" docs
1590
- * removed 1stClassMethod as a rdoc target (now in Core target)
1591
- * update install and rdoc tasks
1592
- * moved string/test_index.rb to string/test_nchar.rb
1593
- * updated indexable tests
1594
- * update string.rb to include string/nchar.rb
1595
- * moved index.rb to nchar.rb
1596
- * clean up string/index.rb
1597
- * moved facets.rb to fore directory
1598
- * add comment to groups task
1599
- * added groups task
1600
- * updated all extrension group files (array.rb, binding.rb, etc.)
1601
- * uncapitalize meta files
1602
- * update methods task a bit more, plus related configuration
1603
- * updated methods task
1604
- * removed lib/core --this is generated content (may be renamed too)
1605
- * added load and stats tasks
1606
- * update install task --this replaces setup b/c of Facets' special install needs
1607
- * update project file
1608
- * removed lib/facets
1609
- * moved remaining libs to fore (will later consider an additional subdivision)
1610
- * move facets/fore to fore/facets
1611
- * move facets/more to more/facets
1612
- * added ;ob/core, more and fore
1613
- * move memorize
1614
- * removed io and net directories
1615
- * moved io/redirect.rb to more/ioredirect.rb and net/smtp_tls.rb and net/uploadutils.rb libs to more too.
1616
- * few more libs moved to more/ directory
1617
- * moved all the most obvious more libs to the more directory
1618
- * moved fore "grouping" libs to fore directory
1619
- * moved "fore" libs to fore directory
1620
- * create for and more directories (yes, you know what's coming ;)
1621
- * renamed remain.rb (was main_as_module.rb) to just main.rb
1622
- * improved rdoc task and project.yaml file
1623
- * better docs for OpenObject
1624
- * improved method hiding
1625
- * documentation touch ups
1626
- * fixes for conversion.rb rather than conversions.rb
1627
- * updated to website docs
1628
- * moved demos to demo/sample
1629
- * added bench and sample dir to demo
1630
- * moved spy.html to light.html
1631
- * menum change to webpage, fixed core doc link
1632
- * moved metadata files to meta/ (info/ or box/ would be better?)
1633
- * updated test_conversion.rb for to_h/to_hash
1634
- * reverse_each instead of each for after advice in advice.rb
1635
- * final fix to to_h/to_hash discrepency
1636
- * added a Path and Root features to Pathname (good idea?)
1637
- * update advice.rb test and moved old cut test to dev/scrap
1638
- * updated advice; removed preinitialize.rb to trinkets project (it was too expiremental)
1639
- * command_filter.rb needs to considered/developed; moved to dev/new/
1640
- * fixed interface.rb fo singelton methods
1641
- * updates to tests
1642
- * whole lot of small bug fixes
1643
- * add tests to revision control
1644
- * removed old cut test (moved to dev/scrap)
1645
- * working on tests
1646
- * added read.rb (taken from readwrite.rb)
1647
- * split readwrite.rb into read.rb and write.rb
1648
- * remove string/unpack.rb, offset can be had using '@' format instead
1649
- * renamed conversions.rb to conversion.rb, fixed some requires
1650
- * improved attr.rb
1651
- * some cleanup of enumerable extensions
1652
- * setup annotations demo
1653
- * add non-embedded tests
1654
- * finally brough over toadcode prototype.rb and cleaned it up enough to be useful
1655
- * removed annotations subdir
1656
- * moved annotations/ann.rb and attr.rb to annotations.rb and attributes.rb
1657
- * remove annotations.rb
1658
- * moved annotations/settings.rb up a dir
1659
- * remove settings.rb
1660
- * chnaged multiton_id(e) to multiton_id(*e,&b)
1661
- * updated test task
1662
- * added Christoph Rippel to authors lists
1663
- * added doc header to new multiton class
1664
- * update to new version of multiton
1665
- * playing around with multiton2.rb
1666
- * renamed dev/try to dev/new
1667
- * created dev/old to temporarily house old versions of libs that have been replaced.
1668
- * fixed quick.html documentation
1669
- * used old wiki.gif as email.gif instead
1670
- * fixed config.yaml publish entry
1671
- * some minor updates to index.html
1672
- * moved site to doc/site
1673
- * update to publish task
1674
- * updates of tasks
1675
- * added kernel/report.rb to hold debug/warn extensions.
1676
- * renamed reporting.rb to silence.rb
1677
- * update reporting.rb (created report.rb from it)
1678
- * task work
1679
- * clean up dev finis
1680
- * cleanup dev just a bit more
1681
- * continue cleanup of dev directory
1682
- * moved dev/twiki to misc/
1683
- * removed dev/core
1684
- * moved require_directory.rb to misc/
1685
- * added dev/misc for code scraps that might be useful but are not straight lib or task code
1686
- * more dev changes
1687
- * organize dev better
1688
- * cleanup of dev continues
1689
- * cleanup of dev dir
1690
- * clean up dev dir more
1691
- * some cleanup of dev directory
1692
- * almost completed advice lib
1693
- * added comment about possible update
1694
- * deprecate instance_send and instance_map
1695
- * work on rdoc task
1696
- * work on rdoc task
1697
- * added dev/cut dir
1698
- * no reason to track .config
1699
- * clean up trunk
1700
- * added todo comment
1701
- * added advice.rb to replace old aspects.rb
1702
- * removed aspects.rb (sucked), added prototype.rb (infancy) and adjusted to class_extension.rb
1703
- * removed #to_roman (now part of the English project)
1704
- * cont. work on aop and cuts
1705
- * fixed IMG tag bug
1706
- * added yaml.rb
1707
- * move #here convenience method to binding/eval (separate?)
1708
- * added in order to remove kernel/misc.rb
1709
- * consolidate string/regesc
1710
- * added module/methods
1711
- * updates to include and attr
1712
- * fixed Range#umbrella
1713
- * more organization of docs
1714
- * orginizing docs
1715
- * update val.rb
1716
- * added proc/fn.rb (from kernel/misc.rb) and fixed typo in compose.rb
1717
- * moved misc.rb to val.rb
1718
- * better organization of some kernel methods
1719
- * moved #here alias to eval.rb
1720
- * minor updates and some bug fixes (modspace what broke)
1721
- * removed file/yaml.rb in favor or just yaml.rb
1722
- * moved this to facets/yaml.rb
1723
- * work on aop system
1724
- * Added aop.rb, and cut.r and recursive.rb
1725
- * moved cut.rb to dev (old version will be deprecated)
1726
- * added to_hash to Dictionary, and minor mods to others
1727
- * oops, no need for enumerator directory
1728
- * moved threaded_send.rb to mapsend.rb
1729
- * moved threaded_send out of enumerable/ dir
1730
- * updates to elementor.rb
1731
- * merged instance_map into threaded_send
1732
- * removed map_send
1733
- * merging map_send with threaded_send
1734
- * cont work on elementwise methods
1735
- * divide elementwise functions betwee two libs
1736
- * uniq.rb is merged into count.rb
1737
- * removed count.rb (uniq.rb will become count.rb)
1738
- * continued refinement of enumerable extensions
1739
- * general improvements to the organization of enumerable extensions
1740
- * removed facets/cli dir
1741
- * moved all cli libs from facets/cli to facets/
1742
- * moved cli support files to facets locations
1743
- * moved cli lib to facets main (also modified functor)
1744
- * renamed hash/reverse to hash/merge (it contains #reverse_merge)
1745
- * remove instance_intercept (moced to Trinkets project)
1746
- * continued modification of those tasky tools
1747
- * removed lib/more (this is it!)
1748
- * moved M-Z of more/facets to facets (this is it!)
1749
- * moved A-L of more/facets to facets (this is it!)
1750
- * removed lib/core (this is it!)
1751
- * moved lib/core/facets.rb to lib/facets.rb (this is it!)
1752
- * moved lib/core/facets to lib/facets (this is it!)
1753
- * added file/yaml.rb
1754
- * added a list of libraries considered "core"
1755
- * continued work on build tools
1756
- * change tools for core/more convergence (so help us god!)
1757
- * added conversion requirement to some core libs
1758
- * update methods task
1759
- * update quick.html to mirror rdoc changes --still needs work though
1760
- * remove old rdoc task
1761
- * added rdoc section (minimal) to tool/config.yaml
1762
- * nope. remove site/rdoc
1763
- * add rdoc dir, should we?
1764
- * remove site/rdoc in preperation for new way
1765
- * facets.rb belongs to core/
1766
- * renamed some doc files
1767
- * removed src/core
1768
- * move src/core/lin to lib/core
1769
- * added kernel/constant
1770
- * remove src/core/web
1771
- * moving more of core to top-level (svn sucks!)
1772
- * moving core support files to top-level
1773
- * removed src/more
1774
- * move src/more/lib to lib/more
1775
- * made lib dir (to replace src)
1776
- * added settings.rb which points to annotations/settings.rb
1777
- * moved svn to annotations/ subdir
1778
- * moved dev files to top-level as part of more transition
1779
- * temporarily removed dev/more
1780
- * moved annotations demo to demo dir
1781
- * added demo folder
1782
- * add dev/more
1783
- * remove struct again! (stupid svn)
1784
- * moved file to top-level doc as part of more transisiton
1785
- * bullshit svn crap
1786
- * ann moved back to more (strongly considering annotations for it's own project)
1787
- * build moved back to more
1788
- * aop moved back to more
1789
- * cast moved back to more
1790
- * crypt moved back to more
1791
- * exts moved back to more
1792
- * file moved back to more
1793
- * meta moved back to more
1794
- * misc moved back to more
1795
- * model moved back to more
1796
- * struct moved to back to more
1797
- * moved sync back to more
1798
- * moved commandoptions.rb to command_options.rb
1799
- * rewrote command and command options libs
1800
- * initial Subversion import
1801
-
1802
-
1803
- == 1.8.54 / 2007-03-21
1804
-
1805
- The following list of changes also includes changes from intrim releases,
1806
- `1.8.51 / 2007-02-19`, `1.8.49 / 2007-02-16`, `1.8.20 / 2007-02-06` and
1807
- `1.8.8 / 2007-01-31`. Unfortuantely the transition form darcs to git,
1808
- led to some information loss in this regard.
1809
-
1810
- Changes:
1811
-
1812
- * Unsorted Changes:
1813
-
1814
- * added reqiure to ostruct.rb test
1815
- * fix to command.rb's initializer
1816
- * fixed bug with times.rb beginning_of_year and beginning_of_month
1817
- * replaced pqueue and heap with new working class (thanks to Olivier Renaud)
1818
- * fixed bug in ormsupport.rb (this will be moved out of facets in next release)
1819
- * added empty? to dictionary (removed old subclass of Hash)
1820
- * significant improvements to command.rb thanks to Tyler Rick
1821
- * added tests to elementwise and tap
1822
- * fixed test for elementwise and op_tilde_self
1823
- * added enumerable/map_send
1824
- * added thread_map and thread_map_send thanks to greg
1825
- * added operator "~@" for enumerable/elementwise
1826
- * added more/consoleutils.rb
1827
- * added string/cleave
1828
- * added capitalize_all thanks to Richard Laugesen
1829
- * cartesian_product is an alias of enumerable/cart
1830
- * added array pad thanks to Richard Laugesen
1831
- * added kernel/tap
1832
- * fixed test/unit load issues
1833
- * converted facet/ requires to facets/core or facets/more as needed
1834
- * further improvements to arguments.rb (looking good!)
1835
- * improved symbol/self/generate
1836
- * bug fix kernel/autoreload arguments needed to be in opposite order
1837
- * add to_xoxo
1838
- * removed bad character codes in multiplier.rb
1839
- * used yaml to allow json.rb to work for all object in general
1840
- * improvements to functor (note: is to_a and to_proc okay?)
1841
- * add test to string/bytes.rb
1842
- * bug fix to nilclass/op_cmp
1843
- * fixed enumerable/op_pow to use enumerable/cart
1844
- * added array/op_div
1845
- * adjustments to xmlbuilder and htmlbuilder dur to buildingblock changes
1846
- * improved buildingblock.rb
1847
- * simplified interface of arguments.rb (still a little more to do)
1848
- * improvements/simplifications to Dir.multiglob
1849
- * added new authors to list
1850
- * fixed misspelling of behavior.rb (was bahvior.rb)
1851
- * removed #own from base list in facets.rb (really need a standard for "singleton class")
1852
- * minor adjustments to uploadutils
1853
- * fixed bug in aspects.rb that would not handle args of wrapped method
1854
- * Symbol#to_s optimization, had to remove freeze
1855
- * updates to fileutils/stage (stage worth keeping?)
1856
- * update to credits
1857
- * fix bug in kernel/ask, returns more than one character
1858
- * cleanup of enumerbale/graph (no effective change)
1859
- * new super fast enumerable/cart by Thomas Hafner (replaces #cross)
1860
- * improved multiglob rountines (accept '+' and '-' prefixes)
1861
- * No longer will track project file via scm until it settles
1862
- * fixed bug in attr_tester, thanks Dov!
1863
- * added weekdays to times.rb thanks to Ryan Platte and Dave Hoover
1864
- * improvements to dictionary.rb (no longer a subclass of Hash) thanks Jan!
1865
- * re-replace openhash with openobject
1866
- * improvements to ann.rb and ann_attr.rb. works, yea!
1867
- * fixed bug in string/singular.rb
1868
- * changed enumerable/cross into enumerable/cart and cartesian_product
1869
- * openobject returns (openhash was a bad name, thanks george)
1870
- * moved enumerable/cross to enumerable/cart (cartesian_product)
1871
-
1872
-
1873
- == 1.8.0 / 2007-01-24
1874
-
1875
- The list of changes also includes intrim releases `1.7.46 September 8, 2006`,
1876
- `1.7.38 August 31, 2006`, and `1.7.30 August 23, 2006`.
1877
-
1878
- Changes:
1879
-
1880
- * Additions
1881
-
1882
- * Add facets/automatic.rb, very cool, albiet experimental, way to load core methods automatically!
1883
- * added hash/insert; like store but only if key isn't already present
1884
- * added module/include_and_extend
1885
- * added File::mulitglob_sum; accumulates file patterns, and accepts '+' and '-' prefixes
1886
- * added module/module_method; like module_function but makes method public
1887
- * added module/include_function_module; attempts to properly include one function_module into another
1888
- * kernel/yaml convenience method for YAML::load
1889
- * added kernel/supress; supress errors while executing a block (nice DHH!)
1890
- * added symbol/chomp, like string#chomp
1891
- * added proc/to_h; converts an assignment proc into a hash
1892
- * proc/bind; bind a proc to an object, returning a method
1893
- * added module/prepend; provides dyanamic method wraps for modules, and static wraps for classes
1894
- * added module/new; use a module as if it were a class
1895
- * added module/alias_accessor
1896
- * kernel/instance_class; yet anouther meta_class name, but a more sensicle name this one
1897
- * added kernel/populate; populates an object's inst. vars from a hash or assingment block
1898
- * added kernel/daemonize; one last thanks to DHH!
1899
- * added enumerable/injecting; like inject but automatically returns the memo from the block
1900
- * added kernel/object_send, a true public-only send method
1901
- * added kernel/silence_stream; output to null device; thanks DHH!
1902
- * added kernel/instance_values, thanks DHH!
1903
- * added Config:inspect for rbconfig
1904
- * added hash/pairs_at (aking to values_at)
1905
- * added _why's metaid methods (meta_class, meta_eval, etc.)
1906
- * added kernel/enable_warnings to complement silence_warinings
1907
- * added integer/to_roman
1908
- * added logical operators for hash (and/or)
1909
- * array/to_path convert ans array to a path string
1910
- * array/index takes a block
1911
- * added fileutils/compress; very simple convenience methods for archiving folders
1912
- * added fileutils/stage adn staged, a means of transfering files accoring to preset rules
1913
- * added kernel/ask, simply command to get console input
1914
- * added populate.rb, mixin for classes that need on a basic initializer
1915
- * added version_number.rb (a specialized tuple)
1916
- * added uploadutils.rb
1917
- * added Joel VanderWerf's great script.rb script
1918
- * added Austin's minitar.rb --it's just too damn useful!
1919
- * added htmlfilter.rb very nice html escape class
1920
- * added dependency.rb, allwos method to have dependend execution (like rake tasks)
1921
- * added arguments.rb this is for parsing console command arguments
1922
- * add new version of annotations: ann.rb and ann_attr.rb
1923
- * added File::yaml? to roughly detect if a file is a yaml file
1924
-
1925
- * Renamed Features
1926
-
1927
- * Rename #superior to #super_at.
1928
- * OpenObject = OpenHash (OpenObject will eventually be deprecated)
1929
- * renamed quaclass to qua_class
1930
- * renamed openobject to openhash !!!
1931
-
1932
- * Deprecations
1933
-
1934
- * had to remove taskable.rb for now (implementation won't work as toplevel include)
1935
- * deprecated (yored) kernel/own, yet another term for the singleton class
1936
- * removed dataobject.rb (was never used)
1937
- * deprecated (yored!) module/inject; what a silly method
1938
- * deprecated kernel/require_facet (no longer needed)
1939
-
1940
- * Bug Fixes
1941
-
1942
- * Fix enumerable/partition_by.
1943
- * memoize should now work at toplevel
1944
- * minor bug fix to httpaccess
1945
-
1946
- * General Enhancments
1947
-
1948
- * Add buildingblock.rb, replacing builderobject.rb.
1949
- * HtmlBuilder and XMLBuilder aer now based on BuildingBlock
1950
- * adjust require for "yored" files
1951
- * minor improvements to basic object (object_self to access kernel methods)
1952
- * ostuct adjustment, use #instance_delegate to get underneth the open access
1953
- * module/include_as is now based on module/namespace (thanks Pit!)
1954
- * minor adjustments to methods for (class<<self;self;end)
1955
- * facets.rb now references facets/sys.rb
1956
- * adjust old annotation.rb (now in yore) to use openhash
1957
-
1958
- * Admin Adjustments
1959
-
1960
- * further updates to project info file (need to stop versioning this)
1961
- * deprecated (yored) builderobject.rb (poor implementation)
1962
- * moved deprecated #facet_require to yore lib
1963
- * minor doc change to instance_intercept.rb
1964
- * doc change to methodfilter.rb (maybe deprecat in future)
1965
- * moved old module/namespace implementation to yore
1966
-
1967
- * Unsorted Changes
1968
-
1969
- * moved plugin.rb to ratchets/library project
1970
- * proper credit for multiton goes to Ara T. Howard!!!! Also improvements.
1971
- * remove library.rb (move to ratchets/library project)
1972
- * updated autovivify.rb to use openhash
1973
- * improvement to command.rb
1974
- * imporved time/stamp
1975
- * reimplemented proc/to_method for more sensible behavior
1976
- * reimplemented module/namespace, very clever thanks to pit captain
1977
- * added module_load and module_require, e.g. load into and require into
1978
- * reimplemented instance_exec, should be much improved
1979
- * doc updates to inflect.rb
1980
- * updates to Hash op_add, reverse_merge, and rekey
1981
- * each_slice is now just an alias via enumerator & fixes to partition_by
1982
- * minor adjusment to multiglob
1983
- * modified all.rb (not recommended!) to require facets/sys
1984
- * modifications to project information file (should this be versioned?)
1985
- * created yore lib to store deprecated features (good idea!)
1986
- * modified PROJECT info file
1987
- * added module class/module_load and _require
1988
- * remove facet/ redirect lib from darcs repository
1989
- * OpenObject is now OpenHash (OpenObject still exist for backcompat)
1990
- * kernel/returning is a stub for kernel/with
1991
- * added proc/update as alias for #call per Tim Pease use of Proc as Observable
1992
- * added behavior.rb by Nobuyoshi Nakada (plan to improve)
1993
- * rewrote taskable.rb using classes to represent tasks; it is much improved
1994
- * openobject.rb doc updates
1995
- * major update to functor which is now a subclass of Proc (should be faster)
1996
- * improvements to dictionary.rb to go along with additions of first and last
1997
- * small improvements to command.rb
1998
- * removed uses of __class__ for object_class and solidified usaged of #as in basicobject.rb
1999
- * deprecated ostruct shadow methods (i.e __table__) in favor of #instance methods
2000
- * added test to module/alias_method_chain
2001
- * imporvements to instance_exec thanks to Mauricio Fernandez
2002
- * improvements to kernel/send_as
2003
- * improvements to kernel/as
2004
- * minor doc addition to kernel/as
2005
- * fixed syntax in hash/op_add.rb
2006
- * imporvements to hash/partition_by thanks to Gregory of Laurel
2007
- * added Mauricio Fernandez to authors
2008
- * added addtional work library lore
2009
- * moved "calibre" project information files
2010
- * moved a number of "in the works" libs to ToadCode project
2011
- * removed predicate.rb, an expiremental logic system, and moved to ToadCode
2012
- * Added plugin.rb, an indirect require mechinism, ie. a plugin system
2013
- * remove one.rb and moved to ToadCode project, this was just silly/fun library
2014
- * Added library.rb which is a library ledger system (used to be roll.rb)
2015
- * added kernel/with which instance_eval's a block on with's subject
2016
- * rekey is an improved version of normalize_keys (ie. the basis of symbolize_keys)
2017
- * multiglob is like glob but handles a list of patterns
2018
- * proper access to openstruct's underlying table
2019
- * minor adjustment to taskable.rb
2020
- * minor adjustment to #dresner docs
2021
- * minor adjustment to #as
2022
- * simple doc addition to setup.rb
2023
- * doc fixes and losening toplevel constraint to Object in taskable
2024
- * made OpenObject #update and #merge public; added to_hash
2025
- * minor "public" fix to main_as_object
2026
- * removed unorder_store and store_only; added first/last to dictionary
2027
- * continued improvements to command.rb
2028
- added some new callbacks such as option_missing;
2029
- also handles method_missing properly now
2030
- * minor adjustments to module::@+
2031
- * added string/rewrite
2032
- * test fixes to module/include_as
2033
- * documentation fix for class_extension
2034
- * minor edit to supermethod (also finish #superior removal)
2035
- * cleanup kernel/set_with code
2036
- * update kernel/metaclass can now take a block
2037
- * added hash#+ and hash#- (op_add and op_sub)
2038
- * added cache to enumerable/every
2039
- * minor updates to facets.rb
2040
- * removed kernel/superior (silly name)
2041
- * minor modifications ot PROJECT file
2042
- * [add] more/autovivify.rb expiremental lib.
2043
- * [update] Minor fix to command.rb to not use Kernel methods as subcommands.
2044
- * [update] Work on annotation.rb to improve support for :self.
2045
- * [deprecate] enumerable/permute.rb (replaced by permutation) and minor test fix to linkedlist.rb
2046
- * [added] linkedlist.rb (thanks Kirk Haines!)
2047
- * [added] enumerable/sum (thanks to Gavin Kistner)
2048
- * [added] array/each_combo and combos (Eunumerable.combinations will be deprecated eventually)
2049
- * [rename] changed enumerable/permute to permutation
2050
- * [update] annotation.rb, fixed :self key
2051
- * [added] pathname/op_div
2052
- * [deprecated] hash/each.rb
2053
- * [removed] hash/each.rb, this variation of Hash#each is too "dangerous" in practice
2054
- * [update] module/self/op_add.rb: fixed inclusion order
2055
- * annotation.rb, return annotations of self when key is :self [updated]
2056
- * module/self/op_add.rb and op_sub.rb - traits like features [added]
2057
- * minor improvemtns to module/clone_using and integrate
2058
- * command.rb: minor change to docs [update]
2059
- * openobject.rb (added NilClass#to_openobject) [update]
2060
- * enumerable/each_slice.rb [replace]
2061
- Ruby already has #each_slice if you require 'enumerator'. And for 1.9,
2062
- I believe, this will be present automatically. So Facets' each_slice
2063
- has been replaced with a simple redirection to require 'enumerator'.
2064
- Ruby's version is slightly different in that it won't check arity if
2065
- a slice count is not given. For this, use enumerable/each_by.
2066
- * array/delete_at.rb [removed]
2067
- Ruby's Array class already has a #delete_at method,
2068
- although this is another method at odds with Hash.
2069
- Use #delete_values_at instead.
2070
- * moved File.bitbucket to File.null (but bitbucket was so "fun"! ;)
2071
- * added nilclass/to_path
2072
- * added kernel/load_local
2073
- * added kernel/callee
2074
- * added enumerable/eachn, integer/each and integer/of
2075
- * re-added array/delete_values_at
2076
- * added filetest/self/root
2077
- * added cache.rb
2078
- * moved Dir.bitbucket to File.bitbucket
2079
- * removed task file in favor of sake based util/
2080
- * added main_as_module
2081
- * added doublemetaphone (Thanks Lawrence Philps!)
2082
- * rewrote taskable.rb
2083
- * minor doc fix to association.rb
2084
- * added symbol/to_s which caches the result for speed up
2085
- * additions and adjusments related to hash/delete_at
2086
- * added Dir.bitbucket
2087
- * update to array/op_fetch to include op_store
2088
- * updated docs and util tasks
2089
- * minor changes
2090
- * added filesystem.rb
2091
- * taskable should now work at the toplevel too
2092
- * still working the organization as Reap/Sake change
2093
- * started setting project tasks up for sake
2094
- * updates to enumerable each_slice
2095
- * updated names of meta files
2096
- * added trace to command.rb
2097
- * organizational changes
2098
-
2099
-
2100
- == 1.7.0 / 2006-07-25
2101
-
2102
- Changes:
2103
-
2104
- * Additions
2105
-
2106
- * Add Infinity class.
2107
- * Add `tkxml.rb`.
2108
- * Add singleton Annotations.
2109
- * Add Cuts implimentation.
2110
-
2111
- * Improvements
2112
-
2113
- * Improve command.rb with error catch. (Jonas)
2114
- * Improve #wrap_method, no need to undef method before redefining.
2115
- * Improve String#singular and plural.
2116
- * Improve #normalize_keys to take a proc instead of a "send" parameter.
2117
-
2118
- * Bug Fixes
2119
-
2120
- * Add #to_a to OpenObject.
2121
- * Fix instance_interception test.
2122
-
2123
- * Miscellaneous Enhancements
2124
-
2125
- * Add hash/op_div.rb and array/op_div.rb.
2126
- * Allow tasks to do arguments (all dependent tasks must take same args)
2127
- * Separated integer/op_mul from compose, op_mul now composes and Integer#of.
2128
- * added work dir to repo
2129
-
2130
- * doc cleanup
2131
-
2132
- * remove kernel/called and fixed callee,__callee__ and __method__.
2133
- * just about prefected OpenObject
2134
- * keys_to_sym to symbolize_keys usage
2135
- * remove explore dir, perhaps better to do without midstage
2136
-
2137
-
2138
-
2139
- == 1.6.0 / 2006-07-20
2140
-
2141
- Changes:
2142
-
2143
- * PrivateAccess expiremental class
2144
-
2145
- * Additions
2146
-
2147
- * Add Hash#reverse_merge (from ActiveSupport).
2148
-
2149
- * adjustments to stringify_keys, record normalize_keys
2150
- * work on other Hash subclasses Dictionary, OpenCascade, and Hash#having_fallback features
2151
- * added some core methods enumerable#divide, array and hash op_div, kernel/meta
2152
- * deprecated generate_method_name and generate_instance_method_name
2153
- * Hash methods keys_to_s and keys_to_sym to stringify_keys and symbolize_keys
2154
- Both now depend on normalize_keys
2155
- * rewrote openobject as a subclass of Hash with a method filter
2156
- * rewrote annotation.rb and moved into more/
2157
- * add meta docs to darcs
2158
- * added Jan Molic's Debugger(Logger) to explore
2159
- * calibre task (worth the effort?)
2160
- * added Symbol::generate
2161
- * remove generate_method_name methods
2162
- ** removed kernel/generate_method_name
2163
- ** removed moodule/generate_instance_method_name
2164
- Neither were thread safe.
2165
- * new implementation of openobject cont.
2166
- * updated dictionary class
2167
- 1. created subclass AutoDictionary, now used by Dictionary.auto
2168
- 2. deprecated ::key_new and :value_new, use ::new.by_key and ::new.by_value instead.
2169
- 3. Retained ::alpha but changed ::auto_key to ::auto_alpha.
2170
- * new implementation of openobject in Facets/EXPLORE
2171
- * Added deep_clone (thanks Jan Molic)
2172
- * project metadata work adjustments
2173
- * minor update to tagiterator.rb
2174
- * add _darcs expection to FileList
2175
- * fix to nilclass#status (accept single parameter)
2176
- * added Hash.auto (thanks Jan Molic)
2177
- * remove blankslate alias to basicobject
2178
- * added annotation and instance_intercept to Facets/EXPLORE
2179
- * added Kernel#to_data
2180
- * add Daniel Berger's Hash#to_stuct
2181
- * moved ValueHolder in snapshot.rb to Snapshot::ValueHolder
2182
- * minor bug fix to alias_method_chain
2183
- * fix compatiblity with Reap
2184
- * improved Proc#to_method and Kernel#instance_exec
2185
- * added instance_exec (duh)
2186
- * added object_clone and object_dup object_ methods are intended as non-overridable (although you cna if you must).
2187
- * no Configuration alias for Settings
2188
- * added facets/explore libs
2189
- * added settings.rb from glue
2190
- * openobject uses self[] instead of @table[]
2191
- also update proj/infp to start 1.5 series
2192
-
2193
- * Deprecations
2194
-
2195
- * Deprecate BasicObject.
2196
-
2197
-
2198
- == 1.4.5 / 2006-07-05
2199
-
2200
- Changes:
2201
-
2202
- * Additions
2203
-
2204
- * Add NilClass#status which allows a message to be passed through a failure chain.
2205
- * Add Module#alias_method_chain from Rails as a cleveridiom for module-based method wrapping.
2206
- A limited solution, but since there's no standard solution as of yet, well support til then.
2207
- * Add Enumerable#cascade, cascade a list of actions on each element of an enumerable.
2208
-
2209
-
2210
- == 1.4.4 / 2006-07-03
2211
-
2212
- Changes:
2213
-
2214
- * Bug Fixes
2215
-
2216
- * The `#method missing` in HtmlBuilder effected by BasicObject fix
2217
- (use __self__.method instead of __method__).
2218
-
2219
- * Improved Features
2220
-
2221
- * Update Functor, by adding `@self = function.binding.self`.
2222
-
2223
- * Renamed Features
2224
-
2225
- * Change WebAgent to Web.
2226
-
2227
- * Deprecations
2228
-
2229
- * Removed hash/keys_to_iv b/c it is a poor name. Since the alternative
2230
- of #keys_to_instance_variables conveys the wrong idea, decided to just
2231
- get rid of this. Instead use the hash#variablize_keys which is also
2232
- Rails compatibile.
2233
-
2234
-
2235
- == 1.4.3 / 2006-06-27
2236
-
2237
- * Administrative Adjustments
2238
-
2239
- * Move ProjectInfo to proj/info.
2240
- * Better arrangment of repository,
2241
-
2242
-
2243
- == 1.4.2 / 2006-06-21
2244
-
2245
- This release makes adjustments to BasicObject, further reducing unhidden
2246
- methods. Among them __object__, __method__ and #as. Also added `#method_missing`
2247
- that detects shadow methods and rebinds them to Object. Keep in mind that woun't
2248
- help you if you override method_missing which is typical for this class.
2249
-
2250
- This release also marks the first use of Darcs version control manager!
2251
-
2252
- Changes:
2253
-
2254
- * Improvements
2255
-
2256
- * Adjusted BasicObject slightly, further reducing unhidden methods.
2257
-
2258
- * Bug Fixes
2259
-
2260
- * Fixed bug in BasicObject#__self__.
2261
-
2262
- * Administrative Adjustments
2263
-
2264
- * Started using Darcs --finally!
2265
- * Transition to Darcs has interupted ChangeLog though :(
2266
-
2267
-
2268
- == 1.4.0 / 2006-05-05
2269
-
2270
- Changes:
2271
-
2272
- * Additions
2273
-
2274
- * Added Cookie, HTTP and HTTPAccess of ...'s library.
2275
- * Added OpenCascade, which is like OpenObject but chains access.
2276
- * Added MenTalguy's lazy.rb which include's Future and Promise classes.
2277
- * Added task.rb, which provides a Rake interface compatible task
2278
- system, but that can be used in any code.
2279
-
2280
- * Improvements
2281
-
2282
- * Improved Hash#traverse (it now does all traversing before yielding).
2283
- * Console::Command also now supports run-on flags (eg. -xvzf).
2284
- * Updated tuple.rb so that when a string is converted to a Tuple (#to_t)
2285
- the values wll be made integers if they are composed of only numbers.
2286
- If you need all strings you can use a block since the block bypasses
2287
- this auto coercement, eg. to_t{ |v| v }.
2288
-
2289
- * Renames
2290
-
2291
- * OpenObject's __get__ and __set__ methods have been changed
2292
- to __fetch__ and __store__ to correspond to the Hash methods.
2293
-
2294
- * Depreacetions
2295
-
2296
- * kernel/me, kernel/methodname and kernel/method_name have all been
2297
- deprecated in favor of the 1.9 standard kernel/__method__ and
2298
- kernel/__callee__.
2299
- * Console::Application is deprecated and is no longer an alias for
2300
- Console::Command.
2301
- * More's classinherit.rb has been removed, and classmethods.rb will be
2302
- too in another version or two. You should transition all uses of
2303
- these to core/module/class_extension.rb.
2304
-
2305
-
2306
- == 1.3.1 / 2006-04-17
2307
-
2308
- Changes:
2309
-
2310
- * Deprecations
2311
-
2312
- * Deprecated string/to_arr.
2313
-
2314
- * General Enhancements
2315
-
2316
- * Slightly adjusted string#to_a.
2317
-
2318
-
2319
- == 1.3.0 / 2006-04-05
2320
-
2321
- Changes:
2322
-
2323
- * Additions
2324
-
2325
- * Ported parts of Nitro's Glue library to Facets.
2326
- * more/aspects.rb
2327
- * core/module/on_included.rb
2328
- * core/module/expirable.rb
2329
- * core/enumerable/accumulate.rb
2330
- * Added xoxo.rb, json.rb and rtals.rb.
2331
-
2332
- * General Enhancements
2333
-
2334
- * Repaired missing data files for units.rb.
2335
- * Moved cattr methods from module/ to class/.
2336
- * mattr methods are in limbo at the moment (they were aliases for cattr).
2337
-
2338
-
2339
- == 1.2.1 / 2006-03-29
2340
-
2341
- Changes:
2342
-
2343
- * Renamed Features
2344
-
2345
- * kernel/meta has been renamed to kernel/instance
2346
-
2347
-
2348
- == 1.2.0 / 2006-03-24
2349
-
2350
- Changes:
2351
-
2352
- * Additions
2353
-
2354
- * Add zimba.tm's string/modulize, pathize and methodize.
2355
- * Add some Gem methods, self/active?, self/gemspec, self/gempath.
2356
-
2357
-
2358
- == 1.0.3 / 2006-02-10
2359
-
2360
- Changes:
2361
-
2362
- * Additions
2363
-
2364
- * Added _why's Array#modulo.
2365
-
2366
- * General Enhancements
2367
-
2368
- * Last ditch attempt to keep facets and calibre as one project.
2369
-
2370
-
2371
- == 1.0.0 / 2005-12-04
2372
-
2373
- Okay. Now we've finally hit our 1.0.0 relase. Yea! Does it desrve 1.0 at this point?
2374
- Ah, well close enough. Mainly there won't be anymore silly development names ;)
2375
-
2376
- Changes:
2377
-
2378
- * General Enhancements
2379
-
2380
- * Sped up string#similarity.
2381
- * By popular protest deprecated usage of "AClass.use Facets, :amethod".
2382
- * Created nicer layout of facets/support, /group, /english (one day /method).
2383
- * Odd sets of facets have been move to facets/group/, eg. facets/group/inflect.
2384
- * All is now well preped for a Rolls release shoud that come about.
2385
-
2386
-