facets 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1922) hide show
  1. data/AUTHORS +1 -1
  2. data/CHANGES +17 -3
  3. data/MANIFEST +1301 -0
  4. data/NOTES +42 -11
  5. data/README +16 -26
  6. data/doc/History.txt +73 -0
  7. data/doc/html/api.css +79 -0
  8. data/doc/html/api/core/classes/Array.html +894 -0
  9. data/doc/html/api/core/classes/Binding.html +419 -0
  10. data/doc/html/api/core/classes/Class.html +218 -0
  11. data/doc/html/api/core/classes/Comparable.html +261 -0
  12. data/doc/html/api/core/classes/Dir.html +397 -0
  13. data/doc/html/api/core/classes/Enumerable.html +1124 -0
  14. data/doc/html/api/core/classes/Exception.html +130 -0
  15. data/doc/html/api/core/classes/File.html +456 -0
  16. data/doc/html/api/core/classes/FileTest.html +118 -0
  17. data/doc/html/api/core/classes/Float.html +133 -0
  18. data/doc/html/api/core/classes/Functor.html +173 -0
  19. data/doc/html/api/core/classes/Hash.html +1992 -0
  20. data/doc/html/api/core/classes/Indexable.html +606 -0
  21. data/doc/html/api/core/classes/Integer.html +577 -0
  22. data/doc/html/api/core/classes/Kernel.html +2135 -0
  23. data/doc/html/api/core/classes/MatchData.html +203 -0
  24. data/doc/html/api/core/classes/MissingArgument.html +97 -0
  25. data/doc/html/api/core/classes/Module.html +1605 -0
  26. data/doc/html/api/core/classes/Module/CloneExtensions.html +188 -0
  27. data/doc/html/api/core/classes/Object.html +147 -0
  28. data/doc/html/api/core/classes/Proc.html +346 -0
  29. data/doc/html/api/core/classes/Range.html +360 -0
  30. data/doc/html/api/core/classes/Regexp.html +193 -0
  31. data/doc/html/api/core/classes/Stackable.html +264 -0
  32. data/doc/html/api/core/classes/String.html +2297 -0
  33. data/doc/html/api/core/classes/String/Words.html +330 -0
  34. data/doc/html/api/core/classes/Time.html +521 -0
  35. data/doc/html/api/core/classes/UnboundMethod.html +196 -0
  36. data/doc/html/api/core/created.rid +1 -0
  37. data/doc/html/api/core/files/AUTHORS.html +256 -0
  38. data/doc/html/api/core/files/CHANGES.html +259 -0
  39. data/doc/html/api/core/files/COPYING.html +462 -0
  40. data/doc/html/api/core/files/MANIFEST.html +597 -0
  41. data/doc/html/api/core/files/NOTES.html +135 -0
  42. data/doc/html/api/core/files/README.html +412 -0
  43. data/doc/html/api/core/files/lib/facets/array/conjoin_rb.html +92 -0
  44. data/doc/html/api/core/files/lib/facets/array/delete_rb.html +92 -0
  45. data/doc/html/api/core/files/lib/facets/array/indexable_rb.html +97 -0
  46. data/doc/html/api/core/files/lib/facets/array/merge_rb.html +92 -0
  47. data/doc/html/api/core/files/lib/facets/array/not_empty_rb.html +92 -0
  48. data/doc/html/api/core/files/lib/facets/array/only_rb.html +92 -0
  49. data/doc/html/api/core/files/lib/facets/array/pad_rb.html +92 -0
  50. data/doc/html/api/core/files/lib/facets/array/product_rb.html +96 -0
  51. data/doc/html/api/core/files/lib/facets/array/rotate_rb.html +92 -0
  52. data/doc/html/api/core/files/lib/facets/array/select_rb.html +92 -0
  53. data/doc/html/api/core/files/lib/facets/array/splice_rb.html +92 -0
  54. data/doc/html/api/core/files/lib/facets/array/stackable_rb.html +97 -0
  55. data/doc/html/api/core/files/lib/facets/array/traverse_rb.html +92 -0
  56. data/doc/html/api/core/files/lib/facets/array_rb.html +129 -0
  57. data/doc/html/api/core/files/lib/facets/binding/caller_rb.html +97 -0
  58. data/doc/html/api/core/files/lib/facets/binding/defined_rb.html +96 -0
  59. data/doc/html/api/core/files/lib/facets/binding/local_variables_rb.html +96 -0
  60. data/doc/html/api/core/files/lib/facets/binding/opvars_rb.html +96 -0
  61. data/doc/html/api/core/files/lib/facets/binding/self_rb.html +96 -0
  62. data/doc/html/api/core/files/lib/facets/binding_rb.html +99 -0
  63. data/doc/html/api/core/files/lib/facets/bitmask_rb.html +92 -0
  64. data/doc/html/api/core/files/lib/facets/blank_rb.html +97 -0
  65. data/doc/html/api/core/files/lib/facets/boolean_rb.html +126 -0
  66. data/doc/html/api/core/files/lib/facets/callstack_rb.html +92 -0
  67. data/doc/html/api/core/files/lib/facets/class/descendents_rb.html +92 -0
  68. data/doc/html/api/core/files/lib/facets/class/prepend_rb.html +92 -0
  69. data/doc/html/api/core/files/lib/facets/class/subclasses_rb.html +96 -0
  70. data/doc/html/api/core/files/lib/facets/class_rb.html +97 -0
  71. data/doc/html/api/core/files/lib/facets/comparable/bound_rb.html +92 -0
  72. data/doc/html/api/core/files/lib/facets/comparable/cmp_rb.html +92 -0
  73. data/doc/html/api/core/files/lib/facets/comparable/comparable_rb.html +109 -0
  74. data/doc/html/api/core/files/lib/facets/comparable_rb.html +99 -0
  75. data/doc/html/api/core/files/lib/facets/dir/ascend_rb.html +92 -0
  76. data/doc/html/api/core/files/lib/facets/dir/descend_rb.html +96 -0
  77. data/doc/html/api/core/files/lib/facets/dir/multiglob_rb.html +92 -0
  78. data/doc/html/api/core/files/lib/facets/dir/parent_rb.html +92 -0
  79. data/doc/html/api/core/files/lib/facets/dir/recurse_rb.html +92 -0
  80. data/doc/html/api/core/files/lib/facets/dir_rb.html +102 -0
  81. data/doc/html/api/core/files/lib/facets/duplicable_rb.html +100 -0
  82. data/doc/html/api/core/files/lib/facets/enumerable/accumulate_rb.html +96 -0
  83. data/doc/html/api/core/files/lib/facets/enumerable/cluster_by_rb.html +96 -0
  84. data/doc/html/api/core/files/lib/facets/enumerable/collect_rb.html +92 -0
  85. data/doc/html/api/core/files/lib/facets/enumerable/divide_rb.html +92 -0
  86. data/doc/html/api/core/files/lib/facets/enumerable/duplicates_rb.html +92 -0
  87. data/doc/html/api/core/files/lib/facets/enumerable/each_by_rb.html +96 -0
  88. data/doc/html/api/core/files/lib/facets/enumerable/inject_rb.html +92 -0
  89. data/doc/html/api/core/files/lib/facets/enumerable/map_send_rb.html +92 -0
  90. data/doc/html/api/core/files/lib/facets/enumerable/mash_rb.html +92 -0
  91. data/doc/html/api/core/files/lib/facets/enumerable/mode_rb.html +92 -0
  92. data/doc/html/api/core/files/lib/facets/enumerable/modulate_rb.html +92 -0
  93. data/doc/html/api/core/files/lib/facets/enumerable/occur_rb.html +92 -0
  94. data/doc/html/api/core/files/lib/facets/enumerable/probability_rb.html +92 -0
  95. data/doc/html/api/core/files/lib/facets/enumerable/split_rb.html +92 -0
  96. data/doc/html/api/core/files/lib/facets/enumerable/sum_rb.html +92 -0
  97. data/doc/html/api/core/files/lib/facets/enumerable/uniq_by_rb.html +92 -0
  98. data/doc/html/api/core/files/lib/facets/enumerable_rb.html +111 -0
  99. data/doc/html/api/core/files/lib/facets/exception/detail_rb.html +92 -0
  100. data/doc/html/api/core/files/lib/facets/exception_rb.html +96 -0
  101. data/doc/html/api/core/files/lib/facets/file/null_rb.html +92 -0
  102. data/doc/html/api/core/files/lib/facets/file/read_rb.html +92 -0
  103. data/doc/html/api/core/files/lib/facets/file/rewrite_rb.html +92 -0
  104. data/doc/html/api/core/files/lib/facets/file/rootname_rb.html +92 -0
  105. data/doc/html/api/core/files/lib/facets/file/write_rb.html +92 -0
  106. data/doc/html/api/core/files/lib/facets/file_rb.html +100 -0
  107. data/doc/html/api/core/files/lib/facets/filetest/root_rb.html +92 -0
  108. data/doc/html/api/core/files/lib/facets/filetest_rb.html +97 -0
  109. data/doc/html/api/core/files/lib/facets/functor_rb.html +151 -0
  110. data/doc/html/api/core/files/lib/facets/hash/alias_rb.html +92 -0
  111. data/doc/html/api/core/files/lib/facets/hash/argumentize_rb.html +92 -0
  112. data/doc/html/api/core/files/lib/facets/hash/at_rb.html +92 -0
  113. data/doc/html/api/core/files/lib/facets/hash/autonew_rb.html +92 -0
  114. data/doc/html/api/core/files/lib/facets/hash/collate_rb.html +92 -0
  115. data/doc/html/api/core/files/lib/facets/hash/delete_rb.html +92 -0
  116. data/doc/html/api/core/files/lib/facets/hash/diff_rb.html +92 -0
  117. data/doc/html/api/core/files/lib/facets/hash/except_rb.html +92 -0
  118. data/doc/html/api/core/files/lib/facets/hash/insert_rb.html +92 -0
  119. data/doc/html/api/core/files/lib/facets/hash/inverse_rb.html +92 -0
  120. data/doc/html/api/core/files/lib/facets/hash/join_rb.html +92 -0
  121. data/doc/html/api/core/files/lib/facets/hash/keys_rb.html +92 -0
  122. data/doc/html/api/core/files/lib/facets/hash/mash_rb.html +96 -0
  123. data/doc/html/api/core/files/lib/facets/hash/merge_rb.html +92 -0
  124. data/doc/html/api/core/files/lib/facets/hash/op_rb.html +92 -0
  125. data/doc/html/api/core/files/lib/facets/hash/rekey_rb.html +96 -0
  126. data/doc/html/api/core/files/lib/facets/hash/select_rb.html +92 -0
  127. data/doc/html/api/core/files/lib/facets/hash/slice_rb.html +92 -0
  128. data/doc/html/api/core/files/lib/facets/hash/stringify_keys_rb.html +96 -0
  129. data/doc/html/api/core/files/lib/facets/hash/swap_rb.html +92 -0
  130. data/doc/html/api/core/files/lib/facets/hash/symbolize_keys_rb.html +96 -0
  131. data/doc/html/api/core/files/lib/facets/hash/to_h_rb.html +96 -0
  132. data/doc/html/api/core/files/lib/facets/hash/to_proc_rb.html +92 -0
  133. data/doc/html/api/core/files/lib/facets/hash/to_struct_rb.html +92 -0
  134. data/doc/html/api/core/files/lib/facets/hash/traverse_rb.html +92 -0
  135. data/doc/html/api/core/files/lib/facets/hash/update_rb.html +92 -0
  136. data/doc/html/api/core/files/lib/facets/hash/weave_rb.html +92 -0
  137. data/doc/html/api/core/files/lib/facets/hash/zipnew_rb.html +96 -0
  138. data/doc/html/api/core/files/lib/facets/hash_rb.html +118 -0
  139. data/doc/html/api/core/files/lib/facets/indexable_rb.html +113 -0
  140. data/doc/html/api/core/files/lib/facets/integer/factorial_rb.html +92 -0
  141. data/doc/html/api/core/files/lib/facets/integer/multiple_rb.html +92 -0
  142. data/doc/html/api/core/files/lib/facets/integer/of_rb.html +92 -0
  143. data/doc/html/api/core/files/lib/facets/integer/ordinal_rb.html +92 -0
  144. data/doc/html/api/core/files/lib/facets/integer_rb.html +100 -0
  145. data/doc/html/api/core/files/lib/facets/kernel/__dir___rb.html +92 -0
  146. data/doc/html/api/core/files/lib/facets/kernel/as_rb.html +96 -0
  147. data/doc/html/api/core/files/lib/facets/kernel/ask_rb.html +92 -0
  148. data/doc/html/api/core/files/lib/facets/kernel/attr_singleton_rb.html +92 -0
  149. data/doc/html/api/core/files/lib/facets/kernel/complete_rb.html +92 -0
  150. data/doc/html/api/core/files/lib/facets/kernel/constant_rb.html +92 -0
  151. data/doc/html/api/core/files/lib/facets/kernel/d_rb.html +92 -0
  152. data/doc/html/api/core/files/lib/facets/kernel/deep_copy_rb.html +92 -0
  153. data/doc/html/api/core/files/lib/facets/kernel/demo_rb.html +92 -0
  154. data/doc/html/api/core/files/lib/facets/kernel/ergo_rb.html +96 -0
  155. data/doc/html/api/core/files/lib/facets/kernel/here_rb.html +92 -0
  156. data/doc/html/api/core/files/lib/facets/kernel/in_rb.html +92 -0
  157. data/doc/html/api/core/files/lib/facets/kernel/instance_exec_rb.html +96 -0
  158. data/doc/html/api/core/files/lib/facets/kernel/instance_rb.html +92 -0
  159. data/doc/html/api/core/files/lib/facets/kernel/load_rb.html +92 -0
  160. data/doc/html/api/core/files/lib/facets/kernel/maybe_rb.html +92 -0
  161. data/doc/html/api/core/files/lib/facets/kernel/not_nil_rb.html +92 -0
  162. data/doc/html/api/core/files/lib/facets/kernel/object_rb.html +92 -0
  163. data/doc/html/api/core/files/lib/facets/kernel/p_rb.html +92 -0
  164. data/doc/html/api/core/files/lib/facets/kernel/populate_rb.html +92 -0
  165. data/doc/html/api/core/files/lib/facets/kernel/resc_rb.html +92 -0
  166. data/doc/html/api/core/files/lib/facets/kernel/respond_rb.html +92 -0
  167. data/doc/html/api/core/files/lib/facets/kernel/returning_rb.html +92 -0
  168. data/doc/html/api/core/files/lib/facets/kernel/silence_rb.html +92 -0
  169. data/doc/html/api/core/files/lib/facets/kernel/singleton_class_rb.html +92 -0
  170. data/doc/html/api/core/files/lib/facets/kernel/try_rb.html +92 -0
  171. data/doc/html/api/core/files/lib/facets/kernel/val_rb.html +92 -0
  172. data/doc/html/api/core/files/lib/facets/kernel/with_rb.html +92 -0
  173. data/doc/html/api/core/files/lib/facets/kernel_rb.html +115 -0
  174. data/doc/html/api/core/files/lib/facets/matchdata/match_rb.html +92 -0
  175. data/doc/html/api/core/files/lib/facets/matchdata/matchset_rb.html +92 -0
  176. data/doc/html/api/core/files/lib/facets/matchdata_rb.html +98 -0
  177. data/doc/html/api/core/files/lib/facets/metaid_rb.html +92 -0
  178. data/doc/html/api/core/files/lib/facets/module/abstract_rb.html +92 -0
  179. data/doc/html/api/core/files/lib/facets/module/alias_rb.html +92 -0
  180. data/doc/html/api/core/files/lib/facets/module/ancestor_rb.html +92 -0
  181. data/doc/html/api/core/files/lib/facets/module/can_rb.html +92 -0
  182. data/doc/html/api/core/files/lib/facets/module/class_rb.html +92 -0
  183. data/doc/html/api/core/files/lib/facets/module/clone_rb.html +92 -0
  184. data/doc/html/api/core/files/lib/facets/module/conflict_rb.html +92 -0
  185. data/doc/html/api/core/files/lib/facets/module/include_function_module_rb.html +92 -0
  186. data/doc/html/api/core/files/lib/facets/module/instance_methods_rb.html +92 -0
  187. data/doc/html/api/core/files/lib/facets/module/is_rb.html +92 -0
  188. data/doc/html/api/core/files/lib/facets/module/module_load_rb.html +92 -0
  189. data/doc/html/api/core/files/lib/facets/module/nesting_rb.html +92 -0
  190. data/doc/html/api/core/files/lib/facets/module/op_rb.html +92 -0
  191. data/doc/html/api/core/files/lib/facets/module/pathize_rb.html +92 -0
  192. data/doc/html/api/core/files/lib/facets/module/prepend_rb.html +92 -0
  193. data/doc/html/api/core/files/lib/facets/module/revise_rb.html +92 -0
  194. data/doc/html/api/core/files/lib/facets/module_rb.html +109 -0
  195. data/doc/html/api/core/files/lib/facets/nilclass_rb.html +96 -0
  196. data/doc/html/api/core/files/lib/facets/numeric/approx_rb.html +92 -0
  197. data/doc/html/api/core/files/lib/facets/numeric/distance_rb.html +92 -0
  198. data/doc/html/api/core/files/lib/facets/numeric/round_rb.html +92 -0
  199. data/doc/html/api/core/files/lib/facets/numeric_rb.html +98 -0
  200. data/doc/html/api/core/files/lib/facets/proc/bind_rb.html +92 -0
  201. data/doc/html/api/core/files/lib/facets/proc/compose_rb.html +92 -0
  202. data/doc/html/api/core/files/lib/facets/proc/curry_rb.html +92 -0
  203. data/doc/html/api/core/files/lib/facets/proc/partial_rb.html +125 -0
  204. data/doc/html/api/core/files/lib/facets/proc/to_method_rb.html +96 -0
  205. data/doc/html/api/core/files/lib/facets/proc/update_rb.html +92 -0
  206. data/doc/html/api/core/files/lib/facets/proc_rb.html +99 -0
  207. data/doc/html/api/core/files/lib/facets/range/combine_rb.html +92 -0
  208. data/doc/html/api/core/files/lib/facets/range/overlap_rb.html +92 -0
  209. data/doc/html/api/core/files/lib/facets/range/to_r_rb.html +92 -0
  210. data/doc/html/api/core/files/lib/facets/range/umbrella_rb.html +96 -0
  211. data/doc/html/api/core/files/lib/facets/range/within_rb.html +92 -0
  212. data/doc/html/api/core/files/lib/facets/range_rb.html +99 -0
  213. data/doc/html/api/core/files/lib/facets/regexp/arity_rb.html +92 -0
  214. data/doc/html/api/core/files/lib/facets/regexp/to_re_rb.html +92 -0
  215. data/doc/html/api/core/files/lib/facets/regexp_rb.html +98 -0
  216. data/doc/html/api/core/files/lib/facets/ruby_rb.html +110 -0
  217. data/doc/html/api/core/files/lib/facets/stackable_rb.html +120 -0
  218. data/doc/html/api/core/files/lib/facets/string/align_rb.html +92 -0
  219. data/doc/html/api/core/files/lib/facets/string/bracket_rb.html +92 -0
  220. data/doc/html/api/core/files/lib/facets/string/camelcase_rb.html +92 -0
  221. data/doc/html/api/core/files/lib/facets/string/capitalized_rb.html +92 -0
  222. data/doc/html/api/core/files/lib/facets/string/chomp_rb.html +92 -0
  223. data/doc/html/api/core/files/lib/facets/string/cleave_rb.html +92 -0
  224. data/doc/html/api/core/files/lib/facets/string/divide_rb.html +92 -0
  225. data/doc/html/api/core/files/lib/facets/string/fold_rb.html +92 -0
  226. data/doc/html/api/core/files/lib/facets/string/interpolate_rb.html +92 -0
  227. data/doc/html/api/core/files/lib/facets/string/line_wrap_rb.html +92 -0
  228. data/doc/html/api/core/files/lib/facets/string/mscan_rb.html +92 -0
  229. data/doc/html/api/core/files/lib/facets/string/natcmp_rb.html +92 -0
  230. data/doc/html/api/core/files/lib/facets/string/nchar_rb.html +92 -0
  231. data/doc/html/api/core/files/lib/facets/string/range_rb.html +92 -0
  232. data/doc/html/api/core/files/lib/facets/string/rewrite_rb.html +92 -0
  233. data/doc/html/api/core/files/lib/facets/string/shatter_rb.html +92 -0
  234. data/doc/html/api/core/files/lib/facets/string/snakecase_rb.html +92 -0
  235. data/doc/html/api/core/files/lib/facets/string/splice_rb.html +92 -0
  236. data/doc/html/api/core/files/lib/facets/string/stylize_rb.html +92 -0
  237. data/doc/html/api/core/files/lib/facets/string/subtract_rb.html +92 -0
  238. data/doc/html/api/core/files/lib/facets/string/tab_rb.html +92 -0
  239. data/doc/html/api/core/files/lib/facets/string/titlecase_rb.html +92 -0
  240. data/doc/html/api/core/files/lib/facets/string/to_re_rb.html +92 -0
  241. data/doc/html/api/core/files/lib/facets/string/to_time_rb.html +98 -0
  242. data/doc/html/api/core/files/lib/facets/string/underscore_rb.html +92 -0
  243. data/doc/html/api/core/files/lib/facets/string/words_rb.html +96 -0
  244. data/doc/html/api/core/files/lib/facets/string/xor_rb.html +92 -0
  245. data/doc/html/api/core/files/lib/facets/string_rb.html +109 -0
  246. data/doc/html/api/core/files/lib/facets/symbol/chomp_rb.html +92 -0
  247. data/doc/html/api/core/files/lib/facets/symbol/generate_rb.html +92 -0
  248. data/doc/html/api/core/files/lib/facets/symbol/not_rb.html +92 -0
  249. data/doc/html/api/core/files/lib/facets/symbol_rb.html +98 -0
  250. data/doc/html/api/core/files/lib/facets/time/ago_rb.html +96 -0
  251. data/doc/html/api/core/files/lib/facets/time/change_rb.html +92 -0
  252. data/doc/html/api/core/files/lib/facets/time/elapse_rb.html +92 -0
  253. data/doc/html/api/core/files/lib/facets/time/hence_rb.html +92 -0
  254. data/doc/html/api/core/files/lib/facets/time/set_rb.html +96 -0
  255. data/doc/html/api/core/files/lib/facets/time/stamp_rb.html +92 -0
  256. data/doc/html/api/core/files/lib/facets/time_rb.html +99 -0
  257. data/doc/html/api/core/files/lib/facets/to_hash_rb.html +92 -0
  258. data/doc/html/api/core/files/lib/facets/unboundmethod/arguments_rb.html +92 -0
  259. data/doc/html/api/core/files/lib/facets/unboundmethod_rb.html +97 -0
  260. data/doc/html/api/core/fr_class_index.html +74 -0
  261. data/doc/html/api/core/fr_file_index.html +269 -0
  262. data/doc/html/api/core/fr_method_index.html +463 -0
  263. data/doc/html/api/core/index.html +26 -0
  264. data/doc/html/api/core/rdoc-style.css +175 -0
  265. data/doc/html/api/more/classes/ANSICode.html +495 -0
  266. data/doc/html/api/more/classes/Advisable.html +271 -0
  267. data/doc/html/api/more/classes/Advisable/Method.html +251 -0
  268. data/doc/html/api/more/classes/Archive.html +89 -0
  269. data/doc/html/api/more/classes/Archive/Tar.html +89 -0
  270. data/doc/html/api/more/classes/Archive/Tar/Minitar.html +470 -0
  271. data/doc/html/api/more/classes/Archive/Tar/Minitar/Input.html +380 -0
  272. data/doc/html/api/more/classes/Archive/Tar/Minitar/Output.html +218 -0
  273. data/doc/html/api/more/classes/Archive/Tar/Minitar/Reader.html +285 -0
  274. data/doc/html/api/more/classes/Archive/Tar/Minitar/Writer.html +419 -0
  275. data/doc/html/api/more/classes/Association.html +307 -0
  276. data/doc/html/api/more/classes/Association/Kernel.html +134 -0
  277. data/doc/html/api/more/classes/Autoarray.html +168 -0
  278. data/doc/html/api/more/classes/BBCode.html +534 -0
  279. data/doc/html/api/more/classes/BasicObject.html +260 -0
  280. data/doc/html/api/more/classes/Behavior.html +145 -0
  281. data/doc/html/api/more/classes/BiCrypt.html +543 -0
  282. data/doc/html/api/more/classes/BigDuration.html +327 -0
  283. data/doc/html/api/more/classes/BinReadable.html +536 -0
  284. data/doc/html/api/more/classes/BinReadable/ByteOrder.html +225 -0
  285. data/doc/html/api/more/classes/Buildable.html +154 -0
  286. data/doc/html/api/more/classes/BuildingBlock.html +362 -0
  287. data/doc/html/api/more/classes/CGI.html +187 -0
  288. data/doc/html/api/more/classes/CLI.html +108 -0
  289. data/doc/html/api/more/classes/CLI/Arguments.html +709 -0
  290. data/doc/html/api/more/classes/CLI/Command.html +436 -0
  291. data/doc/html/api/more/classes/CLI/Command/UniversalOptions.html +91 -0
  292. data/doc/html/api/more/classes/CLI/NoCommandError.html +113 -0
  293. data/doc/html/api/more/classes/CLI/NoOptionError.html +120 -0
  294. data/doc/html/api/more/classes/CacheDecorator.html +224 -0
  295. data/doc/html/api/more/classes/Capsule.html +410 -0
  296. data/doc/html/api/more/classes/Capsule/MissingFile.html +96 -0
  297. data/doc/html/api/more/classes/Chain.html +208 -0
  298. data/doc/html/api/more/classes/Cloneable.html +131 -0
  299. data/doc/html/api/more/classes/Config.html +137 -0
  300. data/doc/html/api/more/classes/ConsoleUtils.html +240 -0
  301. data/doc/html/api/more/classes/Continuation.html +115 -0
  302. data/doc/html/api/more/classes/Coroutine.html +286 -0
  303. data/doc/html/api/more/classes/Crypt.html +277 -0
  304. data/doc/html/api/more/classes/CssFilter.html +473 -0
  305. data/doc/html/api/more/classes/CssTree.html +149 -0
  306. data/doc/html/api/more/classes/Date.html +252 -0
  307. data/doc/html/api/more/classes/Dictionary.html +1247 -0
  308. data/doc/html/api/more/classes/Downloader.html +514 -0
  309. data/doc/html/api/more/classes/Duration.html +769 -0
  310. data/doc/html/api/more/classes/Enumerable.html +340 -0
  311. data/doc/html/api/more/classes/Enumerable/Elementor.html +172 -0
  312. data/doc/html/api/more/classes/Enumerable/Enumerator.html +118 -0
  313. data/doc/html/api/more/classes/EnumerablePass.html +216 -0
  314. data/doc/html/api/more/classes/Equatable.html +190 -0
  315. data/doc/html/api/more/classes/EventHook.html +176 -0
  316. data/doc/html/api/more/classes/Expirable.html +197 -0
  317. data/doc/html/api/more/classes/File.html +130 -0
  318. data/doc/html/api/more/classes/FileList.html +982 -0
  319. data/doc/html/api/more/classes/FileShell.html +774 -0
  320. data/doc/html/api/more/classes/FileUtils.html +454 -0
  321. data/doc/html/api/more/classes/Fileable.html +181 -0
  322. data/doc/html/api/more/classes/Fileable/DSL.html +306 -0
  323. data/doc/html/api/more/classes/GetoptLong.html +120 -0
  324. data/doc/html/api/more/classes/GetoptLong/DSL.html +210 -0
  325. data/doc/html/api/more/classes/Hash2Xml.html +177 -0
  326. data/doc/html/api/more/classes/HtmlFilter.html +850 -0
  327. data/doc/html/api/more/classes/IORedirect.html +222 -0
  328. data/doc/html/api/more/classes/InfinityClass.html +452 -0
  329. data/doc/html/api/more/classes/InfinityClass/Numeric.html +197 -0
  330. data/doc/html/api/more/classes/InstanceReflection.html +129 -0
  331. data/doc/html/api/more/classes/Instantiable.html +142 -0
  332. data/doc/html/api/more/classes/Instantise.html +162 -0
  333. data/doc/html/api/more/classes/Interval.html +879 -0
  334. data/doc/html/api/more/classes/It.html +207 -0
  335. data/doc/html/api/more/classes/LRUCache.html +464 -0
  336. data/doc/html/api/more/classes/LRUCache/Item.html +114 -0
  337. data/doc/html/api/more/classes/LRUCache/Sentinel.html +100 -0
  338. data/doc/html/api/more/classes/Lazy.html +96 -0
  339. data/doc/html/api/more/classes/Lazy/Future.html +100 -0
  340. data/doc/html/api/more/classes/Lazy/Promise.html +112 -0
  341. data/doc/html/api/more/classes/Lazy/PromiseSafe.html +99 -0
  342. data/doc/html/api/more/classes/LinkedList.html +494 -0
  343. data/doc/html/api/more/classes/LinkedList/Node.html +151 -0
  344. data/doc/html/api/more/classes/Logger.html +231 -0
  345. data/doc/html/api/more/classes/Logger/Ansicolor.html +279 -0
  346. data/doc/html/api/more/classes/Logger/LogDevice.html +123 -0
  347. data/doc/html/api/more/classes/Module.html +1410 -0
  348. data/doc/html/api/more/classes/Multiton.html +207 -0
  349. data/doc/html/api/more/classes/Multiton/Inclusive.html +128 -0
  350. data/doc/html/api/more/classes/Multiton/MetaMethods.html +270 -0
  351. data/doc/html/api/more/classes/NackClass.html +99 -0
  352. data/doc/html/api/more/classes/Net.html +88 -0
  353. data/doc/html/api/more/classes/Net/SMTP.html +259 -0
  354. data/doc/html/api/more/classes/NilClass.html +227 -0
  355. data/doc/html/api/more/classes/NullClass.html +204 -0
  356. data/doc/html/api/more/classes/Numeric.html +1188 -0
  357. data/doc/html/api/more/classes/ObjectReflection.html +145 -0
  358. data/doc/html/api/more/classes/OpEsc.html +138 -0
  359. data/doc/html/api/more/classes/OpenCascade.html +144 -0
  360. data/doc/html/api/more/classes/OpenCollection.html +140 -0
  361. data/doc/html/api/more/classes/OpenHash.html +158 -0
  362. data/doc/html/api/more/classes/OpenObject.html +604 -0
  363. data/doc/html/api/more/classes/OpenStruct.html +413 -0
  364. data/doc/html/api/more/classes/PQueue.html +734 -0
  365. data/doc/html/api/more/classes/PathList.html +161 -0
  366. data/doc/html/api/more/classes/PathList/Finder.html +137 -0
  367. data/doc/html/api/more/classes/Pathname.html +178 -0
  368. data/doc/html/api/more/classes/Pool.html +206 -0
  369. data/doc/html/api/more/classes/Proc.html +138 -0
  370. data/doc/html/api/more/classes/ProgressBar.html +683 -0
  371. data/doc/html/api/more/classes/Prototype.html +245 -0
  372. data/doc/html/api/more/classes/RWDelegator.html +196 -0
  373. data/doc/html/api/more/classes/Random.html +164 -0
  374. data/doc/html/api/more/classes/Random/Array.html +341 -0
  375. data/doc/html/api/more/classes/Random/Hash.html +380 -0
  376. data/doc/html/api/more/classes/Random/Object.html +121 -0
  377. data/doc/html/api/more/classes/Random/String.html +301 -0
  378. data/doc/html/api/more/classes/Random/String/Self.html +155 -0
  379. data/doc/html/api/more/classes/Recorder.html +205 -0
  380. data/doc/html/api/more/classes/RecursiveDependency.html +92 -0
  381. data/doc/html/api/more/classes/Reference.html +198 -0
  382. data/doc/html/api/more/classes/Registerable.html +159 -0
  383. data/doc/html/api/more/classes/Semaphore.html +262 -0
  384. data/doc/html/api/more/classes/Set.html +119 -0
  385. data/doc/html/api/more/classes/Settings.html +290 -0
  386. data/doc/html/api/more/classes/Settings/Setting.html +225 -0
  387. data/doc/html/api/more/classes/Settings/SettingCollection.html +144 -0
  388. data/doc/html/api/more/classes/Shellwords.html +113 -0
  389. data/doc/html/api/more/classes/SimpleStringIO.html +137 -0
  390. data/doc/html/api/more/classes/Snapshot.html +196 -0
  391. data/doc/html/api/more/classes/Snapshot/ValueHolder.html +165 -0
  392. data/doc/html/api/more/classes/String/Style.html +695 -0
  393. data/doc/html/api/more/classes/Struct.html +132 -0
  394. data/doc/html/api/more/classes/SyncArray.html +129 -0
  395. data/doc/html/api/more/classes/SyncHash.html +158 -0
  396. data/doc/html/api/more/classes/SyncHash/Delegator.html +213 -0
  397. data/doc/html/api/more/classes/SyncHash/Inheritor.html +213 -0
  398. data/doc/html/api/more/classes/System.html +1119 -0
  399. data/doc/html/api/more/classes/Timer.html +466 -0
  400. data/doc/html/api/more/classes/Timer/Dummy.html +141 -0
  401. data/doc/html/api/more/classes/TracePoint.html +455 -0
  402. data/doc/html/api/more/classes/Tuple.html +902 -0
  403. data/doc/html/api/more/classes/TypeCast.html +158 -0
  404. data/doc/html/api/more/classes/TypeCast/Class.html +129 -0
  405. data/doc/html/api/more/classes/TypeCast/Object.html +119 -0
  406. data/doc/html/api/more/classes/TypeCastException.html +96 -0
  407. data/doc/html/api/more/classes/URI.html +455 -0
  408. data/doc/html/api/more/classes/URI/Hash.html +107 -0
  409. data/doc/html/api/more/classes/URI/Kernel.html +124 -0
  410. data/doc/html/api/more/classes/Uninheritable.html +122 -0
  411. data/doc/html/api/more/classes/UploadUtils.html +499 -0
  412. data/doc/html/api/more/classes/VersionNumber.html +384 -0
  413. data/doc/html/api/more/classes/Weekdays.html +248 -0
  414. data/doc/html/api/more/classes/XOXO.html +252 -0
  415. data/doc/html/api/more/classes/ZipUtils.html +437 -0
  416. data/doc/html/api/more/classes/ZipUtils/DryRun.html +225 -0
  417. data/doc/html/api/more/classes/ZipUtils/NoWrite.html +225 -0
  418. data/doc/html/api/more/classes/ZipUtils/Verbose.html +225 -0
  419. data/doc/html/api/more/created.rid +1 -0
  420. data/doc/html/api/more/files/AUTHORS.html +257 -0
  421. data/doc/html/api/more/files/CHANGES.html +258 -0
  422. data/doc/html/api/more/files/COPYING.html +462 -0
  423. data/doc/html/api/more/files/MANIFEST.html +597 -0
  424. data/doc/html/api/more/files/NOTES.html +135 -0
  425. data/doc/html/api/more/files/README.html +411 -0
  426. data/doc/html/api/more/files/lib/facets/1stclassmethod_rb.html +181 -0
  427. data/doc/html/api/more/files/lib/facets/advisable_rb.html +124 -0
  428. data/doc/html/api/more/files/lib/facets/annotations_rb.html +179 -0
  429. data/doc/html/api/more/files/lib/facets/ansicode_rb.html +199 -0
  430. data/doc/html/api/more/files/lib/facets/arguments_rb.html +142 -0
  431. data/doc/html/api/more/files/lib/facets/association_rb.html +158 -0
  432. data/doc/html/api/more/files/lib/facets/attr_rb.html +92 -0
  433. data/doc/html/api/more/files/lib/facets/autoarray_rb.html +125 -0
  434. data/doc/html/api/more/files/lib/facets/autoreload_rb.html +134 -0
  435. data/doc/html/api/more/files/lib/facets/basicobject_rb.html +190 -0
  436. data/doc/html/api/more/files/lib/facets/bbcode_rb.html +138 -0
  437. data/doc/html/api/more/files/lib/facets/behavior_rb.html +125 -0
  438. data/doc/html/api/more/files/lib/facets/bicrypt_rb.html +124 -0
  439. data/doc/html/api/more/files/lib/facets/binreadable_rb.html +141 -0
  440. data/doc/html/api/more/files/lib/facets/buildable_rb.html +228 -0
  441. data/doc/html/api/more/files/lib/facets/bytes_rb.html +170 -0
  442. data/doc/html/api/more/files/lib/facets/cachedecorator_rb.html +178 -0
  443. data/doc/html/api/more/files/lib/facets/capsule_rb.html +143 -0
  444. data/doc/html/api/more/files/lib/facets/cattr_rb.html +125 -0
  445. data/doc/html/api/more/files/lib/facets/cgi_rb.html +111 -0
  446. data/doc/html/api/more/files/lib/facets/chain_rb.html +114 -0
  447. data/doc/html/api/more/files/lib/facets/class_extension_rb.html +155 -0
  448. data/doc/html/api/more/files/lib/facets/classmethods_rb.html +213 -0
  449. data/doc/html/api/more/files/lib/facets/cloneable_rb.html +134 -0
  450. data/doc/html/api/more/files/lib/facets/command_rb.html +170 -0
  451. data/doc/html/api/more/files/lib/facets/consoleutils_rb.html +109 -0
  452. data/doc/html/api/more/files/lib/facets/continuation_rb.html +145 -0
  453. data/doc/html/api/more/files/lib/facets/core_rb.html +133 -0
  454. data/doc/html/api/more/files/lib/facets/coroutine_rb.html +163 -0
  455. data/doc/html/api/more/files/lib/facets/crypt_rb.html +141 -0
  456. data/doc/html/api/more/files/lib/facets/cssfilter_rb.html +120 -0
  457. data/doc/html/api/more/files/lib/facets/daemonize_rb.html +118 -0
  458. data/doc/html/api/more/files/lib/facets/date_rb.html +121 -0
  459. data/doc/html/api/more/files/lib/facets/dependency_rb.html +158 -0
  460. data/doc/html/api/more/files/lib/facets/dictionary_rb.html +198 -0
  461. data/doc/html/api/more/files/lib/facets/downloader_rb.html +137 -0
  462. data/doc/html/api/more/files/lib/facets/duration_rb.html +132 -0
  463. data/doc/html/api/more/files/lib/facets/elementor_rb.html +148 -0
  464. data/doc/html/api/more/files/lib/facets/elementwise_rb.html +96 -0
  465. data/doc/html/api/more/files/lib/facets/enumerablepass_rb.html +153 -0
  466. data/doc/html/api/more/files/lib/facets/equatable_rb.html +145 -0
  467. data/doc/html/api/more/files/lib/facets/eventhook_rb.html +141 -0
  468. data/doc/html/api/more/files/lib/facets/expirable_rb.html +116 -0
  469. data/doc/html/api/more/files/lib/facets/fileable_rb.html +138 -0
  470. data/doc/html/api/more/files/lib/facets/filelist_rb.html +164 -0
  471. data/doc/html/api/more/files/lib/facets/fileshell_rb.html +124 -0
  472. data/doc/html/api/more/files/lib/facets/fileutils/head_rb.html +96 -0
  473. data/doc/html/api/more/files/lib/facets/fileutils/safe_ln_rb.html +96 -0
  474. data/doc/html/api/more/files/lib/facets/fileutils/slice_rb.html +96 -0
  475. data/doc/html/api/more/files/lib/facets/fileutils/tail_rb.html +96 -0
  476. data/doc/html/api/more/files/lib/facets/fileutils/wc_rb.html +96 -0
  477. data/doc/html/api/more/files/lib/facets/fileutils/whereis_rb.html +96 -0
  478. data/doc/html/api/more/files/lib/facets/fileutils/which_rb.html +96 -0
  479. data/doc/html/api/more/files/lib/facets/fileutils_rb.html +131 -0
  480. data/doc/html/api/more/files/lib/facets/float/round_rb.html +96 -0
  481. data/doc/html/api/more/files/lib/facets/getoptlong_rb.html +135 -0
  482. data/doc/html/api/more/files/lib/facets/heap_rb.html +132 -0
  483. data/doc/html/api/more/files/lib/facets/htmlfilter_rb.html +153 -0
  484. data/doc/html/api/more/files/lib/facets/infinity_rb.html +153 -0
  485. data/doc/html/api/more/files/lib/facets/inheritor_rb.html +149 -0
  486. data/doc/html/api/more/files/lib/facets/instantiable_rb.html +119 -0
  487. data/doc/html/api/more/files/lib/facets/instantise_rb.html +145 -0
  488. data/doc/html/api/more/files/lib/facets/interval_rb.html +163 -0
  489. data/doc/html/api/more/files/lib/facets/ioredirect_rb.html +133 -0
  490. data/doc/html/api/more/files/lib/facets/iteration_rb.html +94 -0
  491. data/doc/html/api/more/files/lib/facets/lazy_rb.html +120 -0
  492. data/doc/html/api/more/files/lib/facets/linkedlist_rb.html +159 -0
  493. data/doc/html/api/more/files/lib/facets/logger_rb.html +142 -0
  494. data/doc/html/api/more/files/lib/facets/lrucache_rb.html +129 -0
  495. data/doc/html/api/more/files/lib/facets/main_rb.html +126 -0
  496. data/doc/html/api/more/files/lib/facets/memoize_rb.html +163 -0
  497. data/doc/html/api/more/files/lib/facets/meta_rb.html +96 -0
  498. data/doc/html/api/more/files/lib/facets/methodspace_rb.html +138 -0
  499. data/doc/html/api/more/files/lib/facets/minitar_rb.html +203 -0
  500. data/doc/html/api/more/files/lib/facets/multipliers_rb.html +149 -0
  501. data/doc/html/api/more/files/lib/facets/multiton_rb.html +187 -0
  502. data/doc/html/api/more/files/lib/facets/nackclass_rb.html +121 -0
  503. data/doc/html/api/more/files/lib/facets/net/smtp_tls_rb.html +143 -0
  504. data/doc/html/api/more/files/lib/facets/nilstatus_rb.html +92 -0
  505. data/doc/html/api/more/files/lib/facets/nullclass_rb.html +122 -0
  506. data/doc/html/api/more/files/lib/facets/opencascade_rb.html +156 -0
  507. data/doc/html/api/more/files/lib/facets/opencollection_rb.html +123 -0
  508. data/doc/html/api/more/files/lib/facets/openhash_rb.html +107 -0
  509. data/doc/html/api/more/files/lib/facets/openobject_rb.html +167 -0
  510. data/doc/html/api/more/files/lib/facets/opesc_rb.html +94 -0
  511. data/doc/html/api/more/files/lib/facets/orderedhash_rb.html +142 -0
  512. data/doc/html/api/more/files/lib/facets/ostruct_rb.html +135 -0
  513. data/doc/html/api/more/files/lib/facets/overload_rb.html +119 -0
  514. data/doc/html/api/more/files/lib/facets/pathlist_rb.html +133 -0
  515. data/doc/html/api/more/files/lib/facets/pathname_rb.html +155 -0
  516. data/doc/html/api/more/files/lib/facets/pool_rb.html +131 -0
  517. data/doc/html/api/more/files/lib/facets/pqueue_rb.html +129 -0
  518. data/doc/html/api/more/files/lib/facets/progressbar_rb.html +126 -0
  519. data/doc/html/api/more/files/lib/facets/prototype_rb.html +102 -0
  520. data/doc/html/api/more/files/lib/facets/random_rb.html +148 -0
  521. data/doc/html/api/more/files/lib/facets/rbconfig_rb.html +124 -0
  522. data/doc/html/api/more/files/lib/facets/rbsystem_rb.html +143 -0
  523. data/doc/html/api/more/files/lib/facets/recorder_rb.html +154 -0
  524. data/doc/html/api/more/files/lib/facets/reference_rb.html +130 -0
  525. data/doc/html/api/more/files/lib/facets/reflection_rb.html +119 -0
  526. data/doc/html/api/more/files/lib/facets/registerable_rb.html +98 -0
  527. data/doc/html/api/more/files/lib/facets/rwdelegator_rb.html +122 -0
  528. data/doc/html/api/more/files/lib/facets/semaphore_rb.html +120 -0
  529. data/doc/html/api/more/files/lib/facets/set_rb.html +96 -0
  530. data/doc/html/api/more/files/lib/facets/settings_rb.html +141 -0
  531. data/doc/html/api/more/files/lib/facets/shellwords_rb.html +124 -0
  532. data/doc/html/api/more/files/lib/facets/snapshot_rb.html +177 -0
  533. data/doc/html/api/more/files/lib/facets/style_rb.html +96 -0
  534. data/doc/html/api/more/files/lib/facets/succ_rb.html +92 -0
  535. data/doc/html/api/more/files/lib/facets/syncarray_rb.html +125 -0
  536. data/doc/html/api/more/files/lib/facets/synchash_rb.html +138 -0
  537. data/doc/html/api/more/files/lib/facets/thread_rb.html +132 -0
  538. data/doc/html/api/more/files/lib/facets/timer_rb.html +174 -0
  539. data/doc/html/api/more/files/lib/facets/times_rb.html +163 -0
  540. data/doc/html/api/more/files/lib/facets/tracepoint_rb.html +167 -0
  541. data/doc/html/api/more/files/lib/facets/tuple_rb.html +160 -0
  542. data/doc/html/api/more/files/lib/facets/typecast_rb.html +214 -0
  543. data/doc/html/api/more/files/lib/facets/uninheritable_rb.html +129 -0
  544. data/doc/html/api/more/files/lib/facets/uploadutils_rb.html +176 -0
  545. data/doc/html/api/more/files/lib/facets/uri_rb.html +125 -0
  546. data/doc/html/api/more/files/lib/facets/version_rb.html +132 -0
  547. data/doc/html/api/more/files/lib/facets/xmlhash_rb.html +97 -0
  548. data/doc/html/api/more/files/lib/facets/xoxo_rb.html +136 -0
  549. data/doc/html/api/more/files/lib/facets/yaml_rb.html +145 -0
  550. data/doc/html/api/more/files/lib/facets/ziputils_rb.html +133 -0
  551. data/doc/html/api/more/fr_class_index.html +200 -0
  552. data/doc/html/api/more/fr_file_index.html +177 -0
  553. data/doc/html/api/more/fr_method_index.html +1181 -0
  554. data/doc/html/api/more/index.html +26 -0
  555. data/doc/html/api/more/rdoc-style.css +175 -0
  556. data/doc/html/authors.html +178 -0
  557. data/doc/html/changes.html +177 -0
  558. data/doc/html/copying.html +384 -0
  559. data/doc/html/img/APIdocs.png +0 -0
  560. data/doc/html/img/RubyFacets.png +0 -0
  561. data/doc/html/img/bomb.gif +0 -0
  562. data/doc/html/img/develop.gif +0 -0
  563. data/doc/html/img/email.gif +0 -0
  564. data/doc/html/img/fade_blue_down.gif +0 -0
  565. data/doc/html/img/fade_red_down.png +0 -0
  566. data/doc/html/img/folder.gif +0 -0
  567. data/doc/html/img/home.gif +0 -0
  568. data/doc/html/img/menu_bkg.png +0 -0
  569. data/doc/html/img/quill.gif +0 -0
  570. data/doc/html/img/ruby-h.png +0 -0
  571. data/doc/html/img/ruby.gif +0 -0
  572. data/doc/html/img/ruby.png +0 -0
  573. data/doc/html/img/source.gif +0 -0
  574. data/doc/html/index.html +16 -0
  575. data/doc/html/js/doclist.js +20 -0
  576. data/doc/html/js/jquery.js +3408 -0
  577. data/doc/html/list.json +1 -0
  578. data/doc/html/manifest.html +519 -0
  579. data/doc/html/menu.html +70 -0
  580. data/doc/html/notes.html +57 -0
  581. data/doc/html/rakefile.html +45 -0
  582. data/doc/html/readme.html +327 -0
  583. data/doc/html/style-rdoc.css +208 -0
  584. data/lib/facets.rb +2 -0
  585. data/lib/facets/1stclassmethod.rb +140 -0
  586. data/lib/facets/advisable.rb +162 -0
  587. data/lib/facets/annotations.rb +300 -0
  588. data/lib/facets/ansicode.rb +320 -0
  589. data/lib/facets/arguments.rb +349 -0
  590. data/lib/facets/array.rb +24 -0
  591. data/lib/facets/array/conjoin.rb +58 -0
  592. data/lib/facets/array/delete.rb +61 -0
  593. data/lib/facets/array/indexable.rb +73 -0
  594. data/lib/facets/array/merge.rb +21 -0
  595. data/lib/facets/array/not_empty.rb +13 -0
  596. data/lib/facets/array/only.rb +21 -0
  597. data/lib/facets/array/pad.rb +41 -0
  598. data/lib/facets/array/product.rb +15 -0
  599. data/lib/facets/array/rotate.rb +42 -0
  600. data/lib/facets/array/select.rb +16 -0
  601. data/lib/facets/array/splice.rb +30 -0
  602. data/lib/facets/array/stackable.rb +33 -0
  603. data/lib/facets/array/traverse.rb +22 -0
  604. data/lib/facets/association.rb +194 -0
  605. data/lib/{core/facets/module → facets}/attr.rb +0 -0
  606. data/lib/facets/autoarray.rb +62 -0
  607. data/lib/facets/autoreload.rb +150 -0
  608. data/lib/facets/basicobject.rb +263 -0
  609. data/lib/facets/bbcode.rb +397 -0
  610. data/lib/facets/behavior.rb +104 -0
  611. data/lib/facets/bicrypt.rb +265 -0
  612. data/lib/facets/binding.rb +6 -0
  613. data/lib/facets/binding/caller.rb +54 -0
  614. data/lib/facets/binding/defined.rb +13 -0
  615. data/lib/facets/binding/local_variables.rb +15 -0
  616. data/lib/facets/binding/opvars.rb +24 -0
  617. data/lib/facets/binding/self.rb +12 -0
  618. data/lib/facets/binreadable.rb +221 -0
  619. data/lib/{core/facets/integer → facets}/bitmask.rb +0 -0
  620. data/lib/facets/blank.rb +60 -0
  621. data/lib/facets/boolean.rb +156 -0
  622. data/lib/facets/buildable.rb +344 -0
  623. data/lib/facets/bytes.rb +173 -0
  624. data/lib/facets/cachedecorator.rb +117 -0
  625. data/lib/facets/callstack.rb +52 -0
  626. data/lib/facets/capsule.rb +258 -0
  627. data/lib/facets/cattr.rb +141 -0
  628. data/lib/facets/cgi.rb +50 -0
  629. data/lib/facets/chain.rb +58 -0
  630. data/lib/facets/class.rb +4 -0
  631. data/lib/facets/class/descendents.rb +28 -0
  632. data/lib/facets/class/prepend.rb +50 -0
  633. data/lib/facets/class/subclasses.rb +2 -0
  634. data/lib/facets/class_extension.rb +114 -0
  635. data/lib/facets/classmethods.rb +199 -0
  636. data/lib/facets/cloneable.rb +76 -0
  637. data/lib/facets/command.rb +422 -0
  638. data/lib/facets/comparable.rb +6 -0
  639. data/lib/facets/comparable/bound.rb +65 -0
  640. data/lib/facets/comparable/cmp.rb +38 -0
  641. data/lib/facets/comparable/comparable.rb +42 -0
  642. data/lib/facets/consoleutils.rb +113 -0
  643. data/lib/facets/continuation.rb +57 -0
  644. data/lib/facets/core.rb +50 -0
  645. data/lib/facets/coroutine.rb +158 -0
  646. data/lib/facets/crypt.rb +166 -0
  647. data/lib/facets/cssfilter.rb +254 -0
  648. data/lib/facets/daemonize.rb +44 -0
  649. data/lib/facets/date.rb +78 -0
  650. data/lib/facets/dependency.rb +151 -0
  651. data/lib/facets/dictionary.rb +474 -0
  652. data/lib/facets/dir.rb +9 -0
  653. data/lib/facets/dir/ascend.rb +59 -0
  654. data/lib/facets/dir/descend.rb +1 -0
  655. data/lib/{core/facets → facets}/dir/multiglob.rb +0 -0
  656. data/lib/facets/dir/parent.rb +13 -0
  657. data/lib/facets/dir/recurse.rb +29 -0
  658. data/lib/facets/downloader.rb +281 -0
  659. data/lib/facets/duplicable.rb +43 -0
  660. data/lib/facets/duration.rb +540 -0
  661. data/lib/facets/elementor.rb +133 -0
  662. data/lib/facets/elementwise.rb +61 -0
  663. data/lib/facets/enumerable.rb +19 -0
  664. data/lib/facets/enumerable/accumulate.rb +21 -0
  665. data/lib/facets/enumerable/cluster_by.rb +21 -0
  666. data/lib/facets/enumerable/collect.rb +54 -0
  667. data/lib/facets/enumerable/divide.rb +33 -0
  668. data/lib/facets/enumerable/duplicates.rb +38 -0
  669. data/lib/facets/enumerable/each_by.rb +33 -0
  670. data/lib/facets/enumerable/inject.rb +31 -0
  671. data/lib/facets/enumerable/map_send.rb +12 -0
  672. data/lib/facets/enumerable/mash.rb +32 -0
  673. data/lib/facets/enumerable/mode.rb +15 -0
  674. data/lib/facets/enumerable/modulate.rb +22 -0
  675. data/lib/facets/enumerable/occur.rb +38 -0
  676. data/lib/facets/enumerable/probability.rb +133 -0
  677. data/lib/facets/enumerable/split.rb +23 -0
  678. data/lib/facets/enumerable/sum.rb +16 -0
  679. data/lib/facets/enumerable/uniq_by.rb +18 -0
  680. data/lib/facets/enumerablepass.rb +217 -0
  681. data/lib/facets/equatable.rb +120 -0
  682. data/lib/facets/eventhook.rb +132 -0
  683. data/lib/{core/facets → facets}/exception.rb +0 -0
  684. data/lib/facets/exception/detail.rb +19 -0
  685. data/lib/facets/expirable.rb +82 -0
  686. data/lib/facets/file.rb +7 -0
  687. data/lib/facets/file/null.rb +21 -0
  688. data/lib/facets/file/read.rb +41 -0
  689. data/lib/facets/file/rewrite.rb +54 -0
  690. data/lib/facets/file/rootname.rb +23 -0
  691. data/lib/facets/file/write.rb +64 -0
  692. data/lib/facets/fileable.rb +162 -0
  693. data/lib/facets/filelist.rb +499 -0
  694. data/lib/facets/fileshell.rb +200 -0
  695. data/lib/facets/filetest.rb +3 -0
  696. data/lib/facets/filetest/root.rb +17 -0
  697. data/lib/facets/fileutils.rb +27 -0
  698. data/lib/facets/fileutils/head.rb +1 -0
  699. data/lib/facets/fileutils/safe_ln.rb +28 -0
  700. data/lib/facets/fileutils/slice.rb +141 -0
  701. data/lib/facets/fileutils/tail.rb +1 -0
  702. data/lib/facets/fileutils/wc.rb +114 -0
  703. data/lib/facets/fileutils/whereis.rb +63 -0
  704. data/lib/facets/fileutils/which.rb +101 -0
  705. data/lib/facets/float/round.rb +36 -0
  706. data/lib/facets/functor.rb +77 -0
  707. data/lib/facets/getoptlong.rb +71 -0
  708. data/lib/facets/hash.rb +25 -0
  709. data/lib/facets/hash/alias.rb +31 -0
  710. data/lib/facets/hash/argumentize.rb +21 -0
  711. data/lib/facets/hash/at.rb +8 -0
  712. data/lib/facets/hash/autonew.rb +42 -0
  713. data/lib/facets/hash/collate.rb +45 -0
  714. data/lib/facets/hash/delete.rb +47 -0
  715. data/lib/facets/hash/diff.rb +11 -0
  716. data/lib/{core/facets → facets}/hash/except.rb +0 -0
  717. data/lib/facets/hash/insert.rb +19 -0
  718. data/lib/facets/hash/inverse.rb +27 -0
  719. data/lib/facets/hash/join.rb +14 -0
  720. data/lib/facets/hash/keys.rb +45 -0
  721. data/lib/facets/hash/mash.rb +18 -0
  722. data/lib/facets/hash/merge.rb +74 -0
  723. data/lib/facets/hash/op.rb +85 -0
  724. data/lib/facets/hash/rekey.rb +59 -0
  725. data/lib/{core/facets → facets}/hash/select.rb +0 -0
  726. data/lib/{core/facets → facets}/hash/slice.rb +0 -0
  727. data/lib/facets/hash/stringify_keys.rb +1 -0
  728. data/lib/facets/hash/swap.rb +17 -0
  729. data/lib/facets/hash/symbolize_keys.rb +95 -0
  730. data/lib/facets/hash/to_h.rb +1 -0
  731. data/lib/facets/hash/to_proc.rb +41 -0
  732. data/lib/facets/hash/to_struct.rb +17 -0
  733. data/lib/facets/hash/traverse.rb +41 -0
  734. data/lib/facets/hash/update.rb +75 -0
  735. data/lib/{core/facets → facets}/hash/weave.rb +0 -0
  736. data/lib/facets/hash/zipnew.rb +2 -0
  737. data/lib/facets/heap.rb +22 -0
  738. data/lib/facets/htmlfilter.rb +595 -0
  739. data/lib/facets/indexable.rb +242 -0
  740. data/lib/facets/infinity.rb +193 -0
  741. data/lib/facets/inheritor.rb +126 -0
  742. data/lib/facets/instantiable.rb +47 -0
  743. data/lib/facets/instantise.rb +92 -0
  744. data/lib/facets/integer.rb +7 -0
  745. data/lib/facets/integer/factorial.rb +30 -0
  746. data/lib/facets/integer/multiple.rb +15 -0
  747. data/lib/facets/integer/of.rb +18 -0
  748. data/lib/facets/integer/ordinal.rb +24 -0
  749. data/lib/facets/interval.rb +282 -0
  750. data/lib/facets/ioredirect.rb +130 -0
  751. data/lib/facets/iteration.rb +65 -0
  752. data/lib/facets/kernel.rb +22 -0
  753. data/lib/facets/kernel/__dir__.rb +12 -0
  754. data/lib/facets/kernel/as.rb +100 -0
  755. data/lib/facets/kernel/ask.rb +27 -0
  756. data/lib/facets/kernel/attr_singleton.rb +62 -0
  757. data/lib/facets/kernel/complete.rb +18 -0
  758. data/lib/{core/facets → facets}/kernel/constant.rb +0 -0
  759. data/lib/facets/kernel/d.rb +26 -0
  760. data/lib/facets/kernel/deep_copy.rb +13 -0
  761. data/lib/facets/kernel/demo.rb +23 -0
  762. data/lib/facets/kernel/ergo.rb +42 -0
  763. data/lib/facets/kernel/here.rb +12 -0
  764. data/lib/facets/kernel/in.rb +13 -0
  765. data/lib/facets/kernel/instance.rb +73 -0
  766. data/lib/facets/kernel/instance_exec.rb +19 -0
  767. data/lib/facets/kernel/load.rb +41 -0
  768. data/lib/facets/kernel/maybe.rb +18 -0
  769. data/lib/facets/kernel/not_nil.rb +17 -0
  770. data/lib/facets/kernel/object.rb +53 -0
  771. data/lib/facets/kernel/p.rb +24 -0
  772. data/lib/facets/kernel/populate.rb +73 -0
  773. data/lib/facets/kernel/resc.rb +16 -0
  774. data/lib/facets/kernel/respond.rb +23 -0
  775. data/lib/facets/kernel/returning.rb +23 -0
  776. data/lib/facets/kernel/silence.rb +69 -0
  777. data/lib/facets/kernel/singleton_class.rb +14 -0
  778. data/lib/facets/kernel/try.rb +23 -0
  779. data/lib/facets/kernel/val.rb +19 -0
  780. data/lib/facets/kernel/with.rb +20 -0
  781. data/lib/facets/lazy.rb +238 -0
  782. data/lib/facets/linkedlist.rb +222 -0
  783. data/lib/facets/logger.rb +291 -0
  784. data/lib/facets/lrucache.rb +157 -0
  785. data/lib/facets/main.rb +70 -0
  786. data/lib/facets/matchdata.rb +6 -0
  787. data/lib/facets/matchdata/match.rb +15 -0
  788. data/lib/facets/matchdata/matchset.rb +44 -0
  789. data/lib/facets/memoize.rb +116 -0
  790. data/lib/facets/meta.rb +23 -0
  791. data/lib/facets/metaid.rb +145 -0
  792. data/lib/facets/methodspace.rb +141 -0
  793. data/lib/facets/minitar.rb +1063 -0
  794. data/lib/facets/module.rb +19 -0
  795. data/lib/facets/module/abstract.rb +21 -0
  796. data/lib/facets/module/alias.rb +115 -0
  797. data/lib/facets/module/ancestor.rb +16 -0
  798. data/lib/facets/module/can.rb +14 -0
  799. data/lib/facets/module/class.rb +14 -0
  800. data/lib/facets/module/clone.rb +57 -0
  801. data/lib/facets/module/conflict.rb +56 -0
  802. data/lib/facets/module/include_function_module.rb +25 -0
  803. data/lib/facets/module/instance_methods.rb +40 -0
  804. data/lib/facets/module/is.rb +57 -0
  805. data/lib/facets/module/module_load.rb +56 -0
  806. data/lib/facets/module/nesting.rb +84 -0
  807. data/lib/facets/module/op.rb +95 -0
  808. data/lib/facets/module/pathize.rb +19 -0
  809. data/lib/facets/module/prepend.rb +25 -0
  810. data/lib/facets/module/revise.rb +168 -0
  811. data/lib/facets/multipliers.rb +109 -0
  812. data/lib/facets/multiton.rb +386 -0
  813. data/lib/facets/nackclass.rb +41 -0
  814. data/lib/{more/facets → facets/net}/smtp_tls.rb +0 -0
  815. data/lib/facets/nilclass.rb +3 -0
  816. data/lib/facets/nilstatus.rb +47 -0
  817. data/lib/facets/nullclass.rb +74 -0
  818. data/lib/facets/numeric.rb +5 -0
  819. data/lib/facets/numeric/approx.rb +15 -0
  820. data/lib/facets/numeric/distance.rb +14 -0
  821. data/lib/facets/numeric/round.rb +51 -0
  822. data/lib/facets/opencascade.rb +92 -0
  823. data/lib/facets/opencollection.rb +43 -0
  824. data/lib/facets/openhash.rb +38 -0
  825. data/lib/facets/openobject.rb +261 -0
  826. data/lib/facets/opesc.rb +60 -0
  827. data/lib/facets/orderedhash.rb +37 -0
  828. data/lib/facets/ostruct.rb +222 -0
  829. data/lib/facets/overload.rb +94 -0
  830. data/lib/facets/pathlist.rb +112 -0
  831. data/lib/facets/pathname.rb +112 -0
  832. data/lib/facets/pool.rb +91 -0
  833. data/lib/facets/pqueue.rb +449 -0
  834. data/lib/facets/proc.rb +6 -0
  835. data/lib/facets/proc/bind.rb +22 -0
  836. data/lib/facets/proc/compose.rb +42 -0
  837. data/lib/facets/proc/curry.rb +31 -0
  838. data/lib/facets/proc/partial.rb +37 -0
  839. data/lib/facets/proc/to_method.rb +33 -0
  840. data/lib/facets/proc/update.rb +9 -0
  841. data/lib/facets/progressbar.rb +253 -0
  842. data/lib/facets/prototype.rb +88 -0
  843. data/lib/facets/random.rb +448 -0
  844. data/lib/facets/range.rb +6 -0
  845. data/lib/facets/range/combine.rb +47 -0
  846. data/lib/facets/range/overlap.rb +13 -0
  847. data/lib/facets/range/to_r.rb +26 -0
  848. data/lib/facets/range/umbrella.rb +1 -0
  849. data/lib/facets/range/within.rb +66 -0
  850. data/lib/facets/rbconfig.rb +45 -0
  851. data/lib/facets/rbsystem.rb +222 -0
  852. data/lib/facets/recorder.rb +109 -0
  853. data/lib/facets/reference.rb +99 -0
  854. data/lib/facets/reflection.rb +98 -0
  855. data/lib/facets/regexp.rb +5 -0
  856. data/lib/facets/regexp/arity.rb +17 -0
  857. data/lib/facets/regexp/to_re.rb +28 -0
  858. data/lib/facets/registerable.rb +35 -0
  859. data/lib/facets/ruby.rb +485 -0
  860. data/lib/facets/rwdelegator.rb +74 -0
  861. data/lib/facets/semaphore.rb +92 -0
  862. data/lib/{more/facets → facets}/set.rb +0 -0
  863. data/lib/facets/settings.rb +248 -0
  864. data/lib/facets/shellwords.rb +89 -0
  865. data/lib/facets/snapshot.rb +209 -0
  866. data/lib/facets/stackable.rb +86 -0
  867. data/lib/facets/string.rb +16 -0
  868. data/lib/facets/string/align.rb +106 -0
  869. data/lib/facets/string/bracket.rb +105 -0
  870. data/lib/facets/string/camelcase.rb +26 -0
  871. data/lib/facets/string/capitalized.rb +46 -0
  872. data/lib/facets/string/chomp.rb +33 -0
  873. data/lib/facets/string/cleave.rb +36 -0
  874. data/lib/facets/string/divide.rb +21 -0
  875. data/lib/facets/string/fold.rb +39 -0
  876. data/lib/facets/string/interpolate.rb +20 -0
  877. data/lib/facets/string/line_wrap.rb +21 -0
  878. data/lib/facets/string/mscan.rb +19 -0
  879. data/lib/{core/facets → facets}/string/natcmp.rb +0 -0
  880. data/lib/facets/string/nchar.rb +28 -0
  881. data/lib/facets/string/range.rb +77 -0
  882. data/lib/facets/string/rewrite.rb +28 -0
  883. data/lib/facets/string/shatter.rb +22 -0
  884. data/lib/facets/string/snakecase.rb +21 -0
  885. data/lib/facets/string/splice.rb +25 -0
  886. data/lib/facets/string/stylize.rb +73 -0
  887. data/lib/facets/string/subtract.rb +14 -0
  888. data/lib/facets/string/tab.rb +103 -0
  889. data/lib/facets/string/titlecase.rb +15 -0
  890. data/lib/facets/string/to_re.rb +26 -0
  891. data/lib/facets/string/to_time.rb +23 -0
  892. data/lib/facets/string/underscore.rb +28 -0
  893. data/lib/facets/string/words.rb +173 -0
  894. data/lib/facets/string/xor.rb +22 -0
  895. data/lib/facets/style.rb +235 -0
  896. data/lib/facets/succ.rb +44 -0
  897. data/lib/facets/symbol.rb +5 -0
  898. data/lib/facets/symbol/chomp.rb +24 -0
  899. data/lib/facets/symbol/generate.rb +24 -0
  900. data/lib/facets/symbol/not.rb +29 -0
  901. data/lib/facets/syncarray.rb +114 -0
  902. data/lib/facets/synchash.rb +157 -0
  903. data/lib/facets/thread.rb +51 -0
  904. data/lib/facets/time.rb +6 -0
  905. data/lib/facets/time/ago.rb +1 -0
  906. data/lib/facets/time/change.rb +99 -0
  907. data/lib/{core/facets → facets}/time/elapse.rb +0 -0
  908. data/lib/facets/time/hence.rb +56 -0
  909. data/lib/facets/time/set.rb +1 -0
  910. data/lib/facets/time/stamp.rb +46 -0
  911. data/lib/facets/timer.rb +274 -0
  912. data/lib/facets/times.rb +431 -0
  913. data/lib/facets/to_hash.rb +87 -0
  914. data/lib/facets/tracepoint.rb +209 -0
  915. data/lib/facets/tuple.rb +325 -0
  916. data/lib/facets/typecast.rb +260 -0
  917. data/lib/facets/unboundmethod.rb +4 -0
  918. data/lib/{core/facets → facets}/unboundmethod/arguments.rb +0 -0
  919. data/lib/facets/uninheritable.rb +50 -0
  920. data/lib/facets/uploadutils.rb +464 -0
  921. data/lib/facets/uri.rb +249 -0
  922. data/lib/facets/version.rb +122 -0
  923. data/lib/facets/xmlhash.rb +112 -0
  924. data/lib/facets/xoxo.rb +259 -0
  925. data/lib/facets/yaml.rb +66 -0
  926. data/lib/facets/ziputils.rb +349 -0
  927. data/log/Changelog.txt +314 -0
  928. data/log/Fixme.txt +7 -13
  929. data/log/Testlog.txt +202 -185
  930. data/log/Todo.txt +177 -257
  931. data/meta/contact +1 -0
  932. data/meta/corelibs +49 -0
  933. data/meta/created +1 -0
  934. data/meta/download +1 -0
  935. data/meta/homepage +1 -0
  936. data/meta/mailinglist +1 -0
  937. data/meta/project.yaml +3 -14
  938. data/meta/slogan +1 -0
  939. data/meta/unixname +1 -0
  940. data/meta/version +1 -0
  941. data/script/conflicts +38 -0
  942. data/script/document +231 -0
  943. data/script/methods +60 -0
  944. data/script/test +37 -0
  945. data/setup.rb +1478 -0
  946. data/test/array/test_delete.rb +30 -0
  947. data/test/array/test_indexable.rb +118 -0
  948. data/test/array/test_merge.rb +22 -0
  949. data/test/{core/array → array}/test_only.rb +0 -0
  950. data/test/array/test_pad.rb +33 -0
  951. data/test/array/test_product.rb +25 -0
  952. data/test/array/test_rotate.rb +23 -0
  953. data/test/array/test_select.rb +17 -0
  954. data/test/{core/array → array}/test_stackable.rb +0 -0
  955. data/test/binding/test_caller.rb +44 -0
  956. data/test/binding/test_defined.rb +18 -0
  957. data/test/binding/test_local_variables.rb +18 -0
  958. data/test/binding/test_opvars.rb +24 -0
  959. data/test/binding/test_self.rb +18 -0
  960. data/test/class/test_descendents.rb +14 -0
  961. data/test/comparable/test_bound.rb +41 -0
  962. data/test/comparable/test_cmp.rb +35 -0
  963. data/test/comparable/test_comparable.rb +52 -0
  964. data/test/dir/test_ascend.rb +40 -0
  965. data/test/dir/test_descend.rb +25 -0
  966. data/test/dir/test_multiglob.rb +41 -0
  967. data/test/dir/test_parent.rb +11 -0
  968. data/test/dir/test_recurse.rb +41 -0
  969. data/test/enumerable/test_cluster_by.rb +22 -0
  970. data/test/enumerable/test_collect.rb +39 -0
  971. data/test/enumerable/test_each_by.rb +55 -0
  972. data/test/enumerable/test_inject.rb +18 -0
  973. data/test/enumerable/test_mash.rb +38 -0
  974. data/test/enumerable/test_occur.rb +15 -0
  975. data/test/{core/enumerable → enumerable}/test_probability.rb +0 -0
  976. data/test/enumerable/test_uniq_by.rb +13 -0
  977. data/test/exception/test_exception.rb +17 -0
  978. data/test/file/test_file.rb +161 -0
  979. data/test/filetest/test_filetest.rb +10 -0
  980. data/test/hash/test_alias.rb +16 -0
  981. data/test/hash/test_at.rb +13 -0
  982. data/test/hash/test_autonew.rb +11 -0
  983. data/test/hash/test_collate.rb +33 -0
  984. data/test/hash/test_delete.rb +28 -0
  985. data/test/hash/test_insert.rb +13 -0
  986. data/test/hash/test_inverse.rb +15 -0
  987. data/test/hash/test_keys.rb +24 -0
  988. data/test/hash/test_mash.rb +20 -0
  989. data/test/hash/test_merge.rb +14 -0
  990. data/test/hash/test_op.rb +42 -0
  991. data/test/hash/test_rekey.rb +41 -0
  992. data/test/hash/test_rekey2.rb +37 -0
  993. data/test/hash/test_select.rb +35 -0
  994. data/test/hash/test_stringify_keys.rb +21 -0
  995. data/test/hash/test_swap.rb +11 -0
  996. data/test/hash/test_symbolize_keys.rb +20 -0
  997. data/test/hash/test_traverse.rb +22 -0
  998. data/test/hash/test_update.rb +40 -0
  999. data/test/{core/hash → hash}/test_weave.rb +0 -0
  1000. data/test/hash/test_zipnew.rb +13 -0
  1001. data/test/integer/test_bitmask.rb +53 -0
  1002. data/test/integer/test_factorial.rb +15 -0
  1003. data/test/integer/test_multiple.rb +14 -0
  1004. data/test/integer/test_of.rb +19 -0
  1005. data/test/integer/test_ordinal.rb +14 -0
  1006. data/test/kernel/test_as.rb +50 -0
  1007. data/test/kernel/test_attr_singleton.rb +41 -0
  1008. data/test/kernel/test_callstack.rb +10 -0
  1009. data/test/kernel/test_constant.rb +18 -0
  1010. data/test/kernel/test_deepcopy.rb +27 -0
  1011. data/test/kernel/test_here.rb +15 -0
  1012. data/test/kernel/test_in.rb +11 -0
  1013. data/test/kernel/test_instance.rb +24 -0
  1014. data/test/kernel/test_not_nil.rb +13 -0
  1015. data/test/{core/kernel → kernel}/test_object.rb +0 -0
  1016. data/test/kernel/test_populate.rb +46 -0
  1017. data/test/kernel/test_resc.rb +12 -0
  1018. data/test/{core/kernel → kernel}/test_returning.rb +0 -0
  1019. data/test/{core/kernel → kernel}/test_silence.rb +0 -0
  1020. data/test/kernel/test_val.rb +27 -0
  1021. data/test/{core/matchdata → matchdata}/test_match.rb +0 -0
  1022. data/test/matchdata/test_matchset.rb +21 -0
  1023. data/test/{core/module → module}/test_abstract.rb +0 -0
  1024. data/test/module/test_alias.rb +44 -0
  1025. data/test/module/test_ancestor.rb +11 -0
  1026. data/test/{core/module → module}/test_clone.rb +0 -0
  1027. data/test/module/test_nesting.rb +38 -0
  1028. data/test/module/test_op.rb +44 -0
  1029. data/test/module/test_pathize.rb +15 -0
  1030. data/test/module/test_revise.rb +174 -0
  1031. data/test/numeric/test_approx.rb +13 -0
  1032. data/test/numeric/test_distance.rb +13 -0
  1033. data/test/numeric/test_round.rb +49 -0
  1034. data/test/proc/test_bind.rb +26 -0
  1035. data/test/proc/test_compose.rb +20 -0
  1036. data/test/proc/test_curry.rb +25 -0
  1037. data/test/proc/test_partial.rb +27 -0
  1038. data/test/proc/test_to_method.rb +26 -0
  1039. data/test/range/test_combine.rb +18 -0
  1040. data/test/range/test_overlap.rb +15 -0
  1041. data/test/range/test_to_r.rb +17 -0
  1042. data/test/range/test_within.rb +36 -0
  1043. data/test/regexp/test_arity.rb +17 -0
  1044. data/test/regexp/test_to_re.rb +17 -0
  1045. data/test/{core/string → string}/test_align.rb +0 -0
  1046. data/test/{core/string → string}/test_bracket.rb +0 -0
  1047. data/test/string/test_camelcase.rb +42 -0
  1048. data/test/string/test_capitalized.rb +27 -0
  1049. data/test/string/test_cleave.rb +32 -0
  1050. data/test/string/test_divide.rb +14 -0
  1051. data/test/string/test_fold.rb +18 -0
  1052. data/test/{core/string → string}/test_interpolate.rb +0 -0
  1053. data/test/string/test_line_wrap.rb +12 -0
  1054. data/test/string/test_mscan.rb +15 -0
  1055. data/test/{core/string → string}/test_natcmp.rb +0 -0
  1056. data/test/string/test_nchar.rb +14 -0
  1057. data/test/string/test_range.rb +23 -0
  1058. data/test/string/test_shatter.rb +14 -0
  1059. data/test/string/test_snakecase.rb +14 -0
  1060. data/test/string/test_stylize.rb +52 -0
  1061. data/test/string/test_subtract.rb +13 -0
  1062. data/test/string/test_tab.rb +234 -0
  1063. data/test/string/test_titlecase.rb +13 -0
  1064. data/test/string/test_to_re.rb +27 -0
  1065. data/test/string/test_to_time.rb +24 -0
  1066. data/test/string/test_underscore.rb +13 -0
  1067. data/test/string/test_words.rb +82 -0
  1068. data/test/string/test_xor.rb +13 -0
  1069. data/test/symbol/test_chomp.rb +15 -0
  1070. data/test/symbol/test_generate.rb +20 -0
  1071. data/test/symbol/test_not.rb +13 -0
  1072. data/test/{core/test_1stclassmethod.rb → test_1stclassmethod.rb} +0 -0
  1073. data/test/test_advisable.rb +71 -0
  1074. data/test/test_annotations.rb +120 -0
  1075. data/test/{more/test_ansicode.rb → test_ansicode.rb} +0 -0
  1076. data/test/test_arguments.rb +56 -0
  1077. data/test/{class/test_association.rb → test_association.rb} +0 -0
  1078. data/test/{class/test_autoarray.rb → test_autoarray.rb} +0 -0
  1079. data/test/{class/test_basicobject.rb → test_basicobject.rb} +0 -0
  1080. data/test/{more/test_bbcode.rb → test_bbcode.rb} +0 -0
  1081. data/test/{mixin/test_binreadable.rb → test_binreadable.rb} +0 -0
  1082. data/test/test_blank.rb +12 -0
  1083. data/test/{core/test_boolean.rb → test_boolean.rb} +0 -0
  1084. data/test/test_buildable.rb +73 -0
  1085. data/test/{more/test_bytes.rb → test_bytes.rb} +0 -0
  1086. data/test/test_cattr.rb +47 -0
  1087. data/test/{more/test_class_extension.rb → test_class_extension.rb} +0 -0
  1088. data/test/{more/test_classmethods.rb → test_classmethods.rb} +0 -0
  1089. data/test/{mixin/test_cloneable.rb → test_cloneable.rb} +0 -0
  1090. data/test/test_command.rb +71 -0
  1091. data/test/{more/test_continuation.rb → test_continuation.rb} +0 -0
  1092. data/test/{class/test_coroutine.rb → test_coroutine.rb} +0 -0
  1093. data/test/{more/test_crypt.rb → test_crypt.rb} +0 -0
  1094. data/test/{more/test_date.rb → test_date.rb} +0 -0
  1095. data/test/{more/test_dependency.rb → test_dependency.rb} +0 -0
  1096. data/test/{class/test_dictionary.rb → test_dictionary.rb} +0 -0
  1097. data/test/test_elementor.rb +39 -0
  1098. data/test/test_elementwise.rb +25 -0
  1099. data/test/{mixin/test_enumerablepass.rb → test_enumerablepass.rb} +0 -0
  1100. data/test/test_equatable.rb +42 -0
  1101. data/test/{core/test_functor.rb → test_functor.rb} +0 -0
  1102. data/test/{more/test_getoptlong.rb → test_getoptlong.rb} +0 -0
  1103. data/test/{class/test_infinity.rb → test_infinity.rb} +0 -0
  1104. data/test/{more/test_inheritor.rb → test_inheritor.rb} +0 -0
  1105. data/test/test_instantiable.rb +37 -0
  1106. data/test/{more/test_instantise.rb → test_instantise.rb} +0 -0
  1107. data/test/{class/test_interval.rb → test_interval.rb} +0 -0
  1108. data/test/{class/test_linkedlist.rb → test_linkedlist.rb} +0 -0
  1109. data/test/{class/test_lrucache.rb → test_lrucache.rb} +0 -0
  1110. data/test/{more/test_memoize.rb → test_memoize.rb} +0 -0
  1111. data/test/test_metaid.rb +39 -0
  1112. data/test/test_methodspace.rb +78 -0
  1113. data/test/{more/test_multipliers.rb → test_multipliers.rb} +0 -0
  1114. data/test/{mixin/test_multiton.rb → test_multiton.rb} +0 -0
  1115. data/test/{class/test_opencascade.rb → test_opencascade.rb} +0 -0
  1116. data/test/{class/test_openobject.rb → test_openobject.rb} +0 -0
  1117. data/test/{more/test_ostruct.rb → test_ostruct.rb} +0 -0
  1118. data/test/test_overload.rb +120 -0
  1119. data/test/{more/test_prototype.rb → test_prototype.rb} +0 -0
  1120. data/test/{more/test_random.rb → test_random.rb} +0 -0
  1121. data/test/{class/test_recorder.rb → test_recorder.rb} +0 -0
  1122. data/test/test_ruby.rb +198 -0
  1123. data/test/test_ruby/array/test_combination.rb +29 -0
  1124. data/test/test_ruby/array/test_permutation.rb +14 -0
  1125. data/test/test_ruby/array/test_product.rb +23 -0
  1126. data/test/test_ruby/kernel/test_tap.rb +19 -0
  1127. data/test/test_ruby/symbol/test_succ.rb +13 -0
  1128. data/test/{more/test_snapshot.rb → test_snapshot.rb} +0 -0
  1129. data/test/test_style.rb +50 -0
  1130. data/test/test_succ.rb +35 -0
  1131. data/test/{class/test_syncarray.rb → test_syncarray.rb} +0 -0
  1132. data/test/{class/test_synchash.rb → test_synchash.rb} +0 -0
  1133. data/test/test_thread.rb +22 -0
  1134. data/test/{class/test_timer.rb → test_timer.rb} +0 -0
  1135. data/test/{more/test_times.rb → test_times.rb} +0 -0
  1136. data/test/test_to_hash.rb +58 -0
  1137. data/test/{class/test_tuple.rb → test_tuple.rb} +0 -0
  1138. data/test/test_typecast.rb +54 -0
  1139. data/test/{mixin/test_uninheritable.rb → test_uninheritable.rb} +0 -0
  1140. data/test/test_uri.rb +36 -0
  1141. data/test/test_xoxo.rb +274 -0
  1142. data/test/time/test_change.rb +15 -0
  1143. data/test/time/test_elapse.rb +13 -0
  1144. data/test/time/test_stamp.rb +28 -0
  1145. metadata +1503 -1127
  1146. data/Rakefile +0 -26
  1147. data/lib/class/facets/association.rb +0 -157
  1148. data/lib/class/facets/autoarray.rb +0 -59
  1149. data/lib/class/facets/basicobject.rb +0 -234
  1150. data/lib/class/facets/buildingblock.rb +0 -219
  1151. data/lib/class/facets/cachedelegator.rb +0 -93
  1152. data/lib/class/facets/coroutine.rb +0 -120
  1153. data/lib/class/facets/dictionary.rb +0 -435
  1154. data/lib/class/facets/downloader.rb +0 -279
  1155. data/lib/class/facets/filelist.rb +0 -493
  1156. data/lib/class/facets/fileshell.rb +0 -198
  1157. data/lib/class/facets/hashbuilder.rb +0 -97
  1158. data/lib/class/facets/heap.rb +0 -27
  1159. data/lib/class/facets/infinity.rb +0 -183
  1160. data/lib/class/facets/interval.rb +0 -266
  1161. data/lib/class/facets/ioredirect.rb +0 -133
  1162. data/lib/class/facets/linkedlist.rb +0 -214
  1163. data/lib/class/facets/lrucache.rb +0 -156
  1164. data/lib/class/facets/minitar.rb +0 -999
  1165. data/lib/class/facets/nackclass.rb +0 -43
  1166. data/lib/class/facets/nullclass.rb +0 -79
  1167. data/lib/class/facets/opencascade.rb +0 -92
  1168. data/lib/class/facets/opencollection.rb +0 -46
  1169. data/lib/class/facets/openhash.rb +0 -41
  1170. data/lib/class/facets/openobject.rb +0 -241
  1171. data/lib/class/facets/orderedhash.rb +0 -42
  1172. data/lib/class/facets/pathlist.rb +0 -106
  1173. data/lib/class/facets/pool.rb +0 -97
  1174. data/lib/class/facets/pqueue.rb +0 -468
  1175. data/lib/class/facets/progressbar.rb +0 -245
  1176. data/lib/class/facets/recorder.rb +0 -97
  1177. data/lib/class/facets/reference.rb +0 -100
  1178. data/lib/class/facets/rwdelegator.rb +0 -79
  1179. data/lib/class/facets/semaphore.rb +0 -97
  1180. data/lib/class/facets/syncarray.rb +0 -122
  1181. data/lib/class/facets/synchash.rb +0 -149
  1182. data/lib/class/facets/timer.rb +0 -247
  1183. data/lib/class/facets/tuple.rb +0 -310
  1184. data/lib/class/facets/version.rb +0 -127
  1185. data/lib/core/facets.rb +0 -1
  1186. data/lib/core/facets/1stclassmethod.rb +0 -117
  1187. data/lib/core/facets/array.rb +0 -12
  1188. data/lib/core/facets/array/conjoin.rb +0 -47
  1189. data/lib/core/facets/array/contains.rb +0 -1
  1190. data/lib/core/facets/array/delete.rb +0 -57
  1191. data/lib/core/facets/array/delete_unless.rb +0 -1
  1192. data/lib/core/facets/array/delete_values.rb +0 -1
  1193. data/lib/core/facets/array/delete_values_at.rb +0 -1
  1194. data/lib/core/facets/array/each_iteration.rb +0 -1
  1195. data/lib/core/facets/array/first.rb +0 -1
  1196. data/lib/core/facets/array/indexable.rb +0 -132
  1197. data/lib/core/facets/array/join_sentence.rb +0 -1
  1198. data/lib/core/facets/array/last.rb +0 -1
  1199. data/lib/core/facets/array/merge.rb +0 -23
  1200. data/lib/core/facets/array/only.rb +0 -20
  1201. data/lib/core/facets/array/pad.rb +0 -45
  1202. data/lib/core/facets/array/poke.rb +0 -1
  1203. data/lib/core/facets/array/pull.rb +0 -1
  1204. data/lib/core/facets/array/rotate.rb +0 -41
  1205. data/lib/core/facets/array/select.rb +0 -15
  1206. data/lib/core/facets/array/splice.rb +0 -30
  1207. data/lib/core/facets/array/stackable.rb +0 -30
  1208. data/lib/core/facets/array/store.rb +0 -1
  1209. data/lib/core/facets/array/to_b.rb +0 -1
  1210. data/lib/core/facets/array/to_h.rb +0 -1
  1211. data/lib/core/facets/array/to_path.rb +0 -1
  1212. data/lib/core/facets/binding.rb +0 -7
  1213. data/lib/core/facets/binding/__DIR__.rb +0 -1
  1214. data/lib/core/facets/binding/__FILE__.rb +0 -1
  1215. data/lib/core/facets/binding/__LINE__.rb +0 -1
  1216. data/lib/core/facets/binding/__callee__.rb +0 -1
  1217. data/lib/core/facets/binding/__method__.rb +0 -1
  1218. data/lib/core/facets/binding/call_stack.rb +0 -1
  1219. data/lib/core/facets/binding/called.rb +0 -1
  1220. data/lib/core/facets/binding/caller.rb +0 -72
  1221. data/lib/core/facets/binding/defined.rb +0 -10
  1222. data/lib/core/facets/binding/eval.rb +0 -17
  1223. data/lib/core/facets/binding/here.rb +0 -1
  1224. data/lib/core/facets/binding/included.rb +0 -1
  1225. data/lib/core/facets/binding/local_variables.rb +0 -1
  1226. data/lib/core/facets/binding/methodname.rb +0 -1
  1227. data/lib/core/facets/binding/op_fetch.rb +0 -1
  1228. data/lib/core/facets/binding/self.rb +0 -12
  1229. data/lib/core/facets/binding/vars.rb +0 -41
  1230. data/lib/core/facets/boolean.rb +0 -161
  1231. data/lib/core/facets/class.rb +0 -6
  1232. data/lib/core/facets/class/cattr.rb +0 -1
  1233. data/lib/core/facets/class/cattr_accessor.rb +0 -1
  1234. data/lib/core/facets/class/cattr_reader.rb +0 -1
  1235. data/lib/core/facets/class/cattr_writer.rb +0 -1
  1236. data/lib/core/facets/class/class_load.rb +0 -1
  1237. data/lib/core/facets/class/class_require.rb +0 -1
  1238. data/lib/core/facets/class/descendents.rb +0 -41
  1239. data/lib/core/facets/class/initializer.rb +0 -36
  1240. data/lib/core/facets/class/mattr.rb +0 -1
  1241. data/lib/core/facets/class/mattr_accessor.rb +0 -1
  1242. data/lib/core/facets/class/mattr_reader.rb +0 -1
  1243. data/lib/core/facets/class/mattr_writer.rb +0 -1
  1244. data/lib/core/facets/class/remove_descendents.rb +0 -19
  1245. data/lib/core/facets/class/remove_subclasses.rb +0 -1
  1246. data/lib/core/facets/class/subclasses.rb +0 -1
  1247. data/lib/core/facets/class/to_proc.rb +0 -1
  1248. data/lib/core/facets/comparable.rb +0 -2
  1249. data/lib/core/facets/comparable/at_least.rb +0 -1
  1250. data/lib/core/facets/comparable/at_most.rb +0 -1
  1251. data/lib/core/facets/comparable/bound.rb +0 -58
  1252. data/lib/core/facets/comparable/cap.rb +0 -1
  1253. data/lib/core/facets/comparable/clip.rb +0 -1
  1254. data/lib/core/facets/comparable/cmp.rb +0 -92
  1255. data/lib/core/facets/conversion.rb +0 -495
  1256. data/lib/core/facets/dir.rb +0 -4
  1257. data/lib/core/facets/dir/ancestor.rb +0 -1
  1258. data/lib/core/facets/dir/ascend.rb +0 -1
  1259. data/lib/core/facets/dir/descend.rb +0 -1
  1260. data/lib/core/facets/dir/ls_r.rb +0 -1
  1261. data/lib/core/facets/dir/multiglob_r.rb +0 -1
  1262. data/lib/core/facets/dir/parent.rb +0 -12
  1263. data/lib/core/facets/dir/recurse.rb +0 -28
  1264. data/lib/core/facets/dir/traverse.rb +0 -56
  1265. data/lib/core/facets/enumerable.rb +0 -9
  1266. data/lib/core/facets/enumerable/cart.rb +0 -1
  1267. data/lib/core/facets/enumerable/cartesian.rb +0 -62
  1268. data/lib/core/facets/enumerable/cartesian_product.rb +0 -1
  1269. data/lib/core/facets/enumerable/cluster_by.rb +0 -1
  1270. data/lib/core/facets/enumerable/collate.rb +0 -0
  1271. data/lib/core/facets/enumerable/collect.rb +0 -164
  1272. data/lib/core/facets/enumerable/collect_if.rb +0 -1
  1273. data/lib/core/facets/enumerable/collect_with_index.rb +0 -1
  1274. data/lib/core/facets/enumerable/combination.rb +0 -114
  1275. data/lib/core/facets/enumerable/combinations.rb +0 -1
  1276. data/lib/core/facets/enumerable/combos.rb +0 -48
  1277. data/lib/core/facets/enumerable/commonality.rb +0 -1
  1278. data/lib/core/facets/enumerable/compact_collect.rb +0 -1
  1279. data/lib/core/facets/enumerable/compact_map.rb +0 -1
  1280. data/lib/core/facets/enumerable/count.rb +0 -175
  1281. data/lib/core/facets/enumerable/divide.rb +0 -1
  1282. data/lib/core/facets/enumerable/duplicates.rb +0 -1
  1283. data/lib/core/facets/enumerable/each.rb +0 -86
  1284. data/lib/core/facets/enumerable/each_by.rb +0 -1
  1285. data/lib/core/facets/enumerable/each_combination.rb +0 -1
  1286. data/lib/core/facets/enumerable/each_combo.rb +0 -1
  1287. data/lib/core/facets/enumerable/each_pair.rb +0 -1
  1288. data/lib/core/facets/enumerable/each_permutation.rb +0 -1
  1289. data/lib/core/facets/enumerable/each_unique_pair.rb +0 -1
  1290. data/lib/core/facets/enumerable/eachn.rb +0 -1
  1291. data/lib/core/facets/enumerable/entropy.rb +0 -1
  1292. data/lib/core/facets/enumerable/filter_collect.rb +0 -1
  1293. data/lib/core/facets/enumerable/filter_map.rb +0 -1
  1294. data/lib/core/facets/enumerable/frequency.rb +0 -1
  1295. data/lib/core/facets/enumerable/graph.rb +0 -1
  1296. data/lib/core/facets/enumerable/group_by.rb +0 -1
  1297. data/lib/core/facets/enumerable/ideal_entropy.rb +0 -1
  1298. data/lib/core/facets/enumerable/inject.rb +0 -1
  1299. data/lib/core/facets/enumerable/injecting.rb +0 -1
  1300. data/lib/core/facets/enumerable/map_if.rb +0 -1
  1301. data/lib/core/facets/enumerable/map_send.rb +0 -1
  1302. data/lib/core/facets/enumerable/map_with_index.rb +0 -1
  1303. data/lib/core/facets/enumerable/mash.rb +0 -50
  1304. data/lib/core/facets/enumerable/mode.rb +0 -1
  1305. data/lib/core/facets/enumerable/modulate.rb +0 -1
  1306. data/lib/core/facets/enumerable/none.rb +0 -1
  1307. data/lib/core/facets/enumerable/nonuniq.rb +0 -1
  1308. data/lib/core/facets/enumerable/occur.rb +0 -1
  1309. data/lib/core/facets/enumerable/one.rb +0 -1
  1310. data/lib/core/facets/enumerable/op_pow.rb +0 -1
  1311. data/lib/core/facets/enumerable/partition_by.rb +0 -1
  1312. data/lib/core/facets/enumerable/permutation.rb +0 -101
  1313. data/lib/core/facets/enumerable/permutation_number.rb +0 -1
  1314. data/lib/core/facets/enumerable/permute.rb +0 -1
  1315. data/lib/core/facets/enumerable/probability.rb +0 -144
  1316. data/lib/core/facets/enumerable/split.rb +0 -113
  1317. data/lib/core/facets/enumerable/sum.rb +0 -1
  1318. data/lib/core/facets/enumerable/to_h.rb +0 -1
  1319. data/lib/core/facets/enumerable/to_hash.rb +0 -1
  1320. data/lib/core/facets/enumerable/uniq_by.rb +0 -1
  1321. data/lib/core/facets/exception/detail.rb +0 -19
  1322. data/lib/core/facets/facets.rb +0 -49
  1323. data/lib/core/facets/file.rb +0 -6
  1324. data/lib/core/facets/file/append.rb +0 -1
  1325. data/lib/core/facets/file/create.rb +0 -1
  1326. data/lib/core/facets/file/null.rb +0 -20
  1327. data/lib/core/facets/file/read.rb +0 -29
  1328. data/lib/core/facets/file/read_binary.rb +0 -1
  1329. data/lib/core/facets/file/read_list.rb +0 -1
  1330. data/lib/core/facets/file/rewrite.rb +0 -1
  1331. data/lib/core/facets/file/rootname.rb +0 -22
  1332. data/lib/core/facets/file/sanitize.rb +0 -14
  1333. data/lib/core/facets/file/split_all.rb +0 -19
  1334. data/lib/core/facets/file/write.rb +0 -113
  1335. data/lib/core/facets/file/writelines.rb +0 -1
  1336. data/lib/core/facets/filetest.rb +0 -1
  1337. data/lib/core/facets/filetest/root.rb +0 -16
  1338. data/lib/core/facets/float.rb +0 -1
  1339. data/lib/core/facets/float/round.rb +0 -8
  1340. data/lib/core/facets/float/round_at.rb +0 -1
  1341. data/lib/core/facets/float/round_off.rb +0 -1
  1342. data/lib/core/facets/float/round_to.rb +0 -1
  1343. data/lib/core/facets/functor.rb +0 -64
  1344. data/lib/core/facets/hash.rb +0 -24
  1345. data/lib/core/facets/hash/alias.rb +0 -28
  1346. data/lib/core/facets/hash/at.rb +0 -7
  1347. data/lib/core/facets/hash/autonew.rb +0 -26
  1348. data/lib/core/facets/hash/collate.rb +0 -44
  1349. data/lib/core/facets/hash/delete.rb +0 -46
  1350. data/lib/core/facets/hash/delete_at.rb +0 -1
  1351. data/lib/core/facets/hash/delete_unless.rb +0 -1
  1352. data/lib/core/facets/hash/delete_values.rb +0 -1
  1353. data/lib/core/facets/hash/delete_values_at.rb +0 -1
  1354. data/lib/core/facets/hash/diff.rb +0 -15
  1355. data/lib/core/facets/hash/each_with_key.rb +0 -12
  1356. data/lib/core/facets/hash/graph.rb +0 -1
  1357. data/lib/core/facets/hash/has_keys.rb +0 -31
  1358. data/lib/core/facets/hash/has_only_keys.rb +0 -1
  1359. data/lib/core/facets/hash/insert.rb +0 -19
  1360. data/lib/core/facets/hash/inverse.rb +0 -27
  1361. data/lib/core/facets/hash/join.rb +0 -14
  1362. data/lib/core/facets/hash/mash.rb +0 -1
  1363. data/lib/core/facets/hash/op.rb +0 -97
  1364. data/lib/core/facets/hash/op_and.rb +0 -1
  1365. data/lib/core/facets/hash/op_div.rb +0 -10
  1366. data/lib/core/facets/hash/op_lshift.rb +0 -1
  1367. data/lib/core/facets/hash/op_minus.rb +0 -1
  1368. data/lib/core/facets/hash/op_mul.rb +0 -1
  1369. data/lib/core/facets/hash/op_or.rb +0 -1
  1370. data/lib/core/facets/hash/op_plus.rb +0 -1
  1371. data/lib/core/facets/hash/pairs_at.rb +0 -15
  1372. data/lib/core/facets/hash/rekey.rb +0 -58
  1373. data/lib/core/facets/hash/replace_each.rb +0 -1
  1374. data/lib/core/facets/hash/reverse_merge.rb +0 -29
  1375. data/lib/core/facets/hash/reverse_update.rb +0 -1
  1376. data/lib/core/facets/hash/swap.rb +0 -36
  1377. data/lib/core/facets/hash/to_h.rb +0 -1
  1378. data/lib/core/facets/hash/to_proc.rb +0 -1
  1379. data/lib/core/facets/hash/to_proc_with_reponse.rb +0 -1
  1380. data/lib/core/facets/hash/to_struct.rb +0 -1
  1381. data/lib/core/facets/hash/traverse.rb +0 -41
  1382. data/lib/core/facets/hash/update.rb +0 -63
  1383. data/lib/core/facets/hash/update_each.rb +0 -1
  1384. data/lib/core/facets/hash/update_keys.rb +0 -1
  1385. data/lib/core/facets/hash/update_values.rb +0 -1
  1386. data/lib/core/facets/hash/zipnew.rb +0 -18
  1387. data/lib/core/facets/indexable.rb +0 -241
  1388. data/lib/core/facets/integer.rb +0 -4
  1389. data/lib/core/facets/integer/bit.rb +0 -1
  1390. data/lib/core/facets/integer/clear_bit.rb +0 -1
  1391. data/lib/core/facets/integer/even.rb +0 -1
  1392. data/lib/core/facets/integer/fac.rb +0 -1
  1393. data/lib/core/facets/integer/factorial.rb +0 -29
  1394. data/lib/core/facets/integer/multiple.rb +0 -44
  1395. data/lib/core/facets/integer/odd.rb +0 -1
  1396. data/lib/core/facets/integer/of.rb +0 -22
  1397. data/lib/core/facets/integer/times_collect.rb +0 -1
  1398. data/lib/core/facets/integer/times_map.rb +0 -1
  1399. data/lib/core/facets/kernel.rb +0 -23
  1400. data/lib/core/facets/kernel/Bit.rb +0 -1
  1401. data/lib/core/facets/kernel/__DIR__.rb +0 -1
  1402. data/lib/core/facets/kernel/__assign__.rb +0 -1
  1403. data/lib/core/facets/kernel/__callee__.rb +0 -1
  1404. data/lib/core/facets/kernel/__class__.rb +0 -1
  1405. data/lib/core/facets/kernel/__get__.rb +0 -1
  1406. data/lib/core/facets/kernel/__method__.rb +0 -1
  1407. data/lib/core/facets/kernel/__real__.rb +0 -1
  1408. data/lib/core/facets/kernel/__set__.rb +0 -1
  1409. data/lib/core/facets/kernel/__singleton_class__.rb +0 -1
  1410. data/lib/core/facets/kernel/as.rb +0 -1
  1411. data/lib/core/facets/kernel/ask.rb +0 -26
  1412. data/lib/core/facets/kernel/assign_from.rb +0 -1
  1413. data/lib/core/facets/kernel/assign_with.rb +0 -1
  1414. data/lib/core/facets/kernel/bitmask.rb +0 -1
  1415. data/lib/core/facets/kernel/bool.rb +0 -1
  1416. data/lib/core/facets/kernel/call_stack.rb +0 -1
  1417. data/lib/core/facets/kernel/called.rb +0 -1
  1418. data/lib/core/facets/kernel/callee.rb +0 -1
  1419. data/lib/core/facets/kernel/callstack.rb +0 -88
  1420. data/lib/core/facets/kernel/class_def.rb +0 -1
  1421. data/lib/core/facets/kernel/complete.rb +0 -1
  1422. data/lib/core/facets/kernel/copy.rb +0 -1
  1423. data/lib/core/facets/kernel/d.rb +0 -1
  1424. data/lib/core/facets/kernel/deep_clone.rb +0 -1
  1425. data/lib/core/facets/kernel/deep_copy.rb +0 -1
  1426. data/lib/core/facets/kernel/deepcopy.rb +0 -59
  1427. data/lib/core/facets/kernel/demo.rb +0 -1
  1428. data/lib/core/facets/kernel/dir.rb +0 -14
  1429. data/lib/core/facets/kernel/eigenclass.rb +0 -1
  1430. data/lib/core/facets/kernel/enable_warnings.rb +0 -1
  1431. data/lib/core/facets/kernel/ergo.rb +0 -40
  1432. data/lib/core/facets/kernel/false.rb +0 -1
  1433. data/lib/core/facets/kernel/fn.rb +0 -1
  1434. data/lib/core/facets/kernel/here.rb +0 -9
  1435. data/lib/core/facets/kernel/in.rb +0 -1
  1436. data/lib/core/facets/kernel/instance.rb +0 -176
  1437. data/lib/core/facets/kernel/instance_assign.rb +0 -1
  1438. data/lib/core/facets/kernel/instance_assume.rb +0 -1
  1439. data/lib/core/facets/kernel/instance_class.rb +0 -1
  1440. data/lib/core/facets/kernel/instance_exec.rb +0 -1
  1441. data/lib/core/facets/kernel/instance_send.rb +0 -1
  1442. data/lib/core/facets/kernel/instance_values.rb +0 -1
  1443. data/lib/core/facets/kernel/is.rb +0 -1
  1444. data/lib/core/facets/kernel/load_local.rb +0 -1
  1445. data/lib/core/facets/kernel/meta.rb +0 -1
  1446. data/lib/core/facets/kernel/meta_alias.rb +0 -1
  1447. data/lib/core/facets/kernel/meta_class.rb +0 -1
  1448. data/lib/core/facets/kernel/meta_def.rb +0 -1
  1449. data/lib/core/facets/kernel/meta_eval.rb +0 -1
  1450. data/lib/core/facets/kernel/metaclass.rb +0 -1
  1451. data/lib/core/facets/kernel/metaid.rb +0 -160
  1452. data/lib/core/facets/kernel/method.rb +0 -1
  1453. data/lib/core/facets/kernel/non_nil.rb +0 -1
  1454. data/lib/core/facets/kernel/not_nil.rb +0 -1
  1455. data/lib/core/facets/kernel/object.rb +0 -68
  1456. data/lib/core/facets/kernel/object_class.rb +0 -1
  1457. data/lib/core/facets/kernel/object_clone.rb +0 -1
  1458. data/lib/core/facets/kernel/object_dup.rb +0 -1
  1459. data/lib/core/facets/kernel/object_hexid.rb +0 -1
  1460. data/lib/core/facets/kernel/object_send.rb +0 -1
  1461. data/lib/core/facets/kernel/op_esc.rb +0 -62
  1462. data/lib/core/facets/kernel/p.rb +0 -1
  1463. data/lib/core/facets/kernel/populate.rb +0 -136
  1464. data/lib/core/facets/kernel/pp_call_stack.rb +0 -1
  1465. data/lib/core/facets/kernel/pp_exception.rb +0 -1
  1466. data/lib/core/facets/kernel/qua_class.rb +0 -1
  1467. data/lib/core/facets/kernel/report.rb +0 -98
  1468. data/lib/core/facets/kernel/require.rb +0 -55
  1469. data/lib/core/facets/kernel/require_all.rb +0 -1
  1470. data/lib/core/facets/kernel/require_local.rb +0 -1
  1471. data/lib/core/facets/kernel/resc.rb +0 -1
  1472. data/lib/core/facets/kernel/respond.rb +0 -23
  1473. data/lib/core/facets/kernel/respond_with_value.rb +0 -1
  1474. data/lib/core/facets/kernel/returning.rb +0 -50
  1475. data/lib/core/facets/kernel/send_as.rb +0 -1
  1476. data/lib/core/facets/kernel/set_from.rb +0 -1
  1477. data/lib/core/facets/kernel/set_with.rb +0 -1
  1478. data/lib/core/facets/kernel/silence.rb +0 -79
  1479. data/lib/core/facets/kernel/silence_stderr.rb +0 -1
  1480. data/lib/core/facets/kernel/silence_stream.rb +0 -1
  1481. data/lib/core/facets/kernel/silence_warnings.rb +0 -1
  1482. data/lib/core/facets/kernel/singleton.rb +0 -1
  1483. data/lib/core/facets/kernel/singleton_class.rb +0 -1
  1484. data/lib/core/facets/kernel/super.rb +0 -158
  1485. data/lib/core/facets/kernel/super_at.rb +0 -1
  1486. data/lib/core/facets/kernel/super_method.rb +0 -1
  1487. data/lib/core/facets/kernel/superior.rb +0 -1
  1488. data/lib/core/facets/kernel/supermethod.rb +0 -1
  1489. data/lib/core/facets/kernel/suppress.rb +0 -1
  1490. data/lib/core/facets/kernel/tap.rb +0 -34
  1491. data/lib/core/facets/kernel/this.rb +0 -1
  1492. data/lib/core/facets/kernel/to_b.rb +0 -1
  1493. data/lib/core/facets/kernel/to_bool.rb +0 -1
  1494. data/lib/core/facets/kernel/true.rb +0 -1
  1495. data/lib/core/facets/kernel/val.rb +0 -40
  1496. data/lib/core/facets/kernel/warn_with_line.rb +0 -1
  1497. data/lib/core/facets/kernel/with.rb +0 -1
  1498. data/lib/core/facets/kernel/with_accessor.rb +0 -1
  1499. data/lib/core/facets/kernel/with_reader.rb +0 -1
  1500. data/lib/core/facets/kernel/with_writer.rb +0 -1
  1501. data/lib/core/facets/kernel/withattr.rb +0 -53
  1502. data/lib/core/facets/matchdata.rb +0 -2
  1503. data/lib/core/facets/matchdata/match.rb +0 -16
  1504. data/lib/core/facets/matchdata/matchset.rb +0 -43
  1505. data/lib/core/facets/matchdata/matchtree.rb +0 -1
  1506. data/lib/core/facets/module.rb +0 -13
  1507. data/lib/core/facets/module/abstract.rb +0 -21
  1508. data/lib/core/facets/module/alias.rb +0 -139
  1509. data/lib/core/facets/module/alias_accessor.rb +0 -1
  1510. data/lib/core/facets/module/alias_method_chain.rb +0 -1
  1511. data/lib/core/facets/module/alias_module_function.rb +0 -1
  1512. data/lib/core/facets/module/alias_reader.rb +0 -1
  1513. data/lib/core/facets/module/alias_setter.rb +0 -1
  1514. data/lib/core/facets/module/alias_switcher.rb +0 -1
  1515. data/lib/core/facets/module/alias_tester.rb +0 -1
  1516. data/lib/core/facets/module/alias_toggler.rb +0 -1
  1517. data/lib/core/facets/module/alias_validator.rb +0 -1
  1518. data/lib/core/facets/module/alias_writer.rb +0 -1
  1519. data/lib/core/facets/module/all_instance_methods.rb +0 -1
  1520. data/lib/core/facets/module/ancestor.rb +0 -1
  1521. data/lib/core/facets/module/attr_accessor.rb +0 -1
  1522. data/lib/core/facets/module/attr_reader.rb +0 -1
  1523. data/lib/core/facets/module/attr_setter.rb +0 -1
  1524. data/lib/core/facets/module/attr_switcher.rb +0 -1
  1525. data/lib/core/facets/module/attr_tester.rb +0 -1
  1526. data/lib/core/facets/module/attr_toggler.rb +0 -1
  1527. data/lib/core/facets/module/attr_validator.rb +0 -1
  1528. data/lib/core/facets/module/attr_writer.rb +0 -1
  1529. data/lib/core/facets/module/basename.rb +0 -1
  1530. data/lib/core/facets/module/by_name.rb +0 -1
  1531. data/lib/core/facets/module/can.rb +0 -1
  1532. data/lib/core/facets/module/cattr.rb +0 -110
  1533. data/lib/core/facets/module/class.rb +0 -1
  1534. data/lib/core/facets/module/class_def.rb +0 -1
  1535. data/lib/core/facets/module/clone.rb +0 -50
  1536. data/lib/core/facets/module/clone_removing.rb +0 -1
  1537. data/lib/core/facets/module/clone_renaming.rb +0 -1
  1538. data/lib/core/facets/module/clone_using.rb +0 -1
  1539. data/lib/core/facets/module/conflict.rb +0 -1
  1540. data/lib/core/facets/module/dirname.rb +0 -1
  1541. data/lib/core/facets/module/include.rb +0 -179
  1542. data/lib/core/facets/module/include_and_extend.rb +0 -1
  1543. data/lib/core/facets/module/include_as.rb +0 -1
  1544. data/lib/core/facets/module/include_function_module.rb +0 -1
  1545. data/lib/core/facets/module/instance_method.rb +0 -1
  1546. data/lib/core/facets/module/instance_method_defined.rb +0 -1
  1547. data/lib/core/facets/module/integrate.rb +0 -1
  1548. data/lib/core/facets/module/is.rb +0 -1
  1549. data/lib/core/facets/module/methods.rb +0 -36
  1550. data/lib/core/facets/module/modify.rb +0 -173
  1551. data/lib/core/facets/module/modspace.rb +0 -1
  1552. data/lib/core/facets/module/module_load.rb +0 -1
  1553. data/lib/core/facets/module/module_method.rb +0 -1
  1554. data/lib/core/facets/module/module_method_defined.rb +0 -1
  1555. data/lib/core/facets/module/module_require.rb +0 -1
  1556. data/lib/core/facets/module/name.rb +0 -122
  1557. data/lib/core/facets/module/nesting.rb +0 -1
  1558. data/lib/core/facets/module/nodef.rb +0 -1
  1559. data/lib/core/facets/module/on_included.rb +0 -1
  1560. data/lib/core/facets/module/op_minus.rb +0 -1
  1561. data/lib/core/facets/module/op_mul.rb +0 -1
  1562. data/lib/core/facets/module/op_plus.rb +0 -1
  1563. data/lib/core/facets/module/private_conflict.rb +0 -1
  1564. data/lib/core/facets/module/protected_conflict.rb +0 -1
  1565. data/lib/core/facets/module/public_conflict.rb +0 -1
  1566. data/lib/core/facets/module/redef.rb +0 -1
  1567. data/lib/core/facets/module/redefine_method.rb +0 -1
  1568. data/lib/core/facets/module/redirect.rb +0 -1
  1569. data/lib/core/facets/module/redirect_method.rb +0 -1
  1570. data/lib/core/facets/module/remove.rb +0 -1
  1571. data/lib/core/facets/module/rename.rb +0 -1
  1572. data/lib/core/facets/module/rename_method.rb +0 -1
  1573. data/lib/core/facets/module/require.rb +0 -57
  1574. data/lib/core/facets/module/revisal.rb +0 -1
  1575. data/lib/core/facets/module/traits.rb +0 -146
  1576. data/lib/core/facets/module/wrap.rb +0 -1
  1577. data/lib/core/facets/module/wrap_method.rb +0 -1
  1578. data/lib/core/facets/nilclass.rb +0 -2
  1579. data/lib/core/facets/nilclass/ergo.rb +0 -1
  1580. data/lib/core/facets/nilclass/status.rb +0 -47
  1581. data/lib/core/facets/nilclass/to_bool.rb +0 -1
  1582. data/lib/core/facets/nilclass/to_f.rb +0 -1
  1583. data/lib/core/facets/nilclass/to_h.rb +0 -1
  1584. data/lib/core/facets/numeric.rb +0 -2
  1585. data/lib/core/facets/numeric/approx.rb +0 -1
  1586. data/lib/core/facets/numeric/distance.rb +0 -1
  1587. data/lib/core/facets/numeric/pred.rb +0 -1
  1588. data/lib/core/facets/numeric/round.rb +0 -78
  1589. data/lib/core/facets/numeric/round_at.rb +0 -1
  1590. data/lib/core/facets/numeric/round_to.rb +0 -1
  1591. data/lib/core/facets/numeric/succ.rb +0 -1
  1592. data/lib/core/facets/numeric/to_b.rb +0 -1
  1593. data/lib/core/facets/proc.rb +0 -4
  1594. data/lib/core/facets/proc/bind.rb +0 -64
  1595. data/lib/core/facets/proc/compose.rb +0 -41
  1596. data/lib/core/facets/proc/fn.rb +0 -12
  1597. data/lib/core/facets/proc/op_mul.rb +0 -1
  1598. data/lib/core/facets/proc/to_h.rb +0 -1
  1599. data/lib/core/facets/proc/to_method.rb +0 -1
  1600. data/lib/core/facets/proc/update.rb +0 -9
  1601. data/lib/core/facets/range.rb +0 -2
  1602. data/lib/core/facets/range/combine.rb +0 -47
  1603. data/lib/core/facets/range/overlap.rb +0 -74
  1604. data/lib/core/facets/range/to_r.rb +0 -1
  1605. data/lib/core/facets/range/to_range.rb +0 -1
  1606. data/lib/core/facets/range/umbrella.rb +0 -1
  1607. data/lib/core/facets/range/within.rb +0 -1
  1608. data/lib/core/facets/regexp.rb +0 -1
  1609. data/lib/core/facets/regexp/arity.rb +0 -17
  1610. data/lib/core/facets/regexp/to_re.rb +0 -1
  1611. data/lib/core/facets/regexp/to_regexp.rb +0 -1
  1612. data/lib/core/facets/stackable.rb +0 -86
  1613. data/lib/core/facets/string.rb +0 -20
  1614. data/lib/core/facets/string/_crypt.rb +0 -1
  1615. data/lib/core/facets/string/align.rb +0 -92
  1616. data/lib/core/facets/string/align_center.rb +0 -1
  1617. data/lib/core/facets/string/align_left.rb +0 -1
  1618. data/lib/core/facets/string/align_right.rb +0 -1
  1619. data/lib/core/facets/string/at.rb +0 -1
  1620. data/lib/core/facets/string/blank.rb +0 -16
  1621. data/lib/core/facets/string/bracket.rb +0 -103
  1622. data/lib/core/facets/string/brief.rb +0 -1
  1623. data/lib/core/facets/string/bytes.rb +0 -1
  1624. data/lib/core/facets/string/camelcase.rb +0 -1
  1625. data/lib/core/facets/string/capitalized.rb +0 -1
  1626. data/lib/core/facets/string/case.rb +0 -84
  1627. data/lib/core/facets/string/chars.rb +0 -1
  1628. data/lib/core/facets/string/cleave.rb +0 -1
  1629. data/lib/core/facets/string/cmp.rb +0 -1
  1630. data/lib/core/facets/string/crypt.rb +0 -22
  1631. data/lib/core/facets/string/dequote.rb +0 -1
  1632. data/lib/core/facets/string/divide.rb +0 -1
  1633. data/lib/core/facets/string/downcase.rb +0 -1
  1634. data/lib/core/facets/string/each_char.rb +0 -1
  1635. data/lib/core/facets/string/each_character.rb +0 -1
  1636. data/lib/core/facets/string/each_word.rb +0 -1
  1637. data/lib/core/facets/string/ends_with.rb +0 -1
  1638. data/lib/core/facets/string/expand_tabs.rb +0 -1
  1639. data/lib/core/facets/string/filter.rb +0 -60
  1640. data/lib/core/facets/string/first.rb +0 -1
  1641. data/lib/core/facets/string/fold.rb +0 -1
  1642. data/lib/core/facets/string/format.rb +0 -1
  1643. data/lib/core/facets/string/indent.rb +0 -1
  1644. data/lib/core/facets/string/index_all.rb +0 -1
  1645. data/lib/core/facets/string/indexable.rb +0 -165
  1646. data/lib/core/facets/string/interpolate.rb +0 -35
  1647. data/lib/core/facets/string/last.rb +0 -1
  1648. data/lib/core/facets/string/lchomp.rb +0 -1
  1649. data/lib/core/facets/string/line_wrap.rb +0 -1
  1650. data/lib/core/facets/string/lines.rb +0 -1
  1651. data/lib/core/facets/string/lowercase.rb +0 -1
  1652. data/lib/core/facets/string/margin.rb +0 -1
  1653. data/lib/core/facets/string/mscan.rb +0 -1
  1654. data/lib/core/facets/string/nchar.rb +0 -80
  1655. data/lib/core/facets/string/op.rb +0 -13
  1656. data/lib/core/facets/string/op_minus.rb +0 -1
  1657. data/lib/core/facets/string/outdent.rb +0 -1
  1658. data/lib/core/facets/string/partitions.rb +0 -78
  1659. data/lib/core/facets/string/peek.rb +0 -1
  1660. data/lib/core/facets/string/poke.rb +0 -1
  1661. data/lib/core/facets/string/pop.rb +0 -1
  1662. data/lib/core/facets/string/pull.rb +0 -1
  1663. data/lib/core/facets/string/push.rb +0 -1
  1664. data/lib/core/facets/string/quote.rb +0 -1
  1665. data/lib/core/facets/string/range.rb +0 -54
  1666. data/lib/core/facets/string/range_all.rb +0 -1
  1667. data/lib/core/facets/string/range_of_line.rb +0 -1
  1668. data/lib/core/facets/string/regesc.rb +0 -30
  1669. data/lib/core/facets/string/rewrite.rb +0 -1
  1670. data/lib/core/facets/string/scan.rb +0 -54
  1671. data/lib/core/facets/string/shatter.rb +0 -1
  1672. data/lib/core/facets/string/shift.rb +0 -1
  1673. data/lib/core/facets/string/snakecase.rb +0 -1
  1674. data/lib/core/facets/string/splice.rb +0 -24
  1675. data/lib/core/facets/string/sprintf.rb +0 -1
  1676. data/lib/core/facets/string/stackable.rb +0 -181
  1677. data/lib/core/facets/string/starts_with.rb +0 -1
  1678. data/lib/core/facets/string/store.rb +0 -1
  1679. data/lib/core/facets/string/succ.rb +0 -1
  1680. data/lib/core/facets/string/tab.rb +0 -1
  1681. data/lib/core/facets/string/taballto.rb +0 -1
  1682. data/lib/core/facets/string/tabs.rb +0 -99
  1683. data/lib/core/facets/string/tabto.rb +0 -1
  1684. data/lib/core/facets/string/titlecase.rb +0 -1
  1685. data/lib/core/facets/string/to_b.rb +0 -1
  1686. data/lib/core/facets/string/to_const.rb +0 -1
  1687. data/lib/core/facets/string/to_date.rb +0 -1
  1688. data/lib/core/facets/string/to_proc.rb +0 -1
  1689. data/lib/core/facets/string/to_re.rb +0 -1
  1690. data/lib/core/facets/string/to_rx.rb +0 -1
  1691. data/lib/core/facets/string/to_time.rb +0 -1
  1692. data/lib/core/facets/string/unbracket.rb +0 -1
  1693. data/lib/core/facets/string/unshift.rb +0 -1
  1694. data/lib/core/facets/string/upcase.rb +0 -1
  1695. data/lib/core/facets/string/uppercase.rb +0 -1
  1696. data/lib/core/facets/string/whitespace.rb +0 -1
  1697. data/lib/core/facets/string/word_filter.rb +0 -1
  1698. data/lib/core/facets/string/word_wrap.rb +0 -1
  1699. data/lib/core/facets/string/words.rb +0 -1
  1700. data/lib/core/facets/string/wrap.rb +0 -189
  1701. data/lib/core/facets/symbol.rb +0 -8
  1702. data/lib/core/facets/symbol/chomp.rb +0 -23
  1703. data/lib/core/facets/symbol/generate.rb +0 -20
  1704. data/lib/core/facets/symbol/lchomp.rb +0 -1
  1705. data/lib/core/facets/symbol/not.rb +0 -28
  1706. data/lib/core/facets/symbol/op_tilde.rb +0 -1
  1707. data/lib/core/facets/symbol/pad.rb +0 -1
  1708. data/lib/core/facets/symbol/shadow.rb +0 -23
  1709. data/lib/core/facets/symbol/succ.rb +0 -20
  1710. data/lib/core/facets/symbol/to_const.rb +0 -1
  1711. data/lib/core/facets/symbol/to_proc.rb +0 -39
  1712. data/lib/core/facets/time.rb +0 -3
  1713. data/lib/core/facets/time/change.rb +0 -28
  1714. data/lib/core/facets/time/stamp.rb +0 -47
  1715. data/lib/core/facets/time/to_date.rb +0 -1
  1716. data/lib/core/facets/time/to_s.rb +0 -1
  1717. data/lib/core/facets/time/to_time.rb +0 -1
  1718. data/lib/core/facets/unboundmethod.rb +0 -5
  1719. data/lib/core/facets/unboundmethod/name.rb +0 -26
  1720. data/lib/mixin/facets/binreadable.rb +0 -224
  1721. data/lib/mixin/facets/buildable.rb +0 -82
  1722. data/lib/mixin/facets/cloneable.rb +0 -90
  1723. data/lib/mixin/facets/enumerablepass.rb +0 -204
  1724. data/lib/mixin/facets/expirable.rb +0 -89
  1725. data/lib/mixin/facets/fileable.rb +0 -155
  1726. data/lib/mixin/facets/instantiable.rb +0 -45
  1727. data/lib/mixin/facets/multiton.rb +0 -357
  1728. data/lib/mixin/facets/registerable.rb +0 -36
  1729. data/lib/mixin/facets/tasksystem.rb +0 -350
  1730. data/lib/mixin/facets/uninheritable.rb +0 -55
  1731. data/lib/mixin/facets/validation.rb +0 -445
  1732. data/lib/more/facets/advice.rb +0 -159
  1733. data/lib/more/facets/annotations.rb +0 -154
  1734. data/lib/more/facets/ansicode.rb +0 -268
  1735. data/lib/more/facets/aop.rb +0 -205
  1736. data/lib/more/facets/arguments.rb +0 -322
  1737. data/lib/more/facets/attributes.rb +0 -133
  1738. data/lib/more/facets/autoreload.rb +0 -150
  1739. data/lib/more/facets/bbcode.rb +0 -346
  1740. data/lib/more/facets/behavior.rb +0 -91
  1741. data/lib/more/facets/bytes.rb +0 -164
  1742. data/lib/more/facets/capsule.rb +0 -254
  1743. data/lib/more/facets/class_extension.rb +0 -94
  1744. data/lib/more/facets/classmethods.rb +0 -157
  1745. data/lib/more/facets/command.rb +0 -479
  1746. data/lib/more/facets/compare_on.rb +0 -91
  1747. data/lib/more/facets/console.rb +0 -107
  1748. data/lib/more/facets/continuation.rb +0 -54
  1749. data/lib/more/facets/crypt.rb +0 -428
  1750. data/lib/more/facets/curry.rb +0 -67
  1751. data/lib/more/facets/cut.rb +0 -190
  1752. data/lib/more/facets/daemonize.rb +0 -50
  1753. data/lib/more/facets/date.rb +0 -79
  1754. data/lib/more/facets/dependency.rb +0 -135
  1755. data/lib/more/facets/duration.rb +0 -534
  1756. data/lib/more/facets/elementor.rb +0 -221
  1757. data/lib/more/facets/eventhook.rb +0 -121
  1758. data/lib/more/facets/fileutils.rb +0 -443
  1759. data/lib/more/facets/getoptlong.rb +0 -83
  1760. data/lib/more/facets/hash/keyize.rb +0 -181
  1761. data/lib/more/facets/inheritor.rb +0 -108
  1762. data/lib/more/facets/instantise.rb +0 -85
  1763. data/lib/more/facets/interface.rb +0 -230
  1764. data/lib/more/facets/lazy.rb +0 -245
  1765. data/lib/more/facets/let.rb +0 -71
  1766. data/lib/more/facets/logger.rb +0 -202
  1767. data/lib/more/facets/main.rb +0 -77
  1768. data/lib/more/facets/memoize.rb +0 -110
  1769. data/lib/more/facets/multipliers.rb +0 -99
  1770. data/lib/more/facets/namespace.rb +0 -113
  1771. data/lib/more/facets/ostruct.rb +0 -226
  1772. data/lib/more/facets/overload.rb +0 -100
  1773. data/lib/more/facets/paramix.rb +0 -148
  1774. data/lib/more/facets/pathname.rb +0 -120
  1775. data/lib/more/facets/prepend.rb +0 -92
  1776. data/lib/more/facets/prototype.rb +0 -89
  1777. data/lib/more/facets/random.rb +0 -373
  1778. data/lib/more/facets/rbconfig.rb +0 -55
  1779. data/lib/more/facets/rbsystem.rb +0 -227
  1780. data/lib/more/facets/recursive.rb +0 -67
  1781. data/lib/more/facets/reflection.rb +0 -103
  1782. data/lib/more/facets/settings.rb +0 -250
  1783. data/lib/more/facets/shellwords.rb +0 -43
  1784. data/lib/more/facets/snapshot.rb +0 -183
  1785. data/lib/more/facets/stylize.rb +0 -213
  1786. data/lib/more/facets/thread.rb +0 -55
  1787. data/lib/more/facets/times.rb +0 -346
  1788. data/lib/more/facets/tracepoint.rb +0 -194
  1789. data/lib/more/facets/typecast.rb +0 -233
  1790. data/lib/more/facets/uploadutils.rb +0 -441
  1791. data/lib/more/facets/yaml.rb +0 -40
  1792. data/lib/more/facets/ziputils.rb +0 -357
  1793. data/meta/MANIFEST +0 -947
  1794. data/meta/VERSION +0 -1
  1795. data/task/install +0 -98
  1796. data/task/rdoc +0 -5
  1797. data/task/test +0 -40
  1798. data/test/class/test_buildingblock.rb +0 -36
  1799. data/test/core/array/test_delete.rb +0 -38
  1800. data/test/core/array/test_indexable.rb +0 -126
  1801. data/test/core/array/test_merge.rb +0 -29
  1802. data/test/core/array/test_pad.rb +0 -35
  1803. data/test/core/array/test_rotate.rb +0 -31
  1804. data/test/core/array/test_select.rb +0 -20
  1805. data/test/core/binding/test_caller.rb +0 -47
  1806. data/test/core/binding/test_defined.rb +0 -17
  1807. data/test/core/binding/test_eval.rb +0 -17
  1808. data/test/core/binding/test_here.rb +0 -17
  1809. data/test/core/binding/test_self.rb +0 -17
  1810. data/test/core/binding/test_vars.rb +0 -31
  1811. data/test/core/class/test_descendents.rb +0 -17
  1812. data/test/core/class/test_initializer.rb +0 -19
  1813. data/test/core/class/test_remove_descendents.rb +0 -19
  1814. data/test/core/comparable/test_bound.rb +0 -43
  1815. data/test/core/comparable/test_cmp.rb +0 -63
  1816. data/test/core/dir/test_parent.rb +0 -14
  1817. data/test/core/dir/test_recurse.rb +0 -32
  1818. data/test/core/dir/test_traverse.rb +0 -30
  1819. data/test/core/enumerable/test_cartesian.rb +0 -39
  1820. data/test/core/enumerable/test_collect.rb +0 -63
  1821. data/test/core/enumerable/test_combination.rb +0 -48
  1822. data/test/core/enumerable/test_count.rb +0 -63
  1823. data/test/core/enumerable/test_each.rb +0 -77
  1824. data/test/core/enumerable/test_mash.rb +0 -51
  1825. data/test/core/enumerable/test_permutation.rb +0 -16
  1826. data/test/core/enumerable/test_split.rb +0 -52
  1827. data/test/core/exception/test_detail.rb +0 -19
  1828. data/test/core/file/test_null.rb +0 -12
  1829. data/test/core/file/test_read.rb +0 -34
  1830. data/test/core/file/test_sanitize.rb +0 -52
  1831. data/test/core/file/test_split_all.rb +0 -32
  1832. data/test/core/file/test_write.rb +0 -76
  1833. data/test/core/filetest/test_root.rb +0 -14
  1834. data/test/core/hash/test_alias.rb +0 -18
  1835. data/test/core/hash/test_at.rb +0 -17
  1836. data/test/core/hash/test_autonew.rb +0 -13
  1837. data/test/core/hash/test_collate.rb +0 -33
  1838. data/test/core/hash/test_delete.rb +0 -30
  1839. data/test/core/hash/test_each_with_key.rb +0 -16
  1840. data/test/core/hash/test_has_keys.rb +0 -19
  1841. data/test/core/hash/test_insert.rb +0 -15
  1842. data/test/core/hash/test_inverse.rb +0 -17
  1843. data/test/core/hash/test_op.rb +0 -51
  1844. data/test/core/hash/test_rekey.rb +0 -39
  1845. data/test/core/hash/test_reverse_merge.rb +0 -16
  1846. data/test/core/hash/test_select.rb +0 -43
  1847. data/test/core/hash/test_swap.rb +0 -21
  1848. data/test/core/hash/test_traverse.rb +0 -24
  1849. data/test/core/hash/test_update.rb +0 -35
  1850. data/test/core/hash/test_zipnew.rb +0 -15
  1851. data/test/core/integer/test_bitmask.rb +0 -53
  1852. data/test/core/integer/test_factorial.rb +0 -17
  1853. data/test/core/integer/test_multiple.rb +0 -37
  1854. data/test/core/integer/test_of.rb +0 -21
  1855. data/test/core/kernel/test_callstack.rb +0 -21
  1856. data/test/core/kernel/test_constant.rb +0 -21
  1857. data/test/core/kernel/test_deepcopy.rb +0 -30
  1858. data/test/core/kernel/test_instance.rb +0 -63
  1859. data/test/core/kernel/test_metaid.rb +0 -47
  1860. data/test/core/kernel/test_populate.rb +0 -49
  1861. data/test/core/kernel/test_report.rb +0 -9
  1862. data/test/core/kernel/test_super.rb +0 -53
  1863. data/test/core/kernel/test_tap.rb +0 -21
  1864. data/test/core/kernel/test_val.rb +0 -42
  1865. data/test/core/kernel/test_withattr.rb +0 -38
  1866. data/test/core/matchdata/test_matchset.rb +0 -24
  1867. data/test/core/module/test_alias.rb +0 -47
  1868. data/test/core/module/test_cattr.rb +0 -50
  1869. data/test/core/module/test_include.rb +0 -43
  1870. data/test/core/module/test_modify.rb +0 -177
  1871. data/test/core/module/test_name.rb +0 -47
  1872. data/test/core/module/test_traits.rb +0 -51
  1873. data/test/core/numeric/test_round.rb +0 -59
  1874. data/test/core/proc/test_bind.rb +0 -38
  1875. data/test/core/proc/test_compose.rb +0 -28
  1876. data/test/core/range/test_combine.rb +0 -21
  1877. data/test/core/range/test_overlap.rb +0 -39
  1878. data/test/core/regexp/test_arity.rb +0 -20
  1879. data/test/core/string/test_blank.rb +0 -18
  1880. data/test/core/string/test_case.rb +0 -29
  1881. data/test/core/string/test_crypt.rb +0 -17
  1882. data/test/core/string/test_filter.rb +0 -21
  1883. data/test/core/string/test_indexable.rb +0 -68
  1884. data/test/core/string/test_nchar.rb +0 -16
  1885. data/test/core/string/test_op.rb +0 -14
  1886. data/test/core/string/test_partitions.rb +0 -52
  1887. data/test/core/string/test_range.rb +0 -25
  1888. data/test/core/string/test_regesc.rb +0 -21
  1889. data/test/core/string/test_scan.rb +0 -31
  1890. data/test/core/string/test_stackable.rb +0 -94
  1891. data/test/core/string/test_tabs.rb +0 -236
  1892. data/test/core/string/test_wrap.rb +0 -82
  1893. data/test/core/symbol/test_chomp.rb +0 -17
  1894. data/test/core/symbol/test_generate.rb +0 -13
  1895. data/test/core/symbol/test_not.rb +0 -16
  1896. data/test/core/symbol/test_shadow.rb +0 -14
  1897. data/test/core/symbol/test_succ.rb +0 -15
  1898. data/test/core/symbol/test_to_proc.rb +0 -35
  1899. data/test/core/test_conversion.rb +0 -207
  1900. data/test/core/time/test_change.rb +0 -17
  1901. data/test/core/time/test_elapse.rb +0 -16
  1902. data/test/core/time/test_stamp.rb +0 -28
  1903. data/test/mixin/test_buildable.rb +0 -40
  1904. data/test/mixin/test_instantiable.rb +0 -24
  1905. data/test/more/hash/test_keyize.rb +0 -45
  1906. data/test/more/test_advice.rb +0 -71
  1907. data/test/more/test_annotations.rb +0 -99
  1908. data/test/more/test_aop.rb +0 -49
  1909. data/test/more/test_arguments.rb +0 -56
  1910. data/test/more/test_attributes.rb +0 -26
  1911. data/test/more/test_compare_on.rb +0 -44
  1912. data/test/more/test_curry.rb +0 -28
  1913. data/test/more/test_cut.rb +0 -22
  1914. data/test/more/test_elementor.rb +0 -59
  1915. data/test/more/test_interface.rb +0 -84
  1916. data/test/more/test_let.rb +0 -18
  1917. data/test/more/test_namespace.rb +0 -78
  1918. data/test/more/test_overload.rb +0 -44
  1919. data/test/more/test_paramix.rb +0 -86
  1920. data/test/more/test_stylize.rb +0 -139
  1921. data/test/more/test_thread.rb +0 -23
  1922. data/test/more/test_typecast.rb +0 -56
