facets 2.5.2 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (677) hide show
  1. data/HISTORY.rdoc +2245 -0
  2. data/MANIFEST +20 -725
  3. data/{README → README.rdoc} +0 -0
  4. data/RELEASE +37 -48
  5. data/doc/log/stats/index.html +39 -0
  6. data/doc/notes/CHANGES +2529 -0
  7. data/lib/{more → core}/facets/binding/opvars.rb +0 -0
  8. data/lib/core/facets/integer/length.rb +16 -0
  9. data/lib/core/facets/kernel/state.rb +50 -0
  10. data/lib/core/facets/module/extend.rb +2 -2
  11. data/lib/core/facets/string/camelcase.rb +33 -9
  12. data/lib/core/facets/string/lowercase.rb +1 -0
  13. data/lib/core/facets/string/methodize.rb +10 -1
  14. data/lib/core/facets/string/modulize.rb +8 -0
  15. data/lib/core/facets/string/pathize.rb +10 -0
  16. data/lib/core/facets/string/snakecase.rb +2 -2
  17. data/lib/core/facets/string/underscore.rb +21 -0
  18. data/lib/core/facets/string/uppercase.rb +23 -0
  19. data/lib/more/facets/censor.rb +97 -0
  20. data/lib/more/facets/minitar.rb +11 -11
  21. data/lib/more/facets/platform.rb +47 -0
  22. data/lib/more/facets/pry.rb +32 -0
  23. data/lib/more/facets/string/obfuscate.rb +65 -0
  24. data/lib/more/facets/string/stylize.rb +169 -0
  25. data/lib/more/facets/string/words.rb +10 -13
  26. data/meta/modified +1 -0
  27. data/meta/package +1 -0
  28. data/meta/version +1 -0
  29. data/test/core/integer/test_length.rb +12 -0
  30. metadata +41 -822
  31. data/CHANGES +0 -133
  32. data/VERSION +0 -1
  33. data/doc/changelogs/CHANGELOG-0.10.30 +0 -239
  34. data/doc/changelogs/CHANGELOG-1.8.54 +0 -450
  35. data/doc/changelogs/CHANGELOG-2.4.5 +0 -1654
  36. data/doc/rdoc/core/classes/Array.html +0 -1208
  37. data/doc/rdoc/core/classes/Binding.html +0 -364
  38. data/doc/rdoc/core/classes/Class.html +0 -444
  39. data/doc/rdoc/core/classes/Comparable.html +0 -250
  40. data/doc/rdoc/core/classes/Dir.html +0 -395
  41. data/doc/rdoc/core/classes/Enumerable.html +0 -1262
  42. data/doc/rdoc/core/classes/Enumerable/Enumerator.html +0 -243
  43. data/doc/rdoc/core/classes/Enumerator.html +0 -242
  44. data/doc/rdoc/core/classes/Exception.html +0 -163
  45. data/doc/rdoc/core/classes/FalseClass.html +0 -131
  46. data/doc/rdoc/core/classes/File.html +0 -576
  47. data/doc/rdoc/core/classes/FileTest.html +0 -116
  48. data/doc/rdoc/core/classes/Float.html +0 -159
  49. data/doc/rdoc/core/classes/Functor.html +0 -171
  50. data/doc/rdoc/core/classes/Hash.html +0 -2184
  51. data/doc/rdoc/core/classes/Indexable.html +0 -629
  52. data/doc/rdoc/core/classes/InstanceVariables.html +0 -306
  53. data/doc/rdoc/core/classes/Integer.html +0 -583
  54. data/doc/rdoc/core/classes/Kernel.html +0 -2269
  55. data/doc/rdoc/core/classes/Lazy.html +0 -96
  56. data/doc/rdoc/core/classes/Lazy/Future.html +0 -100
  57. data/doc/rdoc/core/classes/Lazy/Promise.html +0 -114
  58. data/doc/rdoc/core/classes/Lazy/PromiseSafe.html +0 -99
  59. data/doc/rdoc/core/classes/MatchData.html +0 -204
  60. data/doc/rdoc/core/classes/Module.html +0 -1316
  61. data/doc/rdoc/core/classes/NilClass.html +0 -217
  62. data/doc/rdoc/core/classes/Numeric.html +0 -251
  63. data/doc/rdoc/core/classes/Object.html +0 -161
  64. data/doc/rdoc/core/classes/ObjectSpace.html +0 -114
  65. data/doc/rdoc/core/classes/Proc.html +0 -302
  66. data/doc/rdoc/core/classes/Range.html +0 -360
  67. data/doc/rdoc/core/classes/Regexp.html +0 -191
  68. data/doc/rdoc/core/classes/Stackable.html +0 -262
  69. data/doc/rdoc/core/classes/String.html +0 -2332
  70. data/doc/rdoc/core/classes/Struct.html +0 -121
  71. data/doc/rdoc/core/classes/Symbol.html +0 -441
  72. data/doc/rdoc/core/classes/Time.html +0 -521
  73. data/doc/rdoc/core/classes/TrueClass.html +0 -131
  74. data/doc/rdoc/core/classes/UnboundMethod.html +0 -200
  75. data/doc/rdoc/core/created.rid +0 -1
  76. data/doc/rdoc/core/files/README.html +0 -287
  77. data/doc/rdoc/core/files/doc/README_core.html +0 -230
  78. data/doc/rdoc/core/files/lib/core/facets/array/combination_rb.html +0 -96
  79. data/doc/rdoc/core/files/lib/core/facets/array/conjoin_rb.html +0 -92
  80. data/doc/rdoc/core/files/lib/core/facets/array/delete_rb.html +0 -101
  81. data/doc/rdoc/core/files/lib/core/facets/array/delete_unless_rb.html +0 -92
  82. data/doc/rdoc/core/files/lib/core/facets/array/delete_values_rb.html +0 -92
  83. data/doc/rdoc/core/files/lib/core/facets/array/index_rb.html +0 -92
  84. data/doc/rdoc/core/files/lib/core/facets/array/indexable_rb.html +0 -97
  85. data/doc/rdoc/core/files/lib/core/facets/array/merge_rb.html +0 -92
  86. data/doc/rdoc/core/files/lib/core/facets/array/not_empty_rb.html +0 -92
  87. data/doc/rdoc/core/files/lib/core/facets/array/only_rb.html +0 -92
  88. data/doc/rdoc/core/files/lib/core/facets/array/pad_rb.html +0 -92
  89. data/doc/rdoc/core/files/lib/core/facets/array/permutation_rb.html +0 -92
  90. data/doc/rdoc/core/files/lib/core/facets/array/product_rb.html +0 -92
  91. data/doc/rdoc/core/files/lib/core/facets/array/recursively_rb.html +0 -92
  92. data/doc/rdoc/core/files/lib/core/facets/array/rotate_rb.html +0 -92
  93. data/doc/rdoc/core/files/lib/core/facets/array/select_rb.html +0 -92
  94. data/doc/rdoc/core/files/lib/core/facets/array/splice_rb.html +0 -92
  95. data/doc/rdoc/core/files/lib/core/facets/array/stackable_rb.html +0 -97
  96. data/doc/rdoc/core/files/lib/core/facets/array/traverse_rb.html +0 -92
  97. data/doc/rdoc/core/files/lib/core/facets/array_rb.html +0 -92
  98. data/doc/rdoc/core/files/lib/core/facets/binding/caller_rb.html +0 -97
  99. data/doc/rdoc/core/files/lib/core/facets/binding/callstack_rb.html +0 -96
  100. data/doc/rdoc/core/files/lib/core/facets/binding/defined_rb.html +0 -96
  101. data/doc/rdoc/core/files/lib/core/facets/binding/eval_rb.html +0 -92
  102. data/doc/rdoc/core/files/lib/core/facets/binding/local_variables_rb.html +0 -96
  103. data/doc/rdoc/core/files/lib/core/facets/binding/self_rb.html +0 -96
  104. data/doc/rdoc/core/files/lib/core/facets/binding_rb.html +0 -92
  105. data/doc/rdoc/core/files/lib/core/facets/bitmask_rb.html +0 -92
  106. data/doc/rdoc/core/files/lib/core/facets/blank_rb.html +0 -97
  107. data/doc/rdoc/core/files/lib/core/facets/boolean_rb.html +0 -126
  108. data/doc/rdoc/core/files/lib/core/facets/cattr_rb.html +0 -100
  109. data/doc/rdoc/core/files/lib/core/facets/class/cattr_accessor_rb.html +0 -96
  110. data/doc/rdoc/core/files/lib/core/facets/class/cattr_rb.html +0 -92
  111. data/doc/rdoc/core/files/lib/core/facets/class/cattr_reader_rb.html +0 -96
  112. data/doc/rdoc/core/files/lib/core/facets/class/cattr_writer_rb.html +0 -96
  113. data/doc/rdoc/core/files/lib/core/facets/class/descendents_rb.html +0 -92
  114. data/doc/rdoc/core/files/lib/core/facets/class/methodize_rb.html +0 -96
  115. data/doc/rdoc/core/files/lib/core/facets/class/pathize_rb.html +0 -96
  116. data/doc/rdoc/core/files/lib/core/facets/class/prepend_rb.html +0 -92
  117. data/doc/rdoc/core/files/lib/core/facets/class/subclasses_rb.html +0 -96
  118. data/doc/rdoc/core/files/lib/core/facets/class/to_proc_rb.html +0 -92
  119. data/doc/rdoc/core/files/lib/core/facets/class_rb.html +0 -92
  120. data/doc/rdoc/core/files/lib/core/facets/comparable/at_least_rb.html +0 -96
  121. data/doc/rdoc/core/files/lib/core/facets/comparable/at_most_rb.html +0 -96
  122. data/doc/rdoc/core/files/lib/core/facets/comparable/bound_rb.html +0 -96
  123. data/doc/rdoc/core/files/lib/core/facets/comparable/cap_rb.html +0 -92
  124. data/doc/rdoc/core/files/lib/core/facets/comparable/clip_rb.html +0 -92
  125. data/doc/rdoc/core/files/lib/core/facets/comparable/cmp_rb.html +0 -92
  126. data/doc/rdoc/core/files/lib/core/facets/comparable/comparable_rb.html +0 -109
  127. data/doc/rdoc/core/files/lib/core/facets/comparable_rb.html +0 -92
  128. data/doc/rdoc/core/files/lib/core/facets/dir/ascend_rb.html +0 -92
  129. data/doc/rdoc/core/files/lib/core/facets/dir/descend_rb.html +0 -96
  130. data/doc/rdoc/core/files/lib/core/facets/dir/multiglob_rb.html +0 -92
  131. data/doc/rdoc/core/files/lib/core/facets/dir/parent_rb.html +0 -92
  132. data/doc/rdoc/core/files/lib/core/facets/dir/recurse_rb.html +0 -92
  133. data/doc/rdoc/core/files/lib/core/facets/dir_rb.html +0 -92
  134. data/doc/rdoc/core/files/lib/core/facets/enumerable/accumulate_rb.html +0 -96
  135. data/doc/rdoc/core/files/lib/core/facets/enumerable/cluster_by_rb.html +0 -96
  136. data/doc/rdoc/core/files/lib/core/facets/enumerable/collect_rb.html +0 -101
  137. data/doc/rdoc/core/files/lib/core/facets/enumerable/commonality_rb.html +0 -92
  138. data/doc/rdoc/core/files/lib/core/facets/enumerable/compact_map_rb.html +0 -92
  139. data/doc/rdoc/core/files/lib/core/facets/enumerable/count_rb.html +0 -92
  140. data/doc/rdoc/core/files/lib/core/facets/enumerable/divide_rb.html +0 -92
  141. data/doc/rdoc/core/files/lib/core/facets/enumerable/duplicates_rb.html +0 -92
  142. data/doc/rdoc/core/files/lib/core/facets/enumerable/each_by_rb.html +0 -96
  143. data/doc/rdoc/core/files/lib/core/facets/enumerable/entropy_rb.html +0 -96
  144. data/doc/rdoc/core/files/lib/core/facets/enumerable/frequency_rb.html +0 -92
  145. data/doc/rdoc/core/files/lib/core/facets/enumerable/graph_rb.html +0 -96
  146. data/doc/rdoc/core/files/lib/core/facets/enumerable/group_by_rb.html +0 -92
  147. data/doc/rdoc/core/files/lib/core/facets/enumerable/inject_rb.html +0 -92
  148. data/doc/rdoc/core/files/lib/core/facets/enumerable/map_send_rb.html +0 -92
  149. data/doc/rdoc/core/files/lib/core/facets/enumerable/map_with_index_rb.html +0 -92
  150. data/doc/rdoc/core/files/lib/core/facets/enumerable/mash_rb.html +0 -92
  151. data/doc/rdoc/core/files/lib/core/facets/enumerable/mode_rb.html +0 -92
  152. data/doc/rdoc/core/files/lib/core/facets/enumerable/modulate_rb.html +0 -92
  153. data/doc/rdoc/core/files/lib/core/facets/enumerable/none_rb.html +0 -92
  154. data/doc/rdoc/core/files/lib/core/facets/enumerable/occur_rb.html +0 -92
  155. data/doc/rdoc/core/files/lib/core/facets/enumerable/one_rb.html +0 -92
  156. data/doc/rdoc/core/files/lib/core/facets/enumerable/probability_rb.html +0 -92
  157. data/doc/rdoc/core/files/lib/core/facets/enumerable/split_rb.html +0 -92
  158. data/doc/rdoc/core/files/lib/core/facets/enumerable/sum_rb.html +0 -92
  159. data/doc/rdoc/core/files/lib/core/facets/enumerable/take_rb.html +0 -92
  160. data/doc/rdoc/core/files/lib/core/facets/enumerable/uniq_by_rb.html +0 -92
  161. data/doc/rdoc/core/files/lib/core/facets/enumerable_rb.html +0 -92
  162. data/doc/rdoc/core/files/lib/core/facets/exception/detail_rb.html +0 -92
  163. data/doc/rdoc/core/files/lib/core/facets/exception/suppress_rb.html +0 -92
  164. data/doc/rdoc/core/files/lib/core/facets/exception_rb.html +0 -92
  165. data/doc/rdoc/core/files/lib/core/facets/file/append_rb.html +0 -92
  166. data/doc/rdoc/core/files/lib/core/facets/file/create_rb.html +0 -92
  167. data/doc/rdoc/core/files/lib/core/facets/file/null_rb.html +0 -92
  168. data/doc/rdoc/core/files/lib/core/facets/file/read_rb.html +0 -92
  169. data/doc/rdoc/core/files/lib/core/facets/file/rewrite_rb.html +0 -92
  170. data/doc/rdoc/core/files/lib/core/facets/file/rootname_rb.html +0 -92
  171. data/doc/rdoc/core/files/lib/core/facets/file/split_all_rb.html +0 -92
  172. data/doc/rdoc/core/files/lib/core/facets/file/split_root_rb.html +0 -92
  173. data/doc/rdoc/core/files/lib/core/facets/file/write_rb.html +0 -102
  174. data/doc/rdoc/core/files/lib/core/facets/file/writelines_rb.html +0 -92
  175. data/doc/rdoc/core/files/lib/core/facets/file_rb.html +0 -92
  176. data/doc/rdoc/core/files/lib/core/facets/filetest/root_rb.html +0 -92
  177. data/doc/rdoc/core/files/lib/core/facets/filetest_rb.html +0 -92
  178. data/doc/rdoc/core/files/lib/core/facets/float/round_rb.html +0 -96
  179. data/doc/rdoc/core/files/lib/core/facets/float_rb.html +0 -92
  180. data/doc/rdoc/core/files/lib/core/facets/functor_rb.html +0 -151
  181. data/doc/rdoc/core/files/lib/core/facets/hash/alias_rb.html +0 -92
  182. data/doc/rdoc/core/files/lib/core/facets/hash/argumentize_rb.html +0 -92
  183. data/doc/rdoc/core/files/lib/core/facets/hash/at_rb.html +0 -92
  184. data/doc/rdoc/core/files/lib/core/facets/hash/autonew_rb.html +0 -92
  185. data/doc/rdoc/core/files/lib/core/facets/hash/collate_rb.html +0 -92
  186. data/doc/rdoc/core/files/lib/core/facets/hash/dearray_values_rb.html +0 -92
  187. data/doc/rdoc/core/files/lib/core/facets/hash/delete_rb.html +0 -92
  188. data/doc/rdoc/core/files/lib/core/facets/hash/diff_rb.html +0 -92
  189. data/doc/rdoc/core/files/lib/core/facets/hash/except_rb.html +0 -92
  190. data/doc/rdoc/core/files/lib/core/facets/hash/group_by_value_rb.html +0 -92
  191. data/doc/rdoc/core/files/lib/core/facets/hash/insert_rb.html +0 -92
  192. data/doc/rdoc/core/files/lib/core/facets/hash/inverse_rb.html +0 -92
  193. data/doc/rdoc/core/files/lib/core/facets/hash/join_rb.html +0 -92
  194. data/doc/rdoc/core/files/lib/core/facets/hash/keys_rb.html +0 -92
  195. data/doc/rdoc/core/files/lib/core/facets/hash/mash_rb.html +0 -96
  196. data/doc/rdoc/core/files/lib/core/facets/hash/merge_rb.html +0 -92
  197. data/doc/rdoc/core/files/lib/core/facets/hash/new_with_rb.html +0 -92
  198. data/doc/rdoc/core/files/lib/core/facets/hash/op_add_rb.html +0 -92
  199. data/doc/rdoc/core/files/lib/core/facets/hash/op_and_rb.html +0 -92
  200. data/doc/rdoc/core/files/lib/core/facets/hash/op_mul_rb.html +0 -92
  201. data/doc/rdoc/core/files/lib/core/facets/hash/op_or_rb.html +0 -92
  202. data/doc/rdoc/core/files/lib/core/facets/hash/op_push_rb.html +0 -92
  203. data/doc/rdoc/core/files/lib/core/facets/hash/op_rb.html +0 -101
  204. data/doc/rdoc/core/files/lib/core/facets/hash/op_sub_rb.html +0 -92
  205. data/doc/rdoc/core/files/lib/core/facets/hash/recursive_merge_rb.html +0 -92
  206. data/doc/rdoc/core/files/lib/core/facets/hash/recursively_rb.html +0 -92
  207. data/doc/rdoc/core/files/lib/core/facets/hash/rekey_rb.html +0 -96
  208. data/doc/rdoc/core/files/lib/core/facets/hash/replace_each_rb.html +0 -92
  209. data/doc/rdoc/core/files/lib/core/facets/hash/select_rb.html +0 -92
  210. data/doc/rdoc/core/files/lib/core/facets/hash/slice_rb.html +0 -96
  211. data/doc/rdoc/core/files/lib/core/facets/hash/stringify_keys_rb.html +0 -96
  212. data/doc/rdoc/core/files/lib/core/facets/hash/swap_rb.html +0 -92
  213. data/doc/rdoc/core/files/lib/core/facets/hash/symbolize_keys_rb.html +0 -96
  214. data/doc/rdoc/core/files/lib/core/facets/hash/to_h_rb.html +0 -96
  215. data/doc/rdoc/core/files/lib/core/facets/hash/to_options_rb.html +0 -96
  216. data/doc/rdoc/core/files/lib/core/facets/hash/to_proc_rb.html +0 -92
  217. data/doc/rdoc/core/files/lib/core/facets/hash/to_struct_rb.html +0 -92
  218. data/doc/rdoc/core/files/lib/core/facets/hash/traverse_rb.html +0 -92
  219. data/doc/rdoc/core/files/lib/core/facets/hash/update_each_rb.html +0 -92
  220. data/doc/rdoc/core/files/lib/core/facets/hash/update_keys_rb.html +0 -92
  221. data/doc/rdoc/core/files/lib/core/facets/hash/update_rb.html +0 -103
  222. data/doc/rdoc/core/files/lib/core/facets/hash/update_values_rb.html +0 -92
  223. data/doc/rdoc/core/files/lib/core/facets/hash/weave_rb.html +0 -92
  224. data/doc/rdoc/core/files/lib/core/facets/hash/zipnew_rb.html +0 -92
  225. data/doc/rdoc/core/files/lib/core/facets/hash_rb.html +0 -92
  226. data/doc/rdoc/core/files/lib/core/facets/indexable_rb.html +0 -113
  227. data/doc/rdoc/core/files/lib/core/facets/integer/even_rb.html +0 -96
  228. data/doc/rdoc/core/files/lib/core/facets/integer/factorial_rb.html +0 -92
  229. data/doc/rdoc/core/files/lib/core/facets/integer/multiple_rb.html +0 -92
  230. data/doc/rdoc/core/files/lib/core/facets/integer/odd_rb.html +0 -92
  231. data/doc/rdoc/core/files/lib/core/facets/integer/of_rb.html +0 -92
  232. data/doc/rdoc/core/files/lib/core/facets/integer/ordinal_rb.html +0 -92
  233. data/doc/rdoc/core/files/lib/core/facets/integer_rb.html +0 -92
  234. data/doc/rdoc/core/files/lib/core/facets/kernel/__callee___rb.html +0 -96
  235. data/doc/rdoc/core/files/lib/core/facets/kernel/__class___rb.html +0 -92
  236. data/doc/rdoc/core/files/lib/core/facets/kernel/__dir___rb.html +0 -92
  237. data/doc/rdoc/core/files/lib/core/facets/kernel/__get___rb.html +0 -92
  238. data/doc/rdoc/core/files/lib/core/facets/kernel/__here___rb.html +0 -92
  239. data/doc/rdoc/core/files/lib/core/facets/kernel/__method___rb.html +0 -92
  240. data/doc/rdoc/core/files/lib/core/facets/kernel/__set___rb.html +0 -96
  241. data/doc/rdoc/core/files/lib/core/facets/kernel/as_rb.html +0 -96
  242. data/doc/rdoc/core/files/lib/core/facets/kernel/ask_rb.html +0 -92
  243. data/doc/rdoc/core/files/lib/core/facets/kernel/attr_singleton_rb.html +0 -92
  244. data/doc/rdoc/core/files/lib/core/facets/kernel/callstack_rb.html +0 -92
  245. data/doc/rdoc/core/files/lib/core/facets/kernel/complete_rb.html +0 -92
  246. data/doc/rdoc/core/files/lib/core/facets/kernel/constant_rb.html +0 -92
  247. data/doc/rdoc/core/files/lib/core/facets/kernel/d_rb.html +0 -92
  248. data/doc/rdoc/core/files/lib/core/facets/kernel/deep_copy_rb.html +0 -92
  249. data/doc/rdoc/core/files/lib/core/facets/kernel/demo_rb.html +0 -92
  250. data/doc/rdoc/core/files/lib/core/facets/kernel/ergo_rb.html +0 -96
  251. data/doc/rdoc/core/files/lib/core/facets/kernel/here_rb.html +0 -92
  252. data/doc/rdoc/core/files/lib/core/facets/kernel/in_rb.html +0 -92
  253. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_assign_rb.html +0 -92
  254. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_class_rb.html +0 -92
  255. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_exec_rb.html +0 -92
  256. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_rb.html +0 -96
  257. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_send_rb.html +0 -92
  258. data/doc/rdoc/core/files/lib/core/facets/kernel/instance_variables_rb.html +0 -92
  259. data/doc/rdoc/core/files/lib/core/facets/kernel/maybe_rb.html +0 -92
  260. data/doc/rdoc/core/files/lib/core/facets/kernel/not_nil_rb.html +0 -92
  261. data/doc/rdoc/core/files/lib/core/facets/kernel/object_class_rb.html +0 -92
  262. data/doc/rdoc/core/files/lib/core/facets/kernel/object_hexid_rb.html +0 -92
  263. data/doc/rdoc/core/files/lib/core/facets/kernel/object_send_rb.html +0 -92
  264. data/doc/rdoc/core/files/lib/core/facets/kernel/p_rb.html +0 -92
  265. data/doc/rdoc/core/files/lib/core/facets/kernel/populate_rb.html +0 -92
  266. data/doc/rdoc/core/files/lib/core/facets/kernel/qua_class_rb.html +0 -92
  267. data/doc/rdoc/core/files/lib/core/facets/kernel/require_all_rb.html +0 -92
  268. data/doc/rdoc/core/files/lib/core/facets/kernel/require_local_rb.html +0 -92
  269. data/doc/rdoc/core/files/lib/core/facets/kernel/resc_rb.html +0 -92
  270. data/doc/rdoc/core/files/lib/core/facets/kernel/respond_rb.html +0 -92
  271. data/doc/rdoc/core/files/lib/core/facets/kernel/returning_rb.html +0 -92
  272. data/doc/rdoc/core/files/lib/core/facets/kernel/silence_rb.html +0 -92
  273. data/doc/rdoc/core/files/lib/core/facets/kernel/singleton_class_rb.html +0 -92
  274. data/doc/rdoc/core/files/lib/core/facets/kernel/tap_rb.html +0 -92
  275. data/doc/rdoc/core/files/lib/core/facets/kernel/try_rb.html +0 -92
  276. data/doc/rdoc/core/files/lib/core/facets/kernel/val_rb.html +0 -92
  277. data/doc/rdoc/core/files/lib/core/facets/kernel/with_rb.html +0 -92
  278. data/doc/rdoc/core/files/lib/core/facets/kernel_rb.html +0 -92
  279. data/doc/rdoc/core/files/lib/core/facets/lazy_rb.html +0 -120
  280. data/doc/rdoc/core/files/lib/core/facets/matchdata/match_rb.html +0 -92
  281. data/doc/rdoc/core/files/lib/core/facets/matchdata/matchset_rb.html +0 -92
  282. data/doc/rdoc/core/files/lib/core/facets/matchdata_rb.html +0 -92
  283. data/doc/rdoc/core/files/lib/core/facets/metaid_rb.html +0 -92
  284. data/doc/rdoc/core/files/lib/core/facets/module/abstract_rb.html +0 -92
  285. data/doc/rdoc/core/files/lib/core/facets/module/alias_accessor_rb.html +0 -92
  286. data/doc/rdoc/core/files/lib/core/facets/module/alias_method_chain_rb.html +0 -92
  287. data/doc/rdoc/core/files/lib/core/facets/module/alias_module_function_rb.html +0 -92
  288. data/doc/rdoc/core/files/lib/core/facets/module/ancestor_rb.html +0 -92
  289. data/doc/rdoc/core/files/lib/core/facets/module/basename_rb.html +0 -92
  290. data/doc/rdoc/core/files/lib/core/facets/module/can_rb.html +0 -92
  291. data/doc/rdoc/core/files/lib/core/facets/module/class_rb.html +0 -92
  292. data/doc/rdoc/core/files/lib/core/facets/module/conflict_rb.html +0 -92
  293. data/doc/rdoc/core/files/lib/core/facets/module/extend_rb.html +0 -92
  294. data/doc/rdoc/core/files/lib/core/facets/module/include_function_module_rb.html +0 -92
  295. data/doc/rdoc/core/files/lib/core/facets/module/instance_methods_rb.html +0 -92
  296. data/doc/rdoc/core/files/lib/core/facets/module/integrate_rb.html +0 -96
  297. data/doc/rdoc/core/files/lib/core/facets/module/is_rb.html +0 -92
  298. data/doc/rdoc/core/files/lib/core/facets/module/methodize_rb.html +0 -96
  299. data/doc/rdoc/core/files/lib/core/facets/module/modspace_rb.html +0 -92
  300. data/doc/rdoc/core/files/lib/core/facets/module/module_load_rb.html +0 -92
  301. data/doc/rdoc/core/files/lib/core/facets/module/nesting_rb.html +0 -92
  302. data/doc/rdoc/core/files/lib/core/facets/module/op_rb.html +0 -92
  303. data/doc/rdoc/core/files/lib/core/facets/module/pathize_rb.html +0 -96
  304. data/doc/rdoc/core/files/lib/core/facets/module/prepend_rb.html +0 -92
  305. data/doc/rdoc/core/files/lib/core/facets/module/redefine_method_rb.html +0 -92
  306. data/doc/rdoc/core/files/lib/core/facets/module/redirect_method_rb.html +0 -92
  307. data/doc/rdoc/core/files/lib/core/facets/module/rename_method_rb.html +0 -92
  308. data/doc/rdoc/core/files/lib/core/facets/module/revise_rb.html +0 -99
  309. data/doc/rdoc/core/files/lib/core/facets/module/spacename_rb.html +0 -92
  310. data/doc/rdoc/core/files/lib/core/facets/module/wrap_method_rb.html +0 -92
  311. data/doc/rdoc/core/files/lib/core/facets/module_rb.html +0 -92
  312. data/doc/rdoc/core/files/lib/core/facets/nilclass/ergo_rb.html +0 -96
  313. data/doc/rdoc/core/files/lib/core/facets/nilclass/to_f_rb.html +0 -92
  314. data/doc/rdoc/core/files/lib/core/facets/nilclass_rb.html +0 -92
  315. data/doc/rdoc/core/files/lib/core/facets/numeric/approx_rb.html +0 -92
  316. data/doc/rdoc/core/files/lib/core/facets/numeric/distance_rb.html +0 -92
  317. data/doc/rdoc/core/files/lib/core/facets/numeric/round_rb.html +0 -92
  318. data/doc/rdoc/core/files/lib/core/facets/numeric_rb.html +0 -92
  319. data/doc/rdoc/core/files/lib/core/facets/objectspace/classes_rb.html +0 -92
  320. data/doc/rdoc/core/files/lib/core/facets/objectspace_rb.html +0 -92
  321. data/doc/rdoc/core/files/lib/core/facets/proc/bind_rb.html +0 -92
  322. data/doc/rdoc/core/files/lib/core/facets/proc/compose_rb.html +0 -92
  323. data/doc/rdoc/core/files/lib/core/facets/proc/curry_rb.html +0 -92
  324. data/doc/rdoc/core/files/lib/core/facets/proc/to_method_rb.html +0 -96
  325. data/doc/rdoc/core/files/lib/core/facets/proc/update_rb.html +0 -92
  326. data/doc/rdoc/core/files/lib/core/facets/proc_rb.html +0 -92
  327. data/doc/rdoc/core/files/lib/core/facets/range/combine_rb.html +0 -92
  328. data/doc/rdoc/core/files/lib/core/facets/range/overlap_rb.html +0 -92
  329. data/doc/rdoc/core/files/lib/core/facets/range/to_r_rb.html +0 -92
  330. data/doc/rdoc/core/files/lib/core/facets/range/umbrella_rb.html +0 -96
  331. data/doc/rdoc/core/files/lib/core/facets/range/within_rb.html +0 -92
  332. data/doc/rdoc/core/files/lib/core/facets/range_rb.html +0 -92
  333. data/doc/rdoc/core/files/lib/core/facets/regexp/arity_rb.html +0 -92
  334. data/doc/rdoc/core/files/lib/core/facets/regexp/to_re_rb.html +0 -92
  335. data/doc/rdoc/core/files/lib/core/facets/regexp_rb.html +0 -92
  336. data/doc/rdoc/core/files/lib/core/facets/stackable_rb.html +0 -120
  337. data/doc/rdoc/core/files/lib/core/facets/string/align_rb.html +0 -92
  338. data/doc/rdoc/core/files/lib/core/facets/string/bracket_rb.html +0 -92
  339. data/doc/rdoc/core/files/lib/core/facets/string/bytes_rb.html +0 -92
  340. data/doc/rdoc/core/files/lib/core/facets/string/camelcase_rb.html +0 -92
  341. data/doc/rdoc/core/files/lib/core/facets/string/capitalized_rb.html +0 -92
  342. data/doc/rdoc/core/files/lib/core/facets/string/chars_rb.html +0 -92
  343. data/doc/rdoc/core/files/lib/core/facets/string/chomp_rb.html +0 -92
  344. data/doc/rdoc/core/files/lib/core/facets/string/cleave_rb.html +0 -92
  345. data/doc/rdoc/core/files/lib/core/facets/string/compress_lines_rb.html +0 -92
  346. data/doc/rdoc/core/files/lib/core/facets/string/contains_rb.html +0 -92
  347. data/doc/rdoc/core/files/lib/core/facets/string/divide_rb.html +0 -92
  348. data/doc/rdoc/core/files/lib/core/facets/string/each_char_rb.html +0 -96
  349. data/doc/rdoc/core/files/lib/core/facets/string/each_word_rb.html +0 -96
  350. data/doc/rdoc/core/files/lib/core/facets/string/end_with_rb.html +0 -96
  351. data/doc/rdoc/core/files/lib/core/facets/string/expand_tab_rb.html +0 -92
  352. data/doc/rdoc/core/files/lib/core/facets/string/file_rb.html +0 -96
  353. data/doc/rdoc/core/files/lib/core/facets/string/fold_rb.html +0 -92
  354. data/doc/rdoc/core/files/lib/core/facets/string/indent_rb.html +0 -92
  355. data/doc/rdoc/core/files/lib/core/facets/string/interpolate_rb.html +0 -92
  356. data/doc/rdoc/core/files/lib/core/facets/string/line_wrap_rb.html +0 -92
  357. data/doc/rdoc/core/files/lib/core/facets/string/lines_rb.html +0 -92
  358. data/doc/rdoc/core/files/lib/core/facets/string/margin_rb.html +0 -92
  359. data/doc/rdoc/core/files/lib/core/facets/string/methodize_rb.html +0 -92
  360. data/doc/rdoc/core/files/lib/core/facets/string/modulize_rb.html +0 -92
  361. data/doc/rdoc/core/files/lib/core/facets/string/mscan_rb.html +0 -92
  362. data/doc/rdoc/core/files/lib/core/facets/string/natcmp_rb.html +0 -92
  363. data/doc/rdoc/core/files/lib/core/facets/string/nchar_rb.html +0 -92
  364. data/doc/rdoc/core/files/lib/core/facets/string/op_sub_rb.html +0 -92
  365. data/doc/rdoc/core/files/lib/core/facets/string/outdent_rb.html +0 -96
  366. data/doc/rdoc/core/files/lib/core/facets/string/pathize_rb.html +0 -92
  367. data/doc/rdoc/core/files/lib/core/facets/string/range_rb.html +0 -92
  368. data/doc/rdoc/core/files/lib/core/facets/string/rewrite_rb.html +0 -92
  369. data/doc/rdoc/core/files/lib/core/facets/string/shatter_rb.html +0 -92
  370. data/doc/rdoc/core/files/lib/core/facets/string/snakecase_rb.html +0 -92
  371. data/doc/rdoc/core/files/lib/core/facets/string/splice_rb.html +0 -92
  372. data/doc/rdoc/core/files/lib/core/facets/string/start_with_rb.html +0 -92
  373. data/doc/rdoc/core/files/lib/core/facets/string/subtract_rb.html +0 -100
  374. data/doc/rdoc/core/files/lib/core/facets/string/tab_rb.html +0 -99
  375. data/doc/rdoc/core/files/lib/core/facets/string/tabto_rb.html +0 -96
  376. data/doc/rdoc/core/files/lib/core/facets/string/titlecase_rb.html +0 -92
  377. data/doc/rdoc/core/files/lib/core/facets/string/to_re_rb.html +0 -92
  378. data/doc/rdoc/core/files/lib/core/facets/string/variablize_rb.html +0 -92
  379. data/doc/rdoc/core/files/lib/core/facets/string/word_wrap_rb.html +0 -92
  380. data/doc/rdoc/core/files/lib/core/facets/string/words_rb.html +0 -92
  381. data/doc/rdoc/core/files/lib/core/facets/string/xor_rb.html +0 -92
  382. data/doc/rdoc/core/files/lib/core/facets/string_rb.html +0 -92
  383. data/doc/rdoc/core/files/lib/core/facets/struct/attributes_rb.html +0 -92
  384. data/doc/rdoc/core/files/lib/core/facets/struct_rb.html +0 -92
  385. data/doc/rdoc/core/files/lib/core/facets/symbol/chomp_rb.html +0 -92
  386. data/doc/rdoc/core/files/lib/core/facets/symbol/generate_rb.html +0 -92
  387. data/doc/rdoc/core/files/lib/core/facets/symbol/not_rb.html +0 -92
  388. data/doc/rdoc/core/files/lib/core/facets/symbol/plain_rb.html +0 -92
  389. data/doc/rdoc/core/files/lib/core/facets/symbol/query_rb.html +0 -96
  390. data/doc/rdoc/core/files/lib/core/facets/symbol/re_s_rb.html +0 -96
  391. data/doc/rdoc/core/files/lib/core/facets/symbol/setter_rb.html +0 -96
  392. data/doc/rdoc/core/files/lib/core/facets/symbol/succ_rb.html +0 -92
  393. data/doc/rdoc/core/files/lib/core/facets/symbol/to_proc_rb.html +0 -92
  394. data/doc/rdoc/core/files/lib/core/facets/symbol/variablize_rb.html +0 -92
  395. data/doc/rdoc/core/files/lib/core/facets/symbol_rb.html +0 -92
  396. data/doc/rdoc/core/files/lib/core/facets/time/advance_rb.html +0 -92
  397. data/doc/rdoc/core/files/lib/core/facets/time/ago_rb.html +0 -96
  398. data/doc/rdoc/core/files/lib/core/facets/time/change_rb.html +0 -92
  399. data/doc/rdoc/core/files/lib/core/facets/time/elapse_rb.html +0 -92
  400. data/doc/rdoc/core/files/lib/core/facets/time/hence_rb.html +0 -96
  401. data/doc/rdoc/core/files/lib/core/facets/time/round_rb.html +0 -96
  402. data/doc/rdoc/core/files/lib/core/facets/time/set_rb.html +0 -92
  403. data/doc/rdoc/core/files/lib/core/facets/time/stamp_rb.html +0 -92
  404. data/doc/rdoc/core/files/lib/core/facets/time/to_time_rb.html +0 -92
  405. data/doc/rdoc/core/files/lib/core/facets/time/trunc_rb.html +0 -92
  406. data/doc/rdoc/core/files/lib/core/facets/time_rb.html +0 -92
  407. data/doc/rdoc/core/files/lib/core/facets/to_hash_rb.html +0 -97
  408. data/doc/rdoc/core/files/lib/core/facets/unboundmethod/arguments_rb.html +0 -92
  409. data/doc/rdoc/core/files/lib/core/facets/unboundmethod/name_rb.html +0 -92
  410. data/doc/rdoc/core/files/lib/core/facets/unboundmethod_rb.html +0 -92
  411. data/doc/rdoc/core/fr_class_index.html +0 -85
  412. data/doc/rdoc/core/fr_file_index.html +0 -381
  413. data/doc/rdoc/core/fr_method_index.html +0 -520
  414. data/doc/rdoc/core/index.html +0 -26
  415. data/doc/rdoc/core/rdoc-style.css +0 -177
  416. data/doc/rdoc/more/classes/ANSICode.html +0 -493
  417. data/doc/rdoc/more/classes/Advisable.html +0 -269
  418. data/doc/rdoc/more/classes/Advisable/Method.html +0 -223
  419. data/doc/rdoc/more/classes/Archive.html +0 -89
  420. data/doc/rdoc/more/classes/Archive/Tar.html +0 -89
  421. data/doc/rdoc/more/classes/Archive/Tar/Minitar.html +0 -469
  422. data/doc/rdoc/more/classes/Archive/Tar/Minitar/Input.html +0 -355
  423. data/doc/rdoc/more/classes/Archive/Tar/Minitar/Output.html +0 -216
  424. data/doc/rdoc/more/classes/Archive/Tar/Minitar/Reader.html +0 -283
  425. data/doc/rdoc/more/classes/Archive/Tar/Minitar/Writer.html +0 -378
  426. data/doc/rdoc/more/classes/Argvector.html +0 -487
  427. data/doc/rdoc/more/classes/Association.html +0 -319
  428. data/doc/rdoc/more/classes/Association/Kernel.html +0 -131
  429. data/doc/rdoc/more/classes/Autoarray.html +0 -166
  430. data/doc/rdoc/more/classes/BBCode.html +0 -532
  431. data/doc/rdoc/more/classes/BaseX.html +0 -194
  432. data/doc/rdoc/more/classes/BiCrypt.html +0 -541
  433. data/doc/rdoc/more/classes/BinReadable.html +0 -485
  434. data/doc/rdoc/more/classes/BinReadable/ByteOrder.html +0 -223
  435. data/doc/rdoc/more/classes/Binding.html +0 -146
  436. data/doc/rdoc/more/classes/BlankSlate.html +0 -129
  437. data/doc/rdoc/more/classes/Buildable.html +0 -152
  438. data/doc/rdoc/more/classes/BuildingBlock.html +0 -360
  439. data/doc/rdoc/more/classes/Capsule.html +0 -408
  440. data/doc/rdoc/more/classes/Capsule/MissingFile.html +0 -96
  441. data/doc/rdoc/more/classes/Cloneable.html +0 -129
  442. data/doc/rdoc/more/classes/ConsoleUtils.html +0 -238
  443. data/doc/rdoc/more/classes/Coroutine.html +0 -285
  444. data/doc/rdoc/more/classes/Crypt.html +0 -275
  445. data/doc/rdoc/more/classes/CssFilter.html +0 -471
  446. data/doc/rdoc/more/classes/CssTree.html +0 -149
  447. data/doc/rdoc/more/classes/Dictionary.html +0 -1255
  448. data/doc/rdoc/more/classes/Downloader.html +0 -512
  449. data/doc/rdoc/more/classes/Duration.html +0 -691
  450. data/doc/rdoc/more/classes/Duration/Numeric.html +0 -389
  451. data/doc/rdoc/more/classes/Duration/Time.html +0 -124
  452. data/doc/rdoc/more/classes/Enumerable.html +0 -401
  453. data/doc/rdoc/more/classes/Enumerable/Elementor.html +0 -170
  454. data/doc/rdoc/more/classes/Enumerable/Enumerator.html +0 -116
  455. data/doc/rdoc/more/classes/Enumerable/Filterable.html +0 -246
  456. data/doc/rdoc/more/classes/EnumerablePass.html +0 -214
  457. data/doc/rdoc/more/classes/Enumerator.html +0 -95
  458. data/doc/rdoc/more/classes/Enumerator/Filter.html +0 -104
  459. data/doc/rdoc/more/classes/Equatable.html +0 -188
  460. data/doc/rdoc/more/classes/Expirable.html +0 -195
  461. data/doc/rdoc/more/classes/FileList.html +0 -955
  462. data/doc/rdoc/more/classes/Fileable.html +0 -178
  463. data/doc/rdoc/more/classes/Fileable/DSL.html +0 -303
  464. data/doc/rdoc/more/classes/Hash.html +0 -171
  465. data/doc/rdoc/more/classes/Hash2Xml.html +0 -105
  466. data/doc/rdoc/more/classes/Hook.html +0 -162
  467. data/doc/rdoc/more/classes/HtmlFilter.html +0 -329
  468. data/doc/rdoc/more/classes/IORedirect.html +0 -220
  469. data/doc/rdoc/more/classes/InfinityClass.html +0 -448
  470. data/doc/rdoc/more/classes/InfinityClass/Numeric.html +0 -195
  471. data/doc/rdoc/more/classes/Ini.html +0 -447
  472. data/doc/rdoc/more/classes/Instantiable.html +0 -140
  473. data/doc/rdoc/more/classes/Instantize.html +0 -160
  474. data/doc/rdoc/more/classes/Interval.html +0 -877
  475. data/doc/rdoc/more/classes/It.html +0 -185
  476. data/doc/rdoc/more/classes/LRUCache.html +0 -321
  477. data/doc/rdoc/more/classes/LRUCache/Item.html +0 -114
  478. data/doc/rdoc/more/classes/LRUCache/Sentinel.html +0 -100
  479. data/doc/rdoc/more/classes/LinkedList.html +0 -432
  480. data/doc/rdoc/more/classes/LinkedList/Node.html +0 -149
  481. data/doc/rdoc/more/classes/Matcher.html +0 -335
  482. data/doc/rdoc/more/classes/Matcher/MatchData.html +0 -115
  483. data/doc/rdoc/more/classes/Memoizer.html +0 -240
  484. data/doc/rdoc/more/classes/MissingArgument.html +0 -97
  485. data/doc/rdoc/more/classes/Module.html +0 -1224
  486. data/doc/rdoc/more/classes/Multiton.html +0 -205
  487. data/doc/rdoc/more/classes/Multiton/Inclusive.html +0 -93
  488. data/doc/rdoc/more/classes/Multiton/MetaMethods.html +0 -221
  489. data/doc/rdoc/more/classes/NackClass.html +0 -98
  490. data/doc/rdoc/more/classes/Net.html +0 -88
  491. data/doc/rdoc/more/classes/Net/SMTP.html +0 -140
  492. data/doc/rdoc/more/classes/NullClass.html +0 -202
  493. data/doc/rdoc/more/classes/Numeric/Multipliers.html +0 -456
  494. data/doc/rdoc/more/classes/ObjectReflection.html +0 -172
  495. data/doc/rdoc/more/classes/OpEsc.html +0 -137
  496. data/doc/rdoc/more/classes/OpenCascade.html +0 -179
  497. data/doc/rdoc/more/classes/OpenCollection.html +0 -138
  498. data/doc/rdoc/more/classes/OpenHash.html +0 -157
  499. data/doc/rdoc/more/classes/OpenModule.html +0 -135
  500. data/doc/rdoc/more/classes/OpenObject.html +0 -608
  501. data/doc/rdoc/more/classes/OpenStructable.html +0 -326
  502. data/doc/rdoc/more/classes/PQueue.html +0 -607
  503. data/doc/rdoc/more/classes/Paramix.html +0 -201
  504. data/doc/rdoc/more/classes/Paramix/Delegator.html +0 -215
  505. data/doc/rdoc/more/classes/PathList.html +0 -159
  506. data/doc/rdoc/more/classes/PathList/Finder.html +0 -135
  507. data/doc/rdoc/more/classes/Platform.html +0 -444
  508. data/doc/rdoc/more/classes/Pool.html +0 -204
  509. data/doc/rdoc/more/classes/Proc.html +0 -180
  510. data/doc/rdoc/more/classes/ProgressBar.html +0 -356
  511. data/doc/rdoc/more/classes/Prototype.html +0 -243
  512. data/doc/rdoc/more/classes/RWDelegator.html +0 -194
  513. data/doc/rdoc/more/classes/Random.html +0 -145
  514. data/doc/rdoc/more/classes/Random/Array.html +0 -339
  515. data/doc/rdoc/more/classes/Random/Hash.html +0 -378
  516. data/doc/rdoc/more/classes/Random/Object.html +0 -119
  517. data/doc/rdoc/more/classes/Random/String.html +0 -299
  518. data/doc/rdoc/more/classes/Random/String/Self.html +0 -153
  519. data/doc/rdoc/more/classes/Recorder.html +0 -203
  520. data/doc/rdoc/more/classes/Reference.html +0 -196
  521. data/doc/rdoc/more/classes/Registerable.html +0 -157
  522. data/doc/rdoc/more/classes/Semaphore.html +0 -260
  523. data/doc/rdoc/more/classes/Settings.html +0 -288
  524. data/doc/rdoc/more/classes/Settings/Setting.html +0 -223
  525. data/doc/rdoc/more/classes/Settings/SettingCollection.html +0 -144
  526. data/doc/rdoc/more/classes/SimpleStringIO.html +0 -135
  527. data/doc/rdoc/more/classes/Snapshot.html +0 -194
  528. data/doc/rdoc/more/classes/Snapshot/ValueHolder.html +0 -163
  529. data/doc/rdoc/more/classes/SparseArray.html +0 -1397
  530. data/doc/rdoc/more/classes/Stash.html +0 -232
  531. data/doc/rdoc/more/classes/String/Mask.html +0 -555
  532. data/doc/rdoc/more/classes/String/Words.html +0 -328
  533. data/doc/rdoc/more/classes/Struct.html +0 -130
  534. data/doc/rdoc/more/classes/SyncArray.html +0 -127
  535. data/doc/rdoc/more/classes/SyncHash.html +0 -158
  536. data/doc/rdoc/more/classes/SyncHash/Delegator.html +0 -211
  537. data/doc/rdoc/more/classes/SyncHash/Inheritor.html +0 -211
  538. data/doc/rdoc/more/classes/System.html +0 -1117
  539. data/doc/rdoc/more/classes/Timer.html +0 -464
  540. data/doc/rdoc/more/classes/Timer/Dummy.html +0 -139
  541. data/doc/rdoc/more/classes/TracePoint.html +0 -455
  542. data/doc/rdoc/more/classes/Tuple.html +0 -900
  543. data/doc/rdoc/more/classes/TypeCast.html +0 -158
  544. data/doc/rdoc/more/classes/TypeCast/Class.html +0 -127
  545. data/doc/rdoc/more/classes/TypeCast/Object.html +0 -117
  546. data/doc/rdoc/more/classes/TypeCastException.html +0 -96
  547. data/doc/rdoc/more/classes/Uninheritable.html +0 -120
  548. data/doc/rdoc/more/classes/VersionNumber.html +0 -408
  549. data/doc/rdoc/more/classes/X.html +0 -117
  550. data/doc/rdoc/more/classes/XOXO.html +0 -189
  551. data/doc/rdoc/more/classes/ZipUtils.html +0 -568
  552. data/doc/rdoc/more/classes/ZipUtils/DryRun.html +0 -391
  553. data/doc/rdoc/more/classes/ZipUtils/NoWrite.html +0 -391
  554. data/doc/rdoc/more/classes/ZipUtils/Verbose.html +0 -361
  555. data/doc/rdoc/more/created.rid +0 -1
  556. data/doc/rdoc/more/files/README.html +0 -286
  557. data/doc/rdoc/more/files/doc/README_more.html +0 -141
  558. data/doc/rdoc/more/files/lib/more/facets/1stclassmethod_rb.html +0 -181
  559. data/doc/rdoc/more/files/lib/more/facets/advisable_rb.html +0 -124
  560. data/doc/rdoc/more/files/lib/more/facets/ansicode_rb.html +0 -200
  561. data/doc/rdoc/more/files/lib/more/facets/argvector_rb.html +0 -142
  562. data/doc/rdoc/more/files/lib/more/facets/association_rb.html +0 -158
  563. data/doc/rdoc/more/files/lib/more/facets/attr_rb.html +0 -92
  564. data/doc/rdoc/more/files/lib/more/facets/autoarray_rb.html +0 -125
  565. data/doc/rdoc/more/files/lib/more/facets/autoreload_rb.html +0 -134
  566. data/doc/rdoc/more/files/lib/more/facets/basex_rb.html +0 -92
  567. data/doc/rdoc/more/files/lib/more/facets/bbcode_rb.html +0 -138
  568. data/doc/rdoc/more/files/lib/more/facets/bicrypt_rb.html +0 -124
  569. data/doc/rdoc/more/files/lib/more/facets/binding/opvars_rb.html +0 -96
  570. data/doc/rdoc/more/files/lib/more/facets/binreadable_rb.html +0 -141
  571. data/doc/rdoc/more/files/lib/more/facets/blankslate_rb.html +0 -92
  572. data/doc/rdoc/more/files/lib/more/facets/buildable_rb.html +0 -230
  573. data/doc/rdoc/more/files/lib/more/facets/capsule_rb.html +0 -143
  574. data/doc/rdoc/more/files/lib/more/facets/class_extension_rb.html +0 -155
  575. data/doc/rdoc/more/files/lib/more/facets/classmethods_rb.html +0 -213
  576. data/doc/rdoc/more/files/lib/more/facets/cloneable_rb.html +0 -134
  577. data/doc/rdoc/more/files/lib/more/facets/consoleutils_rb.html +0 -92
  578. data/doc/rdoc/more/files/lib/more/facets/coroutine_rb.html +0 -163
  579. data/doc/rdoc/more/files/lib/more/facets/crypt_rb.html +0 -141
  580. data/doc/rdoc/more/files/lib/more/facets/cssfilter_rb.html +0 -121
  581. data/doc/rdoc/more/files/lib/more/facets/daemonize_rb.html +0 -118
  582. data/doc/rdoc/more/files/lib/more/facets/dependency_rb.html +0 -158
  583. data/doc/rdoc/more/files/lib/more/facets/dictionary_rb.html +0 -201
  584. data/doc/rdoc/more/files/lib/more/facets/downloader_rb.html +0 -137
  585. data/doc/rdoc/more/files/lib/more/facets/duplicable_rb.html +0 -100
  586. data/doc/rdoc/more/files/lib/more/facets/duration_rb.html +0 -92
  587. data/doc/rdoc/more/files/lib/more/facets/elementor_rb.html +0 -149
  588. data/doc/rdoc/more/files/lib/more/facets/elementwise_rb.html +0 -96
  589. data/doc/rdoc/more/files/lib/more/facets/enumerablepass_rb.html +0 -154
  590. data/doc/rdoc/more/files/lib/more/facets/equatable_rb.html +0 -146
  591. data/doc/rdoc/more/files/lib/more/facets/expirable_rb.html +0 -116
  592. data/doc/rdoc/more/files/lib/more/facets/fileable_rb.html +0 -138
  593. data/doc/rdoc/more/files/lib/more/facets/filelist_rb.html +0 -165
  594. data/doc/rdoc/more/files/lib/more/facets/filter_rb.html +0 -97
  595. data/doc/rdoc/more/files/lib/more/facets/heap_rb.html +0 -132
  596. data/doc/rdoc/more/files/lib/more/facets/hook_rb.html +0 -96
  597. data/doc/rdoc/more/files/lib/more/facets/htmlfilter_rb.html +0 -153
  598. data/doc/rdoc/more/files/lib/more/facets/infinity_rb.html +0 -153
  599. data/doc/rdoc/more/files/lib/more/facets/inheritor_rb.html +0 -124
  600. data/doc/rdoc/more/files/lib/more/facets/ini_rb.html +0 -105
  601. data/doc/rdoc/more/files/lib/more/facets/instantiable_rb.html +0 -119
  602. data/doc/rdoc/more/files/lib/more/facets/instantise_rb.html +0 -96
  603. data/doc/rdoc/more/files/lib/more/facets/instantize_rb.html +0 -160
  604. data/doc/rdoc/more/files/lib/more/facets/interval_rb.html +0 -163
  605. data/doc/rdoc/more/files/lib/more/facets/ioredirect_rb.html +0 -133
  606. data/doc/rdoc/more/files/lib/more/facets/iteration_rb.html +0 -94
  607. data/doc/rdoc/more/files/lib/more/facets/kernel/meta_rb.html +0 -96
  608. data/doc/rdoc/more/files/lib/more/facets/linkedlist_rb.html +0 -159
  609. data/doc/rdoc/more/files/lib/more/facets/lrucache_rb.html +0 -129
  610. data/doc/rdoc/more/files/lib/more/facets/main_rb.html +0 -126
  611. data/doc/rdoc/more/files/lib/more/facets/matcher_rb.html +0 -97
  612. data/doc/rdoc/more/files/lib/more/facets/memoize_rb.html +0 -164
  613. data/doc/rdoc/more/files/lib/more/facets/memoizer_rb.html +0 -152
  614. data/doc/rdoc/more/files/lib/more/facets/methodspace_rb.html +0 -138
  615. data/doc/rdoc/more/files/lib/more/facets/minitar_rb.html +0 -203
  616. data/doc/rdoc/more/files/lib/more/facets/multipliers_rb.html +0 -132
  617. data/doc/rdoc/more/files/lib/more/facets/multiton_rb.html +0 -187
  618. data/doc/rdoc/more/files/lib/more/facets/nackclass_rb.html +0 -120
  619. data/doc/rdoc/more/files/lib/more/facets/net/smtp_tls_rb.html +0 -143
  620. data/doc/rdoc/more/files/lib/more/facets/nilstatus_rb.html +0 -92
  621. data/doc/rdoc/more/files/lib/more/facets/nullclass_rb.html +0 -122
  622. data/doc/rdoc/more/files/lib/more/facets/opencascade_rb.html +0 -114
  623. data/doc/rdoc/more/files/lib/more/facets/opencollection_rb.html +0 -123
  624. data/doc/rdoc/more/files/lib/more/facets/openhash_rb.html +0 -107
  625. data/doc/rdoc/more/files/lib/more/facets/openmodule_rb.html +0 -92
  626. data/doc/rdoc/more/files/lib/more/facets/openobject_rb.html +0 -169
  627. data/doc/rdoc/more/files/lib/more/facets/opesc_rb.html +0 -94
  628. data/doc/rdoc/more/files/lib/more/facets/orderedhash_rb.html +0 -143
  629. data/doc/rdoc/more/files/lib/more/facets/ostructable_rb.html +0 -92
  630. data/doc/rdoc/more/files/lib/more/facets/overload_rb.html +0 -119
  631. data/doc/rdoc/more/files/lib/more/facets/paramix_rb.html +0 -135
  632. data/doc/rdoc/more/files/lib/more/facets/partial_rb.html +0 -124
  633. data/doc/rdoc/more/files/lib/more/facets/pathlist_rb.html +0 -133
  634. data/doc/rdoc/more/files/lib/more/facets/platform_rb.html +0 -103
  635. data/doc/rdoc/more/files/lib/more/facets/pool_rb.html +0 -131
  636. data/doc/rdoc/more/files/lib/more/facets/pqueue_rb.html +0 -128
  637. data/doc/rdoc/more/files/lib/more/facets/progressbar_rb.html +0 -126
  638. data/doc/rdoc/more/files/lib/more/facets/prototype_rb.html +0 -102
  639. data/doc/rdoc/more/files/lib/more/facets/random_rb.html +0 -149
  640. data/doc/rdoc/more/files/lib/more/facets/rbsystem_rb.html +0 -144
  641. data/doc/rdoc/more/files/lib/more/facets/recorder_rb.html +0 -154
  642. data/doc/rdoc/more/files/lib/more/facets/reference_rb.html +0 -130
  643. data/doc/rdoc/more/files/lib/more/facets/reflection_rb.html +0 -134
  644. data/doc/rdoc/more/files/lib/more/facets/registerable_rb.html +0 -98
  645. data/doc/rdoc/more/files/lib/more/facets/rwdelegator_rb.html +0 -122
  646. data/doc/rdoc/more/files/lib/more/facets/semaphore_rb.html +0 -120
  647. data/doc/rdoc/more/files/lib/more/facets/settings_rb.html +0 -141
  648. data/doc/rdoc/more/files/lib/more/facets/snapshot_rb.html +0 -177
  649. data/doc/rdoc/more/files/lib/more/facets/sparse_array_rb.html +0 -92
  650. data/doc/rdoc/more/files/lib/more/facets/stash_rb.html +0 -166
  651. data/doc/rdoc/more/files/lib/more/facets/string/mask_rb.html +0 -96
  652. data/doc/rdoc/more/files/lib/more/facets/string/words_rb.html +0 -96
  653. data/doc/rdoc/more/files/lib/more/facets/succ_rb.html +0 -92
  654. data/doc/rdoc/more/files/lib/more/facets/syncarray_rb.html +0 -125
  655. data/doc/rdoc/more/files/lib/more/facets/synchash_rb.html +0 -138
  656. data/doc/rdoc/more/files/lib/more/facets/thread_rb.html +0 -132
  657. data/doc/rdoc/more/files/lib/more/facets/timer_rb.html +0 -174
  658. data/doc/rdoc/more/files/lib/more/facets/tracepoint_rb.html +0 -172
  659. data/doc/rdoc/more/files/lib/more/facets/tuple_rb.html +0 -160
  660. data/doc/rdoc/more/files/lib/more/facets/typecast_rb.html +0 -215
  661. data/doc/rdoc/more/files/lib/more/facets/uninheritable_rb.html +0 -129
  662. data/doc/rdoc/more/files/lib/more/facets/version_rb.html +0 -132
  663. data/doc/rdoc/more/files/lib/more/facets/xmlhash_rb.html +0 -97
  664. data/doc/rdoc/more/files/lib/more/facets/xoxo_rb.html +0 -136
  665. data/doc/rdoc/more/files/lib/more/facets/ziputils_rb.html +0 -105
  666. data/doc/rdoc/more/fr_class_index.html +0 -185
  667. data/doc/rdoc/more/fr_file_index.html +0 -156
  668. data/doc/rdoc/more/fr_method_index.html +0 -1132
  669. data/doc/rdoc/more/index.html +0 -26
  670. data/doc/rdoc/more/rdoc-style.css +0 -177
  671. data/lib/core/facets/kernel/__here__.rb +0 -8
  672. data/lib/more/facets/buildable.rb +0 -344
  673. data/lib/more/facets/cssfilter.rb +0 -254
  674. data/lib/more/facets/htmlfilter.rb +0 -595
  675. data/lib/more/facets/kernel/meta.rb +0 -32
  676. data/lib/more/facets/prototype.rb +0 -88
  677. data/lib/more/facets/rwdelegator.rb +0 -74
