facets 2.5.2 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
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
-