facets 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
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,264 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+ <html>
6
+ <head>
7
+ <title>Module: Stackable</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
10
+
11
+ <script language="JavaScript" type="text/javascript">
12
+ // <![CDATA[
13
+
14
+ function toggleSource( id )
15
+ {
16
+ var elem
17
+ var link
18
+
19
+ if( document.getElementById )
20
+ {
21
+ elem = document.getElementById( id )
22
+ link = document.getElementById( "l_" + id )
23
+ }
24
+ else if ( document.all )
25
+ {
26
+ elem = eval( "document.all." + id )
27
+ link = eval( "document.all.l_" + id )
28
+ }
29
+ else
30
+ return false;
31
+
32
+ if( elem.style.display == "block" )
33
+ {
34
+ elem.style.display = "none"
35
+ link.innerHTML = "show source"
36
+ }
37
+ else
38
+ {
39
+ elem.style.display = "block"
40
+ link.innerHTML = "hide source"
41
+ }
42
+ }
43
+
44
+ function openCode( url )
45
+ {
46
+ window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
47
+ }
48
+ // ]]>
49
+ </script>
50
+ </head>
51
+
52
+ <body>
53
+ <table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
54
+ <td class="file-title"><span class="file-title-prefix">Module</span><br />Stackable</td>
55
+ <td align="right">
56
+ <table cellspacing="0" cellpadding="2">
57
+ <tr valign="top">
58
+ <td>In:</td>
59
+ <td>
60
+ <a href="../files/lib/facets/stackable_rb.html">lib/facets/stackable.rb</a>
61
+ </td>
62
+ </tr>
63
+ </table>
64
+ </td>
65
+ </tr>
66
+ </table>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+ <div id="content">
71
+
72
+ <div class="description"><h1><a href="Stackable.html">Stackable</a></h1>
73
+ <p>
74
+ <a href="Stackable.html">Stackable</a> mixin provides <a
75
+ href="Stackable.html#M000312">pop</a>, <a
76
+ href="Stackable.html#M000313">push</a>, <a
77
+ href="Stackable.html#M000314">pull</a>, etc. It depends on slice, splice
78
+ and insert.
79
+ </p>
80
+ </div>
81
+
82
+
83
+
84
+ <div class="sectiontitle">Methods</div>
85
+ <ul>
86
+ <li><a href="#M000318">peek</a></li>
87
+ <li><a href="#M000316">poke</a></li>
88
+ <li><a href="#M000312">pop</a></li>
89
+ <li><a href="#M000314">pull</a></li>
90
+ <li><a href="#M000313">push</a></li>
91
+ <li><a href="#M000315">shift</a></li>
92
+ <li><a href="#M000317">unshift</a></li>
93
+ </ul>
94
+
95
+
96
+
97
+
98
+
99
+
100
+ <div class="sectiontitle">Public Instance methods</div>
101
+ <div class="method">
102
+ <div class="title">
103
+ <a name="M000318"></a><b>peek</b>()
104
+ </div>
105
+ <div class="description">
106
+ <p>
107
+ Peek at the top of the stack.
108
+ </p>
109
+ <pre>
110
+ a = [1, 2, 3]
111
+ a.peek #=&gt; 3
112
+ a #=&gt; [1, 2, 3]
113
+ </pre>
114
+ </div>
115
+ <div class="sourcecode">
116
+ <p class="source-link">[ <a href="javascript:toggleSource('M000318_source')" id="l_M000318_source">show source</a> ]</p>
117
+ <div id="M000318_source" class="dyn-source">
118
+ <pre>
119
+ <span class="ruby-comment cmt"># File lib/facets/stackable.rb, line 81</span>
120
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">peek</span>
121
+ <span class="ruby-identifier">slice</span>(<span class="ruby-value">-1</span>)
122
+ <span class="ruby-keyword kw">end</span>
123
+ </pre>
124
+ </div>
125
+ </div>
126
+ </div>
127
+ <div class="method">
128
+ <div class="title">
129
+ <a name="M000316"></a><b>poke</b>(x)
130
+ </div>
131
+ <div class="description">
132
+ <p>
133
+ Poke item onto the stack.
134
+ </p>
135
+ <pre>
136
+ a = [2, 3]
137
+ a.poke(1) #=&gt; [1, 2, 3]
138
+
139
+ TODO: Better name (besides unshift)?
140
+ </pre>
141
+ </div>
142
+ <div class="aka">
143
+ This method is also aliased as
144
+ <a href="Stackable.html#M000317">unshift</a>
145
+ </div>
146
+ <div class="sourcecode">
147
+ <p class="source-link">[ <a href="javascript:toggleSource('M000316_source')" id="l_M000316_source">show source</a> ]</p>
148
+ <div id="M000316_source" class="dyn-source">
149
+ <pre>
150
+ <span class="ruby-comment cmt"># File lib/facets/stackable.rb, line 69</span>
151
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">poke</span>(<span class="ruby-identifier">x</span>)
152
+ <span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>,<span class="ruby-identifier">x</span>)
153
+ <span class="ruby-keyword kw">end</span>
154
+ </pre>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ <div class="method">
159
+ <div class="title">
160
+ <a name="M000312"></a><b>pop</b>()
161
+ </div>
162
+ <div class="description">
163
+ <p>
164
+ Pop item off stack.
165
+ </p>
166
+ <pre>
167
+ a = [1, 2, 3]
168
+ a.pop #=&gt; 3
169
+ a #=&gt; [1, 2]
170
+ </pre>
171
+ </div>
172
+ <div class="sourcecode">
173
+ <p class="source-link">[ <a href="javascript:toggleSource('M000312_source')" id="l_M000312_source">show source</a> ]</p>
174
+ <div id="M000312_source" class="dyn-source">
175
+ <pre>
176
+ <span class="ruby-comment cmt"># File lib/facets/stackable.rb, line 37</span>
177
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pop</span>
178
+ <span class="ruby-identifier">splice</span>(<span class="ruby-value">-1</span>)
179
+ <span class="ruby-keyword kw">end</span>
180
+ </pre>
181
+ </div>
182
+ </div>
183
+ </div>
184
+ <div class="method">
185
+ <div class="title">
186
+ <a name="M000314"></a><b>pull</b>()
187
+ </div>
188
+ <div class="description">
189
+ <p>
190
+ Pull item off the stack.
191
+ </p>
192
+ <pre>
193
+ a = [1, 2, 3]
194
+ a.pull #=&gt; 1
195
+ a #=&gt; [2, 3]
196
+ </pre>
197
+ </div>
198
+ <div class="aka">
199
+ This method is also aliased as
200
+ <a href="Stackable.html#M000315">shift</a>
201
+ </div>
202
+ <div class="sourcecode">
203
+ <p class="source-link">[ <a href="javascript:toggleSource('M000314_source')" id="l_M000314_source">show source</a> ]</p>
204
+ <div id="M000314_source" class="dyn-source">
205
+ <pre>
206
+ <span class="ruby-comment cmt"># File lib/facets/stackable.rb, line 56</span>
207
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pull</span>
208
+ <span class="ruby-identifier">slice</span>(<span class="ruby-value">0</span>)
209
+ <span class="ruby-keyword kw">end</span>
210
+ </pre>
211
+ </div>
212
+ </div>
213
+ </div>
214
+ <div class="method">
215
+ <div class="title">
216
+ <a name="M000313"></a><b>push</b>(x)
217
+ </div>
218
+ <div class="description">
219
+ <p>
220
+ Push item onto the stack.
221
+ </p>
222
+ <pre>
223
+ a = [1, 2]
224
+ a.push(3) #=&gt; [1, 2, 3]
225
+ </pre>
226
+ </div>
227
+ <div class="sourcecode">
228
+ <p class="source-link">[ <a href="javascript:toggleSource('M000313_source')" id="l_M000313_source">show source</a> ]</p>
229
+ <div id="M000313_source" class="dyn-source">
230
+ <pre>
231
+ <span class="ruby-comment cmt"># File lib/facets/stackable.rb, line 46</span>
232
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">push</span>(<span class="ruby-identifier">x</span>)
233
+ <span class="ruby-identifier">insert</span>(<span class="ruby-value">-1</span>,<span class="ruby-identifier">x</span>)
234
+ <span class="ruby-keyword kw">end</span>
235
+ </pre>
236
+ </div>
237
+ </div>
238
+ </div>
239
+ <div class="method">
240
+ <div class="title">
241
+ <a name="M000315"></a><b>shift</b>()
242
+ </div>
243
+ <div class="description">
244
+ <p>
245
+ Alias for <a href="Stackable.html#M000314">pull</a>
246
+ </p>
247
+ </div>
248
+ </div>
249
+ <div class="method">
250
+ <div class="title">
251
+ <a name="M000317"></a><b>unshift</b>(x)
252
+ </div>
253
+ <div class="description">
254
+ <p>
255
+ Alias for <a href="Stackable.html#M000316">poke</a>
256
+ </p>
257
+ </div>
258
+ </div>
259
+ </div>
260
+
261
+ </div>
262
+
263
+ </body>
264
+ </html>
@@ -0,0 +1,2297 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+ <html>
6
+ <head>
7
+ <title>Class: String</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
10
+
11
+ <script language="JavaScript" type="text/javascript">
12
+ // <![CDATA[
13
+
14
+ function toggleSource( id )
15
+ {
16
+ var elem
17
+ var link
18
+
19
+ if( document.getElementById )
20
+ {
21
+ elem = document.getElementById( id )
22
+ link = document.getElementById( "l_" + id )
23
+ }
24
+ else if ( document.all )
25
+ {
26
+ elem = eval( "document.all." + id )
27
+ link = eval( "document.all.l_" + id )
28
+ }
29
+ else
30
+ return false;
31
+
32
+ if( elem.style.display == "block" )
33
+ {
34
+ elem.style.display = "none"
35
+ link.innerHTML = "show source"
36
+ }
37
+ else
38
+ {
39
+ elem.style.display = "block"
40
+ link.innerHTML = "hide source"
41
+ }
42
+ }
43
+
44
+ function openCode( url )
45
+ {
46
+ window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
47
+ }
48
+ // ]]>
49
+ </script>
50
+ </head>
51
+
52
+ <body>
53
+ <table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
54
+ <td class="file-title"><span class="file-title-prefix">Class</span><br />String</td>
55
+ <td align="right">
56
+ <table cellspacing="0" cellpadding="2">
57
+ <tr valign="top">
58
+ <td>In:</td>
59
+ <td>
60
+ <a href="../files/lib/facets/ruby_rb.html">lib/facets/ruby.rb</a>
61
+ <a href="../files/lib/facets/metaid_rb.html">lib/facets/metaid.rb</a>
62
+ <a href="../files/lib/facets/blank_rb.html">lib/facets/blank.rb</a>
63
+ <a href="../files/lib/facets/boolean_rb.html">lib/facets/boolean.rb</a>
64
+ <a href="../files/lib/facets/comparable/bound_rb.html">lib/facets/comparable/bound.rb</a>
65
+ <a href="../files/lib/facets/comparable/cmp_rb.html">lib/facets/comparable/cmp.rb</a>
66
+ <a href="../files/lib/facets/string/shatter_rb.html">lib/facets/string/shatter.rb</a>
67
+ <a href="../files/lib/facets/string/to_re_rb.html">lib/facets/string/to_re.rb</a>
68
+ <a href="../files/lib/facets/string/fold_rb.html">lib/facets/string/fold.rb</a>
69
+ <a href="../files/lib/facets/string/camelcase_rb.html">lib/facets/string/camelcase.rb</a>
70
+ <a href="../files/lib/facets/string/align_rb.html">lib/facets/string/align.rb</a>
71
+ <a href="../files/lib/facets/string/tab_rb.html">lib/facets/string/tab.rb</a>
72
+ <a href="../files/lib/facets/string/range_rb.html">lib/facets/string/range.rb</a>
73
+ <a href="../files/lib/facets/string/snakecase_rb.html">lib/facets/string/snakecase.rb</a>
74
+ <a href="../files/lib/facets/string/divide_rb.html">lib/facets/string/divide.rb</a>
75
+ <a href="../files/lib/facets/string/mscan_rb.html">lib/facets/string/mscan.rb</a>
76
+ <a href="../files/lib/facets/string/capitalized_rb.html">lib/facets/string/capitalized.rb</a>
77
+ <a href="../files/lib/facets/string/natcmp_rb.html">lib/facets/string/natcmp.rb</a>
78
+ <a href="../files/lib/facets/string/subtract_rb.html">lib/facets/string/subtract.rb</a>
79
+ <a href="../files/lib/facets/string/stylize_rb.html">lib/facets/string/stylize.rb</a>
80
+ <a href="../files/lib/facets/string/titlecase_rb.html">lib/facets/string/titlecase.rb</a>
81
+ <a href="../files/lib/facets/string/words_rb.html">lib/facets/string/words.rb</a>
82
+ <a href="../files/lib/facets/string/interpolate_rb.html">lib/facets/string/interpolate.rb</a>
83
+ <a href="../files/lib/facets/string/cleave_rb.html">lib/facets/string/cleave.rb</a>
84
+ <a href="../files/lib/facets/string/to_time_rb.html">lib/facets/string/to_time.rb</a>
85
+ <a href="../files/lib/facets/string/line_wrap_rb.html">lib/facets/string/line_wrap.rb</a>
86
+ <a href="../files/lib/facets/string/bracket_rb.html">lib/facets/string/bracket.rb</a>
87
+ <a href="../files/lib/facets/string/chomp_rb.html">lib/facets/string/chomp.rb</a>
88
+ <a href="../files/lib/facets/string/splice_rb.html">lib/facets/string/splice.rb</a>
89
+ <a href="../files/lib/facets/string/rewrite_rb.html">lib/facets/string/rewrite.rb</a>
90
+ <a href="../files/lib/facets/string/nchar_rb.html">lib/facets/string/nchar.rb</a>
91
+ <a href="../files/lib/facets/string/xor_rb.html">lib/facets/string/xor.rb</a>
92
+ <a href="../files/lib/facets/string/underscore_rb.html">lib/facets/string/underscore.rb</a>
93
+ </td>
94
+ </tr>
95
+ <tr>
96
+ <td>Parent:</td>
97
+ <td>
98
+ <a href="Object.html">
99
+ Object
100
+ </a>
101
+ </td>
102
+ </tr>
103
+ </table>
104
+ </td>
105
+ </tr>
106
+ </table>
107
+ <!-- banner header -->
108
+
109
+ <div id="bodyContent">
110
+ <div id="content">
111
+
112
+
113
+
114
+
115
+ <div class="sectiontitle">Methods</div>
116
+ <ul>
117
+ <li><a href="#M000262">-</a></li>
118
+ <li><a href="#M000285">^</a></li>
119
+ <li><a href="#M000240">align</a></li>
120
+ <li><a href="#M000243">align_center</a></li>
121
+ <li><a href="#M000242">align_left</a></li>
122
+ <li><a href="#M000241">align_right</a></li>
123
+ <li><a href="#M000231">blank?</a></li>
124
+ <li><a href="#M000274">bracket</a></li>
125
+ <li><a href="#M000275">bracket!</a></li>
126
+ <li><a href="#M000224">bytes</a></li>
127
+ <li><a href="#M000239">camelcase</a></li>
128
+ <li><a href="#M000258">capitalized?</a></li>
129
+ <li><a href="#M000225">chars</a></li>
130
+ <li><a href="#M000270">cleave</a></li>
131
+ <li><a href="#M000234">cmp</a></li>
132
+ <li><a href="#M000279">dequote</a></li>
133
+ <li><a href="#M000256">divide</a></li>
134
+ <li><a href="#M000259">downcase?</a></li>
135
+ <li><a href="#M000227">each_char</a></li>
136
+ <li><a href="#M000229">end_with?</a></li>
137
+ <li><a href="#M000246">expand_tabs</a></li>
138
+ <li><a href="#M000238">fold</a></li>
139
+ <li><a href="#M000266">humanize</a></li>
140
+ <li><a href="#M000248">indent</a></li>
141
+ <li><a href="#M000254">index_all</a></li>
142
+ <li><a href="#M000269">interpolate</a></li>
143
+ <li><a href="#M000280">lchomp</a></li>
144
+ <li><a href="#M000281">lchomp!</a></li>
145
+ <li><a href="#M000273">line_wrap</a></li>
146
+ <li><a href="#M000226">lines</a></li>
147
+ <li><a href="#M000250">margin</a></li>
148
+ <li><a href="#M000265">methodize</a></li>
149
+ <li><a href="#M000263">modulize</a></li>
150
+ <li><a href="#M000257">mscan</a></li>
151
+ <li><a href="#M000261">natcmp</a></li>
152
+ <li><a href="#M000284">nchar</a></li>
153
+ <li><a href="#M000249">outdent</a></li>
154
+ <li><a href="#M000264">pathize</a></li>
155
+ <li><a href="#M000278">quote</a></li>
156
+ <li><a href="#M000251">range</a></li>
157
+ <li><a href="#M000252">range_all</a></li>
158
+ <li><a href="#M000253">range_of_line</a></li>
159
+ <li><a href="#M000283">rewrite</a></li>
160
+ <li><a href="#M000235">shatter</a></li>
161
+ <li><a href="#M000255">snakecase</a></li>
162
+ <li><a href="#M000287">space</a></li>
163
+ <li><a href="#M000282">splice</a></li>
164
+ <li><a href="#M000228">start_with?</a></li>
165
+ <li><a href="#M000244">tab</a></li>
166
+ <li><a href="#M000245">taballto</a></li>
167
+ <li><a href="#M000247">tabto</a></li>
168
+ <li><a href="#M000268">titlecase</a></li>
169
+ <li><a href="#M000267">titleize</a></li>
170
+ <li><a href="#M000232">to_b</a></li>
171
+ <li><a href="#M000272">to_date</a></li>
172
+ <li><a href="#M000236">to_re</a></li>
173
+ <li><a href="#M000237">to_rx</a></li>
174
+ <li><a href="#M000233">to_s</a></li>
175
+ <li><a href="#M000271">to_time</a></li>
176
+ <li><a href="#M000276">unbracket</a></li>
177
+ <li><a href="#M000277">unbracket!</a></li>
178
+ <li><a href="#M000286">underscore</a></li>
179
+ <li><a href="#M000260">upcase?</a></li>
180
+ <li><a href="#M000230">variablize</a></li>
181
+ </ul>
182
+
183
+ <div class="sectiontitle">Included Modules</div>
184
+ <ul>
185
+ <li><a href="String/Words.html">Words</a></li>
186
+ </ul>
187
+
188
+
189
+ <div class="sectiontitle">Classes and Modules</div>
190
+ Module <a href="String/Words.html" class="link">String::Words</a><br />
191
+
192
+
193
+ <div class="sectiontitle">Constants</div>
194
+ <table border='0' cellpadding='5'>
195
+ <tr valign='top'>
196
+ <td class="attr-name">BRA2KET</td>
197
+ <td>=</td>
198
+ <td class="attr-value">{ '['=&gt;']', '('=&gt;')', '{'=&gt;'}', '&lt;'=&gt;'&gt;' }</td>
199
+ </tr>
200
+ </table>
201
+
202
+
203
+ <div class="sectiontitle">Public Class methods</div>
204
+ <div class="method">
205
+ <div class="title">
206
+ <a name="M000269"></a><b>interpolate</b>(&amp;str)
207
+ </div>
208
+ <div class="description">
209
+ <p>
210
+ Interpolate. Provides a means of extenally using Ruby string interpolation
211
+ mechinism.
212
+ </p>
213
+ <pre>
214
+ try = &quot;hello&quot;
215
+ str = &quot;\#{try}!!!&quot;
216
+ String.interpolate{ str } #=&gt; &quot;hello!!!&quot;
217
+
218
+ NOTE: The block neccessary in order to get
219
+ then binding of the caller.
220
+
221
+ CREDIT: Trans
222
+ </pre>
223
+ </div>
224
+ <div class="sourcecode">
225
+ <p class="source-link">[ <a href="javascript:toggleSource('M000269_source')" id="l_M000269_source">show source</a> ]</p>
226
+ <div id="M000269_source" class="dyn-source">
227
+ <pre>
228
+ <span class="ruby-comment cmt"># File lib/facets/string/interpolate.rb, line 15</span>
229
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">interpolate</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">str</span>)
230
+ <span class="ruby-identifier">eval</span> <span class="ruby-node">&quot;%{#{str.call}}&quot;</span>, <span class="ruby-identifier">str</span>.<span class="ruby-identifier">binding</span>
231
+ <span class="ruby-keyword kw">end</span>
232
+ </pre>
233
+ </div>
234
+ </div>
235
+ </div>
236
+ <div class="sectiontitle">Public Instance methods</div>
237
+ <div class="method">
238
+ <div class="title">
239
+ <a name="M000262"></a><b>-</b>(pattern)
240
+ </div>
241
+ <div class="description">
242
+ <p>
243
+ Removes occurances of a string or regexp.
244
+ </p>
245
+ <pre>
246
+ &quot;HELLO HELLO&quot; - &quot;LL&quot; #=&gt; &quot;HEO HEO&quot;
247
+
248
+ CREDIT: Benjamin David Oakes
249
+ </pre>
250
+ </div>
251
+ <div class="sourcecode">
252
+ <p class="source-link">[ <a href="javascript:toggleSource('M000262_source')" id="l_M000262_source">show source</a> ]</p>
253
+ <div id="M000262_source" class="dyn-source">
254
+ <pre>
255
+ <span class="ruby-comment cmt"># File lib/facets/string/subtract.rb, line 9</span>
256
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">pattern</span>)
257
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">pattern</span>, <span class="ruby-value str">''</span>)
258
+ <span class="ruby-keyword kw">end</span>
259
+ </pre>
260
+ </div>
261
+ </div>
262
+ </div>
263
+ <div class="method">
264
+ <div class="title">
265
+ <a name="M000285"></a><b>^</b>(aString)
266
+ </div>
267
+ <div class="description">
268
+ <p>
269
+ XOR two string.
270
+ </p>
271
+ <p>
272
+ TODO: This is used by crypt.rb, it needs to be documented.
273
+ </p>
274
+ </div>
275
+ <div class="sourcecode">
276
+ <p class="source-link">[ <a href="javascript:toggleSource('M000285_source')" id="l_M000285_source">show source</a> ]</p>
277
+ <div id="M000285_source" class="dyn-source">
278
+ <pre>
279
+ <span class="ruby-comment cmt"># File lib/facets/string/xor.rb, line 7</span>
280
+ <span class="ruby-keyword kw">def</span> <span class="ruby-operator">^</span>(<span class="ruby-identifier">aString</span>)
281
+ <span class="ruby-identifier">a</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">'C'</span><span class="ruby-operator">*</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>))
282
+ <span class="ruby-identifier">b</span> = <span class="ruby-identifier">aString</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">'C'</span><span class="ruby-operator">*</span>(<span class="ruby-identifier">aString</span>.<span class="ruby-identifier">length</span>))
283
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">b</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">length</span>)
284
+ (<span class="ruby-identifier">a</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">length</span>).<span class="ruby-identifier">times</span> { <span class="ruby-identifier">b</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">0</span> }
285
+ <span class="ruby-keyword kw">end</span>
286
+ <span class="ruby-identifier">xor</span> = <span class="ruby-value str">&quot;&quot;</span>
287
+ <span class="ruby-value">0</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">a</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">pos</span><span class="ruby-operator">|</span>
288
+ <span class="ruby-identifier">x</span> = <span class="ruby-identifier">a</span>[<span class="ruby-identifier">pos</span>] <span class="ruby-operator">^</span> <span class="ruby-identifier">b</span>[<span class="ruby-identifier">pos</span>]
289
+ <span class="ruby-identifier">xor</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">chr</span>()
290
+ }
291
+ <span class="ruby-keyword kw">return</span>(<span class="ruby-identifier">xor</span>)
292
+ <span class="ruby-keyword kw">end</span>
293
+ </pre>
294
+ </div>
295
+ </div>
296
+ </div>
297
+ <div class="method">
298
+ <div class="title">
299
+ <a name="M000240"></a><b>align</b>(direction, n, sep=&quot;\n&quot;, c=' ')
300
+ </div>
301
+ <div class="sourcecode">
302
+ <p class="source-link">[ <a href="javascript:toggleSource('M000240_source')" id="l_M000240_source">show source</a> ]</p>
303
+ <div id="M000240_source" class="dyn-source">
304
+ <pre>
305
+ <span class="ruby-comment cmt"># File lib/facets/string/align.rb, line 3</span>
306
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">align</span>(<span class="ruby-identifier">direction</span>, <span class="ruby-identifier">n</span>, <span class="ruby-identifier">sep</span>=<span class="ruby-value str">&quot;\n&quot;</span>, <span class="ruby-identifier">c</span>=<span class="ruby-value str">' '</span>)
307
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">direction</span>
308
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:right</span>
309
+ <span class="ruby-identifier">align_right</span>(<span class="ruby-identifier">n</span>, <span class="ruby-identifier">sep</span>=<span class="ruby-value str">&quot;\n&quot;</span>, <span class="ruby-identifier">c</span>=<span class="ruby-value str">' '</span>)
310
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:left</span>
311
+ <span class="ruby-identifier">align_left</span>(<span class="ruby-identifier">n</span>, <span class="ruby-identifier">sep</span>=<span class="ruby-value str">&quot;\n&quot;</span>, <span class="ruby-identifier">c</span>=<span class="ruby-value str">' '</span>)
312
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:center</span>
313
+ <span class="ruby-identifier">align_center</span>(<span class="ruby-identifier">n</span>, <span class="ruby-identifier">sep</span>=<span class="ruby-value str">&quot;\n&quot;</span>, <span class="ruby-identifier">c</span>=<span class="ruby-value str">' '</span>)
314
+ <span class="ruby-keyword kw">else</span>
315
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>
316
+ <span class="ruby-keyword kw">end</span>
317
+ <span class="ruby-keyword kw">end</span>
318
+ </pre>
319
+ </div>
320
+ </div>
321
+ </div>
322
+ <div class="method">
323
+ <div class="title">
324
+ <a name="M000243"></a><b>align_center</b>(n, sep=&quot;\n&quot;, c=' ')
325
+ </div>
326
+ <div class="description">
327
+ <p>
328
+ Centers each line of a string.
329
+ </p>
330
+ <p>
331
+ The defualt alignment seperation is a new line (&quot;/n&quot;) This can be
332
+ changed as can be the padding string which defaults to a single <a
333
+ href="String.html#M000287">space</a> (&#8217; &#8217;).
334
+ </p>
335
+ <pre>
336
+ s = &lt;&lt;-EOS
337
+ This is a test
338
+ and
339
+ so on
340
+ EOS
341
+
342
+ puts s.align_center(14)
343
+ </pre>
344
+ <p>
345
+ <em>produces</em>
346
+ </p>
347
+ <pre>
348
+ This is a test
349
+ and
350
+ so on
351
+
352
+ CREDIT: Trans
353
+ </pre>
354
+ </div>
355
+ <div class="sourcecode">
356
+ <p class="source-link">[ <a href="javascript:toggleSource('M000243_source')" id="l_M000243_source">show source</a> ]</p>
357
+ <div id="M000243_source" class="dyn-source">
358
+ <pre>
359
+ <span class="ruby-comment cmt"># File lib/facets/string/align.rb, line 97</span>
360
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">align_center</span>(<span class="ruby-identifier">n</span>, <span class="ruby-identifier">sep</span>=<span class="ruby-value str">&quot;\n&quot;</span>, <span class="ruby-identifier">c</span>=<span class="ruby-value str">' '</span>)
361
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">center</span>(<span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_i</span>,<span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sep</span><span class="ruby-operator">==</span><span class="ruby-keyword kw">nil</span>
362
+ <span class="ruby-identifier">q</span> = <span class="ruby-identifier">split</span>(<span class="ruby-identifier">sep</span>.<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
363
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">center</span>(<span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_i</span>,<span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span>)
364
+ }
365
+ <span class="ruby-identifier">q</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">sep</span>.<span class="ruby-identifier">to_s</span>)
366
+ <span class="ruby-keyword kw">end</span>
367
+ </pre>
368
+ </div>
369
+ </div>
370
+ </div>
371
+ <div class="method">
372
+ <div class="title">
373
+ <a name="M000242"></a><b>align_left</b>(n, sep=&quot;\n&quot;, c=' ')
374
+ </div>
375
+ <div class="description">
376
+ <p>
377
+ Align a string to the left.
378
+ </p>
379
+ <p>
380
+ The defualt alignment seperation is a new line (&quot;/n&quot;) This can be
381
+ changes as can be the padding string which defaults to a single <a
382
+ href="String.html#M000287">space</a> (&#8217; &#8217;).
383
+ </p>
384
+ <pre>
385
+ s = &lt;&lt;-EOS
386
+ This is a test
387
+ and
388
+ so on
389
+ EOS
390
+
391
+ puts s.align_left(2)
392
+ </pre>
393
+ <p>
394
+ <em>produces</em>
395
+ </p>
396
+ <pre>
397
+ This is a test
398
+ and
399
+ so on
400
+
401
+ CREDIT: Trans
402
+ </pre>
403
+ </div>
404
+ <div class="sourcecode">
405
+ <p class="source-link">[ <a href="javascript:toggleSource('M000242_source')" id="l_M000242_source">show source</a> ]</p>
406
+ <div id="M000242_source" class="dyn-source">
407
+ <pre>
408
+ <span class="ruby-comment cmt"># File lib/facets/string/align.rb, line 67</span>
409
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">align_left</span>(<span class="ruby-identifier">n</span>, <span class="ruby-identifier">sep</span>=<span class="ruby-value str">&quot;\n&quot;</span>, <span class="ruby-identifier">c</span>=<span class="ruby-value str">' '</span>)
410
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">ljust</span>(<span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_i</span>,<span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sep</span><span class="ruby-operator">==</span><span class="ruby-keyword kw">nil</span>
411
+ <span class="ruby-identifier">q</span> = <span class="ruby-identifier">split</span>(<span class="ruby-identifier">sep</span>.<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
412
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">ljust</span>(<span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_i</span>,<span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span>)
413
+ }
414
+ <span class="ruby-identifier">q</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">sep</span>.<span class="ruby-identifier">to_s</span>)
415
+ <span class="ruby-keyword kw">end</span>
416
+ </pre>
417
+ </div>
418
+ </div>
419
+ </div>
420
+ <div class="method">
421
+ <div class="title">
422
+ <a name="M000241"></a><b>align_right</b>(n, sep=&quot;\n&quot;, c=' ')
423
+ </div>
424
+ <div class="description">
425
+ <p>
426
+ Align a string to the right. The defualt alignment seperation is a new line
427
+ (&quot;/n&quot;) This can be changes as can be the padding string which
428
+ defaults to a single <a href="String.html#M000287">space</a> (&#8217;
429
+ &#8217;).
430
+ </p>
431
+ <pre>
432
+ s = &lt;&lt;-EOS
433
+ This is a test
434
+ and
435
+ so on
436
+ EOS
437
+
438
+ puts s.align_right(2)
439
+ </pre>
440
+ <p>
441
+ <em>produces</em>
442
+ </p>
443
+ <pre>
444
+ This is a test
445
+ and
446
+ so on
447
+
448
+ CREDIT: Trans
449
+ </pre>
450
+ </div>
451
+ <div class="sourcecode">
452
+ <p class="source-link">[ <a href="javascript:toggleSource('M000241_source')" id="l_M000241_source">show source</a> ]</p>
453
+ <div id="M000241_source" class="dyn-source">
454
+ <pre>
455
+ <span class="ruby-comment cmt"># File lib/facets/string/align.rb, line 37</span>
456
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">align_right</span>(<span class="ruby-identifier">n</span>, <span class="ruby-identifier">sep</span>=<span class="ruby-value str">&quot;\n&quot;</span>, <span class="ruby-identifier">c</span>=<span class="ruby-value str">' '</span>)
457
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">rjust</span>(<span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_i</span>,<span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sep</span><span class="ruby-operator">==</span><span class="ruby-keyword kw">nil</span>
458
+ <span class="ruby-identifier">q</span> = <span class="ruby-identifier">split</span>(<span class="ruby-identifier">sep</span>.<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
459
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">rjust</span>(<span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_i</span>,<span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span>)
460
+ }
461
+ <span class="ruby-identifier">q</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">sep</span>.<span class="ruby-identifier">to_s</span>)
462
+ <span class="ruby-keyword kw">end</span>
463
+ </pre>
464
+ </div>
465
+ </div>
466
+ </div>
467
+ <div class="method">
468
+ <div class="title">
469
+ <a name="M000231"></a><b>blank?</b>()
470
+ </div>
471
+ <div class="description">
472
+ <p>
473
+ Is this string just whitespace?
474
+ </p>
475
+ <pre>
476
+ &quot;abc&quot;.blank? #=&gt; false
477
+ &quot; &quot;.blank? #=&gt; true
478
+ </pre>
479
+ </div>
480
+ <div class="sourcecode">
481
+ <p class="source-link">[ <a href="javascript:toggleSource('M000231_source')" id="l_M000231_source">show source</a> ]</p>
482
+ <div id="M000231_source" class="dyn-source">
483
+ <pre>
484
+ <span class="ruby-comment cmt"># File lib/facets/blank.rb, line 50</span>
485
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">blank?</span>
486
+ <span class="ruby-keyword kw">self</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/\S/</span>
487
+ <span class="ruby-keyword kw">end</span>
488
+ </pre>
489
+ </div>
490
+ </div>
491
+ </div>
492
+ <div class="method">
493
+ <div class="title">
494
+ <a name="M000274"></a><b>bracket</b>(bra, ket=nil)
495
+ </div>
496
+ <div class="description">
497
+ <p>
498
+ Return a new string embraced by given brakets. If only one <a
499
+ href="String.html#M000274">bracket</a> char is given it will be placed on
500
+ either side.
501
+ </p>
502
+ <pre>
503
+ &quot;wrap me&quot;.bracket('{') #=&gt; &quot;{wrap me}&quot;
504
+ &quot;wrap me&quot;.bracket('--','!') #=&gt; &quot;--wrap me!&quot;
505
+
506
+ CREDIT: Trans
507
+ </pre>
508
+ </div>
509
+ <div class="sourcecode">
510
+ <p class="source-link">[ <a href="javascript:toggleSource('M000274_source')" id="l_M000274_source">show source</a> ]</p>
511
+ <div id="M000274_source" class="dyn-source">
512
+ <pre>
513
+ <span class="ruby-comment cmt"># File lib/facets/string/bracket.rb, line 14</span>
514
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bracket</span>(<span class="ruby-identifier">bra</span>, <span class="ruby-identifier">ket</span>=<span class="ruby-keyword kw">nil</span>)
515
+ <span class="ruby-comment cmt">#ket = String.bra2ket[$&amp;] if ! ket &amp;&amp; /^[\[({&lt;]$/ =~ bra</span>
516
+ <span class="ruby-identifier">ket</span> = <span class="ruby-constant">BRA2KET</span>[<span class="ruby-identifier">bra</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ket</span>
517
+ <span class="ruby-node">&quot;#{bra}#{self}#{ket ? ket : bra}&quot;</span>
518
+ <span class="ruby-keyword kw">end</span>
519
+ </pre>
520
+ </div>
521
+ </div>
522
+ </div>
523
+ <div class="method">
524
+ <div class="title">
525
+ <a name="M000275"></a><b>bracket!</b>(bra, ket=nil)
526
+ </div>
527
+ <div class="description">
528
+ <p>
529
+ Inplace version of braket.
530
+ </p>
531
+ <pre>
532
+ CREDIT: Trans
533
+ </pre>
534
+ </div>
535
+ <div class="sourcecode">
536
+ <p class="source-link">[ <a href="javascript:toggleSource('M000275_source')" id="l_M000275_source">show source</a> ]</p>
537
+ <div id="M000275_source" class="dyn-source">
538
+ <pre>
539
+ <span class="ruby-comment cmt"># File lib/facets/string/bracket.rb, line 24</span>
540
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bracket!</span>(<span class="ruby-identifier">bra</span>, <span class="ruby-identifier">ket</span>=<span class="ruby-keyword kw">nil</span>)
541
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>(<span class="ruby-identifier">bracket</span>(<span class="ruby-identifier">bra</span>, <span class="ruby-identifier">ket</span>))
542
+ <span class="ruby-keyword kw">end</span>
543
+ </pre>
544
+ </div>
545
+ </div>
546
+ </div>
547
+ <div class="method">
548
+ <div class="title">
549
+ <a name="M000224"></a><b>bytes</b>()
550
+ </div>
551
+ <div class="description">
552
+ <p>
553
+ Upacks string into <a href="String.html#M000224">bytes</a>.
554
+ </p>
555
+ </div>
556
+ <div class="sourcecode">
557
+ <p class="source-link">[ <a href="javascript:toggleSource('M000224_source')" id="l_M000224_source">show source</a> ]</p>
558
+ <div id="M000224_source" class="dyn-source">
559
+ <pre>
560
+ <span class="ruby-comment cmt"># File lib/facets/ruby.rb, line 336</span>
561
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bytes</span>
562
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">'C*'</span>)
563
+ <span class="ruby-keyword kw">end</span>
564
+ </pre>
565
+ </div>
566
+ </div>
567
+ </div>
568
+ <div class="method">
569
+ <div class="title">
570
+ <a name="M000239"></a><b>camelcase</b>(upcase_first_letter=true)
571
+ </div>
572
+ <div class="description">
573
+ <p>
574
+ Converts a string to <a href="String.html#M000239">camelcase</a>.
575
+ </p>
576
+ <p>
577
+ By default <a href="String.html#M000239">camelcase</a> convert to
578
+ UpperCamelCase, If an argument is set to <tt>false</tt>, then <a
579
+ href="String.html#M000239">camelcase</a> will produce lowerCamelCase.
580
+ </p>
581
+ <p>
582
+ <tt><a href="String.html#M000239">camelcase</a></tt> also converts
583
+ &#8217;/&#8217; to &#8217;::&#8217; which is useful for converting paths to
584
+ namespaces.
585
+ </p>
586
+ <p>
587
+ Examples
588
+ </p>
589
+ <pre>
590
+ &quot;camel_case&quot;.camelcase #=&gt; &quot;CamelCase&quot;
591
+ &quot;camel/case&quot;.camelcase #=&gt; &quot;Camel::Case&quot;
592
+ &quot;camel_case&quot;.camelcase(false) #=&gt; &quot;camelCase&quot;
593
+ </pre>
594
+ </div>
595
+ <div class="sourcecode">
596
+ <p class="source-link">[ <a href="javascript:toggleSource('M000239_source')" id="l_M000239_source">show source</a> ]</p>
597
+ <div id="M000239_source" class="dyn-source">
598
+ <pre>
599
+ <span class="ruby-comment cmt"># File lib/facets/string/camelcase.rb, line 16</span>
600
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">camelcase</span>(<span class="ruby-identifier">upcase_first_letter</span>=<span class="ruby-keyword kw">true</span>)
601
+ <span class="ruby-identifier">up</span> = <span class="ruby-identifier">upcase_first_letter</span>
602
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">dup</span>
603
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\/(.?)/</span>){ <span class="ruby-node">&quot;::#{$1.upcase}&quot;</span> } <span class="ruby-comment cmt"># NOT SO SURE ABOUT THIS -T</span>
604
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/(?:_+|-+)([a-z])/</span>){ <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">upcase</span> }
605
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/(\A|\s)([a-z])/</span>){ <span class="ruby-identifier">$1</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">upcase</span> } <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">up</span>
606
+ <span class="ruby-identifier">str</span>
607
+ <span class="ruby-keyword kw">end</span>
608
+ </pre>
609
+ </div>
610
+ </div>
611
+ </div>
612
+ <div class="method">
613
+ <div class="title">
614
+ <a name="M000258"></a><b>capitalized?</b>()
615
+ </div>
616
+ <div class="description">
617
+ <p>
618
+ Return true if the string is capitalized, otherwise false.
619
+ </p>
620
+ <pre>
621
+ &quot;THIS&quot;.capitalized? #=&gt; true
622
+ &quot;This&quot;.capitalized? #=&gt; true
623
+ &quot;this&quot;.capitalized? #=&gt; false
624
+
625
+ CREDIT: Phil Tomson
626
+ </pre>
627
+ </div>
628
+ <div class="sourcecode">
629
+ <p class="source-link">[ <a href="javascript:toggleSource('M000258_source')" id="l_M000258_source">show source</a> ]</p>
630
+ <div id="M000258_source" class="dyn-source">
631
+ <pre>
632
+ <span class="ruby-comment cmt"># File lib/facets/string/capitalized.rb, line 11</span>
633
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">capitalized?</span>
634
+ <span class="ruby-keyword kw">self</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^[A-Z]/</span>
635
+ <span class="ruby-keyword kw">end</span>
636
+ </pre>
637
+ </div>
638
+ </div>
639
+ </div>
640
+ <div class="method">
641
+ <div class="title">
642
+ <a name="M000225"></a><b>chars</b>()
643
+ </div>
644
+ <div class="description">
645
+ <p>
646
+ Returns an array of characters.
647
+ </p>
648
+ <pre>
649
+ &quot;abc&quot;.chars #=&gt; [&quot;a&quot;,&quot;b&quot;,&quot;c&quot;]
650
+ </pre>
651
+ </div>
652
+ <div class="sourcecode">
653
+ <p class="source-link">[ <a href="javascript:toggleSource('M000225_source')" id="l_M000225_source">show source</a> ]</p>
654
+ <div id="M000225_source" class="dyn-source">
655
+ <pre>
656
+ <span class="ruby-comment cmt"># File lib/facets/ruby.rb, line 344</span>
657
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">chars</span>
658
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">//</span>)
659
+ <span class="ruby-keyword kw">end</span>
660
+ </pre>
661
+ </div>
662
+ </div>
663
+ </div>
664
+ <div class="method">
665
+ <div class="title">
666
+ <a name="M000270"></a><b>cleave</b>(threshold=nil, len=nil)
667
+ </div>
668
+ <div class="description">
669
+ <p>
670
+ Cleave a string. Break a string in two parts at the nearest whitespace.
671
+ </p>
672
+ <pre>
673
+ CREDIT: Trans
674
+ </pre>
675
+ </div>
676
+ <div class="sourcecode">
677
+ <p class="source-link">[ <a href="javascript:toggleSource('M000270_source')" id="l_M000270_source">show source</a> ]</p>
678
+ <div id="M000270_source" class="dyn-source">
679
+ <pre>
680
+ <span class="ruby-comment cmt"># File lib/facets/string/cleave.rb, line 8</span>
681
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cleave</span>(<span class="ruby-identifier">threshold</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">len</span>=<span class="ruby-keyword kw">nil</span>)
682
+ <span class="ruby-identifier">l</span> = (<span class="ruby-identifier">len</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">size</span> <span class="ruby-operator">/</span> <span class="ruby-value">2</span>)
683
+ <span class="ruby-identifier">t</span> = <span class="ruby-identifier">threshold</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">size</span>
684
+
685
+ <span class="ruby-identifier">h1</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">l</span>]
686
+ <span class="ruby-identifier">h2</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">l</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
687
+
688
+ <span class="ruby-identifier">i1</span> = <span class="ruby-identifier">h1</span>.<span class="ruby-identifier">rindex</span>(<span class="ruby-regexp re">/\s/</span>) <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
689
+ <span class="ruby-identifier">d1</span> = (<span class="ruby-identifier">i1</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">l</span>).<span class="ruby-identifier">abs</span>
690
+
691
+ <span class="ruby-identifier">d2</span> = <span class="ruby-identifier">h2</span>.<span class="ruby-identifier">index</span>(<span class="ruby-regexp re">/\s/</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">l</span>
692
+ <span class="ruby-identifier">i2</span> = <span class="ruby-identifier">d2</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">l</span>
693
+
694
+ <span class="ruby-identifier">d1</span> = (<span class="ruby-identifier">i1</span><span class="ruby-operator">-</span><span class="ruby-identifier">l</span>).<span class="ruby-identifier">abs</span>
695
+ <span class="ruby-identifier">d2</span> = (<span class="ruby-identifier">i2</span><span class="ruby-operator">-</span><span class="ruby-identifier">l</span>).<span class="ruby-identifier">abs</span>
696
+
697
+ <span class="ruby-keyword kw">if</span> [<span class="ruby-identifier">d1</span>, <span class="ruby-identifier">d2</span>].<span class="ruby-identifier">min</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">t</span>
698
+ <span class="ruby-identifier">i</span> = <span class="ruby-identifier">t</span>
699
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">d1</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">d2</span>
700
+ <span class="ruby-identifier">i</span> = <span class="ruby-identifier">i1</span>
701
+ <span class="ruby-keyword kw">else</span>
702
+ <span class="ruby-identifier">i</span> = <span class="ruby-identifier">i2</span>
703
+ <span class="ruby-keyword kw">end</span>
704
+
705
+ <span class="ruby-comment cmt">#dup.insert(l, &quot;\n&quot;).gsub(/^\s+|\s+$/, '')</span>
706
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">i</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>, <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>
707
+ <span class="ruby-keyword kw">end</span>
708
+ </pre>
709
+ </div>
710
+ </div>
711
+ </div>
712
+ <div class="method">
713
+ <div class="title">
714
+ <a name="M000234"></a><b>cmp</b>(other)
715
+ </div>
716
+ <div class="description">
717
+ <p>
718
+ Compare method that takes length into account. Unlike #&lt;=&gt;, this is
719
+ compatible with succ.
720
+ </p>
721
+ <pre>
722
+ &quot;abc&quot;.cmp(&quot;abc&quot;) #=&gt; 0
723
+ &quot;abcd&quot;.cmp(&quot;abc&quot;) #=&gt; 1
724
+ &quot;abc&quot;.cmp(&quot;abcd&quot;) #=&gt; -1
725
+ &quot;xyz&quot;.cmp(&quot;abc&quot;) #=&gt; 1
726
+
727
+ CREDIT Peter Vanbroekhoven
728
+ </pre>
729
+ </div>
730
+ <div class="sourcecode">
731
+ <p class="source-link">[ <a href="javascript:toggleSource('M000234_source')" id="l_M000234_source">show source</a> ]</p>
732
+ <div id="M000234_source" class="dyn-source">
733
+ <pre>
734
+ <span class="ruby-comment cmt"># File lib/facets/comparable/cmp.rb, line 31</span>
735
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cmp</span>(<span class="ruby-identifier">other</span>)
736
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value">-1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">length</span>
737
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">length</span>
738
+ <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">other</span> <span class="ruby-comment cmt"># alphabetic compare</span>
739
+ <span class="ruby-keyword kw">end</span>
740
+ </pre>
741
+ </div>
742
+ </div>
743
+ </div>
744
+ <div class="method">
745
+ <div class="title">
746
+ <a name="M000279"></a><b>dequote</b>()
747
+ </div>
748
+ <div class="description">
749
+ <p>
750
+ Remove quotes from string.
751
+ </p>
752
+ <pre>
753
+ &quot;'hi'&quot;.dequite #=&gt; &quot;hi&quot;
754
+
755
+ CREDIT: Trans
756
+ </pre>
757
+ </div>
758
+ <div class="sourcecode">
759
+ <p class="source-link">[ <a href="javascript:toggleSource('M000279_source')" id="l_M000279_source">show source</a> ]</p>
760
+ <div id="M000279_source" class="dyn-source">
761
+ <pre>
762
+ <span class="ruby-comment cmt"># File lib/facets/string/bracket.rb, line 88</span>
763
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dequote</span>
764
+ <span class="ruby-identifier">s</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
765
+
766
+ <span class="ruby-keyword kw">case</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span>,<span class="ruby-value">1</span>]
767
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;'&quot;</span>, <span class="ruby-value str">'&quot;'</span>, <span class="ruby-value str">'`'</span>
768
+ <span class="ruby-identifier">s</span>[<span class="ruby-value">0</span>] = <span class="ruby-value str">''</span>
769
+ <span class="ruby-keyword kw">end</span>
770
+
771
+ <span class="ruby-keyword kw">case</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-value">-1</span>,<span class="ruby-value">1</span>]
772
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;'&quot;</span>, <span class="ruby-value str">'&quot;'</span>, <span class="ruby-value str">'`'</span>
773
+ <span class="ruby-identifier">s</span>[<span class="ruby-value">-1</span>] = <span class="ruby-value str">''</span>
774
+ <span class="ruby-keyword kw">end</span>
775
+
776
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
777
+ <span class="ruby-keyword kw">end</span>
778
+ </pre>
779
+ </div>
780
+ </div>
781
+ </div>
782
+ <div class="method">
783
+ <div class="title">
784
+ <a name="M000256"></a><b>divide</b>( re )
785
+ </div>
786
+ <div class="description">
787
+ <p>
788
+ Breaks a string up into an array based on a regular expression. Similar to
789
+ scan, but includes the matches.
790
+ </p>
791
+ <pre>
792
+ s = &quot;&lt;p&gt;This&lt;b&gt;is&lt;/b&gt;a test.&lt;/p&gt;&quot;
793
+ s.divide( /\&lt;.*?\&gt;/ )
794
+ </pre>
795
+ <p>
796
+ <em>produces</em>
797
+ </p>
798
+ <pre>
799
+ [&quot;&lt;p&gt;This&quot;, &quot;&lt;b&gt;is&quot;, &quot;&lt;/b&gt;a test.&quot;, &quot;&lt;/p&gt;&quot;]
800
+
801
+ CREDIT: Trans
802
+ </pre>
803
+ </div>
804
+ <div class="sourcecode">
805
+ <p class="source-link">[ <a href="javascript:toggleSource('M000256_source')" id="l_M000256_source">show source</a> ]</p>
806
+ <div id="M000256_source" class="dyn-source">
807
+ <pre>
808
+ <span class="ruby-comment cmt"># File lib/facets/string/divide.rb, line 15</span>
809
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">divide</span>( <span class="ruby-identifier">re</span> )
810
+ <span class="ruby-identifier">re2</span> = <span class="ruby-node">/#{re}.*?(?=#{re}|\Z)/</span>
811
+ <span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re2</span>) <span class="ruby-comment cmt">#{re}(?=#{re})/)</span>
812
+ <span class="ruby-keyword kw">end</span>
813
+ </pre>
814
+ </div>
815
+ </div>
816
+ </div>
817
+ <div class="method">
818
+ <div class="title">
819
+ <a name="M000259"></a><b>downcase?</b>()
820
+ </div>
821
+ <div class="description">
822
+ <p>
823
+ Return true if the string is lowercase (downcase), otherwise false.
824
+ </p>
825
+ <pre>
826
+ &quot;THIS&quot;.downcase? #=&gt; false
827
+ &quot;This&quot;.downcase? #=&gt; false
828
+ &quot;this&quot;.downcase? #=&gt; true
829
+
830
+ CREDIT: Phil Tomson
831
+ </pre>
832
+ </div>
833
+ <div class="sourcecode">
834
+ <p class="source-link">[ <a href="javascript:toggleSource('M000259_source')" id="l_M000259_source">show source</a> ]</p>
835
+ <div id="M000259_source" class="dyn-source">
836
+ <pre>
837
+ <span class="ruby-comment cmt"># File lib/facets/string/capitalized.rb, line 23</span>
838
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">downcase?</span>
839
+ <span class="ruby-identifier">downcase</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">self</span>
840
+ <span class="ruby-keyword kw">end</span>
841
+ </pre>
842
+ </div>
843
+ </div>
844
+ </div>
845
+ <div class="method">
846
+ <div class="title">
847
+ <a name="M000227"></a><b>each_char</b>( {|| ...}
848
+ </div>
849
+ <div class="description">
850
+ <p>
851
+ Iterates through each character. This is a little faster than using <a
852
+ href="String.html#M000225">chars</a> b/c it does not create the
853
+ intermediate array.
854
+ </p>
855
+ <pre>
856
+ a = ''
857
+ &quot;HELLO&quot;.each_character{ |c| a &lt;&lt; #{c.downcase} }
858
+ a #=&gt; 'hello'
859
+ </pre>
860
+ </div>
861
+ <div class="sourcecode">
862
+ <p class="source-link">[ <a href="javascript:toggleSource('M000227_source')" id="l_M000227_source">show source</a> ]</p>
863
+ <div id="M000227_source" class="dyn-source">
864
+ <pre>
865
+ <span class="ruby-comment cmt"># File lib/facets/ruby.rb, line 363</span>
866
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_char</span> <span class="ruby-comment cmt"># :yield:</span>
867
+ <span class="ruby-identifier">size</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
868
+ <span class="ruby-keyword kw">yield</span>(<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>,<span class="ruby-value">1</span>])
869
+ <span class="ruby-keyword kw">end</span>
870
+ <span class="ruby-keyword kw">end</span>
871
+ </pre>
872
+ </div>
873
+ </div>
874
+ </div>
875
+ <div class="method">
876
+ <div class="title">
877
+ <a name="M000229"></a><b>end_with?</b>(suffix)
878
+ </div>
879
+ <div class="description">
880
+ <p>
881
+ Does a string end with the given suffix?
882
+ </p>
883
+ <pre>
884
+ &quot;hello&quot;.ends_with?(&quot;lo&quot;) #=&gt; true
885
+ &quot;hello&quot;.ends_with?(&quot;to&quot;) #=&gt; false
886
+
887
+ CREDIT: Lucas Carlson
888
+ CREDIT: Blaine Cook
889
+ </pre>
890
+ </div>
891
+ <div class="sourcecode">
892
+ <p class="source-link">[ <a href="javascript:toggleSource('M000229_source')" id="l_M000229_source">show source</a> ]</p>
893
+ <div id="M000229_source" class="dyn-source">
894
+ <pre>
895
+ <span class="ruby-comment cmt"># File lib/facets/ruby.rb, line 389</span>
896
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">end_with?</span>(<span class="ruby-identifier">suffix</span>)
897
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">rindex</span>(<span class="ruby-identifier">suffix</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">suffix</span>.<span class="ruby-identifier">size</span>
898
+ <span class="ruby-keyword kw">end</span>
899
+ </pre>
900
+ </div>
901
+ </div>
902
+ </div>
903
+ <div class="method">
904
+ <div class="title">
905
+ <a name="M000246"></a><b>expand_tabs</b>(n=8)
906
+ </div>
907
+ <div class="description">
908
+ <p>
909
+ Expands tabs to <tt>n</tt> spaces. Non-destructive. If <tt>n</tt> is 0,
910
+ then tabs are simply removed. Raises an exception if <tt>n</tt> is
911
+ negative.
912
+ </p>
913
+ <p>
914
+ Thanks to GGaramuno for a more efficient algorithm. Very nice.
915
+ </p>
916
+ <pre>
917
+ CREDIT: Gavin Sinclair
918
+ CREDIT: Noah Gibbs
919
+ CREDIT: GGaramuno
920
+ </pre>
921
+ </div>
922
+ <div class="sourcecode">
923
+ <p class="source-link">[ <a href="javascript:toggleSource('M000246_source')" id="l_M000246_source">show source</a> ]</p>
924
+ <div id="M000246_source" class="dyn-source">
925
+ <pre>
926
+ <span class="ruby-comment cmt"># File lib/facets/string/tab.rb, line 26</span>
927
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expand_tabs</span>(<span class="ruby-identifier">n</span>=<span class="ruby-value">8</span>)
928
+ <span class="ruby-identifier">n</span> = <span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_int</span>
929
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;n must be &gt;= 0&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
930
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\t/</span>, <span class="ruby-value str">&quot;&quot;</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
931
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\t/</span>, <span class="ruby-value str">&quot; &quot;</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
932
+ <span class="ruby-identifier">str</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
933
+ <span class="ruby-keyword kw">while</span>
934
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/^([^\t\n]*)(\t+)/</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
935
+ <span class="ruby-identifier">val</span> = ( <span class="ruby-identifier">n</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">$1</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">n</span>) )
936
+ <span class="ruby-identifier">$1</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-value str">' '</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">val</span>)
937
+ }
938
+ <span class="ruby-keyword kw">end</span>
939
+ <span class="ruby-identifier">str</span>
940
+ <span class="ruby-keyword kw">end</span>
941
+ </pre>
942
+ </div>
943
+ </div>
944
+ </div>
945
+ <div class="method">
946
+ <div class="title">
947
+ <a name="M000238"></a><b>fold</b>(ignore_indented=false)
948
+ </div>
949
+ <div class="description">
950
+ <p>
951
+ Returns a new string with all new <a href="String.html#M000226">lines</a>
952
+ removed from adjacent <a href="String.html#M000226">lines</a> of text.
953
+ </p>
954
+ <pre>
955
+ s = &quot;This is\na test.\n\nIt clumps\nlines of text.&quot;
956
+ s.fold
957
+ </pre>
958
+ <p>
959
+ <em>produces</em>
960
+ </p>
961
+ <pre>
962
+ &quot;This is a test.\n\nIt clumps lines of text. &quot;
963
+ </pre>
964
+ <p>
965
+ One arguable flaw with this, that might need a fix: if the given string
966
+ ends in a newline, it is replaced with a single <a
967
+ href="String.html#M000287">space</a>.
968
+ </p>
969
+ <pre>
970
+ CREDIT: Trans
971
+ </pre>
972
+ </div>
973
+ <div class="sourcecode">
974
+ <p class="source-link">[ <a href="javascript:toggleSource('M000238_source')" id="l_M000238_source">show source</a> ]</p>
975
+ <div id="M000238_source" class="dyn-source">
976
+ <pre>
977
+ <span class="ruby-comment cmt"># File lib/facets/string/fold.rb, line 19</span>
978
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fold</span>(<span class="ruby-identifier">ignore_indented</span>=<span class="ruby-keyword kw">false</span>)
979
+ <span class="ruby-identifier">ns</span> = <span class="ruby-value str">''</span>
980
+ <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
981
+ <span class="ruby-identifier">br</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/(\n\s*\n|\Z)/</span><span class="ruby-identifier">m</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
982
+ <span class="ruby-identifier">b</span> = <span class="ruby-identifier">$~</span>.<span class="ruby-identifier">begin</span>(<span class="ruby-value">1</span>)
983
+ <span class="ruby-identifier">e</span> = <span class="ruby-identifier">$~</span>.<span class="ruby-identifier">end</span>(<span class="ruby-value">1</span>)
984
+ <span class="ruby-identifier">nl</span> = <span class="ruby-identifier">$&amp;</span>
985
+ <span class="ruby-identifier">tx</span> = <span class="ruby-identifier">slice</span>(<span class="ruby-identifier">i</span><span class="ruby-operator">...</span><span class="ruby-identifier">b</span>)
986
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ignore_indented</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">slice</span>(<span class="ruby-identifier">i</span><span class="ruby-operator">...</span><span class="ruby-identifier">b</span>) <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^[ ]+/</span>
987
+ <span class="ruby-identifier">ns</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">tx</span>
988
+ <span class="ruby-keyword kw">else</span>
989
+ <span class="ruby-identifier">ns</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">tx</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/[ ]*\n+/</span>,<span class="ruby-value str">' '</span>)
990
+ <span class="ruby-keyword kw">end</span>
991
+ <span class="ruby-identifier">ns</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">nl</span>
992
+ <span class="ruby-identifier">i</span> = <span class="ruby-identifier">e</span>
993
+ <span class="ruby-keyword kw">end</span>
994
+ <span class="ruby-identifier">ns</span>
995
+ <span class="ruby-keyword kw">end</span>
996
+ </pre>
997
+ </div>
998
+ </div>
999
+ </div>
1000
+ <div class="method">
1001
+ <div class="title">
1002
+ <a name="M000266"></a><b>humanize</b>()
1003
+ </div>
1004
+ <div class="description">
1005
+ <p>
1006
+ Replaces underscores with spaces and capitalizes word.
1007
+ </p>
1008
+ </div>
1009
+ <div class="sourcecode">
1010
+ <p class="source-link">[ <a href="javascript:toggleSource('M000266_source')" id="l_M000266_source">show source</a> ]</p>
1011
+ <div id="M000266_source" class="dyn-source">
1012
+ <pre>
1013
+ <span class="ruby-comment cmt"># File lib/facets/string/stylize.rb, line 59</span>
1014
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">humanize</span>
1015
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/_/</span>, <span class="ruby-value str">&quot; &quot;</span>).<span class="ruby-identifier">capitalize</span>
1016
+ <span class="ruby-keyword kw">end</span>
1017
+ </pre>
1018
+ </div>
1019
+ </div>
1020
+ </div>
1021
+ <div class="method">
1022
+ <div class="title">
1023
+ <a name="M000248"></a><b>indent</b>(n)
1024
+ </div>
1025
+ <div class="description">
1026
+ <p>
1027
+ Indent left or right by n spaces. (This used to be called <a
1028
+ href="String.html#M000244">tab</a> and aliased as <a
1029
+ href="String.html#M000248">indent</a>.)
1030
+ </p>
1031
+ <pre>
1032
+ CREDIT: Gavin Sinclair
1033
+ CREDIT: Trans
1034
+ </pre>
1035
+ </div>
1036
+ <div class="sourcecode">
1037
+ <p class="source-link">[ <a href="javascript:toggleSource('M000248_source')" id="l_M000248_source">show source</a> ]</p>
1038
+ <div id="M000248_source" class="dyn-source">
1039
+ <pre>
1040
+ <span class="ruby-comment cmt"># File lib/facets/string/tab.rb, line 60</span>
1041
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">n</span>)
1042
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
1043
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^/</span>, <span class="ruby-value str">' '</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">n</span>)
1044
+ <span class="ruby-keyword kw">else</span>
1045
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-node">/^ {0,#{-n}}/</span>, <span class="ruby-value str">&quot;&quot;</span>)
1046
+ <span class="ruby-keyword kw">end</span>
1047
+ <span class="ruby-keyword kw">end</span>
1048
+ </pre>
1049
+ </div>
1050
+ </div>
1051
+ </div>
1052
+ <div class="method">
1053
+ <div class="title">
1054
+ <a name="M000254"></a><b>index_all</b>(s, reuse=false)
1055
+ </div>
1056
+ <div class="description">
1057
+ <p>
1058
+ Like index but returns an array of all index locations. The reuse flag
1059
+ allows the trailing portion of a match to be reused for subsquent matches.
1060
+ </p>
1061
+ <pre>
1062
+ &quot;abcabcabc&quot;.index_all('a') #=&gt; [0,3,6]
1063
+
1064
+ &quot;bbb&quot;.index_all('bb', false) #=&gt; [0]
1065
+ &quot;bbb&quot;.index_all('bb', true) #=&gt; [0,1]
1066
+
1067
+ TODO: Culd probably be defined for Indexable in general too.
1068
+ </pre>
1069
+ </div>
1070
+ <div class="sourcecode">
1071
+ <p class="source-link">[ <a href="javascript:toggleSource('M000254_source')" id="l_M000254_source">show source</a> ]</p>
1072
+ <div id="M000254_source" class="dyn-source">
1073
+ <pre>
1074
+ <span class="ruby-comment cmt"># File lib/facets/string/range.rb, line 66</span>
1075
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">index_all</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">reuse</span>=<span class="ruby-keyword kw">false</span>)
1076
+ <span class="ruby-identifier">s</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">s</span>)) <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">Regexp</span><span class="ruby-operator">===</span><span class="ruby-identifier">s</span>
1077
+ <span class="ruby-identifier">ia</span> = []; <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1078
+ <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">i</span> = <span class="ruby-identifier">index</span>(<span class="ruby-identifier">s</span>,<span class="ruby-identifier">i</span>))
1079
+ <span class="ruby-identifier">ia</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">i</span>
1080
+ <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> (<span class="ruby-identifier">reuse</span> <span class="ruby-value">? </span><span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">$~</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">size</span>)
1081
+ <span class="ruby-keyword kw">end</span>
1082
+ <span class="ruby-identifier">ia</span>
1083
+ <span class="ruby-keyword kw">end</span>
1084
+ </pre>
1085
+ </div>
1086
+ </div>
1087
+ </div>
1088
+ <div class="method">
1089
+ <div class="title">
1090
+ <a name="M000280"></a><b>lchomp</b>(match)
1091
+ </div>
1092
+ <div class="description">
1093
+ <p>
1094
+ Left chomp.
1095
+ </p>
1096
+ <pre>
1097
+ &quot;help&quot;.lchomp(&quot;h&quot;) #=&gt; &quot;elp&quot;
1098
+ &quot;help&quot;.lchomp(&quot;k&quot;) #=&gt; &quot;help&quot;
1099
+
1100
+ CREDIT: Trans
1101
+ </pre>
1102
+ </div>
1103
+ <div class="sourcecode">
1104
+ <p class="source-link">[ <a href="javascript:toggleSource('M000280_source')" id="l_M000280_source">show source</a> ]</p>
1105
+ <div id="M000280_source" class="dyn-source">
1106
+ <pre>
1107
+ <span class="ruby-comment cmt"># File lib/facets/string/chomp.rb, line 10</span>
1108
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lchomp</span>(<span class="ruby-identifier">match</span>)
1109
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span>(<span class="ruby-identifier">match</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1110
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">match</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
1111
+ <span class="ruby-keyword kw">else</span>
1112
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
1113
+ <span class="ruby-keyword kw">end</span>
1114
+ <span class="ruby-keyword kw">end</span>
1115
+ </pre>
1116
+ </div>
1117
+ </div>
1118
+ </div>
1119
+ <div class="method">
1120
+ <div class="title">
1121
+ <a name="M000281"></a><b>lchomp!</b>(match)
1122
+ </div>
1123
+ <div class="description">
1124
+ <p>
1125
+ In-place left chomp.
1126
+ </p>
1127
+ <pre>
1128
+ &quot;help&quot;.lchomp(&quot;h&quot;) #=&gt; &quot;elp&quot;
1129
+ &quot;help&quot;.lchomp(&quot;k&quot;) #=&gt; &quot;help&quot;
1130
+
1131
+ CREDIT: Trans
1132
+ </pre>
1133
+ </div>
1134
+ <div class="sourcecode">
1135
+ <p class="source-link">[ <a href="javascript:toggleSource('M000281_source')" id="l_M000281_source">show source</a> ]</p>
1136
+ <div id="M000281_source" class="dyn-source">
1137
+ <pre>
1138
+ <span class="ruby-comment cmt"># File lib/facets/string/chomp.rb, line 25</span>
1139
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lchomp!</span>(<span class="ruby-identifier">match</span>)
1140
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span>(<span class="ruby-identifier">match</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1141
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">match</span>.<span class="ruby-identifier">size</span>] = <span class="ruby-value str">''</span>
1142
+ <span class="ruby-keyword kw">self</span>
1143
+ <span class="ruby-keyword kw">end</span>
1144
+ <span class="ruby-keyword kw">end</span>
1145
+ </pre>
1146
+ </div>
1147
+ </div>
1148
+ </div>
1149
+ <div class="method">
1150
+ <div class="title">
1151
+ <a name="M000273"></a><b>line_wrap</b>(width, tabs=4)
1152
+ </div>
1153
+ <div class="description">
1154
+ <p>
1155
+ Line wrap at width.
1156
+ </p>
1157
+ <pre>
1158
+ puts &quot;1234567890&quot;.line_wrap(5)
1159
+ </pre>
1160
+ <p>
1161
+ <em>produces</em>
1162
+ </p>
1163
+ <pre>
1164
+ 12345
1165
+ 67890
1166
+
1167
+ CREDIT: Trans
1168
+ </pre>
1169
+ </div>
1170
+ <div class="sourcecode">
1171
+ <p class="source-link">[ <a href="javascript:toggleSource('M000273_source')" id="l_M000273_source">show source</a> ]</p>
1172
+ <div id="M000273_source" class="dyn-source">
1173
+ <pre>
1174
+ <span class="ruby-comment cmt"># File lib/facets/string/line_wrap.rb, line 14</span>
1175
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">line_wrap</span>(<span class="ruby-identifier">width</span>, <span class="ruby-identifier">tabs</span>=<span class="ruby-value">4</span>)
1176
+ <span class="ruby-identifier">s</span> = <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\t/</span>,<span class="ruby-value str">' '</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">tabs</span>) <span class="ruby-comment cmt"># tabs default to 4 spaces</span>
1177
+ <span class="ruby-identifier">s</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\n/</span>,<span class="ruby-value str">' '</span>)
1178
+ <span class="ruby-identifier">r</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">scan</span>( <span class="ruby-node">/.{1,#{width}}/</span> )
1179
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\n&quot;</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
1180
+ <span class="ruby-keyword kw">end</span>
1181
+ </pre>
1182
+ </div>
1183
+ </div>
1184
+ </div>
1185
+ <div class="method">
1186
+ <div class="title">
1187
+ <a name="M000226"></a><b>lines</b>()
1188
+ </div>
1189
+ <div class="description">
1190
+ <p>
1191
+ Returns an array of characters.
1192
+ </p>
1193
+ <pre>
1194
+ &quot;abc\n123&quot;.lines #=&gt; [&quot;abc&quot;,&quot;123&quot;]
1195
+ </pre>
1196
+ </div>
1197
+ <div class="sourcecode">
1198
+ <p class="source-link">[ <a href="javascript:toggleSource('M000226_source')" id="l_M000226_source">show source</a> ]</p>
1199
+ <div id="M000226_source" class="dyn-source">
1200
+ <pre>
1201
+ <span class="ruby-comment cmt"># File lib/facets/ruby.rb, line 352</span>
1202
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lines</span>
1203
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\n/</span>)
1204
+ <span class="ruby-keyword kw">end</span>
1205
+ </pre>
1206
+ </div>
1207
+ </div>
1208
+ </div>
1209
+ <div class="method">
1210
+ <div class="title">
1211
+ <a name="M000250"></a><b>margin</b>(n=0)
1212
+ </div>
1213
+ <div class="description">
1214
+ <p>
1215
+ Provides a <a href="String.html#M000250">margin</a> controlled string.
1216
+ </p>
1217
+ <pre>
1218
+ x = %Q{
1219
+ | This
1220
+ | is
1221
+ | margin controlled!
1222
+ }.margin
1223
+
1224
+ NOTE: This may still need a bit of tweaking.
1225
+
1226
+ CREDIT: Trans
1227
+ </pre>
1228
+ </div>
1229
+ <div class="sourcecode">
1230
+ <p class="source-link">[ <a href="javascript:toggleSource('M000250_source')" id="l_M000250_source">show source</a> ]</p>
1231
+ <div id="M000250_source" class="dyn-source">
1232
+ <pre>
1233
+ <span class="ruby-comment cmt"># File lib/facets/string/tab.rb, line 89</span>
1234
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">margin</span>(<span class="ruby-identifier">n</span>=<span class="ruby-value">0</span>)
1235
+ <span class="ruby-comment cmt">#d = /\A.*\n\s*(.)/.match( self )[1]</span>
1236
+ <span class="ruby-comment cmt">#d = /\A\s*(.)/.match( self)[1] unless d</span>
1237
+ <span class="ruby-identifier">d</span> = ((<span class="ruby-regexp re">/\A.*\n\s*(.)/</span>.<span class="ruby-identifier">match</span>(<span class="ruby-keyword kw">self</span>)) <span class="ruby-operator">||</span>
1238
+ (<span class="ruby-regexp re">/\A\s*(.)/</span>.<span class="ruby-identifier">match</span>(<span class="ruby-keyword kw">self</span>)))[<span class="ruby-value">1</span>]
1239
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">d</span>
1240
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1241
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\n\s*\Z/</span>,<span class="ruby-value str">''</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-node">/^\s*[#{d}]/</span>, <span class="ruby-value str">''</span>)
1242
+ <span class="ruby-keyword kw">else</span>
1243
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\n\s*\Z/</span>,<span class="ruby-value str">''</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-node">/^\s*[#{d}]/</span>, <span class="ruby-value str">' '</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">n</span>)
1244
+ <span class="ruby-keyword kw">end</span>
1245
+ <span class="ruby-keyword kw">end</span>
1246
+ </pre>
1247
+ </div>
1248
+ </div>
1249
+ </div>
1250
+ <div class="method">
1251
+ <div class="title">
1252
+ <a name="M000265"></a><b>methodize</b>()
1253
+ </div>
1254
+ <div class="description">
1255
+ <p>
1256
+ Just like <a href="String.html#M000255">snakecase</a>. Makes an underscored
1257
+ form from the expression in the string, but also changes &#8217;::&#8217;
1258
+ to &#8217;/&#8217; to convert namespaces to paths.
1259
+ </p>
1260
+ <p>
1261
+ Examples
1262
+ </p>
1263
+ <pre>
1264
+ &quot;SuperMan&quot;.methodize #=&gt; &quot;super_man&quot;
1265
+ &quot;SuperMan::Errors&quot;.methodize #=&gt; &quot;super_man__errors
1266
+ </pre>
1267
+ </div>
1268
+ <div class="sourcecode">
1269
+ <p class="source-link">[ <a href="javascript:toggleSource('M000265_source')" id="l_M000265_source">show source</a> ]</p>
1270
+ <div id="M000265_source" class="dyn-source">
1271
+ <pre>
1272
+ <span class="ruby-comment cmt"># File lib/facets/string/stylize.rb, line 48</span>
1273
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">methodize</span>
1274
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\//</span>, <span class="ruby-value str">'__'</span>).
1275
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/::/</span>, <span class="ruby-value str">'__'</span>).
1276
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([A-Z]+)([A-Z][a-z])/</span>,<span class="ruby-value str">'\1_\2'</span>).
1277
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([a-z\d])([A-Z])/</span>,<span class="ruby-value str">'\1_\2'</span>).
1278
+ <span class="ruby-identifier">tr</span>(<span class="ruby-value str">&quot;-&quot;</span>, <span class="ruby-value str">&quot;_&quot;</span>).
1279
+ <span class="ruby-identifier">downcase</span>
1280
+ <span class="ruby-keyword kw">end</span>
1281
+ </pre>
1282
+ </div>
1283
+ </div>
1284
+ </div>
1285
+ <div class="method">
1286
+ <div class="title">
1287
+ <a name="M000263"></a><b>modulize</b>()
1288
+ </div>
1289
+ <div class="description">
1290
+ <p>
1291
+ Like <a href="String.html#M000239">camelcase</a>, but also converts
1292
+ &#8217;/&#8217; to &#8217;::&#8217;.
1293
+ </p>
1294
+ <p>
1295
+ By default <a href="String.html#M000239">camelcase</a> convert to
1296
+ UpperCamelCase, If an argument is set to <tt>false</tt>, then <a
1297
+ href="String.html#M000239">camelcase</a> will produce lowerCamelCase.
1298
+ </p>
1299
+ <p>
1300
+ <tt><a href="String.html#M000239">camelcase</a></tt> also converts
1301
+ &#8217;/&#8217; to &#8217;::&#8217; which is useful for converting paths to
1302
+ namespaces.
1303
+ </p>
1304
+ <p>
1305
+ Examples
1306
+ </p>
1307
+ <pre>
1308
+ &quot;camel_case&quot;.modulize #=&gt; &quot;CamelCase&quot;
1309
+ &quot;camel/case&quot;.modulize #=&gt; &quot;Camel::Case&quot;
1310
+ </pre>
1311
+ </div>
1312
+ <div class="sourcecode">
1313
+ <p class="source-link">[ <a href="javascript:toggleSource('M000263_source')" id="l_M000263_source">show source</a> ]</p>
1314
+ <div id="M000263_source" class="dyn-source">
1315
+ <pre>
1316
+ <span class="ruby-comment cmt"># File lib/facets/string/stylize.rb, line 15</span>
1317
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">modulize</span>
1318
+ <span class="ruby-identifier">str</span> = <span class="ruby-identifier">dup</span>
1319
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/__(.?)/</span>){ <span class="ruby-node">&quot;::#{$1.upcase}&quot;</span> }
1320
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\/(.?)/</span>){ <span class="ruby-node">&quot;::#{$1.upcase}&quot;</span> }
1321
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/(?:_+)([a-z])/</span>){ <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">upcase</span> }
1322
+ <span class="ruby-identifier">str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/(^|\s+)([a-z])/</span>){ <span class="ruby-identifier">$1</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">upcase</span> }
1323
+ <span class="ruby-identifier">str</span>
1324
+ <span class="ruby-keyword kw">end</span>
1325
+ </pre>
1326
+ </div>
1327
+ </div>
1328
+ </div>
1329
+ <div class="method">
1330
+ <div class="title">
1331
+ <a name="M000257"></a><b>mscan</b>(re) {|| ...}
1332
+ </div>
1333
+ <div class="description">
1334
+ <p>
1335
+ Like scan but returns <a href="MatchData.html">MatchData</a> ($~) rather
1336
+ then matched string ($&amp;).
1337
+ </p>
1338
+ <pre>
1339
+ CREDIT: Trans
1340
+ </pre>
1341
+ </div>
1342
+ <div class="sourcecode">
1343
+ <p class="source-link">[ <a href="javascript:toggleSource('M000257_source')" id="l_M000257_source">show source</a> ]</p>
1344
+ <div id="M000257_source" class="dyn-source">
1345
+ <pre>
1346
+ <span class="ruby-comment cmt"># File lib/facets/string/mscan.rb, line 8</span>
1347
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mscan</span>(<span class="ruby-identifier">re</span>) <span class="ruby-comment cmt">#:yield:</span>
1348
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
1349
+ <span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>) { <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">$~</span>) }
1350
+ <span class="ruby-keyword kw">else</span>
1351
+ <span class="ruby-identifier">m</span> = []
1352
+ <span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>) { <span class="ruby-identifier">m</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">$~</span> }
1353
+ <span class="ruby-identifier">m</span>
1354
+ <span class="ruby-keyword kw">end</span>
1355
+ <span class="ruby-keyword kw">end</span>
1356
+ </pre>
1357
+ </div>
1358
+ </div>
1359
+ </div>
1360
+ <div class="method">
1361
+ <div class="title">
1362
+ <a name="M000261"></a><b>natcmp</b>(str2, caseInsensitive=false)
1363
+ </div>
1364
+ <div class="description">
1365
+ <p>
1366
+ &#8216;Natural order&#8217; comparison of strings, e.g.
1367
+ </p>
1368
+ <pre>
1369
+ &quot;my_prog_v1.1.0&quot; &lt; &quot;my_prog_v1.2.0&quot; &lt; &quot;my_prog_v1.10.0&quot;
1370
+ </pre>
1371
+ <p>
1372
+ which does not follow alphabetically. A secondary parameter, if set to
1373
+ <em>true</em>, makes the comparison case insensitive.
1374
+ </p>
1375
+ <pre>
1376
+ &quot;Hello.10&quot;.natcmp(&quot;Hello.1&quot;) #=&gt; -1
1377
+
1378
+ TODO: Invert case flag?
1379
+
1380
+ CREDIT: Alan Davies
1381
+ CREDIT: Martin Pool
1382
+ </pre>
1383
+ </div>
1384
+ <div class="sourcecode">
1385
+ <p class="source-link">[ <a href="javascript:toggleSource('M000261_source')" id="l_M000261_source">show source</a> ]</p>
1386
+ <div id="M000261_source" class="dyn-source">
1387
+ <pre>
1388
+ <span class="ruby-comment cmt"># File lib/facets/string/natcmp.rb, line 47</span>
1389
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">natcmp</span>(<span class="ruby-identifier">str2</span>, <span class="ruby-identifier">caseInsensitive</span>=<span class="ruby-keyword kw">false</span>)
1390
+ <span class="ruby-identifier">str1</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
1391
+ <span class="ruby-identifier">str2</span> = <span class="ruby-identifier">str2</span>.<span class="ruby-identifier">dup</span>
1392
+ <span class="ruby-identifier">compareExpression</span> = <span class="ruby-regexp re">/^(\D*)(\d*)(.*)$/</span>
1393
+
1394
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">caseInsensitive</span>
1395
+ <span class="ruby-identifier">str1</span>.<span class="ruby-identifier">downcase!</span>
1396
+ <span class="ruby-identifier">str2</span>.<span class="ruby-identifier">downcase!</span>
1397
+ <span class="ruby-keyword kw">end</span>
1398
+
1399
+ <span class="ruby-comment cmt"># remove all whitespace</span>
1400
+ <span class="ruby-identifier">str1</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\s*/</span>, <span class="ruby-value str">''</span>)
1401
+ <span class="ruby-identifier">str2</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\s*/</span>, <span class="ruby-value str">''</span>)
1402
+
1403
+ <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">str1</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">or</span> (<span class="ruby-identifier">str2</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>) <span class="ruby-keyword kw">do</span>
1404
+ <span class="ruby-comment cmt"># Extract non-digits, digits and rest of string</span>
1405
+ <span class="ruby-identifier">str1</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">compareExpression</span>
1406
+ <span class="ruby-identifier">chars1</span>, <span class="ruby-identifier">num1</span>, <span class="ruby-identifier">str1</span> = <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">dup</span>, <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">dup</span>, <span class="ruby-identifier">$3</span>.<span class="ruby-identifier">dup</span>
1407
+ <span class="ruby-identifier">str2</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">compareExpression</span>
1408
+ <span class="ruby-identifier">chars2</span>, <span class="ruby-identifier">num2</span>, <span class="ruby-identifier">str2</span> = <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">dup</span>, <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">dup</span>, <span class="ruby-identifier">$3</span>.<span class="ruby-identifier">dup</span>
1409
+ <span class="ruby-comment cmt"># Compare the non-digits</span>
1410
+ <span class="ruby-keyword kw">case</span> (<span class="ruby-identifier">chars1</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">chars2</span>)
1411
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value">0</span> <span class="ruby-comment cmt"># Non-digits are the same, compare the digits...</span>
1412
+ <span class="ruby-comment cmt"># If either number begins with a zero, then compare alphabetically,</span>
1413
+ <span class="ruby-comment cmt"># otherwise compare numerically</span>
1414
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">num1</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">48</span>) <span class="ruby-keyword kw">and</span> (<span class="ruby-identifier">num2</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">48</span>)
1415
+ <span class="ruby-identifier">num1</span>, <span class="ruby-identifier">num2</span> = <span class="ruby-identifier">num1</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">num2</span>.<span class="ruby-identifier">to_i</span>
1416
+ <span class="ruby-keyword kw">end</span>
1417
+ <span class="ruby-keyword kw">case</span> (<span class="ruby-identifier">num1</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">num2</span>)
1418
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value">-1</span> <span class="ruby-keyword kw">then</span> <span class="ruby-keyword kw">return</span> <span class="ruby-value">-1</span>
1419
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">then</span> <span class="ruby-keyword kw">return</span> <span class="ruby-value">1</span>
1420
+ <span class="ruby-keyword kw">end</span>
1421
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value">-1</span> <span class="ruby-keyword kw">then</span> <span class="ruby-keyword kw">return</span> <span class="ruby-value">-1</span>
1422
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">then</span> <span class="ruby-keyword kw">return</span> <span class="ruby-value">1</span>
1423
+ <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># case</span>
1424
+ <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># while</span>
1425
+
1426
+ <span class="ruby-comment cmt"># strings are naturally equal.</span>
1427
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span>
1428
+ <span class="ruby-keyword kw">end</span>
1429
+
1430
+ <span class="ruby-keyword kw">end</span>
1431
+ </pre>
1432
+ </div>
1433
+ </div>
1434
+ </div>
1435
+ <div class="method">
1436
+ <div class="title">
1437
+ <a name="M000284"></a><b>nchar</b>(n, replacement=nil)
1438
+ </div>
1439
+ <div class="description">
1440
+ <p>
1441
+ Returns <em>n</em> characters of the string. If <em>n</em> is positive the
1442
+ characters are from the beginning of the string. If <em>n</em> is negative
1443
+ from the end of the string.
1444
+ </p>
1445
+ <p>
1446
+ Alternatively a replacement string can be given, which will replace the
1447
+ <em>n</em> characters.
1448
+ </p>
1449
+ <pre>
1450
+ str = &quot;this is text&quot;
1451
+ str.nchar(4) #=&gt; &quot;this&quot;
1452
+ str.nchar(4, 'that') #=&gt; &quot;that&quot;
1453
+ str #=&gt; &quot;that is text&quot;
1454
+
1455
+ CREDIT: ?
1456
+ </pre>
1457
+ </div>
1458
+ <div class="sourcecode">
1459
+ <p class="source-link">[ <a href="javascript:toggleSource('M000284_source')" id="l_M000284_source">show source</a> ]</p>
1460
+ <div id="M000284_source" class="dyn-source">
1461
+ <pre>
1462
+ <span class="ruby-comment cmt"># File lib/facets/string/nchar.rb, line 17</span>
1463
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nchar</span>(<span class="ruby-identifier">n</span>, <span class="ruby-identifier">replacement</span>=<span class="ruby-keyword kw">nil</span>)
1464
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">replacement</span>
1465
+ <span class="ruby-identifier">s</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
1466
+ <span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> (<span class="ruby-identifier">s</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">n</span>] = <span class="ruby-identifier">replacement</span>) <span class="ruby-operator">:</span> (<span class="ruby-identifier">s</span>[<span class="ruby-identifier">n</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] = <span class="ruby-identifier">replacement</span>)
1467
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
1468
+ <span class="ruby-keyword kw">else</span>
1469
+ <span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">n</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">n</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
1470
+ <span class="ruby-keyword kw">end</span>
1471
+ <span class="ruby-keyword kw">end</span>
1472
+ </pre>
1473
+ </div>
1474
+ </div>
1475
+ </div>
1476
+ <div class="method">
1477
+ <div class="title">
1478
+ <a name="M000249"></a><b>outdent</b>(n)
1479
+ </div>
1480
+ <div class="description">
1481
+ <p>
1482
+ Outdent just indents a negative number of spaces.
1483
+ </p>
1484
+ <pre>
1485
+ CREDIT: Noah Gibbs
1486
+ </pre>
1487
+ </div>
1488
+ <div class="sourcecode">
1489
+ <p class="source-link">[ <a href="javascript:toggleSource('M000249_source')" id="l_M000249_source">show source</a> ]</p>
1490
+ <div id="M000249_source" class="dyn-source">
1491
+ <pre>
1492
+ <span class="ruby-comment cmt"># File lib/facets/string/tab.rb, line 72</span>
1493
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">outdent</span>(<span class="ruby-identifier">n</span>)
1494
+ <span class="ruby-identifier">indent</span>(<span class="ruby-operator">-</span><span class="ruby-identifier">n</span>)
1495
+ <span class="ruby-keyword kw">end</span>
1496
+ </pre>
1497
+ </div>
1498
+ </div>
1499
+ </div>
1500
+ <div class="method">
1501
+ <div class="title">
1502
+ <a name="M000264"></a><b>pathize</b>()
1503
+ </div>
1504
+ <div class="description">
1505
+ <p>
1506
+ Just like <a href="String.html#M000255">snakecase</a>. Makes an underscored
1507
+ form from the expression in the string, but also changes &#8217;::&#8217;
1508
+ to &#8217;/&#8217; to convert namespaces to paths.
1509
+ </p>
1510
+ <p>
1511
+ Examples
1512
+ </p>
1513
+ <pre>
1514
+ &quot;SuperMan&quot;.pathize #=&gt; &quot;super_man&quot;
1515
+ &quot;SuperMan::Errors&quot;.pathize #=&gt; &quot;super_man/errors
1516
+ </pre>
1517
+ </div>
1518
+ <div class="sourcecode">
1519
+ <p class="source-link">[ <a href="javascript:toggleSource('M000264_source')" id="l_M000264_source">show source</a> ]</p>
1520
+ <div id="M000264_source" class="dyn-source">
1521
+ <pre>
1522
+ <span class="ruby-comment cmt"># File lib/facets/string/stylize.rb, line 32</span>
1523
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pathize</span>
1524
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/::/</span>, <span class="ruby-value str">'/'</span>).
1525
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([A-Z]+)([A-Z][a-z])/</span>,<span class="ruby-value str">'\1_\2'</span>).
1526
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([a-z\d])([A-Z])/</span>,<span class="ruby-value str">'\1_\2'</span>).
1527
+ <span class="ruby-identifier">tr</span>(<span class="ruby-value str">&quot;-&quot;</span>, <span class="ruby-value str">&quot;_&quot;</span>).
1528
+ <span class="ruby-identifier">downcase</span>
1529
+ <span class="ruby-keyword kw">end</span>
1530
+ </pre>
1531
+ </div>
1532
+ </div>
1533
+ </div>
1534
+ <div class="method">
1535
+ <div class="title">
1536
+ <a name="M000278"></a><b>quote</b>(type=:s)
1537
+ </div>
1538
+ <div class="description">
1539
+ <p>
1540
+ Return a new string embraced by given quotes. If no quotes are specified,
1541
+ then assumes single quotes.
1542
+ </p>
1543
+ <pre>
1544
+ &quot;quote me&quot;.quote #=&gt; &quot;'quote me'&quot;
1545
+ &quot;quote me&quot;.quote(2) #=&gt; &quot;\&quot;quote me\&quot;&quot;
1546
+
1547
+ CREDIT: Trans
1548
+ </pre>
1549
+ </div>
1550
+ <div class="sourcecode">
1551
+ <p class="source-link">[ <a href="javascript:toggleSource('M000278_source')" id="l_M000278_source">show source</a> ]</p>
1552
+ <div id="M000278_source" class="dyn-source">
1553
+ <pre>
1554
+ <span class="ruby-comment cmt"># File lib/facets/string/bracket.rb, line 69</span>
1555
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">quote</span>(<span class="ruby-identifier">type</span>=<span class="ruby-identifier">:s</span>)
1556
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span>
1557
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'s'</span>, <span class="ruby-value str">'single'</span>
1558
+ <span class="ruby-identifier">bracket</span>(<span class="ruby-value str">&quot;'&quot;</span>)
1559
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'d'</span>, <span class="ruby-value str">'double'</span>
1560
+ <span class="ruby-identifier">bracket</span>(<span class="ruby-value str">'&quot;'</span>)
1561
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'b'</span>, <span class="ruby-value str">'back'</span>
1562
+ <span class="ruby-identifier">bracket</span>(<span class="ruby-value str">'`'</span>)
1563
+ <span class="ruby-keyword kw">else</span>
1564
+ <span class="ruby-identifier">bracket</span>(<span class="ruby-value str">&quot;'&quot;</span>)
1565
+ <span class="ruby-keyword kw">end</span>
1566
+ <span class="ruby-keyword kw">end</span>
1567
+ </pre>
1568
+ </div>
1569
+ </div>
1570
+ </div>
1571
+ <div class="method">
1572
+ <div class="title">
1573
+ <a name="M000251"></a><b>range</b>(s, offset=0)
1574
+ </div>
1575
+ <div class="description">
1576
+ <p>
1577
+ Like index but returns a <a href="Range.html">Range</a>.
1578
+ </p>
1579
+ <pre>
1580
+ &quot;This is a test!&quot;.range('test') #=&gt; 10..13
1581
+
1582
+ CREDIT: Trans
1583
+ </pre>
1584
+ </div>
1585
+ <div class="sourcecode">
1586
+ <p class="source-link">[ <a href="javascript:toggleSource('M000251_source')" id="l_M000251_source">show source</a> ]</p>
1587
+ <div id="M000251_source" class="dyn-source">
1588
+ <pre>
1589
+ <span class="ruby-comment cmt"># File lib/facets/string/range.rb, line 9</span>
1590
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">range</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">offset</span>=<span class="ruby-value">0</span>)
1591
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">offset</span>)
1592
+ <span class="ruby-keyword kw">return</span> (<span class="ruby-identifier">$~</span>.<span class="ruby-identifier">begin</span>(<span class="ruby-value">0</span>))<span class="ruby-operator">..</span>(<span class="ruby-identifier">$~</span>.<span class="ruby-identifier">end</span>(<span class="ruby-value">0</span>)<span class="ruby-operator">-</span><span class="ruby-value">1</span>)
1593
+ <span class="ruby-keyword kw">end</span>
1594
+ <span class="ruby-keyword kw">nil</span>
1595
+ <span class="ruby-keyword kw">end</span>
1596
+ </pre>
1597
+ </div>
1598
+ </div>
1599
+ </div>
1600
+ <div class="method">
1601
+ <div class="title">
1602
+ <a name="M000252"></a><b>range_all</b>(s, reuse=false)
1603
+ </div>
1604
+ <div class="description">
1605
+ <p>
1606
+ Like <a href="String.html#M000254">index_all</a> but returns an array of
1607
+ Ranges.
1608
+ </p>
1609
+ <pre>
1610
+ &quot;abc123abc123&quot;.range_all('abc') #=&gt; [0..2, 6..8]
1611
+
1612
+ TODO: Add offset, perhaps ?
1613
+
1614
+ CREDIT: Trans
1615
+ </pre>
1616
+ </div>
1617
+ <div class="sourcecode">
1618
+ <p class="source-link">[ <a href="javascript:toggleSource('M000252_source')" id="l_M000252_source">show source</a> ]</p>
1619
+ <div id="M000252_source" class="dyn-source">
1620
+ <pre>
1621
+ <span class="ruby-comment cmt"># File lib/facets/string/range.rb, line 24</span>
1622
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">range_all</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">reuse</span>=<span class="ruby-keyword kw">false</span>)
1623
+ <span class="ruby-identifier">r</span> = []; <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1624
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
1625
+ <span class="ruby-identifier">rng</span> = <span class="ruby-identifier">range</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">i</span>)
1626
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rng</span>
1627
+ <span class="ruby-identifier">r</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rng</span>
1628
+ <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">reuse</span> <span class="ruby-value">? </span><span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">rng</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1629
+ <span class="ruby-keyword kw">else</span>
1630
+ <span class="ruby-keyword kw">break</span>
1631
+ <span class="ruby-keyword kw">end</span>
1632
+ <span class="ruby-keyword kw">end</span>
1633
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">uniq</span>
1634
+ <span class="ruby-keyword kw">end</span>
1635
+ </pre>
1636
+ </div>
1637
+ </div>
1638
+ </div>
1639
+ <div class="method">
1640
+ <div class="title">
1641
+ <a name="M000253"></a><b>range_of_line</b>()
1642
+ </div>
1643
+ <div class="description">
1644
+ <p>
1645
+ Returns an array of ranges mapping the characters per line.
1646
+ </p>
1647
+ <pre>
1648
+ &quot;this\nis\na\ntest&quot;.range_of_line
1649
+ #=&gt; [0..4, 5..7, 8..9, 10..13]
1650
+
1651
+ CREDIT: Trans
1652
+ </pre>
1653
+ </div>
1654
+ <div class="sourcecode">
1655
+ <p class="source-link">[ <a href="javascript:toggleSource('M000253_source')" id="l_M000253_source">show source</a> ]</p>
1656
+ <div id="M000253_source" class="dyn-source">
1657
+ <pre>
1658
+ <span class="ruby-comment cmt"># File lib/facets/string/range.rb, line 46</span>
1659
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">range_of_line</span>
1660
+ <span class="ruby-identifier">offset</span>=<span class="ruby-value">0</span>; <span class="ruby-identifier">charmap</span> = []
1661
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
1662
+ <span class="ruby-identifier">charmap</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">offset</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">offset</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>))
1663
+ <span class="ruby-identifier">offset</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">length</span>
1664
+ <span class="ruby-keyword kw">end</span>
1665
+ <span class="ruby-identifier">charmap</span>
1666
+ <span class="ruby-keyword kw">end</span>
1667
+ </pre>
1668
+ </div>
1669
+ </div>
1670
+ </div>
1671
+ <div class="method">
1672
+ <div class="title">
1673
+ <a name="M000283"></a><b>rewrite</b>(rules)
1674
+ </div>
1675
+ <div class="description">
1676
+ <p>
1677
+ Apply a set of rules (regular expression matches) to the string.
1678
+ </p>
1679
+ <h3>Requirements:</h3>
1680
+ <p>
1681
+ The rules must be applied in order! So we cannot use a hash because the
1682
+ ordering is not guaranteed! we use an array instead.
1683
+ </p>
1684
+ <h3>Input:</h3>
1685
+ <p>
1686
+ The array containing rule-pairs (match, write).
1687
+ </p>
1688
+ <h3>Output:</h3>
1689
+ <p>
1690
+ The rewritten string.
1691
+ </p>
1692
+ <pre>
1693
+ CREDIT: George Moschovitis
1694
+ </pre>
1695
+ </div>
1696
+ <div class="sourcecode">
1697
+ <p class="source-link">[ <a href="javascript:toggleSource('M000283_source')" id="l_M000283_source">show source</a> ]</p>
1698
+ <div id="M000283_source" class="dyn-source">
1699
+ <pre>
1700
+ <span class="ruby-comment cmt"># File lib/facets/string/rewrite.rb, line 18</span>
1701
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rewrite</span>(<span class="ruby-identifier">rules</span>)
1702
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'The rules parameter is nil'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">rules</span>
1703
+ <span class="ruby-identifier">rewritten_string</span> = <span class="ruby-identifier">dup</span>
1704
+ <span class="ruby-identifier">rules</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">match</span>,<span class="ruby-identifier">write</span><span class="ruby-operator">|</span>
1705
+ <span class="ruby-identifier">rewritten_string</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-identifier">match</span>,<span class="ruby-identifier">write</span>)
1706
+ <span class="ruby-keyword kw">end</span>
1707
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">rewritten_string</span>
1708
+ <span class="ruby-keyword kw">end</span>
1709
+ </pre>
1710
+ </div>
1711
+ </div>
1712
+ </div>
1713
+ <div class="method">
1714
+ <div class="title">
1715
+ <a name="M000235"></a><b>shatter</b>( re )
1716
+ </div>
1717
+ <div class="description">
1718
+ <p>
1719
+ Breaks a string up into an array based on a regular expression. Similar to
1720
+ scan, but includes the matches.
1721
+ </p>
1722
+ <pre>
1723
+ s = &quot;&lt;p&gt;This&lt;b&gt;is&lt;/b&gt;a test.&lt;/p&gt;&quot;
1724
+ s.shatter( /\&lt;.*?\&gt;/ )
1725
+ </pre>
1726
+ <p>
1727
+ <em>produces</em>
1728
+ </p>
1729
+ <pre>
1730
+ [&quot;&lt;p&gt;&quot;, &quot;This&quot;, &quot;&lt;b&gt;&quot;, &quot;is&quot;, &quot;&lt;/b&gt;&quot;, &quot;a test.&quot;, &quot;&lt;/p&gt;&quot;]
1731
+
1732
+ CREDIT: Trans
1733
+ </pre>
1734
+ </div>
1735
+ <div class="sourcecode">
1736
+ <p class="source-link">[ <a href="javascript:toggleSource('M000235_source')" id="l_M000235_source">show source</a> ]</p>
1737
+ <div id="M000235_source" class="dyn-source">
1738
+ <pre>
1739
+ <span class="ruby-comment cmt"># File lib/facets/string/shatter.rb, line 15</span>
1740
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shatter</span>( <span class="ruby-identifier">re</span> )
1741
+ <span class="ruby-identifier">r</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">gsub</span>( <span class="ruby-identifier">re</span> ){ <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-value str">&quot;\1&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\1&quot;</span> }
1742
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">r</span>[<span class="ruby-value">0</span>,<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;\1&quot;</span> ; <span class="ruby-identifier">r</span>[<span class="ruby-value">0</span>] = <span class="ruby-value str">''</span> ; <span class="ruby-keyword kw">end</span>
1743
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">r</span>[<span class="ruby-value">-1</span>,<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;\1&quot;</span> ; <span class="ruby-identifier">r</span>[<span class="ruby-value">-1</span>] = <span class="ruby-value str">''</span> ; <span class="ruby-keyword kw">end</span>
1744
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;\1&quot;</span>)
1745
+ <span class="ruby-keyword kw">end</span>
1746
+ </pre>
1747
+ </div>
1748
+ </div>
1749
+ </div>
1750
+ <div class="method">
1751
+ <div class="title">
1752
+ <a name="M000255"></a><b>snakecase</b>()
1753
+ </div>
1754
+ <div class="description">
1755
+ <p>
1756
+ The reverse of <tt><a href="String.html#M000239">camelcase</a></tt>. Makes
1757
+ an underscored of a <a href="String.html#M000239">camelcase</a> string.
1758
+ </p>
1759
+ <p>
1760
+ Changes &#8217;::&#8217; to &#8217;/&#8217; to convert namespaces to paths.
1761
+ </p>
1762
+ <p>
1763
+ Examples
1764
+ </p>
1765
+ <pre>
1766
+ &quot;SnakeCase&quot;.snakecase #=&gt; &quot;snake_case&quot;
1767
+ &quot;Snake-Case&quot;.snakecase #=&gt; &quot;snake_case&quot;
1768
+ &quot;SnakeCase::Errors&quot;.underscore #=&gt; &quot;snake_case/errors&quot;
1769
+ </pre>
1770
+ </div>
1771
+ <div class="sourcecode">
1772
+ <p class="source-link">[ <a href="javascript:toggleSource('M000255_source')" id="l_M000255_source">show source</a> ]</p>
1773
+ <div id="M000255_source" class="dyn-source">
1774
+ <pre>
1775
+ <span class="ruby-comment cmt"># File lib/facets/string/snakecase.rb, line 12</span>
1776
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">snakecase</span>
1777
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/::/</span>, <span class="ruby-value str">'/'</span>). <span class="ruby-comment cmt"># NOT SO SURE ABOUT THIS -T</span>
1778
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([A-Z]+)([A-Z][a-z])/</span>,<span class="ruby-value str">'\1_\2'</span>).
1779
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([a-z\d])([A-Z])/</span>,<span class="ruby-value str">'\1_\2'</span>).
1780
+ <span class="ruby-identifier">tr</span>(<span class="ruby-value str">&quot;-&quot;</span>, <span class="ruby-value str">&quot;_&quot;</span>).
1781
+ <span class="ruby-identifier">downcase</span>
1782
+ <span class="ruby-keyword kw">end</span>
1783
+ </pre>
1784
+ </div>
1785
+ </div>
1786
+ </div>
1787
+ <div class="method">
1788
+ <div class="title">
1789
+ <a name="M000287"></a><b>space</b>()
1790
+ </div>
1791
+ <div class="description">
1792
+ <p>
1793
+ Replaces underscores with spaces and capitalizes word.
1794
+ </p>
1795
+ </div>
1796
+ <div class="sourcecode">
1797
+ <p class="source-link">[ <a href="javascript:toggleSource('M000287_source')" id="l_M000287_source">show source</a> ]</p>
1798
+ <div id="M000287_source" class="dyn-source">
1799
+ <pre>
1800
+ <span class="ruby-comment cmt"># File lib/facets/string/underscore.rb, line 23</span>
1801
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">space</span>
1802
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-value str">'_'</span>, <span class="ruby-value str">' '</span>).<span class="ruby-identifier">capitalize</span>
1803
+ <span class="ruby-keyword kw">end</span>
1804
+ </pre>
1805
+ </div>
1806
+ </div>
1807
+ </div>
1808
+ <div class="method">
1809
+ <div class="title">
1810
+ <a name="M000282"></a><b>splice</b>(*args)
1811
+ </div>
1812
+ <div class="description">
1813
+ <p>
1814
+ Like slice, but writes rather than reads. Like store, but acts like slice!
1815
+ when given only one argument.
1816
+ </p>
1817
+ <pre>
1818
+ a = &quot;HELLO&quot;
1819
+ a.splice(1) #=&gt; &quot;E&quot;
1820
+ a #=&gt; &quot;HLLO&quot;
1821
+
1822
+ CREDIT: Trans
1823
+ </pre>
1824
+ </div>
1825
+ <div class="sourcecode">
1826
+ <p class="source-link">[ <a href="javascript:toggleSource('M000282_source')" id="l_M000282_source">show source</a> ]</p>
1827
+ <div id="M000282_source" class="dyn-source">
1828
+ <pre>
1829
+ <span class="ruby-comment cmt"># File lib/facets/string/splice.rb, line 13</span>
1830
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">splice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
1831
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
1832
+ <span class="ruby-identifier">slice!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
1833
+ <span class="ruby-keyword kw">else</span>
1834
+ <span class="ruby-identifier">store</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
1835
+ <span class="ruby-keyword kw">end</span>
1836
+ <span class="ruby-keyword kw">end</span>
1837
+ </pre>
1838
+ </div>
1839
+ </div>
1840
+ </div>
1841
+ <div class="method">
1842
+ <div class="title">
1843
+ <a name="M000228"></a><b>start_with?</b>(prefix)
1844
+ </div>
1845
+ <div class="description">
1846
+ <p>
1847
+ Does a string start with the given prefix.
1848
+ </p>
1849
+ <pre>
1850
+ &quot;hello&quot;.starts_with?(&quot;he&quot;) #=&gt; true
1851
+ &quot;hello&quot;.starts_with?(&quot;to&quot;) #=&gt; false
1852
+
1853
+ CREDIT: Lucas Carlson
1854
+ CREDIT: Blaine Cook
1855
+ </pre>
1856
+ </div>
1857
+ <div class="sourcecode">
1858
+ <p class="source-link">[ <a href="javascript:toggleSource('M000228_source')" id="l_M000228_source">show source</a> ]</p>
1859
+ <div id="M000228_source" class="dyn-source">
1860
+ <pre>
1861
+ <span class="ruby-comment cmt"># File lib/facets/ruby.rb, line 377</span>
1862
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">start_with?</span>(<span class="ruby-identifier">prefix</span>)
1863
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">prefix</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1864
+ <span class="ruby-keyword kw">end</span>
1865
+ </pre>
1866
+ </div>
1867
+ </div>
1868
+ </div>
1869
+ <div class="method">
1870
+ <div class="title">
1871
+ <a name="M000244"></a><b>tab</b>(n)
1872
+ </div>
1873
+ <div class="description">
1874
+ <p>
1875
+ Aligns each line n spaces.
1876
+ </p>
1877
+ <pre>
1878
+ CREDIT: Gavin Sinclair
1879
+ </pre>
1880
+ </div>
1881
+ <div class="aka">
1882
+ This method is also aliased as
1883
+ <a href="String.html#M000245">taballto</a>
1884
+ </div>
1885
+ <div class="sourcecode">
1886
+ <p class="source-link">[ <a href="javascript:toggleSource('M000244_source')" id="l_M000244_source">show source</a> ]</p>
1887
+ <div id="M000244_source" class="dyn-source">
1888
+ <pre>
1889
+ <span class="ruby-comment cmt"># File lib/facets/string/tab.rb, line 10</span>
1890
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tab</span>(<span class="ruby-identifier">n</span>)
1891
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^ */</span>, <span class="ruby-value str">' '</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">n</span>)
1892
+ <span class="ruby-keyword kw">end</span>
1893
+ </pre>
1894
+ </div>
1895
+ </div>
1896
+ </div>
1897
+ <div class="method">
1898
+ <div class="title">
1899
+ <a name="M000245"></a><b>taballto</b>(n)
1900
+ </div>
1901
+ <div class="description">
1902
+ <p>
1903
+ Alias for <a href="String.html#M000244">tab</a>
1904
+ </p>
1905
+ </div>
1906
+ </div>
1907
+ <div class="method">
1908
+ <div class="title">
1909
+ <a name="M000247"></a><b>tabto</b>(n)
1910
+ </div>
1911
+ <div class="description">
1912
+ <p>
1913
+ Preserves relative tabbing. The first non-empty line ends up with n spaces
1914
+ before nonspace.
1915
+ </p>
1916
+ <pre>
1917
+ CREDIT: Gavin Sinclair
1918
+ </pre>
1919
+ </div>
1920
+ <div class="sourcecode">
1921
+ <p class="source-link">[ <a href="javascript:toggleSource('M000247_source')" id="l_M000247_source">show source</a> ]</p>
1922
+ <div id="M000247_source" class="dyn-source">
1923
+ <pre>
1924
+ <span class="ruby-comment cmt"># File lib/facets/string/tab.rb, line 46</span>
1925
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tabto</span>(<span class="ruby-identifier">n</span>)
1926
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^( *)\S/</span>
1927
+ <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">n</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">length</span>)
1928
+ <span class="ruby-keyword kw">else</span>
1929
+ <span class="ruby-keyword kw">self</span>
1930
+ <span class="ruby-keyword kw">end</span>
1931
+ <span class="ruby-keyword kw">end</span>
1932
+ </pre>
1933
+ </div>
1934
+ </div>
1935
+ </div>
1936
+ <div class="method">
1937
+ <div class="title">
1938
+ <a name="M000268"></a><b>titlecase</b>()
1939
+ </div>
1940
+ <div class="description">
1941
+ <p>
1942
+ Title case.
1943
+ </p>
1944
+ <pre>
1945
+ &quot;this is a string&quot;.titlecase
1946
+ =&gt; &quot;This Is A String&quot;
1947
+
1948
+ CREDIT: Eliazar Parra
1949
+ </pre>
1950
+ </div>
1951
+ <div class="sourcecode">
1952
+ <p class="source-link">[ <a href="javascript:toggleSource('M000268_source')" id="l_M000268_source">show source</a> ]</p>
1953
+ <div id="M000268_source" class="dyn-source">
1954
+ <pre>
1955
+ <span class="ruby-comment cmt"># File lib/facets/string/titlecase.rb, line 10</span>
1956
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">titlecase</span>
1957
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\b\w/</span>){<span class="ruby-identifier">$&amp;</span>.<span class="ruby-identifier">upcase</span>}
1958
+ <span class="ruby-keyword kw">end</span>
1959
+ </pre>
1960
+ </div>
1961
+ </div>
1962
+ </div>
1963
+ <div class="method">
1964
+ <div class="title">
1965
+ <a name="M000267"></a><b>titleize</b>()
1966
+ </div>
1967
+ <div class="description">
1968
+ <p>
1969
+ Titleize.
1970
+ </p>
1971
+ <pre>
1972
+ &quot;this is a string&quot;.titlecase
1973
+ =&gt; &quot;This Is A String&quot;
1974
+ </pre>
1975
+ </div>
1976
+ <div class="sourcecode">
1977
+ <p class="source-link">[ <a href="javascript:toggleSource('M000267_source')" id="l_M000267_source">show source</a> ]</p>
1978
+ <div id="M000267_source" class="dyn-source">
1979
+ <pre>
1980
+ <span class="ruby-comment cmt"># File lib/facets/string/stylize.rb, line 68</span>
1981
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">titleize</span>
1982
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\b\w/</span>){<span class="ruby-identifier">$&amp;</span>.<span class="ruby-identifier">upcase</span>}
1983
+ <span class="ruby-keyword kw">end</span>
1984
+ </pre>
1985
+ </div>
1986
+ </div>
1987
+ </div>
1988
+ <div class="method">
1989
+ <div class="title">
1990
+ <a name="M000232"></a><b>to_b</b>()
1991
+ </div>
1992
+ <div class="description">
1993
+ <p>
1994
+ Interpret common affirmative string meanings as true, otherwise false.
1995
+ Balnk sapce and case are ignored. The following strings that will return
1996
+ true:
1997
+ </p>
1998
+ <pre>
1999
+ &lt;tt&gt;true&lt;/tt&gt;,&lt;tt&gt;yes&lt;/tt&gt;,&lt;tt&gt;on&lt;/tt&gt;,&lt;tt&gt;t&lt;/tt&gt;,&lt;tt&gt;1&lt;/tt&gt;,&lt;tt&gt;y&lt;/tt&gt;,&lt;tt&gt;==&lt;/tt&gt;
2000
+ </pre>
2001
+ <p>
2002
+ Examples:
2003
+ </p>
2004
+ <pre>
2005
+ &quot;true&quot;.to_b #=&gt; true
2006
+ &quot;yes&quot;.to_b #=&gt; true
2007
+ &quot;no&quot;.to_b #=&gt; false
2008
+ &quot;123&quot;.to_b #=&gt; false
2009
+ </pre>
2010
+ </div>
2011
+ <div class="sourcecode">
2012
+ <p class="source-link">[ <a href="javascript:toggleSource('M000232_source')" id="l_M000232_source">show source</a> ]</p>
2013
+ <div id="M000232_source" class="dyn-source">
2014
+ <pre>
2015
+ <span class="ruby-comment cmt"># File lib/facets/boolean.rb, line 43</span>
2016
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_b</span>
2017
+ <span class="ruby-keyword kw">case</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">strip</span>
2018
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'true'</span>, <span class="ruby-value str">'yes'</span>, <span class="ruby-value str">'on'</span>, <span class="ruby-value str">'t'</span>, <span class="ruby-value str">'1'</span>, <span class="ruby-value str">'y'</span>, <span class="ruby-value str">'=='</span>
2019
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
2020
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'nil'</span>, <span class="ruby-value str">'null'</span>
2021
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2022
+ <span class="ruby-keyword kw">else</span>
2023
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2024
+ <span class="ruby-keyword kw">end</span>
2025
+ <span class="ruby-keyword kw">end</span>
2026
+ </pre>
2027
+ </div>
2028
+ </div>
2029
+ </div>
2030
+ <div class="method">
2031
+ <div class="title">
2032
+ <a name="M000272"></a><b>to_date</b>()
2033
+ </div>
2034
+ <div class="description">
2035
+ <p>
2036
+ Parse data from string.
2037
+ </p>
2038
+ <pre>
2039
+ CREDIT: Trans
2040
+ </pre>
2041
+ </div>
2042
+ <div class="sourcecode">
2043
+ <p class="source-link">[ <a href="javascript:toggleSource('M000272_source')" id="l_M000272_source">show source</a> ]</p>
2044
+ <div id="M000272_source" class="dyn-source">
2045
+ <pre>
2046
+ <span class="ruby-comment cmt"># File lib/facets/string/to_time.rb, line 16</span>
2047
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_date</span>
2048
+ <span class="ruby-identifier">require</span> <span class="ruby-value str">'date'</span>
2049
+ <span class="ruby-identifier">require</span> <span class="ruby-value str">'parsedate'</span>
2050
+ <span class="ruby-operator">::</span><span class="ruby-constant">Date</span><span class="ruby-operator">::</span><span class="ruby-identifier">civil</span>(<span class="ruby-operator">*</span><span class="ruby-constant">ParseDate</span>.<span class="ruby-identifier">parsedate</span>(<span class="ruby-keyword kw">self</span>)[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>])
2051
+ <span class="ruby-keyword kw">end</span>
2052
+ </pre>
2053
+ </div>
2054
+ </div>
2055
+ </div>
2056
+ <div class="method">
2057
+ <div class="title">
2058
+ <a name="M000236"></a><b>to_re</b>(esc=false)
2059
+ </div>
2060
+ <div class="description">
2061
+ <p>
2062
+ Turns a string into a regular expression.
2063
+ </p>
2064
+ <pre>
2065
+ &quot;a?&quot;.to_re #=&gt; /a?/
2066
+
2067
+ CREDIT: Trans
2068
+ </pre>
2069
+ </div>
2070
+ <div class="sourcecode">
2071
+ <p class="source-link">[ <a href="javascript:toggleSource('M000236_source')" id="l_M000236_source">show source</a> ]</p>
2072
+ <div id="M000236_source" class="dyn-source">
2073
+ <pre>
2074
+ <span class="ruby-comment cmt"># File lib/facets/string/to_re.rb, line 9</span>
2075
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_re</span>(<span class="ruby-identifier">esc</span>=<span class="ruby-keyword kw">false</span>)
2076
+ <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>((<span class="ruby-identifier">esc</span> <span class="ruby-value">? </span><span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>))
2077
+ <span class="ruby-keyword kw">end</span>
2078
+ </pre>
2079
+ </div>
2080
+ </div>
2081
+ </div>
2082
+ <div class="method">
2083
+ <div class="title">
2084
+ <a name="M000237"></a><b>to_rx</b>(esc=true)
2085
+ </div>
2086
+ <div class="description">
2087
+ <p>
2088
+ Turns a string into a regular expression. By default it will escape all
2089
+ characters. Use <tt>false</tt> argument to turn off escaping.
2090
+ </p>
2091
+ <pre>
2092
+ &quot;[&quot;.to_rx #=&gt; /\[/
2093
+
2094
+ CREDIT: Trans
2095
+ </pre>
2096
+ </div>
2097
+ <div class="sourcecode">
2098
+ <p class="source-link">[ <a href="javascript:toggleSource('M000237_source')" id="l_M000237_source">show source</a> ]</p>
2099
+ <div id="M000237_source" class="dyn-source">
2100
+ <pre>
2101
+ <span class="ruby-comment cmt"># File lib/facets/string/to_re.rb, line 21</span>
2102
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_rx</span>(<span class="ruby-identifier">esc</span>=<span class="ruby-keyword kw">true</span>)
2103
+ <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>((<span class="ruby-identifier">esc</span> <span class="ruby-value">? </span><span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>))
2104
+ <span class="ruby-keyword kw">end</span>
2105
+ </pre>
2106
+ </div>
2107
+ </div>
2108
+ </div>
2109
+ <div class="method">
2110
+ <div class="title">
2111
+ <a name="M000233"></a><b>to_s</b>()
2112
+ </div>
2113
+ <div class="sourcecode">
2114
+ <p class="source-link">[ <a href="javascript:toggleSource('M000233_source')" id="l_M000233_source">show source</a> ]</p>
2115
+ <div id="M000233_source" class="dyn-source">
2116
+ <pre>
2117
+ <span class="ruby-comment cmt"># File lib/facets/comparable/bound.rb, line 2</span>
2118
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
2119
+ <span class="ruby-keyword kw">self</span>
2120
+ <span class="ruby-keyword kw">end</span>
2121
+ </pre>
2122
+ </div>
2123
+ </div>
2124
+ </div>
2125
+ <div class="method">
2126
+ <div class="title">
2127
+ <a name="M000271"></a><b>to_time</b>()
2128
+ </div>
2129
+ <div class="description">
2130
+ <p>
2131
+ Parse string to time.
2132
+ </p>
2133
+ <pre>
2134
+ CREDIT: Trans
2135
+ </pre>
2136
+ </div>
2137
+ <div class="sourcecode">
2138
+ <p class="source-link">[ <a href="javascript:toggleSource('M000271_source')" id="l_M000271_source">show source</a> ]</p>
2139
+ <div id="M000271_source" class="dyn-source">
2140
+ <pre>
2141
+ <span class="ruby-comment cmt"># File lib/facets/string/to_time.rb, line 7</span>
2142
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_time</span>
2143
+ <span class="ruby-identifier">require</span> <span class="ruby-value str">'time'</span>
2144
+ <span class="ruby-constant">Time</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-keyword kw">self</span>)
2145
+ <span class="ruby-keyword kw">end</span>
2146
+ </pre>
2147
+ </div>
2148
+ </div>
2149
+ </div>
2150
+ <div class="method">
2151
+ <div class="title">
2152
+ <a name="M000276"></a><b>unbracket</b>(bra=nil, ket=nil)
2153
+ </div>
2154
+ <div class="description">
2155
+ <p>
2156
+ Return a new string embraced by given brakets. If only one <a
2157
+ href="String.html#M000274">bracket</a> char is given it will be placed on
2158
+ either side.
2159
+ </p>
2160
+ <pre>
2161
+ &quot;{unwrap me}&quot;.debracket('{') #=&gt; &quot;unwrap me&quot;
2162
+ &quot;--unwrap me!&quot;.debracket('--','!') #=&gt; &quot;unwrap me!&quot;
2163
+
2164
+ CREDIT: Trans
2165
+ </pre>
2166
+ </div>
2167
+ <div class="sourcecode">
2168
+ <p class="source-link">[ <a href="javascript:toggleSource('M000276_source')" id="l_M000276_source">show source</a> ]</p>
2169
+ <div id="M000276_source" class="dyn-source">
2170
+ <pre>
2171
+ <span class="ruby-comment cmt"># File lib/facets/string/bracket.rb, line 37</span>
2172
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unbracket</span>(<span class="ruby-identifier">bra</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">ket</span>=<span class="ruby-keyword kw">nil</span>)
2173
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bra</span>
2174
+ <span class="ruby-identifier">ket</span> = <span class="ruby-constant">BRA2KET</span>[<span class="ruby-identifier">bra</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ket</span>
2175
+ <span class="ruby-identifier">ket</span> = <span class="ruby-identifier">ket</span> <span class="ruby-value">? </span><span class="ruby-identifier">ket</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">bra</span>
2176
+ <span class="ruby-identifier">s</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
2177
+ <span class="ruby-identifier">s</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">%r[^#{Regexp.escape(bra)}]</span>, <span class="ruby-value str">''</span>)
2178
+ <span class="ruby-identifier">s</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">%r[#{Regexp.escape(ket)}$]</span>, <span class="ruby-value str">''</span>)
2179
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
2180
+ <span class="ruby-keyword kw">else</span>
2181
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">m</span> = <span class="ruby-constant">BRA2KET</span>[ <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span>,<span class="ruby-value">1</span>] ]
2182
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">1</span><span class="ruby-operator">...</span><span class="ruby-value">-1</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-value">-1</span>,<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">m</span>
2183
+ <span class="ruby-keyword kw">end</span>
2184
+ <span class="ruby-keyword kw">end</span>
2185
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span> <span class="ruby-comment cmt"># if nothing else</span>
2186
+ <span class="ruby-keyword kw">end</span>
2187
+ </pre>
2188
+ </div>
2189
+ </div>
2190
+ </div>
2191
+ <div class="method">
2192
+ <div class="title">
2193
+ <a name="M000277"></a><b>unbracket!</b>(bra=nil, ket=nil)
2194
+ </div>
2195
+ <div class="description">
2196
+ <p>
2197
+ Inplace version of debraket.
2198
+ </p>
2199
+ <pre>
2200
+ CREDIT: Trans
2201
+ </pre>
2202
+ </div>
2203
+ <div class="sourcecode">
2204
+ <p class="source-link">[ <a href="javascript:toggleSource('M000277_source')" id="l_M000277_source">show source</a> ]</p>
2205
+ <div id="M000277_source" class="dyn-source">
2206
+ <pre>
2207
+ <span class="ruby-comment cmt"># File lib/facets/string/bracket.rb, line 57</span>
2208
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unbracket!</span>(<span class="ruby-identifier">bra</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">ket</span>=<span class="ruby-keyword kw">nil</span>)
2209
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>( <span class="ruby-identifier">unbracket</span>(<span class="ruby-identifier">bra</span>, <span class="ruby-identifier">ket</span>) )
2210
+ <span class="ruby-keyword kw">end</span>
2211
+ </pre>
2212
+ </div>
2213
+ </div>
2214
+ </div>
2215
+ <div class="method">
2216
+ <div class="title">
2217
+ <a name="M000286"></a><b>underscore</b>()
2218
+ </div>
2219
+ <div class="description">
2220
+ <p>
2221
+ Converts spaces into underscores.
2222
+ </p>
2223
+ <p>
2224
+ Examples
2225
+ </p>
2226
+ <pre>
2227
+ &quot;This Is Helpful&quot;.underscore #=&gt; &quot;This_Is_Helpful&quot;
2228
+ </pre>
2229
+ </div>
2230
+ <div class="sourcecode">
2231
+ <p class="source-link">[ <a href="javascript:toggleSource('M000286_source')" id="l_M000286_source">show source</a> ]</p>
2232
+ <div id="M000286_source" class="dyn-source">
2233
+ <pre>
2234
+ <span class="ruby-comment cmt"># File lib/facets/string/underscore.rb, line 17</span>
2235
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">underscore</span>
2236
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-value str">' '</span>, <span class="ruby-value str">'_'</span>) <span class="ruby-comment cmt">#.capitalize</span>
2237
+ <span class="ruby-keyword kw">end</span>
2238
+ </pre>
2239
+ </div>
2240
+ </div>
2241
+ </div>
2242
+ <div class="method">
2243
+ <div class="title">
2244
+ <a name="M000260"></a><b>upcase?</b>()
2245
+ </div>
2246
+ <div class="description">
2247
+ <p>
2248
+ Is the string upcase/uppercase?
2249
+ </p>
2250
+ <pre>
2251
+ &quot;THIS&quot;.upcase? #=&gt; true
2252
+ &quot;This&quot;.upcase? #=&gt; false
2253
+ &quot;this&quot;.upcase? #=&gt; false
2254
+
2255
+ CREDIT: Phil Tomson
2256
+ </pre>
2257
+ </div>
2258
+ <div class="sourcecode">
2259
+ <p class="source-link">[ <a href="javascript:toggleSource('M000260_source')" id="l_M000260_source">show source</a> ]</p>
2260
+ <div id="M000260_source" class="dyn-source">
2261
+ <pre>
2262
+ <span class="ruby-comment cmt"># File lib/facets/string/capitalized.rb, line 38</span>
2263
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upcase?</span>
2264
+ <span class="ruby-identifier">upcase</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">self</span>
2265
+ <span class="ruby-keyword kw">end</span>
2266
+ </pre>
2267
+ </div>
2268
+ </div>
2269
+ </div>
2270
+ <div class="method">
2271
+ <div class="title">
2272
+ <a name="M000230"></a><b>variablize</b>()
2273
+ </div>
2274
+ <div class="description">
2275
+ <p>
2276
+ Append an &quot;@&quot; to the beginning of a string to make a instance
2277
+ variable name. This also replaces non-valid characters with underscores.
2278
+ </p>
2279
+ </div>
2280
+ <div class="sourcecode">
2281
+ <p class="source-link">[ <a href="javascript:toggleSource('M000230_source')" id="l_M000230_source">show source</a> ]</p>
2282
+ <div id="M000230_source" class="dyn-source">
2283
+ <pre>
2284
+ <span class="ruby-comment cmt"># File lib/facets/metaid.rb, line 128</span>
2285
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">variablize</span>
2286
+ <span class="ruby-node">&quot;@#{self}&quot;</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\W/</span>, <span class="ruby-value str">'_'</span>).<span class="ruby-identifier">to_sym</span>
2287
+ <span class="ruby-keyword kw">end</span>
2288
+ </pre>
2289
+ </div>
2290
+ </div>
2291
+ </div>
2292
+ </div>
2293
+
2294
+ </div>
2295
+
2296
+ </body>
2297
+ </html>