@@ -1,254 +0,0 @@
1
- # = CSS Filter
2
- #
3
- # The CssFilter class will clean up a cascading style sheet.
4
- # It can be used to remove whitespace and most importantly
5
- # remove urls.
6
- #
7
- # == Authors
8
- #
9
- # * Trans
10
- #
11
- # == Todo
12
- #
13
- # * Allow urls to be specified per attribute type.
14
- #
15
- # == Copying
16
- #
17
- # Copyright (c) 2007 7rans
18
-
19
- require 'facets/uri'
20
-
21
- # = CSS Filter
22
- #
23
- # The CssFilter class will clean up a cascading style sheet.
24
- # It can be used to remove whitespace and most importantly
25
- # remove urls.
26
- #
27
- class CssFilter
28
-
29
- # should we remove comments? (true, false)
30
- attr_accessor :strip_comments
31
-
32
- # should we remove urls? (true, false)
33
- attr_accessor :strip_urls
34
-
35
- # url schemes which will be allowed (http, ftp, mailto)
36
- attr_accessor :allowed_scheme
37
-
38
- # alias for allowed_scheme
39
- alias_method :allowed_protocols, :allowed_scheme
40
- alias_method :allowed_protocols=, :allowed_scheme=
41
-
42
- # url hosts which will be allowed.
43
- attr_accessor :allowed_hosts
44
-
45
- # urls which will be allowed. (NOT YET USED)
46
- attr_accessor :allowed_urls
47
-
48
- # substitue urls (NOT YET USED)
49
- attr_accessor :substitute_urls
50
-
51
- # remove blank lines.
52
- attr_accessor :strip_whitespace
53
-
54
- # remove blank lines.
55
- attr_accessor :strip_blanklines
56
-
57
- # Complete parse and rewrite of CSS document.
58
- # This does a complete "cleaning" but note that
59
- # is not yet a perfect parser.
60
- attr_accessor :rewrite
61
-
62
- # CssFilter option defaults.
63
-
64
- DEFAULT = {
65
- 'strip_comments' => true,
66
- 'strip_urls' => true,
67
- 'allowed_urls' => [],
68
- 'allowed_hosts' => [],
69
- 'allowed_scheme' => [],
70
- 'strip_whitespace' => false,
71
- 'strip_blanklines' => true,
72
- 'rewrite' => false,
73
- 'substitute_urls' => {}
74
- }
75
-
76
- #
77
-
78
- def initialize(options=nil)
79
- if options
80
- h = DEFAULT.dup
81
- options.each do |k,v|
82
- h[k.to_s] = v
83
- end
84
- options = h
85
- else
86
- options = DEFAULT.dup
87
- end
88
-
89
- options.each{ |k,v| send("#{k}=",v) }
90
- end
91
-
92
- #
93
-
94
- def accept_host(host)
95
- @hosts << host
96
- end
97
-
98
- #
99
-
100
- def filter(css)
101
- css = remove_comments(css) if strip_comments
102
- css = remove_urls(css) if strip_urls
103
-
104
- css = remove_nullvalues(css)
105
-
106
- css = remove_whitespace(css) if strip_whitespace
107
- css = remove_blanklines(css) if strip_blanklines
108
-
109
- css = parse(css).to_css if rewrite
110
- css
111
- end
112
-
113
- #
114
-
115
- def remove_comments(data)
116
- data.gsub(/\/\*(.8?)\*\//,'')
117
- end
118
-
119
- # TODO: allowed_urls
120
-
121
- def remove_urls(data)
122
- urls = data.scan(/url\((.*?)\)/).flatten
123
- uris = urls.collect{ |u| URI.extract(u) }.flatten
124
- uris.each do |u|
125
- uri = URI.parse(u)
126
- unless allowed_hosts.include?(uri.host) or
127
- allowed_scheme.include?(uri.scheme)
128
- data.sub!(u.to_s, '')
129
- end
130
- end
131
- data.gsub(/url\(\s*\)/, '')
132
- end
133
-
134
- #
135
-
136
- def remove_whitespace(data)
137
- data = data.gsub(/^\s*/,'')
138
- data = data.gsub(/\s*$/,'')
139
- end
140
-
141
- #
142
-
143
- def remove_blanklines(data)
144
- data = data.gsub(/^\s*\n/,'')
145
- end
146
-
147
- #
148
-
149
- def remove_nullvalues(data);
150
- data = data.gsub(/\w+[:](\s+)[;]/,'')
151
- end
152
-
153
- # Breaks a css document up into a hash. This can be used
154
- # completely rewritting the css.
155
- #
156
- # TODO: Not complete, does not work with "@xxx foo;" for example.
157
-
158
- def parse(css)
159
- tree = CssTree.new
160
- entries = css.scan(/^(.*?)\{(.*?)\}/m)
161
- entries.each do |ref, props|
162
- tree[ref.strip] ||= {}
163
- props = clean_properties(props)
164
- props = props.scan(/(.*?)[:](.*?)([;]|\s*\Z)/)
165
- props.each do |(key,val)|
166
- tree[ref.strip][key.strip] = clean_value(val)
167
- end
168
- end
169
- return tree
170
- end
171
-
172
- # Takes a css entry and ensures it is valid (as best it can).
173
- # It will fix trival mistakes, and raise an error when it is
174
- # beyond repair.
175
- #
176
- # TODO: So far this does absolutely nothing!
177
-
178
- def clean_properties(atts)
179
- atts
180
- end
181
-
182
- #
183
-
184
- def clean_value(val)
185
- val = val.strip
186
-
187
- if urls
188
- uris = URI.extract(val)
189
- uris.each do |u|
190
- val.sub!(u.to_s, urls)
191
- end
192
- end
193
-
194
- return val
195
- end
196
-
197
- end
198
-
199
-
200
- # CSS parse tree. This is for a "deep filtering".
201
-
202
- class CssTree < Hash
203
-
204
- def initialize(options=nil)
205
- @options = options || {}
206
- super()
207
- end
208
-
209
- # Re-output the CSS, all tidy ;)
210
-
211
- def to_css
212
- css = ""
213
- each do |selector, entries|
214
- css << "#{selector}{"
215
- entries.each do |key, value|
216
- css << "#{key}:#{value};"
217
- end
218
- css << "}\n"
219
- end
220
- return css
221
- end
222
-
223
- end
224
-
225
-
226
-
227
- if $0 == __FILE__
228
-
229
- require 'yaml'
230
-
231
- css = <<-END
232
- * {
233
- margin: 0;
234
- height: 0;
235
- }
236
-
237
- body {
238
- margin: 0;
239
- height: 0;
240
- background: url(http://xzy.org);
241
- }
242
-
243
- h1 {
244
- trythis: url(http://here.org/fun.js);
245
- font-size: 12pt;
246
- }
247
- END
248
-
249
- cssfilter = Blow::CssFilter.new(:allowed_hosts=>["here.org"])
250
- csstree = cssfilter.filter(css)
251
- #y csstree
252
- puts csstree
253
-
254
- end
@@ -1,595 +0,0 @@
1
- # = HTML Filter
2
- #
3
- # HTML Filter library can be used to sanitize and sterilize
4
- # HTML. A good idea if you let users submit HTML in comments,
5
- # for instance.
6
- #
7
- # HtmlFilter is a port of lib_filter.php, v1.15 by Cal Henderson <cal@iamcal.com>
8
- #
9
- # This code is licensed under a Creative Commons Attribution-ShareAlike 2.5 License
10
- # http://creativecommons.org/licenses/by-sa/2.5/
11
- #
12
- # Thanks to Jang Kim for adding support for single quoted attributes.
13
- #
14
- # == Reference
15
- #
16
- # * http://iamcal.com/publish/articles/php/processing_html/
17
- # * http://iamcal.com/publish/articles/php/processing_html_part_2/
18
- #
19
- # == Author(s)
20
- #
21
- # * TransNoumena
22
- # * George Moschovitis
23
- # * James Britt
24
- # * Cal Henderson
25
- # * Jang Kim
26
- #
27
- # == Authors
28
- #
29
- # * Trans
30
- #
31
- # == Copying
32
- #
33
- # Copyright (c) 2007 7rans
34
-
35
- require 'facets/multiton'
36
-
37
- # = HtmlFilter
38
- #
39
- # HTML Filter library can be used to sanitize and sterilize
40
- # HTML. A good idea if you let users submit HTML in comments,
41
- # for instance.
42
- #
43
- # lib_filter.php, v1.15 by Cal Henderson <cal@iamcal.com>
44
- #
45
- # This code is licensed under a Creative Commons Attribution-ShareAlike 2.5 License
46
- # http://creativecommons.org/licenses/by-sa/2.5/
47
- #
48
- # Thanks to Jang Kim for adding support for single quoted attributes.
49
- #
50
- # == Reference
51
- #
52
- # * http://iamcal.com/publish/articles/php/processing_html/
53
- # * http://iamcal.com/publish/articles/php/processing_html_part_2/
54
-
55
- class HtmlFilter
56
-
57
- include Multiton
58
-
59
- # tags and attributes that are allowed
60
- #
61
- # Eg.
62
- #
63
- # {
64
- # 'a' => ['href', 'target'],
65
- # 'b' => [],
66
- # 'img' => ['src', 'width', 'height', 'alt']
67
- # }
68
- attr_accessor :allowed
69
-
70
- # tags which should always be self-closing (e.g. "<img />")
71
- attr_accessor :no_close
72
-
73
- # tags which must always have seperate opening and closing
74
- # tags (e.g. "<b></b>")
75
- attr_accessor :always_close
76
-
77
- # attributes which should be checked for valid protocols
78
- # (src,href)
79
- attr_accessor :protocol_attributes
80
-
81
- # protocols which are allowed (http, ftp, mailto)
82
- attr_accessor :allowed_protocols
83
-
84
- # tags which should be removed if they contain no content
85
- # (e.g. "<b></b>" or "<b />")
86
- attr_accessor :remove_blanks
87
-
88
- # should we remove comments? (true, false)
89
- attr_accessor :strip_comments
90
-
91
- # should we try and make a b tag out of "b>" (true, false)
92
- attr_accessor :always_make_tags
93
-
94
- # entity control option (true, false)
95
- attr_accessor :allow_numbered_entities
96
-
97
- # entity control option (amp, gt, lt, quot, etc.)
98
- attr_accessor :allowed_entities
99
-
100
- # default settings
101
-
102
- DEFAULT = {
103
- 'allowed' => {
104
- 'a' => ['href', 'target'],
105
- 'b' => [],
106
- 'i' => [],
107
- 'img' => ['src', 'width', 'height', 'alt']
108
- },
109
- 'no_close' => ['img', 'br', 'hr'],
110
- 'always_close' => ['a', 'b'],
111
- 'protocol_attributes' => ['src', 'href'],
112
- 'allowed_protocols' => ['http', 'ftp', 'mailto'],
113
- 'remove_blanks' => ['a', 'b'],
114
- 'strip_comments' => true,
115
- 'always_make_tags' => true,
116
- 'allow_numbered_entities' => true,
117
- 'allowed_entities' => ['amp', 'gt', 'lt', 'quot']
118
- }
119
-
120
- # New html filter.
121
-
122
- def initialize( options=nil )
123
- if options
124
- h = DEFAULT.dup
125
- options.each do |k,v|
126
- h[k.to_s] = v
127
- end
128
- options = h
129
- else
130
- options = DEFAULT.dup
131
- end
132
-
133
- options.each{ |k,v| send("#{k}=",v) }
134
- end
135
-
136
- # Filter html string.
137
-
138
- def filter(data)
139
- @tag_counts = {}
140
-
141
- data = escape_comments(data)
142
- data = balance_html(data)
143
- data = check_tags(data)
144
- data = process_remove_blanks(data)
145
- data = validate_entities(data)
146
-
147
- return data
148
- end
149
-
150
- private
151
-
152
- #
153
- # internal tag counter
154
- #
155
-
156
- attr_reader :tag_counts
157
-
158
- #
159
- #
160
- #
161
-
162
- def escape_comments(data)
163
- data = data.gsub(/<!--(.*?)-->/s) do
164
- '<!--' + escape_special_chars(strip_single($1)) + '-->'
165
- end
166
-
167
- return data
168
- end
169
-
170
- #
171
- #
172
- #
173
-
174
- def balance_html(data)
175
- data = data.dup
176
-
177
- if always_make_tags
178
- # try and form html
179
- data.gsub!(/>>+/, '>')
180
- data.gsub!(/<<+/, '<')
181
- data.gsub!(/^>/, '')
182
- data.gsub!(/<([^>]*?)(?=<|$)/, '<\1>')
183
- data.gsub!(/(^|>)([^<]*?)(?=>)/, '\1<\2')
184
- else
185
- # escape stray brackets
186
- data.gsub!(/<([^>]*?)(?=<|$)/, '&lt;\1')
187
- data.gsub!(/(^|>)([^<]*?)(?=>)/, '\1\2&gt;<')
188
- # the last regexp causes '<>' entities to appear
189
- # (we need to do a lookahead assertion so that the last bracket
190
- # can be used in the next pass of the regexp)
191
- data.gsub!('<>', '')
192
- end
193
-
194
- return data
195
- end
196
-
197
- #
198
- #
199
- #
200
-
201
- def check_tags(data)
202
- data = data.dup
203
-
204
- data.gsub!(/<(.*?)>/s){
205
- process_tag(strip_single($1))
206
- }
207
-
208
- tag_counts.each do |tag, cnt|
209
- cnt.times{ data << "</#{tag}>" }
210
- end
211
-
212
- return data
213
- end
214
-
215
- #
216
- #
217
- #
218
-
219
- def process_tag(data)
220
-
221
- # ending tags
222
-
223
- re = /^\/([a-z0-9]+)/si
224
-
225
- if matches = re.match(data)
226
- name = matches[1].downcase
227
- if allowed.key?(name)
228
- unless no_close.include?(name)
229
- if tag_counts[name]
230
- tag_counts[name] -= 1
231
- return "</#{name}>"
232
- end
233
- end
234
- else
235
- return ''
236
- end
237
- end
238
-
239
- # starting tags
240
-
241
- re = /^([a-z0-9]+)(.*?)(\/?)$/si
242
-
243
- if matches = re.match(data)
244
- name = matches[1].downcase
245
- body = matches[2]
246
- ending = matches[3]
247
-
248
- if allowed.key?(name)
249
- params = ""
250
-
251
- matches_2 = body.scan(/([a-z0-9]+)=(["'])(.*?)\2/si) # <foo a="b" />
252
- matches_1 = body.scan(/([a-z0-9]+)(=)([^"\s']+)/si) # <foo a=b />
253
- matches_3 = body.scan(/([a-z0-9]+)=(["'])([^"']*?)\s*$/si) # <foo a="b />
254
-
255
- matches = matches_1 + matches_2 + matches_3
256
-
257
- matches.each do |match|
258
- pname = match[0].downcase
259
- if allowed[name].include?(pname)
260
- value = match[2]
261
- if protocol_attributes.include?(pname)
262
- value = process_param_protocol(value)
263
- end
264
- params += %{ #{pname}="#{value}"}
265
- end
266
- end
267
- if no_close.include?(name)
268
- ending = ' /'
269
- end
270
- if always_close.include?(name)
271
- ending = ''
272
- end
273
- if ending.empty?
274
- if tag_counts.key?(name)
275
- tag_counts[name] += 1
276
- else
277
- tag_counts[name] = 1
278
- end
279
- end
280
- unless ending.empty?
281
- ending = ' /'
282
- end
283
- return '<' + name + params + ending + '>'
284
- else
285
- return ''
286
- end
287
- end
288
-
289
- # comments
290
- if /^!--(.*)--$/si =~ data
291
- if strip_comments
292
- return ''
293
- else
294
- return '<' + data + '>'
295
- end
296
- end
297
-
298
- # garbage, ignore it
299
- return ''
300
- end
301
-
302
- #
303
- #
304
- #
305
-
306
- def process_param_protocol(data)
307
- data = decode_entities(data)
308
-
309
- re = /^([^:]+)\:/si
310
-
311
- if matches = re.match(data)
312
- unless allowed_protocols.include?(matches[1])
313
- #data = '#'.substr(data, strlen(matches[1])+1)
314
- data = '#' + data[0..matches[1].size+1]
315
- end
316
- end
317
-
318
- return data
319
- end
320
-
321
- #
322
- #
323
- #
324
-
325
- def process_remove_blanks(data)
326
- data = data.dup
327
-
328
- remove_blanks.each do |tag|
329
- data.gsub!(/<#{tag}(\s[^>]*)?><\/#{tag}>/, '')
330
- data.gsub!(/<#{tag}(\s[^>]*)?\/>/, '')
331
- end
332
-
333
- return data
334
- end
335
-
336
- #
337
- #
338
- #
339
-
340
- def fix_case(data)
341
- data_notags = strip_tags(data)
342
- data_notags = data_notags.gsub(/[^a-zA-Z]/, '')
343
-
344
- if data_notags.size < 5
345
- return data
346
- end
347
-
348
- if /[a-z]/ =~ data_notags
349
- return data
350
- end
351
-
352
- data = data.gsub(/(>|^)([^<]+?)(<|$)/s){
353
- strip_single($1) +
354
- fix_case_inner(strip_single($2)) +
355
- strip_single($3)
356
- }
357
-
358
- return data
359
- end
360
-
361
- #
362
- #
363
- #
364
-
365
- def fix_case_inner(data)
366
- data = data.dup
367
-
368
- data.downcase!
369
-
370
- data.gsub!(/(^|[^\w\s\';,\\-])(\s*)([a-z])/){
371
- strip_single("#{$1}#{$2}") + strip_single($3).upcase
372
- }
373
-
374
- return data
375
- end
376
-
377
- #
378
- #
379
- #
380
-
381
- def validate_entities(data)
382
- data = data.dup
383
-
384
- # validate entities throughout the string
385
- data.gsub!(%r!&([^&;]*)(?=(;|&|$))!){
386
- check_entity(strip_single($1), strip_single($2))
387
- }
388
-
389
- # validate quotes outside of tags
390
- data.gsub!(/(>|^)([^<]+?)(<|$)/s){
391
- m1, m2, m3 = $1, $2, $3
392
- strip_single(m1) +
393
- strip_single(m2).gsub('\"', '&quot;') +
394
- strip_single(m3)
395
- }
396
-
397
- return data
398
- end
399
-
400
- #
401
- #
402
- #
403
-
404
- def check_entity(preamble, term)
405
- if term != ';'
406
- return '&amp;' + preamble
407
- end
408
-
409
- if is_valid_entity(preamble)
410
- return '&' + preamble
411
- end
412
-
413
- return '&amp;' + preamble
414
- end
415
-
416
- #
417
- #
418
- #
419
-
420
- def is_valid_entity(entity)
421
- re = /^#([0-9]+)$/i
422
-
423
- if md = re.match(entity)
424
- if (md[1].to_i > 127)
425
- return true
426
- end
427
- return allow_numbered_entities
428
- end
429
-
430
- if allowed_entities.include?(entity)
431
- return true
432
- end
433
-
434
- return nil
435
- end
436
-
437
- # within attributes, we want to convert all hex/dec/url
438
- # escape sequences into their raw characters so that we can
439
- # check we don't get stray quotes/brackets inside strings.
440
-
441
- def decode_entities(data)
442
- data = data.dup
443
-
444
- data.gsub!(/(&)#(\d+);?/){ decode_dec_entity($1, $2) }
445
- data.gsub!(/(&)#x([0-9a-f]+);?/i){ decode_hex_entity($1, $2) }
446
- data.gsub!(/(%)([0-9a-f]{2});?/i){ decode_hex_entity($1, $2) }
447
-
448
- data = validate_entities(data)
449
-
450
- return data
451
- end
452
-
453
- #
454
- #
455
- #
456
-
457
- def decode_hex_entity(*m)
458
- return decode_num_entity(m[1], m[2].to_i.to_s(16))
459
- end
460
-
461
- #
462
- #
463
- #
464
-
465
- def decode_dec_entity(*m)
466
- return decode_num_entity(m[1], m[2])
467
- end
468
-
469
- #
470
- #
471
- #
472
-
473
- def decode_num_entity(orig_type, d)
474
- d = d.to_i
475
- d = 32 if d < 0 # space
476
-
477
- # don't mess with high chars
478
- if d > 127
479
- return '%' + d.to_s(16) if orig_type == '%'
480
- return "&#{d};" if orig_type == '&'
481
- end
482
-
483
- return escape_special_chars(d.chr)
484
- end
485
-
486
- #
487
- #
488
- #
489
-
490
- def strip_single(data)
491
- return data.gsub('\"', '"').gsub('\0', 0.chr)
492
- end
493
-
494
- # Certain characters have special significance in HTML, and
495
- # should be represented by HTML entities if they are to
496
- # preserve their meanings. This function returns a string
497
- # with some of these conversions made; the translations made
498
- # are those most useful for everyday web programming.
499
-
500
- def escape_special_chars(data)
501
- data = data.dup
502
- data.gsub! /&/n , '&amp;'
503
- data.gsub! /\"/n , '&quot;'
504
- data.gsub! />/n , '&gt;'
505
- data.gsub! /</n , '&lt;'
506
- data.gsub! /'/ , '&#039;'
507
- return data
508
- end
509
-
510
- end
511
-
512
- # Overload the standard String class for extra convienience.
513
-
514
- class String
515
- def html_filter(*opts)
516
- HtmlFilter.new(*opts).filter(self)
517
- end
518
- end
519
-
520
-
521
-
522
- =begin test
523
-
524
- require 'test/unit'
525
-
526
- class TestHtmlFilter < Test::Unit::TestCase
527
-
528
- # core tests
529
-
530
- def test_multiton_without_options
531
- h1 = HtmlFilter.new
532
- h2 = HtmlFilter.new
533
- h3 = HtmlFilter.new( :strip_comments => false )
534
- assert_equal( h1.object_id, h2.object_id )
535
- assert_not_equal( h1.object_id, h3.object_id )
536
- end
537
-
538
- def test_multiton_with_options
539
- h1 = HtmlFilter.new( :strip_comments => false )
540
- h2 = HtmlFilter.new( :strip_comments => false )
541
- h3 = HtmlFilter.new
542
- assert_equal( h1.object_id, h2.object_id )
543
- assert_not_equal( h1.object_id, h3.object_id )
544
- end
545
-
546
- def test_strip_single
547
- hf = HtmlFilter.new
548
- assert_equal( '"', hf.send(:strip_single,'\"') )
549
- assert_equal( "\000", hf.send(:strip_single,'\0') )
550
- end
551
-
552
- # functional tests
553
-
554
- def assert_filter(filtered, original)
555
- assert_equal(filtered, original.html_filter)
556
- end
557
-
558
- def test_fix_quotes
559
- assert_filter '<img src="foo.jpg" />', "<img src=\"foo.jpg />"
560
- end
561
-
562
- def test_basics
563
- assert_filter '', ''
564
- assert_filter 'hello', 'hello'
565
- end
566
-
567
- def test_balancing_tags
568
- assert_filter "<b>hello</b>", "<<b>hello</b>"
569
- assert_filter "<b>hello</b>", "<b>>hello</b>"
570
- assert_filter "<b>hello</b>", "<b>hello<</b>"
571
- assert_filter "<b>hello</b>", "<b>hello</b>>"
572
- assert_filter "", "<>"
573
- end
574
-
575
- def test_tag_completion
576
- assert_filter "hello", "hello<b>"
577
- assert_filter "<b>hello</b>", "<b>hello"
578
- assert_filter "hello<b>world</b>", "hello<b>world"
579
- assert_filter "hello", "hello</b>"
580
- assert_filter "hello", "hello<b/>"
581
- assert_filter "hello<b>world</b>", "hello<b/>world"
582
- assert_filter "<b><b><b>hello</b></b></b>", "<b><b><b>hello"
583
- assert_filter "", "</b><b>"
584
- end
585
-
586
- def test_end_slashes
587
- assert_filter '<img />', '<img>'
588
- assert_filter '<img />', '<img/>'
589
- assert_filter '', '<b/></b>'
590
- end
591
-
592
- end
593
-
594
- =end
595
-