@@ -0,0 +1,1478 @@
1
+ #!/usr/bin/env ruby
2
+ # Setup.rb v3.5.0
3
+ # Copyright (c) 2008 Minero Aoki, Trans
4
+ #
5
+ # This program is free software.
6
+ # You can distribute/modify this program under the terms of
7
+ # the GNU LGPL, Lesser General Public License version 2.1.
8
+
9
+ # Need the package name, and whether to generate documentation.
10
+ PACKAGE = File.read(Dir.glob('{.,meta/}unixname{,.txt}', File::FNM_CASEFOLD).first).strip
11
+ GENERATE_DOCS = false # package developer may want to deactivate
12
+
13
+ require 'optparse'
14
+ require 'rbconfig'
15
+
16
+ class SetupError < StandardError; end
17
+
18
+ # Typical installation procedure:
19
+ #
20
+ # $ ./setup.rb
21
+ #
22
+ # -- or --
23
+ #
24
+ # $ ./setup.rb config
25
+ # $ ./setup.rb setup
26
+ # $ ./setup.rb install
27
+ #
28
+ # @all@ and @install@ may require root privileges.
29
+ #
30
+ # This update only works with Ruby 1.6.3 and above.
31
+ #
32
+ # TODO: Update shebangs on install of binaries.
33
+ # TODO: Make cleaning more comprehensive (?)
34
+
35
+ module Setup
36
+ Version = "3.5.0"
37
+
38
+ Copyright = "Copyright (c) 2000,2008 Minero Aoki, Trans"
39
+
40
+ # ConfigTable stores platform information.
41
+
42
+ class ConfigTable
43
+
44
+ RBCONFIG = ::Config::CONFIG
45
+
46
+ CONFIGFILE = '.config'
47
+
48
+ DESCRIPTIONS = [
49
+ [:prefix , :path, 'path prefix of target environment'],
50
+ [:bindir , :path, 'directory for commands'],
51
+ [:libdir , :path, 'directory for libraries'],
52
+ [:datadir , :path, 'directory for shared data'],
53
+ [:mandir , :path, 'directory for man pages'],
54
+ [:docdir , :path, 'Directory for documentation'],
55
+ [:sysconfdir , :path, 'directory for system configuration files'],
56
+ [:localstatedir , :path, 'directory for local state data'],
57
+ [:libruby , :path, 'directory for ruby libraries'],
58
+ [:librubyver , :path, 'directory for standard ruby libraries'],
59
+ [:librubyverarch , :path, 'directory for standard ruby extensions'],
60
+ [:siteruby , :path, 'directory for version-independent aux ruby libraries'],
61
+ [:siterubyver , :path, 'directory for aux ruby libraries'],
62
+ [:siterubyverarch , :path, 'directory for aux ruby binaries'],
63
+ [:rbdir , :path, 'directory for ruby scripts'],
64
+ [:sodir , :path, 'directory for ruby extentions'],
65
+ [:rubypath , :prog, 'path to set to #! line'],
66
+ [:rubyprog , :prog, 'ruby program using for installation'],
67
+ [:makeprog , :prog, 'make program to compile ruby extentions'],
68
+ [:extconfopt , :name, 'options to pass-thru to extconf.rb'],
69
+ [:without_ext , :bool, 'do not compile/install ruby extentions'],
70
+ [:without_doc , :bool, 'do not generate html documentation'],
71
+ [:shebang , :pick, 'shebang line (#!) editing mode (all,ruby,never)'],
72
+ [:doctemplate , :pick, 'document template to use (html|xml)'],
73
+ [:testrunner , :pick, 'Runner to use for testing (auto|console|tk|gtk|gtk2)'],
74
+ [:installdirs , :pick, 'install location mode (std,site,home :: libruby,site_ruby,$HOME)']
75
+ ]
76
+
77
+ # List of configurable options.
78
+ OPTIONS = DESCRIPTIONS.collect{ |(k,t,v)| k.to_s }
79
+
80
+ # Pathname attribute. Pathnames are automatically expanded
81
+ # unless they start with '$', a path variable.
82
+ def self.attr_pathname(name)
83
+ class_eval %{
84
+ def #{name}
85
+ @#{name}.gsub(%r<\\$([^/]+)>){ self[$1] }
86
+ end
87
+ def #{name}=(path)
88
+ raise SetupError, "bad config: #{name.to_s.upcase} requires argument" unless path
89
+ @#{name} = (path[0,1] == '$' ? path : File.expand_path(path))
90
+ end
91
+ }
92
+ end
93
+
94
+ # List of pathnames. These are not expanded though.
95
+ def self.attr_pathlist(name)
96
+ class_eval %{
97
+ def #{name}
98
+ @#{name}
99
+ end
100
+ def #{name}=(pathlist)
101
+ case pathlist
102
+ when Array
103
+ @#{name} = pathlist
104
+ else
105
+ @#{name} = pathlist.to_s.split(/[:;,]/)
106
+ end
107
+ end
108
+ }
109
+ end
110
+
111
+ # Adds boolean support.
112
+ def self.attr_accessor(*names)
113
+ bools, attrs = names.partition{ |name| name.to_s =~ /\?$/ }
114
+ attr_boolean *bools
115
+ super *attrs
116
+ end
117
+
118
+ # Boolean attribute. Can be assigned true, false, nil, or
119
+ # a string matching yes|true|y|t or no|false|n|f.
120
+ def self.attr_boolean(*names)
121
+ names.each do |name|
122
+ name = name.to_s.chomp('?')
123
+ attr_reader name # MAYBE: Deprecate
124
+ code = %{
125
+ def #{name}?; @#{name}; end
126
+ def #{name}=(val)
127
+ case val
128
+ when true, false, nil
129
+ @#{name} = val
130
+ else
131
+ case val.to_s.downcase
132
+ when 'y', 'yes', 't', 'true'
133
+ @#{name} = true
134
+ when 'n', 'no', 'f', 'false'
135
+ @#{name} = false
136
+ else
137
+ raise SetupError, "bad config: use #{name.upcase}=(yes|no) [\#{val}]"
138
+ end
139
+ end
140
+ end
141
+ }
142
+ class_eval code
143
+ end
144
+ end
145
+
146
+ DESCRIPTIONS.each do |k,t,d|
147
+ case t
148
+ when :path
149
+ attr_pathname k
150
+ when :bool
151
+ attr_boolean k
152
+ else
153
+ attr_accessor k
154
+ end
155
+ end
156
+
157
+ # # provide verbosity (default is true)
158
+ # attr_accessor :verbose?
159
+
160
+ # # don't actually write files to system
161
+ # attr_accessor :no_harm?
162
+
163
+ # shebang has only three options.
164
+ def shebang=(val)
165
+ if %w(all ruby never).include?(val)
166
+ @shebang = val
167
+ else
168
+ raise SetupError, "bad config: use SHEBANG=(all|ruby|never) [#{val}]"
169
+ end
170
+ end
171
+
172
+ # installdirs has only three options; and it has side-effects.
173
+ def installdirs=(val)
174
+ @installdirs = val
175
+ case val.to_s
176
+ when 'std'
177
+ self.rbdir = '$librubyver'
178
+ self.sodir = '$librubyverarch'
179
+ when 'site'
180
+ self.rbdir = '$siterubyver'
181
+ self.sodir = '$siterubyverarch'
182
+ when 'home'
183
+ raise SetupError, 'HOME is not set.' unless ENV['HOME']
184
+ self.prefix = ENV['HOME']
185
+ self.rbdir = '$libdir/ruby'
186
+ self.sodir = '$libdir/ruby'
187
+ else
188
+ raise SetupError, "bad config: use INSTALLDIRS=(std|site|home|local) [#{val}]"
189
+ end
190
+ end
191
+
192
+ # New ConfigTable
193
+ def initialize(values=nil)
194
+ initialize_defaults
195
+ if values
196
+ values.each{ |k,v| __send__("#{k}=", v) }
197
+ end
198
+ yeild(self) if block_given?
199
+ load_config if File.file?(CONFIGFILE)
200
+ end
201
+
202
+ # Assign CONFIG defaults
203
+ #
204
+ # TODO: Does this handle 'nmake' on windows?
205
+ def initialize_defaults
206
+ prefix = RBCONFIG['prefix']
207
+
208
+ rubypath = File.join(RBCONFIG['bindir'], RBCONFIG['ruby_install_name'] + RBCONFIG['EXEEXT'])
209
+
210
+ major = RBCONFIG['MAJOR'].to_i
211
+ minor = RBCONFIG['MINOR'].to_i
212
+ teeny = RBCONFIG['TEENY'].to_i
213
+ version = "#{major}.#{minor}"
214
+
215
+ # ruby ver. >= 1.4.4?
216
+ newpath_p = ((major >= 2) or
217
+ ((major == 1) and
218
+ ((minor >= 5) or
219
+ ((minor == 4) and (teeny >= 4)))))
220
+
221
+ if RBCONFIG['rubylibdir']
222
+ # V > 1.6.3
223
+ libruby = "#{prefix}/lib/ruby"
224
+ librubyver = RBCONFIG['rubylibdir']
225
+ librubyverarch = RBCONFIG['archdir']
226
+ siteruby = RBCONFIG['sitedir']
227
+ siterubyver = RBCONFIG['sitelibdir']
228
+ siterubyverarch = RBCONFIG['sitearchdir']
229
+ elsif newpath_p
230
+ # 1.4.4 <= V <= 1.6.3
231
+ libruby = "#{prefix}/lib/ruby"
232
+ librubyver = "#{prefix}/lib/ruby/#{version}"
233
+ librubyverarch = "#{prefix}/lib/ruby/#{version}/#{c['arch']}"
234
+ siteruby = RBCONFIG['sitedir']
235
+ siterubyver = "$siteruby/#{version}"
236
+ siterubyverarch = "$siterubyver/#{RBCONFIG['arch']}"
237
+ else
238
+ # V < 1.4.4
239
+ libruby = "#{prefix}/lib/ruby"
240
+ librubyver = "#{prefix}/lib/ruby/#{version}"
241
+ librubyverarch = "#{prefix}/lib/ruby/#{version}/#{c['arch']}"
242
+ siteruby = "#{prefix}/lib/ruby/#{version}/site_ruby"
243
+ siterubyver = siteruby
244
+ siterubyverarch = "$siterubyver/#{RBCONFIG['arch']}"
245
+ end
246
+
247
+ if arg = RBCONFIG['configure_args'].split.detect {|arg| /--with-make-prog=/ =~ arg }
248
+ makeprog = arg.sub(/'/, '').split(/=/, 2)[1]
249
+ else
250
+ makeprog = 'make'
251
+ end
252
+
253
+ parameterize = lambda do |path|
254
+ val = RBCONFIG[path]
255
+ raise "Unknown path -- #{path}" if val.nil?
256
+ val.sub(/\A#{Regexp.quote(prefix)}/, '$prefix')
257
+ end
258
+
259
+ self.prefix = prefix
260
+ self.bindir = parameterize['bindir']
261
+ self.libdir = parameterize['libdir']
262
+ self.datadir = parameterize['datadir']
263
+ self.mandir = parameterize['mandir']
264
+ self.docdir = File.dirname(parameterize['docdir']) # b/c of trailing $(PACKAGE)
265
+ self.sysconfdir = parameterize['sysconfdir']
266
+ self.localstatedir = parameterize['localstatedir']
267
+ self.libruby = libruby
268
+ self.librubyver = librubyver
269
+ self.librubyverarch = librubyverarch
270
+ self.siteruby = siteruby
271
+ self.siterubyver = siterubyver
272
+ self.siterubyverarch = siterubyverarch
273
+ self.rbdir = '$siterubyver'
274
+ self.sodir = '$siterubyverarch'
275
+ self.rubypath = rubypath
276
+ self.rubyprog = rubypath
277
+ self.makeprog = makeprog
278
+ self.extconfopt = ''
279
+ self.shebang = 'ruby'
280
+ self.without_ext = 'no'
281
+ self.without_doc = 'yes'
282
+ self.doctemplate = 'html'
283
+ self.testrunner = 'auto'
284
+ self.installdirs = 'site'
285
+ end
286
+
287
+ # Get configuration from environment.
288
+ def env_config
289
+ OPTIONS.each do |name|
290
+ if value = ENV[name]
291
+ __send__("#{name}=",value)
292
+ end
293
+ end
294
+ end
295
+
296
+ # Load configuration.
297
+ def load_config
298
+ #if File.file?(CONFIGFILE)
299
+ begin
300
+ File.foreach(CONFIGFILE) do |line|
301
+ k, v = *line.split(/=/, 2)
302
+ __send__("#{k}=",v.strip) #self[k] = v.strip
303
+ end
304
+ rescue Errno::ENOENT
305
+ raise SetupError, $!.message + "\n#{File.basename($0)} config first"
306
+ end
307
+ #end
308
+ end
309
+
310
+ # Save configuration.
311
+ def save_config
312
+ File.open(CONFIGFILE, 'w') do |f|
313
+ OPTIONS.each do |name|
314
+ val = self[name]
315
+ f << "#{name}=#{val}\n"
316
+ end
317
+ end
318
+ end
319
+
320
+ def show
321
+ fmt = "%-20s %s\n"
322
+ OPTIONS.each do |name|
323
+ value = self[name]
324
+ reslv = __send__(name)
325
+ case reslv
326
+ when String
327
+ reslv = "(none)" if reslv.empty?
328
+ when false, nil
329
+ reslv = "no"
330
+ when true
331
+ reslv = "yes"
332
+ end
333
+ printf fmt, name, reslv
334
+ end
335
+ end
336
+
337
+ #
338
+
339
+ def extconfs
340
+ @extconfs ||= Dir['ext/**/extconf.rb']
341
+ end
342
+
343
+ def extensions
344
+ @extensions ||= extconfs.collect{ |f| File.dirname(f) }
345
+ end
346
+
347
+ def compiles?
348
+ !extensions.empty?
349
+ end
350
+
351
+ private
352
+
353
+ # Get unresloved attribute.
354
+ def [](name)
355
+ instance_variable_get("@#{name}")
356
+ end
357
+
358
+ # Set attribute.
359
+ def []=(name, value)
360
+ instance_variable_set("@#{name}", value)
361
+ end
362
+
363
+ # Resolved attribute. (for paths)
364
+ #def resolve(name)
365
+ # self[name].gsub(%r<\\$([^/]+)>){ self[$1] }
366
+ #end
367
+
368
+ end
369
+
370
+ # Installer class handles the actual install procedure,
371
+ # as well as the other tasks, such as testing.
372
+
373
+ class Installer
374
+
375
+ MANIFEST = '.installedfiles'
376
+
377
+ FILETYPES = %w( bin lib ext data conf man doc )
378
+
379
+ TASK_DESCRIPTIONS = [
380
+ [ 'all', 'do config, setup, then install' ],
381
+ [ 'config', 'saves your configurations' ],
382
+ [ 'show', 'shows current configuration' ],
383
+ [ 'setup', 'compiles ruby extentions and others' ],
384
+ [ 'doc', 'generate html documentation' ],
385
+ [ 'index', 'generate index documentation' ],
386
+ [ 'install', 'installs files' ],
387
+ [ 'test', 'run all tests in test/' ],
388
+ [ 'clean', "does `make clean' for each extention" ],
389
+ [ 'distclean',"does `make distclean' for each extention" ]
390
+ ]
391
+
392
+ TASKS = %w(all config show setup test install uninstall doc index clean distclean)
393
+
394
+ # Configuration
395
+ attr :config
396
+
397
+ attr_writer :no_harm
398
+ attr_writer :verbose
399
+ attr_writer :quiet
400
+
401
+ attr_accessor :install_prefix
402
+
403
+ # New Installer.
404
+ def initialize #:yield:
405
+ srcroot = '.'
406
+ objroot = '.'
407
+
408
+ @config = ConfigTable.new
409
+
410
+ @srcdir = File.expand_path(srcroot)
411
+ @objdir = File.expand_path(objroot)
412
+ @currdir = '.'
413
+
414
+ self.quiet = ENV['quiet'] if ENV['quiet']
415
+ self.verbose = ENV['verbose'] if ENV['verbose']
416
+ self.no_harm = ENV['nowrite'] if ENV['nowrite']
417
+
418
+ yield(self) if block_given?
419
+ end
420
+
421
+ def inspect
422
+ "#<#{self.class} #{File.basename(@srcdir)}>"
423
+ end
424
+
425
+ # Are we running an installation?
426
+ def installation?; @installation; end
427
+ def installation!; @installation = true; end
428
+
429
+ def no_harm?; @no_harm; end
430
+ def verbose?; @verbose; end
431
+ def quiet?; @quiet; end
432
+
433
+ def verbose_off #:yield:
434
+ begin
435
+ save, @verbose = verbose?, false
436
+ yield
437
+ ensure
438
+ @verbose = save
439
+ end
440
+ end
441
+
442
+ # Rake task handlers
443
+ def rake_define
444
+ require 'rake/clean'
445
+
446
+ desc 'Config, setup and then install'
447
+ task :all => [:config, :setup, :install]
448
+
449
+ desc 'Saves your configurations'
450
+ task :config do exec_config end
451
+
452
+ desc 'Compiles ruby extentions'
453
+ task :setup do exec_setup end
454
+
455
+ #desc 'Runs unit tests'
456
+ #task :test do exec_test end
457
+
458
+ #desc 'Generate html docs'
459
+ #task :doc do exec_doc end
460
+
461
+ desc 'Generate ruby index docs'
462
+ task :index do exec_index end
463
+
464
+ desc 'Installs files'
465
+ task :install do exec_install end
466
+
467
+ desc 'Uninstalls files'
468
+ task :uninstall do exec_uninstall end
469
+
470
+ #desc "Does `make clean' for each extention"
471
+ task :makeclean do exec_clean end
472
+
473
+ task :clean => [:makeclean]
474
+
475
+ #desc "Does `make distclean' for each extention"
476
+ task :distclean do exec_distclean end
477
+
478
+ task :clobber => [:distclean]
479
+
480
+ desc 'Shows current configuration'
481
+ task :show do exec_show end
482
+ end
483
+
484
+ # Added these for future use in simplificaiton of design.
485
+
486
+ def extensions
487
+ @extensions ||= Dir['ext/**/extconf.rb']
488
+ end
489
+
490
+ def compiles?
491
+ !extensions.empty?
492
+ end
493
+
494
+ #
495
+ def noop(rel); end
496
+
497
+ #
498
+ # Hook Script API bases
499
+ #
500
+
501
+ def srcdir_root
502
+ @srcdir
503
+ end
504
+
505
+ def objdir_root
506
+ @objdir
507
+ end
508
+
509
+ def relpath
510
+ @currdir
511
+ end
512
+
513
+ #
514
+ # Task all
515
+ #
516
+
517
+ def exec_all
518
+ exec_config
519
+ exec_setup
520
+ exec_test # TODO: we need to stop here if tests fail (how?)
521
+ exec_doc if GENERATE_DOCS && !config.without_doc?
522
+ exec_index if GENERATE_DOCS && !config.without_doc?
523
+ exec_install
524
+ end
525
+
526
+ #
527
+ # TASK config
528
+ #
529
+
530
+ def exec_config
531
+ config.env_config
532
+ config.save_config
533
+ config.show unless quiet?
534
+ puts("Configuration saved.") unless quiet?
535
+ exec_task_traverse 'config'
536
+ end
537
+
538
+ alias config_dir_bin noop
539
+ alias config_dir_lib noop
540
+
541
+ def config_dir_ext(rel)
542
+ extconf if extdir?(curr_srcdir())
543
+ end
544
+
545
+ alias config_dir_data noop
546
+ alias config_dir_conf noop
547
+ alias config_dir_man noop
548
+ alias config_dir_doc noop
549
+
550
+ def extconf
551
+ ruby "#{curr_srcdir()}/extconf.rb", config.extconfopt
552
+ end
553
+
554
+ #
555
+ # TASK show
556
+ #
557
+
558
+ def exec_show
559
+ config.show
560
+ end
561
+
562
+ #
563
+ # TASK setup
564
+ #
565
+ # FIXME: Update shebang at time of install not before.
566
+ # for now I've commented it out the shebang.
567
+
568
+ def exec_setup
569
+ exec_task_traverse 'setup'
570
+ end
571
+
572
+ def setup_dir_bin(rel)
573
+ files_of(curr_srcdir()).each do |fname|
574
+ #update_shebang_line "#{curr_srcdir()}/#{fname}"
575
+ end
576
+ end
577
+
578
+ alias setup_dir_lib noop
579
+
580
+ def setup_dir_ext(rel)
581
+ make if extdir?(curr_srcdir())
582
+ end
583
+
584
+ alias setup_dir_data noop
585
+ alias setup_dir_conf noop
586
+ alias setup_dir_man noop
587
+ alias setup_dir_doc noop
588
+
589
+ def update_shebang_line(path)
590
+ return if no_harm?
591
+ return if config.shebang == 'never'
592
+ old = Shebang.load(path)
593
+ if old
594
+ if old.args.size > 1
595
+ $stderr.puts "warning: #{path}"
596
+ $stderr.puts "Shebang line has too many args."
597
+ $stderr.puts "It is not portable and your program may not work."
598
+ end
599
+ new = new_shebang(old)
600
+ return if new.to_s == old.to_s
601
+ else
602
+ return unless config.shebang == 'all'
603
+ new = Shebang.new(config.rubypath)
604
+ end
605
+ $stderr.puts "updating shebang: #{File.basename(path)}" if verbose?
606
+ open_atomic_writer(path) {|output|
607
+ File.open(path, 'rb') {|f|
608
+ f.gets if old # discard
609
+ output.puts new.to_s
610
+ output.print f.read
611
+ }
612
+ }
613
+ end
614
+
615
+ def new_shebang(old)
616
+ if /\Aruby/ =~ File.basename(old.cmd)
617
+ Shebang.new(config.rubypath, old.args)
618
+ elsif File.basename(old.cmd) == 'env' and old.args.first == 'ruby'
619
+ Shebang.new(config.rubypath, old.args[1..-1])
620
+ else
621
+ return old unless config.shebang == 'all'
622
+ Shebang.new(config.rubypath)
623
+ end
624
+ end
625
+
626
+ def open_atomic_writer(path, &block)
627
+ tmpfile = File.basename(path) + '.tmp'
628
+ begin
629
+ File.open(tmpfile, 'wb', &block)
630
+ File.rename tmpfile, File.basename(path)
631
+ ensure
632
+ File.unlink tmpfile if File.exist?(tmpfile)
633
+ end
634
+ end
635
+
636
+ class Shebang
637
+ def Shebang.load(path)
638
+ line = nil
639
+ File.open(path) {|f|
640
+ line = f.gets
641
+ }
642
+ return nil unless /\A#!/ =~ line
643
+ parse(line)
644
+ end
645
+
646
+ def Shebang.parse(line)
647
+ cmd, *args = *line.strip.sub(/\A\#!/, '').split(' ')
648
+ new(cmd, args)
649
+ end
650
+
651
+ def initialize(cmd, args = [])
652
+ @cmd = cmd
653
+ @args = args
654
+ end
655
+
656
+ attr_reader :cmd
657
+ attr_reader :args
658
+
659
+ def to_s
660
+ "#! #{@cmd}" + (@args.empty? ? '' : " #{@args.join(' ')}")
661
+ end
662
+ end
663
+
664
+ #
665
+ # TASK test
666
+ #
667
+ # TODO: Add spec support.
668
+
669
+ def exec_test
670
+ $stderr.puts 'Running tests...' if verbose?
671
+
672
+ runner = config.testrunner
673
+
674
+ case runner
675
+ when 'auto'
676
+ unless File.directory?('test')
677
+ $stderr.puts 'no test in this package' if verbose?
678
+ return
679
+ end
680
+ begin
681
+ require 'test/unit'
682
+ rescue LoadError
683
+ setup_rb_error 'test/unit cannot loaded. You need Ruby 1.8 or later to invoke this task.'
684
+ end
685
+ autorunner = Test::Unit::AutoRunner.new(true)
686
+ autorunner.to_run << 'test'
687
+ autorunner.run
688
+ else # use testrb
689
+ opt = []
690
+ opt << " -v" if verbose?
691
+ opt << " --runner #{runner}"
692
+ if File.file?('test/suite.rb')
693
+ notests = false
694
+ opt << "test/suite.rb"
695
+ else
696
+ notests = Dir["test/**/*.rb"].empty?
697
+ lib = ["lib"] + config.extensions.collect{ |d| File.dirname(d) }
698
+ opt << "-I" + lib.join(':')
699
+ opt << Dir["test/**/{test,tc}*.rb"]
700
+ end
701
+ opt = opt.flatten.join(' ').strip
702
+ # run tests
703
+ if notests
704
+ $stderr.puts 'no test in this package' if verbose?
705
+ else
706
+ cmd = "testrb #{opt}"
707
+ $stderr.puts cmd if verbose?
708
+ system cmd #config.ruby "-S tesrb", opt
709
+ end
710
+ end
711
+ end
712
+
713
+ # MAYBE: We could traverse and run each test independently (?)
714
+ #def test_dir_test
715
+ #end
716
+
717
+ =begin
718
+ #
719
+ # TASK doc
720
+ #
721
+
722
+ def exec_doc
723
+ output = File.join('doc', 'rdoc')
724
+ title = (PACKAGE.capitalize + " API").strip
725
+ main = Dir.glob("README{,.txt}", File::FNM_CASEFOLD).first
726
+ template = config.doctemplate || 'html'
727
+
728
+ opt = []
729
+ opt << "-U"
730
+ opt << "-S"
731
+ opt << "--op=#{output}"
732
+ opt << "--template=#{template}"
733
+ opt << "--title=#{title}"
734
+ opt << "--main=#{main}" if main
735
+
736
+ if File.exist?('.document')
737
+ files = File.read('.document').split("\n")
738
+ files.reject!{ |l| l =~ /^\s*[#]/ || l !~ /\S/ }
739
+ files.collect!{ |f| f.strip }
740
+ opt << files
741
+ else
742
+ opt << main if main
743
+ opt << ["lib", "ext"]
744
+ end
745
+
746
+ opt = opt.flatten
747
+
748
+ if no_harm?
749
+ puts "rdoc " + opt.join(' ').strip
750
+ else
751
+ #sh "rdoc {opt.join(' ').strip}"
752
+ require 'rdoc/rdoc'
753
+ ::RDoc::RDoc.new.document(opt)
754
+ end
755
+ end
756
+ =end
757
+
758
+ #
759
+ # TASK index
760
+ #
761
+ # TODO: Totally deprecate stadard ri support in favor of fastri.
762
+
763
+ def exec_index
764
+ case config.installdirs
765
+ when 'std'
766
+ output = "--ri-system"
767
+ when 'site'
768
+ output = "--ri-site"
769
+ when 'home'
770
+ output = "--ri"
771
+ else
772
+ abort "bad config: sould not be possible -- installdirs = #{config.installdirs}"
773
+ end
774
+
775
+ if File.exist?('.document')
776
+ files = File.read('.document').split("\n")
777
+ files.reject!{ |l| l =~ /^\s*[#]/ || l !~ /\S/ }
778
+ files.collect!{ |f| f.strip }
779
+ else
780
+ files = ["lib", "ext"]
781
+ end
782
+
783
+ opt = []
784
+ opt << "-U"
785
+ opt << output
786
+ opt << files
787
+ opt = opt.flatten
788
+
789
+ if no_harm?
790
+ puts "rdoc #{opt.join(' ').strip}"
791
+ else
792
+ #sh "rdoc #{opt.join(' ').strip}"
793
+ require 'rdoc/rdoc'
794
+ ::RDoc::RDoc.new.document(opt)
795
+ # now in local directory
796
+ opt = []
797
+ opt << "-U"
798
+ opt << "--ri --op 'doc/ri'"
799
+ opt << files
800
+ opt = opt.flatten
801
+ ::RDoc::RDoc.new.document(opt)
802
+ end
803
+ end
804
+
805
+ #
806
+ # TASK install
807
+ #
808
+
809
+ def exec_install
810
+ installation! # were are installing
811
+ #rm_f MANIFEST # we'll append rather then delete!
812
+ exec_task_traverse 'install'
813
+ end
814
+
815
+ def install_dir_bin(rel)
816
+ install_files targetfiles(), "#{config.bindir}/#{rel}", 0755
817
+ end
818
+
819
+ def install_dir_lib(rel)
820
+ install_files libfiles(), "#{config.rbdir}/#{rel}", 0644
821
+ end
822
+
823
+ def install_dir_ext(rel)
824
+ return unless extdir?(curr_srcdir())
825
+ install_files rubyextentions('.'),
826
+ "#{config.sodir}/#{File.dirname(rel)}", 0555
827
+ end
828
+
829
+ def install_dir_data(rel)
830
+ install_files targetfiles(), "#{config.datadir}/#{rel}", 0644
831
+ end
832
+
833
+ def install_dir_conf(rel)
834
+ # FIXME: should not remove current config files
835
+ # (rename previous file to .old/.org)
836
+ install_files targetfiles(), "#{config.sysconfdir}/#{rel}", 0644
837
+ end
838
+
839
+ def install_dir_man(rel)
840
+ install_files targetfiles(), "#{config.mandir}/#{rel}", 0644
841
+ end
842
+
843
+ # doc installs to directory named: "ruby-#{package}"
844
+ def install_dir_doc(rel)
845
+ return if config.without_doc?
846
+ dir = "#{config.docdir}/ruby-#{PACKAGE}/#{rel}" # "#{config.docdir}/#{rel}"
847
+ install_files targetfiles(), dir, 0644
848
+ end
849
+
850
+ def install_files(list, dest, mode)
851
+ mkdir_p dest, install_prefix
852
+ list.each do |fname|
853
+ install fname, dest, mode, install_prefix
854
+ end
855
+ end
856
+
857
+ def libfiles
858
+ glob_reject(%w(*.y *.output), targetfiles())
859
+ end
860
+
861
+ def rubyextentions(dir)
862
+ ents = glob_select("*.#{dllext}", targetfiles())
863
+ if ents.empty?
864
+ setup_rb_error "no ruby extention exists: 'ruby #{$0} setup' first"
865
+ end
866
+ ents
867
+ end
868
+
869
+ def dllext
870
+ RBCONFIG['DLEXT']
871
+ end
872
+
873
+ def targetfiles
874
+ mapdir(existfiles() - hookfiles())
875
+ end
876
+
877
+ def mapdir(ents)
878
+ ents.map {|ent|
879
+ if File.exist?(ent)
880
+ then ent # objdir
881
+ else "#{curr_srcdir()}/#{ent}" # srcdir
882
+ end
883
+ }
884
+ end
885
+
886
+ # picked up many entries from cvs-1.11.1/src/ignore.c
887
+ JUNK_FILES = %w(
888
+ core RCSLOG tags TAGS .make.state
889
+ .nse_depinfo #* .#* cvslog.* ,* .del-* *.olb
890
+ *~ *.old *.bak *.BAK *.orig *.rej _$* *$
891
+
892
+ *.org *.in .*
893
+ )
894
+
895
+ def existfiles
896
+ glob_reject(JUNK_FILES, (files_of(curr_srcdir()) | files_of('.')))
897
+ end
898
+
899
+ def hookfiles
900
+ %w( pre-%s post-%s pre-%s.rb post-%s.rb ).map {|fmt|
901
+ %w( config setup install clean ).map {|t| sprintf(fmt, t) }
902
+ }.flatten
903
+ end
904
+
905
+ def glob_select(pat, ents)
906
+ re = globs2re([pat])
907
+ ents.select {|ent| re =~ ent }
908
+ end
909
+
910
+ def glob_reject(pats, ents)
911
+ re = globs2re(pats)
912
+ ents.reject {|ent| re =~ ent }
913
+ end
914
+
915
+ GLOB2REGEX = {
916
+ '.' => '\.',
917
+ '$' => '\$',
918
+ '#' => '\#',
919
+ '*' => '.*'
920
+ }
921
+
922
+ def globs2re(pats)
923
+ /\A(?:#{
924
+ pats.map {|pat| pat.gsub(/[\.\$\#\*]/) {|ch| GLOB2REGEX[ch] } }.join('|')
925
+ })\z/
926
+ end
927
+
928
+ #
929
+ # TASK uninstall
930
+ #
931
+
932
+ def exec_uninstall
933
+ paths = File.read(MANIFEST).split("\n")
934
+ dirs, files = paths.partition{ |f| File.dir?(f) }
935
+
936
+ files.each do |file|
937
+ next if /^\#/ =~ file # skip comments
938
+ rm_f(file) if File.exist?(file)
939
+ end
940
+
941
+ dirs.each do |dir|
942
+ # okay this is over kill, but playing it safe...
943
+ empty = Dir[File.join(dir,'*')].empty?
944
+ begin
945
+ if no_harm?
946
+ $stderr.puts "rmdir #{dir}"
947
+ else
948
+ rmdir(dir) if empty
949
+ end
950
+ rescue Errno::ENOTEMPTY
951
+ $stderr.puts "may not be empty -- #{dir}" if verbose?
952
+ end
953
+ end
954
+
955
+ rm_f(MANIFEST)
956
+ end
957
+
958
+ #
959
+ # TASK clean
960
+ #
961
+
962
+ def exec_clean
963
+ exec_task_traverse 'clean'
964
+ rm_f ConfigTable::CONFIGFILE
965
+ #rm_f MANIFEST # only on clobber!
966
+ end
967
+
968
+ alias clean_dir_bin noop
969
+ alias clean_dir_lib noop
970
+ alias clean_dir_data noop
971
+ alias clean_dir_conf noop
972
+ alias clean_dir_man noop
973
+ alias clean_dir_doc noop
974
+
975
+ def clean_dir_ext(rel)
976
+ return unless extdir?(curr_srcdir())
977
+ make 'clean' if File.file?('Makefile')
978
+ end
979
+
980
+ #
981
+ # TASK distclean
982
+ #
983
+
984
+ def exec_distclean
985
+ exec_task_traverse 'distclean'
986
+ rm_f ConfigTable::CONFIGFILE
987
+ rm_f MANIFEST
988
+ end
989
+
990
+ alias distclean_dir_bin noop
991
+ alias distclean_dir_lib noop
992
+
993
+ def distclean_dir_ext(rel)
994
+ return unless extdir?(curr_srcdir())
995
+ make 'distclean' if File.file?('Makefile')
996
+ end
997
+
998
+ alias distclean_dir_data noop
999
+ alias distclean_dir_conf noop
1000
+ alias distclean_dir_man noop
1001
+
1002
+ def distclean_dir_doc(rel)
1003
+ if GENERATE_RDOCS
1004
+ rm_rf('rdoc') if File.directory?('rdoc')
1005
+ end
1006
+ end
1007
+
1008
+ #
1009
+ # Traversing
1010
+ #
1011
+
1012
+ def exec_task_traverse(task)
1013
+ run_hook "pre-#{task}"
1014
+ FILETYPES.each do |type|
1015
+ if type == 'ext' and config.without_ext == 'yes'
1016
+ $stderr.puts 'skipping ext/* by user option' if verbose?
1017
+ next
1018
+ end
1019
+ traverse task, type, "#{task}_dir_#{type}"
1020
+ end
1021
+ run_hook "post-#{task}"
1022
+ end
1023
+
1024
+ def traverse(task, rel, mid)
1025
+ dive_into(rel) {
1026
+ run_hook "pre-#{task}"
1027
+ __send__ mid, rel.sub(%r[\A.*?(?:/|\z)], '')
1028
+ directories_of(curr_srcdir()).each do |d|
1029
+ traverse task, "#{rel}/#{d}", mid
1030
+ end
1031
+ run_hook "post-#{task}"
1032
+ }
1033
+ end
1034
+
1035
+ def dive_into(rel)
1036
+ return unless File.dir?("#{@srcdir}/#{rel}")
1037
+
1038
+ dir = File.basename(rel)
1039
+ Dir.mkdir dir unless File.dir?(dir)
1040
+ prevdir = Dir.pwd
1041
+ Dir.chdir dir
1042
+ $stderr.puts '---> ' + rel if verbose?
1043
+ @currdir = rel
1044
+ yield
1045
+ Dir.chdir prevdir
1046
+ $stderr.puts '<--- ' + rel if verbose?
1047
+ @currdir = File.dirname(rel)
1048
+ end
1049
+
1050
+ def run_hook(id)
1051
+ path = [ "#{curr_srcdir()}/#{id}",
1052
+ "#{curr_srcdir()}/#{id}.rb" ].detect {|cand| File.file?(cand) }
1053
+ return unless path
1054
+ begin
1055
+ instance_eval File.read(path), path, 1
1056
+ rescue
1057
+ raise if $DEBUG
1058
+ setup_rb_error "hook #{path} failed:\n" + $!.message
1059
+ end
1060
+ end
1061
+
1062
+ # File Operations
1063
+ #
1064
+ # This module requires: #verbose?, #no_harm?
1065
+
1066
+ def binread(fname)
1067
+ File.open(fname, 'rb'){ |f|
1068
+ return f.read
1069
+ }
1070
+ end
1071
+
1072
+ def mkdir_p(dirname, prefix = nil)
1073
+ dirname = prefix + File.expand_path(dirname) if prefix
1074
+ $stderr.puts "mkdir -p #{dirname}" if verbose?
1075
+ return if no_harm?
1076
+
1077
+ # Does not check '/', it's too abnormal.
1078
+ dirs = File.expand_path(dirname).split(%r<(?=/)>)
1079
+ if /\A[a-z]:\z/i =~ dirs[0]
1080
+ disk = dirs.shift
1081
+ dirs[0] = disk + dirs[0]
1082
+ end
1083
+ dirs.each_index do |idx|
1084
+ path = dirs[0..idx].join('')
1085
+ Dir.mkdir path unless File.dir?(path)
1086
+ record_installation(path) # also record directories made
1087
+ end
1088
+ end
1089
+
1090
+ def rm_f(path)
1091
+ $stderr.puts "rm -f #{path}" if verbose?
1092
+ return if no_harm?
1093
+ force_remove_file path
1094
+ end
1095
+
1096
+ def rm_rf(path)
1097
+ $stderr.puts "rm -rf #{path}" if verbose?
1098
+ return if no_harm?
1099
+ remove_tree path
1100
+ end
1101
+
1102
+ def rmdir(path)
1103
+ $stderr.puts "rmdir #{path}" if verbose?
1104
+ return if no_harm?
1105
+ Dir.rmdir path
1106
+ end
1107
+
1108
+ def remove_tree(path)
1109
+ if File.symlink?(path)
1110
+ remove_file path
1111
+ elsif File.dir?(path)
1112
+ remove_tree0 path
1113
+ else
1114
+ force_remove_file path
1115
+ end
1116
+ end
1117
+
1118
+ def remove_tree0(path)
1119
+ Dir.foreach(path) do |ent|
1120
+ next if ent == '.'
1121
+ next if ent == '..'
1122
+ entpath = "#{path}/#{ent}"
1123
+ if File.symlink?(entpath)
1124
+ remove_file entpath
1125
+ elsif File.dir?(entpath)
1126
+ remove_tree0 entpath
1127
+ else
1128
+ force_remove_file entpath
1129
+ end
1130
+ end
1131
+ begin
1132
+ Dir.rmdir path
1133
+ rescue Errno::ENOTEMPTY
1134
+ # directory may not be empty
1135
+ end
1136
+ end
1137
+
1138
+ def move_file(src, dest)
1139
+ force_remove_file dest
1140
+ begin
1141
+ File.rename src, dest
1142
+ rescue
1143
+ File.open(dest, 'wb') {|f|
1144
+ f.write binread(src)
1145
+ }
1146
+ File.chmod File.stat(src).mode, dest
1147
+ File.unlink src
1148
+ end
1149
+ end
1150
+
1151
+ def force_remove_file(path)
1152
+ begin
1153
+ remove_file path
1154
+ rescue
1155
+ end
1156
+ end
1157
+
1158
+ def remove_file(path)
1159
+ File.chmod 0777, path
1160
+ File.unlink path
1161
+ end
1162
+
1163
+ def install(from, dest, mode, prefix = nil)
1164
+ $stderr.puts "install #{from} #{dest}" if verbose?
1165
+ return if no_harm?
1166
+
1167
+ realdest = prefix ? prefix + File.expand_path(dest) : dest
1168
+ realdest = File.join(realdest, File.basename(from)) if File.dir?(realdest)
1169
+ str = binread(from)
1170
+ if diff?(str, realdest)
1171
+ verbose_off {
1172
+ rm_f realdest if File.exist?(realdest)
1173
+ }
1174
+ File.open(realdest, 'wb') {|f|
1175
+ f.write str
1176
+ }
1177
+ File.chmod mode, realdest
1178
+
1179
+ if prefix
1180
+ path = realdest.sub(prefix, '')
1181
+ else
1182
+ path = realdest
1183
+ end
1184
+
1185
+ record_installation(path)
1186
+ end
1187
+ end
1188
+
1189
+ def record_installation(path)
1190
+ File.open("#{objdir_root()}/#{MANIFEST}", 'a') do |f|
1191
+ f.puts(path)
1192
+ end
1193
+ end
1194
+
1195
+ def diff?(new_content, path)
1196
+ return true unless File.exist?(path)
1197
+ new_content != binread(path)
1198
+ end
1199
+
1200
+ def command(*args)
1201
+ $stderr.puts args.join(' ') if verbose?
1202
+ system(*args) or raise RuntimeError,
1203
+ "system(#{args.map{|a| a.inspect }.join(' ')}) failed"
1204
+ end
1205
+
1206
+ def ruby(*args)
1207
+ command config.rubyprog, *args
1208
+ end
1209
+
1210
+ def make(task = nil)
1211
+ command(*[config.makeprog, task].compact)
1212
+ end
1213
+
1214
+ def extdir?(dir)
1215
+ File.exist?("#{dir}/MANIFEST") or File.exist?("#{dir}/extconf.rb")
1216
+ end
1217
+
1218
+ def files_of(dir)
1219
+ Dir.open(dir) {|d|
1220
+ return d.select {|ent| File.file?("#{dir}/#{ent}") }
1221
+ }
1222
+ end
1223
+
1224
+ DIR_REJECT = %w( . .. CVS SCCS RCS CVS.adm .svn )
1225
+
1226
+ def directories_of(dir)
1227
+ Dir.open(dir) {|d|
1228
+ return d.select {|ent| File.dir?("#{dir}/#{ent}") } - DIR_REJECT
1229
+ }
1230
+ end
1231
+
1232
+ #
1233
+ # Hook Script API
1234
+ #
1235
+ # These require: #srcdir_root, #objdir_root, #relpath
1236
+ #
1237
+
1238
+ #
1239
+ def get_config(key)
1240
+ config.__send__(key)
1241
+ end
1242
+
1243
+ # obsolete: use metaconfig to change configuration
1244
+ # TODO: what to do with?
1245
+ def set_config(key, val)
1246
+ config[key] = val
1247
+ end
1248
+
1249
+ #
1250
+ # srcdir/objdir (works only in the package directory)
1251
+ #
1252
+
1253
+ def curr_srcdir
1254
+ "#{srcdir_root()}/#{relpath()}"
1255
+ end
1256
+
1257
+ def curr_objdir
1258
+ "#{objdir_root()}/#{relpath()}"
1259
+ end
1260
+
1261
+ def srcfile(path)
1262
+ "#{curr_srcdir()}/#{path}"
1263
+ end
1264
+
1265
+ def srcexist?(path)
1266
+ File.exist?(srcfile(path))
1267
+ end
1268
+
1269
+ def srcdirectory?(path)
1270
+ File.dir?(srcfile(path))
1271
+ end
1272
+
1273
+ def srcfile?(path)
1274
+ File.file?(srcfile(path))
1275
+ end
1276
+
1277
+ def srcentries(path = '.')
1278
+ Dir.open("#{curr_srcdir()}/#{path}") {|d|
1279
+ return d.to_a - %w(. ..)
1280
+ }
1281
+ end
1282
+
1283
+ def srcfiles(path = '.')
1284
+ srcentries(path).select {|fname|
1285
+ File.file?(File.join(curr_srcdir(), path, fname))
1286
+ }
1287
+ end
1288
+
1289
+ def srcdirectories(path = '.')
1290
+ srcentries(path).select {|fname|
1291
+ File.dir?(File.join(curr_srcdir(), path, fname))
1292
+ }
1293
+ end
1294
+
1295
+ end
1296
+
1297
+ # CLI runner.
1298
+ def self.run_cli
1299
+ installer = Setup::Installer.new
1300
+
1301
+ task = ARGV.find{ |a| a !~ /^[-]/ }
1302
+ task = 'all' unless task
1303
+
1304
+ unless Setup::Installer::TASKS.include?(task)
1305
+ $stderr.puts "Not a valid task -- #{task}"
1306
+ exit 1
1307
+ end
1308
+
1309
+ opts = OptionParser.new
1310
+
1311
+ opts.banner = "Usage: #{File.basename($0)} [task] [options]"
1312
+
1313
+ if task == 'config' or task == 'all'
1314
+ opts.separator ""
1315
+ opts.separator "Config options:"
1316
+ Setup::ConfigTable::DESCRIPTIONS.each do |name, type, desc|
1317
+ opts.on("--#{name} #{type.to_s.upcase}", desc) do |val|
1318
+ ENV[name.to_s] = val.to_s
1319
+ end
1320
+ end
1321
+ end
1322
+
1323
+ if task == 'install'
1324
+ opts.separator ""
1325
+ opts.separator "Install options:"
1326
+
1327
+ opts.on("--prefix PATH", "Installation prefix") do |val|
1328
+ installer.install_prefix = val
1329
+ end
1330
+ end
1331
+
1332
+ if task == 'test'
1333
+ opts.separator ""
1334
+ opts.separator "Install options:"
1335
+
1336
+ opts.on("--runner TYPE", "Test runner (auto|console|gtk|gtk2|tk)") do |val|
1337
+ installer.config.testrunner = val
1338
+ end
1339
+ end
1340
+
1341
+ # common options
1342
+ opts.separator ""
1343
+ opts.separator "General options:"
1344
+
1345
+ opts.on("-q", "--quiet", "Silence output") do |val|
1346
+ installer.quiet = val
1347
+ end
1348
+
1349
+ opts.on("--verbose", "Provide verbose output") do |val|
1350
+ installer.verbose = val
1351
+ end
1352
+
1353
+ opts.on("-n", "--no-write", "Do not write to disk") do |val|
1354
+ installer.no_harm = !val
1355
+ end
1356
+
1357
+ opts.on("--dryrun", "Same as --no-write") do |val|
1358
+ installer.no_harm = val
1359
+ end
1360
+
1361
+ # common options
1362
+ opts.separator ""
1363
+ opts.separator "Inform options:"
1364
+
1365
+ # Tail options (eg. commands in option form)
1366
+ opts.on_tail("-h", "--help", "display this help information") do
1367
+ puts Setup.help
1368
+ exit
1369
+ end
1370
+
1371
+ opts.on_tail("--version", "Show version") do
1372
+ puts File.basename($0) + ' v' + Setup::Version.join('.')
1373
+ exit
1374
+ end
1375
+
1376
+ opts.on_tail("--copyright", "Show copyright") do
1377
+ puts Setup::Copyright
1378
+ exit
1379
+ end
1380
+
1381
+ begin
1382
+ opts.parse!(ARGV)
1383
+ rescue OptionParser::InvalidOption
1384
+ $stderr.puts $!.to_s.capitalize
1385
+ exit 1
1386
+ end
1387
+
1388
+ begin
1389
+ installer.__send__("exec_#{task}")
1390
+ rescue SetupError
1391
+ raise if $DEBUG
1392
+ $stderr.puts $!.message
1393
+ $stderr.puts "Try 'ruby #{$0} --help' for detailed usage."
1394
+ exit 1
1395
+ end
1396
+ end
1397
+
1398
+ # Generate help text.
1399
+ def self.help
1400
+ fmt = " " * 10 + "%-10s %s"
1401
+ commands = Installer::TASK_DESCRIPTIONS.collect do |k,d|
1402
+ (fmt % ["#{k}", d])
1403
+ end.join("\n").strip
1404
+
1405
+ fmt = " " * 13 + "%-20s %s"
1406
+ configs = ConfigTable::DESCRIPTIONS.collect do |k,t,d|
1407
+ (fmt % ["--#{k}", d])
1408
+ end.join("\n").strip
1409
+
1410
+ text = <<-END
1411
+ USAGE: #{File.basename($0)} [command] [options]
1412
+
1413
+ Commands:
1414
+ #{commands}
1415
+
1416
+ Options for CONFIG:
1417
+ #{configs}
1418
+
1419
+ Options for INSTALL:
1420
+ --prefix Set the install prefix
1421
+
1422
+ Options in common:
1423
+ -q --quiet Silence output
1424
+ --verbose Provide verbose output
1425
+ -n --no-write Do not write to disk
1426
+
1427
+ END
1428
+
1429
+ text.gsub(/^ \ \ \ \ \ /, '')
1430
+ end
1431
+
1432
+ #
1433
+ def self.run_rake
1434
+ installer = Setup::Installer.new
1435
+ installer.rake_define
1436
+ end
1437
+
1438
+ end
1439
+
1440
+ #
1441
+ # Ruby Extensions
1442
+ #
1443
+
1444
+ unless File.respond_to?(:read) # Ruby 1.6 and less
1445
+ def File.read(fname)
1446
+ open(fname) {|f|
1447
+ return f.read
1448
+ }
1449
+ end
1450
+ end
1451
+
1452
+ unless Errno.const_defined?(:ENOTEMPTY) # Windows?
1453
+ module Errno
1454
+ class ENOTEMPTY
1455
+ # We do not raise this exception, implementation is not needed.
1456
+ end
1457
+ end
1458
+ end
1459
+
1460
+ # for corrupted Windows' stat(2)
1461
+ def File.dir?(path)
1462
+ File.directory?((path[-1,1] == '/') ? path : path + '/')
1463
+ end
1464
+
1465
+ #
1466
+ # Runners
1467
+ #
1468
+
1469
+ if $0 == __FILE__
1470
+
1471
+ Setup.run_cli
1472
+
1473
+ elsif defined?(Rake)
1474
+
1475
+ Setup.run_rake
1476
+
1477
+ end
1478
+