facets 1.7.30 → 1.7.38

Sign up to get free protection for your applications and to get access to all the features.
Files changed (407) hide show
  1. data/VERSION +1 -1
  2. data/doc/CHANGELOG +17 -1
  3. data/lib/facet/enumerable/each_slice.rb +1 -0
  4. data/lib/facet/module/inject.rb +1 -0
  5. data/lib/facet/module/self/op_add.rb +1 -0
  6. data/lib/facet/module/self/op_sub.rb +1 -0
  7. data/lib/facets/core/enumerable/each_slice.rb +119 -0
  8. data/lib/facets/core/module/clone_using.rb +7 -7
  9. data/lib/facets/core/module/inject.rb +8 -0
  10. data/lib/facets/core/module/integrate.rb +2 -2
  11. data/lib/facets/core/module/self/op_add.rb +81 -0
  12. data/lib/facets/core/module/self/op_sub.rb +3 -0
  13. data/lib/facets/more/annotation.rb +1 -1
  14. data/lib/facets/more/command.rb +1 -1
  15. data/lib/facets/more/openobject.rb +8 -0
  16. data/test/lib/facets/core/array/test_at_rand.rb +1 -1
  17. data/test/lib/facets/core/array/test_delete_unless.rb +1 -1
  18. data/test/lib/facets/core/array/test_delete_values.rb +1 -1
  19. data/test/lib/facets/core/array/test_delete_values_at.rb +1 -1
  20. data/test/lib/facets/core/array/test_first.rb +1 -1
  21. data/test/lib/facets/core/array/test_head.rb +1 -1
  22. data/test/lib/facets/core/array/test_last_index.rb +1 -1
  23. data/test/lib/facets/core/array/test_merge.rb +1 -1
  24. data/test/lib/facets/core/array/test_mid.rb +1 -1
  25. data/test/lib/facets/core/array/test_middle.rb +1 -1
  26. data/test/lib/facets/core/array/test_op_fetch.rb +1 -1
  27. data/test/lib/facets/core/array/test_pick.rb +1 -1
  28. data/test/lib/facets/core/array/test_pos.rb +1 -1
  29. data/test/lib/facets/core/array/test_pot.rb +1 -1
  30. data/test/lib/facets/core/array/test_pull.rb +1 -1
  31. data/test/lib/facets/core/array/test_rand_index.rb +1 -1
  32. data/test/lib/facets/core/array/test_rand_subset.rb +1 -1
  33. data/test/lib/facets/core/array/test_range.rb +1 -1
  34. data/test/lib/facets/core/array/test_rotate.rb +1 -1
  35. data/test/lib/facets/core/array/test_select.rb +1 -1
  36. data/test/lib/facets/core/array/test_shuffle.rb +1 -1
  37. data/test/lib/facets/core/array/test_thru.rb +1 -1
  38. data/test/lib/facets/core/array/test_to_b.rb +1 -1
  39. data/test/lib/facets/core/array/test_to_h.rb +1 -1
  40. data/test/lib/facets/core/array/test_to_hash.rb +1 -1
  41. data/test/lib/facets/core/binding/self/test_of_caller.rb +1 -1
  42. data/test/lib/facets/core/binding/test___LINE__.rb +1 -1
  43. data/test/lib/facets/core/binding/test_call_stack.rb +1 -1
  44. data/test/lib/facets/core/binding/test_called.rb +1 -1
  45. data/test/lib/facets/core/binding/test_caller.rb +1 -1
  46. data/test/lib/facets/core/binding/test_defined.rb +1 -1
  47. data/test/lib/facets/core/binding/test_eval.rb +1 -1
  48. data/test/lib/facets/core/binding/test_local_variables.rb +1 -1
  49. data/test/lib/facets/core/binding/test_method_name.rb +1 -1
  50. data/test/lib/facets/core/binding/test_op_fetch.rb +1 -1
  51. data/test/lib/facets/core/binding/test_op_store.rb +1 -1
  52. data/test/lib/facets/core/binding/test_self.rb +1 -1
  53. data/test/lib/facets/core/class/test_cattr.rb +1 -1
  54. data/test/lib/facets/core/class/test_descendents.rb +1 -1
  55. data/test/lib/facets/core/class/test_method_name.rb +1 -1
  56. data/test/lib/facets/core/class/test_remove_descendents.rb +1 -1
  57. data/test/lib/facets/core/class/test_unix_path.rb +1 -1
  58. data/test/lib/facets/core/comparable/test_at_least.rb +1 -1
  59. data/test/lib/facets/core/comparable/test_clip.rb +1 -1
  60. data/test/lib/facets/core/comparable/test_cmp.rb +1 -1
  61. data/test/lib/facets/core/continuation/self/test_create.rb +1 -1
  62. data/test/lib/facets/core/date/test_days_in_month.rb +1 -1
  63. data/test/lib/facets/core/date/test_days_of_month.rb +1 -1
  64. data/test/lib/facets/core/date/test_stamp.rb +1 -1
  65. data/test/lib/facets/core/date/test_to_date.rb +1 -1
  66. data/test/lib/facets/core/date/test_to_s.rb +1 -1
  67. data/test/lib/facets/core/date/test_to_time.rb +1 -1
  68. data/test/lib/facets/core/dir/self/test_ancestor.rb +1 -1
  69. data/test/lib/facets/core/dir/self/test_ascend.rb +1 -1
  70. data/test/lib/facets/core/enumerable/self/test_combinations.rb +1 -1
  71. data/test/lib/facets/core/enumerable/self/test_cross.rb +1 -1
  72. data/test/lib/facets/core/enumerable/test_collect_with_index.rb +1 -1
  73. data/test/lib/facets/core/enumerable/test_commonality.rb +1 -1
  74. data/test/lib/facets/core/enumerable/test_compact_collect.rb +1 -1
  75. data/test/lib/facets/core/enumerable/test_count.rb +1 -1
  76. data/test/lib/facets/core/enumerable/test_cross.rb +1 -1
  77. data/test/lib/facets/core/enumerable/test_each_by.rb +1 -1
  78. data/test/lib/facets/core/enumerable/test_each_combination.rb +1 -1
  79. data/test/lib/facets/core/enumerable/test_each_pair.rb +1 -1
  80. data/test/lib/facets/core/enumerable/test_each_slice.rb +14 -31
  81. data/test/lib/facets/core/enumerable/test_each_unique_pair.rb +1 -1
  82. data/test/lib/facets/core/enumerable/test_eachn.rb +1 -1
  83. data/test/lib/facets/core/enumerable/test_entropy.rb +1 -1
  84. data/test/lib/facets/core/enumerable/test_every.rb +1 -1
  85. data/test/lib/facets/core/enumerable/test_ew.rb +1 -1
  86. data/test/lib/facets/core/enumerable/test_filter_collect.rb +1 -1
  87. data/test/lib/facets/core/enumerable/test_find_collisions.rb +1 -1
  88. data/test/lib/facets/core/enumerable/test_frequency.rb +1 -1
  89. data/test/lib/facets/core/enumerable/test_graph.rb +1 -1
  90. data/test/lib/facets/core/enumerable/test_ideal_entropy.rb +1 -1
  91. data/test/lib/facets/core/enumerable/test_none.rb +1 -1
  92. data/test/lib/facets/core/enumerable/test_occur.rb +1 -1
  93. data/test/lib/facets/core/enumerable/test_one.rb +1 -1
  94. data/test/lib/facets/core/enumerable/test_op_pow.rb +1 -1
  95. data/test/lib/facets/core/enumerable/test_partition_by.rb +1 -1
  96. data/test/lib/facets/core/enumerable/test_permute.rb +1 -1
  97. data/test/lib/facets/core/enumerable/test_probability.rb +1 -1
  98. data/test/lib/facets/core/enumerable/test_to_h.rb +1 -1
  99. data/test/lib/facets/core/enumerable/test_uniq_by.rb +1 -1
  100. data/test/lib/facets/core/file/self/test_create.rb +1 -1
  101. data/test/lib/facets/core/file/self/test_open_as_string.rb +1 -1
  102. data/test/lib/facets/core/file/self/test_read_list.rb +1 -1
  103. data/test/lib/facets/core/file/self/test_sanitize.rb +1 -1
  104. data/test/lib/facets/core/file/self/test_split_all.rb +1 -1
  105. data/test/lib/facets/core/float/test_round_at.rb +1 -1
  106. data/test/lib/facets/core/float/test_round_to.rb +1 -1
  107. data/test/lib/facets/core/hash/self/test_zipnew.rb +1 -1
  108. data/test/lib/facets/core/hash/test_alias.rb +1 -1
  109. data/test/lib/facets/core/hash/test_assert_has_keys.rb +1 -1
  110. data/test/lib/facets/core/hash/test_assert_has_only_keys.rb +1 -1
  111. data/test/lib/facets/core/hash/test_at.rb +1 -1
  112. data/test/lib/facets/core/hash/test_collate.rb +1 -1
  113. data/test/lib/facets/core/hash/test_each_with_index.rb +1 -1
  114. data/test/lib/facets/core/hash/test_each_with_key.rb +1 -1
  115. data/test/lib/facets/core/hash/test_graph.rb +1 -1
  116. data/test/lib/facets/core/hash/test_has_keys.rb +1 -1
  117. data/test/lib/facets/core/hash/test_has_only_keys.rb +1 -1
  118. data/test/lib/facets/core/hash/test_inverse.rb +1 -1
  119. data/test/lib/facets/core/hash/test_normalize_keys.rb +1 -1
  120. data/test/lib/facets/core/hash/test_op_fetch.rb +1 -1
  121. data/test/lib/facets/core/hash/test_op_lshift.rb +1 -1
  122. data/test/lib/facets/core/hash/test_rand_key.rb +1 -1
  123. data/test/lib/facets/core/hash/test_rand_pair.rb +1 -1
  124. data/test/lib/facets/core/hash/test_rand_value.rb +1 -1
  125. data/test/lib/facets/core/hash/test_replace_each.rb +1 -1
  126. data/test/lib/facets/core/hash/test_shuffle.rb +1 -1
  127. data/test/lib/facets/core/hash/test_slice.rb +1 -1
  128. data/test/lib/facets/core/hash/test_stringify_keys.rb +1 -1
  129. data/test/lib/facets/core/hash/test_swap.rb +1 -1
  130. data/test/lib/facets/core/hash/test_swapkey.rb +1 -1
  131. data/test/lib/facets/core/hash/test_symbolize_keys.rb +1 -1
  132. data/test/lib/facets/core/hash/test_to_h.rb +1 -1
  133. data/test/lib/facets/core/hash/test_to_ostruct.rb +1 -1
  134. data/test/lib/facets/core/hash/test_to_ostruct_recurse.rb +1 -1
  135. data/test/lib/facets/core/hash/test_traverse.rb +1 -1
  136. data/test/lib/facets/core/hash/test_update_each.rb +1 -1
  137. data/test/lib/facets/core/hash/test_update_keys.rb +1 -1
  138. data/test/lib/facets/core/hash/test_update_values.rb +1 -1
  139. data/test/lib/facets/core/hash/test_weave.rb +1 -1
  140. data/test/lib/facets/core/integer/test_factorial.rb +1 -1
  141. data/test/lib/facets/core/integer/test_multiple.rb +1 -1
  142. data/test/lib/facets/core/integer/test_of.rb +1 -1
  143. data/test/lib/facets/core/integer/test_ordinal.rb +1 -1
  144. data/test/lib/facets/core/integer/test_times_collect.rb +1 -1
  145. data/test/lib/facets/core/kernel/test___class__.rb +1 -1
  146. data/test/lib/facets/core/kernel/test_as.rb +1 -1
  147. data/test/lib/facets/core/kernel/test_assign_from.rb +1 -1
  148. data/test/lib/facets/core/kernel/test_assign_with.rb +1 -1
  149. data/test/lib/facets/core/kernel/test_bool.rb +1 -1
  150. data/test/lib/facets/core/kernel/test_bug.rb +1 -1
  151. data/test/lib/facets/core/kernel/test_call_stack.rb +1 -1
  152. data/test/lib/facets/core/kernel/test_called.rb +1 -1
  153. data/test/lib/facets/core/kernel/test_callee.rb +1 -1
  154. data/test/lib/facets/core/kernel/test_constant.rb +1 -1
  155. data/test/lib/facets/core/kernel/test_copy.rb +1 -1
  156. data/test/lib/facets/core/kernel/test_deep_copy.rb +1 -1
  157. data/test/lib/facets/core/kernel/test_demo.rb +1 -1
  158. data/test/lib/facets/core/kernel/test_fn.rb +1 -1
  159. data/test/lib/facets/core/kernel/test_get_by_id.rb +1 -1
  160. data/test/lib/facets/core/kernel/test_here.rb +1 -1
  161. data/test/lib/facets/core/kernel/test_in.rb +1 -1
  162. data/test/lib/facets/core/kernel/test_instance_exec.rb +1 -1
  163. data/test/lib/facets/core/kernel/test_maybe.rb +1 -1
  164. data/test/lib/facets/core/kernel/test_metaclass.rb +1 -1
  165. data/test/lib/facets/core/kernel/test_method.rb +1 -1
  166. data/test/lib/facets/core/kernel/test_methods.rb +1 -1
  167. data/test/lib/facets/core/kernel/test_new.rb +1 -1
  168. data/test/lib/facets/core/kernel/test_object_class.rb +1 -1
  169. data/test/lib/facets/core/kernel/test_object_hexid.rb +1 -1
  170. data/test/lib/facets/core/kernel/test_quaclass.rb +1 -1
  171. data/test/lib/facets/core/kernel/test_require_all.rb +1 -1
  172. data/test/lib/facets/core/kernel/test_require_esc.rb +1 -1
  173. data/test/lib/facets/core/kernel/test_require_facet.rb +1 -1
  174. data/test/lib/facets/core/kernel/test_resc.rb +1 -1
  175. data/test/lib/facets/core/kernel/test_returning.rb +1 -1
  176. data/test/lib/facets/core/kernel/test_send_as.rb +1 -1
  177. data/test/lib/facets/core/kernel/test_set_from.rb +1 -1
  178. data/test/lib/facets/core/kernel/test_set_with.rb +1 -1
  179. data/test/lib/facets/core/kernel/test_silently.rb +1 -1
  180. data/test/lib/facets/core/kernel/test_singleton.rb +1 -1
  181. data/test/lib/facets/core/kernel/test_singleton_class.rb +1 -1
  182. data/test/lib/facets/core/kernel/test_superior.rb +1 -1
  183. data/test/lib/facets/core/kernel/test_supermethod.rb +1 -1
  184. data/test/lib/facets/core/kernel/test_this.rb +1 -1
  185. data/test/lib/facets/core/kernel/test_to_b.rb +1 -1
  186. data/test/lib/facets/core/kernel/test_to_bool.rb +1 -1
  187. data/test/lib/facets/core/kernel/test_to_data.rb +1 -1
  188. data/test/lib/facets/core/kernel/test_uri.rb +1 -1
  189. data/test/lib/facets/core/kernel/test_val.rb +1 -1
  190. data/test/lib/facets/core/kernel/test_with_accessor.rb +1 -1
  191. data/test/lib/facets/core/matchdata/test_match.rb +1 -1
  192. data/test/lib/facets/core/matchdata/test_matchtree.rb +1 -1
  193. data/test/lib/facets/core/module/self/test_op_add.rb +48 -0
  194. data/test/lib/facets/core/module/test_abstract.rb +1 -1
  195. data/test/lib/facets/core/module/test_alias_module_function.rb +1 -1
  196. data/test/lib/facets/core/module/test_ancestor.rb +1 -1
  197. data/test/lib/facets/core/module/test_basename.rb +1 -1
  198. data/test/lib/facets/core/module/test_by_name.rb +1 -1
  199. data/test/lib/facets/core/module/test_class_extension.rb +1 -1
  200. data/test/lib/facets/core/module/test_clone_using.rb +1 -1
  201. data/test/lib/facets/core/module/test_dirname.rb +1 -1
  202. data/test/lib/facets/core/module/test_equate_on.rb +1 -1
  203. data/test/lib/facets/core/module/test_include_as.rb +1 -1
  204. data/test/lib/facets/core/module/test_initializer.rb +1 -1
  205. data/test/lib/facets/core/module/test_instance_methods.rb +1 -1
  206. data/test/lib/facets/core/module/test_integrate.rb +1 -1
  207. data/test/lib/facets/core/module/test_memoize.rb +1 -1
  208. data/test/lib/facets/core/module/test_modspace.rb +1 -1
  209. data/test/lib/facets/core/module/test_namespace.rb +1 -1
  210. data/test/lib/facets/core/module/test_nesting.rb +1 -1
  211. data/test/lib/facets/core/module/test_nodef.rb +1 -1
  212. data/test/lib/facets/core/module/test_on_included.rb +1 -1
  213. data/test/lib/facets/core/module/test_redef.rb +1 -1
  214. data/test/lib/facets/core/module/test_redefine_method.rb +1 -1
  215. data/test/lib/facets/core/module/test_redirect.rb +1 -1
  216. data/test/lib/facets/core/module/test_redirect_method.rb +1 -1
  217. data/test/lib/facets/core/module/test_remove.rb +1 -1
  218. data/test/lib/facets/core/module/test_rename.rb +1 -1
  219. data/test/lib/facets/core/module/test_rename_method.rb +1 -1
  220. data/test/lib/facets/core/module/test_revisal.rb +1 -1
  221. data/test/lib/facets/core/module/test_shadow_method.rb +1 -1
  222. data/test/lib/facets/core/module/test_sort_on.rb +1 -1
  223. data/test/lib/facets/core/module/test_this.rb +1 -1
  224. data/test/lib/facets/core/module/test_wrap.rb +1 -1
  225. data/test/lib/facets/core/module/test_wrap_method.rb +1 -1
  226. data/test/lib/facets/core/nilclass/test_blank.rb +1 -1
  227. data/test/lib/facets/core/nilclass/test_empty.rb +1 -1
  228. data/test/lib/facets/core/nilclass/test_include.rb +1 -1
  229. data/test/lib/facets/core/nilclass/test_op_fetch.rb +1 -1
  230. data/test/lib/facets/core/nilclass/test_size.rb +1 -1
  231. data/test/lib/facets/core/nilclass/test_to_h.rb +1 -1
  232. data/test/lib/facets/core/numeric/test_approx.rb +1 -1
  233. data/test/lib/facets/core/numeric/test_ceil_multiple.rb +1 -1
  234. data/test/lib/facets/core/numeric/test_distance.rb +1 -1
  235. data/test/lib/facets/core/numeric/test_succ.rb +1 -1
  236. data/test/lib/facets/core/numeric/test_to_b.rb +1 -1
  237. data/test/lib/facets/core/ostruct/test___merge__.rb +1 -1
  238. data/test/lib/facets/core/ostruct/test___update__.rb +1 -1
  239. data/test/lib/facets/core/ostruct/test_op_fetch.rb +1 -1
  240. data/test/lib/facets/core/ostruct/test_op_store.rb +1 -1
  241. data/test/lib/facets/core/proc/test_compose.rb +1 -1
  242. data/test/lib/facets/core/proc/test_op_mul.rb +1 -1
  243. data/test/lib/facets/core/proc/test_to_method.rb +1 -1
  244. data/test/lib/facets/core/range/test_to_r.rb +1 -1
  245. data/test/lib/facets/core/range/test_to_range.rb +1 -1
  246. data/test/lib/facets/core/range/test_umbrella.rb +1 -1
  247. data/test/lib/facets/core/range/test_within.rb +1 -1
  248. data/test/lib/facets/core/regexp/test_arity.rb +1 -1
  249. data/test/lib/facets/core/regexp/test_to_re.rb +1 -1
  250. data/test/lib/facets/core/regexp/test_to_regexp.rb +1 -1
  251. data/test/lib/facets/core/string/self/test_interpolate.rb +1 -1
  252. data/test/lib/facets/core/string/self/test_patterns.rb +1 -1
  253. data/test/lib/facets/core/string/self/test_rand_letter.rb +1 -1
  254. data/test/lib/facets/core/string/test_align_center.rb +1 -1
  255. data/test/lib/facets/core/string/test_at_rand.rb +1 -1
  256. data/test/lib/facets/core/string/test_basename.rb +1 -1
  257. data/test/lib/facets/core/string/test_blank.rb +1 -1
  258. data/test/lib/facets/core/string/test_bracket.rb +1 -1
  259. data/test/lib/facets/core/string/test_camelcase.rb +1 -1
  260. data/test/lib/facets/core/string/test_camelize.rb +1 -1
  261. data/test/lib/facets/core/string/test_capitalized.rb +1 -1
  262. data/test/lib/facets/core/string/test_chars.rb +1 -1
  263. data/test/lib/facets/core/string/test_cmp.rb +1 -1
  264. data/test/lib/facets/core/string/test_demodulize.rb +1 -1
  265. data/test/lib/facets/core/string/test_divide.rb +1 -1
  266. data/test/lib/facets/core/string/test_downcase.rb +1 -1
  267. data/test/lib/facets/core/string/test_dresner.rb +1 -1
  268. data/test/lib/facets/core/string/test_each_char.rb +1 -1
  269. data/test/lib/facets/core/string/test_each_word.rb +1 -1
  270. data/test/lib/facets/core/string/test_first.rb +1 -1
  271. data/test/lib/facets/core/string/test_fold.rb +1 -1
  272. data/test/lib/facets/core/string/test_humanize.rb +1 -1
  273. data/test/lib/facets/core/string/test_indent.rb +1 -1
  274. data/test/lib/facets/core/string/test_index_all.rb +1 -1
  275. data/test/lib/facets/core/string/test_last.rb +1 -1
  276. data/test/lib/facets/core/string/test_line_wrap.rb +1 -1
  277. data/test/lib/facets/core/string/test_lines.rb +1 -1
  278. data/test/lib/facets/core/string/test_lowercase.rb +1 -1
  279. data/test/lib/facets/core/string/test_margin.rb +1 -1
  280. data/test/lib/facets/core/string/test_methodize.rb +1 -1
  281. data/test/lib/facets/core/string/test_modulize.rb +1 -1
  282. data/test/lib/facets/core/string/test_mscan.rb +1 -1
  283. data/test/lib/facets/core/string/test_natcmp.rb +1 -1
  284. data/test/lib/facets/core/string/test_nchar.rb +1 -1
  285. data/test/lib/facets/core/string/test_pathize.rb +1 -1
  286. data/test/lib/facets/core/string/test_pop.rb +1 -1
  287. data/test/lib/facets/core/string/test_pot.rb +1 -1
  288. data/test/lib/facets/core/string/test_push.rb +1 -1
  289. data/test/lib/facets/core/string/test_quote.rb +1 -1
  290. data/test/lib/facets/core/string/test_rand_byte.rb +1 -1
  291. data/test/lib/facets/core/string/test_rand_index.rb +1 -1
  292. data/test/lib/facets/core/string/test_range.rb +1 -1
  293. data/test/lib/facets/core/string/test_range_all.rb +1 -1
  294. data/test/lib/facets/core/string/test_range_of_line.rb +1 -1
  295. data/test/lib/facets/core/string/test_regesc.rb +1 -1
  296. data/test/lib/facets/core/string/test_shatter.rb +1 -1
  297. data/test/lib/facets/core/string/test_shift.rb +1 -1
  298. data/test/lib/facets/core/string/test_shuffle.rb +1 -1
  299. data/test/lib/facets/core/string/test_similarity.rb +1 -1
  300. data/test/lib/facets/core/string/test_singular.rb +1 -1
  301. data/test/lib/facets/core/string/test_soundex.rb +1 -1
  302. data/test/lib/facets/core/string/test_succ.rb +1 -1
  303. data/test/lib/facets/core/string/test_to_a.rb +1 -1
  304. data/test/lib/facets/core/string/test_to_b.rb +1 -1
  305. data/test/lib/facets/core/string/test_to_const.rb +1 -1
  306. data/test/lib/facets/core/string/test_to_date.rb +1 -1
  307. data/test/lib/facets/core/string/test_to_proc.rb +1 -1
  308. data/test/lib/facets/core/string/test_to_re.rb +1 -1
  309. data/test/lib/facets/core/string/test_to_time.rb +1 -1
  310. data/test/lib/facets/core/string/test_unix_crypt.rb +1 -1
  311. data/test/lib/facets/core/string/test_unpack.rb +1 -1
  312. data/test/lib/facets/core/string/test_unshift.rb +1 -1
  313. data/test/lib/facets/core/string/test_upcase.rb +1 -1
  314. data/test/lib/facets/core/string/test_whitespace.rb +1 -1
  315. data/test/lib/facets/core/string/test_word_filter.rb +1 -1
  316. data/test/lib/facets/core/string/test_word_wrap.rb +1 -1
  317. data/test/lib/facets/core/string/test_words.rb +1 -1
  318. data/test/lib/facets/core/symbol/test_camelcase.rb +1 -1
  319. data/test/lib/facets/core/symbol/test_camelize.rb +1 -1
  320. data/test/lib/facets/core/symbol/test_capitalize.rb +1 -1
  321. data/test/lib/facets/core/symbol/test_capitalized.rb +1 -1
  322. data/test/lib/facets/core/symbol/test_downcase.rb +1 -1
  323. data/test/lib/facets/core/symbol/test_not.rb +1 -1
  324. data/test/lib/facets/core/symbol/test_pad.rb +1 -1
  325. data/test/lib/facets/core/symbol/test_succ.rb +1 -1
  326. data/test/lib/facets/core/symbol/test_to_const.rb +1 -1
  327. data/test/lib/facets/core/symbol/test_to_proc.rb +1 -1
  328. data/test/lib/facets/core/symbol/test_to_str.rb +1 -1
  329. data/test/lib/facets/core/symbol/test_underscore.rb +1 -1
  330. data/test/lib/facets/core/symbol/test_upcase.rb +1 -1
  331. data/test/lib/facets/core/time/test_change.rb +1 -1
  332. data/test/lib/facets/core/time/test_elapse.rb +1 -1
  333. data/test/lib/facets/core/time/test_stamp.rb +1 -1
  334. data/test/lib/facets/core/time/test_to_date.rb +1 -1
  335. data/test/lib/facets/core/time/test_to_s.rb +1 -1
  336. data/test/lib/facets/core/time/test_to_time.rb +1 -1
  337. data/test/lib/facets/more/test_annattr.rb +1 -1
  338. data/test/lib/facets/more/test_annotation.rb +1 -1
  339. data/test/lib/facets/more/test_ansicode.rb +1 -1
  340. data/test/lib/facets/more/test_association.rb +1 -1
  341. data/test/lib/facets/more/test_autoarray.rb +1 -1
  342. data/test/lib/facets/more/test_basicobject.rb +1 -1
  343. data/test/lib/facets/more/test_bbcode.rb +1 -1
  344. data/test/lib/facets/more/test_binaryreader.rb +1 -1
  345. data/test/lib/facets/more/test_bitmask.rb +1 -1
  346. data/test/lib/facets/more/test_bytes.rb +1 -1
  347. data/test/lib/facets/more/test_classmethods.rb +1 -1
  348. data/test/lib/facets/more/test_command.rb +1 -1
  349. data/test/lib/facets/more/test_coroutine.rb +1 -1
  350. data/test/lib/facets/more/test_crypt.rb +1 -1
  351. data/test/lib/facets/more/test_cut.rb +1 -1
  352. data/test/lib/facets/more/test_dictionary.rb +1 -1
  353. data/test/lib/facets/more/test_elementor.rb +1 -1
  354. data/test/lib/facets/more/test_enumerablepass.rb +1 -1
  355. data/test/lib/facets/more/test_floatstring.rb +1 -1
  356. data/test/lib/facets/more/test_functor.rb +1 -1
  357. data/test/lib/facets/more/test_htmlbuilder.rb +1 -1
  358. data/test/lib/facets/more/test_infinity.rb +1 -1
  359. data/test/lib/facets/more/test_inheritor.rb +1 -1
  360. data/test/lib/facets/more/test_instance_intercept.rb +1 -1
  361. data/test/lib/facets/more/test_interval.rb +1 -1
  362. data/test/lib/facets/more/test_json.rb +1 -1
  363. data/test/lib/facets/more/test_lisp.rb +1 -1
  364. data/test/lib/facets/more/test_lisp_format.rb +1 -1
  365. data/test/lib/facets/more/test_lrucache.rb +1 -1
  366. data/test/lib/facets/more/test_mathconstants.rb +1 -1
  367. data/test/lib/facets/more/test_methodfilter.rb +1 -1
  368. data/test/lib/facets/more/test_methodprobe.rb +1 -1
  369. data/test/lib/facets/more/test_multipliers.rb +1 -1
  370. data/test/lib/facets/more/test_multiton.rb +1 -1
  371. data/test/lib/facets/more/test_nackclass.rb +1 -1
  372. data/test/lib/facets/more/test_nilcomparable.rb +1 -1
  373. data/test/lib/facets/more/test_opencascade.rb +1 -1
  374. data/test/lib/facets/more/test_openobject.rb +1 -1
  375. data/test/lib/facets/more/test_overload.rb +1 -1
  376. data/test/lib/facets/more/test_paramix.rb +1 -1
  377. data/test/lib/facets/more/test_pqueue.rb +1 -1
  378. data/test/lib/facets/more/test_predicate.rb +1 -1
  379. data/test/lib/facets/more/test_preinitialize.rb +1 -1
  380. data/test/lib/facets/more/test_promoteself.rb +1 -1
  381. data/test/lib/facets/more/test_recorder.rb +1 -1
  382. data/test/lib/facets/more/test_snapshot.rb +1 -1
  383. data/test/lib/facets/more/test_statichash.rb +1 -1
  384. data/test/lib/facets/more/test_syncarray.rb +1 -1
  385. data/test/lib/facets/more/test_synchash.rb +1 -1
  386. data/test/lib/facets/more/test_tagiterator.rb +1 -1
  387. data/test/lib/facets/more/test_taskable.rb +1 -1
  388. data/test/lib/facets/more/test_timer.rb +1 -1
  389. data/test/lib/facets/more/test_times.rb +1 -1
  390. data/test/lib/facets/more/test_tuple.rb +1 -1
  391. data/test/lib/facets/more/test_typecast.rb +1 -1
  392. data/test/lib/facets/more/test_uninheritable.rb +1 -1
  393. data/test/lib/facets/more/test_units.rb +1 -1
  394. data/test/lib/facets/more/test_xmlbuilder.rb +1 -1
  395. data/test/lib/facets/more/test_xmlhelper.rb +1 -1
  396. data/test/lib/facets/more/test_xoxo.rb +1 -1
  397. data/test/lib/facets/more/test_yamlstruct.rb +1 -1
  398. data/util/package +2 -2
  399. data/util/redirect +1 -1
  400. data/util/release +1 -1
  401. data/util/version +1 -1
  402. metadata +100 -93
  403. data/lib/facet/hash/each.rb +0 -1
  404. data/lib/facets/core/hash/each.rb +0 -76
  405. data/test/lib/facets/core/array/test_op_store.rb +0 -30
  406. data/test/lib/facets/core/hash/test_each.rb +0 -36
  407. data/test/lib/facets/core/kernel/test___method__.rb +0 -26
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.7.30 beta (2006-08-23)
1
+ 1.7.38 (2006-08-31)
@@ -1,3 +1,20 @@
1
+ * [removed] hash/each.rb, this variation of Hash#each is too "dangerous" in practice
2
+ * [update] module/self/op_add.rb: fixed inclusion order
3
+ * annotation.rb, return annotations of self when key is :self [updated]
4
+ * module/self/op_add.rb and op_sub.rb - traits like features [added]
5
+ * minor improvemtns to module/clone_using and integrate
6
+ * command.rb: minor change to docs [update]
7
+ * openobject.rb (added NilClass#to_openobject) [update]
8
+ * enumerable/each_slice.rb [replace]
9
+ Ruby already has #each_slice if you require 'enumerator'. And for 1.9,
10
+ I believe, this will be present automatically. So Facets' each_slice
11
+ has been replaced with a simple redirection to require 'enumerator'.
12
+ Ruby's version is slightly different in that it won't check arity if
13
+ a slice count is not given. For this, use enumerable/each_by.
14
+ * array/delete_at.rb [removed]
15
+ Ruby's Array class already has a #delete_at method,
16
+ although this is another method at odds with Hash.
17
+ Use #delete_values_at instead.
1
18
  * moved File.bitbucket to File.null (but bitbucket was so "fun"! ;)
2
19
  * added nilclass/to_path
3
20
  * added kernel/load_local
@@ -17,7 +34,6 @@
17
34
  * added Dir.bitbucket
18
35
  * update to array/op_fetch to include op_store
19
36
  * updated docs and util tasks
20
- * ice
21
37
  * minor changes
22
38
  * added filesystem.rb
23
39
  * taskable should now work at the toplevel too
@@ -0,0 +1 @@
1
+ require 'facets/core/enumerable/each_slice.rb'
@@ -0,0 +1 @@
1
+ require 'facets/core/module/inject.rb'
@@ -0,0 +1 @@
1
+ require 'facets/core/module/self/op_add.rb'
@@ -0,0 +1 @@
1
+ require 'facets/core/module/self/op_sub.rb'
@@ -0,0 +1,119 @@
1
+ require 'enumerator'
2
+
3
+ =begin
4
+
5
+ module Enumerable
6
+
7
+ # Iterate through slices. If slicing _step_ is not
8
+ # given, the the arity if the block is used.
9
+ #
10
+ # x = []
11
+ # [1,2,3,4].each_slice(2){ |a,b| x << [a,b] }
12
+ # x #=> [ [1,2], [3,4] ]
13
+ #
14
+ # x = []
15
+ # [1,2,3,4,5,6].each_slice(3){ |a| x << a }
16
+ # x #=> [ [1,2,3], [4,5,6] ]
17
+ #
18
+ def each_slice(step=nil, &yld)
19
+ if step
20
+ cnt = step
21
+ n = length / cnt
22
+ n += 1 if length % cnt > 0
23
+ n.times { |i|
24
+ yld.call(*self.slice(i*cnt,cnt))
25
+ }
26
+ return cnt
27
+ else
28
+ cnt = yld.arity.abs
29
+ n = length / cnt
30
+ n += 1 if length % cnt > 0
31
+ n.times { |i|
32
+ yld.call(*self.slice(i*cnt,cnt))
33
+ }
34
+ return cnt
35
+ end
36
+ end
37
+
38
+ alias_method( :each_by, :each_slice )
39
+
40
+ end
41
+
42
+
43
+ class Array
44
+
45
+ # Iterates over +n+ elements at a time. If +n+ is
46
+ # not given then the arity of the block determines the
47
+ # slicing quantity.
48
+ #
49
+ # [1, 2, 3, 4].each_slice(2){ |a,b| ... }
50
+ #
51
+ # This is a specialized version Enumerable#each_slice
52
+ # but optimized specifically for Array.
53
+ def each_slice(n=nil, &yld)
54
+ n = yld.arity.abs unless n
55
+ i=0
56
+ while i < self.length
57
+ yld.call(*self.slice(i,n))
58
+ i+=n
59
+ end
60
+ end
61
+
62
+ alias_method( :each_by, :each_slice )
63
+
64
+ end
65
+
66
+ =end
67
+
68
+
69
+
70
+ # _____ _
71
+ # |_ _|__ ___| |_
72
+ # | |/ _ \/ __| __|
73
+ # | | __/\__ \ |_
74
+ # |_|\___||___/\__|
75
+ #
76
+ =begin test
77
+
78
+ require 'test/unit'
79
+
80
+ class TCEnumerable < Test::Unit::TestCase
81
+
82
+ def test_01
83
+ x = []
84
+ [1,2,3,4].each_slice(2){ |a,b| x << [a,b] }
85
+ o = [[1,2],[3,4]]
86
+ assert_equal( o, x )
87
+ end
88
+
89
+ def test_02
90
+ x = []
91
+ [1,2,3,4,5,6,7,8].each_slice(4){ |*a| x << a }
92
+ o = [[[1,2,3,4]],[[5,6,7,8]]]
93
+ assert_equal( o, x )
94
+ end
95
+
96
+ def test_03
97
+ x = []
98
+ [1,2,3,4,5,6].each_slice(3){ |a| x << a }
99
+ o = [[1,2,3],[4,5,6]]
100
+ assert_equal( o, x )
101
+ end
102
+
103
+ def test_04
104
+ a = [1,2,3,4,5,6]
105
+ r = []
106
+ a.each_slice(2){ |x,y| r << [x,y] }
107
+ assert_equal( [[1,2],[3,4],[5,6]], r )
108
+ end
109
+
110
+ def test_05
111
+ a = [1,2,3,4,5,6]
112
+ r = []
113
+ a.each_slice(3){ |e| r << e }
114
+ assert_equal( [[1,2,3],[4,5,6]], r )
115
+ end
116
+
117
+ end
118
+
119
+ =end
@@ -5,8 +5,8 @@ class Module
5
5
  # of the receiving module renamed.
6
6
  def clone_renaming( pairs )
7
7
  mod = self.dup
8
- pairs.each_pair { |to_sym, from_sym|
9
- mod.class_eval {
8
+ pairs.each_pair{ |to_sym, from_sym|
9
+ mod.class_eval{
10
10
  alias_method( to_sym, from_sym )
11
11
  undef_method( from_sym )
12
12
  }
@@ -19,17 +19,17 @@ class Module
19
19
  def clone_removing( *meths )
20
20
  mod = self.dup
21
21
  methods_to_remove = meths
22
- methods_to_remove.each { |m| mod.class_eval { remove_method m } }
22
+ methods_to_remove.each{ |m| mod.class_eval{ remove_method m } }
23
23
  return mod
24
24
  end
25
25
 
26
26
  # Returns an anonymous module with only the specified methods
27
27
  # of the receiving module intact.
28
- def clone_using( *meths )
29
- meths = meths.collect { |m| m.to_s }
30
- methods_to_remove = (self.instance_methods - meths)
28
+ def clone_using( *methods )
29
+ methods.collect!{ |m| m.to_s }
30
+ methods_to_remove = instance_methods - methods
31
31
  mod = self.dup
32
- mod.class_eval { methods_to_remove.each { |m| undef_method m } }
32
+ mod.class_eval{ methods_to_remove.each{ |m| undef_method m } }
33
33
  return mod
34
34
  end
35
35
 
@@ -0,0 +1,8 @@
1
+
2
+ class Module
3
+
4
+ def inject( base, &block )
5
+ base.module_eval &block
6
+ end
7
+
8
+ end
@@ -8,8 +8,8 @@ require 'facet/module/nodef'
8
8
  require 'facet/module/wrap'
9
9
 
10
10
  # Using integrate is just like using include except the
11
- # module included is a reconstruction of the one give
12
- # via commands given in a block.
11
+ # module included is a reconstruction of the one given
12
+ # altered by the commands given in the block.
13
13
  #
14
14
  # Convenient commands available are: #rename, #redef,
15
15
  # #remove, #nodef and #wrap. But any module method
@@ -0,0 +1,81 @@
1
+
2
+ class Module
3
+
4
+ def +( other )
5
+ mod1 = other.clone
6
+ mod2 = clone
7
+
8
+ mod1.module_eval{
9
+ include mod2
10
+ }
11
+
12
+ #methods = other.instance_methods(false)
13
+ #methods.each{ |name|
14
+ # method = other.instance_method(name)
15
+ # mod.module_eval {
16
+ # define_method( name, &method )
17
+ # }
18
+ #}
19
+
20
+ mod1
21
+ end
22
+
23
+
24
+ def -( other )
25
+ mod = clone
26
+
27
+ case other
28
+ when Array
29
+ subtract = instance_methods & other.collect{|m| m.to_s}
30
+ when Module
31
+ subtract = instance_methods & other.instance_methods(false)
32
+ when String, Symbol
33
+ subtract = instance_methods & [ other.to_s ]
34
+ end
35
+
36
+ mod.module_eval do
37
+ subtract.each{|x| remove_method x }
38
+ end
39
+
40
+ mod
41
+ end
42
+
43
+ end
44
+
45
+
46
+ =begin test
47
+
48
+ class TraitsTest < Test::Unit::TestCase
49
+
50
+ module A
51
+ def x; "x"; end
52
+ def z; "zA"; end
53
+ end
54
+
55
+ module B
56
+ def y; "y"; end
57
+ def z; "zB"; end
58
+ end
59
+
60
+ Q = A + B
61
+ R = A - B
62
+
63
+ def test_add
64
+ assert( Q )
65
+ Q.extend Q
66
+ assert_equal( "x", Q.x )
67
+ assert_equal( "y", Q.y )
68
+ assert_equal( "zB", Q.z )
69
+ end
70
+
71
+ def test_minus
72
+ assert(R)
73
+ R.extend R
74
+ assert_equal( "x", R.x )
75
+ assert_raises( NoMethodError ){ R.z }
76
+ end
77
+
78
+ end
79
+
80
+ =end
81
+
@@ -0,0 +1,3 @@
1
+ # stub
2
+ require 'facets/core/module/self/op_add.rb'
3
+
@@ -193,7 +193,7 @@ class Module
193
193
  def ann( name=nil, *options )
194
194
  return annotations unless name
195
195
  return name.each{|k,v| ann k,*v} if Hash === name
196
- return annotations[name] if options.empty?
196
+ return annotations[(name == :self ? self : name)] if options.empty?
197
197
  opt = {}
198
198
  opt.update options.pop if Hash === options.last
199
199
  opt[:class] = options.pop if Class === options.last
@@ -119,7 +119,7 @@ class Console::Command
119
119
  alias_method :start, :execute
120
120
  end
121
121
 
122
- # Do not let this pass through on to
122
+ # Do not let this pass through to
123
123
  # any included module.
124
124
 
125
125
  def initialize ; end
@@ -181,6 +181,14 @@ end
181
181
 
182
182
  # Core Extensions
183
183
 
184
+ class NilClass
185
+ # Nil converts to an empty OpenObject.
186
+
187
+ def to_openobject
188
+ OpenObject.new
189
+ end
190
+ end
191
+
184
192
  class Hash
185
193
  # Convert a Hash into an OpenObject.
186
194
 
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # for lib/facets/core/array/at_rand.rb
8
8
  #
9
- # Extracted Wed Aug 23 18:22:53 EDT 2006
9
+ # Extracted Thu Aug 31 11:31:53 EDT 2006
10
10
  # Unit Tools Reap Test Extractor
11
11
  #
12
12
 
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # for lib/facets/core/array/delete_unless.rb
8
8
  #
9
- # Extracted Wed Aug 23 18:22:53 EDT 2006
9
+ # Extracted Thu Aug 31 11:31:53 EDT 2006
10
10
  # Unit Tools Reap Test Extractor
11
11
  #
12
12
 
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # for lib/facets/core/array/delete_values.rb
8
8
  #
9
- # Extracted Wed Aug 23 18:22:53 EDT 2006
9
+ # Extracted Thu Aug 31 11:31:53 EDT 2006
10
10
  # Unit Tools Reap Test Extractor
11
11
  #
12
12
 
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # for lib/facets/core/array/delete_values_at.rb
8
8
  #
9
- # Extracted Wed Aug 23 18:22:53 EDT 2006
9
+ # Extracted Thu Aug 31 11:31:53 EDT 2006
10
10
  # Unit Tools Reap Test Extractor
11
11
  #
12
12
 
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # for lib/facets/core/array/first.rb
8
8
  #
9
- # Extracted Wed Aug 23 18:22:53 EDT 2006
9
+ # Extracted Thu Aug 31 11:31:53 EDT 2006
10
10
  # Unit Tools Reap Test Extractor
11
11
  #
12
12
 
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # for lib/facets/core/array/head.rb
8
8
  #
9
- # Extracted Wed Aug 23 18:22:53 EDT 2006
9
+ # Extracted Thu Aug 31 11:31:53 EDT 2006
10
10
  # Unit Tools Reap Test Extractor
11
11
  #
12
12
 
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # for lib/facets/core/array/last_index.rb
8
8
  #
9
- # Extracted Wed Aug 23 18:22:53 EDT 2006
9
+ # Extracted Thu Aug 31 11:31:53 EDT 2006
10
10
  # Unit Tools Reap Test Extractor
11
11
  #
12
12
 
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # for lib/facets/core/array/merge.rb
8
8
  #
9
- # Extracted Wed Aug 23 18:22:53 EDT 2006
9
+ # Extracted Thu Aug 31 11:31:53 EDT 2006
10
10
  # Unit Tools Reap Test Extractor
11
11
  #
12
12
 
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # for lib/facets/core/array/mid.rb
8
8
  #
9
- # Extracted Wed Aug 23 18:22:53 EDT 2006
9
+ # Extracted Thu Aug 31 11:31:53 EDT 2006
10
10
  # Unit Tools Reap Test Extractor
11
11
  #
12
12
 
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # for lib/facets/core/array/middle.rb
8
8
  #
9
- # Extracted Wed Aug 23 18:22:53 EDT 2006
9
+ # Extracted Thu Aug 31 11:31:53 EDT 2006
10
10
  # Unit Tools Reap Test Extractor
11
11
  #
12
12
 
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # for lib/facets/core/array/op_fetch.rb
8
8
  #
9
- # Extracted Wed Aug 23 18:22:53 EDT 2006
9
+ # Extracted Thu Aug 31 11:31:53 EDT 2006
10
10
  # Unit Tools Reap Test Extractor
11
11
  #
12
12