facets 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1260) hide show
  1. data/ProjectInfo +94 -0
  2. data/Reapfile +184 -0
  3. data/forge/README +13 -0
  4. data/forge/TODO +73 -0
  5. data/forge/autorequire.rb +83 -0
  6. data/forge/core/array/at_rand.rb +95 -0
  7. data/forge/core/array/each_slice.rb +23 -0
  8. data/forge/core/array/pick_values.rb +32 -0
  9. data/forge/core/array/rand_indexes.rb +33 -0
  10. data/forge/core/binding/class.rb +11 -0
  11. data/forge/core/binding/delegate-binding.rb +19 -0
  12. data/forge/core/binding/delegate.rb +15 -0
  13. data/forge/core/binding/proc.rb +6 -0
  14. data/forge/core/enumerable/op_fetch.rb +30 -0
  15. data/forge/core/fileutils/nl_convert.rb +133 -0
  16. data/forge/core/io/expect.rb +127 -0
  17. data/forge/core/kernel/__clone__.rb +4 -0
  18. data/forge/core/kernel/__dup__.rb +4 -0
  19. data/forge/core/kernel/call_line.rb +15 -0
  20. data/forge/core/kernel/does.rb +7 -0
  21. data/forge/core/kernel/message.rb +6 -0
  22. data/forge/core/kernel/query.rb +15 -0
  23. data/forge/core/kernel/taint.rb +10 -0
  24. data/forge/core/logger/clean_logger.rb +10 -0
  25. data/forge/core/module/attr-old.rb +308 -0
  26. data/forge/core/module/attr.rb +98 -0
  27. data/forge/core/module/attr_xxx.rb +22 -0
  28. data/forge/core/module/by_regexp.rb +21 -0
  29. data/forge/core/module/cast.rb +64 -0
  30. data/forge/core/module/class_attribute_accessors.rb +57 -0
  31. data/forge/core/module/inherit.rb +59 -0
  32. data/forge/core/module/let.rb +51 -0
  33. data/forge/core/module/meta_attr.rb +60 -0
  34. data/forge/core/module/module_attribute_accessors.rb +57 -0
  35. data/forge/core/module/permissions.rb +32 -0
  36. data/forge/core/module/preserved.rb +108 -0
  37. data/forge/core/module/sattr_accessor.rb +1 -0
  38. data/forge/core/module/sattr_reader.rb +1 -0
  39. data/forge/core/module/sattr_setter.rb +1 -0
  40. data/forge/core/module/sattr_tester.rb +1 -0
  41. data/forge/core/module/sattr_writer.rb +1 -0
  42. data/forge/core/module/tc_attr.rb +107 -0
  43. data/forge/core/module/version.rb +23 -0
  44. data/forge/core/string/op_add.rb +24 -0
  45. data/forge/core/string/op_div.rb +15 -0
  46. data/forge/core/string/pred.rb +217 -0
  47. data/forge/core/string/to_ary.rb +12 -0
  48. data/forge/core/string/word_wrap.rb +62 -0
  49. data/forge/more/autoarray.rb +29 -0
  50. data/forge/more/cache.rb +189 -0
  51. data/forge/more/class_inheritable_attributes.rb +120 -0
  52. data/forge/more/codepack.rb +58 -0
  53. data/forge/more/commandrunner.rb +101 -0
  54. data/forge/more/conditionals.rb +106 -0
  55. data/forge/more/contracts.rb +37 -0
  56. data/forge/more/daemon.rb +70 -0
  57. data/forge/more/datetime.rb +42 -0
  58. data/forge/more/detach.rb +423 -0
  59. data/forge/more/enumtype.rb +115 -0
  60. data/forge/more/fixnum_const.rb +55 -0
  61. data/forge/more/function.rb +278 -0
  62. data/forge/more/hookse.rb +107 -0
  63. data/forge/more/indexable.rb +85 -0
  64. data/forge/more/infinity.rb +123 -0
  65. data/forge/more/ioreactor.rb +671 -0
  66. data/forge/more/knowself.rb +42 -0
  67. data/forge/more/logger_sing.rb +207 -0
  68. data/forge/more/must.rb +37 -0
  69. data/forge/more/openproxy.rb +245 -0
  70. data/forge/more/ostructable.rb +212 -0
  71. data/forge/more/pairhash.rb +55 -0
  72. data/forge/more/pathname.rb +1309 -0
  73. data/forge/more/predicate.rb +181 -0
  74. data/forge/more/prereq.rb +36 -0
  75. data/forge/more/print_exception.rb +35 -0
  76. data/forge/more/rand.rb +412 -0
  77. data/forge/more/range.rb +383 -0
  78. data/forge/more/sanitize.rb +48 -0
  79. data/forge/more/service.rb +266 -0
  80. data/forge/more/superstruct.rb +735 -0
  81. data/forge/more/tag.rb +27 -0
  82. data/forge/more/testfacility.rb +80 -0
  83. data/forge/more/timer.rb +164 -0
  84. data/forge/more/toplevel.rb +76 -0
  85. data/forge/more/type.rb +232 -0
  86. data/forge/more/vars.rb +94 -0
  87. data/forge/more/version.rb +245 -0
  88. data/forge/more/world.rb +53 -0
  89. data/forge/reference/sys.rb +186 -0
  90. data/forge/reference/utils.rb +518 -0
  91. data/lib/facet/enumerable/mode.rb +1 -0
  92. data/lib/facets/core/enumerable/mode.rb +13 -0
  93. data/lib/facets/core/hash/to_ostruct.rb +1 -1
  94. data/lib/facets/core/hash/to_ostruct_recurse.rb +33 -6
  95. data/lib/facets/core/ostruct/__update__.rb +1 -0
  96. data/lib/facets/more/binaryreader.rb +3 -3
  97. data/lib/facets/more/taskable.rb +29 -0
  98. data/note/CHANGELOG +294 -0
  99. data/note/IMPORTANT +8 -0
  100. data/note/Rakefile.old +181 -0
  101. data/note/history/ANN-0.6.0 +40 -0
  102. data/note/history/ANN-0.6.1 +36 -0
  103. data/note/history/ANN-0.6.3 +43 -0
  104. data/note/history/ANN-0.7.0 +59 -0
  105. data/note/history/ANN-0.8.1 +127 -0
  106. data/note/history/INTRO +172 -0
  107. data/note/history/README +223 -0
  108. data/note/history/README-OLD +180 -0
  109. data/test/lib/facets/core/array/test_at_rand.rb +1 -1
  110. data/test/lib/facets/core/array/test_delete_unless.rb +1 -1
  111. data/test/lib/facets/core/array/test_delete_values.rb +1 -1
  112. data/test/lib/facets/core/array/test_delete_values_at.rb +1 -1
  113. data/test/lib/facets/core/array/test_first.rb +1 -1
  114. data/test/lib/facets/core/array/test_head.rb +1 -1
  115. data/test/lib/facets/core/array/test_last_index.rb +1 -1
  116. data/test/lib/facets/core/array/test_merge.rb +1 -1
  117. data/test/lib/facets/core/array/test_mid.rb +1 -1
  118. data/test/lib/facets/core/array/test_middle.rb +1 -1
  119. data/test/lib/facets/core/array/test_op_fetch.rb +1 -1
  120. data/test/lib/facets/core/array/test_op_store.rb +1 -1
  121. data/test/lib/facets/core/array/test_pick.rb +1 -1
  122. data/test/lib/facets/core/array/test_pos.rb +1 -1
  123. data/test/lib/facets/core/array/test_pot.rb +1 -1
  124. data/test/lib/facets/core/array/test_pull.rb +1 -1
  125. data/test/lib/facets/core/array/test_rand_index.rb +1 -1
  126. data/test/lib/facets/core/array/test_rand_subset.rb +1 -1
  127. data/test/lib/facets/core/array/test_range.rb +1 -1
  128. data/test/lib/facets/core/array/test_rotate.rb +1 -1
  129. data/test/lib/facets/core/array/test_select.rb +1 -1
  130. data/test/lib/facets/core/array/test_shuffle.rb +1 -1
  131. data/test/lib/facets/core/array/test_thru.rb +1 -1
  132. data/test/lib/facets/core/array/test_to_b.rb +1 -1
  133. data/test/lib/facets/core/array/test_to_h.rb +1 -1
  134. data/test/lib/facets/core/array/test_to_hash.rb +1 -1
  135. data/test/lib/facets/core/binding/self/test_of_caller.rb +1 -1
  136. data/test/lib/facets/core/binding/test___LINE__.rb +1 -1
  137. data/test/lib/facets/core/binding/test_call_stack.rb +1 -1
  138. data/test/lib/facets/core/binding/test_called.rb +1 -1
  139. data/test/lib/facets/core/binding/test_caller.rb +1 -1
  140. data/test/lib/facets/core/binding/test_defined.rb +1 -1
  141. data/test/lib/facets/core/binding/test_eval.rb +1 -1
  142. data/test/lib/facets/core/binding/test_local_variables.rb +1 -1
  143. data/test/lib/facets/core/binding/test_method_name.rb +1 -1
  144. data/test/lib/facets/core/binding/test_op_fetch.rb +1 -1
  145. data/test/lib/facets/core/binding/test_op_store.rb +1 -1
  146. data/test/lib/facets/core/binding/test_self.rb +1 -1
  147. data/test/lib/facets/core/class/test_cattr.rb +1 -1
  148. data/test/lib/facets/core/class/test_descendents.rb +1 -1
  149. data/test/lib/facets/core/class/test_method_name.rb +1 -1
  150. data/test/lib/facets/core/class/test_remove_descendents.rb +1 -1
  151. data/test/lib/facets/core/class/test_unix_path.rb +1 -1
  152. data/test/lib/facets/core/comparable/test_at_least.rb +1 -1
  153. data/test/lib/facets/core/comparable/test_clip.rb +1 -1
  154. data/test/lib/facets/core/comparable/test_cmp.rb +1 -1
  155. data/test/lib/facets/core/continuation/self/test_create.rb +1 -1
  156. data/test/lib/facets/core/date/test_days_in_month.rb +1 -1
  157. data/test/lib/facets/core/date/test_days_of_month.rb +1 -1
  158. data/test/lib/facets/core/date/test_stamp.rb +1 -1
  159. data/test/lib/facets/core/date/test_to_date.rb +1 -1
  160. data/test/lib/facets/core/date/test_to_s.rb +1 -1
  161. data/test/lib/facets/core/date/test_to_time.rb +1 -1
  162. data/test/lib/facets/core/dir/self/test_ancestor.rb +1 -1
  163. data/test/lib/facets/core/dir/self/test_ascend.rb +1 -1
  164. data/test/lib/facets/core/enumerable/self/test_combinations.rb +1 -1
  165. data/test/lib/facets/core/enumerable/self/test_cross.rb +1 -1
  166. data/test/lib/facets/core/enumerable/test_collect_with_index.rb +1 -1
  167. data/test/lib/facets/core/enumerable/test_commonality.rb +1 -1
  168. data/test/lib/facets/core/enumerable/test_compact_collect.rb +1 -1
  169. data/test/lib/facets/core/enumerable/test_count.rb +1 -1
  170. data/test/lib/facets/core/enumerable/test_cross.rb +1 -1
  171. data/test/lib/facets/core/enumerable/test_each_combination.rb +1 -1
  172. data/test/lib/facets/core/enumerable/test_each_pair.rb +1 -1
  173. data/test/lib/facets/core/enumerable/test_each_slice.rb +1 -1
  174. data/test/lib/facets/core/enumerable/test_each_unique_pair.rb +1 -1
  175. data/test/lib/facets/core/enumerable/test_entropy.rb +1 -1
  176. data/test/lib/facets/core/enumerable/test_every.rb +1 -1
  177. data/test/lib/facets/core/enumerable/test_ew.rb +1 -1
  178. data/test/lib/facets/core/enumerable/test_filter_collect.rb +1 -1
  179. data/test/lib/facets/core/enumerable/test_find_collisions.rb +1 -1
  180. data/test/lib/facets/core/enumerable/test_frequency.rb +1 -1
  181. data/test/lib/facets/core/enumerable/test_graph.rb +1 -1
  182. data/test/lib/facets/core/enumerable/test_ideal_entropy.rb +1 -1
  183. data/test/lib/facets/core/enumerable/test_none.rb +1 -1
  184. data/test/lib/facets/core/enumerable/test_occur.rb +1 -1
  185. data/test/lib/facets/core/enumerable/test_one.rb +1 -1
  186. data/test/lib/facets/core/enumerable/test_op_pow.rb +1 -1
  187. data/test/lib/facets/core/enumerable/test_partition_by.rb +1 -1
  188. data/test/lib/facets/core/enumerable/test_permute.rb +1 -1
  189. data/test/lib/facets/core/enumerable/test_probability.rb +1 -1
  190. data/test/lib/facets/core/enumerable/test_to_h.rb +1 -1
  191. data/test/lib/facets/core/enumerable/test_uniq_by.rb +1 -1
  192. data/test/lib/facets/core/file/self/test_create.rb +1 -1
  193. data/test/lib/facets/core/file/self/test_open_as_string.rb +1 -1
  194. data/test/lib/facets/core/file/self/test_read_list.rb +1 -1
  195. data/test/lib/facets/core/file/self/test_sanitize.rb +1 -1
  196. data/test/lib/facets/core/file/self/test_split_all.rb +1 -1
  197. data/test/lib/facets/core/float/test_round_at.rb +1 -1
  198. data/test/lib/facets/core/float/test_round_to.rb +1 -1
  199. data/test/lib/facets/core/hash/self/test_zipnew.rb +1 -1
  200. data/test/lib/facets/core/hash/test_alias.rb +1 -1
  201. data/test/lib/facets/core/hash/test_assert_has_keys.rb +1 -1
  202. data/test/lib/facets/core/hash/test_assert_has_only_keys.rb +1 -1
  203. data/test/lib/facets/core/hash/test_at.rb +1 -1
  204. data/test/lib/facets/core/hash/test_collate.rb +1 -1
  205. data/test/lib/facets/core/hash/test_each.rb +1 -1
  206. data/test/lib/facets/core/hash/test_each_with_index.rb +1 -1
  207. data/test/lib/facets/core/hash/test_each_with_key.rb +1 -1
  208. data/test/lib/facets/core/hash/test_graph.rb +1 -1
  209. data/test/lib/facets/core/hash/test_has_keys.rb +1 -1
  210. data/test/lib/facets/core/hash/test_has_only_keys.rb +1 -1
  211. data/test/lib/facets/core/hash/test_inverse.rb +1 -1
  212. data/test/lib/facets/core/hash/test_keys_to_s.rb +1 -1
  213. data/test/lib/facets/core/hash/test_keys_to_sym.rb +1 -1
  214. data/test/lib/facets/core/hash/test_op_fetch.rb +1 -1
  215. data/test/lib/facets/core/hash/test_op_lshift.rb +1 -1
  216. data/test/lib/facets/core/hash/test_rand_key.rb +1 -1
  217. data/test/lib/facets/core/hash/test_rand_pair.rb +1 -1
  218. data/test/lib/facets/core/hash/test_rand_value.rb +1 -1
  219. data/test/lib/facets/core/hash/test_replace_each.rb +1 -1
  220. data/test/lib/facets/core/hash/test_shuffle.rb +1 -1
  221. data/test/lib/facets/core/hash/test_slice.rb +1 -1
  222. data/test/lib/facets/core/hash/test_swap.rb +1 -1
  223. data/test/lib/facets/core/hash/test_swapkey.rb +1 -1
  224. data/test/lib/facets/core/hash/test_to_h.rb +1 -1
  225. data/test/lib/facets/core/hash/test_to_ostruct.rb +1 -1
  226. data/test/lib/facets/core/hash/test_to_ostruct_recurse.rb +15 -1
  227. data/test/lib/facets/core/hash/test_traverse.rb +1 -1
  228. data/test/lib/facets/core/hash/test_update_each.rb +1 -1
  229. data/test/lib/facets/core/hash/test_update_keys.rb +1 -1
  230. data/test/lib/facets/core/hash/test_update_values.rb +1 -1
  231. data/test/lib/facets/core/hash/test_weave.rb +1 -1
  232. data/test/lib/facets/core/integer/test_factorial.rb +1 -1
  233. data/test/lib/facets/core/integer/test_multiple.rb +1 -1
  234. data/test/lib/facets/core/integer/test_ordinal.rb +1 -1
  235. data/test/lib/facets/core/integer/test_times_collect.rb +1 -1
  236. data/test/lib/facets/core/kernel/test___class__.rb +1 -1
  237. data/test/lib/facets/core/kernel/test_as.rb +1 -1
  238. data/test/lib/facets/core/kernel/test_assign_from.rb +1 -1
  239. data/test/lib/facets/core/kernel/test_assign_with.rb +1 -1
  240. data/test/lib/facets/core/kernel/test_bool.rb +1 -1
  241. data/test/lib/facets/core/kernel/test_bug.rb +1 -1
  242. data/test/lib/facets/core/kernel/test_call_stack.rb +1 -1
  243. data/test/lib/facets/core/kernel/test_called.rb +1 -1
  244. data/test/lib/facets/core/kernel/test_constant.rb +1 -1
  245. data/test/lib/facets/core/kernel/test_copy.rb +1 -1
  246. data/test/lib/facets/core/kernel/test_deep_copy.rb +1 -1
  247. data/test/lib/facets/core/kernel/test_demo.rb +1 -1
  248. data/test/lib/facets/core/kernel/test_fn.rb +1 -1
  249. data/test/lib/facets/core/kernel/test_generate_method_name.rb +1 -1
  250. data/test/lib/facets/core/kernel/test_get_by_id.rb +1 -1
  251. data/test/lib/facets/core/kernel/test_here.rb +1 -1
  252. data/test/lib/facets/core/kernel/test_in.rb +1 -1
  253. data/test/lib/facets/core/kernel/test_maybe.rb +1 -1
  254. data/test/lib/facets/core/kernel/test_metaclass.rb +1 -1
  255. data/test/lib/facets/core/kernel/test_method.rb +1 -1
  256. data/test/lib/facets/core/kernel/test_methodname.rb +1 -1
  257. data/test/lib/facets/core/kernel/test_methods.rb +1 -1
  258. data/test/lib/facets/core/kernel/test_new.rb +1 -1
  259. data/test/lib/facets/core/kernel/test_object_class.rb +1 -1
  260. data/test/lib/facets/core/kernel/test_object_hexid.rb +1 -1
  261. data/test/lib/facets/core/kernel/test_require_all.rb +1 -1
  262. data/test/lib/facets/core/kernel/test_require_esc.rb +1 -1
  263. data/test/lib/facets/core/kernel/test_require_facet.rb +1 -1
  264. data/test/lib/facets/core/kernel/test_resc.rb +1 -1
  265. data/test/lib/facets/core/kernel/test_returning.rb +1 -1
  266. data/test/lib/facets/core/kernel/test_send_as.rb +1 -1
  267. data/test/lib/facets/core/kernel/test_set_from.rb +1 -1
  268. data/test/lib/facets/core/kernel/test_set_with.rb +1 -1
  269. data/test/lib/facets/core/kernel/test_silently.rb +1 -1
  270. data/test/lib/facets/core/kernel/test_singleton.rb +1 -1
  271. data/test/lib/facets/core/kernel/test_superior.rb +1 -1
  272. data/test/lib/facets/core/kernel/test_supermethod.rb +1 -1
  273. data/test/lib/facets/core/kernel/test_this.rb +1 -1
  274. data/test/lib/facets/core/kernel/test_to_b.rb +1 -1
  275. data/test/lib/facets/core/kernel/test_to_bool.rb +1 -1
  276. data/test/lib/facets/core/kernel/test_uri.rb +1 -1
  277. data/test/lib/facets/core/kernel/test_val.rb +1 -1
  278. data/test/lib/facets/core/kernel/test_with_accessor.rb +1 -1
  279. data/test/lib/facets/core/matchdata/test_match.rb +1 -1
  280. data/test/lib/facets/core/matchdata/test_matchtree.rb +1 -1
  281. data/test/lib/facets/core/module/test_abstract.rb +1 -1
  282. data/test/lib/facets/core/module/test_alias_module_function.rb +1 -1
  283. data/test/lib/facets/core/module/test_ancestor.rb +1 -1
  284. data/test/lib/facets/core/module/test_basename.rb +1 -1
  285. data/test/lib/facets/core/module/test_by_name.rb +1 -1
  286. data/test/lib/facets/core/module/test_clone_using.rb +1 -1
  287. data/test/lib/facets/core/module/test_dirname.rb +1 -1
  288. data/test/lib/facets/core/module/test_equate_on.rb +1 -1
  289. data/test/lib/facets/core/module/test_generate_instance_method_name.rb +1 -1
  290. data/test/lib/facets/core/module/test_include_as.rb +1 -1
  291. data/test/lib/facets/core/module/test_inherit.rb +1 -1
  292. data/test/lib/facets/core/module/test_initializer.rb +1 -1
  293. data/test/lib/facets/core/module/test_instance_methods.rb +1 -1
  294. data/test/lib/facets/core/module/test_integrate.rb +1 -1
  295. data/test/lib/facets/core/module/test_memoize.rb +1 -1
  296. data/test/lib/facets/core/module/test_modspace.rb +1 -1
  297. data/test/lib/facets/core/module/test_namespace.rb +1 -1
  298. data/test/lib/facets/core/module/test_nesting.rb +1 -1
  299. data/test/lib/facets/core/module/test_nodef.rb +1 -1
  300. data/test/lib/facets/core/module/test_on_included.rb +1 -1
  301. data/test/lib/facets/core/module/test_redef.rb +1 -1
  302. data/test/lib/facets/core/module/test_redefine_method.rb +1 -1
  303. data/test/lib/facets/core/module/test_redirect.rb +1 -1
  304. data/test/lib/facets/core/module/test_redirect_method.rb +1 -1
  305. data/test/lib/facets/core/module/test_remove.rb +1 -1
  306. data/test/lib/facets/core/module/test_rename.rb +1 -1
  307. data/test/lib/facets/core/module/test_rename_method.rb +1 -1
  308. data/test/lib/facets/core/module/test_revisal.rb +1 -1
  309. data/test/lib/facets/core/module/test_shadow_method.rb +1 -1
  310. data/test/lib/facets/core/module/test_sort_on.rb +1 -1
  311. data/test/lib/facets/core/module/test_this.rb +1 -1
  312. data/test/lib/facets/core/module/test_wrap.rb +1 -1
  313. data/test/lib/facets/core/module/test_wrap_method.rb +1 -1
  314. data/test/lib/facets/core/nilclass/test_blank.rb +1 -1
  315. data/test/lib/facets/core/nilclass/test_empty.rb +1 -1
  316. data/test/lib/facets/core/nilclass/test_include.rb +1 -1
  317. data/test/lib/facets/core/nilclass/test_op_fetch.rb +1 -1
  318. data/test/lib/facets/core/nilclass/test_size.rb +1 -1
  319. data/test/lib/facets/core/nilclass/test_to_h.rb +1 -1
  320. data/test/lib/facets/core/numeric/test_approx.rb +1 -1
  321. data/test/lib/facets/core/numeric/test_ceil_multiple.rb +1 -1
  322. data/test/lib/facets/core/numeric/test_succ.rb +1 -1
  323. data/test/lib/facets/core/numeric/test_to_b.rb +1 -1
  324. data/test/lib/facets/core/ostruct/test___merge__.rb +1 -1
  325. data/test/lib/facets/core/ostruct/test___update__.rb +1 -1
  326. data/test/lib/facets/core/ostruct/test_op_fetch.rb +1 -1
  327. data/test/lib/facets/core/ostruct/test_op_store.rb +1 -1
  328. data/test/lib/facets/core/proc/test_compose.rb +1 -1
  329. data/test/lib/facets/core/proc/test_to_method.rb +1 -1
  330. data/test/lib/facets/core/range/test_to_r.rb +1 -1
  331. data/test/lib/facets/core/range/test_to_range.rb +1 -1
  332. data/test/lib/facets/core/range/test_umbrella.rb +1 -1
  333. data/test/lib/facets/core/range/test_within.rb +1 -1
  334. data/test/lib/facets/core/regexp/test_arity.rb +1 -1
  335. data/test/lib/facets/core/regexp/test_to_re.rb +1 -1
  336. data/test/lib/facets/core/regexp/test_to_regexp.rb +1 -1
  337. data/test/lib/facets/core/string/self/test_interpolate.rb +1 -1
  338. data/test/lib/facets/core/string/self/test_patterns.rb +1 -1
  339. data/test/lib/facets/core/string/self/test_rand_letter.rb +1 -1
  340. data/test/lib/facets/core/string/test_align_center.rb +1 -1
  341. data/test/lib/facets/core/string/test_at_rand.rb +1 -1
  342. data/test/lib/facets/core/string/test_basename.rb +1 -1
  343. data/test/lib/facets/core/string/test_blank.rb +1 -1
  344. data/test/lib/facets/core/string/test_bracket.rb +1 -1
  345. data/test/lib/facets/core/string/test_camelcase.rb +1 -1
  346. data/test/lib/facets/core/string/test_camelize.rb +1 -1
  347. data/test/lib/facets/core/string/test_capitalized.rb +1 -1
  348. data/test/lib/facets/core/string/test_chars.rb +1 -1
  349. data/test/lib/facets/core/string/test_cmp.rb +1 -1
  350. data/test/lib/facets/core/string/test_demodulize.rb +1 -1
  351. data/test/lib/facets/core/string/test_downcase.rb +1 -1
  352. data/test/lib/facets/core/string/test_dresner.rb +1 -1
  353. data/test/lib/facets/core/string/test_each_char.rb +1 -1
  354. data/test/lib/facets/core/string/test_each_word.rb +1 -1
  355. data/test/lib/facets/core/string/test_first.rb +1 -1
  356. data/test/lib/facets/core/string/test_fold.rb +1 -1
  357. data/test/lib/facets/core/string/test_frequency.rb +1 -1
  358. data/test/lib/facets/core/string/test_humanize.rb +1 -1
  359. data/test/lib/facets/core/string/test_indent.rb +1 -1
  360. data/test/lib/facets/core/string/test_index_all.rb +1 -1
  361. data/test/lib/facets/core/string/test_last.rb +1 -1
  362. data/test/lib/facets/core/string/test_line_wrap.rb +1 -1
  363. data/test/lib/facets/core/string/test_lines.rb +1 -1
  364. data/test/lib/facets/core/string/test_lowercase.rb +1 -1
  365. data/test/lib/facets/core/string/test_margin.rb +1 -1
  366. data/test/lib/facets/core/string/test_methodize.rb +1 -1
  367. data/test/lib/facets/core/string/test_modulize.rb +1 -1
  368. data/test/lib/facets/core/string/test_mscan.rb +1 -1
  369. data/test/lib/facets/core/string/test_natcmp.rb +1 -1
  370. data/test/lib/facets/core/string/test_nchar.rb +1 -1
  371. data/test/lib/facets/core/string/test_pathize.rb +1 -1
  372. data/test/lib/facets/core/string/test_pop.rb +1 -1
  373. data/test/lib/facets/core/string/test_pot.rb +1 -1
  374. data/test/lib/facets/core/string/test_probability.rb +1 -1
  375. data/test/lib/facets/core/string/test_push.rb +1 -1
  376. data/test/lib/facets/core/string/test_quote.rb +1 -1
  377. data/test/lib/facets/core/string/test_rand_byte.rb +1 -1
  378. data/test/lib/facets/core/string/test_rand_index.rb +1 -1
  379. data/test/lib/facets/core/string/test_range.rb +1 -1
  380. data/test/lib/facets/core/string/test_range_all.rb +1 -1
  381. data/test/lib/facets/core/string/test_range_of_line.rb +1 -1
  382. data/test/lib/facets/core/string/test_regesc.rb +1 -1
  383. data/test/lib/facets/core/string/test_shatter.rb +1 -1
  384. data/test/lib/facets/core/string/test_shift.rb +1 -1
  385. data/test/lib/facets/core/string/test_shuffle.rb +1 -1
  386. data/test/lib/facets/core/string/test_similarity.rb +1 -1
  387. data/test/lib/facets/core/string/test_singular.rb +1 -1
  388. data/test/lib/facets/core/string/test_soundex.rb +1 -1
  389. data/test/lib/facets/core/string/test_succ.rb +1 -1
  390. data/test/lib/facets/core/string/test_to_a.rb +1 -1
  391. data/test/lib/facets/core/string/test_to_b.rb +1 -1
  392. data/test/lib/facets/core/string/test_to_const.rb +1 -1
  393. data/test/lib/facets/core/string/test_to_date.rb +1 -1
  394. data/test/lib/facets/core/string/test_to_proc.rb +1 -1
  395. data/test/lib/facets/core/string/test_to_re.rb +1 -1
  396. data/test/lib/facets/core/string/test_to_time.rb +1 -1
  397. data/test/lib/facets/core/string/test_unix_crypt.rb +1 -1
  398. data/test/lib/facets/core/string/test_unpack.rb +1 -1
  399. data/test/lib/facets/core/string/test_unshift.rb +1 -1
  400. data/test/lib/facets/core/string/test_upcase.rb +1 -1
  401. data/test/lib/facets/core/string/test_whitespace.rb +1 -1
  402. data/test/lib/facets/core/string/test_word_filter.rb +1 -1
  403. data/test/lib/facets/core/string/test_word_wrap.rb +1 -1
  404. data/test/lib/facets/core/string/test_words.rb +1 -1
  405. data/test/lib/facets/core/symbol/test_camelcase.rb +1 -1
  406. data/test/lib/facets/core/symbol/test_camelize.rb +1 -1
  407. data/test/lib/facets/core/symbol/test_capitalize.rb +1 -1
  408. data/test/lib/facets/core/symbol/test_capitalized.rb +1 -1
  409. data/test/lib/facets/core/symbol/test_downcase.rb +1 -1
  410. data/test/lib/facets/core/symbol/test_not.rb +1 -1
  411. data/test/lib/facets/core/symbol/test_pad.rb +1 -1
  412. data/test/lib/facets/core/symbol/test_succ.rb +1 -1
  413. data/test/lib/facets/core/symbol/test_to_const.rb +1 -1
  414. data/test/lib/facets/core/symbol/test_to_proc.rb +1 -1
  415. data/test/lib/facets/core/symbol/test_to_str.rb +1 -1
  416. data/test/lib/facets/core/symbol/test_underscore.rb +1 -1
  417. data/test/lib/facets/core/symbol/test_upcase.rb +1 -1
  418. data/test/lib/facets/core/time/test_change.rb +1 -1
  419. data/test/lib/facets/core/time/test_elapse.rb +1 -1
  420. data/test/lib/facets/core/time/test_stamp.rb +1 -1
  421. data/test/lib/facets/core/time/test_to_date.rb +1 -1
  422. data/test/lib/facets/core/time/test_to_s.rb +1 -1
  423. data/test/lib/facets/core/time/test_to_time.rb +1 -1
  424. data/test/lib/facets/more/test_annattr.rb +1 -1
  425. data/test/lib/facets/more/test_annotation.rb +1 -1
  426. data/test/lib/facets/more/test_ansicode.rb +1 -1
  427. data/test/lib/facets/more/test_association.rb +1 -1
  428. data/test/lib/facets/more/test_basicobject.rb +1 -1
  429. data/test/lib/facets/more/test_bbcode.rb +1 -1
  430. data/test/lib/facets/more/test_binaryreader.rb +1 -1
  431. data/test/lib/facets/more/test_bitmask.rb +1 -1
  432. data/test/lib/facets/more/test_bytes.rb +1 -1
  433. data/test/lib/facets/more/test_classinherit.rb +1 -1
  434. data/test/lib/facets/more/test_classmethods.rb +1 -1
  435. data/test/lib/facets/more/test_coroutine.rb +1 -1
  436. data/test/lib/facets/more/test_crypt.rb +1 -1
  437. data/test/lib/facets/more/test_dictionary.rb +1 -1
  438. data/test/lib/facets/more/test_elementor.rb +1 -1
  439. data/test/lib/facets/more/test_enumerablepass.rb +1 -1
  440. data/test/lib/facets/more/test_floatstring.rb +1 -1
  441. data/test/lib/facets/more/test_functor.rb +1 -1
  442. data/test/lib/facets/more/test_htmlbuilder.rb +1 -1
  443. data/test/lib/facets/more/test_inheritor.rb +1 -1
  444. data/test/lib/facets/more/test_interval.rb +1 -1
  445. data/test/lib/facets/more/test_json.rb +1 -1
  446. data/test/lib/facets/more/test_lisp.rb +1 -1
  447. data/test/lib/facets/more/test_lisp_format.rb +1 -1
  448. data/test/lib/facets/more/test_lrucache.rb +1 -1
  449. data/test/lib/facets/more/test_mathconstants.rb +1 -1
  450. data/test/lib/facets/more/test_methodprobe.rb +1 -1
  451. data/test/lib/facets/more/test_multipliers.rb +1 -1
  452. data/test/lib/facets/more/test_multiton.rb +1 -1
  453. data/test/lib/facets/more/test_nackclass.rb +1 -1
  454. data/test/lib/facets/more/test_nilcomparable.rb +1 -1
  455. data/test/lib/facets/more/test_opencascade.rb +1 -1
  456. data/test/lib/facets/more/test_openobject.rb +1 -1
  457. data/test/lib/facets/more/test_overload.rb +1 -1
  458. data/test/lib/facets/more/test_paramix.rb +1 -1
  459. data/test/lib/facets/more/test_pqueue.rb +1 -1
  460. data/test/lib/facets/more/test_preinitialize.rb +1 -1
  461. data/test/lib/facets/more/test_promoteself.rb +1 -1
  462. data/test/lib/facets/more/test_recorder.rb +1 -1
  463. data/test/lib/facets/more/test_snapshot.rb +1 -1
  464. data/test/lib/facets/more/test_statichash.rb +1 -1
  465. data/test/lib/facets/more/test_syncarray.rb +1 -1
  466. data/test/lib/facets/more/test_synchash.rb +1 -1
  467. data/test/lib/facets/more/test_tagiterator.rb +1 -1
  468. data/test/lib/facets/more/test_taskable.rb +19 -1
  469. data/test/lib/facets/more/test_timer.rb +1 -1
  470. data/test/lib/facets/more/test_times.rb +1 -1
  471. data/test/lib/facets/more/test_tuple.rb +1 -1
  472. data/test/lib/facets/more/test_typecast.rb +1 -1
  473. data/test/lib/facets/more/test_uninheritable.rb +1 -1
  474. data/test/lib/facets/more/test_units.rb +1 -1
  475. data/test/lib/facets/more/test_xmlbuilder.rb +1 -1
  476. data/test/lib/facets/more/test_xmlhelper.rb +1 -1
  477. data/test/lib/facets/more/test_xoxo.rb +1 -1
  478. data/test/lib/facets/more/test_yamlstruct.rb +1 -1
  479. data/web/doc/api/core/classes/Array.html +1356 -0
  480. data/web/doc/api/core/classes/Binding.html +538 -0
  481. data/web/doc/api/core/classes/Class.html +475 -0
  482. data/web/doc/api/core/classes/Comparable.html +231 -0
  483. data/web/doc/api/core/classes/Continuation.html +168 -0
  484. data/web/doc/api/core/classes/Date.html +219 -0
  485. data/web/doc/api/core/classes/Dir.html +208 -0
  486. data/web/doc/api/core/classes/Enumerable.html +1435 -0
  487. data/web/doc/api/core/classes/FalseClass.html +115 -0
  488. data/web/doc/api/core/classes/File.html +349 -0
  489. data/web/doc/api/core/classes/FileUtils.html +468 -0
  490. data/web/doc/api/core/classes/Float.html +157 -0
  491. data/web/doc/api/core/classes/Gem.html +171 -0
  492. data/web/doc/api/core/classes/Hash.html +1657 -0
  493. data/web/doc/api/core/classes/Integer.html +353 -0
  494. data/web/doc/api/core/classes/Kernal.html +86 -0
  495. data/web/doc/api/core/classes/Kernel.html +1972 -0
  496. data/web/doc/api/core/classes/Logger.html +157 -0
  497. data/web/doc/api/core/classes/MatchData.html +195 -0
  498. data/web/doc/api/core/classes/Module.html +1712 -0
  499. data/web/doc/api/core/classes/NackClass.html +92 -0
  500. data/web/doc/api/core/classes/NilClass.html +332 -0
  501. data/web/doc/api/core/classes/Numeric.html +306 -0
  502. data/web/doc/api/core/classes/Object.html +332 -0
  503. data/web/doc/api/core/classes/OpenStruct.html +315 -0
  504. data/web/doc/api/core/classes/Pathname.html +154 -0
  505. data/web/doc/api/core/classes/Proc.html +154 -0
  506. data/web/doc/api/core/classes/Range.html +235 -0
  507. data/web/doc/api/core/classes/Regexp.html +185 -0
  508. data/web/doc/api/core/classes/ScriptBug.html +92 -0
  509. data/web/doc/api/core/classes/String.html +3286 -0
  510. data/web/doc/api/core/classes/Symbol.html +463 -0
  511. data/web/doc/api/core/classes/Time.html +307 -0
  512. data/web/doc/api/core/classes/TrueClass.html +115 -0
  513. data/web/doc/api/core/classes/UnboundMethod.html +121 -0
  514. data/web/doc/api/core/created.rid +1 -0
  515. data/web/doc/api/core/files/AUTHORS.html +206 -0
  516. data/web/doc/api/core/files/COPYING.html +517 -0
  517. data/web/doc/api/core/files/README.html +386 -0
  518. data/web/doc/api/core/files/WARNING.html +151 -0
  519. data/web/doc/api/core/files/lib/facets/core/all_rb.html +96 -0
  520. data/web/doc/api/core/files/lib/facets/core/array/at_rand_rb.html +92 -0
  521. data/web/doc/api/core/files/lib/facets/core/array/body_rb.html +100 -0
  522. data/web/doc/api/core/files/lib/facets/core/array/delete_unless_rb.html +92 -0
  523. data/web/doc/api/core/files/lib/facets/core/array/delete_values_at_rb.html +92 -0
  524. data/web/doc/api/core/files/lib/facets/core/array/delete_values_rb.html +92 -0
  525. data/web/doc/api/core/files/lib/facets/core/array/each_with_key_rb.html +92 -0
  526. data/web/doc/api/core/files/lib/facets/core/array/first_rb.html +96 -0
  527. data/web/doc/api/core/files/lib/facets/core/array/foot_rb.html +100 -0
  528. data/web/doc/api/core/files/lib/facets/core/array/head_rb.html +92 -0
  529. data/web/doc/api/core/files/lib/facets/core/array/join_sentence_rb.html +92 -0
  530. data/web/doc/api/core/files/lib/facets/core/array/last_index_rb.html +92 -0
  531. data/web/doc/api/core/files/lib/facets/core/array/last_rb.html +100 -0
  532. data/web/doc/api/core/files/lib/facets/core/array/merge_rb.html +92 -0
  533. data/web/doc/api/core/files/lib/facets/core/array/mid_rb.html +92 -0
  534. data/web/doc/api/core/files/lib/facets/core/array/middle_rb.html +92 -0
  535. data/web/doc/api/core/files/lib/facets/core/array/op_fetch_rb.html +92 -0
  536. data/web/doc/api/core/files/lib/facets/core/array/op_mod_rb.html +92 -0
  537. data/web/doc/api/core/files/lib/facets/core/array/op_store_rb.html +96 -0
  538. data/web/doc/api/core/files/lib/facets/core/array/pick_rb.html +92 -0
  539. data/web/doc/api/core/files/lib/facets/core/array/pos_rb.html +92 -0
  540. data/web/doc/api/core/files/lib/facets/core/array/pot_rb.html +92 -0
  541. data/web/doc/api/core/files/lib/facets/core/array/pull_rb.html +92 -0
  542. data/web/doc/api/core/files/lib/facets/core/array/rand_index_rb.html +92 -0
  543. data/web/doc/api/core/files/lib/facets/core/array/rand_subset_rb.html +92 -0
  544. data/web/doc/api/core/files/lib/facets/core/array/range_rb.html +92 -0
  545. data/web/doc/api/core/files/lib/facets/core/array/rotate_rb.html +92 -0
  546. data/web/doc/api/core/files/lib/facets/core/array/select_rb.html +92 -0
  547. data/web/doc/api/core/files/lib/facets/core/array/shuffle_rb.html +92 -0
  548. data/web/doc/api/core/files/lib/facets/core/array/store_rb.html +92 -0
  549. data/web/doc/api/core/files/lib/facets/core/array/tail_rb.html +100 -0
  550. data/web/doc/api/core/files/lib/facets/core/array/thru_rb.html +92 -0
  551. data/web/doc/api/core/files/lib/facets/core/array/to_b_rb.html +92 -0
  552. data/web/doc/api/core/files/lib/facets/core/array/to_h_rb.html +92 -0
  553. data/web/doc/api/core/files/lib/facets/core/array/to_hash_rb.html +92 -0
  554. data/web/doc/api/core/files/lib/facets/core/array/unzip_rb.html +92 -0
  555. data/web/doc/api/core/files/lib/facets/core/binding/__DIR___rb.html +100 -0
  556. data/web/doc/api/core/files/lib/facets/core/binding/__FILE___rb.html +100 -0
  557. data/web/doc/api/core/files/lib/facets/core/binding/__LINE___rb.html +96 -0
  558. data/web/doc/api/core/files/lib/facets/core/binding/call_stack_rb.html +97 -0
  559. data/web/doc/api/core/files/lib/facets/core/binding/called_rb.html +96 -0
  560. data/web/doc/api/core/files/lib/facets/core/binding/caller_rb.html +96 -0
  561. data/web/doc/api/core/files/lib/facets/core/binding/defined_rb.html +96 -0
  562. data/web/doc/api/core/files/lib/facets/core/binding/eval_rb.html +92 -0
  563. data/web/doc/api/core/files/lib/facets/core/binding/local_variables_rb.html +96 -0
  564. data/web/doc/api/core/files/lib/facets/core/binding/method_name_rb.html +96 -0
  565. data/web/doc/api/core/files/lib/facets/core/binding/op_fetch_rb.html +97 -0
  566. data/web/doc/api/core/files/lib/facets/core/binding/op_store_rb.html +97 -0
  567. data/web/doc/api/core/files/lib/facets/core/binding/self/of_caller_rb.html +96 -0
  568. data/web/doc/api/core/files/lib/facets/core/binding/self_rb.html +96 -0
  569. data/web/doc/api/core/files/lib/facets/core/binding_rb.html +109 -0
  570. data/web/doc/api/core/files/lib/facets/core/class/by_name_rb.html +96 -0
  571. data/web/doc/api/core/files/lib/facets/core/class/cattr_accessor_rb.html +100 -0
  572. data/web/doc/api/core/files/lib/facets/core/class/cattr_rb.html +92 -0
  573. data/web/doc/api/core/files/lib/facets/core/class/cattr_reader_rb.html +100 -0
  574. data/web/doc/api/core/files/lib/facets/core/class/cattr_writer_rb.html +100 -0
  575. data/web/doc/api/core/files/lib/facets/core/class/descendents_rb.html +92 -0
  576. data/web/doc/api/core/files/lib/facets/core/class/method_name_rb.html +92 -0
  577. data/web/doc/api/core/files/lib/facets/core/class/remove_descendents_rb.html +96 -0
  578. data/web/doc/api/core/files/lib/facets/core/class/remove_subclasses_rb.html +100 -0
  579. data/web/doc/api/core/files/lib/facets/core/class/subclasses_rb.html +100 -0
  580. data/web/doc/api/core/files/lib/facets/core/class/to_proc_rb.html +98 -0
  581. data/web/doc/api/core/files/lib/facets/core/class/unix_path_rb.html +92 -0
  582. data/web/doc/api/core/files/lib/facets/core/comparable/at_least_rb.html +92 -0
  583. data/web/doc/api/core/files/lib/facets/core/comparable/at_most_rb.html +100 -0
  584. data/web/doc/api/core/files/lib/facets/core/comparable/cap_rb.html +100 -0
  585. data/web/doc/api/core/files/lib/facets/core/comparable/clip_rb.html +92 -0
  586. data/web/doc/api/core/files/lib/facets/core/comparable/cmp_rb.html +92 -0
  587. data/web/doc/api/core/files/lib/facets/core/continuation/self/create_rb.html +148 -0
  588. data/web/doc/api/core/files/lib/facets/core/date/days_in_month_rb.html +96 -0
  589. data/web/doc/api/core/files/lib/facets/core/date/days_of_month_rb.html +96 -0
  590. data/web/doc/api/core/files/lib/facets/core/date/stamp_rb.html +96 -0
  591. data/web/doc/api/core/files/lib/facets/core/date/to_date_rb.html +96 -0
  592. data/web/doc/api/core/files/lib/facets/core/date/to_s_rb.html +96 -0
  593. data/web/doc/api/core/files/lib/facets/core/date/to_time_rb.html +96 -0
  594. data/web/doc/api/core/files/lib/facets/core/dir/self/ancestor_rb.html +92 -0
  595. data/web/doc/api/core/files/lib/facets/core/dir/self/ascend_rb.html +92 -0
  596. data/web/doc/api/core/files/lib/facets/core/dir/self/descend_rb.html +92 -0
  597. data/web/doc/api/core/files/lib/facets/core/dir/self/ls_r_rb.html +92 -0
  598. data/web/doc/api/core/files/lib/facets/core/dir/self/recurse_rb.html +100 -0
  599. data/web/doc/api/core/files/lib/facets/core/enumerable/accumulate_rb.html +96 -0
  600. data/web/doc/api/core/files/lib/facets/core/enumerable/collect_if_rb.html +92 -0
  601. data/web/doc/api/core/files/lib/facets/core/enumerable/collect_with_counter_rb.html +100 -0
  602. data/web/doc/api/core/files/lib/facets/core/enumerable/collect_with_index_rb.html +92 -0
  603. data/web/doc/api/core/files/lib/facets/core/enumerable/commonality_rb.html +92 -0
  604. data/web/doc/api/core/files/lib/facets/core/enumerable/compact_collect_rb.html +96 -0
  605. data/web/doc/api/core/files/lib/facets/core/enumerable/compact_map_rb.html +100 -0
  606. data/web/doc/api/core/files/lib/facets/core/enumerable/count_rb.html +92 -0
  607. data/web/doc/api/core/files/lib/facets/core/enumerable/cross_rb.html +96 -0
  608. data/web/doc/api/core/files/lib/facets/core/enumerable/each_by_rb.html +100 -0
  609. data/web/doc/api/core/files/lib/facets/core/enumerable/each_combination_rb.html +92 -0
  610. data/web/doc/api/core/files/lib/facets/core/enumerable/each_pair_rb.html +92 -0
  611. data/web/doc/api/core/files/lib/facets/core/enumerable/each_permutation_rb.html +100 -0
  612. data/web/doc/api/core/files/lib/facets/core/enumerable/each_slice_rb.html +92 -0
  613. data/web/doc/api/core/files/lib/facets/core/enumerable/each_unique_pair_rb.html +96 -0
  614. data/web/doc/api/core/files/lib/facets/core/enumerable/each_with_counter_rb.html +92 -0
  615. data/web/doc/api/core/files/lib/facets/core/enumerable/elementwise_rb.html +100 -0
  616. data/web/doc/api/core/files/lib/facets/core/enumerable/entropy_rb.html +97 -0
  617. data/web/doc/api/core/files/lib/facets/core/enumerable/every_rb.html +96 -0
  618. data/web/doc/api/core/files/lib/facets/core/enumerable/ew_rb.html +96 -0
  619. data/web/doc/api/core/files/lib/facets/core/enumerable/filter_collect_rb.html +92 -0
  620. data/web/doc/api/core/files/lib/facets/core/enumerable/filter_map_rb.html +100 -0
  621. data/web/doc/api/core/files/lib/facets/core/enumerable/find_collisions_rb.html +96 -0
  622. data/web/doc/api/core/files/lib/facets/core/enumerable/frequency_rb.html +92 -0
  623. data/web/doc/api/core/files/lib/facets/core/enumerable/graph_rb.html +96 -0
  624. data/web/doc/api/core/files/lib/facets/core/enumerable/ideal_entropy_rb.html +92 -0
  625. data/web/doc/api/core/files/lib/facets/core/enumerable/map_if_rb.html +100 -0
  626. data/web/doc/api/core/files/lib/facets/core/enumerable/map_with_counter_rb.html +100 -0
  627. data/web/doc/api/core/files/lib/facets/core/enumerable/map_with_index_rb.html +100 -0
  628. data/web/doc/api/core/files/lib/facets/core/enumerable/mode_rb.html +92 -0
  629. data/web/doc/api/core/files/lib/facets/core/enumerable/none_rb.html +92 -0
  630. data/web/doc/api/core/files/lib/facets/core/enumerable/nonuniq_rb.html +92 -0
  631. data/web/doc/api/core/files/lib/facets/core/enumerable/occur_rb.html +92 -0
  632. data/web/doc/api/core/files/lib/facets/core/enumerable/one_rb.html +92 -0
  633. data/web/doc/api/core/files/lib/facets/core/enumerable/op_pow_rb.html +96 -0
  634. data/web/doc/api/core/files/lib/facets/core/enumerable/partition_by_rb.html +92 -0
  635. data/web/doc/api/core/files/lib/facets/core/enumerable/permute_rb.html +96 -0
  636. data/web/doc/api/core/files/lib/facets/core/enumerable/probability_rb.html +92 -0
  637. data/web/doc/api/core/files/lib/facets/core/enumerable/project_rb.html +92 -0
  638. data/web/doc/api/core/files/lib/facets/core/enumerable/self/combinations_rb.html +92 -0
  639. data/web/doc/api/core/files/lib/facets/core/enumerable/self/cross_rb.html +96 -0
  640. data/web/doc/api/core/files/lib/facets/core/enumerable/to_h_rb.html +92 -0
  641. data/web/doc/api/core/files/lib/facets/core/enumerable/uniq_by_rb.html +92 -0
  642. data/web/doc/api/core/files/lib/facets/core/enumerable/where_rb.html +92 -0
  643. data/web/doc/api/core/files/lib/facets/core/file/self/append_rb.html +96 -0
  644. data/web/doc/api/core/files/lib/facets/core/file/self/create_rb.html +92 -0
  645. data/web/doc/api/core/files/lib/facets/core/file/self/open_as_string_rb.html +118 -0
  646. data/web/doc/api/core/files/lib/facets/core/file/self/read_binary_rb.html +96 -0
  647. data/web/doc/api/core/files/lib/facets/core/file/self/read_list_rb.html +97 -0
  648. data/web/doc/api/core/files/lib/facets/core/file/self/sanitize_rb.html +96 -0
  649. data/web/doc/api/core/files/lib/facets/core/file/self/split_all_rb.html +101 -0
  650. data/web/doc/api/core/files/lib/facets/core/file/self/write_rb.html +96 -0
  651. data/web/doc/api/core/files/lib/facets/core/fileutils/head_rb.html +100 -0
  652. data/web/doc/api/core/files/lib/facets/core/fileutils/safe_ln_rb.html +96 -0
  653. data/web/doc/api/core/files/lib/facets/core/fileutils/slice_rb.html +96 -0
  654. data/web/doc/api/core/files/lib/facets/core/fileutils/split_all_rb.html +92 -0
  655. data/web/doc/api/core/files/lib/facets/core/fileutils/tail_rb.html +100 -0
  656. data/web/doc/api/core/files/lib/facets/core/fileutils/wc_rb.html +96 -0
  657. data/web/doc/api/core/files/lib/facets/core/fileutils/whereis_rb.html +96 -0
  658. data/web/doc/api/core/files/lib/facets/core/fileutils/which_rb.html +96 -0
  659. data/web/doc/api/core/files/lib/facets/core/float/approx_rb.html +100 -0
  660. data/web/doc/api/core/files/lib/facets/core/float/round_at_rb.html +96 -0
  661. data/web/doc/api/core/files/lib/facets/core/float/round_off_rb.html +92 -0
  662. data/web/doc/api/core/files/lib/facets/core/float/round_to_rb.html +96 -0
  663. data/web/doc/api/core/files/lib/facets/core/gem/self/active_rb.html +92 -0
  664. data/web/doc/api/core/files/lib/facets/core/gem/self/gemdir_rb.html +96 -0
  665. data/web/doc/api/core/files/lib/facets/core/gem/self/gempath_rb.html +96 -0
  666. data/web/doc/api/core/files/lib/facets/core/gem/self/gemspec_rb.html +96 -0
  667. data/web/doc/api/core/files/lib/facets/core/hash/alias_rb.html +92 -0
  668. data/web/doc/api/core/files/lib/facets/core/hash/assert_has_keys_rb.html +96 -0
  669. data/web/doc/api/core/files/lib/facets/core/hash/assert_has_only_keys_rb.html +96 -0
  670. data/web/doc/api/core/files/lib/facets/core/hash/at_rb.html +92 -0
  671. data/web/doc/api/core/files/lib/facets/core/hash/collate_rb.html +92 -0
  672. data/web/doc/api/core/files/lib/facets/core/hash/delete_unless_rb.html +96 -0
  673. data/web/doc/api/core/files/lib/facets/core/hash/each_rb.html +92 -0
  674. data/web/doc/api/core/files/lib/facets/core/hash/each_with_index_rb.html +97 -0
  675. data/web/doc/api/core/files/lib/facets/core/hash/each_with_key_rb.html +92 -0
  676. data/web/doc/api/core/files/lib/facets/core/hash/graph_rb.html +96 -0
  677. data/web/doc/api/core/files/lib/facets/core/hash/has_keys_rb.html +92 -0
  678. data/web/doc/api/core/files/lib/facets/core/hash/has_only_keys_rb.html +92 -0
  679. data/web/doc/api/core/files/lib/facets/core/hash/inverse_rb.html +92 -0
  680. data/web/doc/api/core/files/lib/facets/core/hash/join_rb.html +92 -0
  681. data/web/doc/api/core/files/lib/facets/core/hash/keys_to_iv_rb.html +92 -0
  682. data/web/doc/api/core/files/lib/facets/core/hash/keys_to_s_rb.html +92 -0
  683. data/web/doc/api/core/files/lib/facets/core/hash/keys_to_sym_rb.html +92 -0
  684. data/web/doc/api/core/files/lib/facets/core/hash/op_fetch_rb.html +96 -0
  685. data/web/doc/api/core/files/lib/facets/core/hash/op_lshift_rb.html +92 -0
  686. data/web/doc/api/core/files/lib/facets/core/hash/op_store_rb.html +100 -0
  687. data/web/doc/api/core/files/lib/facets/core/hash/rand_key_rb.html +92 -0
  688. data/web/doc/api/core/files/lib/facets/core/hash/rand_pair_rb.html +96 -0
  689. data/web/doc/api/core/files/lib/facets/core/hash/rand_value_rb.html +96 -0
  690. data/web/doc/api/core/files/lib/facets/core/hash/replace_each_rb.html +92 -0
  691. data/web/doc/api/core/files/lib/facets/core/hash/self/zipnew_rb.html +92 -0
  692. data/web/doc/api/core/files/lib/facets/core/hash/shuffle_rb.html +96 -0
  693. data/web/doc/api/core/files/lib/facets/core/hash/slice_rb.html +92 -0
  694. data/web/doc/api/core/files/lib/facets/core/hash/stringify_keys_rb.html +100 -0
  695. data/web/doc/api/core/files/lib/facets/core/hash/swap_rb.html +92 -0
  696. data/web/doc/api/core/files/lib/facets/core/hash/swapkey_rb.html +92 -0
  697. data/web/doc/api/core/files/lib/facets/core/hash/symoblize_keys_rb.html +100 -0
  698. data/web/doc/api/core/files/lib/facets/core/hash/to_h_rb.html +92 -0
  699. data/web/doc/api/core/files/lib/facets/core/hash/to_ostruct_rb.html +96 -0
  700. data/web/doc/api/core/files/lib/facets/core/hash/to_ostruct_recurse_rb.html +97 -0
  701. data/web/doc/api/core/files/lib/facets/core/hash/to_proc_rb.html +92 -0
  702. data/web/doc/api/core/files/lib/facets/core/hash/traverse_rb.html +92 -0
  703. data/web/doc/api/core/files/lib/facets/core/hash/update_each_rb.html +92 -0
  704. data/web/doc/api/core/files/lib/facets/core/hash/update_keys_rb.html +92 -0
  705. data/web/doc/api/core/files/lib/facets/core/hash/update_values_rb.html +92 -0
  706. data/web/doc/api/core/files/lib/facets/core/hash/variablize_keys_rb.html +100 -0
  707. data/web/doc/api/core/files/lib/facets/core/hash/weave_rb.html +92 -0
  708. data/web/doc/api/core/files/lib/facets/core/inflect_rb.html +117 -0
  709. data/web/doc/api/core/files/lib/facets/core/integer/even_rb.html +100 -0
  710. data/web/doc/api/core/files/lib/facets/core/integer/fac_rb.html +100 -0
  711. data/web/doc/api/core/files/lib/facets/core/integer/fact_rb.html +100 -0
  712. data/web/doc/api/core/files/lib/facets/core/integer/factorial_rb.html +92 -0
  713. data/web/doc/api/core/files/lib/facets/core/integer/multiple_rb.html +92 -0
  714. data/web/doc/api/core/files/lib/facets/core/integer/odd_rb.html +100 -0
  715. data/web/doc/api/core/files/lib/facets/core/integer/ordinal_rb.html +92 -0
  716. data/web/doc/api/core/files/lib/facets/core/integer/times_collect_rb.html +92 -0
  717. data/web/doc/api/core/files/lib/facets/core/integer/times_map_rb.html +100 -0
  718. data/web/doc/api/core/files/lib/facets/core/kernel/__DIR___rb.html +92 -0
  719. data/web/doc/api/core/files/lib/facets/core/kernel/__class___rb.html +92 -0
  720. data/web/doc/api/core/files/lib/facets/core/kernel/__get___rb.html +92 -0
  721. data/web/doc/api/core/files/lib/facets/core/kernel/__self___rb.html +96 -0
  722. data/web/doc/api/core/files/lib/facets/core/kernel/__set___rb.html +100 -0
  723. data/web/doc/api/core/files/lib/facets/core/kernel/adhoc_rb.html +99 -0
  724. data/web/doc/api/core/files/lib/facets/core/kernel/as_rb.html +96 -0
  725. data/web/doc/api/core/files/lib/facets/core/kernel/assign_from_rb.html +96 -0
  726. data/web/doc/api/core/files/lib/facets/core/kernel/assign_with_rb.html +97 -0
  727. data/web/doc/api/core/files/lib/facets/core/kernel/autoreload_files_rb.html +100 -0
  728. data/web/doc/api/core/files/lib/facets/core/kernel/autoreload_glob_rb.html +100 -0
  729. data/web/doc/api/core/files/lib/facets/core/kernel/autoreload_rb.html +92 -0
  730. data/web/doc/api/core/files/lib/facets/core/kernel/bool_rb.html +92 -0
  731. data/web/doc/api/core/files/lib/facets/core/kernel/bug_rb.html +92 -0
  732. data/web/doc/api/core/files/lib/facets/core/kernel/cache_rb.html +92 -0
  733. data/web/doc/api/core/files/lib/facets/core/kernel/call_stack_rb.html +92 -0
  734. data/web/doc/api/core/files/lib/facets/core/kernel/called_rb.html +92 -0
  735. data/web/doc/api/core/files/lib/facets/core/kernel/complete_rb.html +92 -0
  736. data/web/doc/api/core/files/lib/facets/core/kernel/constant_rb.html +92 -0
  737. data/web/doc/api/core/files/lib/facets/core/kernel/copy_rb.html +92 -0
  738. data/web/doc/api/core/files/lib/facets/core/kernel/deep_copy_rb.html +92 -0
  739. data/web/doc/api/core/files/lib/facets/core/kernel/demo_rb.html +92 -0
  740. data/web/doc/api/core/files/lib/facets/core/kernel/eigenclass_rb.html +103 -0
  741. data/web/doc/api/core/files/lib/facets/core/kernel/false_rb.html +100 -0
  742. data/web/doc/api/core/files/lib/facets/core/kernel/fn_rb.html +92 -0
  743. data/web/doc/api/core/files/lib/facets/core/kernel/generate_method_name_rb.html +92 -0
  744. data/web/doc/api/core/files/lib/facets/core/kernel/get_by_id_rb.html +92 -0
  745. data/web/doc/api/core/files/lib/facets/core/kernel/here_rb.html +92 -0
  746. data/web/doc/api/core/files/lib/facets/core/kernel/in_rb.html +92 -0
  747. data/web/doc/api/core/files/lib/facets/core/kernel/instance_assign_rb.html +92 -0
  748. data/web/doc/api/core/files/lib/facets/core/kernel/instvar_rb.html +92 -0
  749. data/web/doc/api/core/files/lib/facets/core/kernel/is_rb.html +96 -0
  750. data/web/doc/api/core/files/lib/facets/core/kernel/maybe_rb.html +92 -0
  751. data/web/doc/api/core/files/lib/facets/core/kernel/me_rb.html +92 -0
  752. data/web/doc/api/core/files/lib/facets/core/kernel/metaclass_rb.html +92 -0
  753. data/web/doc/api/core/files/lib/facets/core/kernel/method_name_rb.html +100 -0
  754. data/web/doc/api/core/files/lib/facets/core/kernel/method_rb.html +92 -0
  755. data/web/doc/api/core/files/lib/facets/core/kernel/methodname_rb.html +92 -0
  756. data/web/doc/api/core/files/lib/facets/core/kernel/methods_rb.html +96 -0
  757. data/web/doc/api/core/files/lib/facets/core/kernel/nack_rb.html +98 -0
  758. data/web/doc/api/core/files/lib/facets/core/kernel/new_rb.html +92 -0
  759. data/web/doc/api/core/files/lib/facets/core/kernel/object_class_rb.html +92 -0
  760. data/web/doc/api/core/files/lib/facets/core/kernel/object_hexid_rb.html +92 -0
  761. data/web/doc/api/core/files/lib/facets/core/kernel/op_esc_rb.html +92 -0
  762. data/web/doc/api/core/files/lib/facets/core/kernel/own_rb.html +92 -0
  763. data/web/doc/api/core/files/lib/facets/core/kernel/p_rb.html +92 -0
  764. data/web/doc/api/core/files/lib/facets/core/kernel/pp_exception_rb.html +92 -0
  765. data/web/doc/api/core/files/lib/facets/core/kernel/require_all_rb.html +92 -0
  766. data/web/doc/api/core/files/lib/facets/core/kernel/require_esc_rb.html +96 -0
  767. data/web/doc/api/core/files/lib/facets/core/kernel/require_facet_rb.html +96 -0
  768. data/web/doc/api/core/files/lib/facets/core/kernel/require_local_rb.html +92 -0
  769. data/web/doc/api/core/files/lib/facets/core/kernel/resc_rb.html +92 -0
  770. data/web/doc/api/core/files/lib/facets/core/kernel/respond_rb.html +92 -0
  771. data/web/doc/api/core/files/lib/facets/core/kernel/returning_rb.html +92 -0
  772. data/web/doc/api/core/files/lib/facets/core/kernel/send_as_rb.html +92 -0
  773. data/web/doc/api/core/files/lib/facets/core/kernel/set_from_rb.html +96 -0
  774. data/web/doc/api/core/files/lib/facets/core/kernel/set_with_rb.html +96 -0
  775. data/web/doc/api/core/files/lib/facets/core/kernel/silence_warnings_rb.html +100 -0
  776. data/web/doc/api/core/files/lib/facets/core/kernel/silently_rb.html +92 -0
  777. data/web/doc/api/core/files/lib/facets/core/kernel/singleton_rb.html +92 -0
  778. data/web/doc/api/core/files/lib/facets/core/kernel/superior_rb.html +92 -0
  779. data/web/doc/api/core/files/lib/facets/core/kernel/supermethod_rb.html +92 -0
  780. data/web/doc/api/core/files/lib/facets/core/kernel/this_rb.html +92 -0
  781. data/web/doc/api/core/files/lib/facets/core/kernel/to_b_rb.html +92 -0
  782. data/web/doc/api/core/files/lib/facets/core/kernel/to_bool_rb.html +92 -0
  783. data/web/doc/api/core/files/lib/facets/core/kernel/true_rb.html +100 -0
  784. data/web/doc/api/core/files/lib/facets/core/kernel/unuri_rb.html +100 -0
  785. data/web/doc/api/core/files/lib/facets/core/kernel/uri_rb.html +96 -0
  786. data/web/doc/api/core/files/lib/facets/core/kernel/val_rb.html +92 -0
  787. data/web/doc/api/core/files/lib/facets/core/kernel/warn_with_line_rb.html +92 -0
  788. data/web/doc/api/core/files/lib/facets/core/kernel/with_accessor_rb.html +92 -0
  789. data/web/doc/api/core/files/lib/facets/core/kernel/with_reader_rb.html +100 -0
  790. data/web/doc/api/core/files/lib/facets/core/kernel/with_writer_rb.html +100 -0
  791. data/web/doc/api/core/files/lib/facets/core/logger/format_message_rb.html +96 -0
  792. data/web/doc/api/core/files/lib/facets/core/logger/format_rb.html +96 -0
  793. data/web/doc/api/core/files/lib/facets/core/matchdata/match_rb.html +92 -0
  794. data/web/doc/api/core/files/lib/facets/core/matchdata/matchset_rb.html +100 -0
  795. data/web/doc/api/core/files/lib/facets/core/matchdata/matchtree_rb.html +92 -0
  796. data/web/doc/api/core/files/lib/facets/core/module/abstract_rb.html +105 -0
  797. data/web/doc/api/core/files/lib/facets/core/module/alias_module_function_rb.html +92 -0
  798. data/web/doc/api/core/files/lib/facets/core/module/ancestor_rb.html +92 -0
  799. data/web/doc/api/core/files/lib/facets/core/module/attr_query_rb.html +96 -0
  800. data/web/doc/api/core/files/lib/facets/core/module/attr_rb.html +92 -0
  801. data/web/doc/api/core/files/lib/facets/core/module/attr_setter_rb.html +92 -0
  802. data/web/doc/api/core/files/lib/facets/core/module/attr_tester_rb.html +96 -0
  803. data/web/doc/api/core/files/lib/facets/core/module/attr_validator_rb.html +92 -0
  804. data/web/doc/api/core/files/lib/facets/core/module/basename_rb.html +92 -0
  805. data/web/doc/api/core/files/lib/facets/core/module/by_name_rb.html +96 -0
  806. data/web/doc/api/core/files/lib/facets/core/module/class_rb.html +92 -0
  807. data/web/doc/api/core/files/lib/facets/core/module/clone_removing_rb.html +100 -0
  808. data/web/doc/api/core/files/lib/facets/core/module/clone_renaming_rb.html +100 -0
  809. data/web/doc/api/core/files/lib/facets/core/module/clone_using_rb.html +92 -0
  810. data/web/doc/api/core/files/lib/facets/core/module/dirname_rb.html +92 -0
  811. data/web/doc/api/core/files/lib/facets/core/module/equate_on_rb.html +92 -0
  812. data/web/doc/api/core/files/lib/facets/core/module/generate_instance_method_name_rb.html +92 -0
  813. data/web/doc/api/core/files/lib/facets/core/module/include_as_rb.html +96 -0
  814. data/web/doc/api/core/files/lib/facets/core/module/inherit_rb.html +96 -0
  815. data/web/doc/api/core/files/lib/facets/core/module/initializer_rb.html +92 -0
  816. data/web/doc/api/core/files/lib/facets/core/module/instance_methods_rb.html +96 -0
  817. data/web/doc/api/core/files/lib/facets/core/module/integrate_rb.html +104 -0
  818. data/web/doc/api/core/files/lib/facets/core/module/is_rb.html +96 -0
  819. data/web/doc/api/core/files/lib/facets/core/module/memoize_rb.html +92 -0
  820. data/web/doc/api/core/files/lib/facets/core/module/modspace_rb.html +97 -0
  821. data/web/doc/api/core/files/lib/facets/core/module/namespace_rb.html +96 -0
  822. data/web/doc/api/core/files/lib/facets/core/module/nesting_rb.html +92 -0
  823. data/web/doc/api/core/files/lib/facets/core/module/nodef_rb.html +92 -0
  824. data/web/doc/api/core/files/lib/facets/core/module/on_included_rb.html +92 -0
  825. data/web/doc/api/core/files/lib/facets/core/module/redef_rb.html +96 -0
  826. data/web/doc/api/core/files/lib/facets/core/module/redefine_method_rb.html +92 -0
  827. data/web/doc/api/core/files/lib/facets/core/module/redirect_method_rb.html +92 -0
  828. data/web/doc/api/core/files/lib/facets/core/module/redirect_rb.html +96 -0
  829. data/web/doc/api/core/files/lib/facets/core/module/remove_rb.html +92 -0
  830. data/web/doc/api/core/files/lib/facets/core/module/rename_method_rb.html +92 -0
  831. data/web/doc/api/core/files/lib/facets/core/module/rename_rb.html +96 -0
  832. data/web/doc/api/core/files/lib/facets/core/module/revisal_rb.html +100 -0
  833. data/web/doc/api/core/files/lib/facets/core/module/shadow_all_rb.html +96 -0
  834. data/web/doc/api/core/files/lib/facets/core/module/shadow_method_rb.html +92 -0
  835. data/web/doc/api/core/files/lib/facets/core/module/singleton_to_module_rb.html +92 -0
  836. data/web/doc/api/core/files/lib/facets/core/module/sort_on_rb.html +92 -0
  837. data/web/doc/api/core/files/lib/facets/core/module/this_rb.html +96 -0
  838. data/web/doc/api/core/files/lib/facets/core/module/wrap_method_rb.html +92 -0
  839. data/web/doc/api/core/files/lib/facets/core/module/wrap_rb.html +96 -0
  840. data/web/doc/api/core/files/lib/facets/core/nil_as_emptiness_rb.html +116 -0
  841. data/web/doc/api/core/files/lib/facets/core/nilclass/blank_rb.html +92 -0
  842. data/web/doc/api/core/files/lib/facets/core/nilclass/empty_rb.html +92 -0
  843. data/web/doc/api/core/files/lib/facets/core/nilclass/include_rb.html +92 -0
  844. data/web/doc/api/core/files/lib/facets/core/nilclass/length_rb.html +100 -0
  845. data/web/doc/api/core/files/lib/facets/core/nilclass/op_cmp_rb.html +92 -0
  846. data/web/doc/api/core/files/lib/facets/core/nilclass/op_fetch_rb.html +92 -0
  847. data/web/doc/api/core/files/lib/facets/core/nilclass/size_rb.html +92 -0
  848. data/web/doc/api/core/files/lib/facets/core/nilclass/succ_rb.html +92 -0
  849. data/web/doc/api/core/files/lib/facets/core/nilclass/to_h_rb.html +92 -0
  850. data/web/doc/api/core/files/lib/facets/core/numeric/approx_rb.html +92 -0
  851. data/web/doc/api/core/files/lib/facets/core/numeric/ceil_multiple_rb.html +92 -0
  852. data/web/doc/api/core/files/lib/facets/core/numeric/pred_rb.html +100 -0
  853. data/web/doc/api/core/files/lib/facets/core/numeric/succ_rb.html +92 -0
  854. data/web/doc/api/core/files/lib/facets/core/numeric/to_b_rb.html +92 -0
  855. data/web/doc/api/core/files/lib/facets/core/ostruct/__merge___rb.html +97 -0
  856. data/web/doc/api/core/files/lib/facets/core/ostruct/__table___rb.html +92 -0
  857. data/web/doc/api/core/files/lib/facets/core/ostruct/__update___rb.html +98 -0
  858. data/web/doc/api/core/files/lib/facets/core/ostruct/instance_rb.html +96 -0
  859. data/web/doc/api/core/files/lib/facets/core/ostruct/op_fetch_rb.html +96 -0
  860. data/web/doc/api/core/files/lib/facets/core/ostruct/op_store_rb.html +96 -0
  861. data/web/doc/api/core/files/lib/facets/core/ostruct/to_h_rb.html +92 -0
  862. data/web/doc/api/core/files/lib/facets/core/ostruct_rb.html +102 -0
  863. data/web/doc/api/core/files/lib/facets/core/pathname/ascend_rb.html +96 -0
  864. data/web/doc/api/core/files/lib/facets/core/pathname/descend_rb.html +96 -0
  865. data/web/doc/api/core/files/lib/facets/core/proc/compose_rb.html +92 -0
  866. data/web/doc/api/core/files/lib/facets/core/proc/op_mul_rb.html +100 -0
  867. data/web/doc/api/core/files/lib/facets/core/proc/to_method_rb.html +133 -0
  868. data/web/doc/api/core/files/lib/facets/core/random_rb.html +111 -0
  869. data/web/doc/api/core/files/lib/facets/core/range/to_r_rb.html +92 -0
  870. data/web/doc/api/core/files/lib/facets/core/range/to_range_rb.html +92 -0
  871. data/web/doc/api/core/files/lib/facets/core/range/umbrella_rb.html +92 -0
  872. data/web/doc/api/core/files/lib/facets/core/range/within_rb.html +96 -0
  873. data/web/doc/api/core/files/lib/facets/core/regexp/arity_rb.html +92 -0
  874. data/web/doc/api/core/files/lib/facets/core/regexp/to_re_rb.html +92 -0
  875. data/web/doc/api/core/files/lib/facets/core/regexp/to_regexp_rb.html +92 -0
  876. data/web/doc/api/core/files/lib/facets/core/string/align_center_rb.html +92 -0
  877. data/web/doc/api/core/files/lib/facets/core/string/align_left_rb.html +100 -0
  878. data/web/doc/api/core/files/lib/facets/core/string/align_right_rb.html +100 -0
  879. data/web/doc/api/core/files/lib/facets/core/string/at_rand_rb.html +98 -0
  880. data/web/doc/api/core/files/lib/facets/core/string/at_rb.html +92 -0
  881. data/web/doc/api/core/files/lib/facets/core/string/basename_rb.html +92 -0
  882. data/web/doc/api/core/files/lib/facets/core/string/blank_rb.html +92 -0
  883. data/web/doc/api/core/files/lib/facets/core/string/bracket_rb.html +92 -0
  884. data/web/doc/api/core/files/lib/facets/core/string/brief_rb.html +92 -0
  885. data/web/doc/api/core/files/lib/facets/core/string/bytes_rb.html +92 -0
  886. data/web/doc/api/core/files/lib/facets/core/string/camelcase_rb.html +92 -0
  887. data/web/doc/api/core/files/lib/facets/core/string/camelize_rb.html +92 -0
  888. data/web/doc/api/core/files/lib/facets/core/string/capitalized_rb.html +92 -0
  889. data/web/doc/api/core/files/lib/facets/core/string/chars_rb.html +92 -0
  890. data/web/doc/api/core/files/lib/facets/core/string/cmp_rb.html +92 -0
  891. data/web/doc/api/core/files/lib/facets/core/string/demodulize_rb.html +96 -0
  892. data/web/doc/api/core/files/lib/facets/core/string/dequote_rb.html +92 -0
  893. data/web/doc/api/core/files/lib/facets/core/string/downcase_rb.html +92 -0
  894. data/web/doc/api/core/files/lib/facets/core/string/dresner_rb.html +92 -0
  895. data/web/doc/api/core/files/lib/facets/core/string/each_char_rb.html +92 -0
  896. data/web/doc/api/core/files/lib/facets/core/string/each_word_rb.html +92 -0
  897. data/web/doc/api/core/files/lib/facets/core/string/ends_with_rb.html +100 -0
  898. data/web/doc/api/core/files/lib/facets/core/string/first_char_rb.html +96 -0
  899. data/web/doc/api/core/files/lib/facets/core/string/first_rb.html +98 -0
  900. data/web/doc/api/core/files/lib/facets/core/string/fold_rb.html +92 -0
  901. data/web/doc/api/core/files/lib/facets/core/string/format_rb.html +96 -0
  902. data/web/doc/api/core/files/lib/facets/core/string/frequency_rb.html +97 -0
  903. data/web/doc/api/core/files/lib/facets/core/string/humanize_rb.html +92 -0
  904. data/web/doc/api/core/files/lib/facets/core/string/indent_rb.html +92 -0
  905. data/web/doc/api/core/files/lib/facets/core/string/index_all_rb.html +92 -0
  906. data/web/doc/api/core/files/lib/facets/core/string/last_char_rb.html +96 -0
  907. data/web/doc/api/core/files/lib/facets/core/string/last_rb.html +98 -0
  908. data/web/doc/api/core/files/lib/facets/core/string/line_wrap_rb.html +92 -0
  909. data/web/doc/api/core/files/lib/facets/core/string/lines_rb.html +92 -0
  910. data/web/doc/api/core/files/lib/facets/core/string/lowercase_rb.html +96 -0
  911. data/web/doc/api/core/files/lib/facets/core/string/margin_rb.html +92 -0
  912. data/web/doc/api/core/files/lib/facets/core/string/methodize_rb.html +92 -0
  913. data/web/doc/api/core/files/lib/facets/core/string/modulize_rb.html +92 -0
  914. data/web/doc/api/core/files/lib/facets/core/string/mscan_rb.html +92 -0
  915. data/web/doc/api/core/files/lib/facets/core/string/natcmp_rb.html +92 -0
  916. data/web/doc/api/core/files/lib/facets/core/string/nchar_rb.html +92 -0
  917. data/web/doc/api/core/files/lib/facets/core/string/ordinal_rb.html +96 -0
  918. data/web/doc/api/core/files/lib/facets/core/string/pathize_rb.html +92 -0
  919. data/web/doc/api/core/files/lib/facets/core/string/plural_rb.html +100 -0
  920. data/web/doc/api/core/files/lib/facets/core/string/pop_rb.html +92 -0
  921. data/web/doc/api/core/files/lib/facets/core/string/pot_rb.html +92 -0
  922. data/web/doc/api/core/files/lib/facets/core/string/probability_rb.html +97 -0
  923. data/web/doc/api/core/files/lib/facets/core/string/pull_rb.html +92 -0
  924. data/web/doc/api/core/files/lib/facets/core/string/push_rb.html +92 -0
  925. data/web/doc/api/core/files/lib/facets/core/string/quote_rb.html +96 -0
  926. data/web/doc/api/core/files/lib/facets/core/string/rand_byte_rb.html +92 -0
  927. data/web/doc/api/core/files/lib/facets/core/string/rand_index_rb.html +92 -0
  928. data/web/doc/api/core/files/lib/facets/core/string/range_all_rb.html +96 -0
  929. data/web/doc/api/core/files/lib/facets/core/string/range_of_line_rb.html +92 -0
  930. data/web/doc/api/core/files/lib/facets/core/string/range_rb.html +92 -0
  931. data/web/doc/api/core/files/lib/facets/core/string/regesc_rb.html +92 -0
  932. data/web/doc/api/core/files/lib/facets/core/string/self/format_rb.html +92 -0
  933. data/web/doc/api/core/files/lib/facets/core/string/self/interpolate_rb.html +92 -0
  934. data/web/doc/api/core/files/lib/facets/core/string/self/patterns_rb.html +92 -0
  935. data/web/doc/api/core/files/lib/facets/core/string/self/rand_letter_rb.html +92 -0
  936. data/web/doc/api/core/files/lib/facets/core/string/self/random_rb.html +99 -0
  937. data/web/doc/api/core/files/lib/facets/core/string/shatter_rb.html +92 -0
  938. data/web/doc/api/core/files/lib/facets/core/string/shell_escape_rb.html +92 -0
  939. data/web/doc/api/core/files/lib/facets/core/string/shift_rb.html +92 -0
  940. data/web/doc/api/core/files/lib/facets/core/string/shuffle_rb.html +96 -0
  941. data/web/doc/api/core/files/lib/facets/core/string/similarity_rb.html +92 -0
  942. data/web/doc/api/core/files/lib/facets/core/string/singular_rb.html +92 -0
  943. data/web/doc/api/core/files/lib/facets/core/string/soundex_rb.html +92 -0
  944. data/web/doc/api/core/files/lib/facets/core/string/starts_with_rb.html +92 -0
  945. data/web/doc/api/core/files/lib/facets/core/string/succ_rb.html +92 -0
  946. data/web/doc/api/core/files/lib/facets/core/string/tab_rb.html +100 -0
  947. data/web/doc/api/core/files/lib/facets/core/string/tabto_rb.html +100 -0
  948. data/web/doc/api/core/files/lib/facets/core/string/to_a_rb.html +92 -0
  949. data/web/doc/api/core/files/lib/facets/core/string/to_b_rb.html +92 -0
  950. data/web/doc/api/core/files/lib/facets/core/string/to_const_rb.html +92 -0
  951. data/web/doc/api/core/files/lib/facets/core/string/to_date_rb.html +97 -0
  952. data/web/doc/api/core/files/lib/facets/core/string/to_proc_rb.html +92 -0
  953. data/web/doc/api/core/files/lib/facets/core/string/to_re_rb.html +92 -0
  954. data/web/doc/api/core/files/lib/facets/core/string/to_rx_rb.html +100 -0
  955. data/web/doc/api/core/files/lib/facets/core/string/to_time_rb.html +96 -0
  956. data/web/doc/api/core/files/lib/facets/core/string/unbracket_rb.html +96 -0
  957. data/web/doc/api/core/files/lib/facets/core/string/underscore_rb.html +92 -0
  958. data/web/doc/api/core/files/lib/facets/core/string/unix_crypt_rb.html +96 -0
  959. data/web/doc/api/core/files/lib/facets/core/string/unpack_rb.html +92 -0
  960. data/web/doc/api/core/files/lib/facets/core/string/unshift_rb.html +92 -0
  961. data/web/doc/api/core/files/lib/facets/core/string/upcase_rb.html +92 -0
  962. data/web/doc/api/core/files/lib/facets/core/string/uppercase_rb.html +100 -0
  963. data/web/doc/api/core/files/lib/facets/core/string/whitespace_rb.html +96 -0
  964. data/web/doc/api/core/files/lib/facets/core/string/word_filter_rb.html +92 -0
  965. data/web/doc/api/core/files/lib/facets/core/string/word_wrap_rb.html +92 -0
  966. data/web/doc/api/core/files/lib/facets/core/string/words_rb.html +92 -0
  967. data/web/doc/api/core/files/lib/facets/core/string_as_array_rb.html +109 -0
  968. data/web/doc/api/core/files/lib/facets/core/symbol/camelcase_rb.html +96 -0
  969. data/web/doc/api/core/files/lib/facets/core/symbol/camelize_rb.html +96 -0
  970. data/web/doc/api/core/files/lib/facets/core/symbol/capitalize_rb.html +96 -0
  971. data/web/doc/api/core/files/lib/facets/core/symbol/capitalized_rb.html +97 -0
  972. data/web/doc/api/core/files/lib/facets/core/symbol/downcase_rb.html +96 -0
  973. data/web/doc/api/core/files/lib/facets/core/symbol/not_rb.html +92 -0
  974. data/web/doc/api/core/files/lib/facets/core/symbol/pad_rb.html +92 -0
  975. data/web/doc/api/core/files/lib/facets/core/symbol/succ_rb.html +92 -0
  976. data/web/doc/api/core/files/lib/facets/core/symbol/to_const_rb.html +96 -0
  977. data/web/doc/api/core/files/lib/facets/core/symbol/to_proc_rb.html +92 -0
  978. data/web/doc/api/core/files/lib/facets/core/symbol/to_str_rb.html +92 -0
  979. data/web/doc/api/core/files/lib/facets/core/symbol/underscore_rb.html +96 -0
  980. data/web/doc/api/core/files/lib/facets/core/symbol/upcase_rb.html +96 -0
  981. data/web/doc/api/core/files/lib/facets/core/time/change_rb.html +92 -0
  982. data/web/doc/api/core/files/lib/facets/core/time/elapse_rb.html +92 -0
  983. data/web/doc/api/core/files/lib/facets/core/time/self/days_extrema_rb.html +114 -0
  984. data/web/doc/api/core/files/lib/facets/core/time/self/stamp_rb.html +100 -0
  985. data/web/doc/api/core/files/lib/facets/core/time/stamp_rb.html +92 -0
  986. data/web/doc/api/core/files/lib/facets/core/time/to_date_rb.html +96 -0
  987. data/web/doc/api/core/files/lib/facets/core/time/to_s_rb.html +96 -0
  988. data/web/doc/api/core/files/lib/facets/core/time/to_time_rb.html +92 -0
  989. data/web/doc/api/core/files/lib/facets/core/unboundmethod/name_rb.html +92 -0
  990. data/web/doc/api/core/fr_class_index.html +80 -0
  991. data/web/doc/api/core/fr_file_index.html +521 -0
  992. data/web/doc/api/core/fr_method_index.html +555 -0
  993. data/web/doc/api/core/index.html +26 -0
  994. data/web/doc/api/core/rdoc-style.css +175 -0
  995. data/web/doc/api/more/classes/Annotation.html +258 -0
  996. data/web/doc/api/more/classes/Array.html +362 -0
  997. data/web/doc/api/more/classes/Aspect.html +159 -0
  998. data/web/doc/api/more/classes/Aspects.html +240 -0
  999. data/web/doc/api/more/classes/Aspects/ClassMethods.html +254 -0
  1000. data/web/doc/api/more/classes/Association.html +289 -0
  1001. data/web/doc/api/more/classes/BBCode.html +531 -0
  1002. data/web/doc/api/more/classes/BasicObject.html +260 -0
  1003. data/web/doc/api/more/classes/BasicObject/Self.html +142 -0
  1004. data/web/doc/api/more/classes/BinaryReader.html +535 -0
  1005. data/web/doc/api/more/classes/BinaryReader/ByteOrder.html +225 -0
  1006. data/web/doc/api/more/classes/BuilderObject.html +248 -0
  1007. data/web/doc/api/more/classes/Class.html +201 -0
  1008. data/web/doc/api/more/classes/Client.html +1251 -0
  1009. data/web/doc/api/more/classes/Cloneable.html +133 -0
  1010. data/web/doc/api/more/classes/Console.html +105 -0
  1011. data/web/doc/api/more/classes/Console/ANSICode.html +488 -0
  1012. data/web/doc/api/more/classes/Console/Command.html +275 -0
  1013. data/web/doc/api/more/classes/Console/ProgressBar.html +640 -0
  1014. data/web/doc/api/more/classes/Coroutine.html +284 -0
  1015. data/web/doc/api/more/classes/Crypt.html +270 -0
  1016. data/web/doc/api/more/classes/DebugSocket.html +242 -0
  1017. data/web/doc/api/more/classes/Dictionary.html +974 -0
  1018. data/web/doc/api/more/classes/Downloader.html +515 -0
  1019. data/web/doc/api/more/classes/Downloader/Checksum.html +96 -0
  1020. data/web/doc/api/more/classes/Downloader/Mirror.html +134 -0
  1021. data/web/doc/api/more/classes/Elementor.html +202 -0
  1022. data/web/doc/api/more/classes/Enumerable.html +86 -0
  1023. data/web/doc/api/more/classes/EnumerablePass.html +217 -0
  1024. data/web/doc/api/more/classes/Expirable.html +197 -0
  1025. data/web/doc/api/more/classes/FalseClass.html +119 -0
  1026. data/web/doc/api/more/classes/FileList.html +971 -0
  1027. data/web/doc/api/more/classes/Float.html +140 -0
  1028. data/web/doc/api/more/classes/FloatString.html +413 -0
  1029. data/web/doc/api/more/classes/Functor.html +203 -0
  1030. data/web/doc/api/more/classes/HTMLBuilder.html +132 -0
  1031. data/web/doc/api/more/classes/HTMLHelper.html +189 -0
  1032. data/web/doc/api/more/classes/HTTP.html +154 -0
  1033. data/web/doc/api/more/classes/HTTP/BadResponseError.html +94 -0
  1034. data/web/doc/api/more/classes/HTTP/Error.html +96 -0
  1035. data/web/doc/api/more/classes/HTTP/Message.html +633 -0
  1036. data/web/doc/api/more/classes/HTTP/Message/Body.html +299 -0
  1037. data/web/doc/api/more/classes/HTTP/Message/Headers.html +641 -0
  1038. data/web/doc/api/more/classes/HTTP/Status.html +148 -0
  1039. data/web/doc/api/more/classes/HTTPAccess.html +115 -0
  1040. data/web/doc/api/more/classes/Hash.html +257 -0
  1041. data/web/doc/api/more/classes/HashBuilder.html +216 -0
  1042. data/web/doc/api/more/classes/Heap.html +535 -0
  1043. data/web/doc/api/more/classes/Heap/EmptyHeapException.html +92 -0
  1044. data/web/doc/api/more/classes/Heap/Max.html +133 -0
  1045. data/web/doc/api/more/classes/Heap/Min.html +133 -0
  1046. data/web/doc/api/more/classes/IORedirect.html +225 -0
  1047. data/web/doc/api/more/classes/Integer.html +298 -0
  1048. data/web/doc/api/more/classes/Interval.html +853 -0
  1049. data/web/doc/api/more/classes/InvalidNackError.html +117 -0
  1050. data/web/doc/api/more/classes/JSON.html +410 -0
  1051. data/web/doc/api/more/classes/JSON/Parser.html +374 -0
  1052. data/web/doc/api/more/classes/JSON/State.html +280 -0
  1053. data/web/doc/api/more/classes/Kernel.html +400 -0
  1054. data/web/doc/api/more/classes/LRUCache.html +461 -0
  1055. data/web/doc/api/more/classes/LRUCache/Item.html +114 -0
  1056. data/web/doc/api/more/classes/LRUCache/Sentinel.html +102 -0
  1057. data/web/doc/api/more/classes/Lazy.html +96 -0
  1058. data/web/doc/api/more/classes/Lazy/Future.html +100 -0
  1059. data/web/doc/api/more/classes/Lazy/Promise.html +114 -0
  1060. data/web/doc/api/more/classes/Lazy/PromiseSafe.html +99 -0
  1061. data/web/doc/api/more/classes/Lisp.html +846 -0
  1062. data/web/doc/api/more/classes/Lisp/DottedPair.html +289 -0
  1063. data/web/doc/api/more/classes/Lisp/Format.html +147 -0
  1064. data/web/doc/api/more/classes/Math.html +110 -0
  1065. data/web/doc/api/more/classes/Math/Constants.html +691 -0
  1066. data/web/doc/api/more/classes/Math/Constants/CGS.html +584 -0
  1067. data/web/doc/api/more/classes/Method.html +170 -0
  1068. data/web/doc/api/more/classes/Method/Probe.html +267 -0
  1069. data/web/doc/api/more/classes/Mock.html +276 -0
  1070. data/web/doc/api/more/classes/Module.html +691 -0
  1071. data/web/doc/api/more/classes/Multiton.html +256 -0
  1072. data/web/doc/api/more/classes/NackClass.html +245 -0
  1073. data/web/doc/api/more/classes/NilClass.html +238 -0
  1074. data/web/doc/api/more/classes/NullClass.html +202 -0
  1075. data/web/doc/api/more/classes/Numeric.html +1104 -0
  1076. data/web/doc/api/more/classes/ORMSupport.html +357 -0
  1077. data/web/doc/api/more/classes/Object.html +323 -0
  1078. data/web/doc/api/more/classes/OpenCascade.html +230 -0
  1079. data/web/doc/api/more/classes/OpenObject.html +552 -0
  1080. data/web/doc/api/more/classes/PQueue.html +471 -0
  1081. data/web/doc/api/more/classes/PathList.html +162 -0
  1082. data/web/doc/api/more/classes/PathList/Finder.html +137 -0
  1083. data/web/doc/api/more/classes/Pool.html +207 -0
  1084. data/web/doc/api/more/classes/Proc.html +140 -0
  1085. data/web/doc/api/more/classes/PromoteSelf.html +138 -0
  1086. data/web/doc/api/more/classes/Quaternion.html +1497 -0
  1087. data/web/doc/api/more/classes/REXMLBuilder.html +357 -0
  1088. data/web/doc/api/more/classes/REXMLBuilder/REXMLUtil.html +396 -0
  1089. data/web/doc/api/more/classes/Recorder.html +208 -0
  1090. data/web/doc/api/more/classes/Reference.html +201 -0
  1091. data/web/doc/api/more/classes/RubyOneLiners.html +139 -0
  1092. data/web/doc/api/more/classes/RubyTals.html +316 -0
  1093. data/web/doc/api/more/classes/SSLSocketWrap.html +410 -0
  1094. data/web/doc/api/more/classes/Semaphore.html +264 -0
  1095. data/web/doc/api/more/classes/SimpleStringIO.html +139 -0
  1096. data/web/doc/api/more/classes/Snapshot.html +191 -0
  1097. data/web/doc/api/more/classes/StateMachine.html +248 -0
  1098. data/web/doc/api/more/classes/StateParser.html +276 -0
  1099. data/web/doc/api/more/classes/StateParser/Constants.html +109 -0
  1100. data/web/doc/api/more/classes/StateParser/Marker.html +269 -0
  1101. data/web/doc/api/more/classes/StateParser/State.html +448 -0
  1102. data/web/doc/api/more/classes/StaticHash.html +144 -0
  1103. data/web/doc/api/more/classes/String.html +278 -0
  1104. data/web/doc/api/more/classes/StringIO.html +123 -0
  1105. data/web/doc/api/more/classes/Struct.html +134 -0
  1106. data/web/doc/api/more/classes/Symbol.html +116 -0
  1107. data/web/doc/api/more/classes/SyncArray.html +131 -0
  1108. data/web/doc/api/more/classes/SyncHash.html +135 -0
  1109. data/web/doc/api/more/classes/SyncHash/Delegator.html +213 -0
  1110. data/web/doc/api/more/classes/SyncHash/Inheritor.html +213 -0
  1111. data/web/doc/api/more/classes/System.html +1055 -0
  1112. data/web/doc/api/more/classes/TSort.html +123 -0
  1113. data/web/doc/api/more/classes/TagIterator.html +706 -0
  1114. data/web/doc/api/more/classes/Task.html +237 -0
  1115. data/web/doc/api/more/classes/Task/Graph.html +165 -0
  1116. data/web/doc/api/more/classes/Taskable.html +300 -0
  1117. data/web/doc/api/more/classes/Time.html +746 -0
  1118. data/web/doc/api/more/classes/Timer.html +471 -0
  1119. data/web/doc/api/more/classes/Timer/Dummy.html +141 -0
  1120. data/web/doc/api/more/classes/TracePoint.html +453 -0
  1121. data/web/doc/api/more/classes/TrueClass.html +118 -0
  1122. data/web/doc/api/more/classes/Tuple.html +861 -0
  1123. data/web/doc/api/more/classes/URI.html +107 -0
  1124. data/web/doc/api/more/classes/Uninheritable.html +130 -0
  1125. data/web/doc/api/more/classes/Units.html +191 -0
  1126. data/web/doc/api/more/classes/Units/Config.html +120 -0
  1127. data/web/doc/api/more/classes/Units/Converter.html +808 -0
  1128. data/web/doc/api/more/classes/Units/Converter/ExchangeRate.html +155 -0
  1129. data/web/doc/api/more/classes/Units/Converter/ExchangeRate/CachedXMethods.html +143 -0
  1130. data/web/doc/api/more/classes/Units/Converter/ExchangeRate/XMethods.html +197 -0
  1131. data/web/doc/api/more/classes/Units/Unit.html +434 -0
  1132. data/web/doc/api/more/classes/Units/Value.html +331 -0
  1133. data/web/doc/api/more/classes/ValueHolder.html +167 -0
  1134. data/web/doc/api/more/classes/WebAgent.html +103 -0
  1135. data/web/doc/api/more/classes/WebAgent/Cookie.html +513 -0
  1136. data/web/doc/api/more/classes/WebAgent/CookieManager.html +515 -0
  1137. data/web/doc/api/more/classes/WebAgent/CookieManager/Error.html +96 -0
  1138. data/web/doc/api/more/classes/WebAgent/CookieManager/ErrorOverrideOK.html +94 -0
  1139. data/web/doc/api/more/classes/WebAgent/CookieManager/NoDotError.html +94 -0
  1140. data/web/doc/api/more/classes/WebAgent/CookieManager/SpecialError.html +94 -0
  1141. data/web/doc/api/more/classes/WebAgent/CookieUtils.html +171 -0
  1142. data/web/doc/api/more/classes/XMLBuilder.html +132 -0
  1143. data/web/doc/api/more/classes/XMLHelper.html +428 -0
  1144. data/web/doc/api/more/classes/XOXO.html +252 -0
  1145. data/web/doc/api/more/classes/YAMLStruct.html +166 -0
  1146. data/web/doc/api/more/created.rid +1 -0
  1147. data/web/doc/api/more/files/AUTHORS.html +206 -0
  1148. data/web/doc/api/more/files/COPYING.html +517 -0
  1149. data/web/doc/api/more/files/README.html +389 -0
  1150. data/web/doc/api/more/files/WARNING.html +151 -0
  1151. data/web/doc/api/more/files/lib/facets/more/annattr_rb.html +115 -0
  1152. data/web/doc/api/more/files/lib/facets/more/annotation_rb.html +118 -0
  1153. data/web/doc/api/more/files/lib/facets/more/ansicode_rb.html +128 -0
  1154. data/web/doc/api/more/files/lib/facets/more/aspects_rb.html +115 -0
  1155. data/web/doc/api/more/files/lib/facets/more/association_rb.html +111 -0
  1156. data/web/doc/api/more/files/lib/facets/more/basicobject_rb.html +129 -0
  1157. data/web/doc/api/more/files/lib/facets/more/bbcode_rb.html +111 -0
  1158. data/web/doc/api/more/files/lib/facets/more/binaryreader_rb.html +111 -0
  1159. data/web/doc/api/more/files/lib/facets/more/bitmask_rb.html +111 -0
  1160. data/web/doc/api/more/files/lib/facets/more/blankslate_rb.html +113 -0
  1161. data/web/doc/api/more/files/lib/facets/more/builderobject_rb.html +115 -0
  1162. data/web/doc/api/more/files/lib/facets/more/bytes_rb.html +131 -0
  1163. data/web/doc/api/more/files/lib/facets/more/classinherit_rb.html +111 -0
  1164. data/web/doc/api/more/files/lib/facets/more/classmethods_rb.html +121 -0
  1165. data/web/doc/api/more/files/lib/facets/more/cloneable_rb.html +132 -0
  1166. data/web/doc/api/more/files/lib/facets/more/consoleapp_rb.html +131 -0
  1167. data/web/doc/api/more/files/lib/facets/more/cookie_rb.html +133 -0
  1168. data/web/doc/api/more/files/lib/facets/more/coroutine_rb.html +111 -0
  1169. data/web/doc/api/more/files/lib/facets/more/crypt_rb.html +146 -0
  1170. data/web/doc/api/more/files/lib/facets/more/dictionary_rb.html +123 -0
  1171. data/web/doc/api/more/files/lib/facets/more/downloader_rb.html +124 -0
  1172. data/web/doc/api/more/files/lib/facets/more/elementor_rb.html +115 -0
  1173. data/web/doc/api/more/files/lib/facets/more/enumerablepass_rb.html +115 -0
  1174. data/web/doc/api/more/files/lib/facets/more/expirable_rb.html +111 -0
  1175. data/web/doc/api/more/files/lib/facets/more/filelist_rb.html +128 -0
  1176. data/web/doc/api/more/files/lib/facets/more/floatstring_rb.html +115 -0
  1177. data/web/doc/api/more/files/lib/facets/more/functor_rb.html +115 -0
  1178. data/web/doc/api/more/files/lib/facets/more/hashbuilder_rb.html +115 -0
  1179. data/web/doc/api/more/files/lib/facets/more/heap_rb.html +131 -0
  1180. data/web/doc/api/more/files/lib/facets/more/htmlbuilder_rb.html +116 -0
  1181. data/web/doc/api/more/files/lib/facets/more/htmlhelper_rb.html +119 -0
  1182. data/web/doc/api/more/files/lib/facets/more/http_rb.html +116 -0
  1183. data/web/doc/api/more/files/lib/facets/more/httpaccess_rb.html +137 -0
  1184. data/web/doc/api/more/files/lib/facets/more/inheritor_rb.html +115 -0
  1185. data/web/doc/api/more/files/lib/facets/more/interval_rb.html +120 -0
  1186. data/web/doc/api/more/files/lib/facets/more/ioredirect_rb.html +116 -0
  1187. data/web/doc/api/more/files/lib/facets/more/json_rb.html +141 -0
  1188. data/web/doc/api/more/files/lib/facets/more/lazy_rb.html +111 -0
  1189. data/web/doc/api/more/files/lib/facets/more/lisp_format_rb.html +129 -0
  1190. data/web/doc/api/more/files/lib/facets/more/lisp_rb.html +119 -0
  1191. data/web/doc/api/more/files/lib/facets/more/lrucache_rb.html +111 -0
  1192. data/web/doc/api/more/files/lib/facets/more/mathconstants_rb.html +121 -0
  1193. data/web/doc/api/more/files/lib/facets/more/methodprobe_rb.html +111 -0
  1194. data/web/doc/api/more/files/lib/facets/more/mock_rb.html +208 -0
  1195. data/web/doc/api/more/files/lib/facets/more/multipliers_rb.html +115 -0
  1196. data/web/doc/api/more/files/lib/facets/more/multiton_rb.html +114 -0
  1197. data/web/doc/api/more/files/lib/facets/more/nackclass_rb.html +151 -0
  1198. data/web/doc/api/more/files/lib/facets/more/nilcomparable_rb.html +118 -0
  1199. data/web/doc/api/more/files/lib/facets/more/nullclass_rb.html +111 -0
  1200. data/web/doc/api/more/files/lib/facets/more/one_rb.html +158 -0
  1201. data/web/doc/api/more/files/lib/facets/more/opencascade_rb.html +129 -0
  1202. data/web/doc/api/more/files/lib/facets/more/openobject_rb.html +120 -0
  1203. data/web/doc/api/more/files/lib/facets/more/orderedhash_rb.html +113 -0
  1204. data/web/doc/api/more/files/lib/facets/more/ormsupport_rb.html +125 -0
  1205. data/web/doc/api/more/files/lib/facets/more/overload_rb.html +111 -0
  1206. data/web/doc/api/more/files/lib/facets/more/paramix_rb.html +118 -0
  1207. data/web/doc/api/more/files/lib/facets/more/pathlist_rb.html +111 -0
  1208. data/web/doc/api/more/files/lib/facets/more/pool_rb.html +120 -0
  1209. data/web/doc/api/more/files/lib/facets/more/pqueue_rb.html +122 -0
  1210. data/web/doc/api/more/files/lib/facets/more/preinitialize_rb.html +115 -0
  1211. data/web/doc/api/more/files/lib/facets/more/progressbar_rb.html +111 -0
  1212. data/web/doc/api/more/files/lib/facets/more/promoteself_rb.html +111 -0
  1213. data/web/doc/api/more/files/lib/facets/more/quaternion_rb.html +150 -0
  1214. data/web/doc/api/more/files/lib/facets/more/recorder_rb.html +115 -0
  1215. data/web/doc/api/more/files/lib/facets/more/reference_rb.html +115 -0
  1216. data/web/doc/api/more/files/lib/facets/more/rexmlbuilder_rb.html +116 -0
  1217. data/web/doc/api/more/files/lib/facets/more/rtals_rb.html +115 -0
  1218. data/web/doc/api/more/files/lib/facets/more/semaphore_rb.html +111 -0
  1219. data/web/doc/api/more/files/lib/facets/more/snapshot_rb.html +121 -0
  1220. data/web/doc/api/more/files/lib/facets/more/stateparser_rb.html +115 -0
  1221. data/web/doc/api/more/files/lib/facets/more/statichash_rb.html +133 -0
  1222. data/web/doc/api/more/files/lib/facets/more/syncarray_rb.html +115 -0
  1223. data/web/doc/api/more/files/lib/facets/more/synchash_rb.html +115 -0
  1224. data/web/doc/api/more/files/lib/facets/more/system_rb.html +123 -0
  1225. data/web/doc/api/more/files/lib/facets/more/tagiterator_rb.html +111 -0
  1226. data/web/doc/api/more/files/lib/facets/more/taskable_rb.html +118 -0
  1227. data/web/doc/api/more/files/lib/facets/more/timer_rb.html +127 -0
  1228. data/web/doc/api/more/files/lib/facets/more/times_rb.html +127 -0
  1229. data/web/doc/api/more/files/lib/facets/more/tracepoint_rb.html +131 -0
  1230. data/web/doc/api/more/files/lib/facets/more/tuple_rb.html +122 -0
  1231. data/web/doc/api/more/files/lib/facets/more/typecast_rb.html +124 -0
  1232. data/web/doc/api/more/files/lib/facets/more/uninheritable_rb.html +111 -0
  1233. data/web/doc/api/more/files/lib/facets/more/units_rb.html +118 -0
  1234. data/web/doc/api/more/files/lib/facets/more/xmlbuilder_rb.html +116 -0
  1235. data/web/doc/api/more/files/lib/facets/more/xmlhelper_rb.html +111 -0
  1236. data/web/doc/api/more/files/lib/facets/more/xoxo_rb.html +125 -0
  1237. data/web/doc/api/more/files/lib/facets/more/yamlstruct_rb.html +123 -0
  1238. data/web/doc/api/more/fr_class_index.html +197 -0
  1239. data/web/doc/api/more/fr_file_index.html +136 -0
  1240. data/web/doc/api/more/fr_method_index.html +1290 -0
  1241. data/web/doc/api/more/index.html +26 -0
  1242. data/web/doc/api/more/rdoc-style.css +175 -0
  1243. data/web/documentation.html +174 -0
  1244. data/web/favicon.ico +0 -0
  1245. data/web/images/abc.png +0 -0
  1246. data/web/images/abc1.png +0 -0
  1247. data/web/images/apple_core.jpg +0 -0
  1248. data/web/images/apples3.jpg +0 -0
  1249. data/web/images/best_jupiter_cass.jpg +0 -0
  1250. data/web/images/core.jpg +0 -0
  1251. data/web/images/gray.jpg +0 -0
  1252. data/web/images/ruby-lg.png +0 -0
  1253. data/web/images/ruby.gif +0 -0
  1254. data/web/images/super-friends-volume-two-20050606010933166-001.jpg +0 -0
  1255. data/web/images/three_apples.jpg +0 -0
  1256. data/web/images/yellow_fade.jpg +0 -0
  1257. data/web/images/yellow_fade2.jpg +0 -0
  1258. data/web/index.html +224 -0
  1259. data/web/style.css +153 -0
  1260. metadata +1433 -457
@@ -0,0 +1,185 @@
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: Regexp</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", "width=400,height=400,scrollbars=yes" )
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 />Regexp</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/core/regexp/to_regexp_rb.html">lib/facets/core/regexp/to_regexp.rb</a>
61
+ <a href="../files/lib/facets/core/regexp/to_re_rb.html">lib/facets/core/regexp/to_re.rb</a>
62
+ <a href="../files/lib/facets/core/regexp/arity_rb.html">lib/facets/core/regexp/arity.rb</a>
63
+ </td>
64
+ </tr>
65
+ <tr>
66
+ <td>Parent:</td>
67
+ <td>
68
+ <a href="Object.html">
69
+ Object
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </td>
75
+ </tr>
76
+ </table>
77
+ <!-- banner header -->
78
+
79
+ <div id="bodyContent">
80
+ <div id="content">
81
+
82
+
83
+
84
+
85
+ <div class="sectiontitle">Methods</div>
86
+ <ul>
87
+ <li><a href="#M000042">arity</a></li>
88
+ <li><a href="#M000041">to_re</a></li>
89
+ <li><a href="#M000040">to_regexp</a></li>
90
+ </ul>
91
+
92
+
93
+
94
+
95
+
96
+
97
+ <div class="sectiontitle">Public Instance methods</div>
98
+ <div class="method">
99
+ <div class="title">
100
+ <a name="M000042"></a><b>arity</b>()
101
+ </div>
102
+ <div class="description">
103
+ <p>
104
+ Returns the number of backreferencing subexpressions.
105
+ </p>
106
+ <pre>
107
+ /(a)(b)(c)/.arity #=&gt; 3
108
+ /(a(b(c)))/.arity #=&gt; 3
109
+ </pre>
110
+ <p>
111
+ Note: This is not perfect, especially with regards to \x and embedded
112
+ comments.
113
+ </p>
114
+ </div>
115
+ <div class="sourcecode">
116
+ <p class="source-link">[ <a href="javascript:toggleSource('M000042_source')" id="l_M000042_source">show source</a> ]</p>
117
+ <div id="M000042_source" class="dyn-source">
118
+ <pre>
119
+ <span class="ruby-comment cmt"># File lib/facets/core/regexp/arity.rb, line 9</span>
120
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">arity</span>
121
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">source</span>.<span class="ruby-identifier">scan</span>( <span class="ruby-regexp re">/(?!\\)[(](?!\?[#=:!&gt;-imx])/</span> ).<span class="ruby-identifier">length</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="M000041"></a><b>to_re</b>( esc=false )
130
+ </div>
131
+ <div class="description">
132
+ <p>
133
+ Simply returns itself. Helpful when converting strings to regular
134
+ expressions, where regexp might occur as well &#8212;in the same vien as
135
+ using to_s on symbols. The parameter is actaully a dummy parameter to
136
+ coincide with <a href="String.html#M000339">String#to_re</a>.
137
+ </p>
138
+ <pre>
139
+ /abc/.to_re #=&gt; /abc/
140
+ </pre>
141
+ </div>
142
+ <div class="sourcecode">
143
+ <p class="source-link">[ <a href="javascript:toggleSource('M000041_source')" id="l_M000041_source">show source</a> ]</p>
144
+ <div id="M000041_source" class="dyn-source">
145
+ <pre>
146
+ <span class="ruby-comment cmt"># File lib/facets/core/regexp/to_re.rb, line 11</span>
147
+ <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> )
148
+ <span class="ruby-keyword kw">self</span> <span class="ruby-comment cmt"># Of course, things really should know how to say &quot;I&quot; ;)</span>
149
+ <span class="ruby-keyword kw">end</span>
150
+ </pre>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ <div class="method">
155
+ <div class="title">
156
+ <a name="M000040"></a><b>to_regexp</b>()
157
+ </div>
158
+ <div class="description">
159
+ <p>
160
+ Like <a href="Regexp.html#M000041">to_re</a>, but following Ruby&#8217;s
161
+ formal definitions, only a Regular expression type object will respond to
162
+ this.
163
+ </p>
164
+ <p>
165
+ Note: To be of much real use this should be defined in core Ruby.
166
+ </p>
167
+ </div>
168
+ <div class="sourcecode">
169
+ <p class="source-link">[ <a href="javascript:toggleSource('M000040_source')" id="l_M000040_source">show source</a> ]</p>
170
+ <div id="M000040_source" class="dyn-source">
171
+ <pre>
172
+ <span class="ruby-comment cmt"># File lib/facets/core/regexp/to_regexp.rb, line 8</span>
173
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_regexp</span>
174
+ <span class="ruby-keyword kw">self</span>
175
+ <span class="ruby-keyword kw">end</span>
176
+ </pre>
177
+ </div>
178
+ </div>
179
+ </div>
180
+ </div>
181
+
182
+ </div>
183
+
184
+ </body>
185
+ </html>
@@ -0,0 +1,92 @@
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: ScriptBug</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", "width=400,height=400,scrollbars=yes" )
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 />ScriptBug</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/core/kernel/bug_rb.html">lib/facets/core/kernel/bug.rb</a>
61
+ </td>
62
+ </tr>
63
+ <tr>
64
+ <td>Parent:</td>
65
+ <td>
66
+ Exception
67
+ </td>
68
+ </tr>
69
+ </table>
70
+ </td>
71
+ </tr>
72
+ </table>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+ <div id="content">
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+ </div>
88
+
89
+ </div>
90
+
91
+ </body>
92
+ </html>
@@ -0,0 +1,3286 @@
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", "width=400,height=400,scrollbars=yes" )
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/core/enumerable/entropy_rb.html">lib/facets/core/enumerable/entropy.rb</a>
61
+ <a href="../files/lib/facets/core/string/pull_rb.html">lib/facets/core/string/pull.rb</a>
62
+ <a href="../files/lib/facets/core/string/push_rb.html">lib/facets/core/string/push.rb</a>
63
+ <a href="../files/lib/facets/core/string/shift_rb.html">lib/facets/core/string/shift.rb</a>
64
+ <a href="../files/lib/facets/core/string/dresner_rb.html">lib/facets/core/string/dresner.rb</a>
65
+ <a href="../files/lib/facets/core/string/word_filter_rb.html">lib/facets/core/string/word_filter.rb</a>
66
+ <a href="../files/lib/facets/core/string/unix_crypt_rb.html">lib/facets/core/string/unix_crypt.rb</a>
67
+ <a href="../files/lib/facets/core/string/camelcase_rb.html">lib/facets/core/string/camelcase.rb</a>
68
+ <a href="../files/lib/facets/core/string/humanize_rb.html">lib/facets/core/string/humanize.rb</a>
69
+ <a href="../files/lib/facets/core/string/at_rb.html">lib/facets/core/string/at.rb</a>
70
+ <a href="../files/lib/facets/core/string/margin_rb.html">lib/facets/core/string/margin.rb</a>
71
+ <a href="../files/lib/facets/core/string/dequote_rb.html">lib/facets/core/string/dequote.rb</a>
72
+ <a href="../files/lib/facets/core/string/word_wrap_rb.html">lib/facets/core/string/word_wrap.rb</a>
73
+ <a href="../files/lib/facets/core/string/last_rb.html">lib/facets/core/string/last.rb</a>
74
+ <a href="../files/lib/facets/core/string/unpack_rb.html">lib/facets/core/string/unpack.rb</a>
75
+ <a href="../files/lib/facets/core/string/rand_index_rb.html">lib/facets/core/string/rand_index.rb</a>
76
+ <a href="../files/lib/facets/core/string/nchar_rb.html">lib/facets/core/string/nchar.rb</a>
77
+ <a href="../files/lib/facets/core/string/singular_rb.html">lib/facets/core/string/singular.rb</a>
78
+ <a href="../files/lib/facets/core/string/brief_rb.html">lib/facets/core/string/brief.rb</a>
79
+ <a href="../files/lib/facets/core/string/similarity_rb.html">lib/facets/core/string/similarity.rb</a>
80
+ <a href="../files/lib/facets/core/string/rand_byte_rb.html">lib/facets/core/string/rand_byte.rb</a>
81
+ <a href="../files/lib/facets/core/string/to_proc_rb.html">lib/facets/core/string/to_proc.rb</a>
82
+ <a href="../files/lib/facets/core/string/blank_rb.html">lib/facets/core/string/blank.rb</a>
83
+ <a href="../files/lib/facets/core/string/demodulize_rb.html">lib/facets/core/string/demodulize.rb</a>
84
+ <a href="../files/lib/facets/core/string/to_date_rb.html">lib/facets/core/string/to_date.rb</a>
85
+ <a href="../files/lib/facets/core/string/chars_rb.html">lib/facets/core/string/chars.rb</a>
86
+ <a href="../files/lib/facets/core/string/pot_rb.html">lib/facets/core/string/pot.rb</a>
87
+ <a href="../files/lib/facets/core/string/starts_with_rb.html">lib/facets/core/string/starts_with.rb</a>
88
+ <a href="../files/lib/facets/core/string/first_char_rb.html">lib/facets/core/string/first_char.rb</a>
89
+ <a href="../files/lib/facets/core/string/capitalized_rb.html">lib/facets/core/string/capitalized.rb</a>
90
+ <a href="../files/lib/facets/core/string/bytes_rb.html">lib/facets/core/string/bytes.rb</a>
91
+ <a href="../files/lib/facets/core/string/basename_rb.html">lib/facets/core/string/basename.rb</a>
92
+ <a href="../files/lib/facets/core/string/downcase_rb.html">lib/facets/core/string/downcase.rb</a>
93
+ <a href="../files/lib/facets/core/string/succ_rb.html">lib/facets/core/string/succ.rb</a>
94
+ <a href="../files/lib/facets/core/string/probability_rb.html">lib/facets/core/string/probability.rb</a>
95
+ <a href="../files/lib/facets/core/string/cmp_rb.html">lib/facets/core/string/cmp.rb</a>
96
+ <a href="../files/lib/facets/core/string/whitespace_rb.html">lib/facets/core/string/whitespace.rb</a>
97
+ <a href="../files/lib/facets/core/string/at_rand_rb.html">lib/facets/core/string/at_rand.rb</a>
98
+ <a href="../files/lib/facets/core/string/first_rb.html">lib/facets/core/string/first.rb</a>
99
+ <a href="../files/lib/facets/core/string/fold_rb.html">lib/facets/core/string/fold.rb</a>
100
+ <a href="../files/lib/facets/core/string/camelize_rb.html">lib/facets/core/string/camelize.rb</a>
101
+ <a href="../files/lib/facets/core/string/unbracket_rb.html">lib/facets/core/string/unbracket.rb</a>
102
+ <a href="../files/lib/facets/core/string/range_rb.html">lib/facets/core/string/range.rb</a>
103
+ <a href="../files/lib/facets/core/string/to_a_rb.html">lib/facets/core/string/to_a.rb</a>
104
+ <a href="../files/lib/facets/core/string/to_b_rb.html">lib/facets/core/string/to_b.rb</a>
105
+ <a href="../files/lib/facets/core/string/to_re_rb.html">lib/facets/core/string/to_re.rb</a>
106
+ <a href="../files/lib/facets/core/string/last_char_rb.html">lib/facets/core/string/last_char.rb</a>
107
+ <a href="../files/lib/facets/core/string/line_wrap_rb.html">lib/facets/core/string/line_wrap.rb</a>
108
+ <a href="../files/lib/facets/core/string/align_center_rb.html">lib/facets/core/string/align_center.rb</a>
109
+ <a href="../files/lib/facets/core/string/words_rb.html">lib/facets/core/string/words.rb</a>
110
+ <a href="../files/lib/facets/core/string/indent_rb.html">lib/facets/core/string/indent.rb</a>
111
+ <a href="../files/lib/facets/core/string/upcase_rb.html">lib/facets/core/string/upcase.rb</a>
112
+ <a href="../files/lib/facets/core/string/format_rb.html">lib/facets/core/string/format.rb</a>
113
+ <a href="../files/lib/facets/core/string/to_const_rb.html">lib/facets/core/string/to_const.rb</a>
114
+ <a href="../files/lib/facets/core/string/pop_rb.html">lib/facets/core/string/pop.rb</a>
115
+ <a href="../files/lib/facets/core/string/range_of_line_rb.html">lib/facets/core/string/range_of_line.rb</a>
116
+ <a href="../files/lib/facets/core/string/frequency_rb.html">lib/facets/core/string/frequency.rb</a>
117
+ <a href="../files/lib/facets/core/string/lowercase_rb.html">lib/facets/core/string/lowercase.rb</a>
118
+ <a href="../files/lib/facets/core/string/to_time_rb.html">lib/facets/core/string/to_time.rb</a>
119
+ <a href="../files/lib/facets/core/string/ordinal_rb.html">lib/facets/core/string/ordinal.rb</a>
120
+ <a href="../files/lib/facets/core/string/shuffle_rb.html">lib/facets/core/string/shuffle.rb</a>
121
+ <a href="../files/lib/facets/core/string/each_char_rb.html">lib/facets/core/string/each_char.rb</a>
122
+ <a href="../files/lib/facets/core/string/unshift_rb.html">lib/facets/core/string/unshift.rb</a>
123
+ <a href="../files/lib/facets/core/string/each_word_rb.html">lib/facets/core/string/each_word.rb</a>
124
+ <a href="../files/lib/facets/core/string/bracket_rb.html">lib/facets/core/string/bracket.rb</a>
125
+ <a href="../files/lib/facets/core/string/index_all_rb.html">lib/facets/core/string/index_all.rb</a>
126
+ <a href="../files/lib/facets/core/string/quote_rb.html">lib/facets/core/string/quote.rb</a>
127
+ <a href="../files/lib/facets/core/string/regesc_rb.html">lib/facets/core/string/regesc.rb</a>
128
+ <a href="../files/lib/facets/core/string/soundex_rb.html">lib/facets/core/string/soundex.rb</a>
129
+ <a href="../files/lib/facets/core/string/range_all_rb.html">lib/facets/core/string/range_all.rb</a>
130
+ <a href="../files/lib/facets/core/string/mscan_rb.html">lib/facets/core/string/mscan.rb</a>
131
+ <a href="../files/lib/facets/core/string/shatter_rb.html">lib/facets/core/string/shatter.rb</a>
132
+ <a href="../files/lib/facets/core/string/underscore_rb.html">lib/facets/core/string/underscore.rb</a>
133
+ <a href="../files/lib/facets/core/string/natcmp_rb.html">lib/facets/core/string/natcmp.rb</a>
134
+ <a href="../files/lib/facets/core/string/lines_rb.html">lib/facets/core/string/lines.rb</a>
135
+ <a href="../files/lib/facets/core/string/modulize_rb.html">lib/facets/core/string/modulize.rb</a>
136
+ <a href="../files/lib/facets/core/string/pathize_rb.html">lib/facets/core/string/pathize.rb</a>
137
+ <a href="../files/lib/facets/core/string/methodize_rb.html">lib/facets/core/string/methodize.rb</a>
138
+ <a href="../files/lib/facets/core/string/shell_escape_rb.html">lib/facets/core/string/shell_escape.rb</a>
139
+ <a href="../files/lib/facets/core/string/self/patterns_rb.html">lib/facets/core/string/self/patterns.rb</a>
140
+ <a href="../files/lib/facets/core/string/self/rand_letter_rb.html">lib/facets/core/string/self/rand_letter.rb</a>
141
+ <a href="../files/lib/facets/core/string/self/interpolate_rb.html">lib/facets/core/string/self/interpolate.rb</a>
142
+ </td>
143
+ </tr>
144
+ <tr>
145
+ <td>Parent:</td>
146
+ <td>
147
+ <a href="Object.html">
148
+ Object
149
+ </a>
150
+ </td>
151
+ </tr>
152
+ </table>
153
+ </td>
154
+ </tr>
155
+ </table>
156
+ <!-- banner header -->
157
+
158
+ <div id="bodyContent">
159
+ <div id="content">
160
+
161
+
162
+
163
+
164
+ <div class="sectiontitle">Methods</div>
165
+ <ul>
166
+ <li><a href="#M000345">align_center</a></li>
167
+ <li><a href="#M000344">align_left</a></li>
168
+ <li><a href="#M000343">align_right</a></li>
169
+ <li><a href="#M000327">at_rand</a></li>
170
+ <li><a href="#M000328">at_rand!</a></li>
171
+ <li><a href="#M000321">basename</a></li>
172
+ <li><a href="#M000311">blank?</a></li>
173
+ <li><a href="#M000365">bra2ket</a></li>
174
+ <li><a href="#M000366">bracket</a></li>
175
+ <li><a href="#M000367">bracket!</a></li>
176
+ <li><a href="#M000305">brief</a></li>
177
+ <li><a href="#M000320">bytes</a></li>
178
+ <li><a href="#M000289">camelcase</a></li>
179
+ <li><a href="#M000333">camelize</a></li>
180
+ <li><a href="#M000319">capitalized?</a></li>
181
+ <li><a href="#M000314">chars</a></li>
182
+ <li><a href="#M000325">cmp</a></li>
183
+ <li><a href="#M000292">dequote</a></li>
184
+ <li><a href="#M000322">downcase?</a></li>
185
+ <li><a href="#M000283">dresner</a></li>
186
+ <li><a href="#M000284">dresner!</a></li>
187
+ <li><a href="#M000362">each_char</a></li>
188
+ <li><a href="#M000364">each_word</a></li>
189
+ <li><a href="#M000317">ends_with?</a></li>
190
+ <li><a href="#M000279">entropy</a></li>
191
+ <li><a href="#M000329">first</a></li>
192
+ <li><a href="#M000330">first!</a></li>
193
+ <li><a href="#M000331">first=</a></li>
194
+ <li><a href="#M000318">first_char</a></li>
195
+ <li><a href="#M000332">fold</a></li>
196
+ <li><a href="#M000352">format</a></li>
197
+ <li><a href="#M000386">format</a></li>
198
+ <li><a href="#M000356">frequency</a></li>
199
+ <li><a href="#M000307">fuzzy_match</a></li>
200
+ <li><a href="#M000290">humanize</a></li>
201
+ <li><a href="#M000349">indent</a></li>
202
+ <li><a href="#M000368">index_all</a></li>
203
+ <li><a href="#M000388">interpolate</a></li>
204
+ <li><a href="#M000295">last</a></li>
205
+ <li><a href="#M000297">last!</a></li>
206
+ <li><a href="#M000296">last=</a></li>
207
+ <li><a href="#M000341">last_char</a></li>
208
+ <li><a href="#M000342">line_wrap</a></li>
209
+ <li><a href="#M000378">lines</a></li>
210
+ <li><a href="#M000357">lowercase?</a></li>
211
+ <li><a href="#M000291">margin</a></li>
212
+ <li><a href="#M000381">methodize</a></li>
213
+ <li><a href="#M000379">modulize</a></li>
214
+ <li><a href="#M000374">mscan</a></li>
215
+ <li><a href="#M000377">natcmp</a></li>
216
+ <li><a href="#M000300">nchar</a></li>
217
+ <li><a href="#M000359">ordinal</a></li>
218
+ <li><a href="#M000380">pathize</a></li>
219
+ <li><a href="#M000383">patterns</a></li>
220
+ <li><a href="#M000302">plural</a></li>
221
+ <li><a href="#M000304">pluralize</a></li>
222
+ <li><a href="#M000354">pop</a></li>
223
+ <li><a href="#M000315">pot</a></li>
224
+ <li><a href="#M000324">probability</a></li>
225
+ <li><a href="#M000280">pull</a></li>
226
+ <li><a href="#M000281">push</a></li>
227
+ <li><a href="#M000369">quote</a></li>
228
+ <li><a href="#M000308">rand_byte</a></li>
229
+ <li><a href="#M000309">rand_byte!</a></li>
230
+ <li><a href="#M000299">rand_index</a></li>
231
+ <li><a href="#M000384">rand_letter</a></li>
232
+ <li><a href="#M000385">random</a></li>
233
+ <li><a href="#M000336">range</a></li>
234
+ <li><a href="#M000373">range_all</a></li>
235
+ <li><a href="#M000355">range_of_line</a></li>
236
+ <li><a href="#M000370">regesc</a></li>
237
+ <li><a href="#M000375">shatter</a></li>
238
+ <li><a href="#M000382">shell_escape</a></li>
239
+ <li><a href="#M000282">shift</a></li>
240
+ <li><a href="#M000360">shuffle</a></li>
241
+ <li><a href="#M000361">shuffle!</a></li>
242
+ <li><a href="#M000306">similarity</a></li>
243
+ <li><a href="#M000301">singular</a></li>
244
+ <li><a href="#M000303">singularize</a></li>
245
+ <li><a href="#M000371">soundex</a></li>
246
+ <li><a href="#M000372">soundex_code</a></li>
247
+ <li><a href="#M000387">sprintf</a></li>
248
+ <li><a href="#M000316">starts_with?</a></li>
249
+ <li><a href="#M000323">succ</a></li>
250
+ <li><a href="#M000347">tab</a></li>
251
+ <li><a href="#M000348">tabto</a></li>
252
+ <li><a href="#M000337">to_a</a></li>
253
+ <li><a href="#M000338">to_b</a></li>
254
+ <li><a href="#M000353">to_const</a></li>
255
+ <li><a href="#M000313">to_date</a></li>
256
+ <li><a href="#M000310">to_proc</a></li>
257
+ <li><a href="#M000339">to_re</a></li>
258
+ <li><a href="#M000340">to_rx</a></li>
259
+ <li><a href="#M000358">to_time</a></li>
260
+ <li><a href="#M000334">unbracket</a></li>
261
+ <li><a href="#M000335">unbracket!</a></li>
262
+ <li><a href="#M000376">underscore</a></li>
263
+ <li><a href="#M000287">unix_crypt</a></li>
264
+ <li><a href="#M000288">unix_crypt!</a></li>
265
+ <li><a href="#M000298">unpack</a></li>
266
+ <li><a href="#M000363">unshift</a></li>
267
+ <li><a href="#M000350">upcase?</a></li>
268
+ <li><a href="#M000351">uppercase?</a></li>
269
+ <li><a href="#M000312">whitespace?</a></li>
270
+ <li><a href="#M000326">whitespace?</a></li>
271
+ <li><a href="#M000285">word_filter</a></li>
272
+ <li><a href="#M000286">word_filter!</a></li>
273
+ <li><a href="#M000293">word_wrap</a></li>
274
+ <li><a href="#M000294">word_wrap!</a></li>
275
+ <li><a href="#M000346">words</a></li>
276
+ </ul>
277
+
278
+
279
+
280
+
281
+ <div class="sectiontitle">Constants</div>
282
+ <table border='0' cellpadding='5'>
283
+ <tr valign='top'>
284
+ <td class="attr-name">SINGULAR_RULES</td>
285
+ <td>=</td>
286
+ <td class="attr-value">[ [/(matr)ices$/i, '\1ix'], [/(vert)ices$/i, '\1ex'], [/^(ox)en/i, '\1'], [/(alias)es$/i, '\1'], [/([octop|vir])i$/i, '\1us'], [/(cris|ax|test)es$/i, '\1is'], [/(shoe)s$/i, '\1'], [/(o)es$/i, '\1'], [/(bus)es$/i, '\1'], [/([m|l])ice$/i, '\1ouse'], [/(x|ch|ss|sh)es$/i, '\1'], [/(m)ovies$/i, '\1\2ovie'], [/(s)eries$/i, '\1\2eries'], [/([^aeiouy]|qu)ies$/i, '\1y'], [/([lr])ves$/i, '\1f'], [/(tive)s$/i, '\1'], [/(hive)s$/i, '\1'], [/([^f])ves$/i, '\1fe'], [/(^analy)ses$/i, '\1sis'], [/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i, '\1\2sis'], [/([ti])a$/i, '\1um'], [/(p)eople$/i, '\1\2erson'], [/(m)en$/i, '\1an'], [/(s)tatus$/i, '\1\2tatus'], [/(c)hildren$/i, '\1\2hild'], [/(n)ews$/i, '\1\2ews'], [/s$/i, '']</td>
287
+ </tr>
288
+ <tr valign='top'>
289
+ <td class="attr-name">PLURAL_RULES</td>
290
+ <td>=</td>
291
+ <td class="attr-value">[ [/^(ox)$/i, '\1\2en'], # ox [/([m|l])ouse$/i, '\1ice'], # mouse, louse [/(matr|vert)ix|ex$/i, '\1ices'], # matrix, vertex, index [/(x|ch|ss|sh)$/i, '\1es'], # search, switch, fix, box, process, address [/([^aeiouy]|qu)ies$/i, '\1y'], [/([^aeiouy]|qu)y$/i, '\1ies'], # query, ability, agency [/(hive)$/i, '\1s'], # archive, hive [/(?:([^f])fe|([lr])f)$/i, '\1\2ves'], # half, safe, wife [/sis$/i, 'ses'], # basis, diagnosis [/([ti])um$/i, '\1a'], # datum, medium [/(p)erson$/i, '\1eople'], # person, salesperson [/(m)an$/i, '\1en'], # man, woman, spokesman [/(c)hild$/i, '\1hildren'], # child [/(buffal|tomat|potat)o$/i, '\1\2oes'], # buffalo, tomato [/(bu)s$/i, '\1\2ses'], # bus [/(alias)/i, '\1es'], # alias [/(octop|vir)us$/i, '\1i'], # octopus, virus - virus has no defined plural, but viri is better than viruses/viruss [/(ax|cri|test)is$/i, '\1es'], # axis, crisis [/s$/i, 's'], # no change (compatibility) [/$/, 's']</td>
292
+ </tr>
293
+ </table>
294
+
295
+
296
+ <div class="sectiontitle">Public Class methods</div>
297
+ <div class="method">
298
+ <div class="title">
299
+ <a name="M000365"></a><b>bra2ket</b>()
300
+ </div>
301
+ <div class="sourcecode">
302
+ <p class="source-link">[ <a href="javascript:toggleSource('M000365_source')" id="l_M000365_source">show source</a> ]</p>
303
+ <div id="M000365_source" class="dyn-source">
304
+ <pre>
305
+ <span class="ruby-comment cmt"># File lib/facets/core/string/bracket.rb, line 4</span>
306
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bra2ket</span>
307
+ <span class="ruby-ivar">@bra2ket</span> <span class="ruby-operator">||=</span> { <span class="ruby-value str">'['</span>=<span class="ruby-operator">&gt;</span><span class="ruby-value str">']'</span>, <span class="ruby-value str">'('</span>=<span class="ruby-operator">&gt;</span><span class="ruby-value str">')'</span>, <span class="ruby-value str">'{'</span>=<span class="ruby-operator">&gt;</span><span class="ruby-value str">'}'</span>, <span class="ruby-value str">'&lt;'</span>=<span class="ruby-operator">&gt;</span><span class="ruby-value str">'&gt;'</span> }
308
+ <span class="ruby-keyword kw">end</span>
309
+ </pre>
310
+ </div>
311
+ </div>
312
+ </div>
313
+ <div class="method">
314
+ <div class="title">
315
+ <a name="M000386"></a><b>format</b>(*args)
316
+ </div>
317
+ <div class="sourcecode">
318
+ <p class="source-link">[ <a href="javascript:toggleSource('M000386_source')" id="l_M000386_source">show source</a> ]</p>
319
+ <div id="M000386_source" class="dyn-source">
320
+ <pre>
321
+ <span class="ruby-comment cmt"># File lib/facets/core/string/self/format.rb, line 2</span>
322
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">String</span>.<span class="ruby-identifier">format</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
323
+ <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">format</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
324
+ <span class="ruby-keyword kw">end</span>
325
+ </pre>
326
+ </div>
327
+ </div>
328
+ </div>
329
+ <div class="method">
330
+ <div class="title">
331
+ <a name="M000388"></a><b>interpolate</b>(&amp;str)
332
+ </div>
333
+ <div class="sourcecode">
334
+ <p class="source-link">[ <a href="javascript:toggleSource('M000388_source')" id="l_M000388_source">show source</a> ]</p>
335
+ <div id="M000388_source" class="dyn-source">
336
+ <pre>
337
+ <span class="ruby-comment cmt"># File lib/facets/core/string/self/interpolate.rb, line 4</span>
338
+ <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>)
339
+ <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>
340
+ <span class="ruby-keyword kw">end</span>
341
+ </pre>
342
+ </div>
343
+ </div>
344
+ </div>
345
+ <div class="method">
346
+ <div class="title">
347
+ <a name="M000383"></a><b>patterns</b>( pattern )
348
+ </div>
349
+ <div class="description">
350
+ <p>
351
+ Returns a <a href="Regexp.html">Regexp</a> pattern based on the given
352
+ pattern string or symbolic name.
353
+ </p>
354
+ <p>
355
+ Recognized names are:
356
+ </p>
357
+ <ul>
358
+ <li>:char
359
+
360
+ </li>
361
+ <li>:word
362
+
363
+ </li>
364
+ <li>:line
365
+
366
+ </li>
367
+ </ul>
368
+ <p>
369
+ They are also recognizied in plural form.
370
+ </p>
371
+ </div>
372
+ <div class="sourcecode">
373
+ <p class="source-link">[ <a href="javascript:toggleSource('M000383_source')" id="l_M000383_source">show source</a> ]</p>
374
+ <div id="M000383_source" class="dyn-source">
375
+ <pre>
376
+ <span class="ruby-comment cmt"># File lib/facets/core/string/self/patterns.rb, line 14</span>
377
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">patterns</span>( <span class="ruby-identifier">pattern</span> )
378
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">pattern</span>
379
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:char</span>, <span class="ruby-identifier">:chars</span>, <span class="ruby-identifier">:character</span>, <span class="ruby-identifier">:characters</span>
380
+ <span class="ruby-identifier">pattern</span> = <span class="ruby-regexp re">//</span>
381
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:word</span>, <span class="ruby-identifier">:words</span>
382
+ <span class="ruby-identifier">pattern</span> = <span class="ruby-regexp re">/\s+|\Z/</span>
383
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:line</span>, <span class="ruby-identifier">:lines</span>
384
+ <span class="ruby-identifier">pattern</span> = <span class="ruby-regexp re">/\Z/</span>
385
+ <span class="ruby-keyword kw">when</span> <span class="ruby-constant">String</span>
386
+ <span class="ruby-identifier">pattern</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">pattern</span>))
387
+ <span class="ruby-keyword kw">end</span>
388
+ <span class="ruby-identifier">pattern</span>
389
+ <span class="ruby-keyword kw">end</span>
390
+ </pre>
391
+ </div>
392
+ </div>
393
+ </div>
394
+ <div class="method">
395
+ <div class="title">
396
+ <a name="M000384"></a><b>rand_letter</b>()
397
+ </div>
398
+ <div class="description">
399
+ <p>
400
+ <a href="Module.html">Module</a> method to generate a random letter.
401
+ </p>
402
+ <pre>
403
+ String::Random.rand_letter #=&gt; &quot;q&quot;
404
+ String::Random.rand_letter #=&gt; &quot;r&quot;
405
+ String::Random.rand_letter #=&gt; &quot;a&quot;
406
+ </pre>
407
+ </div>
408
+ <div class="sourcecode">
409
+ <p class="source-link">[ <a href="javascript:toggleSource('M000384_source')" id="l_M000384_source">show source</a> ]</p>
410
+ <div id="M000384_source" class="dyn-source">
411
+ <pre>
412
+ <span class="ruby-comment cmt"># File lib/facets/core/string/self/rand_letter.rb, line 9</span>
413
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">rand_letter</span>
414
+ (<span class="ruby-identifier">rand</span>(<span class="ruby-value">26</span>) <span class="ruby-operator">+</span> (<span class="ruby-identifier">rand</span>(<span class="ruby-value">2</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-value">65</span> <span class="ruby-operator">:</span> <span class="ruby-value">97</span>) ).<span class="ruby-identifier">chr</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="M000385"></a><b>random</b>(max_length = 8, char_re = /[\w\d]/)
423
+ </div>
424
+ <div class="description">
425
+ <p>
426
+ Returns a randomly generated string. One possible use is password
427
+ initialization. Takes a max legnth of characters (default 8) and an
428
+ optional valid char <a href="Regexp.html">Regexp</a> (default /\w\d/).
429
+ </p>
430
+ </div>
431
+ <div class="sourcecode">
432
+ <p class="source-link">[ <a href="javascript:toggleSource('M000385_source')" id="l_M000385_source">show source</a> ]</p>
433
+ <div id="M000385_source" class="dyn-source">
434
+ <pre>
435
+ <span class="ruby-comment cmt"># File lib/facets/core/string/self/random.rb, line 14</span>
436
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">String</span>.<span class="ruby-identifier">random</span>(<span class="ruby-identifier">max_length</span> = <span class="ruby-value">8</span>, <span class="ruby-identifier">char_re</span> = <span class="ruby-regexp re">/[\w\d]/</span>)
437
+ <span class="ruby-comment cmt"># gmosx: this is a nice example of input parameter checking.</span>
438
+ <span class="ruby-comment cmt"># this is NOT a real time called method so we can add this</span>
439
+ <span class="ruby-comment cmt"># check. Congrats to the author.</span>
440
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'char_re must be a regular expression!'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">char_re</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Regexp</span>)
441
+
442
+ <span class="ruby-identifier">string</span> = <span class="ruby-value str">&quot;&quot;</span>
443
+
444
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">max_length</span>
445
+ <span class="ruby-identifier">ch</span> = <span class="ruby-identifier">rand</span>(<span class="ruby-value">255</span>).<span class="ruby-identifier">chr</span>
446
+ <span class="ruby-identifier">string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">ch</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ch</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">char_re</span>
447
+ <span class="ruby-keyword kw">end</span>
448
+
449
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">string</span>
450
+ <span class="ruby-keyword kw">end</span>
451
+ </pre>
452
+ </div>
453
+ </div>
454
+ </div>
455
+ <div class="method">
456
+ <div class="title">
457
+ <a name="M000372"></a><b>soundex_code</b>(character)
458
+ </div>
459
+ <div class="description">
460
+ <p>
461
+ Support function for <a href="String.html#M000371">String#soundex</a>.
462
+ Returns code for a single character.
463
+ </p>
464
+ </div>
465
+ <div class="sourcecode">
466
+ <p class="source-link">[ <a href="javascript:toggleSource('M000372_source')" id="l_M000372_source">show source</a> ]</p>
467
+ <div id="M000372_source" class="dyn-source">
468
+ <pre>
469
+ <span class="ruby-comment cmt"># File lib/facets/core/string/soundex.rb, line 40</span>
470
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">String</span>.<span class="ruby-identifier">soundex_code</span>(<span class="ruby-identifier">character</span>)
471
+ <span class="ruby-identifier">character</span>.<span class="ruby-identifier">tr!</span> <span class="ruby-value str">&quot;AEIOUYWHBPFVCSKGJQXZDTLMNR&quot;</span>, <span class="ruby-value str">&quot;00000000111122222222334556&quot;</span>
472
+ <span class="ruby-keyword kw">end</span>
473
+ </pre>
474
+ </div>
475
+ </div>
476
+ </div>
477
+ <div class="method">
478
+ <div class="title">
479
+ <a name="M000387"></a><b>sprintf</b>(*args)
480
+ </div>
481
+ <div class="sourcecode">
482
+ <p class="source-link">[ <a href="javascript:toggleSource('M000387_source')" id="l_M000387_source">show source</a> ]</p>
483
+ <div id="M000387_source" class="dyn-source">
484
+ <pre>
485
+ <span class="ruby-comment cmt"># File lib/facets/core/string/self/format.rb, line 6</span>
486
+ <span class="ruby-keyword kw">def</span> <span class="ruby-constant">String</span>.<span class="ruby-identifier">sprintf</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
487
+ <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">format</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
488
+ <span class="ruby-keyword kw">end</span>
489
+ </pre>
490
+ </div>
491
+ </div>
492
+ </div>
493
+ <div class="sectiontitle">Public Instance methods</div>
494
+ <div class="method">
495
+ <div class="title">
496
+ <a name="M000345"></a><b>align_center</b>( n, sep=&quot;\n&quot;, c=' ' )
497
+ </div>
498
+ <div class="description">
499
+ <p>
500
+ Centers each line of a string.
501
+ </p>
502
+ <pre>
503
+ s = &lt;&lt;-EOS
504
+ This is a test
505
+ and
506
+ so on
507
+ EOS
508
+ puts s.align_center(14)
509
+ </pre>
510
+ <p>
511
+ <em>produces</em>
512
+ </p>
513
+ <pre>
514
+ This is a test
515
+ and
516
+ so on
517
+ </pre>
518
+ <p>
519
+ Align a string to the center. The defualt alignment seperation is a new
520
+ line (&quot;/n&quot;) This can be changed as can be the padding string
521
+ which defaults to a single space (&#8217; &#8217;).
522
+ </p>
523
+ </div>
524
+ <div class="sourcecode">
525
+ <p class="source-link">[ <a href="javascript:toggleSource('M000345_source')" id="l_M000345_source">show source</a> ]</p>
526
+ <div id="M000345_source" class="dyn-source">
527
+ <pre>
528
+ <span class="ruby-comment cmt"># File lib/facets/core/string/align_center.rb, line 47</span>
529
+ <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> )
530
+ <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>
531
+ <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>
532
+ <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>)
533
+ }
534
+ <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>)
535
+ <span class="ruby-keyword kw">end</span>
536
+ </pre>
537
+ </div>
538
+ </div>
539
+ </div>
540
+ <div class="method">
541
+ <div class="title">
542
+ <a name="M000344"></a><b>align_left</b>( n, sep=&quot;\n&quot;, c=' ' )
543
+ </div>
544
+ <div class="description">
545
+ <p>
546
+ Align a string to the left. The defualt alignment seperation is a new line
547
+ (&quot;/n&quot;) This can be changes as can be the padding string which
548
+ defaults to a single space (&#8217; &#8217;).
549
+ </p>
550
+ </div>
551
+ <div class="sourcecode">
552
+ <p class="source-link">[ <a href="javascript:toggleSource('M000344_source')" id="l_M000344_source">show source</a> ]</p>
553
+ <div id="M000344_source" class="dyn-source">
554
+ <pre>
555
+ <span class="ruby-comment cmt"># File lib/facets/core/string/align_center.rb, line 20</span>
556
+ <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> )
557
+ <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>
558
+ <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>
559
+ <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>)
560
+ }
561
+ <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>)
562
+ <span class="ruby-keyword kw">end</span>
563
+ </pre>
564
+ </div>
565
+ </div>
566
+ </div>
567
+ <div class="method">
568
+ <div class="title">
569
+ <a name="M000343"></a><b>align_right</b>( n, sep=&quot;\n&quot;, c=' ' )
570
+ </div>
571
+ <div class="description">
572
+ <p>
573
+ Align a string to the right. The defualt alignment seperation is a new line
574
+ (&quot;/n&quot;) This can be changes as can be the padding string which
575
+ defaults to a single space (&#8217; &#8217;).
576
+ </p>
577
+ </div>
578
+ <div class="sourcecode">
579
+ <p class="source-link">[ <a href="javascript:toggleSource('M000343_source')" id="l_M000343_source">show source</a> ]</p>
580
+ <div id="M000343_source" class="dyn-source">
581
+ <pre>
582
+ <span class="ruby-comment cmt"># File lib/facets/core/string/align_center.rb, line 8</span>
583
+ <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> )
584
+ <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>
585
+ <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>
586
+ <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>)
587
+ }
588
+ <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>)
589
+ <span class="ruby-keyword kw">end</span>
590
+ </pre>
591
+ </div>
592
+ </div>
593
+ </div>
594
+ <div class="method">
595
+ <div class="title">
596
+ <a name="M000327"></a><b>at_rand</b>( separator=// )
597
+ </div>
598
+ <div class="description">
599
+ <p>
600
+ Return a random separation of the string. Default separation is by
601
+ charaacter.
602
+ </p>
603
+ <pre>
604
+ &quot;Ruby rules&quot;.at_rand(' ') #=&gt; [&quot;Ruby&quot;]
605
+ </pre>
606
+ </div>
607
+ <div class="sourcecode">
608
+ <p class="source-link">[ <a href="javascript:toggleSource('M000327_source')" id="l_M000327_source">show source</a> ]</p>
609
+ <div id="M000327_source" class="dyn-source">
610
+ <pre>
611
+ <span class="ruby-comment cmt"># File lib/facets/core/string/at_rand.rb, line 13</span>
612
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">at_rand</span>( <span class="ruby-identifier">separator</span>=<span class="ruby-regexp re">//</span> )
613
+ <span class="ruby-identifier">separator</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">patterns</span>( <span class="ruby-identifier">separator</span> )
614
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">split</span>(<span class="ruby-identifier">separator</span>,<span class="ruby-value">-1</span>).<span class="ruby-identifier">at_rand</span>
615
+ <span class="ruby-keyword kw">end</span>
616
+ </pre>
617
+ </div>
618
+ </div>
619
+ </div>
620
+ <div class="method">
621
+ <div class="title">
622
+ <a name="M000328"></a><b>at_rand!</b>( separator=// )
623
+ </div>
624
+ <div class="description">
625
+ <p>
626
+ Return a random separation while removing it from the string. Default
627
+ separation is by character.
628
+ </p>
629
+ <pre>
630
+ s = &quot;Ruby rules&quot;
631
+ s = at_rand!(' ') #=&gt; &quot;Ruby&quot;
632
+ s #=&gt; &quot;rules&quot;
633
+ </pre>
634
+ </div>
635
+ <div class="sourcecode">
636
+ <p class="source-link">[ <a href="javascript:toggleSource('M000328_source')" id="l_M000328_source">show source</a> ]</p>
637
+ <div id="M000328_source" class="dyn-source">
638
+ <pre>
639
+ <span class="ruby-comment cmt"># File lib/facets/core/string/at_rand.rb, line 25</span>
640
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">at_rand!</span>( <span class="ruby-identifier">separator</span>=<span class="ruby-regexp re">//</span> )
641
+ <span class="ruby-identifier">separator</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">patterns</span>( <span class="ruby-identifier">separator</span> )
642
+ <span class="ruby-identifier">a</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">shatter</span>( <span class="ruby-identifier">separator</span> )
643
+ <span class="ruby-identifier">w</span> = []; <span class="ruby-identifier">a</span>.<span class="ruby-identifier">each_with_index</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span>,<span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">w</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">w</span>.<span class="ruby-identifier">last</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span> }
644
+ <span class="ruby-identifier">i</span> = <span class="ruby-identifier">rand</span>( <span class="ruby-identifier">w</span>.<span class="ruby-identifier">size</span> )
645
+ <span class="ruby-identifier">r</span> = <span class="ruby-identifier">w</span>.<span class="ruby-identifier">delete_at</span>( <span class="ruby-identifier">i</span> )
646
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>( <span class="ruby-identifier">w</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">''</span>) )
647
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">r</span>
648
+ <span class="ruby-keyword kw">end</span>
649
+ </pre>
650
+ </div>
651
+ </div>
652
+ </div>
653
+ <div class="method">
654
+ <div class="title">
655
+ <a name="M000321"></a><b>basename</b>()
656
+ </div>
657
+ <div class="description">
658
+ <p>
659
+ Removes prepend module namespace.
660
+ </p>
661
+ <pre>
662
+ &quot;Test::Unit&quot;.basename #=&gt; &quot;Unit&quot;
663
+ </pre>
664
+ </div>
665
+ <div class="sourcecode">
666
+ <p class="source-link">[ <a href="javascript:toggleSource('M000321_source')" id="l_M000321_source">show source</a> ]</p>
667
+ <div id="M000321_source" class="dyn-source">
668
+ <pre>
669
+ <span class="ruby-comment cmt"># File lib/facets/core/string/basename.rb, line 8</span>
670
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">basename</span>
671
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^.*::/</span>, <span class="ruby-value str">''</span>)
672
+ <span class="ruby-keyword kw">end</span>
673
+ </pre>
674
+ </div>
675
+ </div>
676
+ </div>
677
+ <div class="method">
678
+ <div class="title">
679
+ <a name="M000311"></a><b>blank?</b>()
680
+ </div>
681
+ <div class="description">
682
+ <p>
683
+ Is this string just whitespace?
684
+ </p>
685
+ <pre>
686
+ &quot;abc&quot;.blank? #=&gt; false
687
+ &quot; &quot;.blank? #=&gt; true
688
+ </pre>
689
+ </div>
690
+ <div class="aka">
691
+ This method is also aliased as
692
+ <a href="String.html#M000312">whitespace?</a>
693
+ <a href="String.html#M000326">whitespace?</a>
694
+ </div>
695
+ <div class="sourcecode">
696
+ <p class="source-link">[ <a href="javascript:toggleSource('M000311_source')" id="l_M000311_source">show source</a> ]</p>
697
+ <div id="M000311_source" class="dyn-source">
698
+ <pre>
699
+ <span class="ruby-comment cmt"># File lib/facets/core/string/blank.rb, line 9</span>
700
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">blank?</span>
701
+ <span class="ruby-keyword kw">self</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/\S/</span>
702
+ <span class="ruby-keyword kw">end</span>
703
+ </pre>
704
+ </div>
705
+ </div>
706
+ </div>
707
+ <div class="method">
708
+ <div class="title">
709
+ <a name="M000366"></a><b>bracket</b>(bra, ket=nil)
710
+ </div>
711
+ <div class="description">
712
+ <p>
713
+ Return a new string embraced by given brakets. If only one bracket char is
714
+ given it will be placed on either side.
715
+ </p>
716
+ <pre>
717
+ &quot;wrap me&quot;.bracket('{') #=&gt; &quot;{wrap me}&quot;
718
+ &quot;wrap me&quot;.bracket('--','!') #=&gt; &quot;--wrap me!&quot;
719
+ </pre>
720
+ </div>
721
+ <div class="sourcecode">
722
+ <p class="source-link">[ <a href="javascript:toggleSource('M000366_source')" id="l_M000366_source">show source</a> ]</p>
723
+ <div id="M000366_source" class="dyn-source">
724
+ <pre>
725
+ <span class="ruby-comment cmt"># File lib/facets/core/string/bracket.rb, line 15</span>
726
+ <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>)
727
+ <span class="ruby-comment cmt">#ket = String.bra2ket[$&amp;] if ! ket &amp;&amp; /^[\[({&lt;]$/ =~ bra</span>
728
+ <span class="ruby-identifier">ket</span> = <span class="ruby-constant">String</span>.<span class="ruby-identifier">bra2ket</span>[<span class="ruby-identifier">bra</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ket</span>
729
+ <span class="ruby-node">&quot;#{bra}#{self}#{ket ? ket : bra}&quot;</span>
730
+ <span class="ruby-keyword kw">end</span>
731
+ </pre>
732
+ </div>
733
+ </div>
734
+ </div>
735
+ <div class="method">
736
+ <div class="title">
737
+ <a name="M000367"></a><b>bracket!</b>(bra, ket=nil)
738
+ </div>
739
+ <div class="description">
740
+ <p>
741
+ Inplace version of braket.
742
+ </p>
743
+ </div>
744
+ <div class="sourcecode">
745
+ <p class="source-link">[ <a href="javascript:toggleSource('M000367_source')" id="l_M000367_source">show source</a> ]</p>
746
+ <div id="M000367_source" class="dyn-source">
747
+ <pre>
748
+ <span class="ruby-comment cmt"># File lib/facets/core/string/bracket.rb, line 22</span>
749
+ <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>)
750
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>( <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bracket</span>(<span class="ruby-identifier">bra</span>, <span class="ruby-identifier">ket</span>) )
751
+ <span class="ruby-keyword kw">end</span>
752
+ </pre>
753
+ </div>
754
+ </div>
755
+ </div>
756
+ <div class="method">
757
+ <div class="title">
758
+ <a name="M000305"></a><b>brief</b>(string, count = 128, force_cutoff = false, ellipsis=&quot;...&quot;)
759
+ </div>
760
+ <div class="description">
761
+ <p>
762
+ Returns short abstract of long strings (first &#8216;count&#8217;
763
+ characters, chopped at the nearest word, appended by &#8217;&#8230;&#8217;)
764
+ force_cutoff: break forcibly at &#8216;count&#8217; chars. Does not accept
765
+ count &lt; 2.
766
+ </p>
767
+ </div>
768
+ <div class="sourcecode">
769
+ <p class="source-link">[ <a href="javascript:toggleSource('M000305_source')" id="l_M000305_source">show source</a> ]</p>
770
+ <div id="M000305_source" class="dyn-source">
771
+ <pre>
772
+ <span class="ruby-comment cmt"># File lib/facets/core/string/brief.rb, line 10</span>
773
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">brief</span>(<span class="ruby-identifier">string</span>, <span class="ruby-identifier">count</span> = <span class="ruby-value">128</span>, <span class="ruby-identifier">force_cutoff</span> = <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">ellipsis</span>=<span class="ruby-value str">&quot;...&quot;</span>)
774
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">string</span>
775
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">count</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">2</span>
776
+
777
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">count</span>
778
+ <span class="ruby-identifier">cut_at</span> = <span class="ruby-identifier">force_cutoff</span> <span class="ruby-value">? </span><span class="ruby-identifier">count</span> <span class="ruby-operator">:</span> (<span class="ruby-identifier">string</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">' '</span>, <span class="ruby-identifier">count</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">count</span>)
779
+ <span class="ruby-identifier">xstring</span> = <span class="ruby-identifier">string</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">cut_at</span>)
780
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">xstring</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">&quot; &quot;</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">ellipsis</span>
781
+ <span class="ruby-keyword kw">else</span>
782
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">string</span>
783
+ <span class="ruby-keyword kw">end</span>
784
+ <span class="ruby-keyword kw">end</span>
785
+ </pre>
786
+ </div>
787
+ </div>
788
+ </div>
789
+ <div class="method">
790
+ <div class="title">
791
+ <a name="M000320"></a><b>bytes</b>()
792
+ </div>
793
+ <div class="description">
794
+ <p>
795
+ Upacks string ginto bytes.
796
+ </p>
797
+ </div>
798
+ <div class="sourcecode">
799
+ <p class="source-link">[ <a href="javascript:toggleSource('M000320_source')" id="l_M000320_source">show source</a> ]</p>
800
+ <div id="M000320_source" class="dyn-source">
801
+ <pre>
802
+ <span class="ruby-comment cmt"># File lib/facets/core/string/bytes.rb, line 6</span>
803
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bytes</span>
804
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">'C*'</span>)
805
+ <span class="ruby-keyword kw">end</span>
806
+ </pre>
807
+ </div>
808
+ </div>
809
+ </div>
810
+ <div class="method">
811
+ <div class="title">
812
+ <a name="M000289"></a><b>camelcase</b>( first=false, on='_\s' )
813
+ </div>
814
+ <div class="description">
815
+ <p>
816
+ Converts a string to camelcase. By default capitalization occurs on
817
+ whitespace and underscores. By setting the first parameter to <tt>true</tt>
818
+ the first character can also be captizlized. The second parameter can be
819
+ assigned a valid Regualr Expression characeter set to determine which
820
+ characters to match for capitalizing subsequent parts of the string.
821
+ </p>
822
+ <pre>
823
+ &quot;this_is a test&quot;.camelcase #=&gt; &quot;thisIsATest&quot;
824
+ &quot;this_is a test&quot;.camelcase(true) #=&gt; &quot;ThisIsATest&quot;
825
+ &quot;this_is a test&quot;.camelcase(true, ' ') #=&gt; &quot;This_isATest&quot;
826
+ </pre>
827
+ </div>
828
+ <div class="sourcecode">
829
+ <p class="source-link">[ <a href="javascript:toggleSource('M000289_source')" id="l_M000289_source">show source</a> ]</p>
830
+ <div id="M000289_source" class="dyn-source">
831
+ <pre>
832
+ <span class="ruby-comment cmt"># File lib/facets/core/string/camelcase.rb, line 16</span>
833
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">camelcase</span>( <span class="ruby-identifier">first</span>=<span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">on</span>=<span class="ruby-value str">'_\s'</span> )
834
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
835
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-node">/(^|[#{on}]+)([A-Za-z])/</span>){ <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">upcase</span> }
836
+ <span class="ruby-keyword kw">else</span>
837
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-node">/([#{on}]+)([A-Za-z])/</span>){ <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">upcase</span> }
838
+ <span class="ruby-keyword kw">end</span>
839
+ <span class="ruby-keyword kw">end</span>
840
+ </pre>
841
+ </div>
842
+ </div>
843
+ </div>
844
+ <div class="method">
845
+ <div class="title">
846
+ <a name="M000333"></a><b>camelize</b>()
847
+ </div>
848
+ <div class="description">
849
+ <p>
850
+ Variation of coverting a string to camelcase. This is unlike <a
851
+ href="String.html#M000289">camelcase</a> in that it is geared toward code
852
+ reflection use.
853
+ </p>
854
+ <pre>
855
+ &quot;this/is_a_test&quot;.camelize #=&gt; This::IsATest
856
+ </pre>
857
+ </div>
858
+ <div class="sourcecode">
859
+ <p class="source-link">[ <a href="javascript:toggleSource('M000333_source')" id="l_M000333_source">show source</a> ]</p>
860
+ <div id="M000333_source" class="dyn-source">
861
+ <pre>
862
+ <span class="ruby-comment cmt"># File lib/facets/core/string/camelize.rb, line 9</span>
863
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">camelize</span>
864
+ <span class="ruby-comment cmt">#to_s.gsub(/(^|_)(.)/){$2.upcase}</span>
865
+ <span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\/(.?)/</span>){ <span class="ruby-value str">&quot;::&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">upcase</span> }.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/(^|_)(.)/</span>){ <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">upcase</span> }
866
+ <span class="ruby-keyword kw">end</span>
867
+ </pre>
868
+ </div>
869
+ </div>
870
+ </div>
871
+ <div class="method">
872
+ <div class="title">
873
+ <a name="M000319"></a><b>capitalized?</b>()
874
+ </div>
875
+ <div class="description">
876
+ <p>
877
+ Return true if the string is capitalized, otherwise false.
878
+ </p>
879
+ <pre>
880
+ &quot;THIS&quot;.capitalized? #=&gt; true
881
+ &quot;This&quot;.capitalized? #=&gt; true
882
+ &quot;this&quot;.capitalized? #=&gt; false
883
+ </pre>
884
+ </div>
885
+ <div class="sourcecode">
886
+ <p class="source-link">[ <a href="javascript:toggleSource('M000319_source')" id="l_M000319_source">show source</a> ]</p>
887
+ <div id="M000319_source" class="dyn-source">
888
+ <pre>
889
+ <span class="ruby-comment cmt"># File lib/facets/core/string/capitalized.rb, line 13</span>
890
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">capitalized?</span>
891
+ <span class="ruby-keyword kw">self</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^[A-Z]/</span>
892
+ <span class="ruby-keyword kw">end</span>
893
+ </pre>
894
+ </div>
895
+ </div>
896
+ </div>
897
+ <div class="method">
898
+ <div class="title">
899
+ <a name="M000314"></a><b>chars</b>()
900
+ </div>
901
+ <div class="description">
902
+ <p>
903
+ Returns an array of characters.
904
+ </p>
905
+ <pre>
906
+ &quot;abc&quot;.chars #=&gt; [&quot;a&quot;,&quot;b&quot;,&quot;c&quot;]
907
+ </pre>
908
+ </div>
909
+ <div class="sourcecode">
910
+ <p class="source-link">[ <a href="javascript:toggleSource('M000314_source')" id="l_M000314_source">show source</a> ]</p>
911
+ <div id="M000314_source" class="dyn-source">
912
+ <pre>
913
+ <span class="ruby-comment cmt"># File lib/facets/core/string/chars.rb, line 8</span>
914
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">chars</span>
915
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">//</span>)
916
+ <span class="ruby-keyword kw">end</span>
917
+ </pre>
918
+ </div>
919
+ </div>
920
+ </div>
921
+ <div class="method">
922
+ <div class="title">
923
+ <a name="M000325"></a><b>cmp</b>(other)
924
+ </div>
925
+ <div class="description">
926
+ <p>
927
+ Compare method that takes length into account. Unlike #&lt;=&gt;, this is
928
+ compatible with <a href="String.html#M000323">succ</a>.
929
+ </p>
930
+ <pre>
931
+ &quot;abc&quot;.cmp(&quot;abc&quot;) #=&gt; 0
932
+ &quot;abcd&quot;.cmp(&quot;abc&quot;) #=&gt; 1
933
+ &quot;abc&quot;.cmp(&quot;abcd&quot;) #=&gt; -1
934
+ &quot;xyz&quot;.cmp(&quot;abc&quot;) #=&gt; 1
935
+ </pre>
936
+ </div>
937
+ <div class="sourcecode">
938
+ <p class="source-link">[ <a href="javascript:toggleSource('M000325_source')" id="l_M000325_source">show source</a> ]</p>
939
+ <div id="M000325_source" class="dyn-source">
940
+ <pre>
941
+ <span class="ruby-comment cmt"># File lib/facets/core/string/cmp.rb, line 12</span>
942
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cmp</span>(<span class="ruby-identifier">other</span>)
943
+ <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>
944
+ <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>
945
+ <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>
946
+ <span class="ruby-keyword kw">end</span>
947
+ </pre>
948
+ </div>
949
+ </div>
950
+ </div>
951
+ <div class="method">
952
+ <div class="title">
953
+ <a name="M000292"></a><b>dequote</b>()
954
+ </div>
955
+ <div class="sourcecode">
956
+ <p class="source-link">[ <a href="javascript:toggleSource('M000292_source')" id="l_M000292_source">show source</a> ]</p>
957
+ <div id="M000292_source" class="dyn-source">
958
+ <pre>
959
+ <span class="ruby-comment cmt"># File lib/facets/core/string/dequote.rb, line 3</span>
960
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dequote</span>
961
+ <span class="ruby-identifier">s</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
962
+
963
+ <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>]
964
+ <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>
965
+ <span class="ruby-identifier">s</span>[<span class="ruby-value">0</span>] = <span class="ruby-value str">''</span>
966
+ <span class="ruby-keyword kw">end</span>
967
+
968
+ <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>]
969
+ <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>
970
+ <span class="ruby-identifier">s</span>[<span class="ruby-value">-1</span>] = <span class="ruby-value str">''</span>
971
+ <span class="ruby-keyword kw">end</span>
972
+
973
+ <span class="ruby-identifier">s</span>
974
+ <span class="ruby-keyword kw">end</span>
975
+ </pre>
976
+ </div>
977
+ </div>
978
+ </div>
979
+ <div class="method">
980
+ <div class="title">
981
+ <a name="M000322"></a><b>downcase?</b>()
982
+ </div>
983
+ <div class="description">
984
+ <p>
985
+ Return true if the string is lowercase (downcase), otherwise false.
986
+ </p>
987
+ <pre>
988
+ &quot;THIS&quot;.downcase? #=&gt; false
989
+ &quot;This&quot;.downcase? #=&gt; false
990
+ &quot;this&quot;.downcase? #=&gt; true
991
+ </pre>
992
+ </div>
993
+ <div class="aka">
994
+ This method is also aliased as
995
+ <a href="String.html#M000357">lowercase?</a>
996
+ </div>
997
+ <div class="sourcecode">
998
+ <p class="source-link">[ <a href="javascript:toggleSource('M000322_source')" id="l_M000322_source">show source</a> ]</p>
999
+ <div id="M000322_source" class="dyn-source">
1000
+ <pre>
1001
+ <span class="ruby-comment cmt"># File lib/facets/core/string/downcase.rb, line 12</span>
1002
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">downcase?</span>
1003
+ <span class="ruby-identifier">downcase</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">self</span>
1004
+ <span class="ruby-keyword kw">end</span>
1005
+ </pre>
1006
+ </div>
1007
+ </div>
1008
+ </div>
1009
+ <div class="method">
1010
+ <div class="title">
1011
+ <a name="M000283"></a><b>dresner</b>()
1012
+ </div>
1013
+ <div class="description">
1014
+ <p>
1015
+ Scramble the inner characters of words leaving the text still readable
1016
+ (research at Cambridge University, code by KurtDresner).
1017
+ </p>
1018
+ <p>
1019
+ For example, the above text may result in:
1020
+ </p>
1021
+ <pre>
1022
+ Srblamce the iennr cchrteaars of wodrs lvenaig the txet stlil rbeaadle
1023
+ (rreceash at Cbamigdre Uverintisy, cdoe by KrneruestDr?)
1024
+ </pre>
1025
+ </div>
1026
+ <div class="sourcecode">
1027
+ <p class="source-link">[ <a href="javascript:toggleSource('M000283_source')" id="l_M000283_source">show source</a> ]</p>
1028
+ <div id="M000283_source" class="dyn-source">
1029
+ <pre>
1030
+ <span class="ruby-comment cmt"># File lib/facets/core/string/dresner.rb, line 12</span>
1031
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dresner</span>
1032
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\B\w+\B/</span>){<span class="ruby-identifier">$&amp;</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">//</span>).<span class="ruby-identifier">sort_by</span>{<span class="ruby-identifier">rand</span>}}
1033
+ <span class="ruby-keyword kw">end</span>
1034
+ </pre>
1035
+ </div>
1036
+ </div>
1037
+ </div>
1038
+ <div class="method">
1039
+ <div class="title">
1040
+ <a name="M000284"></a><b>dresner!</b>()
1041
+ </div>
1042
+ <div class="description">
1043
+ <p>
1044
+ Inplace version of <a href="String.html#M000283">dresner</a> method.
1045
+ </p>
1046
+ </div>
1047
+ <div class="sourcecode">
1048
+ <p class="source-link">[ <a href="javascript:toggleSource('M000284_source')" id="l_M000284_source">show source</a> ]</p>
1049
+ <div id="M000284_source" class="dyn-source">
1050
+ <pre>
1051
+ <span class="ruby-comment cmt"># File lib/facets/core/string/dresner.rb, line 18</span>
1052
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dresner!</span>
1053
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>(<span class="ruby-identifier">dresner</span>)
1054
+ <span class="ruby-keyword kw">end</span>
1055
+ </pre>
1056
+ </div>
1057
+ </div>
1058
+ </div>
1059
+ <div class="method">
1060
+ <div class="title">
1061
+ <a name="M000362"></a><b>each_char</b>( {|| ...}
1062
+ </div>
1063
+ <div class="description">
1064
+ <p>
1065
+ Iterates through each character.
1066
+ </p>
1067
+ </div>
1068
+ <div class="sourcecode">
1069
+ <p class="source-link">[ <a href="javascript:toggleSource('M000362_source')" id="l_M000362_source">show source</a> ]</p>
1070
+ <div id="M000362_source" class="dyn-source">
1071
+ <pre>
1072
+ <span class="ruby-comment cmt"># File lib/facets/core/string/each_char.rb, line 5</span>
1073
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_char</span> <span class="ruby-comment cmt"># :yield:</span>
1074
+ <span class="ruby-identifier">split</span>(<span class="ruby-regexp re">//</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
1075
+ <span class="ruby-keyword kw">yield</span>( <span class="ruby-identifier">c</span> )
1076
+ }
1077
+ <span class="ruby-keyword kw">end</span>
1078
+ </pre>
1079
+ </div>
1080
+ </div>
1081
+ </div>
1082
+ <div class="method">
1083
+ <div class="title">
1084
+ <a name="M000364"></a><b>each_word</b>( &amp;yld )
1085
+ </div>
1086
+ <div class="description">
1087
+ <p>
1088
+ Iterate through each word of a string.
1089
+ </p>
1090
+ <pre>
1091
+ &quot;a string&quot;.each_word { |word, range| ... }
1092
+ </pre>
1093
+ </div>
1094
+ <div class="sourcecode">
1095
+ <p class="source-link">[ <a href="javascript:toggleSource('M000364_source')" id="l_M000364_source">show source</a> ]</p>
1096
+ <div id="M000364_source" class="dyn-source">
1097
+ <pre>
1098
+ <span class="ruby-comment cmt"># File lib/facets/core/string/each_word.rb, line 8</span>
1099
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_word</span>( <span class="ruby-operator">&amp;</span><span class="ruby-identifier">yld</span> )
1100
+ <span class="ruby-identifier">rest_of_string</span> = <span class="ruby-keyword kw">self</span>
1101
+ <span class="ruby-identifier">wordfind</span> = <span class="ruby-regexp re">/([-'\w]+)/</span>
1102
+ <span class="ruby-identifier">arity</span> = <span class="ruby-identifier">yld</span>.<span class="ruby-identifier">arity</span>
1103
+ <span class="ruby-identifier">offset</span> = <span class="ruby-value">0</span>
1104
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">wmatch</span> = <span class="ruby-identifier">wordfind</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">rest_of_string</span>)
1105
+ <span class="ruby-identifier">word</span> = <span class="ruby-identifier">wmatch</span>[<span class="ruby-value">0</span>]
1106
+ <span class="ruby-identifier">range</span> = <span class="ruby-identifier">offset</span><span class="ruby-operator">+</span><span class="ruby-identifier">wmatch</span>.<span class="ruby-identifier">begin</span>(<span class="ruby-value">0</span>) <span class="ruby-operator">...</span> <span class="ruby-identifier">offset</span><span class="ruby-operator">+</span><span class="ruby-identifier">wmatch</span>.<span class="ruby-identifier">end</span>(<span class="ruby-value">0</span>)
1107
+ <span class="ruby-identifier">rest_of_string</span> = <span class="ruby-identifier">wmatch</span>.<span class="ruby-identifier">post_match</span>
1108
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arity</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
1109
+ <span class="ruby-identifier">yld</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">word</span>)
1110
+ <span class="ruby-keyword kw">else</span>
1111
+ <span class="ruby-identifier">yld</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">word</span>, <span class="ruby-identifier">range</span>)
1112
+ <span class="ruby-keyword kw">end</span>
1113
+ <span class="ruby-identifier">offset</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">rest_of_string</span>.<span class="ruby-identifier">length</span>
1114
+ <span class="ruby-keyword kw">end</span>
1115
+ <span class="ruby-keyword kw">end</span>
1116
+ </pre>
1117
+ </div>
1118
+ </div>
1119
+ </div>
1120
+ <div class="method">
1121
+ <div class="title">
1122
+ <a name="M000317"></a><b>ends_with?</b>(str)
1123
+ </div>
1124
+ <div class="sourcecode">
1125
+ <p class="source-link">[ <a href="javascript:toggleSource('M000317_source')" id="l_M000317_source">show source</a> ]</p>
1126
+ <div id="M000317_source" class="dyn-source">
1127
+ <pre>
1128
+ <span class="ruby-comment cmt"># File lib/facets/core/string/starts_with.rb, line 11</span>
1129
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ends_with?</span>(<span class="ruby-identifier">str</span>)
1130
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">rindex</span>( <span class="ruby-identifier">str</span> ) <span class="ruby-operator">==</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>
1131
+ <span class="ruby-keyword kw">end</span>
1132
+ </pre>
1133
+ </div>
1134
+ </div>
1135
+ </div>
1136
+ <div class="method">
1137
+ <div class="title">
1138
+ <a name="M000279"></a><b>entropy</b>()
1139
+ </div>
1140
+ <div class="sourcecode">
1141
+ <p class="source-link">[ <a href="javascript:toggleSource('M000279_source')" id="l_M000279_source">show source</a> ]</p>
1142
+ <div id="M000279_source" class="dyn-source">
1143
+ <pre>
1144
+ <span class="ruby-comment cmt"># File lib/facets/core/enumerable/entropy.rb, line 27</span>
1145
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">entropy</span>
1146
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">//</span>).<span class="ruby-identifier">entropy</span>
1147
+ <span class="ruby-keyword kw">end</span>
1148
+ </pre>
1149
+ </div>
1150
+ </div>
1151
+ </div>
1152
+ <div class="method">
1153
+ <div class="title">
1154
+ <a name="M000329"></a><b>first</b>(separator_pattern=//)
1155
+ </div>
1156
+ <div class="description">
1157
+ <p>
1158
+ Returns the first separation of a string. Default seperation is by
1159
+ character.
1160
+ </p>
1161
+ <pre>
1162
+ &quot;Hello World&quot;.first #=&gt; &quot;H&quot;
1163
+ &quot;Hello World&quot;.first(' ') #=&gt; &quot;Hello&quot;
1164
+ </pre>
1165
+ </div>
1166
+ <div class="sourcecode">
1167
+ <p class="source-link">[ <a href="javascript:toggleSource('M000329_source')" id="l_M000329_source">show source</a> ]</p>
1168
+ <div id="M000329_source" class="dyn-source">
1169
+ <pre>
1170
+ <span class="ruby-comment cmt"># File lib/facets/core/string/first.rb, line 14</span>
1171
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">first</span>(<span class="ruby-identifier">separator_pattern</span>=<span class="ruby-regexp re">//</span>)
1172
+ <span class="ruby-identifier">pattern</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">patterns</span>(<span class="ruby-identifier">separator_pattern</span>)
1173
+ <span class="ruby-identifier">split</span>(<span class="ruby-identifier">separator_pattern</span>).<span class="ruby-identifier">at</span>(<span class="ruby-value">0</span>)
1174
+ <span class="ruby-keyword kw">end</span>
1175
+ </pre>
1176
+ </div>
1177
+ </div>
1178
+ </div>
1179
+ <div class="method">
1180
+ <div class="title">
1181
+ <a name="M000330"></a><b>first!</b>(separator_pattern=//)
1182
+ </div>
1183
+ <div class="description">
1184
+ <p>
1185
+ Removes the first separation from a string. Defualt separation is by
1186
+ characters.
1187
+ </p>
1188
+ <pre>
1189
+ a = &quot;Hello World&quot;
1190
+ a.first! #=&gt; &quot;H&quot;
1191
+ a #=&gt; &quot;ello World&quot;
1192
+
1193
+ a = &quot;Hello World&quot;
1194
+ a.first!(' ') #=&gt; &quot;Hello&quot;
1195
+ a #=&gt; &quot;World&quot;
1196
+ </pre>
1197
+ </div>
1198
+ <div class="sourcecode">
1199
+ <p class="source-link">[ <a href="javascript:toggleSource('M000330_source')" id="l_M000330_source">show source</a> ]</p>
1200
+ <div id="M000330_source" class="dyn-source">
1201
+ <pre>
1202
+ <span class="ruby-comment cmt"># File lib/facets/core/string/first.rb, line 36</span>
1203
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">first!</span>(<span class="ruby-identifier">separator_pattern</span>=<span class="ruby-regexp re">//</span>)
1204
+ <span class="ruby-identifier">pattern</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">patterns</span>(<span class="ruby-identifier">separator_pattern</span>)
1205
+ <span class="ruby-identifier">a</span> = <span class="ruby-identifier">shatter</span>(<span class="ruby-identifier">pattern</span>)
1206
+ <span class="ruby-identifier">r</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">first</span>
1207
+ <span class="ruby-identifier">a</span>.<span class="ruby-identifier">shift</span>
1208
+ <span class="ruby-identifier">a</span>.<span class="ruby-identifier">shift</span>
1209
+ <span class="ruby-identifier">replace</span>( <span class="ruby-identifier">a</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">''</span>) )
1210
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">r</span>
1211
+ <span class="ruby-keyword kw">end</span>
1212
+ </pre>
1213
+ </div>
1214
+ </div>
1215
+ </div>
1216
+ <div class="method">
1217
+ <div class="title">
1218
+ <a name="M000331"></a><b>first=</b>( x )
1219
+ </div>
1220
+ <div class="description">
1221
+ <p>
1222
+ Prepends to a string.
1223
+ </p>
1224
+ <pre>
1225
+ &quot;Hello World&quot;.first = &quot;Hello,&quot; #=&gt; &quot;Hello, Hello World&quot;
1226
+ </pre>
1227
+ </div>
1228
+ <div class="sourcecode">
1229
+ <p class="source-link">[ <a href="javascript:toggleSource('M000331_source')" id="l_M000331_source">show source</a> ]</p>
1230
+ <div id="M000331_source" class="dyn-source">
1231
+ <pre>
1232
+ <span class="ruby-comment cmt"># File lib/facets/core/string/first.rb, line 52</span>
1233
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">first=</span>( <span class="ruby-identifier">x</span> )
1234
+ <span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">x</span>.<span class="ruby-identifier">to_s</span>)
1235
+ <span class="ruby-keyword kw">end</span>
1236
+ </pre>
1237
+ </div>
1238
+ </div>
1239
+ </div>
1240
+ <div class="method">
1241
+ <div class="title">
1242
+ <a name="M000318"></a><b>first_char</b>(n=1)
1243
+ </div>
1244
+ <div class="description">
1245
+ <p>
1246
+ Returns first <em>n</em> characters.
1247
+ </p>
1248
+ <pre>
1249
+ &quot;Hello World&quot;.first_char(3) #=&gt; &quot;Hel&quot;
1250
+ </pre>
1251
+ </div>
1252
+ <div class="sourcecode">
1253
+ <p class="source-link">[ <a href="javascript:toggleSource('M000318_source')" id="l_M000318_source">show source</a> ]</p>
1254
+ <div id="M000318_source" class="dyn-source">
1255
+ <pre>
1256
+ <span class="ruby-comment cmt"># File lib/facets/core/string/first_char.rb, line 8</span>
1257
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">first_char</span>(<span class="ruby-identifier">n</span>=<span class="ruby-value">1</span>)
1258
+ <span class="ruby-identifier">slice</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_i</span>)
1259
+ <span class="ruby-keyword kw">end</span>
1260
+ </pre>
1261
+ </div>
1262
+ </div>
1263
+ </div>
1264
+ <div class="method">
1265
+ <div class="title">
1266
+ <a name="M000332"></a><b>fold</b>(ignore_indented=false)
1267
+ </div>
1268
+ <div class="description">
1269
+ <p>
1270
+ Returns a new string with all new lines removed from adjacent lines of
1271
+ text.
1272
+ </p>
1273
+ <pre>
1274
+ s = &quot;This is\na test.\n\nIt clumps\nlines of text.&quot;
1275
+ s.fold
1276
+ </pre>
1277
+ <p>
1278
+ <em>produces</em>
1279
+ </p>
1280
+ <pre>
1281
+ &quot;This is a test.\n\nIt clumps lines of text. &quot;
1282
+ </pre>
1283
+ </div>
1284
+ <div class="sourcecode">
1285
+ <p class="source-link">[ <a href="javascript:toggleSource('M000332_source')" id="l_M000332_source">show source</a> ]</p>
1286
+ <div id="M000332_source" class="dyn-source">
1287
+ <pre>
1288
+ <span class="ruby-comment cmt"># File lib/facets/core/string/fold.rb, line 19</span>
1289
+ <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>)
1290
+ <span class="ruby-identifier">ns</span> = <span class="ruby-value str">''</span>
1291
+ <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1292
+ <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>
1293
+ <span class="ruby-identifier">b</span> = <span class="ruby-identifier">$~</span>.<span class="ruby-identifier">begin</span>(<span class="ruby-value">1</span>)
1294
+ <span class="ruby-identifier">e</span> = <span class="ruby-identifier">$~</span>.<span class="ruby-identifier">end</span>(<span class="ruby-value">1</span>)
1295
+ <span class="ruby-identifier">nl</span> = <span class="ruby-identifier">$&amp;</span>
1296
+ <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>)
1297
+ <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>
1298
+ <span class="ruby-identifier">ns</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">tx</span>
1299
+ <span class="ruby-keyword kw">else</span>
1300
+ <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>)
1301
+ <span class="ruby-keyword kw">end</span>
1302
+ <span class="ruby-identifier">ns</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">nl</span>
1303
+ <span class="ruby-identifier">i</span> = <span class="ruby-identifier">e</span>
1304
+ <span class="ruby-keyword kw">end</span>
1305
+ <span class="ruby-identifier">ns</span>
1306
+ <span class="ruby-keyword kw">end</span>
1307
+ </pre>
1308
+ </div>
1309
+ </div>
1310
+ </div>
1311
+ <div class="method">
1312
+ <div class="title">
1313
+ <a name="M000352"></a><b>format</b>( *args )
1314
+ </div>
1315
+ <div class="sourcecode">
1316
+ <p class="source-link">[ <a href="javascript:toggleSource('M000352_source')" id="l_M000352_source">show source</a> ]</p>
1317
+ <div id="M000352_source" class="dyn-source">
1318
+ <pre>
1319
+ <span class="ruby-comment cmt"># File lib/facets/core/string/format.rb, line 4</span>
1320
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">format</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">args</span> )
1321
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-operator">%</span>(<span class="ruby-identifier">args</span>)
1322
+ <span class="ruby-keyword kw">end</span>
1323
+ </pre>
1324
+ </div>
1325
+ </div>
1326
+ </div>
1327
+ <div class="method">
1328
+ <div class="title">
1329
+ <a name="M000356"></a><b>frequency</b>(*args)
1330
+ </div>
1331
+ <div class="sourcecode">
1332
+ <p class="source-link">[ <a href="javascript:toggleSource('M000356_source')" id="l_M000356_source">show source</a> ]</p>
1333
+ <div id="M000356_source" class="dyn-source">
1334
+ <pre>
1335
+ <span class="ruby-comment cmt"># File lib/facets/core/string/frequency.rb, line 7</span>
1336
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">frequency</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
1337
+ <span class="ruby-identifier">to_arr</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>).<span class="ruby-identifier">frequency</span>
1338
+ <span class="ruby-keyword kw">end</span>
1339
+ </pre>
1340
+ </div>
1341
+ </div>
1342
+ </div>
1343
+ <div class="method">
1344
+ <div class="title">
1345
+ <a name="M000307"></a><b>fuzzy_match</b>( str_in )
1346
+ </div>
1347
+ <div class="description">
1348
+ <p>
1349
+ Alias for <a href="String.html#M000306">similarity</a>
1350
+ </p>
1351
+ </div>
1352
+ </div>
1353
+ <div class="method">
1354
+ <div class="title">
1355
+ <a name="M000290"></a><b>humanize</b>()
1356
+ </div>
1357
+ <div class="description">
1358
+ <p>
1359
+ Replaces underscores with spaces and capitalizes word.
1360
+ </p>
1361
+ </div>
1362
+ <div class="sourcecode">
1363
+ <p class="source-link">[ <a href="javascript:toggleSource('M000290_source')" id="l_M000290_source">show source</a> ]</p>
1364
+ <div id="M000290_source" class="dyn-source">
1365
+ <pre>
1366
+ <span class="ruby-comment cmt"># File lib/facets/core/string/humanize.rb, line 6</span>
1367
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">humanize</span>
1368
+ <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>
1369
+ <span class="ruby-keyword kw">end</span>
1370
+ </pre>
1371
+ </div>
1372
+ </div>
1373
+ </div>
1374
+ <div class="method">
1375
+ <div class="title">
1376
+ <a name="M000349"></a><b>indent</b>(n)
1377
+ </div>
1378
+ <div class="description">
1379
+ <p>
1380
+ Indent left or right by n spaces. (This used to be called <a
1381
+ href="String.html#M000347">tab</a> and aliased as <a
1382
+ href="String.html#M000349">indent</a>.)
1383
+ </p>
1384
+ </div>
1385
+ <div class="sourcecode">
1386
+ <p class="source-link">[ <a href="javascript:toggleSource('M000349_source')" id="l_M000349_source">show source</a> ]</p>
1387
+ <div id="M000349_source" class="dyn-source">
1388
+ <pre>
1389
+ <span class="ruby-comment cmt"># File lib/facets/core/string/indent.rb, line 25</span>
1390
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">n</span>)
1391
+ <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>
1392
+ <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>)
1393
+ <span class="ruby-keyword kw">else</span>
1394
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-node">/^ {0,#{-n}}/</span>, <span class="ruby-value str">&quot;&quot;</span>)
1395
+ <span class="ruby-keyword kw">end</span>
1396
+ <span class="ruby-keyword kw">end</span>
1397
+ </pre>
1398
+ </div>
1399
+ </div>
1400
+ </div>
1401
+ <div class="method">
1402
+ <div class="title">
1403
+ <a name="M000368"></a><b>index_all</b>(s, reuse=false)
1404
+ </div>
1405
+ <div class="description">
1406
+ <p>
1407
+ Like index but returns an array of all index locations. The reuse flag
1408
+ allows the trailing portion of a match to be reused for subsquent matches.
1409
+ </p>
1410
+ <pre>
1411
+ &quot;abcabcabc&quot;.index_all('a') #=&gt; [0,3,6]
1412
+ </pre>
1413
+ </div>
1414
+ <div class="sourcecode">
1415
+ <p class="source-link">[ <a href="javascript:toggleSource('M000368_source')" id="l_M000368_source">show source</a> ]</p>
1416
+ <div id="M000368_source" class="dyn-source">
1417
+ <pre>
1418
+ <span class="ruby-comment cmt"># File lib/facets/core/string/index_all.rb, line 10</span>
1419
+ <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>)
1420
+ <span class="ruby-identifier">ia</span> = []; <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1421
+ <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">i</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">s</span>,<span class="ruby-identifier">i</span>))
1422
+ <span class="ruby-identifier">ia</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">i</span>
1423
+ <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-identifier">length</span>)
1424
+ <span class="ruby-keyword kw">end</span>
1425
+ <span class="ruby-identifier">ia</span>
1426
+ <span class="ruby-keyword kw">end</span>
1427
+ </pre>
1428
+ </div>
1429
+ </div>
1430
+ </div>
1431
+ <div class="method">
1432
+ <div class="title">
1433
+ <a name="M000295"></a><b>last</b>(separator_pattern=//)
1434
+ </div>
1435
+ <div class="description">
1436
+ <p>
1437
+ Returns the last separation of a string. Default separation is by
1438
+ character.
1439
+ </p>
1440
+ <pre>
1441
+ &quot;Hello World&quot;.last(' ') #=&gt; &quot;World&quot;
1442
+ </pre>
1443
+ </div>
1444
+ <div class="sourcecode">
1445
+ <p class="source-link">[ <a href="javascript:toggleSource('M000295_source')" id="l_M000295_source">show source</a> ]</p>
1446
+ <div id="M000295_source" class="dyn-source">
1447
+ <pre>
1448
+ <span class="ruby-comment cmt"># File lib/facets/core/string/last.rb, line 13</span>
1449
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last</span>(<span class="ruby-identifier">separator_pattern</span>=<span class="ruby-regexp re">//</span>)
1450
+ <span class="ruby-identifier">pattern</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">patterns</span>(<span class="ruby-identifier">separator_pattern</span>)
1451
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">split</span>(<span class="ruby-identifier">separator_pattern</span>).<span class="ruby-identifier">at</span>(<span class="ruby-value">-1</span>)
1452
+ <span class="ruby-keyword kw">end</span>
1453
+ </pre>
1454
+ </div>
1455
+ </div>
1456
+ </div>
1457
+ <div class="method">
1458
+ <div class="title">
1459
+ <a name="M000297"></a><b>last!</b>(separator_pattern=//)
1460
+ </div>
1461
+ <div class="description">
1462
+ <p>
1463
+ Removes the last separation from a string. Default seperation is by
1464
+ characeter.
1465
+ </p>
1466
+ <pre>
1467
+ a = &quot;Hello World&quot;
1468
+ a.last! #=&gt; &quot;d&quot;
1469
+ a #=&gt; &quot;Hello Worl&quot;
1470
+
1471
+ a = &quot;Hello World&quot;
1472
+ a.last!(' ') #=&gt; &quot;World&quot;
1473
+ a #=&gt; &quot;Hello&quot;
1474
+ </pre>
1475
+ </div>
1476
+ <div class="sourcecode">
1477
+ <p class="source-link">[ <a href="javascript:toggleSource('M000297_source')" id="l_M000297_source">show source</a> ]</p>
1478
+ <div id="M000297_source" class="dyn-source">
1479
+ <pre>
1480
+ <span class="ruby-comment cmt"># File lib/facets/core/string/last.rb, line 43</span>
1481
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last!</span>(<span class="ruby-identifier">separator_pattern</span>=<span class="ruby-regexp re">//</span>)
1482
+ <span class="ruby-identifier">pattern</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">patterns</span>(<span class="ruby-identifier">separator_pattern</span>)
1483
+ <span class="ruby-identifier">a</span> = <span class="ruby-identifier">shatter</span>(<span class="ruby-identifier">pattern</span>)
1484
+ <span class="ruby-identifier">r</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">last</span>
1485
+ <span class="ruby-identifier">a</span>.<span class="ruby-identifier">pop</span>
1486
+ <span class="ruby-identifier">a</span>.<span class="ruby-identifier">pop</span>
1487
+ <span class="ruby-identifier">replace</span>( <span class="ruby-identifier">a</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">''</span>) )
1488
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">r</span>
1489
+ <span class="ruby-keyword kw">end</span>
1490
+ </pre>
1491
+ </div>
1492
+ </div>
1493
+ </div>
1494
+ <div class="method">
1495
+ <div class="title">
1496
+ <a name="M000296"></a><b>last=</b>(str)
1497
+ </div>
1498
+ <div class="description">
1499
+ <p>
1500
+ Appends to a string.
1501
+ </p>
1502
+ <pre>
1503
+ &quot;Hello World&quot;.last = &quot;, Bye.&quot; #=&gt; &quot;Hello World, Bye.&quot;
1504
+ </pre>
1505
+ </div>
1506
+ <div class="sourcecode">
1507
+ <p class="source-link">[ <a href="javascript:toggleSource('M000296_source')" id="l_M000296_source">show source</a> ]</p>
1508
+ <div id="M000296_source" class="dyn-source">
1509
+ <pre>
1510
+ <span class="ruby-comment cmt"># File lib/facets/core/string/last.rb, line 22</span>
1511
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last=</span>(<span class="ruby-identifier">str</span>)
1512
+ <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">str</span>
1513
+ <span class="ruby-keyword kw">end</span>
1514
+ </pre>
1515
+ </div>
1516
+ </div>
1517
+ </div>
1518
+ <div class="method">
1519
+ <div class="title">
1520
+ <a name="M000341"></a><b>last_char</b>(n=1)
1521
+ </div>
1522
+ <div class="description">
1523
+ <p>
1524
+ Returns last <em>n</em> characters.
1525
+ </p>
1526
+ <pre>
1527
+ &quot;Hello World&quot;.last_char(3) #=&gt; &quot;rld&quot;
1528
+ </pre>
1529
+ </div>
1530
+ <div class="sourcecode">
1531
+ <p class="source-link">[ <a href="javascript:toggleSource('M000341_source')" id="l_M000341_source">show source</a> ]</p>
1532
+ <div id="M000341_source" class="dyn-source">
1533
+ <pre>
1534
+ <span class="ruby-comment cmt"># File lib/facets/core/string/last_char.rb, line 8</span>
1535
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last_char</span>(<span class="ruby-identifier">n</span>=<span class="ruby-value">1</span>)
1536
+ <span class="ruby-identifier">n</span> = <span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_i</span>
1537
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">size</span>
1538
+ <span class="ruby-identifier">slice</span>(<span class="ruby-operator">-</span><span class="ruby-identifier">n</span>, <span class="ruby-identifier">n</span>) <span class="ruby-comment cmt">#self[-n..-1]</span>
1539
+ <span class="ruby-keyword kw">end</span>
1540
+ </pre>
1541
+ </div>
1542
+ </div>
1543
+ </div>
1544
+ <div class="method">
1545
+ <div class="title">
1546
+ <a name="M000342"></a><b>line_wrap</b>(width)
1547
+ </div>
1548
+ <div class="description">
1549
+ <p>
1550
+ Line wrap at width.
1551
+ </p>
1552
+ <pre>
1553
+ puts &quot;1234567890&quot;.line_wrap(5)
1554
+ </pre>
1555
+ <p>
1556
+ <em>produces</em>
1557
+ </p>
1558
+ <pre>
1559
+ 12345
1560
+ 67890
1561
+ </pre>
1562
+ </div>
1563
+ <div class="sourcecode">
1564
+ <p class="source-link">[ <a href="javascript:toggleSource('M000342_source')" id="l_M000342_source">show source</a> ]</p>
1565
+ <div id="M000342_source" class="dyn-source">
1566
+ <pre>
1567
+ <span class="ruby-comment cmt"># File lib/facets/core/string/line_wrap.rb, line 13</span>
1568
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">line_wrap</span>(<span class="ruby-identifier">width</span>)
1569
+ <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-value">4</span>) <span class="ruby-comment cmt"># tabs default to 4 spaces.</span>
1570
+ <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>)
1571
+ <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> )
1572
+ <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>
1573
+ <span class="ruby-keyword kw">end</span>
1574
+ </pre>
1575
+ </div>
1576
+ </div>
1577
+ </div>
1578
+ <div class="method">
1579
+ <div class="title">
1580
+ <a name="M000378"></a><b>lines</b>()
1581
+ </div>
1582
+ <div class="description">
1583
+ <p>
1584
+ Returns an array of characters.
1585
+ </p>
1586
+ <pre>
1587
+ &quot;abc\n123&quot;.lines #=&gt; [&quot;abc&quot;,&quot;123&quot;]
1588
+ </pre>
1589
+ </div>
1590
+ <div class="sourcecode">
1591
+ <p class="source-link">[ <a href="javascript:toggleSource('M000378_source')" id="l_M000378_source">show source</a> ]</p>
1592
+ <div id="M000378_source" class="dyn-source">
1593
+ <pre>
1594
+ <span class="ruby-comment cmt"># File lib/facets/core/string/lines.rb, line 8</span>
1595
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lines</span>
1596
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\n/</span>)
1597
+ <span class="ruby-keyword kw">end</span>
1598
+ </pre>
1599
+ </div>
1600
+ </div>
1601
+ </div>
1602
+ <div class="method">
1603
+ <div class="title">
1604
+ <a name="M000357"></a><b>lowercase?</b>()
1605
+ </div>
1606
+ <div class="description">
1607
+ <p>
1608
+ Alias for <a href="String.html#M000322">downcase?</a>
1609
+ </p>
1610
+ </div>
1611
+ </div>
1612
+ <div class="method">
1613
+ <div class="title">
1614
+ <a name="M000291"></a><b>margin</b>(n=0)
1615
+ </div>
1616
+ <div class="description">
1617
+ <p>
1618
+ Provides a margin controlled string.
1619
+ </p>
1620
+ <pre>
1621
+ x = %Q{
1622
+ | This
1623
+ | is
1624
+ | margin controlled!
1625
+ }.margin
1626
+ </pre>
1627
+ </div>
1628
+ <div class="sourcecode">
1629
+ <p class="source-link">[ <a href="javascript:toggleSource('M000291_source')" id="l_M000291_source">show source</a> ]</p>
1630
+ <div id="M000291_source" class="dyn-source">
1631
+ <pre>
1632
+ <span class="ruby-comment cmt"># File lib/facets/core/string/margin.rb, line 15</span>
1633
+ <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>)
1634
+ <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-value">1</span>]
1635
+ <span class="ruby-identifier">d</span> = <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>] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">d</span>
1636
+ <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>
1637
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1638
+ <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>)
1639
+ <span class="ruby-keyword kw">else</span>
1640
+ <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>)
1641
+ <span class="ruby-keyword kw">end</span>
1642
+ <span class="ruby-keyword kw">end</span>
1643
+ </pre>
1644
+ </div>
1645
+ </div>
1646
+ </div>
1647
+ <div class="method">
1648
+ <div class="title">
1649
+ <a name="M000381"></a><b>methodize</b>()
1650
+ </div>
1651
+ <div class="description">
1652
+ <p>
1653
+ Converts a string into a valid ruby method name This method is geared
1654
+ toward code reflection.
1655
+ </p>
1656
+ <pre>
1657
+ &quot;MyModule::MyClass&quot;.methodize #=&gt; &quot;my_module__my_class&quot;
1658
+ </pre>
1659
+ <p>
1660
+ See also <a href="String.html#M000379">String#modulize</a>, <a
1661
+ href="String.html#M000380">String#pathize</a>
1662
+ </p>
1663
+ <h2>TODO</h2>
1664
+ <ul>
1665
+ <li>Make sure that all scenarios return a valid ruby class name
1666
+
1667
+ </li>
1668
+ <li>Make sure it is revertible
1669
+
1670
+ </li>
1671
+ </ul>
1672
+ </div>
1673
+ <div class="sourcecode">
1674
+ <p class="source-link">[ <a href="javascript:toggleSource('M000381_source')" id="l_M000381_source">show source</a> ]</p>
1675
+ <div id="M000381_source" class="dyn-source">
1676
+ <pre>
1677
+ <span class="ruby-comment cmt"># File lib/facets/core/string/methodize.rb, line 18</span>
1678
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">methodize</span>
1679
+ <span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([A-Z])/</span>, <span class="ruby-value str">'_\1'</span>).<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^_/</span>,<span class="ruby-value str">''</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/(::|\/)_?/</span>, <span class="ruby-value str">'__'</span>)
1680
+ <span class="ruby-keyword kw">end</span>
1681
+ </pre>
1682
+ </div>
1683
+ </div>
1684
+ </div>
1685
+ <div class="method">
1686
+ <div class="title">
1687
+ <a name="M000379"></a><b>modulize</b>()
1688
+ </div>
1689
+ <div class="description">
1690
+ <p>
1691
+ Converts a string into a valid ruby class or module name This method is
1692
+ geared toward code reflection.
1693
+ </p>
1694
+ <pre>
1695
+ &quot;my_module__my_path&quot;.modulize #=&gt; &quot;MyModule::MyPath&quot;
1696
+ </pre>
1697
+ <p>
1698
+ See also <a href="String.html#M000381">String#methodize</a>, <a
1699
+ href="String.html#M000380">String#pathize</a>
1700
+ </p>
1701
+ <p>
1702
+ TODO
1703
+ </p>
1704
+ <ul>
1705
+ <li>Make sure that all scenarios return a valid ruby class name
1706
+
1707
+ </li>
1708
+ <li>Make sure it is revertible
1709
+
1710
+ </li>
1711
+ </ul>
1712
+ </div>
1713
+ <div class="sourcecode">
1714
+ <p class="source-link">[ <a href="javascript:toggleSource('M000379_source')" id="l_M000379_source">show source</a> ]</p>
1715
+ <div id="M000379_source" class="dyn-source">
1716
+ <pre>
1717
+ <span class="ruby-comment cmt"># File lib/facets/core/string/modulize.rb, line 16</span>
1718
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">modulize</span>
1719
+ <span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/(__|\/)(.?)/</span>){ <span class="ruby-value str">&quot;::&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">upcase</span> }.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/(^|_)(.)/</span>){ <span class="ruby-identifier">$2</span>.<span class="ruby-identifier">upcase</span> }
1720
+ <span class="ruby-keyword kw">end</span>
1721
+ </pre>
1722
+ </div>
1723
+ </div>
1724
+ </div>
1725
+ <div class="method">
1726
+ <div class="title">
1727
+ <a name="M000374"></a><b>mscan</b>(re) {|| ...}
1728
+ </div>
1729
+ <div class="description">
1730
+ <p>
1731
+ Like scan but returns <a href="MatchData.html">MatchData</a> ($~) rather
1732
+ then matched string ($&amp;).
1733
+ </p>
1734
+ </div>
1735
+ <div class="sourcecode">
1736
+ <p class="source-link">[ <a href="javascript:toggleSource('M000374_source')" id="l_M000374_source">show source</a> ]</p>
1737
+ <div id="M000374_source" class="dyn-source">
1738
+ <pre>
1739
+ <span class="ruby-comment cmt"># File lib/facets/core/string/mscan.rb, line 7</span>
1740
+ <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>
1741
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
1742
+ <span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>) { <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">$~</span>) }
1743
+ <span class="ruby-keyword kw">else</span>
1744
+ <span class="ruby-identifier">m</span> = []
1745
+ <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> }
1746
+ <span class="ruby-identifier">m</span>
1747
+ <span class="ruby-keyword kw">end</span>
1748
+ <span class="ruby-keyword kw">end</span>
1749
+ </pre>
1750
+ </div>
1751
+ </div>
1752
+ </div>
1753
+ <div class="method">
1754
+ <div class="title">
1755
+ <a name="M000377"></a><b>natcmp</b>(str2, caseInsensitive=false)
1756
+ </div>
1757
+ <div class="description">
1758
+ <p>
1759
+ &#8216;Natural order&#8217; comparison of two strings, e.g.
1760
+ </p>
1761
+ <pre>
1762
+ &quot;my_prog_v1.1.0&quot; &lt; &quot;my_prog_v1.2.0&quot; &lt; &quot;my_prog_v1.10.0&quot;
1763
+ </pre>
1764
+ <p>
1765
+ which does not follow alphabetically. A secondary parameter, if set to
1766
+ <em>true</em>, makes the comparison case insensitive.
1767
+ </p>
1768
+ <pre>
1769
+ &quot;Hello.10&quot;.natcmp(&quot;Hello.1&quot;) #=&gt; -1
1770
+ </pre>
1771
+ </div>
1772
+ <div class="sourcecode">
1773
+ <p class="source-link">[ <a href="javascript:toggleSource('M000377_source')" id="l_M000377_source">show source</a> ]</p>
1774
+ <div id="M000377_source" class="dyn-source">
1775
+ <pre>
1776
+ <span class="ruby-comment cmt"># File lib/facets/core/string/natcmp.rb, line 42</span>
1777
+ <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>)
1778
+ <span class="ruby-identifier">str1</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
1779
+ <span class="ruby-identifier">str2</span> = <span class="ruby-identifier">str2</span>.<span class="ruby-identifier">dup</span>
1780
+ <span class="ruby-identifier">compareExpression</span> = <span class="ruby-regexp re">/^(\D*)(\d*)(.*)$/</span>
1781
+
1782
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">caseInsensitive</span>
1783
+ <span class="ruby-identifier">str1</span>.<span class="ruby-identifier">downcase!</span>
1784
+ <span class="ruby-identifier">str2</span>.<span class="ruby-identifier">downcase!</span>
1785
+ <span class="ruby-keyword kw">end</span>
1786
+
1787
+ <span class="ruby-comment cmt"># remove all whitespace</span>
1788
+ <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>)
1789
+ <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>)
1790
+
1791
+ <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>
1792
+ <span class="ruby-comment cmt"># Extract non-digits, digits and rest of string</span>
1793
+ <span class="ruby-identifier">str1</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">compareExpression</span>
1794
+ <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>
1795
+ <span class="ruby-identifier">str2</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">compareExpression</span>
1796
+ <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>
1797
+ <span class="ruby-comment cmt"># Compare the non-digits</span>
1798
+ <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>)
1799
+ <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>
1800
+ <span class="ruby-comment cmt"># If either number begins with a zero, then compare alphabetically,</span>
1801
+ <span class="ruby-comment cmt"># otherwise compare numerically</span>
1802
+ <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>)
1803
+ <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>
1804
+ <span class="ruby-keyword kw">end</span>
1805
+ <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>)
1806
+ <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>
1807
+ <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>
1808
+ <span class="ruby-keyword kw">end</span>
1809
+ <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>
1810
+ <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>
1811
+ <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># case</span>
1812
+ <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># while</span>
1813
+
1814
+ <span class="ruby-comment cmt"># strings are naturally equal.</span>
1815
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span>
1816
+ <span class="ruby-keyword kw">end</span>
1817
+
1818
+ <span class="ruby-keyword kw">end</span>
1819
+ </pre>
1820
+ </div>
1821
+ </div>
1822
+ </div>
1823
+ <div class="method">
1824
+ <div class="title">
1825
+ <a name="M000300"></a><b>nchar</b>( n, replacement=nil )
1826
+ </div>
1827
+ <div class="description">
1828
+ <p>
1829
+ Retrns <em>n</em> characters of the string. If <em>n</em> is positive the
1830
+ characters are from the beginning of the string. If <em>n</em> is negative
1831
+ from the end of the string.
1832
+ </p>
1833
+ <p>
1834
+ Alternatively a replacement string can be given, which will replace the
1835
+ <em>n</em> characters.
1836
+ </p>
1837
+ </div>
1838
+ <div class="sourcecode">
1839
+ <p class="source-link">[ <a href="javascript:toggleSource('M000300_source')" id="l_M000300_source">show source</a> ]</p>
1840
+ <div id="M000300_source" class="dyn-source">
1841
+ <pre>
1842
+ <span class="ruby-comment cmt"># File lib/facets/core/string/nchar.rb, line 11</span>
1843
+ <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> )
1844
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">replacement</span>
1845
+ <span class="ruby-identifier">s</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
1846
+ <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>)
1847
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
1848
+ <span class="ruby-keyword kw">else</span>
1849
+ <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>]
1850
+ <span class="ruby-keyword kw">end</span>
1851
+ <span class="ruby-keyword kw">end</span>
1852
+ </pre>
1853
+ </div>
1854
+ </div>
1855
+ </div>
1856
+ <div class="method">
1857
+ <div class="title">
1858
+ <a name="M000359"></a><b>ordinal</b>()
1859
+ </div>
1860
+ <div class="sourcecode">
1861
+ <p class="source-link">[ <a href="javascript:toggleSource('M000359_source')" id="l_M000359_source">show source</a> ]</p>
1862
+ <div id="M000359_source" class="dyn-source">
1863
+ <pre>
1864
+ <span class="ruby-comment cmt"># File lib/facets/core/string/ordinal.rb, line 4</span>
1865
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ordinal</span>
1866
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_i</span>.<span class="ruby-identifier">ordinal</span>
1867
+ <span class="ruby-keyword kw">end</span>
1868
+ </pre>
1869
+ </div>
1870
+ </div>
1871
+ </div>
1872
+ <div class="method">
1873
+ <div class="title">
1874
+ <a name="M000380"></a><b>pathize</b>()
1875
+ </div>
1876
+ <div class="description">
1877
+ <p>
1878
+ Converts a string into a unix path. This method is geared toward code
1879
+ reflection.
1880
+ </p>
1881
+ <p>
1882
+ See : <a href="String.html#M000379">String#modulize</a>, <a
1883
+ href="String.html#M000381">String#methodize</a>
1884
+ </p>
1885
+ <pre>
1886
+ &quot;MyModule::MyClass&quot;.pathize #=&gt; my_module/my_class
1887
+ &quot;my_module__my_class&quot;.pathize #=&gt; my_module/my_class
1888
+ </pre>
1889
+ <p>
1890
+ TODO :
1891
+ </p>
1892
+ <ul>
1893
+ <li>Make sure that all scenarios return a valid unix path
1894
+
1895
+ </li>
1896
+ <li>Make sure it is revertible
1897
+
1898
+ </li>
1899
+ </ul>
1900
+ </div>
1901
+ <div class="sourcecode">
1902
+ <p class="source-link">[ <a href="javascript:toggleSource('M000380_source')" id="l_M000380_source">show source</a> ]</p>
1903
+ <div id="M000380_source" class="dyn-source">
1904
+ <pre>
1905
+ <span class="ruby-comment cmt"># File lib/facets/core/string/pathize.rb, line 17</span>
1906
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pathize</span>
1907
+ <span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([A-Z])/</span>, <span class="ruby-value str">'_\1'</span>).<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^_/</span>,<span class="ruby-value str">''</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/(::|__)_?/</span>, <span class="ruby-value str">'/'</span>)
1908
+ <span class="ruby-keyword kw">end</span>
1909
+ </pre>
1910
+ </div>
1911
+ </div>
1912
+ </div>
1913
+ <div class="method">
1914
+ <div class="title">
1915
+ <a name="M000302"></a><b>plural</b>()
1916
+ </div>
1917
+ <div class="description">
1918
+ <p>
1919
+ Convert an English word from singular to plurel.
1920
+ </p>
1921
+ <pre>
1922
+ &quot;boy&quot;.plural #=&gt; boys
1923
+ &quot;tomato&quot;.plural #=&gt; tomatoes
1924
+ </pre>
1925
+ </div>
1926
+ <div class="aka">
1927
+ This method is also aliased as
1928
+ <a href="String.html#M000304">pluralize</a>
1929
+ </div>
1930
+ <div class="sourcecode">
1931
+ <p class="source-link">[ <a href="javascript:toggleSource('M000302_source')" id="l_M000302_source">show source</a> ]</p>
1932
+ <div id="M000302_source" class="dyn-source">
1933
+ <pre>
1934
+ <span class="ruby-comment cmt"># File lib/facets/core/string/singular.rb, line 76</span>
1935
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">plural</span>
1936
+ <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">dup</span>
1937
+ <span class="ruby-constant">String</span><span class="ruby-operator">::</span><span class="ruby-constant">PLURAL_RULES</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">replacement</span>)<span class="ruby-operator">|</span>
1938
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">replacement</span>)
1939
+ <span class="ruby-keyword kw">end</span>
1940
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
1941
+ <span class="ruby-keyword kw">end</span>
1942
+ </pre>
1943
+ </div>
1944
+ </div>
1945
+ </div>
1946
+ <div class="method">
1947
+ <div class="title">
1948
+ <a name="M000304"></a><b>pluralize</b>()
1949
+ </div>
1950
+ <div class="description">
1951
+ <p>
1952
+ Alias for <a href="String.html#M000302">plural</a>
1953
+ </p>
1954
+ </div>
1955
+ </div>
1956
+ <div class="method">
1957
+ <div class="title">
1958
+ <a name="M000354"></a><b>pop</b>()
1959
+ </div>
1960
+ <div class="description">
1961
+ <p>
1962
+ Polymorphic with <a href="Array.html">Array</a> of characters.
1963
+ </p>
1964
+ </div>
1965
+ <div class="sourcecode">
1966
+ <p class="source-link">[ <a href="javascript:toggleSource('M000354_source')" id="l_M000354_source">show source</a> ]</p>
1967
+ <div id="M000354_source" class="dyn-source">
1968
+ <pre>
1969
+ <span class="ruby-comment cmt"># File lib/facets/core/string/pop.rb, line 5</span>
1970
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pop</span>
1971
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1972
+ <span class="ruby-identifier">r</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-value">-1</span>,<span class="ruby-value">1</span>]
1973
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-value">-1</span>] = <span class="ruby-value str">''</span>
1974
+ <span class="ruby-identifier">r</span> <span class="ruby-comment cmt">#self</span>
1975
+ <span class="ruby-keyword kw">end</span>
1976
+ </pre>
1977
+ </div>
1978
+ </div>
1979
+ </div>
1980
+ <div class="method">
1981
+ <div class="title">
1982
+ <a name="M000315"></a><b>pot</b>( str=' ' )
1983
+ </div>
1984
+ <div class="description">
1985
+ <p>
1986
+ Like push but works from the other end of the string.
1987
+ </p>
1988
+ </div>
1989
+ <div class="sourcecode">
1990
+ <p class="source-link">[ <a href="javascript:toggleSource('M000315_source')" id="l_M000315_source">show source</a> ]</p>
1991
+ <div id="M000315_source" class="dyn-source">
1992
+ <pre>
1993
+ <span class="ruby-comment cmt"># File lib/facets/core/string/pot.rb, line 6</span>
1994
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pot</span>( <span class="ruby-identifier">str</span>=<span class="ruby-value str">' '</span> )
1995
+ <span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">str</span>)
1996
+ <span class="ruby-keyword kw">end</span>
1997
+ </pre>
1998
+ </div>
1999
+ </div>
2000
+ </div>
2001
+ <div class="method">
2002
+ <div class="title">
2003
+ <a name="M000324"></a><b>probability</b>(*args)
2004
+ </div>
2005
+ <div class="sourcecode">
2006
+ <p class="source-link">[ <a href="javascript:toggleSource('M000324_source')" id="l_M000324_source">show source</a> ]</p>
2007
+ <div id="M000324_source" class="dyn-source">
2008
+ <pre>
2009
+ <span class="ruby-comment cmt"># File lib/facets/core/string/probability.rb, line 7</span>
2010
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">probability</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
2011
+ <span class="ruby-identifier">to_arr</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>).<span class="ruby-identifier">probability</span>
2012
+ <span class="ruby-keyword kw">end</span>
2013
+ </pre>
2014
+ </div>
2015
+ </div>
2016
+ </div>
2017
+ <div class="method">
2018
+ <div class="title">
2019
+ <a name="M000280"></a><b>pull</b>()
2020
+ </div>
2021
+ <div class="description">
2022
+ <p>
2023
+ Same as <a href="String.html#M000282">shift</a>.
2024
+ </p>
2025
+ </div>
2026
+ <div class="sourcecode">
2027
+ <p class="source-link">[ <a href="javascript:toggleSource('M000280_source')" id="l_M000280_source">show source</a> ]</p>
2028
+ <div id="M000280_source" class="dyn-source">
2029
+ <pre>
2030
+ <span class="ruby-comment cmt"># File lib/facets/core/string/pull.rb, line 3</span>
2031
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pull</span>
2032
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2033
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span>] = <span class="ruby-value str">''</span>
2034
+ <span class="ruby-keyword kw">self</span>
2035
+ <span class="ruby-keyword kw">end</span>
2036
+ </pre>
2037
+ </div>
2038
+ </div>
2039
+ </div>
2040
+ <div class="method">
2041
+ <div class="title">
2042
+ <a name="M000281"></a><b>push</b>(str=' ')
2043
+ </div>
2044
+ <div class="description">
2045
+ <p>
2046
+ Polymorphic with <a href="Array.html">Array</a> of characters.
2047
+ </p>
2048
+ </div>
2049
+ <div class="sourcecode">
2050
+ <p class="source-link">[ <a href="javascript:toggleSource('M000281_source')" id="l_M000281_source">show source</a> ]</p>
2051
+ <div id="M000281_source" class="dyn-source">
2052
+ <pre>
2053
+ <span class="ruby-comment cmt"># File lib/facets/core/string/push.rb, line 5</span>
2054
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">push</span>(<span class="ruby-identifier">str</span>=<span class="ruby-value str">' '</span>)
2055
+ <span class="ruby-identifier">concat</span>(<span class="ruby-identifier">str</span>)
2056
+ <span class="ruby-keyword kw">end</span>
2057
+ </pre>
2058
+ </div>
2059
+ </div>
2060
+ </div>
2061
+ <div class="method">
2062
+ <div class="title">
2063
+ <a name="M000369"></a><b>quote</b>(type=:s)
2064
+ </div>
2065
+ <div class="description">
2066
+ <p>
2067
+ Return a new string embraced by given quotes. If no quotes are specified,
2068
+ then assumes single quotes.
2069
+ </p>
2070
+ <pre>
2071
+ &quot;quote me&quot;.quote #=&gt; &quot;'quote me'&quot;
2072
+ &quot;quote me&quot;.quote(2) #=&gt; &quot;\&quot;quote me\&quot;&quot;
2073
+ </pre>
2074
+ </div>
2075
+ <div class="sourcecode">
2076
+ <p class="source-link">[ <a href="javascript:toggleSource('M000369_source')" id="l_M000369_source">show source</a> ]</p>
2077
+ <div id="M000369_source" class="dyn-source">
2078
+ <pre>
2079
+ <span class="ruby-comment cmt"># File lib/facets/core/string/quote.rb, line 11</span>
2080
+ <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>)
2081
+ <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>
2082
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'s'</span>, <span class="ruby-value str">'single'</span>
2083
+ <span class="ruby-identifier">bracket</span>(<span class="ruby-value str">&quot;'&quot;</span>)
2084
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'d'</span>, <span class="ruby-value str">'double'</span>
2085
+ <span class="ruby-identifier">bracket</span>(<span class="ruby-value str">'&quot;'</span>)
2086
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'b'</span>, <span class="ruby-value str">'back'</span>
2087
+ <span class="ruby-identifier">bracket</span>(<span class="ruby-value str">'`'</span>)
2088
+ <span class="ruby-keyword kw">else</span>
2089
+ <span class="ruby-identifier">bracket</span>(<span class="ruby-value str">&quot;'&quot;</span>)
2090
+ <span class="ruby-keyword kw">end</span>
2091
+ <span class="ruby-keyword kw">end</span>
2092
+ </pre>
2093
+ </div>
2094
+ </div>
2095
+ </div>
2096
+ <div class="method">
2097
+ <div class="title">
2098
+ <a name="M000308"></a><b>rand_byte</b>()
2099
+ </div>
2100
+ <div class="description">
2101
+ <p>
2102
+ Return a random byte of <em>self</em>.
2103
+ </p>
2104
+ <pre>
2105
+ &quot;Ruby rules&quot;.rand_byte #=&gt; 121
2106
+ </pre>
2107
+ </div>
2108
+ <div class="sourcecode">
2109
+ <p class="source-link">[ <a href="javascript:toggleSource('M000308_source')" id="l_M000308_source">show source</a> ]</p>
2110
+ <div id="M000308_source" class="dyn-source">
2111
+ <pre>
2112
+ <span class="ruby-comment cmt"># File lib/facets/core/string/rand_byte.rb, line 8</span>
2113
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rand_byte</span>
2114
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">rand</span>( <span class="ruby-identifier">size</span> )]
2115
+ <span class="ruby-keyword kw">end</span>
2116
+ </pre>
2117
+ </div>
2118
+ </div>
2119
+ </div>
2120
+ <div class="method">
2121
+ <div class="title">
2122
+ <a name="M000309"></a><b>rand_byte!</b>()
2123
+ </div>
2124
+ <div class="description">
2125
+ <p>
2126
+ Destructive <a href="String.html#M000308">rand_byte</a>. Delete a random
2127
+ byte of <em>self</em> and return it.
2128
+ </p>
2129
+ <pre>
2130
+ s = &quot;Ruby rules&quot;
2131
+ s.rand_byte! #=&gt; 121
2132
+ s #=&gt; &quot;Rub rules&quot;
2133
+ </pre>
2134
+ </div>
2135
+ <div class="sourcecode">
2136
+ <p class="source-link">[ <a href="javascript:toggleSource('M000309_source')" id="l_M000309_source">show source</a> ]</p>
2137
+ <div id="M000309_source" class="dyn-source">
2138
+ <pre>
2139
+ <span class="ruby-comment cmt"># File lib/facets/core/string/rand_byte.rb, line 18</span>
2140
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rand_byte!</span>
2141
+ <span class="ruby-identifier">i</span> = <span class="ruby-identifier">rand</span>( <span class="ruby-identifier">size</span> )
2142
+ <span class="ruby-identifier">rv</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>,<span class="ruby-value">1</span>]
2143
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>,<span class="ruby-value">1</span>] = <span class="ruby-value str">''</span>
2144
+ <span class="ruby-identifier">rv</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="M000299"></a><b>rand_index</b>()
2153
+ </div>
2154
+ <div class="description">
2155
+ <p>
2156
+ Return a random string index.
2157
+ </p>
2158
+ <pre>
2159
+ &quot;Ruby rules&quot;.rand_index #=&gt; 3
2160
+ </pre>
2161
+ </div>
2162
+ <div class="sourcecode">
2163
+ <p class="source-link">[ <a href="javascript:toggleSource('M000299_source')" id="l_M000299_source">show source</a> ]</p>
2164
+ <div id="M000299_source" class="dyn-source">
2165
+ <pre>
2166
+ <span class="ruby-comment cmt"># File lib/facets/core/string/rand_index.rb, line 6</span>
2167
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rand_index</span>
2168
+ <span class="ruby-identifier">rand</span>( <span class="ruby-identifier">size</span> )
2169
+ <span class="ruby-keyword kw">end</span>
2170
+ </pre>
2171
+ </div>
2172
+ </div>
2173
+ </div>
2174
+ <div class="method">
2175
+ <div class="title">
2176
+ <a name="M000336"></a><b>range</b>(s, offset=0)
2177
+ </div>
2178
+ <div class="description">
2179
+ <p>
2180
+ Like index but returns a <a href="Range.html">Range</a>.
2181
+ </p>
2182
+ <pre>
2183
+ &quot;This is a test!&quot;.range('test') #=&gt; 10..13
2184
+ </pre>
2185
+ </div>
2186
+ <div class="sourcecode">
2187
+ <p class="source-link">[ <a href="javascript:toggleSource('M000336_source')" id="l_M000336_source">show source</a> ]</p>
2188
+ <div id="M000336_source" class="dyn-source">
2189
+ <pre>
2190
+ <span class="ruby-comment cmt"># File lib/facets/core/string/range.rb, line 8</span>
2191
+ <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>)
2192
+ <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">offset</span>)
2193
+ <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>)
2194
+ <span class="ruby-keyword kw">end</span>
2195
+ <span class="ruby-keyword kw">nil</span>
2196
+ <span class="ruby-keyword kw">end</span>
2197
+ </pre>
2198
+ </div>
2199
+ </div>
2200
+ </div>
2201
+ <div class="method">
2202
+ <div class="title">
2203
+ <a name="M000373"></a><b>range_all</b>(s, reuse=false)
2204
+ </div>
2205
+ <div class="description">
2206
+ <p>
2207
+ Like <a href="String.html#M000368">index_all</a> but returns an array of
2208
+ Ranges.
2209
+ </p>
2210
+ <pre>
2211
+ &quot;abc123abc123&quot;.range_all('abc') #=&gt; [0..2, 6..8]
2212
+ </pre>
2213
+ </div>
2214
+ <div class="sourcecode">
2215
+ <p class="source-link">[ <a href="javascript:toggleSource('M000373_source')" id="l_M000373_source">show source</a> ]</p>
2216
+ <div id="M000373_source" class="dyn-source">
2217
+ <pre>
2218
+ <span class="ruby-comment cmt"># File lib/facets/core/string/range_all.rb, line 12</span>
2219
+ <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>)
2220
+ <span class="ruby-identifier">r</span> = []; <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
2221
+ <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>
2222
+ <span class="ruby-identifier">rng</span> = <span class="ruby-identifier">range</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">i</span>)
2223
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rng</span>
2224
+ <span class="ruby-identifier">r</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rng</span>
2225
+ <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>
2226
+ <span class="ruby-keyword kw">else</span>
2227
+ <span class="ruby-keyword kw">break</span>
2228
+ <span class="ruby-keyword kw">end</span>
2229
+ <span class="ruby-keyword kw">end</span>
2230
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">uniq</span>
2231
+ <span class="ruby-keyword kw">end</span>
2232
+ </pre>
2233
+ </div>
2234
+ </div>
2235
+ </div>
2236
+ <div class="method">
2237
+ <div class="title">
2238
+ <a name="M000355"></a><b>range_of_line</b>()
2239
+ </div>
2240
+ <div class="description">
2241
+ <p>
2242
+ Returns an array of ranges mapping the characters per line.
2243
+ </p>
2244
+ <pre>
2245
+ &quot;this\nis\na\ntest&quot;.range_of_line
2246
+ #=&gt; [0..4, 5..7, 8..9, 10..13]
2247
+ </pre>
2248
+ </div>
2249
+ <div class="sourcecode">
2250
+ <p class="source-link">[ <a href="javascript:toggleSource('M000355_source')" id="l_M000355_source">show source</a> ]</p>
2251
+ <div id="M000355_source" class="dyn-source">
2252
+ <pre>
2253
+ <span class="ruby-comment cmt"># File lib/facets/core/string/range_of_line.rb, line 10</span>
2254
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">range_of_line</span>
2255
+ <span class="ruby-identifier">offset</span>=<span class="ruby-value">0</span>; <span class="ruby-identifier">charmap</span> = []
2256
+ <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>
2257
+ <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>))
2258
+ <span class="ruby-identifier">offset</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">length</span>
2259
+ <span class="ruby-keyword kw">end</span>
2260
+ <span class="ruby-identifier">charmap</span>
2261
+ <span class="ruby-keyword kw">end</span>
2262
+ </pre>
2263
+ </div>
2264
+ </div>
2265
+ </div>
2266
+ <div class="method">
2267
+ <div class="title">
2268
+ <a name="M000370"></a><b>regesc</b>()
2269
+ </div>
2270
+ <div class="description">
2271
+ <p>
2272
+ Escape string for <a href="Regexp.html">Regexp</a> use.
2273
+ </p>
2274
+ </div>
2275
+ <div class="sourcecode">
2276
+ <p class="source-link">[ <a href="javascript:toggleSource('M000370_source')" id="l_M000370_source">show source</a> ]</p>
2277
+ <div id="M000370_source" class="dyn-source">
2278
+ <pre>
2279
+ <span class="ruby-comment cmt"># File lib/facets/core/string/regesc.rb, line 5</span>
2280
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">regesc</span>
2281
+ <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">escape</span>( <span class="ruby-keyword kw">self</span> )
2282
+ <span class="ruby-keyword kw">end</span>
2283
+ </pre>
2284
+ </div>
2285
+ </div>
2286
+ </div>
2287
+ <div class="method">
2288
+ <div class="title">
2289
+ <a name="M000375"></a><b>shatter</b>( re )
2290
+ </div>
2291
+ <div class="description">
2292
+ <p>
2293
+ Breaks a string up into an array based on a regular expression. Similar to
2294
+ scan, but includes the matches.
2295
+ </p>
2296
+ <pre>
2297
+ s = &quot;&lt;p&gt;This&lt;b&gt;is&lt;/b&gt;a test.&lt;/p&gt;&quot;
2298
+ s.shatter( /\&lt;.*?\&gt;/ )
2299
+ </pre>
2300
+ <p>
2301
+ <em>produces</em>
2302
+ </p>
2303
+ <pre>
2304
+ [&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;]
2305
+ </pre>
2306
+ </div>
2307
+ <div class="sourcecode">
2308
+ <p class="source-link">[ <a href="javascript:toggleSource('M000375_source')" id="l_M000375_source">show source</a> ]</p>
2309
+ <div id="M000375_source" class="dyn-source">
2310
+ <pre>
2311
+ <span class="ruby-comment cmt"># File lib/facets/core/string/shatter.rb, line 14</span>
2312
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shatter</span>( <span class="ruby-identifier">re</span> )
2313
+ <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> }
2314
+ <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>
2315
+ <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>
2316
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;\1&quot;</span>)
2317
+ <span class="ruby-keyword kw">end</span>
2318
+ </pre>
2319
+ </div>
2320
+ </div>
2321
+ </div>
2322
+ <div class="method">
2323
+ <div class="title">
2324
+ <a name="M000382"></a><b>shell_escape</b>()
2325
+ </div>
2326
+ <div class="description">
2327
+ <p>
2328
+ Escape special characters used in most unix shells to use it, eg. with
2329
+ system().
2330
+ </p>
2331
+ </div>
2332
+ <div class="sourcecode">
2333
+ <p class="source-link">[ <a href="javascript:toggleSource('M000382_source')" id="l_M000382_source">show source</a> ]</p>
2334
+ <div id="M000382_source" class="dyn-source">
2335
+ <pre>
2336
+ <span class="ruby-comment cmt"># File lib/facets/core/string/shell_escape.rb, line 7</span>
2337
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shell_escape</span>
2338
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([\\\t\| &amp;`&lt;&gt;)('&quot;])/</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-value str">'\\'</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span> }
2339
+ <span class="ruby-keyword kw">end</span>
2340
+ </pre>
2341
+ </div>
2342
+ </div>
2343
+ </div>
2344
+ <div class="method">
2345
+ <div class="title">
2346
+ <a name="M000282"></a><b>shift</b>()
2347
+ </div>
2348
+ <div class="sourcecode">
2349
+ <p class="source-link">[ <a href="javascript:toggleSource('M000282_source')" id="l_M000282_source">show source</a> ]</p>
2350
+ <div id="M000282_source" class="dyn-source">
2351
+ <pre>
2352
+ <span class="ruby-comment cmt"># File lib/facets/core/string/shift.rb, line 2</span>
2353
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shift</span>
2354
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2355
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span>] = <span class="ruby-value str">''</span>
2356
+ <span class="ruby-keyword kw">self</span>
2357
+ <span class="ruby-keyword kw">end</span>
2358
+ </pre>
2359
+ </div>
2360
+ </div>
2361
+ </div>
2362
+ <div class="method">
2363
+ <div class="title">
2364
+ <a name="M000360"></a><b>shuffle</b>(separator=//)
2365
+ </div>
2366
+ <div class="description">
2367
+ <p>
2368
+ Return the string with seperated sections arranged in a random order. The
2369
+ default seperation is by character.
2370
+ </p>
2371
+ <pre>
2372
+ &quot;Ruby rules&quot;.shuffle #=&gt; &quot;e lybRsuur&quot;
2373
+ </pre>
2374
+ </div>
2375
+ <div class="sourcecode">
2376
+ <p class="source-link">[ <a href="javascript:toggleSource('M000360_source')" id="l_M000360_source">show source</a> ]</p>
2377
+ <div id="M000360_source" class="dyn-source">
2378
+ <pre>
2379
+ <span class="ruby-comment cmt"># File lib/facets/core/string/shuffle.rb, line 10</span>
2380
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shuffle</span>(<span class="ruby-identifier">separator</span>=<span class="ruby-regexp re">//</span>)
2381
+ <span class="ruby-identifier">split</span>(<span class="ruby-identifier">separator</span>).<span class="ruby-identifier">shuffle</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">''</span>)
2382
+ <span class="ruby-keyword kw">end</span>
2383
+ </pre>
2384
+ </div>
2385
+ </div>
2386
+ </div>
2387
+ <div class="method">
2388
+ <div class="title">
2389
+ <a name="M000361"></a><b>shuffle!</b>(separator=//)
2390
+ </div>
2391
+ <div class="description">
2392
+ <p>
2393
+ In place version of shuffle.
2394
+ </p>
2395
+ </div>
2396
+ <div class="sourcecode">
2397
+ <p class="source-link">[ <a href="javascript:toggleSource('M000361_source')" id="l_M000361_source">show source</a> ]</p>
2398
+ <div id="M000361_source" class="dyn-source">
2399
+ <pre>
2400
+ <span class="ruby-comment cmt"># File lib/facets/core/string/shuffle.rb, line 16</span>
2401
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">shuffle!</span>(<span class="ruby-identifier">separator</span>=<span class="ruby-regexp re">//</span>)
2402
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>( <span class="ruby-identifier">shuffle</span>(<span class="ruby-identifier">separator</span>) )
2403
+ <span class="ruby-keyword kw">end</span>
2404
+ </pre>
2405
+ </div>
2406
+ </div>
2407
+ </div>
2408
+ <div class="method">
2409
+ <div class="title">
2410
+ <a name="M000306"></a><b>similarity</b>( str_in )
2411
+ </div>
2412
+ <div class="description">
2413
+ <p>
2414
+ A fuzzy matching mechanism. Returns a score from 0-1, based on the number
2415
+ of shared edges. To be effective, the strings must be of length 2 or
2416
+ greater.
2417
+ </p>
2418
+ <pre>
2419
+ &quot;Alexsander&quot;.fuzzy_match( &quot;Aleksander&quot; ) #=&gt; 0.9
2420
+ </pre>
2421
+ <p>
2422
+ The way it works:
2423
+ </p>
2424
+ <ul>
2425
+ <li>Converts each string into a &quot;graph like&quot; object, with edges
2426
+
2427
+ <pre>
2428
+ &quot;alexsander&quot; -&gt; [ alexsander, alexsand, alexsan ... lexsand ... san ... an, etc ]
2429
+ &quot;aleksander&quot; -&gt; [ aleksander, aleksand ... etc. ]
2430
+ </pre>
2431
+ </li>
2432
+ <li>Perform match, then remove any subsets from this matched set (i.e. a hit on
2433
+ &quot;san&quot; is a subset of a hit on &quot;sander&quot;)
2434
+
2435
+ <pre>
2436
+ Above example, once reduced -&gt; [ ale, sander ]
2437
+ </pre>
2438
+ </li>
2439
+ <li>See&#8217;s how many of the matches remain, and calculates a score based on
2440
+ how many matches, their length, and compare to the length of the larger of
2441
+ the two words.
2442
+
2443
+ </li>
2444
+ </ul>
2445
+ </div>
2446
+ <div class="aka">
2447
+ This method is also aliased as
2448
+ <a href="String.html#M000307">fuzzy_match</a>
2449
+ </div>
2450
+ <div class="sourcecode">
2451
+ <p class="source-link">[ <a href="javascript:toggleSource('M000306_source')" id="l_M000306_source">show source</a> ]</p>
2452
+ <div id="M000306_source" class="dyn-source">
2453
+ <pre>
2454
+ <span class="ruby-comment cmt"># File lib/facets/core/string/similarity.rb, line 25</span>
2455
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">similarity</span>( <span class="ruby-identifier">str_in</span> )
2456
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str_in</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
2457
+ <span class="ruby-keyword kw">return</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">str_in</span>
2458
+
2459
+ <span class="ruby-comment cmt"># Make a graph of each word (okay, so its not a true graph, but is similar)</span>
2460
+ <span class="ruby-identifier">graph_A</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
2461
+ <span class="ruby-identifier">graph_B</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
2462
+
2463
+ <span class="ruby-comment cmt"># &quot;graph&quot; self</span>
2464
+ <span class="ruby-identifier">last</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
2465
+ (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">last</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ff</span><span class="ruby-operator">|</span>
2466
+ <span class="ruby-identifier">loc</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
2467
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ff</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">last</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
2468
+ <span class="ruby-identifier">wordB</span> = (<span class="ruby-value">1</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">last</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">reverse!</span>
2469
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">wordB</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>)
2470
+ <span class="ruby-identifier">wordB</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ss</span><span class="ruby-operator">|</span>
2471
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ss</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">ff</span>
2472
+ <span class="ruby-identifier">graph_A</span>.<span class="ruby-identifier">push</span>( <span class="ruby-node">&quot;#{self[ff..ss]}&quot;</span> )
2473
+ <span class="ruby-keyword kw">end</span>
2474
+ <span class="ruby-keyword kw">end</span>
2475
+ <span class="ruby-keyword kw">end</span>
2476
+
2477
+ <span class="ruby-comment cmt"># &quot;graph&quot; input string</span>
2478
+ <span class="ruby-identifier">last</span> = <span class="ruby-identifier">str_in</span>.<span class="ruby-identifier">length</span>
2479
+ (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">last</span>).<span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">ff</span><span class="ruby-operator">|</span>
2480
+ <span class="ruby-identifier">loc</span> = <span class="ruby-identifier">str_in</span>.<span class="ruby-identifier">length</span>
2481
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ff</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">last</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
2482
+ <span class="ruby-identifier">wordB</span> = (<span class="ruby-value">1</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">last</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">reverse!</span>
2483
+ <span class="ruby-identifier">wordB</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ss</span><span class="ruby-operator">|</span>
2484
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ss</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">ff</span>
2485
+ <span class="ruby-identifier">graph_B</span>.<span class="ruby-identifier">push</span>( <span class="ruby-node">&quot;#{str_in[ff..ss]}&quot;</span> )
2486
+ <span class="ruby-keyword kw">end</span>
2487
+ }
2488
+
2489
+
2490
+ <span class="ruby-comment cmt"># count how many of these &quot;graph edges&quot; we have that are the same</span>
2491
+ <span class="ruby-identifier">matches</span> = <span class="ruby-identifier">graph_A</span> <span class="ruby-operator">&amp;</span> <span class="ruby-identifier">graph_B</span>
2492
+ <span class="ruby-comment cmt">#matches = Array.new</span>
2493
+ <span class="ruby-comment cmt">#graph_A.each do |aa|</span>
2494
+ <span class="ruby-comment cmt"># matches.push( aa ) if( graph_B.include?( aa ) )</span>
2495
+ <span class="ruby-comment cmt">#end</span>
2496
+
2497
+ <span class="ruby-comment cmt"># For eliminating subsets, we want to start with the smallest hits.</span>
2498
+ <span class="ruby-identifier">matches</span>.<span class="ruby-identifier">sort!</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">x</span>,<span class="ruby-identifier">y</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">y</span>.<span class="ruby-identifier">length</span>}
2499
+
2500
+ <span class="ruby-comment cmt"># eliminate any subsets</span>
2501
+ <span class="ruby-identifier">mclone</span> = <span class="ruby-identifier">matches</span>.<span class="ruby-identifier">dup</span>
2502
+ <span class="ruby-identifier">mclone</span>.<span class="ruby-identifier">each_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ii</span><span class="ruby-operator">|</span>
2503
+ <span class="ruby-identifier">reg</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">compile</span>( <span class="ruby-identifier">mclone</span>[<span class="ruby-identifier">ii</span>] )
2504
+ <span class="ruby-identifier">count</span> = <span class="ruby-value">0</span><span class="ruby-value">.0</span>
2505
+ <span class="ruby-identifier">matches</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">xx</span><span class="ruby-operator">|</span> <span class="ruby-identifier">count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">xx</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">reg</span>}
2506
+ <span class="ruby-identifier">matches</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">mclone</span>[<span class="ruby-identifier">ii</span>]) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">count</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
2507
+ <span class="ruby-keyword kw">end</span>
2508
+
2509
+ <span class="ruby-identifier">score</span> = <span class="ruby-value">0</span><span class="ruby-value">.0</span>
2510
+ <span class="ruby-identifier">matches</span>.<span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">mm</span><span class="ruby-operator">|</span> <span class="ruby-identifier">score</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">mm</span>.<span class="ruby-identifier">length</span> }
2511
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">str_in</span>.<span class="ruby-identifier">length</span> <span class="ruby-value">? </span><span class="ruby-identifier">largest</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">largest</span> = <span class="ruby-identifier">str_in</span>.<span class="ruby-identifier">length</span>
2512
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">score</span><span class="ruby-operator">/</span><span class="ruby-identifier">largest</span>
2513
+ <span class="ruby-keyword kw">end</span>
2514
+ </pre>
2515
+ </div>
2516
+ </div>
2517
+ </div>
2518
+ <div class="method">
2519
+ <div class="title">
2520
+ <a name="M000301"></a><b>singular</b>()
2521
+ </div>
2522
+ <div class="description">
2523
+ <p>
2524
+ Convert an English word from plurel to singular.
2525
+ </p>
2526
+ <pre>
2527
+ &quot;boys&quot;.singular #=&gt; boy
2528
+ &quot;tomatoes&quot;.singular #=&gt; tomato
2529
+ </pre>
2530
+ </div>
2531
+ <div class="aka">
2532
+ This method is also aliased as
2533
+ <a href="String.html#M000303">singularize</a>
2534
+ </div>
2535
+ <div class="sourcecode">
2536
+ <p class="source-link">[ <a href="javascript:toggleSource('M000301_source')" id="l_M000301_source">show source</a> ]</p>
2537
+ <div id="M000301_source" class="dyn-source">
2538
+ <pre>
2539
+ <span class="ruby-comment cmt"># File lib/facets/core/string/singular.rb, line 63</span>
2540
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">singular</span>
2541
+ <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">dup</span>
2542
+ <span class="ruby-constant">String</span><span class="ruby-operator">::</span><span class="ruby-constant">SINGULAR_RULES</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">replacement</span>)<span class="ruby-operator">|</span>
2543
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-identifier">replacement</span>)
2544
+ <span class="ruby-keyword kw">end</span>
2545
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
2546
+ <span class="ruby-keyword kw">end</span>
2547
+ </pre>
2548
+ </div>
2549
+ </div>
2550
+ </div>
2551
+ <div class="method">
2552
+ <div class="title">
2553
+ <a name="M000303"></a><b>singularize</b>()
2554
+ </div>
2555
+ <div class="description">
2556
+ <p>
2557
+ Alias for <a href="String.html#M000301">singular</a>
2558
+ </p>
2559
+ </div>
2560
+ </div>
2561
+ <div class="method">
2562
+ <div class="title">
2563
+ <a name="M000371"></a><b>soundex</b>()
2564
+ </div>
2565
+ <div class="description">
2566
+ <p>
2567
+ Implementation of the soundex algorithm as described by Knuth in volume 3
2568
+ of The Art of Computer Programming. Returns nil if the value couldn&#8217;t
2569
+ be calculated b/c of empty-string or invalid character.
2570
+ </p>
2571
+ <pre>
2572
+ &quot;Ruby&quot;.soundex #=&gt; &quot;R100&quot;
2573
+ </pre>
2574
+ </div>
2575
+ <div class="sourcecode">
2576
+ <p class="source-link">[ <a href="javascript:toggleSource('M000371_source')" id="l_M000371_source">show source</a> ]</p>
2577
+ <div id="M000371_source" class="dyn-source">
2578
+ <pre>
2579
+ <span class="ruby-comment cmt"># File lib/facets/core/string/soundex.rb, line 14</span>
2580
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">soundex</span>
2581
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">empty?</span>
2582
+
2583
+ <span class="ruby-identifier">str</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">upcase</span>
2584
+ <span class="ruby-identifier">last_code</span> = <span class="ruby-constant">String</span>.<span class="ruby-identifier">soundex_code</span>(<span class="ruby-identifier">str</span>[<span class="ruby-value">0</span>,<span class="ruby-value">1</span>])
2585
+ <span class="ruby-identifier">soundex_code</span> = <span class="ruby-identifier">str</span>[<span class="ruby-value">0</span>,<span class="ruby-value">1</span>]
2586
+
2587
+ <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">index</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">1</span><span class="ruby-operator">...</span>(<span class="ruby-identifier">str</span>.<span class="ruby-identifier">size</span>) <span class="ruby-keyword kw">do</span>
2588
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">soundex_code</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">soundex_code</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">4</span>
2589
+
2590
+ <span class="ruby-identifier">code</span> = <span class="ruby-constant">String</span>.<span class="ruby-identifier">soundex_code</span>(<span class="ruby-identifier">str</span>[<span class="ruby-identifier">index</span>,<span class="ruby-value">1</span>])
2591
+
2592
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">then</span>
2593
+ <span class="ruby-identifier">last_code</span> = <span class="ruby-keyword kw">nil</span>
2594
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">then</span>
2595
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2596
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">code</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">last_code</span> <span class="ruby-keyword kw">then</span>
2597
+ <span class="ruby-identifier">soundex_code</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">code</span>
2598
+ <span class="ruby-identifier">last_code</span> = <span class="ruby-identifier">code</span>
2599
+ <span class="ruby-keyword kw">end</span>
2600
+ <span class="ruby-keyword kw">end</span>
2601
+
2602
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">soundex_code</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;000&quot;</span>[<span class="ruby-value">0</span>,<span class="ruby-value">4</span><span class="ruby-operator">-</span><span class="ruby-identifier">soundex_code</span>.<span class="ruby-identifier">size</span>]
2603
+ <span class="ruby-keyword kw">end</span>
2604
+ </pre>
2605
+ </div>
2606
+ </div>
2607
+ </div>
2608
+ <div class="method">
2609
+ <div class="title">
2610
+ <a name="M000316"></a><b>starts_with?</b>(str)
2611
+ </div>
2612
+ <div class="sourcecode">
2613
+ <p class="source-link">[ <a href="javascript:toggleSource('M000316_source')" id="l_M000316_source">show source</a> ]</p>
2614
+ <div id="M000316_source" class="dyn-source">
2615
+ <pre>
2616
+ <span class="ruby-comment cmt"># File lib/facets/core/string/starts_with.rb, line 7</span>
2617
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">starts_with?</span>(<span class="ruby-identifier">str</span>)
2618
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">index</span>( <span class="ruby-identifier">str</span> ) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2619
+ <span class="ruby-keyword kw">end</span>
2620
+ </pre>
2621
+ </div>
2622
+ </div>
2623
+ </div>
2624
+ <div class="method">
2625
+ <div class="title">
2626
+ <a name="M000323"></a><b>succ</b>(n=1)
2627
+ </div>
2628
+ <div class="description">
2629
+ <p>
2630
+ Allows <a href="String.html#M000323">succ</a> to take <em>n</em> step
2631
+ increments.
2632
+ </p>
2633
+ <pre>
2634
+ &quot;abc&quot;.succ #=&gt; &quot;abd&quot;
2635
+ &quot;abc&quot;.succ(4) #=&gt; &quot;abg&quot;
2636
+ &quot;abc&quot;.succ(24) #=&gt; &quot;aca&quot;
2637
+ </pre>
2638
+ </div>
2639
+ <div class="sourcecode">
2640
+ <p class="source-link">[ <a href="javascript:toggleSource('M000323_source')" id="l_M000323_source">show source</a> ]</p>
2641
+ <div id="M000323_source" class="dyn-source">
2642
+ <pre>
2643
+ <span class="ruby-comment cmt"># File lib/facets/core/string/succ.rb, line 9</span>
2644
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">succ</span>(<span class="ruby-identifier">n</span>=<span class="ruby-value">1</span>)
2645
+ <span class="ruby-identifier">s</span> = <span class="ruby-keyword kw">self</span>
2646
+ <span class="ruby-identifier">n</span>.<span class="ruby-identifier">times</span> { <span class="ruby-identifier">s</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">succ_once</span> }
2647
+ <span class="ruby-identifier">s</span>
2648
+ <span class="ruby-keyword kw">end</span>
2649
+ </pre>
2650
+ </div>
2651
+ </div>
2652
+ </div>
2653
+ <div class="method">
2654
+ <div class="title">
2655
+ <a name="M000347"></a><b>tab</b>(n)
2656
+ </div>
2657
+ <div class="description">
2658
+ <p>
2659
+ Aligns each line n spaces. (This used to be taballto.)
2660
+ </p>
2661
+ </div>
2662
+ <div class="sourcecode">
2663
+ <p class="source-link">[ <a href="javascript:toggleSource('M000347_source')" id="l_M000347_source">show source</a> ]</p>
2664
+ <div id="M000347_source" class="dyn-source">
2665
+ <pre>
2666
+ <span class="ruby-comment cmt"># File lib/facets/core/string/indent.rb, line 7</span>
2667
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tab</span>(<span class="ruby-identifier">n</span>)
2668
+ <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>)
2669
+ <span class="ruby-keyword kw">end</span>
2670
+ </pre>
2671
+ </div>
2672
+ </div>
2673
+ </div>
2674
+ <div class="method">
2675
+ <div class="title">
2676
+ <a name="M000348"></a><b>tabto</b>(n)
2677
+ </div>
2678
+ <div class="description">
2679
+ <p>
2680
+ Preserves relative tabbing. The first non-empty line ends up with n spaces
2681
+ before nonspace.
2682
+ </p>
2683
+ </div>
2684
+ <div class="sourcecode">
2685
+ <p class="source-link">[ <a href="javascript:toggleSource('M000348_source')" id="l_M000348_source">show source</a> ]</p>
2686
+ <div id="M000348_source" class="dyn-source">
2687
+ <pre>
2688
+ <span class="ruby-comment cmt"># File lib/facets/core/string/indent.rb, line 14</span>
2689
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tabto</span>(<span class="ruby-identifier">n</span>)
2690
+ <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>
2691
+ <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>)
2692
+ <span class="ruby-keyword kw">else</span>
2693
+ <span class="ruby-keyword kw">self</span>
2694
+ <span class="ruby-keyword kw">end</span>
2695
+ <span class="ruby-keyword kw">end</span>
2696
+ </pre>
2697
+ </div>
2698
+ </div>
2699
+ </div>
2700
+ <div class="method">
2701
+ <div class="title">
2702
+ <a name="M000337"></a><b>to_a</b>(div=//,limit=0)
2703
+ </div>
2704
+ <div class="description">
2705
+ <p>
2706
+ Essentially makes <a href="String.html#M000337">to_a</a> an alias for
2707
+ split, with the excpetion that if no divider is given then the array is
2708
+ split on charaters, and NOT on the global input record divider ($/).
2709
+ </p>
2710
+ <p>
2711
+ WARNING There is a slight chance of incompatability with other libraries
2712
+ which depend on spliting with $/ (although doing so is a very bad idea!).
2713
+ </p>
2714
+ </div>
2715
+ <div class="sourcecode">
2716
+ <p class="source-link">[ <a href="javascript:toggleSource('M000337_source')" id="l_M000337_source">show source</a> ]</p>
2717
+ <div id="M000337_source" class="dyn-source">
2718
+ <pre>
2719
+ <span class="ruby-comment cmt"># File lib/facets/core/string/to_a.rb, line 14</span>
2720
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_a</span>(<span class="ruby-identifier">div</span>=<span class="ruby-regexp re">//</span>,<span class="ruby-identifier">limit</span>=<span class="ruby-value">0</span>)
2721
+ <span class="ruby-identifier">split</span>(<span class="ruby-identifier">div</span>,<span class="ruby-identifier">limit</span>)
2722
+ <span class="ruby-keyword kw">end</span>
2723
+ </pre>
2724
+ </div>
2725
+ </div>
2726
+ </div>
2727
+ <div class="method">
2728
+ <div class="title">
2729
+ <a name="M000338"></a><b>to_b</b>()
2730
+ </div>
2731
+ <div class="description">
2732
+ <p>
2733
+ Interpret common affirmative string meanings as true, otherwise false.
2734
+ Balnk sapce and case are ignored. The following strings that will return
2735
+ true:
2736
+ </p>
2737
+ <pre>
2738
+ &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;
2739
+ </pre>
2740
+ <p>
2741
+ Examples:
2742
+ </p>
2743
+ <pre>
2744
+ &quot;true&quot;.to_b #=&gt; true
2745
+ &quot;yes&quot;.to_b #=&gt; true
2746
+ &quot;no&quot;.to_b #=&gt; false
2747
+ &quot;123&quot;.to_b #=&gt; false
2748
+ </pre>
2749
+ </div>
2750
+ <div class="sourcecode">
2751
+ <p class="source-link">[ <a href="javascript:toggleSource('M000338_source')" id="l_M000338_source">show source</a> ]</p>
2752
+ <div id="M000338_source" class="dyn-source">
2753
+ <pre>
2754
+ <span class="ruby-comment cmt"># File lib/facets/core/string/to_b.rb, line 17</span>
2755
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_b</span>
2756
+ <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>
2757
+ <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>
2758
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
2759
+ <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'nil'</span>, <span class="ruby-value str">'null'</span>
2760
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2761
+ <span class="ruby-keyword kw">else</span>
2762
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2763
+ <span class="ruby-keyword kw">end</span>
2764
+ <span class="ruby-keyword kw">end</span>
2765
+ </pre>
2766
+ </div>
2767
+ </div>
2768
+ </div>
2769
+ <div class="method">
2770
+ <div class="title">
2771
+ <a name="M000353"></a><b>to_const</b>()
2772
+ </div>
2773
+ <div class="description">
2774
+ <p>
2775
+ Get a constant by a given string name.
2776
+ </p>
2777
+ <pre>
2778
+ &quot;Class&quot;.to_const #=&gt; Class
2779
+ </pre>
2780
+ <p>
2781
+ Note this method is not as verstile as it should be, since it can not
2782
+ access contants relative to the current execution context. But without a
2783
+ binding_of_caller that does not seem possible.
2784
+ </p>
2785
+ </div>
2786
+ <div class="sourcecode">
2787
+ <p class="source-link">[ <a href="javascript:toggleSource('M000353_source')" id="l_M000353_source">show source</a> ]</p>
2788
+ <div id="M000353_source" class="dyn-source">
2789
+ <pre>
2790
+ <span class="ruby-comment cmt"># File lib/facets/core/string/to_const.rb, line 12</span>
2791
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_const</span>
2792
+ <span class="ruby-identifier">split</span>(<span class="ruby-value str">'::'</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-constant">Object</span>){ <span class="ruby-operator">|</span><span class="ruby-identifier">namespace</span>,<span class="ruby-identifier">name</span><span class="ruby-operator">|</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">const_get</span>(<span class="ruby-identifier">name</span>) }
2793
+ <span class="ruby-keyword kw">end</span>
2794
+ </pre>
2795
+ </div>
2796
+ </div>
2797
+ </div>
2798
+ <div class="method">
2799
+ <div class="title">
2800
+ <a name="M000313"></a><b>to_date</b>()
2801
+ </div>
2802
+ <div class="sourcecode">
2803
+ <p class="source-link">[ <a href="javascript:toggleSource('M000313_source')" id="l_M000313_source">show source</a> ]</p>
2804
+ <div id="M000313_source" class="dyn-source">
2805
+ <pre>
2806
+ <span class="ruby-comment cmt"># File lib/facets/core/string/to_date.rb, line 4</span>
2807
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_date</span>
2808
+ <span class="ruby-identifier">require</span> <span class="ruby-value str">'date'</span>
2809
+ <span class="ruby-identifier">require</span> <span class="ruby-value str">'parsedate'</span>
2810
+ <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>])
2811
+ <span class="ruby-keyword kw">end</span>
2812
+ </pre>
2813
+ </div>
2814
+ </div>
2815
+ </div>
2816
+ <div class="method">
2817
+ <div class="title">
2818
+ <a name="M000310"></a><b>to_proc</b>(context=nil)
2819
+ </div>
2820
+ <div class="description">
2821
+ <p>
2822
+ Evaluates a <a href="String.html">String</a> as a <a
2823
+ href="Proc.html">Proc</a>.
2824
+ </p>
2825
+ <pre>
2826
+ xyp = &quot;|x,y| x + y&quot;.to_proc
2827
+ xyp.class #=&gt; Proc
2828
+ xyp.call(1,2) #=&gt; 3
2829
+ </pre>
2830
+ </div>
2831
+ <div class="sourcecode">
2832
+ <p class="source-link">[ <a href="javascript:toggleSource('M000310_source')" id="l_M000310_source">show source</a> ]</p>
2833
+ <div id="M000310_source" class="dyn-source">
2834
+ <pre>
2835
+ <span class="ruby-comment cmt"># File lib/facets/core/string/to_proc.rb, line 14</span>
2836
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_proc</span>(<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
2837
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
2838
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Binding</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">context</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Proc</span>)
2839
+ <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">eval</span> <span class="ruby-node">&quot;proc { #{self} }&quot;</span>, <span class="ruby-identifier">context</span>
2840
+ <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">context</span>
2841
+ <span class="ruby-identifier">context</span>.<span class="ruby-identifier">instance_eval</span> <span class="ruby-node">&quot;proc { #{self} }&quot;</span>
2842
+ <span class="ruby-keyword kw">end</span>
2843
+ <span class="ruby-keyword kw">else</span>
2844
+ <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">eval</span> <span class="ruby-node">&quot;proc { #{self} }&quot;</span>
2845
+ <span class="ruby-keyword kw">end</span>
2846
+ <span class="ruby-keyword kw">end</span>
2847
+ </pre>
2848
+ </div>
2849
+ </div>
2850
+ </div>
2851
+ <div class="method">
2852
+ <div class="title">
2853
+ <a name="M000339"></a><b>to_re</b>(esc=true)
2854
+ </div>
2855
+ <div class="description">
2856
+ <p>
2857
+ Turns a string into a regular expression. By default it will escape all
2858
+ characters. Use <tt>false</tt> argument to turn off escaping.
2859
+ </p>
2860
+ <pre>
2861
+ &quot;[&quot;.to_re #=&gt; /\[/
2862
+ </pre>
2863
+ </div>
2864
+ <div class="sourcecode">
2865
+ <p class="source-link">[ <a href="javascript:toggleSource('M000339_source')" id="l_M000339_source">show source</a> ]</p>
2866
+ <div id="M000339_source" class="dyn-source">
2867
+ <pre>
2868
+ <span class="ruby-comment cmt"># File lib/facets/core/string/to_re.rb, line 10</span>
2869
+ <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">true</span>)
2870
+ <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>))
2871
+ <span class="ruby-keyword kw">end</span>
2872
+ </pre>
2873
+ </div>
2874
+ </div>
2875
+ </div>
2876
+ <div class="method">
2877
+ <div class="title">
2878
+ <a name="M000340"></a><b>to_rx</b>()
2879
+ </div>
2880
+ <div class="description">
2881
+ <p>
2882
+ Turns a string into a regular expression. Unlike <a
2883
+ href="String.html#M000339">to_re</a> this will not escape characters.
2884
+ </p>
2885
+ <pre>
2886
+ &quot;a?&quot;.to_rx #=&gt; /a?/
2887
+ </pre>
2888
+ </div>
2889
+ <div class="sourcecode">
2890
+ <p class="source-link">[ <a href="javascript:toggleSource('M000340_source')" id="l_M000340_source">show source</a> ]</p>
2891
+ <div id="M000340_source" class="dyn-source">
2892
+ <pre>
2893
+ <span class="ruby-comment cmt"># File lib/facets/core/string/to_re.rb, line 19</span>
2894
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_rx</span>
2895
+ <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
2896
+ <span class="ruby-keyword kw">end</span>
2897
+ </pre>
2898
+ </div>
2899
+ </div>
2900
+ </div>
2901
+ <div class="method">
2902
+ <div class="title">
2903
+ <a name="M000358"></a><b>to_time</b>()
2904
+ </div>
2905
+ <div class="sourcecode">
2906
+ <p class="source-link">[ <a href="javascript:toggleSource('M000358_source')" id="l_M000358_source">show source</a> ]</p>
2907
+ <div id="M000358_source" class="dyn-source">
2908
+ <pre>
2909
+ <span class="ruby-comment cmt"># File lib/facets/core/string/to_time.rb, line 4</span>
2910
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_time</span>
2911
+ <span class="ruby-identifier">require</span> <span class="ruby-value str">'time'</span>
2912
+ <span class="ruby-constant">Time</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-keyword kw">self</span>)
2913
+ <span class="ruby-keyword kw">end</span>
2914
+ </pre>
2915
+ </div>
2916
+ </div>
2917
+ </div>
2918
+ <div class="method">
2919
+ <div class="title">
2920
+ <a name="M000334"></a><b>unbracket</b>(bra=nil, ket=nil)
2921
+ </div>
2922
+ <div class="description">
2923
+ <p>
2924
+ Return a new string embraced by given brakets. If only one bracket char is
2925
+ given it will be placed on either side.
2926
+ </p>
2927
+ <pre>
2928
+ &quot;{unwrap me}&quot;.debracket('{') #=&gt; &quot;unwrap me&quot;
2929
+ &quot;--unwrap me!&quot;.debracket('--','!') #=&gt; &quot;unwrap me!&quot;
2930
+ </pre>
2931
+ </div>
2932
+ <div class="sourcecode">
2933
+ <p class="source-link">[ <a href="javascript:toggleSource('M000334_source')" id="l_M000334_source">show source</a> ]</p>
2934
+ <div id="M000334_source" class="dyn-source">
2935
+ <pre>
2936
+ <span class="ruby-comment cmt"># File lib/facets/core/string/unbracket.rb, line 16</span>
2937
+ <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>)
2938
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bra</span>
2939
+ <span class="ruby-identifier">ket</span> = <span class="ruby-constant">Sring</span>.<span class="ruby-identifier">bra2ket</span>[<span class="ruby-identifier">bra</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ket</span>
2940
+ <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>
2941
+ <span class="ruby-identifier">s</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
2942
+ <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>)
2943
+ <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>)
2944
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
2945
+ <span class="ruby-keyword kw">else</span>
2946
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">m</span> = <span class="ruby-constant">String</span>.<span class="ruby-identifier">bra2ket</span>[ <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span>,<span class="ruby-value">1</span>] ]
2947
+ <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>
2948
+ <span class="ruby-keyword kw">end</span>
2949
+ <span class="ruby-keyword kw">end</span>
2950
+ <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>
2951
+ <span class="ruby-keyword kw">end</span>
2952
+ </pre>
2953
+ </div>
2954
+ </div>
2955
+ </div>
2956
+ <div class="method">
2957
+ <div class="title">
2958
+ <a name="M000335"></a><b>unbracket!</b>(bra=nil, ket=nil)
2959
+ </div>
2960
+ <div class="description">
2961
+ <p>
2962
+ Inplace version of debraket.
2963
+ </p>
2964
+ </div>
2965
+ <div class="sourcecode">
2966
+ <p class="source-link">[ <a href="javascript:toggleSource('M000335_source')" id="l_M000335_source">show source</a> ]</p>
2967
+ <div id="M000335_source" class="dyn-source">
2968
+ <pre>
2969
+ <span class="ruby-comment cmt"># File lib/facets/core/string/unbracket.rb, line 33</span>
2970
+ <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>)
2971
+ <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>) )
2972
+ <span class="ruby-keyword kw">end</span>
2973
+ </pre>
2974
+ </div>
2975
+ </div>
2976
+ </div>
2977
+ <div class="method">
2978
+ <div class="title">
2979
+ <a name="M000376"></a><b>underscore</b>(
2980
+ </div>
2981
+ <div class="description">
2982
+ <p>
2983
+ Underscore string based on camelcase characteristics.
2984
+ </p>
2985
+ </div>
2986
+ <div class="sourcecode">
2987
+ <p class="source-link">[ <a href="javascript:toggleSource('M000376_source')" id="l_M000376_source">show source</a> ]</p>
2988
+ <div id="M000376_source" class="dyn-source">
2989
+ <pre>
2990
+ <span class="ruby-comment cmt"># File lib/facets/core/string/underscore.rb, line 5</span>
2991
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">underscore</span> <span class="ruby-comment cmt">#(camel_cased_word)</span>
2992
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([A-Z]+)([A-Z])/</span>,<span class="ruby-value str">'\1_\2'</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([a-z])([A-Z])/</span>,<span class="ruby-value str">'\1_\2'</span>).<span class="ruby-identifier">downcase</span>
2993
+ <span class="ruby-keyword kw">end</span>
2994
+ </pre>
2995
+ </div>
2996
+ </div>
2997
+ </div>
2998
+ <div class="method">
2999
+ <div class="title">
3000
+ <a name="M000287"></a><b>unix_crypt</b>()
3001
+ </div>
3002
+ <div class="description">
3003
+ <p>
3004
+ Common Unix cryptography method.
3005
+ </p>
3006
+ </div>
3007
+ <div class="sourcecode">
3008
+ <p class="source-link">[ <a href="javascript:toggleSource('M000287_source')" id="l_M000287_source">show source</a> ]</p>
3009
+ <div id="M000287_source" class="dyn-source">
3010
+ <pre>
3011
+ <span class="ruby-comment cmt"># File lib/facets/core/string/unix_crypt.rb, line 7</span>
3012
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unix_crypt</span>
3013
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">crypt</span>(<span class="ruby-constant">String</span>.<span class="ruby-identifier">rand_letter</span> <span class="ruby-operator">+</span> <span class="ruby-constant">String</span>.<span class="ruby-identifier">rand_letter</span>)
3014
+ <span class="ruby-keyword kw">end</span>
3015
+ </pre>
3016
+ </div>
3017
+ </div>
3018
+ </div>
3019
+ <div class="method">
3020
+ <div class="title">
3021
+ <a name="M000288"></a><b>unix_crypt!</b>()
3022
+ </div>
3023
+ <div class="description">
3024
+ <p>
3025
+ Common Unix cryptography in-place method.
3026
+ </p>
3027
+ </div>
3028
+ <div class="sourcecode">
3029
+ <p class="source-link">[ <a href="javascript:toggleSource('M000288_source')" id="l_M000288_source">show source</a> ]</p>
3030
+ <div id="M000288_source" class="dyn-source">
3031
+ <pre>
3032
+ <span class="ruby-comment cmt"># File lib/facets/core/string/unix_crypt.rb, line 12</span>
3033
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unix_crypt!</span>
3034
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>( <span class="ruby-identifier">unix_crypt</span> )
3035
+ <span class="ruby-keyword kw">end</span>
3036
+ </pre>
3037
+ </div>
3038
+ </div>
3039
+ </div>
3040
+ <div class="method">
3041
+ <div class="title">
3042
+ <a name="M000298"></a><b>unpack</b>(format, offset=nil)
3043
+ </div>
3044
+ <div class="description">
3045
+ <p>
3046
+ Upack with offset. Extends <a href="String.html#M000298">unpack</a> to
3047
+ allow a string to be unpacked starting at an offset position within it.
3048
+ </p>
3049
+ </div>
3050
+ <div class="sourcecode">
3051
+ <p class="source-link">[ <a href="javascript:toggleSource('M000298_source')" id="l_M000298_source">show source</a> ]</p>
3052
+ <div id="M000298_source" class="dyn-source">
3053
+ <pre>
3054
+ <span class="ruby-comment cmt"># File lib/facets/core/string/unpack.rb, line 8</span>
3055
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">format</span>, <span class="ruby-identifier">offset</span>=<span class="ruby-keyword kw">nil</span>)
3056
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">offset</span>.<span class="ruby-identifier">nil?</span>
3057
+ <span class="ruby-identifier">unpack_from_orgin</span>(<span class="ruby-identifier">format</span>)
3058
+ <span class="ruby-keyword kw">else</span>
3059
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">offset</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">unpack_from_orgin</span>(<span class="ruby-identifier">format</span>)
3060
+ <span class="ruby-keyword kw">end</span>
3061
+ <span class="ruby-keyword kw">end</span>
3062
+ </pre>
3063
+ </div>
3064
+ </div>
3065
+ </div>
3066
+ <div class="method">
3067
+ <div class="title">
3068
+ <a name="M000363"></a><b>unshift</b>( str=' ' )
3069
+ </div>
3070
+ <div class="sourcecode">
3071
+ <p class="source-link">[ <a href="javascript:toggleSource('M000363_source')" id="l_M000363_source">show source</a> ]</p>
3072
+ <div id="M000363_source" class="dyn-source">
3073
+ <pre>
3074
+ <span class="ruby-comment cmt"># File lib/facets/core/string/unshift.rb, line 4</span>
3075
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unshift</span>( <span class="ruby-identifier">str</span>=<span class="ruby-value str">' '</span> )
3076
+ <span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">str</span>)
3077
+ <span class="ruby-keyword kw">end</span>
3078
+ </pre>
3079
+ </div>
3080
+ </div>
3081
+ </div>
3082
+ <div class="method">
3083
+ <div class="title">
3084
+ <a name="M000350"></a><b>upcase?</b>()
3085
+ </div>
3086
+ <div class="description">
3087
+ <p>
3088
+ Is the string upcase/uppercase?
3089
+ </p>
3090
+ <pre>
3091
+ &quot;THIS&quot;.upcase? #=&gt; true
3092
+ &quot;This&quot;.upcase? #=&gt; false
3093
+ &quot;this&quot;.upcase? #=&gt; false
3094
+ </pre>
3095
+ </div>
3096
+ <div class="aka">
3097
+ This method is also aliased as
3098
+ <a href="String.html#M000351">uppercase?</a>
3099
+ </div>
3100
+ <div class="sourcecode">
3101
+ <p class="source-link">[ <a href="javascript:toggleSource('M000350_source')" id="l_M000350_source">show source</a> ]</p>
3102
+ <div id="M000350_source" class="dyn-source">
3103
+ <pre>
3104
+ <span class="ruby-comment cmt"># File lib/facets/core/string/upcase.rb, line 13</span>
3105
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upcase?</span>
3106
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">upcase</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">self</span>
3107
+ <span class="ruby-keyword kw">end</span>
3108
+ </pre>
3109
+ </div>
3110
+ </div>
3111
+ </div>
3112
+ <div class="method">
3113
+ <div class="title">
3114
+ <a name="M000351"></a><b>uppercase?</b>()
3115
+ </div>
3116
+ <div class="description">
3117
+ <p>
3118
+ Alias for <a href="String.html#M000350">upcase?</a>
3119
+ </p>
3120
+ </div>
3121
+ </div>
3122
+ <div class="method">
3123
+ <div class="title">
3124
+ <a name="M000312"></a><b>whitespace?</b>()
3125
+ </div>
3126
+ <div class="description">
3127
+ <p>
3128
+ Alias for <a href="String.html#M000311">blank?</a>
3129
+ </p>
3130
+ </div>
3131
+ </div>
3132
+ <div class="method">
3133
+ <div class="title">
3134
+ <a name="M000326"></a><b>whitespace?</b>()
3135
+ </div>
3136
+ <div class="description">
3137
+ <p>
3138
+ Alias for <a href="String.html#M000311">blank?</a>
3139
+ </p>
3140
+ </div>
3141
+ </div>
3142
+ <div class="method">
3143
+ <div class="title">
3144
+ <a name="M000285"></a><b>word_filter</b>( &amp;blk )
3145
+ </div>
3146
+ <div class="description">
3147
+ <p>
3148
+ Filters out words from a string based on block test.
3149
+ </p>
3150
+ <pre>
3151
+ &quot;a string&quot;.word_filter { |word| word =~ /^a/ } #=&gt; &quot;string&quot;
3152
+ </pre>
3153
+ </div>
3154
+ <div class="sourcecode">
3155
+ <p class="source-link">[ <a href="javascript:toggleSource('M000285_source')" id="l_M000285_source">show source</a> ]</p>
3156
+ <div id="M000285_source" class="dyn-source">
3157
+ <pre>
3158
+ <span class="ruby-comment cmt"># File lib/facets/core/string/word_filter.rb, line 8</span>
3159
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">word_filter</span>( <span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span> )
3160
+ <span class="ruby-identifier">s</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
3161
+ <span class="ruby-identifier">s</span>.<span class="ruby-identifier">word_filter!</span>( <span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span> )
3162
+ <span class="ruby-keyword kw">end</span>
3163
+ </pre>
3164
+ </div>
3165
+ </div>
3166
+ </div>
3167
+ <div class="method">
3168
+ <div class="title">
3169
+ <a name="M000286"></a><b>word_filter!</b>( {|| ...}
3170
+ </div>
3171
+ <div class="description">
3172
+ <p>
3173
+ In place version of <a href="String.html#M000285">word_filter</a>.
3174
+ </p>
3175
+ <pre>
3176
+ &quot;a string&quot;.word_filter { |word| ... }
3177
+ </pre>
3178
+ </div>
3179
+ <div class="sourcecode">
3180
+ <p class="source-link">[ <a href="javascript:toggleSource('M000286_source')" id="l_M000286_source">show source</a> ]</p>
3181
+ <div id="M000286_source" class="dyn-source">
3182
+ <pre>
3183
+ <span class="ruby-comment cmt"># File lib/facets/core/string/word_filter.rb, line 17</span>
3184
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">word_filter!</span> <span class="ruby-comment cmt">#:yield:</span>
3185
+ <span class="ruby-identifier">rest_of_string</span> = <span class="ruby-keyword kw">self</span>
3186
+ <span class="ruby-identifier">wordfind</span> = <span class="ruby-regexp re">/(\w+)/</span>
3187
+ <span class="ruby-identifier">offset</span> = <span class="ruby-value">0</span>
3188
+ <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">wmatch</span> = <span class="ruby-identifier">wordfind</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">rest_of_string</span>)
3189
+ <span class="ruby-identifier">word</span> = <span class="ruby-identifier">wmatch</span>[<span class="ruby-value">0</span>]
3190
+ <span class="ruby-identifier">range</span> = <span class="ruby-identifier">offset</span><span class="ruby-operator">+</span><span class="ruby-identifier">wmatch</span>.<span class="ruby-identifier">begin</span>(<span class="ruby-value">0</span>) <span class="ruby-operator">...</span> <span class="ruby-identifier">offset</span><span class="ruby-operator">+</span><span class="ruby-identifier">wmatch</span>.<span class="ruby-identifier">end</span>(<span class="ruby-value">0</span>)
3191
+ <span class="ruby-identifier">rest_of_string</span> = <span class="ruby-identifier">wmatch</span>.<span class="ruby-identifier">post_match</span>
3192
+ <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">range</span>] = <span class="ruby-keyword kw">yield</span>( <span class="ruby-identifier">word</span> ).<span class="ruby-identifier">to_s</span>
3193
+ <span class="ruby-identifier">offset</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">rest_of_string</span>.<span class="ruby-identifier">length</span>
3194
+ <span class="ruby-keyword kw">end</span>
3195
+ <span class="ruby-keyword kw">self</span>
3196
+ <span class="ruby-keyword kw">end</span>
3197
+ </pre>
3198
+ </div>
3199
+ </div>
3200
+ </div>
3201
+ <div class="method">
3202
+ <div class="title">
3203
+ <a name="M000293"></a><b>word_wrap</b>( col_width=80 )
3204
+ </div>
3205
+ <div class="description">
3206
+ <p>
3207
+ Word wrap a string not exceeding max width.
3208
+ </p>
3209
+ <pre>
3210
+ puts &quot;this is a test&quot;.word_wrap(4)
3211
+ </pre>
3212
+ <p>
3213
+ <em>produces</em>
3214
+ </p>
3215
+ <pre>
3216
+ this
3217
+ is a
3218
+ test
3219
+ </pre>
3220
+ </div>
3221
+ <div class="sourcecode">
3222
+ <p class="source-link">[ <a href="javascript:toggleSource('M000293_source')" id="l_M000293_source">show source</a> ]</p>
3223
+ <div id="M000293_source" class="dyn-source">
3224
+ <pre>
3225
+ <span class="ruby-comment cmt"># File lib/facets/core/string/word_wrap.rb, line 18</span>
3226
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">word_wrap</span>( <span class="ruby-identifier">col_width</span>=<span class="ruby-value">80</span> )
3227
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">word_wrap!</span>( <span class="ruby-identifier">col_width</span> )
3228
+ <span class="ruby-keyword kw">end</span>
3229
+ </pre>
3230
+ </div>
3231
+ </div>
3232
+ </div>
3233
+ <div class="method">
3234
+ <div class="title">
3235
+ <a name="M000294"></a><b>word_wrap!</b>( col_width=80 )
3236
+ </div>
3237
+ <div class="description">
3238
+ <p>
3239
+ As with <a href="String.html#M000293">word_wrap</a>, but modifies the
3240
+ string in place.
3241
+ </p>
3242
+ </div>
3243
+ <div class="sourcecode">
3244
+ <p class="source-link">[ <a href="javascript:toggleSource('M000294_source')" id="l_M000294_source">show source</a> ]</p>
3245
+ <div id="M000294_source" class="dyn-source">
3246
+ <pre>
3247
+ <span class="ruby-comment cmt"># File lib/facets/core/string/word_wrap.rb, line 24</span>
3248
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">word_wrap!</span>( <span class="ruby-identifier">col_width</span>=<span class="ruby-value">80</span> )
3249
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">gsub!</span>( <span class="ruby-node">/(\S{#{col_width}})(?=\S)/</span>, <span class="ruby-value str">'\1 '</span> )
3250
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">gsub!</span>( <span class="ruby-node">/(.{1,#{col_width}})(?:\s+|$)/</span>, <span class="ruby-value str">&quot;\\1\n&quot;</span> )
3251
+ <span class="ruby-keyword kw">self</span>
3252
+ <span class="ruby-keyword kw">end</span>
3253
+ </pre>
3254
+ </div>
3255
+ </div>
3256
+ </div>
3257
+ <div class="method">
3258
+ <div class="title">
3259
+ <a name="M000346"></a><b>words</b>()
3260
+ </div>
3261
+ <div class="description">
3262
+ <p>
3263
+ Returns an array of characters.
3264
+ </p>
3265
+ <pre>
3266
+ &quot;abc 123&quot;.words #=&gt; [&quot;abc&quot;,&quot;123&quot;]
3267
+ </pre>
3268
+ </div>
3269
+ <div class="sourcecode">
3270
+ <p class="source-link">[ <a href="javascript:toggleSource('M000346_source')" id="l_M000346_source">show source</a> ]</p>
3271
+ <div id="M000346_source" class="dyn-source">
3272
+ <pre>
3273
+ <span class="ruby-comment cmt"># File lib/facets/core/string/words.rb, line 8</span>
3274
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">words</span>
3275
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\s+/</span>)
3276
+ <span class="ruby-keyword kw">end</span>
3277
+ </pre>
3278
+ </div>
3279
+ </div>
3280
+ </div>
3281
+ </div>
3282
+
3283
+ </div>
3284
+
3285
+ </body>
3286
+ </html>