facets 0.6.3 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2367) hide show
  1. data/ANN +29 -33
  2. data/COPYING +5 -0
  3. data/ChangeLog +18 -0
  4. data/README +54 -42
  5. data/README2 +67 -0
  6. data/Reapfile +26 -12
  7. data/ToDo +24 -0
  8. data/Version +11 -0
  9. data/bench/b_harray.rb +49 -0
  10. data/bench/b_range.rb +64 -0
  11. data/demo/ansicolor/cdiff.rb +20 -0
  12. data/demo/ansicolor/example.rb +82 -0
  13. data/demo/io-reactor/chatserver.rb +347 -0
  14. data/doc/atomic-rdoc/classes/Array.html +1249 -0
  15. data/doc/atomic-rdoc/classes/Array.src/M000047.html +21 -0
  16. data/doc/atomic-rdoc/classes/Array.src/M000048.html +24 -0
  17. data/doc/atomic-rdoc/classes/Array.src/M000049.html +18 -0
  18. data/doc/atomic-rdoc/classes/Array.src/M000050.html +18 -0
  19. data/doc/atomic-rdoc/classes/Array.src/M000051.html +18 -0
  20. data/doc/atomic-rdoc/classes/Array.src/M000052.html +19 -0
  21. data/doc/atomic-rdoc/classes/Array.src/M000053.html +20 -0
  22. data/doc/atomic-rdoc/classes/Array.src/M000054.html +25 -0
  23. data/doc/atomic-rdoc/classes/Array.src/M000055.html +26 -0
  24. data/doc/{classes/Array.src/M000038.html → atomic-rdoc/classes/Array.src/M000056.html} +0 -0
  25. data/doc/{classes/Array.src/M000039.html → atomic-rdoc/classes/Array.src/M000057.html} +0 -0
  26. data/doc/{classes/Array.src/M000040.html → atomic-rdoc/classes/Array.src/M000058.html} +0 -0
  27. data/doc/{classes/Array.src/M000041.html → atomic-rdoc/classes/Array.src/M000059.html} +0 -0
  28. data/doc/{classes/Array.src/M000042.html → atomic-rdoc/classes/Array.src/M000060.html} +0 -0
  29. data/doc/atomic-rdoc/classes/Array.src/M000062.html +18 -0
  30. data/doc/{classes/Array.src/M000044.html → atomic-rdoc/classes/Array.src/M000063.html} +0 -0
  31. data/doc/{classes/Array.src/M000047.html → atomic-rdoc/classes/Array.src/M000065.html} +0 -0
  32. data/doc/{classes/Array.src/M000048.html → atomic-rdoc/classes/Array.src/M000066.html} +0 -0
  33. data/doc/atomic-rdoc/classes/Array.src/M000067.html +31 -0
  34. data/doc/atomic-rdoc/classes/Array.src/M000068.html +18 -0
  35. data/doc/{classes/Array.src/M000051.html → atomic-rdoc/classes/Array.src/M000069.html} +0 -0
  36. data/doc/atomic-rdoc/classes/Array.src/M000070.html +18 -0
  37. data/doc/atomic-rdoc/classes/Array.src/M000071.html +26 -0
  38. data/doc/atomic-rdoc/classes/Array.src/M000072.html +19 -0
  39. data/doc/atomic-rdoc/classes/Array.src/M000073.html +28 -0
  40. data/doc/atomic-rdoc/classes/Array.src/M000074.html +19 -0
  41. data/doc/{classes/Array.src/M000059.html → atomic-rdoc/classes/Array.src/M000075.html} +0 -0
  42. data/doc/atomic-rdoc/classes/Array.src/M000076.html +18 -0
  43. data/doc/atomic-rdoc/classes/Array.src/M000077.html +18 -0
  44. data/doc/{classes/Array.src/M000061.html → atomic-rdoc/classes/Array.src/M000079.html} +0 -0
  45. data/doc/atomic-rdoc/classes/Binding.html +444 -0
  46. data/doc/atomic-rdoc/classes/Binding.src/M000194.html +18 -0
  47. data/doc/atomic-rdoc/classes/Binding.src/M000195.html +18 -0
  48. data/doc/atomic-rdoc/classes/Binding.src/M000196.html +19 -0
  49. data/doc/atomic-rdoc/classes/Binding.src/M000197.html +18 -0
  50. data/doc/atomic-rdoc/classes/Binding.src/M000198.html +18 -0
  51. data/doc/atomic-rdoc/classes/Binding.src/M000199.html +18 -0
  52. data/doc/{classes/Binding.src/M000203.html → atomic-rdoc/classes/Binding.src/M000200.html} +0 -0
  53. data/doc/atomic-rdoc/classes/Binding.src/M000201.html +19 -0
  54. data/doc/atomic-rdoc/classes/Binding.src/M000202.html +18 -0
  55. data/doc/atomic-rdoc/classes/Binding.src/M000203.html +19 -0
  56. data/doc/atomic-rdoc/classes/Binding.src/M000204.html +18 -0
  57. data/doc/atomic-rdoc/classes/Binding.src/M000205.html +18 -0
  58. data/doc/atomic-rdoc/classes/Binding.src/M000206.html +18 -0
  59. data/doc/atomic-rdoc/classes/Class.html +224 -0
  60. data/doc/atomic-rdoc/classes/Class.src/M000169.html +20 -0
  61. data/doc/atomic-rdoc/classes/Class.src/M000170.html +20 -0
  62. data/doc/atomic-rdoc/classes/Class.src/M000171.html +19 -0
  63. data/doc/atomic-rdoc/classes/Comparable.html +198 -0
  64. data/doc/atomic-rdoc/classes/Comparable.src/M000341.html +18 -0
  65. data/doc/atomic-rdoc/classes/Comparable.src/M000342.html +18 -0
  66. data/doc/{classes/Comparable.src/M000366.html → atomic-rdoc/classes/Comparable.src/M000343.html} +0 -0
  67. data/doc/atomic-rdoc/classes/Continuation.html +188 -0
  68. data/doc/{classes/Continuation.src/M000126.html → atomic-rdoc/classes/Continuation.src/M000153.html} +0 -0
  69. data/doc/atomic-rdoc/classes/Date.html +248 -0
  70. data/doc/atomic-rdoc/classes/Date.src/M000172.html +18 -0
  71. data/doc/atomic-rdoc/classes/Date.src/M000173.html +18 -0
  72. data/doc/atomic-rdoc/classes/Date.src/M000174.html +25 -0
  73. data/doc/atomic-rdoc/classes/Date.src/M000176.html +18 -0
  74. data/doc/atomic-rdoc/classes/Date.src/M000177.html +18 -0
  75. data/doc/atomic-rdoc/classes/Enumerable.html +627 -0
  76. data/doc/atomic-rdoc/classes/Enumerable.src/M000325.html +22 -0
  77. data/doc/{classes/Enumerable.src/M000347.html → atomic-rdoc/classes/Enumerable.src/M000326.html} +0 -0
  78. data/doc/atomic-rdoc/classes/Enumerable.src/M000328.html +29 -0
  79. data/doc/atomic-rdoc/classes/Enumerable.src/M000329.html +18 -0
  80. data/doc/{classes/Enumerable.src/M000351.html → atomic-rdoc/classes/Enumerable.src/M000330.html} +0 -0
  81. data/doc/{classes/Enumerable.src/M000352.html → atomic-rdoc/classes/Enumerable.src/M000331.html} +0 -0
  82. data/doc/atomic-rdoc/classes/Enumerable.src/M000333.html +31 -0
  83. data/doc/{classes/Enumerable.src/M000360.html → atomic-rdoc/classes/Enumerable.src/M000335.html} +0 -0
  84. data/doc/atomic-rdoc/classes/Enumerable.src/M000337.html +20 -0
  85. data/doc/atomic-rdoc/classes/Enumerable.src/M000338.html +18 -0
  86. data/doc/{classes/Enumerable.src/M000364.html → atomic-rdoc/classes/Enumerable.src/M000339.html} +0 -0
  87. data/doc/{classes/Enumerable.src/M000365.html → atomic-rdoc/classes/Enumerable.src/M000340.html} +0 -0
  88. data/doc/atomic-rdoc/classes/FalseClass.html +139 -0
  89. data/doc/atomic-rdoc/classes/FalseClass.src/M000046.html +18 -0
  90. data/doc/atomic-rdoc/classes/File.html +149 -0
  91. data/doc/{classes/File.src/M000326.html → atomic-rdoc/classes/File.src/M000305.html} +0 -0
  92. data/doc/atomic-rdoc/classes/FileUtils.html +340 -0
  93. data/doc/{classes/FileUtils.src/M000327.html → atomic-rdoc/classes/FileUtils.src/M000306.html} +0 -0
  94. data/doc/atomic-rdoc/classes/FileUtils.src/M000307.html +18 -0
  95. data/doc/{classes/FileUtils.src/M000331.html → atomic-rdoc/classes/FileUtils.src/M000308.html} +0 -0
  96. data/doc/{classes/FileUtils.src/M000332.html → atomic-rdoc/classes/FileUtils.src/M000309.html} +0 -0
  97. data/doc/atomic-rdoc/classes/FileUtils.src/M000310.html +28 -0
  98. data/doc/atomic-rdoc/classes/FileUtils.src/M000311.html +18 -0
  99. data/doc/{classes/FileUtils.src/M000333.html → atomic-rdoc/classes/FileUtils.src/M000312.html} +0 -0
  100. data/doc/atomic-rdoc/classes/Float.html +228 -0
  101. data/doc/atomic-rdoc/classes/Float.src/M000166.html +19 -0
  102. data/doc/atomic-rdoc/classes/Float.src/M000167.html +18 -0
  103. data/doc/atomic-rdoc/classes/Float.src/M000168.html +19 -0
  104. data/doc/atomic-rdoc/classes/Functor.html +190 -0
  105. data/doc/atomic-rdoc/classes/Functor.src/M000187.html +16 -0
  106. data/doc/atomic-rdoc/classes/Functor.src/M000188.html +16 -0
  107. data/doc/{classes/Functor.src/M000197.html → atomic-rdoc/classes/Functor.src/M000189.html} +0 -0
  108. data/doc/{classes/Functor.src/M000198.html → atomic-rdoc/classes/Functor.src/M000190.html} +0 -0
  109. data/doc/atomic-rdoc/classes/Hash.html +1471 -0
  110. data/doc/{classes/Hash.src/M000063.html → atomic-rdoc/classes/Hash.src/M000081.html} +0 -0
  111. data/doc/atomic-rdoc/classes/Hash.src/M000082.html +18 -0
  112. data/doc/atomic-rdoc/classes/Hash.src/M000083.html +19 -0
  113. data/doc/atomic-rdoc/classes/Hash.src/M000084.html +19 -0
  114. data/doc/atomic-rdoc/classes/Hash.src/M000085.html +19 -0
  115. data/doc/atomic-rdoc/classes/Hash.src/M000086.html +23 -0
  116. data/doc/{classes/Hash.src/M000068.html → atomic-rdoc/classes/Hash.src/M000087.html} +0 -0
  117. data/doc/atomic-rdoc/classes/Hash.src/M000088.html +26 -0
  118. data/doc/atomic-rdoc/classes/Hash.src/M000089.html +18 -0
  119. data/doc/atomic-rdoc/classes/Hash.src/M000090.html +18 -0
  120. data/doc/{classes/Hash.src/M000071.html → atomic-rdoc/classes/Hash.src/M000091.html} +0 -0
  121. data/doc/{classes/Hash.src/M000072.html → atomic-rdoc/classes/Hash.src/M000092.html} +0 -0
  122. data/doc/atomic-rdoc/classes/Hash.src/M000093.html +20 -0
  123. data/doc/atomic-rdoc/classes/Hash.src/M000095.html +18 -0
  124. data/doc/atomic-rdoc/classes/Hash.src/M000096.html +19 -0
  125. data/doc/atomic-rdoc/classes/Hash.src/M000097.html +18 -0
  126. data/doc/atomic-rdoc/classes/Hash.src/M000098.html +22 -0
  127. data/doc/{classes/Hash.src/M000074.html → atomic-rdoc/classes/Hash.src/M000099.html} +0 -0
  128. data/doc/atomic-rdoc/classes/Hash.src/M000101.html +18 -0
  129. data/doc/atomic-rdoc/classes/Hash.src/M000103.html +18 -0
  130. data/doc/{classes/Hash.src/M000089.html → atomic-rdoc/classes/Hash.src/M000104.html} +0 -0
  131. data/doc/atomic-rdoc/classes/Hash.src/M000105.html +18 -0
  132. data/doc/atomic-rdoc/classes/Hash.src/M000106.html +24 -0
  133. data/doc/atomic-rdoc/classes/Hash.src/M000108.html +22 -0
  134. data/doc/{classes/Hash.src/M000093.html → atomic-rdoc/classes/Hash.src/M000109.html} +0 -0
  135. data/doc/{classes/Hash.src/M000094.html → atomic-rdoc/classes/Hash.src/M000110.html} +0 -0
  136. data/doc/{classes/Hash.src/M000095.html → atomic-rdoc/classes/Hash.src/M000111.html} +0 -0
  137. data/doc/atomic-rdoc/classes/Hash.src/M000112.html +20 -0
  138. data/doc/atomic-rdoc/classes/Hash.src/M000113.html +19 -0
  139. data/doc/atomic-rdoc/classes/Hash.src/M000114.html +19 -0
  140. data/doc/atomic-rdoc/classes/Hash.src/M000115.html +18 -0
  141. data/doc/atomic-rdoc/classes/Hash.src/M000116.html +18 -0
  142. data/doc/atomic-rdoc/classes/Hash.src/M000117.html +22 -0
  143. data/doc/atomic-rdoc/classes/Hash.src/M000118.html +21 -0
  144. data/doc/atomic-rdoc/classes/Hash.src/M000119.html +24 -0
  145. data/doc/{classes/Hash.src/M000100.html → atomic-rdoc/classes/Hash.src/M000120.html} +0 -0
  146. data/doc/{classes/Hash.src/M000104.html → atomic-rdoc/classes/Hash.src/M000121.html} +0 -0
  147. data/doc/atomic-rdoc/classes/Hash.src/M000122.html +19 -0
  148. data/doc/atomic-rdoc/classes/Hash.src/M000123.html +20 -0
  149. data/doc/{classes/Hash.src/M000105.html → atomic-rdoc/classes/Hash.src/M000125.html} +0 -0
  150. data/doc/{classes/Hash.src/M000106.html → atomic-rdoc/classes/Hash.src/M000126.html} +0 -0
  151. data/doc/atomic-rdoc/classes/Integer.html +314 -0
  152. data/doc/atomic-rdoc/classes/Integer.src/M000014.html +18 -0
  153. data/doc/atomic-rdoc/classes/Integer.src/M000015.html +18 -0
  154. data/doc/atomic-rdoc/classes/Integer.src/M000016.html +18 -0
  155. data/doc/{classes/Integer.src/M000007.html → atomic-rdoc/classes/Integer.src/M000017.html} +0 -0
  156. data/doc/atomic-rdoc/classes/Integer.src/M000018.html +21 -0
  157. data/doc/atomic-rdoc/classes/Integer.src/M000019.html +18 -0
  158. data/doc/atomic-rdoc/classes/Kernel.html +550 -0
  159. data/doc/{classes/Kernel.src/M000334.html → atomic-rdoc/classes/Kernel.src/M000313.html} +0 -0
  160. data/doc/{classes/Kernel.src/M000335.html → atomic-rdoc/classes/Kernel.src/M000314.html} +0 -0
  161. data/doc/{classes/Kernel.src/M000336.html → atomic-rdoc/classes/Kernel.src/M000315.html} +0 -0
  162. data/doc/atomic-rdoc/classes/Kernel.src/M000316.html +18 -0
  163. data/doc/atomic-rdoc/classes/Kernel.src/M000317.html +24 -0
  164. data/doc/atomic-rdoc/classes/Kernel.src/M000318.html +19 -0
  165. data/doc/{classes/Kernel.src/M000340.html → atomic-rdoc/classes/Kernel.src/M000319.html} +0 -0
  166. data/doc/{classes/Kernel.src/M000341.html → atomic-rdoc/classes/Kernel.src/M000320.html} +0 -0
  167. data/doc/atomic-rdoc/classes/Kernel.src/M000321.html +19 -0
  168. data/doc/atomic-rdoc/classes/Kernel.src/M000322.html +19 -0
  169. data/doc/{classes/Kernel.src/M000343.html → atomic-rdoc/classes/Kernel.src/M000323.html} +0 -0
  170. data/doc/atomic-rdoc/classes/Kernel.src/M000324.html +18 -0
  171. data/doc/atomic-rdoc/classes/MatchData.html +200 -0
  172. data/doc/atomic-rdoc/classes/MatchData.src/M000127.html +33 -0
  173. data/doc/atomic-rdoc/classes/MatchData.src/M000128.html +18 -0
  174. data/doc/{classes/MatchData.src/M000109.html → atomic-rdoc/classes/MatchData.src/M000129.html} +0 -0
  175. data/doc/atomic-rdoc/classes/Module.html +889 -0
  176. data/doc/atomic-rdoc/classes/Module.src/M000132.html +32 -0
  177. data/doc/atomic-rdoc/classes/Module.src/M000133.html +24 -0
  178. data/doc/atomic-rdoc/classes/Module.src/M000134.html +24 -0
  179. data/doc/{classes/Module.src/M000115.html → atomic-rdoc/classes/Module.src/M000135.html} +0 -0
  180. data/doc/atomic-rdoc/classes/Module.src/M000136.html +24 -0
  181. data/doc/{classes/Module.src/M000116.html → atomic-rdoc/classes/Module.src/M000137.html} +0 -0
  182. data/doc/{classes/Module.src/M000117.html → atomic-rdoc/classes/Module.src/M000138.html} +0 -0
  183. data/doc/atomic-rdoc/classes/Module.src/M000139.html +28 -0
  184. data/doc/{classes/Module.src/M000118.html → atomic-rdoc/classes/Module.src/M000140.html} +0 -0
  185. data/doc/{classes/Module.src/M000119.html → atomic-rdoc/classes/Module.src/M000141.html} +0 -0
  186. data/doc/{classes/Module.src/M000120.html → atomic-rdoc/classes/Module.src/M000142.html} +0 -0
  187. data/doc/atomic-rdoc/classes/Module.src/M000143.html +29 -0
  188. data/doc/atomic-rdoc/classes/Module.src/M000144.html +23 -0
  189. data/doc/atomic-rdoc/classes/Module.src/M000145.html +24 -0
  190. data/doc/atomic-rdoc/classes/Module.src/M000146.html +28 -0
  191. data/doc/atomic-rdoc/classes/Module.src/M000147.html +50 -0
  192. data/doc/atomic-rdoc/classes/Module.src/M000148.html +24 -0
  193. data/doc/{classes/Module.src/M000124.html → atomic-rdoc/classes/Module.src/M000150.html} +0 -0
  194. data/doc/{classes/Module.src/M000125.html → atomic-rdoc/classes/Module.src/M000151.html} +0 -0
  195. data/doc/atomic-rdoc/classes/NilClass.html +363 -0
  196. data/doc/atomic-rdoc/classes/NilClass.src/M000178.html +16 -0
  197. data/doc/atomic-rdoc/classes/NilClass.src/M000179.html +18 -0
  198. data/doc/{classes/NilClass.src/M000188.html → atomic-rdoc/classes/NilClass.src/M000180.html} +0 -0
  199. data/doc/{classes/NilClass.src/M000190.html → atomic-rdoc/classes/NilClass.src/M000181.html} +0 -0
  200. data/doc/{classes/NilClass.src/M000191.html → atomic-rdoc/classes/NilClass.src/M000182.html} +0 -0
  201. data/doc/atomic-rdoc/classes/NilClass.src/M000183.html +16 -0
  202. data/doc/atomic-rdoc/classes/NilClass.src/M000184.html +16 -0
  203. data/doc/atomic-rdoc/classes/NilClass.src/M000185.html +16 -0
  204. data/doc/atomic-rdoc/classes/NilClass.src/M000186.html +18 -0
  205. data/doc/atomic-rdoc/classes/Numeric.html +483 -0
  206. data/doc/atomic-rdoc/classes/Numeric.src/M000154.html +18 -0
  207. data/doc/atomic-rdoc/classes/Numeric.src/M000155.html +18 -0
  208. data/doc/atomic-rdoc/classes/Numeric.src/M000156.html +18 -0
  209. data/doc/atomic-rdoc/classes/Numeric.src/M000157.html +29 -0
  210. data/doc/{classes/Numeric.src/M000131.html → atomic-rdoc/classes/Numeric.src/M000158.html} +0 -0
  211. data/doc/{classes/Numeric.src/M000147.html → atomic-rdoc/classes/Numeric.src/M000159.html} +0 -0
  212. data/doc/atomic-rdoc/classes/Numeric.src/M000160.html +18 -0
  213. data/doc/{classes/Numeric.src/M000150.html → atomic-rdoc/classes/Numeric.src/M000161.html} +0 -0
  214. data/doc/atomic-rdoc/classes/Numeric.src/M000162.html +18 -0
  215. data/doc/atomic-rdoc/classes/Numeric.src/M000163.html +18 -0
  216. data/doc/{classes/Numeric.src/M000178.html → atomic-rdoc/classes/Numeric.src/M000164.html} +0 -0
  217. data/doc/atomic-rdoc/classes/Numeric.src/M000165.html +19 -0
  218. data/doc/atomic-rdoc/classes/Object.html +869 -0
  219. data/doc/{classes/Object.src/M000215.html → atomic-rdoc/classes/Object.src/M000207.html} +0 -0
  220. data/doc/atomic-rdoc/classes/Object.src/M000208.html +20 -0
  221. data/doc/{classes/Object.src/M000217.html → atomic-rdoc/classes/Object.src/M000209.html} +0 -0
  222. data/doc/atomic-rdoc/classes/Object.src/M000211.html +26 -0
  223. data/doc/atomic-rdoc/classes/Object.src/M000212.html +18 -0
  224. data/doc/atomic-rdoc/classes/Object.src/M000213.html +19 -0
  225. data/doc/atomic-rdoc/classes/Object.src/M000214.html +21 -0
  226. data/doc/atomic-rdoc/classes/Object.src/M000215.html +19 -0
  227. data/doc/atomic-rdoc/classes/Object.src/M000216.html +19 -0
  228. data/doc/atomic-rdoc/classes/Object.src/M000217.html +18 -0
  229. data/doc/atomic-rdoc/classes/Object.src/M000218.html +19 -0
  230. data/doc/atomic-rdoc/classes/Object.src/M000219.html +18 -0
  231. data/doc/atomic-rdoc/classes/Object.src/M000220.html +18 -0
  232. data/doc/atomic-rdoc/classes/Object.src/M000221.html +18 -0
  233. data/doc/{classes/Object.src/M000233.html → atomic-rdoc/classes/Object.src/M000222.html} +0 -0
  234. data/doc/atomic-rdoc/classes/Object.src/M000223.html +19 -0
  235. data/doc/{classes/Object.src/M000237.html → atomic-rdoc/classes/Object.src/M000224.html} +0 -0
  236. data/doc/{classes/Object.src/M000238.html → atomic-rdoc/classes/Object.src/M000225.html} +0 -0
  237. data/doc/atomic-rdoc/classes/Object.src/M000226.html +20 -0
  238. data/doc/atomic-rdoc/classes/Object.src/M000227.html +18 -0
  239. data/doc/{classes/Object.src/M000239.html → atomic-rdoc/classes/Object.src/M000228.html} +0 -0
  240. data/doc/atomic-rdoc/classes/Object.src/M000229.html +18 -0
  241. data/doc/atomic-rdoc/classes/OpenStruct.html +210 -0
  242. data/doc/{classes/OpenStruct.src/M000199.html → atomic-rdoc/classes/OpenStruct.src/M000191.html} +0 -0
  243. data/doc/atomic-rdoc/classes/OpenStruct.src/M000192.html +20 -0
  244. data/doc/atomic-rdoc/classes/OpenStruct.src/M000193.html +19 -0
  245. data/doc/atomic-rdoc/classes/Proc.html +188 -0
  246. data/doc/{classes/Proc.src/M000110.html → atomic-rdoc/classes/Proc.src/M000130.html} +0 -0
  247. data/doc/atomic-rdoc/classes/Range.html +251 -0
  248. data/doc/atomic-rdoc/classes/Range.src/M000005.html +23 -0
  249. data/doc/{classes/Range.src/M000004.html → atomic-rdoc/classes/Range.src/M000006.html} +0 -0
  250. data/doc/{classes/Range.src/M000005.html → atomic-rdoc/classes/Range.src/M000007.html} +0 -0
  251. data/doc/atomic-rdoc/classes/Range.src/M000008.html +18 -0
  252. data/doc/atomic-rdoc/classes/Regexp.html +209 -0
  253. data/doc/atomic-rdoc/classes/Regexp.src/M000030.html +18 -0
  254. data/doc/atomic-rdoc/classes/Regexp.src/M000031.html +18 -0
  255. data/doc/{classes/Regexp.src/M000024.html → atomic-rdoc/classes/Regexp.src/M000032.html} +0 -0
  256. data/doc/atomic-rdoc/classes/String.html +2156 -0
  257. data/doc/atomic-rdoc/classes/String.src/M000230.html +18 -0
  258. data/doc/atomic-rdoc/classes/String.src/M000231.html +18 -0
  259. data/doc/atomic-rdoc/classes/String.src/M000232.html +22 -0
  260. data/doc/atomic-rdoc/classes/String.src/M000233.html +27 -0
  261. data/doc/{classes/String.src/M000248.html → atomic-rdoc/classes/String.src/M000234.html} +0 -0
  262. data/doc/{classes/String.src/M000250.html → atomic-rdoc/classes/String.src/M000235.html} +0 -0
  263. data/doc/atomic-rdoc/classes/String.src/M000236.html +18 -0
  264. data/doc/{classes/String.src/M000251.html → atomic-rdoc/classes/String.src/M000237.html} +0 -0
  265. data/doc/atomic-rdoc/classes/String.src/M000239.html +18 -0
  266. data/doc/{classes/String.src/M000253.html → atomic-rdoc/classes/String.src/M000240.html} +0 -0
  267. data/doc/{classes/String.src/M000254.html → atomic-rdoc/classes/String.src/M000241.html} +0 -0
  268. data/doc/{classes/String.src/M000255.html → atomic-rdoc/classes/String.src/M000242.html} +0 -0
  269. data/doc/{classes/String.src/M000256.html → atomic-rdoc/classes/String.src/M000243.html} +0 -0
  270. data/doc/atomic-rdoc/classes/String.src/M000244.html +18 -0
  271. data/doc/atomic-rdoc/classes/String.src/M000245.html +20 -0
  272. data/doc/atomic-rdoc/classes/String.src/M000246.html +38 -0
  273. data/doc/{classes/String.src/M000259.html → atomic-rdoc/classes/String.src/M000247.html} +0 -0
  274. data/doc/{classes/String.src/M000260.html → atomic-rdoc/classes/String.src/M000248.html} +0 -0
  275. data/doc/atomic-rdoc/classes/String.src/M000249.html +25 -0
  276. data/doc/atomic-rdoc/classes/String.src/M000250.html +18 -0
  277. data/doc/atomic-rdoc/classes/String.src/M000251.html +22 -0
  278. data/doc/atomic-rdoc/classes/String.src/M000252.html +18 -0
  279. data/doc/atomic-rdoc/classes/String.src/M000253.html +18 -0
  280. data/doc/atomic-rdoc/classes/String.src/M000254.html +18 -0
  281. data/doc/atomic-rdoc/classes/String.src/M000255.html +18 -0
  282. data/doc/atomic-rdoc/classes/String.src/M000256.html +23 -0
  283. data/doc/{classes/String.src/M000261.html → atomic-rdoc/classes/String.src/M000257.html} +0 -0
  284. data/doc/atomic-rdoc/classes/String.src/M000258.html +18 -0
  285. data/doc/atomic-rdoc/classes/String.src/M000259.html +18 -0
  286. data/doc/atomic-rdoc/classes/String.src/M000260.html +18 -0
  287. data/doc/atomic-rdoc/classes/String.src/M000261.html +18 -0
  288. data/doc/atomic-rdoc/classes/String.src/M000262.html +18 -0
  289. data/doc/atomic-rdoc/classes/String.src/M000263.html +72 -0
  290. data/doc/atomic-rdoc/classes/String.src/M000264.html +18 -0
  291. data/doc/atomic-rdoc/classes/String.src/M000265.html +20 -0
  292. data/doc/{classes/String.src/M000276.html → atomic-rdoc/classes/String.src/M000266.html} +0 -0
  293. data/doc/atomic-rdoc/classes/String.src/M000267.html +21 -0
  294. data/doc/atomic-rdoc/classes/String.src/M000268.html +18 -0
  295. data/doc/atomic-rdoc/classes/String.src/M000269.html +37 -0
  296. data/doc/atomic-rdoc/classes/String.src/M000271.html +20 -0
  297. data/doc/atomic-rdoc/classes/String.src/M000272.html +18 -0
  298. data/doc/atomic-rdoc/classes/String.src/M000274.html +21 -0
  299. data/doc/{classes/String.src/M000286.html → atomic-rdoc/classes/String.src/M000275.html} +0 -0
  300. data/doc/atomic-rdoc/classes/String.src/M000276.html +18 -0
  301. data/doc/atomic-rdoc/classes/String.src/M000277.html +18 -0
  302. data/doc/{classes/String.src/M000292.html → atomic-rdoc/classes/String.src/M000278.html} +0 -0
  303. data/doc/atomic-rdoc/classes/String.src/M000279.html +20 -0
  304. data/doc/{classes/String.src/M000293.html → atomic-rdoc/classes/String.src/M000280.html} +0 -0
  305. data/doc/atomic-rdoc/classes/String.src/M000281.html +22 -0
  306. data/doc/atomic-rdoc/classes/String.src/M000283.html +22 -0
  307. data/doc/{classes/String.src/M000295.html → atomic-rdoc/classes/String.src/M000284.html} +0 -0
  308. data/doc/atomic-rdoc/classes/String.src/M000285.html +18 -0
  309. data/doc/atomic-rdoc/classes/String.src/M000286.html +18 -0
  310. data/doc/atomic-rdoc/classes/String.src/M000287.html +21 -0
  311. data/doc/{classes/String.src/M000301.html → atomic-rdoc/classes/String.src/M000288.html} +0 -0
  312. data/doc/atomic-rdoc/classes/String.src/M000289.html +20 -0
  313. data/doc/{classes/String.src/M000305.html → atomic-rdoc/classes/String.src/M000290.html} +0 -0
  314. data/doc/{classes/String.src/M000306.html → atomic-rdoc/classes/String.src/M000291.html} +0 -0
  315. data/doc/atomic-rdoc/classes/String.src/M000292.html +23 -0
  316. data/doc/atomic-rdoc/classes/String.src/M000293.html +23 -0
  317. data/doc/atomic-rdoc/classes/String.src/M000294.html +28 -0
  318. data/doc/{classes/String.src/M000307.html → atomic-rdoc/classes/String.src/M000295.html} +0 -0
  319. data/doc/atomic-rdoc/classes/String.src/M000296.html +18 -0
  320. data/doc/atomic-rdoc/classes/String.src/M000298.html +21 -0
  321. data/doc/{classes/String.src/M000308.html → atomic-rdoc/classes/String.src/M000299.html} +0 -0
  322. data/doc/atomic-rdoc/classes/String.src/M000300.html +18 -0
  323. data/doc/{classes/String.src/M000309.html → atomic-rdoc/classes/String.src/M000301.html} +0 -0
  324. data/doc/atomic-rdoc/classes/String.src/M000302.html +18 -0
  325. data/doc/atomic-rdoc/classes/Symbol.html +384 -0
  326. data/doc/{classes/Symbol.src/M000014.html → atomic-rdoc/classes/Symbol.src/M000020.html} +0 -0
  327. data/doc/{classes/Symbol.src/M000016.html → atomic-rdoc/classes/Symbol.src/M000022.html} +0 -0
  328. data/doc/atomic-rdoc/classes/Symbol.src/M000023.html +18 -0
  329. data/doc/{classes/Symbol.src/M000017.html → atomic-rdoc/classes/Symbol.src/M000024.html} +0 -0
  330. data/doc/{classes/Symbol.src/M000018.html → atomic-rdoc/classes/Symbol.src/M000025.html} +0 -0
  331. data/doc/atomic-rdoc/classes/Symbol.src/M000026.html +22 -0
  332. data/doc/{classes/Symbol.src/M000019.html → atomic-rdoc/classes/Symbol.src/M000027.html} +0 -0
  333. data/doc/{classes/Symbol.src/M000020.html → atomic-rdoc/classes/Symbol.src/M000028.html} +0 -0
  334. data/doc/{classes/Symbol.src/M000021.html → atomic-rdoc/classes/Symbol.src/M000029.html} +0 -0
  335. data/doc/atomic-rdoc/classes/Tectcase.html +216 -0
  336. data/doc/atomic-rdoc/classes/Tectcase.src/M000009.html +18 -0
  337. data/doc/atomic-rdoc/classes/Tectcase.src/M000010.html +20 -0
  338. data/doc/atomic-rdoc/classes/Tectcase.src/M000011.html +20 -0
  339. data/doc/atomic-rdoc/classes/Tectcase.src/M000012.html +23 -0
  340. data/doc/atomic-rdoc/classes/Tectcase.src/M000013.html +20 -0
  341. data/doc/atomic-rdoc/classes/TestCase.html +246 -0
  342. data/doc/atomic-rdoc/classes/TestCase.src/M000040.html +18 -0
  343. data/doc/atomic-rdoc/classes/TestCase.src/M000041.html +19 -0
  344. data/doc/atomic-rdoc/classes/TestCase.src/M000042.html +22 -0
  345. data/doc/atomic-rdoc/classes/TestCase.src/M000043.html +18 -0
  346. data/doc/atomic-rdoc/classes/TestCase.src/M000044.html +22 -0
  347. data/doc/atomic-rdoc/classes/TestCase.src/M000045.html +18 -0
  348. data/doc/atomic-rdoc/classes/TestM.html +137 -0
  349. data/doc/atomic-rdoc/classes/TestM.src/M000344.html +16 -0
  350. data/doc/atomic-rdoc/classes/TestY.html +161 -0
  351. data/doc/atomic-rdoc/classes/TestY.src/M000003.html +16 -0
  352. data/doc/atomic-rdoc/classes/TestY.src/M000004.html +16 -0
  353. data/doc/atomic-rdoc/classes/Time.html +337 -0
  354. data/doc/atomic-rdoc/classes/Time.src/M000033.html +26 -0
  355. data/doc/atomic-rdoc/classes/Time.src/M000034.html +18 -0
  356. data/doc/atomic-rdoc/classes/Time.src/M000035.html +51 -0
  357. data/doc/atomic-rdoc/classes/Time.src/M000036.html +27 -0
  358. data/doc/atomic-rdoc/classes/Time.src/M000038.html +18 -0
  359. data/doc/atomic-rdoc/classes/Time.src/M000039.html +21 -0
  360. data/doc/atomic-rdoc/classes/TrueClass.html +139 -0
  361. data/doc/atomic-rdoc/classes/TrueClass.src/M000304.html +18 -0
  362. data/doc/atomic-rdoc/created.rid +1 -0
  363. data/doc/atomic-rdoc/files/README.html +267 -0
  364. data/doc/atomic-rdoc/files/lib/facet/array/%5B%5D%3D_rb.html +109 -0
  365. data/doc/atomic-rdoc/files/lib/facet/array/%5B%5D_rb.html +108 -0
  366. data/doc/{files → atomic-rdoc/files}/lib/facet/array/at_rand_rb.html +0 -0
  367. data/doc/atomic-rdoc/files/lib/facet/array/body_rb.html +101 -0
  368. data/doc/atomic-rdoc/files/lib/facet/array/combinations_rb.html +108 -0
  369. data/doc/atomic-rdoc/files/lib/facet/array/delete_values_at_rb.html +108 -0
  370. data/doc/atomic-rdoc/files/lib/facet/array/delete_values_rb.html +108 -0
  371. data/doc/atomic-rdoc/files/lib/facet/array/each_combination_rb.html +108 -0
  372. data/doc/atomic-rdoc/files/lib/facet/array/each_unique_pair_rb.html +108 -0
  373. data/doc/atomic-rdoc/files/lib/facet/array/first%21_rb.html +101 -0
  374. data/doc/atomic-rdoc/files/lib/facet/array/first%3D_rb.html +101 -0
  375. data/doc/atomic-rdoc/files/lib/facet/array/foot_rb.html +101 -0
  376. data/doc/atomic-rdoc/files/lib/facet/array/head_rb.html +101 -0
  377. data/doc/atomic-rdoc/files/lib/facet/array/last%21_rb.html +101 -0
  378. data/doc/atomic-rdoc/files/lib/facet/array/last%3D_rb.html +101 -0
  379. data/doc/{files → atomic-rdoc/files}/lib/facet/array/last_index_rb.html +0 -0
  380. data/doc/atomic-rdoc/files/lib/facet/array/middle_rb.html +101 -0
  381. data/doc/atomic-rdoc/files/lib/facet/array/permute_rb.html +101 -0
  382. data/doc/atomic-rdoc/files/lib/facet/array/pos_rb.html +101 -0
  383. data/doc/atomic-rdoc/files/lib/facet/array/pull_rb.html +101 -0
  384. data/doc/atomic-rdoc/files/lib/facet/array/range_rb.html +101 -0
  385. data/doc/atomic-rdoc/files/lib/facet/array/rotate%21_rb.html +101 -0
  386. data/doc/atomic-rdoc/files/lib/facet/array/rotate_rb.html +108 -0
  387. data/doc/atomic-rdoc/files/lib/facet/array/select%21_rb.html +101 -0
  388. data/doc/atomic-rdoc/files/lib/facet/array/shuffle%21_rb.html +101 -0
  389. data/doc/atomic-rdoc/files/lib/facet/array/shuffle_rb.html +108 -0
  390. data/doc/{files → atomic-rdoc/files}/lib/facet/array/store_rb.html +0 -0
  391. data/doc/atomic-rdoc/files/lib/facet/array/tail_rb.html +101 -0
  392. data/doc/{files → atomic-rdoc/files}/lib/facet/array/thru_rb.html +0 -0
  393. data/doc/atomic-rdoc/files/lib/facet/array/to_b_rb.html +101 -0
  394. data/doc/{files → atomic-rdoc/files}/lib/facet/array/to_h_rb.html +0 -0
  395. data/doc/atomic-rdoc/files/lib/facet/array/top_rb.html +108 -0
  396. data/doc/atomic-rdoc/files/lib/facet/binding/%5B%5D%3D_rb.html +101 -0
  397. data/doc/atomic-rdoc/files/lib/facet/binding/%5B%5D_rb.html +101 -0
  398. data/doc/atomic-rdoc/files/lib/facet/binding/called_rb.html +108 -0
  399. data/doc/atomic-rdoc/files/lib/facet/binding/caller_rb.html +108 -0
  400. data/doc/atomic-rdoc/files/lib/facet/binding/defined%3F_rb.html +108 -0
  401. data/doc/{files → atomic-rdoc/files}/lib/facet/binding/eval_rb.html +0 -0
  402. data/doc/atomic-rdoc/files/lib/facet/binding/filename_rb.html +108 -0
  403. data/doc/atomic-rdoc/files/lib/facet/binding/lineno_rb.html +108 -0
  404. data/doc/atomic-rdoc/files/lib/facet/binding/local_variables_rb.html +108 -0
  405. data/doc/atomic-rdoc/files/lib/facet/binding/method_name_rb.html +108 -0
  406. data/doc/atomic-rdoc/files/lib/facet/binding/self_rb.html +108 -0
  407. data/doc/atomic-rdoc/files/lib/facet/class/cattr_accessor_rb.html +109 -0
  408. data/doc/atomic-rdoc/files/lib/facet/class/cattr_reader_rb.html +101 -0
  409. data/doc/atomic-rdoc/files/lib/facet/class/cattr_writer_rb.html +101 -0
  410. data/doc/atomic-rdoc/files/lib/facet/comparable/at_least_rb.html +101 -0
  411. data/doc/atomic-rdoc/files/lib/facet/comparable/at_most_rb.html +101 -0
  412. data/doc/atomic-rdoc/files/lib/facet/comparable/bound_by_rb.html +101 -0
  413. data/doc/{files → atomic-rdoc/files}/lib/facet/continuation/create_rb.html +0 -0
  414. data/doc/atomic-rdoc/files/lib/facet/date/days_in_month_rb.html +108 -0
  415. data/doc/atomic-rdoc/files/lib/facet/date/days_of_month_rb.html +108 -0
  416. data/doc/atomic-rdoc/files/lib/facet/date/stamp_rb.html +101 -0
  417. data/doc/atomic-rdoc/files/lib/facet/date/to_date_rb.html +101 -0
  418. data/doc/atomic-rdoc/files/lib/facet/date/to_s_rb.html +108 -0
  419. data/doc/atomic-rdoc/files/lib/facet/date/to_time_rb.html +101 -0
  420. data/doc/atomic-rdoc/files/lib/facet/enumerable/%25_rb.html +108 -0
  421. data/doc/atomic-rdoc/files/lib/facet/enumerable/%2A%2A_rb.html +108 -0
  422. data/doc/atomic-rdoc/files/lib/facet/enumerable/collect_with_counter_rb.html +101 -0
  423. data/doc/atomic-rdoc/files/lib/facet/enumerable/collect_with_index_rb.html +108 -0
  424. data/doc/atomic-rdoc/files/lib/facet/enumerable/cross_rb.html +108 -0
  425. data/doc/{files → atomic-rdoc/files}/lib/facet/enumerable/each_slice_rb.html +0 -0
  426. data/doc/atomic-rdoc/files/lib/facet/enumerable/every_rb.html +108 -0
  427. data/doc/atomic-rdoc/files/lib/facet/enumerable/graph_rb.html +101 -0
  428. data/doc/atomic-rdoc/files/lib/facet/enumerable/map_with_counter_rb.html +108 -0
  429. data/doc/atomic-rdoc/files/lib/facet/enumerable/map_with_index_rb.html +108 -0
  430. data/doc/atomic-rdoc/files/lib/facet/enumerable/none%3F_rb.html +101 -0
  431. data/doc/atomic-rdoc/files/lib/facet/enumerable/one%3F_rb.html +101 -0
  432. data/doc/{files → atomic-rdoc/files}/lib/facet/enumerable/partition_by_rb.html +0 -0
  433. data/doc/atomic-rdoc/files/lib/facet/enumerable/per_rb.html +108 -0
  434. data/doc/atomic-rdoc/files/lib/facet/enumerable/to_hash_rb.html +101 -0
  435. data/doc/atomic-rdoc/files/lib/facet/enumerable/uniq_by_rb.html +101 -0
  436. data/doc/atomic-rdoc/files/lib/facet/file/split_all_rb.html +101 -0
  437. data/doc/atomic-rdoc/files/lib/facet/fileutils/head_rb.html +108 -0
  438. data/doc/{files → atomic-rdoc/files}/lib/facet/fileutils/safe_ln_rb.html +0 -0
  439. data/doc/atomic-rdoc/files/lib/facet/fileutils/slice_rb.html +108 -0
  440. data/doc/atomic-rdoc/files/lib/facet/fileutils/tail_rb.html +108 -0
  441. data/doc/{files → atomic-rdoc/files}/lib/facet/fileutils/wc_rb.html +0 -0
  442. data/doc/atomic-rdoc/files/lib/facet/fileutils/whereis_rb.html +108 -0
  443. data/doc/{files → atomic-rdoc/files}/lib/facet/fileutils/which_rb.html +0 -0
  444. data/doc/atomic-rdoc/files/lib/facet/float/approx%3F_rb.html +108 -0
  445. data/doc/atomic-rdoc/files/lib/facet/float/round_at_rb.html +108 -0
  446. data/doc/atomic-rdoc/files/lib/facet/float/round_off_rb.html +101 -0
  447. data/doc/atomic-rdoc/files/lib/facet/float/round_to_rb.html +108 -0
  448. data/doc/atomic-rdoc/files/lib/facet/hash/%3C%3C_rb.html +101 -0
  449. data/doc/atomic-rdoc/files/lib/facet/hash/%5B%5D%3D_rb.html +101 -0
  450. data/doc/atomic-rdoc/files/lib/facet/hash/%5B%5D_rb.html +108 -0
  451. data/doc/atomic-rdoc/files/lib/facet/hash/alias%21_rb.html +101 -0
  452. data/doc/atomic-rdoc/files/lib/facet/hash/assert_has_keys%3F_rb.html +101 -0
  453. data/doc/atomic-rdoc/files/lib/facet/hash/assert_has_only_keys%3F_rb.html +101 -0
  454. data/doc/atomic-rdoc/files/lib/facet/hash/at_rand%21_rb.html +108 -0
  455. data/doc/atomic-rdoc/files/lib/facet/hash/at_rand_rb.html +108 -0
  456. data/doc/atomic-rdoc/files/lib/facet/hash/at_rb.html +101 -0
  457. data/doc/atomic-rdoc/files/lib/facet/hash/collate%21_rb.html +108 -0
  458. data/doc/atomic-rdoc/files/lib/facet/hash/collate_rb.html +101 -0
  459. data/doc/{files → atomic-rdoc/files}/lib/facet/hash/each_rb.html +0 -0
  460. data/doc/atomic-rdoc/files/lib/facet/hash/graph%21_rb.html +108 -0
  461. data/doc/atomic-rdoc/files/lib/facet/hash/graph_rb.html +101 -0
  462. data/doc/atomic-rdoc/files/lib/facet/hash/has_keys%3F_rb.html +101 -0
  463. data/doc/atomic-rdoc/files/lib/facet/hash/has_keys_rb.html +101 -0
  464. data/doc/atomic-rdoc/files/lib/facet/hash/has_only_keys%3F_rb.html +101 -0
  465. data/doc/atomic-rdoc/files/lib/facet/hash/inverse_rb.html +101 -0
  466. data/doc/atomic-rdoc/files/lib/facet/hash/keys_to_s%21_rb.html +108 -0
  467. data/doc/atomic-rdoc/files/lib/facet/hash/keys_to_s_rb.html +108 -0
  468. data/doc/atomic-rdoc/files/lib/facet/hash/keys_to_sym%21_rb.html +108 -0
  469. data/doc/atomic-rdoc/files/lib/facet/hash/keys_to_sym_rb.html +108 -0
  470. data/doc/atomic-rdoc/files/lib/facet/hash/rand_key%21_rb.html +101 -0
  471. data/doc/atomic-rdoc/files/lib/facet/hash/rand_key_rb.html +101 -0
  472. data/doc/atomic-rdoc/files/lib/facet/hash/rand_pair%21_rb.html +108 -0
  473. data/doc/atomic-rdoc/files/lib/facet/hash/rand_pair_rb.html +108 -0
  474. data/doc/atomic-rdoc/files/lib/facet/hash/rand_value%21_rb.html +108 -0
  475. data/doc/atomic-rdoc/files/lib/facet/hash/rand_value_rb.html +108 -0
  476. data/doc/{files → atomic-rdoc/files}/lib/facet/hash/shuffle_rb.html +0 -0
  477. data/doc/{files → atomic-rdoc/files}/lib/facet/hash/slice_rb.html +0 -0
  478. data/doc/atomic-rdoc/files/lib/facet/hash/swap%21_rb.html +101 -0
  479. data/doc/atomic-rdoc/files/lib/facet/hash/swapkey%21_rb.html +101 -0
  480. data/doc/{files → atomic-rdoc/files}/lib/facet/hash/to_h_rb.html +0 -0
  481. data/doc/atomic-rdoc/files/lib/facet/hash/to_ostruct_rb.html +108 -0
  482. data/doc/atomic-rdoc/files/lib/facet/hash/to_ostruct_recurse_rb.html +108 -0
  483. data/doc/atomic-rdoc/files/lib/facet/hash/traverse%21_rb.html +108 -0
  484. data/doc/atomic-rdoc/files/lib/facet/hash/traverse_rb.html +101 -0
  485. data/doc/{files → atomic-rdoc/files}/lib/facet/hash/update_each_rb.html +0 -0
  486. data/doc/{files → atomic-rdoc/files}/lib/facet/hash/weave_rb.html +0 -0
  487. data/doc/{files → atomic-rdoc/files}/lib/facet/hash/zipnew_rb.html +0 -0
  488. data/doc/atomic-rdoc/files/lib/facet/integer/even%3F_rb.html +101 -0
  489. data/doc/atomic-rdoc/files/lib/facet/integer/fact_rb.html +108 -0
  490. data/doc/atomic-rdoc/files/lib/facet/integer/factorial_rb.html +101 -0
  491. data/doc/atomic-rdoc/files/lib/facet/integer/odd%3F_rb.html +101 -0
  492. data/doc/atomic-rdoc/files/lib/facet/integer/times_collect_rb.html +101 -0
  493. data/doc/atomic-rdoc/files/lib/facet/kernel/call_stack_rb.html +101 -0
  494. data/doc/atomic-rdoc/files/lib/facet/kernel/called_rb.html +101 -0
  495. data/doc/{files → atomic-rdoc/files}/lib/facet/kernel/demo_rb.html +0 -0
  496. data/doc/{files → atomic-rdoc/files}/lib/facet/kernel/fn_rb.html +0 -0
  497. data/doc/{files → atomic-rdoc/files}/lib/facet/kernel/get_by_id_rb.html +0 -0
  498. data/doc/{files → atomic-rdoc/files}/lib/facet/kernel/here_rb.html +0 -0
  499. data/doc/atomic-rdoc/files/lib/facet/kernel/maybe_rb.html +101 -0
  500. data/doc/atomic-rdoc/files/lib/facet/kernel/method_name_rb.html +101 -0
  501. data/doc/atomic-rdoc/files/lib/facet/kernel/require_all_rb.html +101 -0
  502. data/doc/atomic-rdoc/files/lib/facet/kernel/require_facet_rb.html +108 -0
  503. data/doc/atomic-rdoc/files/lib/facet/kernel/require_local_rb.html +101 -0
  504. data/doc/atomic-rdoc/files/lib/facet/kernel/resc_rb.html +101 -0
  505. data/doc/atomic-rdoc/files/lib/facet/kernel/returning_rb.html +101 -0
  506. data/doc/atomic-rdoc/files/lib/facet/kernel/warn_with_line_rb.html +101 -0
  507. data/doc/atomic-rdoc/files/lib/facet/matchdata/match_rb.html +101 -0
  508. data/doc/atomic-rdoc/files/lib/facet/matchdata/matchset_rb.html +108 -0
  509. data/doc/atomic-rdoc/files/lib/facet/matchdata/matchtree_rb.html +101 -0
  510. data/doc/{files → atomic-rdoc/files}/lib/facet/module/abstract_rb.html +0 -0
  511. data/doc/{files → atomic-rdoc/files}/lib/facet/module/alias_module_function_rb.html +0 -0
  512. data/doc/atomic-rdoc/files/lib/facet/module/attr_accessor_rb.html +101 -0
  513. data/doc/atomic-rdoc/files/lib/facet/module/attr_checker_rb.html +101 -0
  514. data/doc/atomic-rdoc/files/lib/facet/module/attr_rb.html +101 -0
  515. data/doc/atomic-rdoc/files/lib/facet/module/attr_reader_rb.html +101 -0
  516. data/doc/atomic-rdoc/files/lib/facet/module/attr_setter_rb.html +101 -0
  517. data/doc/atomic-rdoc/files/lib/facet/module/attr_writer_rb.html +101 -0
  518. data/doc/{files → atomic-rdoc/files}/lib/facet/module/basename_rb.html +0 -0
  519. data/doc/{files → atomic-rdoc/files}/lib/facet/module/by_name_rb.html +0 -0
  520. data/doc/atomic-rdoc/files/lib/facet/module/include_as_rb.html +108 -0
  521. data/doc/atomic-rdoc/files/lib/facet/module/initializer_rb.html +101 -0
  522. data/doc/atomic-rdoc/files/lib/facet/module/key_attributes_rb.html +101 -0
  523. data/doc/atomic-rdoc/files/lib/facet/module/memoize_rb.html +130 -0
  524. data/doc/{files → atomic-rdoc/files}/lib/facet/module/memoize_rb.src/M000002.html +0 -0
  525. data/doc/atomic-rdoc/files/lib/facet/module/methods_rb.html +101 -0
  526. data/doc/atomic-rdoc/files/lib/facet/module/redef_rb.html +108 -0
  527. data/doc/atomic-rdoc/files/lib/facet/module/redefine_method_rb.html +101 -0
  528. data/doc/{files → atomic-rdoc/files}/lib/facet/module/redirect_rb.html +0 -0
  529. data/doc/atomic-rdoc/files/lib/facet/module/sort_attributes_rb.html +101 -0
  530. data/doc/atomic-rdoc/files/lib/facet/module/wrap_method_rb.html +101 -0
  531. data/doc/atomic-rdoc/files/lib/facet/module/wrap_rb.html +108 -0
  532. data/doc/atomic-rdoc/files/lib/facet/nil/%5B%5D_rb.html +101 -0
  533. data/doc/atomic-rdoc/files/lib/facet/nil/blank%3F_rb.html +101 -0
  534. data/doc/atomic-rdoc/files/lib/facet/nil/empty%3F_rb.html +101 -0
  535. data/doc/atomic-rdoc/files/lib/facet/nil/include%3F_rb.html +101 -0
  536. data/doc/atomic-rdoc/files/lib/facet/nil/length_rb.html +101 -0
  537. data/doc/atomic-rdoc/files/lib/facet/nil/size_rb.html +101 -0
  538. data/doc/{files → atomic-rdoc/files}/lib/facet/nil/to_f_rb.html +0 -0
  539. data/doc/{files → atomic-rdoc/files}/lib/facet/nil/to_h_rb.html +0 -0
  540. data/doc/atomic-rdoc/files/lib/facet/numeric/at_least_rb.html +101 -0
  541. data/doc/atomic-rdoc/files/lib/facet/numeric/at_most_rb.html +101 -0
  542. data/doc/atomic-rdoc/files/lib/facet/numeric/bound_by_rb.html +101 -0
  543. data/doc/atomic-rdoc/files/lib/facet/numeric/cmp_rb.html +101 -0
  544. data/doc/{files → atomic-rdoc/files}/lib/facet/numeric/distance_rb.html +0 -0
  545. data/doc/atomic-rdoc/files/lib/facet/numeric/octet_units_rb.html +108 -0
  546. data/doc/atomic-rdoc/files/lib/facet/numeric/pred_rb.html +101 -0
  547. data/doc/atomic-rdoc/files/lib/facet/numeric/succ_rb.html +101 -0
  548. data/doc/{files → atomic-rdoc/files}/lib/facet/numeric/to_b_rb.html +0 -0
  549. data/doc/atomic-rdoc/files/lib/facet/object/__class___rb.html +101 -0
  550. data/doc/{files → atomic-rdoc/files}/lib/facet/object/assign_with_rb.html +0 -0
  551. data/doc/atomic-rdoc/files/lib/facet/object/bool_rb.html +108 -0
  552. data/doc/atomic-rdoc/files/lib/facet/object/boolean_rb.html +101 -0
  553. data/doc/atomic-rdoc/files/lib/facet/object/constant_rb.html +101 -0
  554. data/doc/{files → atomic-rdoc/files}/lib/facet/object/copy_rb.html +0 -0
  555. data/doc/atomic-rdoc/files/lib/facet/object/in%3F_rb.html +101 -0
  556. data/doc/atomic-rdoc/files/lib/facet/object/new_rb.html +101 -0
  557. data/doc/atomic-rdoc/files/lib/facet/object/object_class_rb.html +101 -0
  558. data/doc/{files → atomic-rdoc/files}/lib/facet/object/object_hexid_rb.html +0 -0
  559. data/doc/atomic-rdoc/files/lib/facet/object/set_from_rb.html +101 -0
  560. data/doc/atomic-rdoc/files/lib/facet/object/set_with_rb.html +101 -0
  561. data/doc/atomic-rdoc/files/lib/facet/object/singleton_class_rb.html +101 -0
  562. data/doc/atomic-rdoc/files/lib/facet/object/special_class_rb.html +101 -0
  563. data/doc/atomic-rdoc/files/lib/facet/object/super_method_rb.html +101 -0
  564. data/doc/atomic-rdoc/files/lib/facet/object/super_send_rb.html +101 -0
  565. data/doc/atomic-rdoc/files/lib/facet/object/supers_rb.html +109 -0
  566. data/doc/atomic-rdoc/files/lib/facet/object/to_b_rb.html +101 -0
  567. data/doc/atomic-rdoc/files/lib/facet/object/with_accessor_rb.html +101 -0
  568. data/doc/atomic-rdoc/files/lib/facet/object/with_reader_rb.html +101 -0
  569. data/doc/atomic-rdoc/files/lib/facet/object/with_writer_rb.html +101 -0
  570. data/doc/atomic-rdoc/files/lib/facet/ostruct/%5B%5D%3D_rb.html +108 -0
  571. data/doc/atomic-rdoc/files/lib/facet/ostruct/%5B%5D_rb.html +108 -0
  572. data/doc/{files → atomic-rdoc/files}/lib/facet/ostruct/ostruct_update_rb.html +0 -0
  573. data/doc/atomic-rdoc/files/lib/facet/proc/%2A_rb.html +108 -0
  574. data/doc/atomic-rdoc/files/lib/facet/proc/compose_rb.html +101 -0
  575. data/doc/atomic-rdoc/files/lib/facet/proc/to_method_rb.html +138 -0
  576. data/doc/atomic-rdoc/files/lib/facet/proc/to_method_rb.src/M000001.html +28 -0
  577. data/doc/atomic-rdoc/files/lib/facet/range/to_r_rb.html +101 -0
  578. data/doc/atomic-rdoc/files/lib/facet/range/to_range_rb.html +101 -0
  579. data/doc/{files → atomic-rdoc/files}/lib/facet/range/umbrella_rb.html +0 -0
  580. data/doc/atomic-rdoc/files/lib/facet/range/within%3F_rb.html +108 -0
  581. data/doc/{files → atomic-rdoc/files}/lib/facet/regexp/arity_rb.html +0 -0
  582. data/doc/atomic-rdoc/files/lib/facet/regexp/to_re_rb.html +101 -0
  583. data/doc/atomic-rdoc/files/lib/facet/regexp/to_regexp_rb.html +101 -0
  584. data/doc/atomic-rdoc/files/lib/facet/string/at_rand%21_rb.html +107 -0
  585. data/doc/atomic-rdoc/files/lib/facet/string/at_rand_rb.html +108 -0
  586. data/doc/atomic-rdoc/files/lib/facet/string/blank%3F_rb.html +101 -0
  587. data/doc/atomic-rdoc/files/lib/facet/string/braket%21_rb.html +108 -0
  588. data/doc/atomic-rdoc/files/lib/facet/string/braket_rb.html +101 -0
  589. data/doc/atomic-rdoc/files/lib/facet/string/camelcase_rb.html +101 -0
  590. data/doc/atomic-rdoc/files/lib/facet/string/camelize_rb.html +101 -0
  591. data/doc/atomic-rdoc/files/lib/facet/string/capitalized%3F_rb.html +101 -0
  592. data/doc/{files → atomic-rdoc/files}/lib/facet/string/center_lines_rb.html +0 -0
  593. data/doc/atomic-rdoc/files/lib/facet/string/chars_rb.html +101 -0
  594. data/doc/atomic-rdoc/files/lib/facet/string/class_name_rb.html +109 -0
  595. data/doc/{files → atomic-rdoc/files}/lib/facet/string/clump_rb.html +0 -0
  596. data/doc/{files → atomic-rdoc/files}/lib/facet/string/cmp_rb.html +0 -0
  597. data/doc/atomic-rdoc/files/lib/facet/string/demodulize_rb.html +101 -0
  598. data/doc/atomic-rdoc/files/lib/facet/string/downcase%3F_rb.html +101 -0
  599. data/doc/atomic-rdoc/files/lib/facet/string/dresner_rb.html +101 -0
  600. data/doc/atomic-rdoc/files/lib/facet/string/each_char_rb.html +101 -0
  601. data/doc/{files → atomic-rdoc/files}/lib/facet/string/each_word_rb.html +0 -0
  602. data/doc/atomic-rdoc/files/lib/facet/string/first%3D_rb.html +101 -0
  603. data/doc/atomic-rdoc/files/lib/facet/string/first_char_rb.html +108 -0
  604. data/doc/atomic-rdoc/files/lib/facet/string/first_rb.html +108 -0
  605. data/doc/atomic-rdoc/files/lib/facet/string/foreign_key_rb.html +109 -0
  606. data/doc/atomic-rdoc/files/lib/facet/string/fuzzy_match_rb.html +101 -0
  607. data/doc/atomic-rdoc/files/lib/facet/string/humanize_rb.html +101 -0
  608. data/doc/atomic-rdoc/files/lib/facet/string/indent_rb.html +101 -0
  609. data/doc/{files → atomic-rdoc/files}/lib/facet/string/index_all_rb.html +0 -0
  610. data/doc/atomic-rdoc/files/lib/facet/string/last%3D_rb.html +101 -0
  611. data/doc/atomic-rdoc/files/lib/facet/string/last_char_rb.html +108 -0
  612. data/doc/atomic-rdoc/files/lib/facet/string/last_rb.html +108 -0
  613. data/doc/{files → atomic-rdoc/files}/lib/facet/string/line_to_char_map_rb.html +0 -0
  614. data/doc/{files → atomic-rdoc/files}/lib/facet/string/line_wrap_rb.html +0 -0
  615. data/doc/atomic-rdoc/files/lib/facet/string/lowercase%3F_rb.html +108 -0
  616. data/doc/{files → atomic-rdoc/files}/lib/facet/string/margin_rb.html +0 -0
  617. data/doc/{files → atomic-rdoc/files}/lib/facet/string/mscan_rb.html +0 -0
  618. data/doc/{files → atomic-rdoc/files}/lib/facet/string/natcmp_rb.html +0 -0
  619. data/doc/atomic-rdoc/files/lib/facet/string/plural_rb.html +101 -0
  620. data/doc/atomic-rdoc/files/lib/facet/string/pluralize_rb.html +108 -0
  621. data/doc/atomic-rdoc/files/lib/facet/string/rand_byte%21_rb.html +108 -0
  622. data/doc/atomic-rdoc/files/lib/facet/string/rand_byte_rb.html +108 -0
  623. data/doc/atomic-rdoc/files/lib/facet/string/rand_char%21_rb.html +108 -0
  624. data/doc/atomic-rdoc/files/lib/facet/string/rand_char_rb.html +108 -0
  625. data/doc/atomic-rdoc/files/lib/facet/string/rand_index_rb.html +101 -0
  626. data/doc/atomic-rdoc/files/lib/facet/string/rand_letter_rb.html +101 -0
  627. data/doc/atomic-rdoc/files/lib/facet/string/range_all_rb.html +101 -0
  628. data/doc/atomic-rdoc/files/lib/facet/string/range_rb.html +101 -0
  629. data/doc/{files → atomic-rdoc/files}/lib/facet/string/shatter_rb.html +0 -0
  630. data/doc/atomic-rdoc/files/lib/facet/string/shuffle%21_rb.html +108 -0
  631. data/doc/atomic-rdoc/files/lib/facet/string/shuffle_chars%21_rb.html +108 -0
  632. data/doc/atomic-rdoc/files/lib/facet/string/shuffle_chars_rb.html +108 -0
  633. data/doc/atomic-rdoc/files/lib/facet/string/shuffle_rb.html +108 -0
  634. data/doc/atomic-rdoc/files/lib/facet/string/singular_rb.html +101 -0
  635. data/doc/atomic-rdoc/files/lib/facet/string/singularize_rb.html +108 -0
  636. data/doc/atomic-rdoc/files/lib/facet/string/succ_rb.html +101 -0
  637. data/doc/atomic-rdoc/files/lib/facet/string/tab_rb.html +101 -0
  638. data/doc/atomic-rdoc/files/lib/facet/string/table_name_rb.html +109 -0
  639. data/doc/atomic-rdoc/files/lib/facet/string/tabto_rb.html +108 -0
  640. data/doc/{files → atomic-rdoc/files}/lib/facet/string/to_b_rb.html +0 -0
  641. data/doc/{files → atomic-rdoc/files}/lib/facet/string/to_const_rb.html +0 -0
  642. data/doc/{files → atomic-rdoc/files}/lib/facet/string/to_proc_rb.html +0 -0
  643. data/doc/{files → atomic-rdoc/files}/lib/facet/string/to_re_rb.html +0 -0
  644. data/doc/atomic-rdoc/files/lib/facet/string/top_rb.html +101 -0
  645. data/doc/atomic-rdoc/files/lib/facet/string/underscore_rb.html +101 -0
  646. data/doc/atomic-rdoc/files/lib/facet/string/unix_crypt%21_rb.html +108 -0
  647. data/doc/atomic-rdoc/files/lib/facet/string/unix_crypt_rb.html +108 -0
  648. data/doc/{files → atomic-rdoc/files}/lib/facet/string/unpack_rb.html +0 -0
  649. data/doc/atomic-rdoc/files/lib/facet/string/upcase%3F_rb.html +101 -0
  650. data/doc/atomic-rdoc/files/lib/facet/string/uppercase%3F_rb.html +108 -0
  651. data/doc/atomic-rdoc/files/lib/facet/string/word_filter_rb.html +101 -0
  652. data/doc/atomic-rdoc/files/lib/facet/string/word_wrap%21_rb.html +101 -0
  653. data/doc/atomic-rdoc/files/lib/facet/string/word_wrap_rb.html +108 -0
  654. data/doc/atomic-rdoc/files/lib/facet/symbol/%7E_rb.html +108 -0
  655. data/doc/atomic-rdoc/files/lib/facet/symbol/camelcase_rb.html +101 -0
  656. data/doc/{files → atomic-rdoc/files}/lib/facet/symbol/gen_rb.html +0 -0
  657. data/doc/atomic-rdoc/files/lib/facet/symbol/not%3F_rb.html +108 -0
  658. data/doc/{files → atomic-rdoc/files}/lib/facet/symbol/pad_rb.html +0 -0
  659. data/doc/{files → atomic-rdoc/files}/lib/facet/symbol/succ_rb.html +0 -0
  660. data/doc/{files → atomic-rdoc/files}/lib/facet/symbol/to_const_rb.html +0 -0
  661. data/doc/{files → atomic-rdoc/files}/lib/facet/symbol/to_proc_rb.html +0 -0
  662. data/doc/{files → atomic-rdoc/files}/lib/facet/symbol/to_str_rb.html +0 -0
  663. data/doc/atomic-rdoc/files/lib/facet/time/change_rb.html +101 -0
  664. data/doc/atomic-rdoc/files/lib/facet/time/custom_format_rb.html +108 -0
  665. data/doc/atomic-rdoc/files/lib/facet/time/elapse_rb.html +101 -0
  666. data/doc/atomic-rdoc/files/lib/facet/time/stamp_rb.html +101 -0
  667. data/doc/atomic-rdoc/files/lib/facet/time/to_date_rb.html +101 -0
  668. data/doc/atomic-rdoc/files/lib/facet/time/to_s_rb.html +108 -0
  669. data/doc/atomic-rdoc/files/lib/facet/time/to_time_rb.html +101 -0
  670. data/doc/atomic-rdoc/fr_class_index.html +58 -0
  671. data/doc/atomic-rdoc/fr_file_index.html +331 -0
  672. data/doc/atomic-rdoc/fr_method_index.html +370 -0
  673. data/doc/{index.html → atomic-rdoc/index.html} +0 -0
  674. data/doc/{rdoc-style.css → atomic-rdoc/rdoc-style.css} +0 -0
  675. data/doc/main-rdoc/classes/Array.html +154 -0
  676. data/doc/main-rdoc/classes/Array.src/M000142.html +18 -0
  677. data/doc/main-rdoc/classes/Array.src/M000143.html +18 -0
  678. data/doc/main-rdoc/classes/BBCode.html +351 -0
  679. data/doc/main-rdoc/classes/BBCode.src/M000339.html +19 -0
  680. data/doc/main-rdoc/classes/BBCode.src/M000340.html +19 -0
  681. data/doc/main-rdoc/classes/BBCode.src/M000341.html +57 -0
  682. data/doc/main-rdoc/classes/BBCode.src/M000342.html +60 -0
  683. data/doc/main-rdoc/classes/BBCode.src/M000343.html +69 -0
  684. data/doc/main-rdoc/classes/BBCode.src/M000344.html +74 -0
  685. data/doc/main-rdoc/classes/BBCode.src/M000345.html +21 -0
  686. data/doc/main-rdoc/classes/BBCode.src/M000346.html +21 -0
  687. data/doc/main-rdoc/classes/BinaryReader.html +496 -0
  688. data/doc/main-rdoc/classes/BinaryReader.src/M000586.html +18 -0
  689. data/doc/main-rdoc/classes/BinaryReader.src/M000587.html +18 -0
  690. data/doc/main-rdoc/classes/BinaryReader.src/M000590.html +18 -0
  691. data/doc/main-rdoc/classes/BinaryReader.src/M000591.html +18 -0
  692. data/doc/main-rdoc/classes/BinaryReader.src/M000592.html +18 -0
  693. data/doc/main-rdoc/classes/BinaryReader.src/M000593.html +18 -0
  694. data/doc/main-rdoc/classes/BinaryReader.src/M000594.html +18 -0
  695. data/doc/main-rdoc/classes/BinaryReader.src/M000595.html +18 -0
  696. data/doc/main-rdoc/classes/BinaryReader.src/M000596.html +19 -0
  697. data/doc/main-rdoc/classes/BinaryReader.src/M000597.html +19 -0
  698. data/doc/main-rdoc/classes/BinaryReader.src/M000598.html +18 -0
  699. data/doc/main-rdoc/classes/BinaryReader.src/M000599.html +18 -0
  700. data/doc/main-rdoc/classes/BinaryReader.src/M000600.html +18 -0
  701. data/doc/main-rdoc/classes/BinaryReader.src/M000601.html +18 -0
  702. data/doc/main-rdoc/classes/BinaryReader.src/M000602.html +19 -0
  703. data/doc/main-rdoc/classes/BinaryReader.src/M000603.html +19 -0
  704. data/doc/main-rdoc/classes/BinaryReader.src/M000605.html +22 -0
  705. data/doc/main-rdoc/classes/BinaryReader.src/M000606.html +20 -0
  706. data/doc/main-rdoc/classes/BinaryReader.src/M000607.html +18 -0
  707. data/doc/main-rdoc/classes/BinaryReader.src/M000608.html +20 -0
  708. data/doc/main-rdoc/classes/Binding.html +214 -0
  709. data/doc/main-rdoc/classes/Binding.src/M000396.html +61 -0
  710. data/doc/main-rdoc/classes/Binding.src/M000397.html +27 -0
  711. data/doc/main-rdoc/classes/Binding.src/M000398.html +22 -0
  712. data/doc/main-rdoc/classes/ByteOrder.html +269 -0
  713. data/doc/main-rdoc/classes/ByteOrder.src/M000630.html +22 -0
  714. data/doc/main-rdoc/classes/ByteOrder.src/M000632.html +18 -0
  715. data/doc/main-rdoc/classes/ByteOrder.src/M000633.html +18 -0
  716. data/doc/main-rdoc/classes/CGIExtra.html +252 -0
  717. data/doc/main-rdoc/classes/CGIExtra.src/M000441.html +19 -0
  718. data/doc/main-rdoc/classes/CGIExtra.src/M000442.html +19 -0
  719. data/doc/main-rdoc/classes/CGIExtra.src/M000443.html +19 -0
  720. data/doc/main-rdoc/classes/CGIExtra.src/M000444.html +20 -0
  721. data/doc/main-rdoc/classes/CGIExtra.src/M000445.html +18 -0
  722. data/doc/main-rdoc/classes/CGIExtra.src/M000446.html +18 -0
  723. data/doc/main-rdoc/classes/CGIExtra.src/M000447.html +28 -0
  724. data/doc/main-rdoc/classes/CONSTANT.html +732 -0
  725. data/doc/main-rdoc/classes/CONSTANT/CGS.html +609 -0
  726. data/doc/main-rdoc/classes/Class.html +178 -0
  727. data/doc/main-rdoc/classes/Class.src/M000235.html +20 -0
  728. data/doc/main-rdoc/classes/Continuation.html +113 -0
  729. data/doc/main-rdoc/classes/Coroutine.html +310 -0
  730. data/doc/main-rdoc/classes/Coroutine.src/M000097.html +23 -0
  731. data/doc/main-rdoc/classes/Coroutine.src/M000098.html +20 -0
  732. data/doc/main-rdoc/classes/Coroutine.src/M000099.html +18 -0
  733. data/doc/main-rdoc/classes/Coroutine.src/M000100.html +20 -0
  734. data/doc/main-rdoc/classes/Coroutine.src/M000101.html +19 -0
  735. data/doc/main-rdoc/classes/Coroutine.src/M000102.html +18 -0
  736. data/doc/main-rdoc/classes/Coroutine.src/M000103.html +18 -0
  737. data/doc/main-rdoc/classes/CountingSemaphore.html +275 -0
  738. data/doc/main-rdoc/classes/CountingSemaphore.src/M000425.html +19 -0
  739. data/doc/main-rdoc/classes/CountingSemaphore.src/M000426.html +25 -0
  740. data/doc/main-rdoc/classes/CountingSemaphore.src/M000427.html +29 -0
  741. data/doc/main-rdoc/classes/CountingSemaphore.src/M000432.html +21 -0
  742. data/doc/main-rdoc/classes/CrossCase.html +378 -0
  743. data/doc/main-rdoc/classes/CrossCase.src/M000669.html +18 -0
  744. data/doc/main-rdoc/classes/CrossCase.src/M000670.html +24 -0
  745. data/doc/main-rdoc/classes/CrossCase.src/M000671.html +48 -0
  746. data/doc/main-rdoc/classes/CrossCase.src/M000672.html +25 -0
  747. data/doc/main-rdoc/classes/CrossCase.src/M000673.html +25 -0
  748. data/doc/main-rdoc/classes/CrossCase.src/M000674.html +20 -0
  749. data/doc/main-rdoc/classes/CrossCase.src/M000675.html +23 -0
  750. data/doc/main-rdoc/classes/CrossCase.src/M000676.html +20 -0
  751. data/doc/main-rdoc/classes/CrossCase.src/M000677.html +20 -0
  752. data/doc/main-rdoc/classes/CrossCase.src/M000678.html +22 -0
  753. data/doc/main-rdoc/classes/CrossCase.src/M000679.html +37 -0
  754. data/doc/main-rdoc/classes/EnumerableArgs.html +435 -0
  755. data/doc/main-rdoc/classes/EnumerableArgs.src/M000609.html +20 -0
  756. data/doc/main-rdoc/classes/EnumerableArgs.src/M000611.html +19 -0
  757. data/doc/main-rdoc/classes/EnumerableArgs.src/M000613.html +20 -0
  758. data/doc/main-rdoc/classes/EnumerableArgs.src/M000615.html +27 -0
  759. data/doc/main-rdoc/classes/EnumerableArgs.src/M000617.html +20 -0
  760. data/doc/main-rdoc/classes/EnumerableArgs.src/M000619.html +20 -0
  761. data/doc/main-rdoc/classes/EnumerableArgs.src/M000620.html +19 -0
  762. data/doc/main-rdoc/classes/EnumerableArgs.src/M000622.html +18 -0
  763. data/doc/main-rdoc/classes/EnumerableArgs.src/M000623.html +18 -0
  764. data/doc/main-rdoc/classes/EnumerableArgs.src/M000624.html +20 -0
  765. data/doc/main-rdoc/classes/EnumerableArgs.src/M000625.html +18 -0
  766. data/doc/main-rdoc/classes/Expect.html +329 -0
  767. data/doc/main-rdoc/classes/Expect.src/M000144.html +21 -0
  768. data/doc/main-rdoc/classes/Expect.src/M000145.html +20 -0
  769. data/doc/main-rdoc/classes/Expect.src/M000146.html +20 -0
  770. data/doc/main-rdoc/classes/Expect.src/M000147.html +18 -0
  771. data/doc/main-rdoc/classes/Expect.src/M000148.html +26 -0
  772. data/doc/main-rdoc/classes/Expect.src/M000149.html +18 -0
  773. data/doc/main-rdoc/classes/Expect.src/M000150.html +39 -0
  774. data/doc/main-rdoc/classes/Expect/DefaultChain.html +113 -0
  775. data/doc/main-rdoc/classes/Expect/SeparatedPattern.html +189 -0
  776. data/doc/main-rdoc/classes/Expect/SeparatedPattern.src/M000153.html +19 -0
  777. data/doc/main-rdoc/classes/Expect/SeparatedPattern.src/M000154.html +33 -0
  778. data/doc/main-rdoc/classes/Expect/Timeout.html +155 -0
  779. data/doc/main-rdoc/classes/Expect/Timeout.src/M000151.html +21 -0
  780. data/doc/main-rdoc/classes/Expect/UnmatchedMessage.html +150 -0
  781. data/doc/main-rdoc/classes/Expect/UnmatchedMessage.src/M000152.html +19 -0
  782. data/doc/main-rdoc/classes/FileList.html +594 -0
  783. data/doc/main-rdoc/classes/FileList.src/M000370.html +24 -0
  784. data/doc/main-rdoc/classes/FileList.src/M000371.html +21 -0
  785. data/doc/main-rdoc/classes/FileList.src/M000373.html +23 -0
  786. data/doc/main-rdoc/classes/FileList.src/M000374.html +19 -0
  787. data/doc/main-rdoc/classes/FileList.src/M000375.html +22 -0
  788. data/doc/main-rdoc/classes/FileList.src/M000376.html +34 -0
  789. data/doc/main-rdoc/classes/FileList.src/M000377.html +27 -0
  790. data/doc/main-rdoc/classes/FileList.src/M000378.html +29 -0
  791. data/doc/main-rdoc/classes/FileList.src/M000379.html +18 -0
  792. data/doc/main-rdoc/classes/FileList.src/M000380.html +18 -0
  793. data/doc/main-rdoc/classes/FileList.src/M000381.html +19 -0
  794. data/doc/main-rdoc/classes/FileList.src/M000382.html +19 -0
  795. data/doc/main-rdoc/classes/FileList.src/M000383.html +19 -0
  796. data/doc/main-rdoc/classes/FileList.src/M000384.html +18 -0
  797. data/doc/main-rdoc/classes/FileList.src/M000385.html +20 -0
  798. data/doc/main-rdoc/classes/FileList.src/M000386.html +19 -0
  799. data/doc/main-rdoc/classes/FileList.src/M000387.html +18 -0
  800. data/doc/main-rdoc/classes/FileList.src/M000388.html +18 -0
  801. data/doc/main-rdoc/classes/FileList.src/M000389.html +18 -0
  802. data/doc/main-rdoc/classes/FloatString.html +378 -0
  803. data/doc/main-rdoc/classes/FloatString.src/M000104.html +24 -0
  804. data/doc/main-rdoc/classes/FloatString.src/M000105.html +18 -0
  805. data/doc/main-rdoc/classes/FloatString.src/M000106.html +18 -0
  806. data/doc/main-rdoc/classes/FloatString.src/M000108.html +18 -0
  807. data/doc/main-rdoc/classes/FloatString.src/M000109.html +18 -0
  808. data/doc/main-rdoc/classes/FloatString.src/M000110.html +23 -0
  809. data/doc/main-rdoc/classes/FloatString.src/M000111.html +23 -0
  810. data/doc/main-rdoc/classes/FloatString.src/M000112.html +23 -0
  811. data/doc/main-rdoc/classes/FloatString.src/M000113.html +23 -0
  812. data/doc/main-rdoc/classes/FloatString.src/M000114.html +27 -0
  813. data/doc/main-rdoc/classes/FloatString.src/M000115.html +18 -0
  814. data/doc/main-rdoc/classes/FloatString.src/M000116.html +23 -0
  815. data/doc/main-rdoc/classes/FloatString.src/M000117.html +18 -0
  816. data/doc/main-rdoc/classes/FloatString.src/M000118.html +18 -0
  817. data/doc/main-rdoc/classes/Functor.html +193 -0
  818. data/doc/main-rdoc/classes/Functor.src/M000368.html +18 -0
  819. data/doc/main-rdoc/classes/Functor.src/M000369.html +18 -0
  820. data/doc/main-rdoc/classes/HArray.html +1130 -0
  821. data/doc/main-rdoc/classes/HArray.src/M000236.html +20 -0
  822. data/doc/main-rdoc/classes/HArray.src/M000237.html +20 -0
  823. data/doc/main-rdoc/classes/HArray.src/M000238.html +20 -0
  824. data/doc/main-rdoc/classes/HArray.src/M000239.html +24 -0
  825. data/doc/main-rdoc/classes/HArray.src/M000240.html +24 -0
  826. data/doc/main-rdoc/classes/HArray.src/M000241.html +20 -0
  827. data/doc/main-rdoc/classes/HArray.src/M000242.html +21 -0
  828. data/doc/main-rdoc/classes/HArray.src/M000243.html +19 -0
  829. data/doc/main-rdoc/classes/HArray.src/M000244.html +22 -0
  830. data/doc/main-rdoc/classes/HArray.src/M000245.html +18 -0
  831. data/doc/main-rdoc/classes/HArray.src/M000246.html +25 -0
  832. data/doc/main-rdoc/classes/HArray.src/M000247.html +37 -0
  833. data/doc/main-rdoc/classes/HArray.src/M000248.html +20 -0
  834. data/doc/main-rdoc/classes/HArray.src/M000249.html +19 -0
  835. data/doc/main-rdoc/classes/HArray.src/M000250.html +21 -0
  836. data/doc/main-rdoc/classes/HArray.src/M000251.html +20 -0
  837. data/doc/main-rdoc/classes/HArray.src/M000252.html +20 -0
  838. data/doc/main-rdoc/classes/HArray.src/M000253.html +25 -0
  839. data/doc/main-rdoc/classes/HArray.src/M000254.html +29 -0
  840. data/doc/main-rdoc/classes/HArray.src/M000255.html +19 -0
  841. data/doc/main-rdoc/classes/HArray.src/M000256.html +26 -0
  842. data/doc/main-rdoc/classes/HArray.src/M000257.html +25 -0
  843. data/doc/main-rdoc/classes/HArray.src/M000258.html +25 -0
  844. data/doc/main-rdoc/classes/HArray.src/M000259.html +19 -0
  845. data/doc/main-rdoc/classes/HArray.src/M000260.html +18 -0
  846. data/doc/main-rdoc/classes/HArray.src/M000261.html +18 -0
  847. data/doc/main-rdoc/classes/HArray.src/M000262.html +20 -0
  848. data/doc/main-rdoc/classes/HArray.src/M000263.html +26 -0
  849. data/doc/main-rdoc/classes/HArray.src/M000264.html +19 -0
  850. data/doc/main-rdoc/classes/HArray.src/M000265.html +27 -0
  851. data/doc/main-rdoc/classes/HArray.src/M000266.html +19 -0
  852. data/doc/main-rdoc/classes/HArray.src/M000267.html +18 -0
  853. data/doc/main-rdoc/classes/HArray.src/M000268.html +20 -0
  854. data/doc/main-rdoc/classes/HArray.src/M000269.html +18 -0
  855. data/doc/main-rdoc/classes/HArray.src/M000271.html +20 -0
  856. data/doc/main-rdoc/classes/HArray.src/M000272.html +18 -0
  857. data/doc/main-rdoc/classes/HArray.src/M000273.html +18 -0
  858. data/doc/main-rdoc/classes/HArray.src/M000274.html +18 -0
  859. data/doc/main-rdoc/classes/HArray.src/M000275.html +19 -0
  860. data/doc/main-rdoc/classes/HArray.src/M000276.html +27 -0
  861. data/doc/main-rdoc/classes/HArray.src/M000277.html +18 -0
  862. data/doc/main-rdoc/classes/HArray.src/M000278.html +21 -0
  863. data/doc/main-rdoc/classes/HArray.src/M000279.html +20 -0
  864. data/doc/main-rdoc/classes/HArray.src/M000280.html +24 -0
  865. data/doc/main-rdoc/classes/HArray.src/M000281.html +22 -0
  866. data/doc/main-rdoc/classes/HArray.src/M000282.html +23 -0
  867. data/doc/main-rdoc/classes/HArray.src/M000283.html +22 -0
  868. data/doc/main-rdoc/classes/HArray.src/M000284.html +18 -0
  869. data/doc/main-rdoc/classes/HArray.src/M000285.html +20 -0
  870. data/doc/main-rdoc/classes/HArray.src/M000286.html +20 -0
  871. data/doc/main-rdoc/classes/HArray.src/M000287.html +39 -0
  872. data/doc/main-rdoc/classes/HArray.src/M000288.html +19 -0
  873. data/doc/main-rdoc/classes/HArray.src/M000289.html +20 -0
  874. data/doc/main-rdoc/classes/HArray.src/M000290.html +18 -0
  875. data/doc/main-rdoc/classes/HArray.src/M000291.html +20 -0
  876. data/doc/main-rdoc/classes/HArray.src/M000292.html +18 -0
  877. data/doc/main-rdoc/classes/HArray.src/M000293.html +22 -0
  878. data/doc/main-rdoc/classes/HArray.src/M000294.html +25 -0
  879. data/doc/main-rdoc/classes/HArray.src/M000295.html +25 -0
  880. data/doc/main-rdoc/classes/HArray.src/M000296.html +20 -0
  881. data/doc/main-rdoc/classes/Heap.html +505 -0
  882. data/doc/main-rdoc/classes/Heap.src/M000025.html +16 -0
  883. data/doc/main-rdoc/classes/Heap.src/M000026.html +19 -0
  884. data/doc/main-rdoc/classes/Heap.src/M000027.html +18 -0
  885. data/doc/main-rdoc/classes/Heap.src/M000028.html +18 -0
  886. data/doc/main-rdoc/classes/Heap.src/M000029.html +23 -0
  887. data/doc/main-rdoc/classes/Heap.src/M000030.html +23 -0
  888. data/doc/main-rdoc/classes/Heap.src/M000031.html +19 -0
  889. data/doc/main-rdoc/classes/Heap.src/M000032.html +22 -0
  890. data/doc/main-rdoc/classes/Heap.src/M000033.html +23 -0
  891. data/doc/main-rdoc/classes/Heap.src/M000034.html +18 -0
  892. data/doc/main-rdoc/classes/Heap.src/M000035.html +18 -0
  893. data/doc/main-rdoc/classes/Heap.src/M000036.html +18 -0
  894. data/doc/main-rdoc/classes/Heap.src/M000037.html +18 -0
  895. data/doc/main-rdoc/classes/Heap.src/M000038.html +18 -0
  896. data/doc/main-rdoc/classes/Heap.src/M000039.html +25 -0
  897. data/doc/main-rdoc/classes/Heap.src/M000040.html +18 -0
  898. data/doc/main-rdoc/classes/Heap.src/M000041.html +18 -0
  899. data/doc/main-rdoc/classes/Heap/EmptyHeapException.html +111 -0
  900. data/doc/main-rdoc/classes/Heap/Max.html +162 -0
  901. data/doc/main-rdoc/classes/Heap/Max.src/M000042.html +16 -0
  902. data/doc/main-rdoc/classes/Heap/Max.src/M000043.html +16 -0
  903. data/doc/main-rdoc/classes/Heap/Min.html +162 -0
  904. data/doc/main-rdoc/classes/Heap/Min.src/M000044.html +16 -0
  905. data/doc/main-rdoc/classes/Heap/Min.src/M000045.html +16 -0
  906. data/doc/main-rdoc/classes/IO.html +108 -0
  907. data/doc/main-rdoc/classes/IO/Reactor.html +573 -0
  908. data/doc/main-rdoc/classes/IO/Reactor.src/M000637.html +25 -0
  909. data/doc/main-rdoc/classes/IO/Reactor.src/M000638.html +29 -0
  910. data/doc/main-rdoc/classes/IO/Reactor.src/M000640.html +18 -0
  911. data/doc/main-rdoc/classes/IO/Reactor.src/M000641.html +20 -0
  912. data/doc/main-rdoc/classes/IO/Reactor.src/M000642.html +21 -0
  913. data/doc/main-rdoc/classes/IO/Reactor.src/M000643.html +21 -0
  914. data/doc/main-rdoc/classes/IO/Reactor.src/M000644.html +20 -0
  915. data/doc/main-rdoc/classes/IO/Reactor.src/M000645.html +18 -0
  916. data/doc/main-rdoc/classes/IO/Reactor.src/M000646.html +19 -0
  917. data/doc/main-rdoc/classes/IO/Reactor.src/M000648.html +18 -0
  918. data/doc/main-rdoc/classes/IO/Reactor.src/M000649.html +23 -0
  919. data/doc/main-rdoc/classes/IO/Reactor.src/M000650.html +45 -0
  920. data/doc/main-rdoc/classes/IO/Reactor.src/M000651.html +18 -0
  921. data/doc/main-rdoc/classes/IO/Reactor.src/M000652.html +26 -0
  922. data/doc/main-rdoc/classes/IO/Reactor.src/M000653.html +20 -0
  923. data/doc/main-rdoc/classes/IO/Reactor.src/M000654.html +20 -0
  924. data/doc/main-rdoc/classes/IO/Redirect.html +237 -0
  925. data/doc/main-rdoc/classes/IO/Redirect.src/M000655.html +20 -0
  926. data/doc/main-rdoc/classes/IO/Redirect.src/M000656.html +32 -0
  927. data/doc/main-rdoc/classes/IO/Redirect.src/M000657.html +19 -0
  928. data/doc/main-rdoc/classes/IO/Redirect.src/M000658.html +23 -0
  929. data/doc/main-rdoc/classes/Infinity.html +269 -0
  930. data/doc/main-rdoc/classes/Infinity.src/M000357.html +18 -0
  931. data/doc/main-rdoc/classes/Infinity.src/M000358.html +19 -0
  932. data/doc/main-rdoc/classes/Infinity.src/M000359.html +18 -0
  933. data/doc/main-rdoc/classes/Infinity.src/M000360.html +18 -0
  934. data/doc/main-rdoc/classes/Infinity.src/M000361.html +20 -0
  935. data/doc/main-rdoc/classes/Infinity.src/M000362.html +18 -0
  936. data/doc/main-rdoc/classes/Infinity.src/M000363.html +18 -0
  937. data/doc/main-rdoc/classes/Interval.html +775 -0
  938. data/doc/main-rdoc/classes/Interval.src/M000169.html +18 -0
  939. data/doc/main-rdoc/classes/Interval.src/M000170.html +23 -0
  940. data/doc/main-rdoc/classes/Interval.src/M000171.html +18 -0
  941. data/doc/main-rdoc/classes/Interval.src/M000172.html +16 -0
  942. data/doc/main-rdoc/classes/Interval.src/M000173.html +16 -0
  943. data/doc/main-rdoc/classes/Interval.src/M000174.html +16 -0
  944. data/doc/main-rdoc/classes/Interval.src/M000175.html +16 -0
  945. data/doc/main-rdoc/classes/Interval.src/M000180.html +16 -0
  946. data/doc/main-rdoc/classes/Interval.src/M000181.html +16 -0
  947. data/doc/main-rdoc/classes/Interval.src/M000182.html +16 -0
  948. data/doc/main-rdoc/classes/Interval.src/M000183.html +16 -0
  949. data/doc/main-rdoc/classes/Interval.src/M000184.html +16 -0
  950. data/doc/main-rdoc/classes/Interval.src/M000185.html +18 -0
  951. data/doc/main-rdoc/classes/Interval.src/M000186.html +16 -0
  952. data/doc/main-rdoc/classes/Interval.src/M000187.html +16 -0
  953. data/doc/main-rdoc/classes/Interval.src/M000188.html +16 -0
  954. data/doc/main-rdoc/classes/Interval.src/M000189.html +16 -0
  955. data/doc/main-rdoc/classes/Interval.src/M000190.html +16 -0
  956. data/doc/main-rdoc/classes/Interval.src/M000191.html +16 -0
  957. data/doc/main-rdoc/classes/Interval.src/M000192.html +16 -0
  958. data/doc/main-rdoc/classes/Interval.src/M000193.html +18 -0
  959. data/doc/main-rdoc/classes/Interval.src/M000194.html +23 -0
  960. data/doc/main-rdoc/classes/Interval.src/M000197.html +18 -0
  961. data/doc/main-rdoc/classes/Interval.src/M000198.html +18 -0
  962. data/doc/main-rdoc/classes/Interval.src/M000199.html +21 -0
  963. data/doc/main-rdoc/classes/Interval.src/M000202.html +42 -0
  964. data/doc/main-rdoc/classes/Interval.src/M000204.html +22 -0
  965. data/doc/main-rdoc/classes/InvalidNackError.html +144 -0
  966. data/doc/main-rdoc/classes/Kernel.html +204 -0
  967. data/doc/main-rdoc/classes/Kernel.src/M000659.html +18 -0
  968. data/doc/main-rdoc/classes/Kernel.src/M000660.html +18 -0
  969. data/doc/main-rdoc/classes/Kernel.src/M000661.html +18 -0
  970. data/doc/main-rdoc/classes/Kernel.src/M000662.html +20 -0
  971. data/doc/main-rdoc/classes/Lisp.html +719 -0
  972. data/doc/main-rdoc/classes/Lisp.src/M000449.html +27 -0
  973. data/doc/main-rdoc/classes/Lisp.src/M000450.html +18 -0
  974. data/doc/main-rdoc/classes/Lisp.src/M000451.html +18 -0
  975. data/doc/main-rdoc/classes/Lisp.src/M000452.html +19 -0
  976. data/doc/main-rdoc/classes/Lisp.src/M000453.html +19 -0
  977. data/doc/main-rdoc/classes/Lisp.src/M000454.html +18 -0
  978. data/doc/main-rdoc/classes/Lisp.src/M000455.html +18 -0
  979. data/doc/main-rdoc/classes/Lisp.src/M000456.html +18 -0
  980. data/doc/main-rdoc/classes/Lisp.src/M000457.html +18 -0
  981. data/doc/main-rdoc/classes/Lisp.src/M000458.html +18 -0
  982. data/doc/main-rdoc/classes/Lisp.src/M000459.html +19 -0
  983. data/doc/main-rdoc/classes/Lisp.src/M000460.html +18 -0
  984. data/doc/main-rdoc/classes/Lisp.src/M000461.html +18 -0
  985. data/doc/main-rdoc/classes/Lisp.src/M000462.html +22 -0
  986. data/doc/main-rdoc/classes/Lisp.src/M000463.html +26 -0
  987. data/doc/main-rdoc/classes/Lisp.src/M000464.html +22 -0
  988. data/doc/main-rdoc/classes/Lisp.src/M000465.html +22 -0
  989. data/doc/main-rdoc/classes/Lisp.src/M000466.html +24 -0
  990. data/doc/main-rdoc/classes/Lisp.src/M000467.html +18 -0
  991. data/doc/main-rdoc/classes/Lisp.src/M000468.html +26 -0
  992. data/doc/main-rdoc/classes/Lisp.src/M000469.html +26 -0
  993. data/doc/main-rdoc/classes/Lisp.src/M000470.html +19 -0
  994. data/doc/main-rdoc/classes/Lisp.src/M000471.html +26 -0
  995. data/doc/main-rdoc/classes/Lisp.src/M000472.html +26 -0
  996. data/doc/main-rdoc/classes/Lisp.src/M000473.html +22 -0
  997. data/doc/main-rdoc/classes/Lisp.src/M000475.html +22 -0
  998. data/doc/main-rdoc/classes/Lisp.src/M000477.html +18 -0
  999. data/doc/main-rdoc/classes/Lisp.src/M000478.html +18 -0
  1000. data/doc/main-rdoc/classes/Lisp.src/M000479.html +18 -0
  1001. data/doc/main-rdoc/classes/Lisp.src/M000480.html +18 -0
  1002. data/doc/main-rdoc/classes/Lisp.src/M000481.html +18 -0
  1003. data/doc/main-rdoc/classes/Lisp.src/M000482.html +18 -0
  1004. data/doc/main-rdoc/classes/Lisp.src/M000483.html +22 -0
  1005. data/doc/main-rdoc/classes/Lisp.src/M000484.html +22 -0
  1006. data/doc/main-rdoc/classes/Lisp/DottedPair.html +280 -0
  1007. data/doc/main-rdoc/classes/Lisp/DottedPair.src/M000575.html +18 -0
  1008. data/doc/main-rdoc/classes/Lisp/DottedPair.src/M000576.html +22 -0
  1009. data/doc/main-rdoc/classes/Lisp/DottedPair.src/M000577.html +31 -0
  1010. data/doc/main-rdoc/classes/Lisp/DottedPair.src/M000578.html +18 -0
  1011. data/doc/main-rdoc/classes/Lisp/DottedPair.src/M000579.html +18 -0
  1012. data/doc/main-rdoc/classes/Lisp/DottedPair.src/M000580.html +20 -0
  1013. data/doc/main-rdoc/classes/Lisp/DottedPair.src/M000581.html +22 -0
  1014. data/doc/main-rdoc/classes/Lisp/DottedPair.src/M000582.html +22 -0
  1015. data/doc/main-rdoc/classes/Lisp/Format.html +162 -0
  1016. data/doc/main-rdoc/classes/Lisp/Format.src/M000485.html +25 -0
  1017. data/doc/main-rdoc/classes/Lisp/Format/ArgumentError.html +126 -0
  1018. data/doc/main-rdoc/classes/Lisp/Format/Directives.html +155 -0
  1019. data/doc/main-rdoc/classes/Lisp/Format/Directives/ArgJump.html +168 -0
  1020. data/doc/main-rdoc/classes/Lisp/Format/Directives/ArgJump.src/M000506.html +19 -0
  1021. data/doc/main-rdoc/classes/Lisp/Format/Directives/Ascii.html +119 -0
  1022. data/doc/main-rdoc/classes/Lisp/Format/Directives/BeginCaseConversion.html +171 -0
  1023. data/doc/main-rdoc/classes/Lisp/Format/Directives/BeginCaseConversion.src/M000520.html +23 -0
  1024. data/doc/main-rdoc/classes/Lisp/Format/Directives/BeginConditional.html +225 -0
  1025. data/doc/main-rdoc/classes/Lisp/Format/Directives/BeginConditional.src/M000516.html +24 -0
  1026. data/doc/main-rdoc/classes/Lisp/Format/Directives/BeginConditional.src/M000517.html +42 -0
  1027. data/doc/main-rdoc/classes/Lisp/Format/Directives/BeginConditional.src/M000518.html +43 -0
  1028. data/doc/main-rdoc/classes/Lisp/Format/Directives/BeginIteration.html +260 -0
  1029. data/doc/main-rdoc/classes/Lisp/Format/Directives/BeginIteration.src/M000537.html +19 -0
  1030. data/doc/main-rdoc/classes/Lisp/Format/Directives/BeginIteration.src/M000538.html +28 -0
  1031. data/doc/main-rdoc/classes/Lisp/Format/Directives/BeginIteration.src/M000539.html +19 -0
  1032. data/doc/main-rdoc/classes/Lisp/Format/Directives/BeginIteration.src/M000540.html +32 -0
  1033. data/doc/main-rdoc/classes/Lisp/Format/Directives/BeginIteration.src/M000541.html +25 -0
  1034. data/doc/main-rdoc/classes/Lisp/Format/Directives/Binary.html +148 -0
  1035. data/doc/main-rdoc/classes/Lisp/Format/Directives/Binary.src/M000512.html +18 -0
  1036. data/doc/main-rdoc/classes/Lisp/Format/Directives/Character.html +189 -0
  1037. data/doc/main-rdoc/classes/Lisp/Format/Directives/Character.src/M000542.html +29 -0
  1038. data/doc/main-rdoc/classes/Lisp/Format/Directives/Character.src/M000543.html +28 -0
  1039. data/doc/main-rdoc/classes/Lisp/Format/Directives/CharacterDirective.html +183 -0
  1040. data/doc/main-rdoc/classes/Lisp/Format/Directives/CharacterDirective.src/M000545.html +19 -0
  1041. data/doc/main-rdoc/classes/Lisp/Format/Directives/CharacterDirective.src/M000546.html +19 -0
  1042. data/doc/main-rdoc/classes/Lisp/Format/Directives/ClauseSeparator.html +152 -0
  1043. data/doc/main-rdoc/classes/Lisp/Format/Directives/ClauseSeparator.src/M000504.html +23 -0
  1044. data/doc/main-rdoc/classes/Lisp/Format/Directives/Decimal.html +119 -0
  1045. data/doc/main-rdoc/classes/Lisp/Format/Directives/Directive.html +318 -0
  1046. data/doc/main-rdoc/classes/Lisp/Format/Directives/Directive.src/M000528.html +18 -0
  1047. data/doc/main-rdoc/classes/Lisp/Format/Directives/Directive.src/M000529.html +16 -0
  1048. data/doc/main-rdoc/classes/Lisp/Format/Directives/Directive.src/M000530.html +18 -0
  1049. data/doc/main-rdoc/classes/Lisp/Format/Directives/Directive.src/M000531.html +18 -0
  1050. data/doc/main-rdoc/classes/Lisp/Format/Directives/Directive.src/M000532.html +18 -0
  1051. data/doc/main-rdoc/classes/Lisp/Format/Directives/Directive.src/M000533.html +18 -0
  1052. data/doc/main-rdoc/classes/Lisp/Format/Directives/Directive.src/M000534.html +18 -0
  1053. data/doc/main-rdoc/classes/Lisp/Format/Directives/Directive.src/M000535.html +18 -0
  1054. data/doc/main-rdoc/classes/Lisp/Format/Directives/Directive.src/M000536.html +18 -0
  1055. data/doc/main-rdoc/classes/Lisp/Format/Directives/DollarFP.html +176 -0
  1056. data/doc/main-rdoc/classes/Lisp/Format/Directives/DollarFP.src/M000515.html +38 -0
  1057. data/doc/main-rdoc/classes/Lisp/Format/Directives/EndCaseConversion.html +153 -0
  1058. data/doc/main-rdoc/classes/Lisp/Format/Directives/EndCaseConversion.src/M000494.html +30 -0
  1059. data/doc/main-rdoc/classes/Lisp/Format/Directives/EndConditional.html +147 -0
  1060. data/doc/main-rdoc/classes/Lisp/Format/Directives/EndConditional.src/M000490.html +21 -0
  1061. data/doc/main-rdoc/classes/Lisp/Format/Directives/EndIteration.html +151 -0
  1062. data/doc/main-rdoc/classes/Lisp/Format/Directives/EndIteration.src/M000495.html +21 -0
  1063. data/doc/main-rdoc/classes/Lisp/Format/Directives/ExpFP.html +191 -0
  1064. data/doc/main-rdoc/classes/Lisp/Format/Directives/ExpFP.src/M000519.html +70 -0
  1065. data/doc/main-rdoc/classes/Lisp/Format/Directives/FFFP.html +183 -0
  1066. data/doc/main-rdoc/classes/Lisp/Format/Directives/FFFP.src/M000503.html +50 -0
  1067. data/doc/main-rdoc/classes/Lisp/Format/Directives/Factory.html +151 -0
  1068. data/doc/main-rdoc/classes/Lisp/Format/Directives/Factory.src/M000502.html +38 -0
  1069. data/doc/main-rdoc/classes/Lisp/Format/Directives/FreshLine.html +163 -0
  1070. data/doc/main-rdoc/classes/Lisp/Format/Directives/FreshLine.src/M000496.html +21 -0
  1071. data/doc/main-rdoc/classes/Lisp/Format/Directives/GeneralFP.html +211 -0
  1072. data/doc/main-rdoc/classes/Lisp/Format/Directives/GeneralFP.src/M000491.html +63 -0
  1073. data/doc/main-rdoc/classes/Lisp/Format/Directives/Hexadecimal.html +148 -0
  1074. data/doc/main-rdoc/classes/Lisp/Format/Directives/Hexadecimal.src/M000509.html +18 -0
  1075. data/doc/main-rdoc/classes/Lisp/Format/Directives/Indirection.html +167 -0
  1076. data/doc/main-rdoc/classes/Lisp/Format/Directives/Indirection.src/M000505.html +25 -0
  1077. data/doc/main-rdoc/classes/Lisp/Format/Directives/Literal.html +169 -0
  1078. data/doc/main-rdoc/classes/Lisp/Format/Directives/Literal.src/M000510.html +18 -0
  1079. data/doc/main-rdoc/classes/Lisp/Format/Directives/Literal.src/M000511.html +18 -0
  1080. data/doc/main-rdoc/classes/Lisp/Format/Directives/NewLine.html +149 -0
  1081. data/doc/main-rdoc/classes/Lisp/Format/Directives/NewLine.src/M000497.html +18 -0
  1082. data/doc/main-rdoc/classes/Lisp/Format/Directives/NewPage.html +149 -0
  1083. data/doc/main-rdoc/classes/Lisp/Format/Directives/NewPage.src/M000507.html +18 -0
  1084. data/doc/main-rdoc/classes/Lisp/Format/Directives/Number.html +208 -0
  1085. data/doc/main-rdoc/classes/Lisp/Format/Directives/Number.src/M000498.html +19 -0
  1086. data/doc/main-rdoc/classes/Lisp/Format/Directives/Number.src/M000499.html +34 -0
  1087. data/doc/main-rdoc/classes/Lisp/Format/Directives/Octal.html +148 -0
  1088. data/doc/main-rdoc/classes/Lisp/Format/Directives/Octal.src/M000492.html +18 -0
  1089. data/doc/main-rdoc/classes/Lisp/Format/Directives/Plural.html +163 -0
  1090. data/doc/main-rdoc/classes/Lisp/Format/Directives/Plural.src/M000508.html +23 -0
  1091. data/doc/main-rdoc/classes/Lisp/Format/Directives/Print.html +205 -0
  1092. data/doc/main-rdoc/classes/Lisp/Format/Directives/Print.src/M000500.html +19 -0
  1093. data/doc/main-rdoc/classes/Lisp/Format/Directives/Print.src/M000501.html +31 -0
  1094. data/doc/main-rdoc/classes/Lisp/Format/Directives/Radix.html +295 -0
  1095. data/doc/main-rdoc/classes/Lisp/Format/Directives/Radix.src/M000521.html +33 -0
  1096. data/doc/main-rdoc/classes/Lisp/Format/Directives/Radix.src/M000522.html +38 -0
  1097. data/doc/main-rdoc/classes/Lisp/Format/Directives/Radix.src/M000523.html +26 -0
  1098. data/doc/main-rdoc/classes/Lisp/Format/Directives/Radix.src/M000524.html +38 -0
  1099. data/doc/main-rdoc/classes/Lisp/Format/Directives/Radix.src/M000525.html +29 -0
  1100. data/doc/main-rdoc/classes/Lisp/Format/Directives/Radix.src/M000526.html +18 -0
  1101. data/doc/main-rdoc/classes/Lisp/Format/Directives/Radix.src/M000527.html +18 -0
  1102. data/doc/main-rdoc/classes/Lisp/Format/Directives/SExpression.html +148 -0
  1103. data/doc/main-rdoc/classes/Lisp/Format/Directives/SExpression.src/M000493.html +18 -0
  1104. data/doc/main-rdoc/classes/Lisp/Format/Directives/SkipWhitespace.html +153 -0
  1105. data/doc/main-rdoc/classes/Lisp/Format/Directives/SkipWhitespace.src/M000544.html +21 -0
  1106. data/doc/main-rdoc/classes/Lisp/Format/Directives/Tabulate.html +176 -0
  1107. data/doc/main-rdoc/classes/Lisp/Format/Directives/Tabulate.src/M000513.html +31 -0
  1108. data/doc/main-rdoc/classes/Lisp/Format/Directives/Tilde.html +149 -0
  1109. data/doc/main-rdoc/classes/Lisp/Format/Directives/Tilde.src/M000514.html +18 -0
  1110. data/doc/main-rdoc/classes/Lisp/Format/Directives/UnknownDirectiveError.html +117 -0
  1111. data/doc/main-rdoc/classes/Lisp/Format/Formatter.html +174 -0
  1112. data/doc/main-rdoc/classes/Lisp/Format/Formatter.src/M000573.html +18 -0
  1113. data/doc/main-rdoc/classes/Lisp/Format/Formatter.src/M000574.html +19 -0
  1114. data/doc/main-rdoc/classes/Lisp/Format/IncompleteParameterError.html +119 -0
  1115. data/doc/main-rdoc/classes/Lisp/Format/IndexError.html +126 -0
  1116. data/doc/main-rdoc/classes/Lisp/Format/Lexer.html +311 -0
  1117. data/doc/main-rdoc/classes/Lisp/Format/Lexer.src/M000553.html +19 -0
  1118. data/doc/main-rdoc/classes/Lisp/Format/Lexer.src/M000554.html +33 -0
  1119. data/doc/main-rdoc/classes/Lisp/Format/Lexer.src/M000555.html +18 -0
  1120. data/doc/main-rdoc/classes/Lisp/Format/Lexer.src/M000556.html +19 -0
  1121. data/doc/main-rdoc/classes/Lisp/Format/Lexer.src/M000557.html +18 -0
  1122. data/doc/main-rdoc/classes/Lisp/Format/Lexer.src/M000558.html +18 -0
  1123. data/doc/main-rdoc/classes/Lisp/Format/Lexer.src/M000559.html +70 -0
  1124. data/doc/main-rdoc/classes/Lisp/Format/Lexer.src/M000560.html +32 -0
  1125. data/doc/main-rdoc/classes/Lisp/Format/Lexer.src/M000561.html +22 -0
  1126. data/doc/main-rdoc/classes/Lisp/Format/MalformedError.html +119 -0
  1127. data/doc/main-rdoc/classes/Lisp/Format/MissingParameterError.html +119 -0
  1128. data/doc/main-rdoc/classes/Lisp/Format/ModifierError.html +119 -0
  1129. data/doc/main-rdoc/classes/Lisp/Format/Output.html +203 -0
  1130. data/doc/main-rdoc/classes/Lisp/Format/Output.src/M000548.html +18 -0
  1131. data/doc/main-rdoc/classes/Lisp/Format/Output.src/M000549.html +27 -0
  1132. data/doc/main-rdoc/classes/Lisp/Format/Output.src/M000550.html +18 -0
  1133. data/doc/main-rdoc/classes/Lisp/Format/ParameterError.html +126 -0
  1134. data/doc/main-rdoc/classes/Lisp/Format/Parameters.html +123 -0
  1135. data/doc/main-rdoc/classes/Lisp/Format/Parameters/Argument.html +150 -0
  1136. data/doc/main-rdoc/classes/Lisp/Format/Parameters/Argument.src/M000487.html +31 -0
  1137. data/doc/main-rdoc/classes/Lisp/Format/Parameters/ArgumentCount.html +150 -0
  1138. data/doc/main-rdoc/classes/Lisp/Format/Parameters/ArgumentCount.src/M000486.html +18 -0
  1139. data/doc/main-rdoc/classes/Lisp/Format/Parameters/Character.html +119 -0
  1140. data/doc/main-rdoc/classes/Lisp/Format/Parameters/Default.html +120 -0
  1141. data/doc/main-rdoc/classes/Lisp/Format/Parameters/Integer.html +119 -0
  1142. data/doc/main-rdoc/classes/Lisp/Format/Parameters/Parameter.html +188 -0
  1143. data/doc/main-rdoc/classes/Lisp/Format/Parameters/Parameter.src/M000488.html +18 -0
  1144. data/doc/main-rdoc/classes/Lisp/Format/Parameters/Parameter.src/M000489.html +18 -0
  1145. data/doc/main-rdoc/classes/Lisp/Format/Parser.html +174 -0
  1146. data/doc/main-rdoc/classes/Lisp/Format/Parser.src/M000551.html +18 -0
  1147. data/doc/main-rdoc/classes/Lisp/Format/Parser.src/M000552.html +38 -0
  1148. data/doc/main-rdoc/classes/Lisp/Format/Positioned.html +157 -0
  1149. data/doc/main-rdoc/classes/Lisp/Format/Positioned.src/M000547.html +18 -0
  1150. data/doc/main-rdoc/classes/Lisp/Format/State.html +347 -0
  1151. data/doc/main-rdoc/classes/Lisp/Format/State.src/M000562.html +21 -0
  1152. data/doc/main-rdoc/classes/Lisp/Format/State.src/M000563.html +18 -0
  1153. data/doc/main-rdoc/classes/Lisp/Format/State.src/M000564.html +18 -0
  1154. data/doc/main-rdoc/classes/Lisp/Format/State.src/M000565.html +18 -0
  1155. data/doc/main-rdoc/classes/Lisp/Format/State.src/M000566.html +18 -0
  1156. data/doc/main-rdoc/classes/Lisp/Format/State.src/M000567.html +18 -0
  1157. data/doc/main-rdoc/classes/Lisp/Format/State.src/M000568.html +22 -0
  1158. data/doc/main-rdoc/classes/Lisp/Format/State.src/M000569.html +19 -0
  1159. data/doc/main-rdoc/classes/Lisp/Format/State.src/M000570.html +19 -0
  1160. data/doc/main-rdoc/classes/Lisp/Format/State.src/M000571.html +18 -0
  1161. data/doc/main-rdoc/classes/Lisp/Format/State.src/M000572.html +18 -0
  1162. data/doc/main-rdoc/classes/Lisp/Format/SyntaxError.html +126 -0
  1163. data/doc/main-rdoc/classes/Method.html +222 -0
  1164. data/doc/main-rdoc/classes/Method.src/M000157.html +25 -0
  1165. data/doc/main-rdoc/classes/Method.src/M000158.html +35 -0
  1166. data/doc/main-rdoc/classes/Method/DuckHunter.html +223 -0
  1167. data/doc/main-rdoc/classes/Method/DuckHunter.src/M000159.html +23 -0
  1168. data/doc/main-rdoc/classes/Method/DuckHunter.src/M000160.html +18 -0
  1169. data/doc/main-rdoc/classes/Method/DuckHunter.src/M000161.html +18 -0
  1170. data/doc/main-rdoc/classes/Method/DuckHunter.src/M000162.html +48 -0
  1171. data/doc/main-rdoc/classes/Module.html +271 -0
  1172. data/doc/main-rdoc/classes/Module.src/M000163.html +18 -0
  1173. data/doc/main-rdoc/classes/Module.src/M000164.html +16 -0
  1174. data/doc/main-rdoc/classes/Module.src/M000165.html +22 -0
  1175. data/doc/main-rdoc/classes/Module.src/M000166.html +20 -0
  1176. data/doc/main-rdoc/classes/Module.src/M000167.html +22 -0
  1177. data/doc/main-rdoc/classes/Module.src/M000168.html +20 -0
  1178. data/doc/main-rdoc/classes/Multiton.html +249 -0
  1179. data/doc/main-rdoc/classes/Multiton.src/M000583.html +34 -0
  1180. data/doc/main-rdoc/classes/Multiton/New.html +137 -0
  1181. data/doc/main-rdoc/classes/Multiton/New.src/M000584.html +36 -0
  1182. data/doc/main-rdoc/classes/Multiton/Semi.html +131 -0
  1183. data/doc/main-rdoc/classes/Multiton/Semi.src/M000585.html +33 -0
  1184. data/doc/main-rdoc/classes/NackClass.html +249 -0
  1185. data/doc/main-rdoc/classes/NackClass.src/M000003.html +30 -0
  1186. data/doc/main-rdoc/classes/NackClass.src/M000004.html +18 -0
  1187. data/doc/main-rdoc/classes/NackClass.src/M000005.html +18 -0
  1188. data/doc/main-rdoc/classes/NackClass.src/M000006.html +18 -0
  1189. data/doc/main-rdoc/classes/NackClass.src/M000007.html +16 -0
  1190. data/doc/main-rdoc/classes/NackClass.src/M000008.html +18 -0
  1191. data/doc/main-rdoc/classes/NackClass.src/M000009.html +18 -0
  1192. data/doc/main-rdoc/classes/NilClass.html +213 -0
  1193. data/doc/main-rdoc/classes/NilClass.src/M000354.html +18 -0
  1194. data/doc/main-rdoc/classes/NilClass.src/M000355.html +18 -0
  1195. data/doc/main-rdoc/classes/NilComparable.html +158 -0
  1196. data/doc/main-rdoc/classes/NilComparable.src/M000448.html +30 -0
  1197. data/doc/main-rdoc/classes/NotCopyable.html +234 -0
  1198. data/doc/main-rdoc/classes/NotCopyable.src/M000626.html +18 -0
  1199. data/doc/main-rdoc/classes/NotCopyable.src/M000627.html +18 -0
  1200. data/doc/main-rdoc/classes/NotCopyable.src/M000628.html +18 -0
  1201. data/doc/main-rdoc/classes/Numeric.html +826 -0
  1202. data/doc/main-rdoc/classes/Numeric.src/M000297.html +18 -0
  1203. data/doc/main-rdoc/classes/Numeric.src/M000298.html +18 -0
  1204. data/doc/main-rdoc/classes/Numeric.src/M000300.html +18 -0
  1205. data/doc/main-rdoc/classes/Numeric.src/M000303.html +18 -0
  1206. data/doc/main-rdoc/classes/Numeric.src/M000306.html +18 -0
  1207. data/doc/main-rdoc/classes/Numeric.src/M000309.html +18 -0
  1208. data/doc/main-rdoc/classes/Numeric.src/M000312.html +18 -0
  1209. data/doc/main-rdoc/classes/Numeric.src/M000314.html +18 -0
  1210. data/doc/main-rdoc/classes/Numeric.src/M000316.html +18 -0
  1211. data/doc/main-rdoc/classes/Numeric.src/M000318.html +18 -0
  1212. data/doc/main-rdoc/classes/Numeric.src/M000320.html +18 -0
  1213. data/doc/main-rdoc/classes/Numeric.src/M000322.html +18 -0
  1214. data/doc/main-rdoc/classes/Numeric.src/M000324.html +18 -0
  1215. data/doc/main-rdoc/classes/Numeric.src/M000326.html +18 -0
  1216. data/doc/main-rdoc/classes/Numeric.src/M000328.html +18 -0
  1217. data/doc/main-rdoc/classes/Numeric.src/M000330.html +18 -0
  1218. data/doc/main-rdoc/classes/Numeric.src/M000332.html +18 -0
  1219. data/doc/main-rdoc/classes/Numeric.src/M000335.html +18 -0
  1220. data/doc/main-rdoc/classes/Object.html +230 -0
  1221. data/doc/main-rdoc/classes/Object.src/M000399.html +22 -0
  1222. data/doc/main-rdoc/classes/Object.src/M000400.html +20 -0
  1223. data/doc/main-rdoc/classes/Object.src/M000401.html +18 -0
  1224. data/doc/main-rdoc/classes/OpenStructable.html +271 -0
  1225. data/doc/main-rdoc/classes/OpenStructable.src/M000663.html +19 -0
  1226. data/doc/main-rdoc/classes/OpenStructable.src/M000664.html +21 -0
  1227. data/doc/main-rdoc/classes/OpenStructable.src/M000665.html +24 -0
  1228. data/doc/main-rdoc/classes/OpenStructable.src/M000666.html +19 -0
  1229. data/doc/main-rdoc/classes/OpenStructable.src/M000667.html +22 -0
  1230. data/doc/main-rdoc/classes/OpenStructable.src/M000668.html +19 -0
  1231. data/doc/main-rdoc/classes/OrderedHash.html +651 -0
  1232. data/doc/main-rdoc/classes/OrderedHash.src/M000205.html +26 -0
  1233. data/doc/main-rdoc/classes/OrderedHash.src/M000206.html +18 -0
  1234. data/doc/main-rdoc/classes/OrderedHash.src/M000207.html +18 -0
  1235. data/doc/main-rdoc/classes/OrderedHash.src/M000208.html +19 -0
  1236. data/doc/main-rdoc/classes/OrderedHash.src/M000210.html +19 -0
  1237. data/doc/main-rdoc/classes/OrderedHash.src/M000211.html +19 -0
  1238. data/doc/main-rdoc/classes/OrderedHash.src/M000212.html +19 -0
  1239. data/doc/main-rdoc/classes/OrderedHash.src/M000213.html +19 -0
  1240. data/doc/main-rdoc/classes/OrderedHash.src/M000214.html +19 -0
  1241. data/doc/main-rdoc/classes/OrderedHash.src/M000215.html +19 -0
  1242. data/doc/main-rdoc/classes/OrderedHash.src/M000217.html +21 -0
  1243. data/doc/main-rdoc/classes/OrderedHash.src/M000218.html +20 -0
  1244. data/doc/main-rdoc/classes/OrderedHash.src/M000219.html +18 -0
  1245. data/doc/main-rdoc/classes/OrderedHash.src/M000220.html +20 -0
  1246. data/doc/main-rdoc/classes/OrderedHash.src/M000221.html +18 -0
  1247. data/doc/main-rdoc/classes/OrderedHash.src/M000222.html +19 -0
  1248. data/doc/main-rdoc/classes/OrderedHash.src/M000223.html +19 -0
  1249. data/doc/main-rdoc/classes/OrderedHash.src/M000224.html +19 -0
  1250. data/doc/main-rdoc/classes/OrderedHash.src/M000225.html +24 -0
  1251. data/doc/main-rdoc/classes/OrderedHash.src/M000226.html +24 -0
  1252. data/doc/main-rdoc/classes/OrderedHash.src/M000227.html +19 -0
  1253. data/doc/main-rdoc/classes/OrderedHash.src/M000228.html +20 -0
  1254. data/doc/main-rdoc/classes/OrderedHash.src/M000229.html +18 -0
  1255. data/doc/main-rdoc/classes/OrderedHash.src/M000230.html +20 -0
  1256. data/doc/main-rdoc/classes/OrderedHash.src/M000231.html +19 -0
  1257. data/doc/main-rdoc/classes/OrderedHash.src/M000233.html +18 -0
  1258. data/doc/main-rdoc/classes/OrderedHash.src/M000234.html +20 -0
  1259. data/doc/main-rdoc/classes/Parser.html +202 -0
  1260. data/doc/main-rdoc/classes/Parser.src/M000119.html +24 -0
  1261. data/doc/main-rdoc/classes/Parser.src/M000120.html +19 -0
  1262. data/doc/main-rdoc/classes/Parser.src/M000121.html +131 -0
  1263. data/doc/main-rdoc/classes/Parser/Main.html +145 -0
  1264. data/doc/main-rdoc/classes/Parser/Main.src/M000129.html +16 -0
  1265. data/doc/main-rdoc/classes/Parser/Marker.html +267 -0
  1266. data/doc/main-rdoc/classes/Parser/Marker.src/M000130.html +18 -0
  1267. data/doc/main-rdoc/classes/Parser/Marker.src/M000131.html +16 -0
  1268. data/doc/main-rdoc/classes/Parser/Marker.src/M000132.html +16 -0
  1269. data/doc/main-rdoc/classes/Parser/Marker.src/M000133.html +16 -0
  1270. data/doc/main-rdoc/classes/Parser/Marker.src/M000134.html +16 -0
  1271. data/doc/main-rdoc/classes/Parser/Marker.src/M000135.html +16 -0
  1272. data/doc/main-rdoc/classes/Parser/Registry.html +205 -0
  1273. data/doc/main-rdoc/classes/Parser/Registry.src/M000122.html +19 -0
  1274. data/doc/main-rdoc/classes/Parser/Registry.src/M000123.html +24 -0
  1275. data/doc/main-rdoc/classes/Parser/Registry.src/M000124.html +16 -0
  1276. data/doc/main-rdoc/classes/Parser/Registry.src/M000125.html +18 -0
  1277. data/doc/main-rdoc/classes/Parser/Token.html +209 -0
  1278. data/doc/main-rdoc/classes/Parser/Token.src/M000136.html +20 -0
  1279. data/doc/main-rdoc/classes/Parser/Token.src/M000137.html +16 -0
  1280. data/doc/main-rdoc/classes/Parser/Token.src/M000138.html +19 -0
  1281. data/doc/main-rdoc/classes/Parser/Token.src/M000139.html +19 -0
  1282. data/doc/main-rdoc/classes/Parser/UnitToken.html +195 -0
  1283. data/doc/main-rdoc/classes/Parser/UnitToken.src/M000126.html +19 -0
  1284. data/doc/main-rdoc/classes/Parser/UnitToken.src/M000127.html +16 -0
  1285. data/doc/main-rdoc/classes/Parser/UnitToken.src/M000128.html +19 -0
  1286. data/doc/main-rdoc/classes/Ref.html +193 -0
  1287. data/doc/main-rdoc/classes/Ref.src/M000364.html +20 -0
  1288. data/doc/main-rdoc/classes/Ref.src/M000365.html +18 -0
  1289. data/doc/main-rdoc/classes/Ref.src/M000366.html +20 -0
  1290. data/doc/main-rdoc/classes/Ref.src/M000367.html +16 -0
  1291. data/doc/main-rdoc/classes/ScriptBug.html +128 -0
  1292. data/doc/main-rdoc/classes/SimpleStringIO.html +169 -0
  1293. data/doc/main-rdoc/classes/SimpleStringIO.src/M000422.html +16 -0
  1294. data/doc/main-rdoc/classes/SimpleStringIO.src/M000423.html +16 -0
  1295. data/doc/main-rdoc/classes/StaticHash.html +182 -0
  1296. data/doc/main-rdoc/classes/StaticHash.src/M000424.html +21 -0
  1297. data/doc/main-rdoc/classes/String.html +154 -0
  1298. data/doc/main-rdoc/classes/String.src/M000434.html +18 -0
  1299. data/doc/main-rdoc/classes/String.src/M000435.html +18 -0
  1300. data/doc/main-rdoc/classes/Struct.html +161 -0
  1301. data/doc/main-rdoc/classes/Struct.src/M000140.html +20 -0
  1302. data/doc/main-rdoc/classes/Struct.src/M000141.html +18 -0
  1303. data/doc/main-rdoc/classes/SuperStruct.html +185 -0
  1304. data/doc/main-rdoc/classes/SuperStruct.src/M000155.html +144 -0
  1305. data/doc/main-rdoc/classes/SuperStruct.src/M000156.html +70 -0
  1306. data/doc/main-rdoc/classes/Term.html +136 -0
  1307. data/doc/main-rdoc/classes/Term/ANSIColor.html +159 -0
  1308. data/doc/main-rdoc/classes/Term/ANSIColor.src/M000436.html +26 -0
  1309. data/doc/main-rdoc/classes/Term/ANSIColor.src/M000437.html +18 -0
  1310. data/doc/main-rdoc/classes/Text.html +125 -0
  1311. data/doc/main-rdoc/classes/Text/Soundex.html +180 -0
  1312. data/doc/main-rdoc/classes/Text/Soundex.src/M000438.html +25 -0
  1313. data/doc/main-rdoc/classes/Text/Soundex.src/M000439.html +39 -0
  1314. data/doc/main-rdoc/classes/Text/Soundex.src/M000440.html +18 -0
  1315. data/doc/main-rdoc/classes/TextTagIterator.html +551 -0
  1316. data/doc/main-rdoc/classes/TextTagIterator.src/M000402.html +25 -0
  1317. data/doc/main-rdoc/classes/TextTagIterator.src/M000403.html +19 -0
  1318. data/doc/main-rdoc/classes/TextTagIterator.src/M000404.html +22 -0
  1319. data/doc/main-rdoc/classes/TextTagIterator.src/M000405.html +22 -0
  1320. data/doc/main-rdoc/classes/TextTagIterator.src/M000406.html +31 -0
  1321. data/doc/main-rdoc/classes/TextTagIterator.src/M000407.html +21 -0
  1322. data/doc/main-rdoc/classes/TextTagIterator.src/M000409.html +37 -0
  1323. data/doc/main-rdoc/classes/TextTagIterator.src/M000410.html +93 -0
  1324. data/doc/main-rdoc/classes/TextTagIterator.src/M000412.html +38 -0
  1325. data/doc/main-rdoc/classes/TextTagIterator.src/M000413.html +20 -0
  1326. data/doc/main-rdoc/classes/TextTagIterator.src/M000414.html +24 -0
  1327. data/doc/main-rdoc/classes/TextTagIterator.src/M000415.html +20 -0
  1328. data/doc/main-rdoc/classes/TextTagIterator.src/M000416.html +18 -0
  1329. data/doc/main-rdoc/classes/TextTagIterator.src/M000417.html +16 -0
  1330. data/doc/main-rdoc/classes/TextTagIterator.src/M000418.html +16 -0
  1331. data/doc/main-rdoc/classes/TextTagIterator.src/M000419.html +19 -0
  1332. data/doc/main-rdoc/classes/TextTagIterator.src/M000420.html +22 -0
  1333. data/doc/main-rdoc/classes/TextTagIterator.src/M000421.html +18 -0
  1334. data/doc/main-rdoc/classes/Time.html +582 -0
  1335. data/doc/main-rdoc/classes/Time.src/M000071.html +18 -0
  1336. data/doc/main-rdoc/classes/Time.src/M000072.html +20 -0
  1337. data/doc/main-rdoc/classes/Time.src/M000073.html +20 -0
  1338. data/doc/main-rdoc/classes/Time.src/M000075.html +22 -0
  1339. data/doc/main-rdoc/classes/Time.src/M000076.html +22 -0
  1340. data/doc/main-rdoc/classes/Time.src/M000077.html +18 -0
  1341. data/doc/main-rdoc/classes/Time.src/M000078.html +18 -0
  1342. data/doc/main-rdoc/classes/Time.src/M000079.html +18 -0
  1343. data/doc/main-rdoc/classes/Time.src/M000080.html +18 -0
  1344. data/doc/main-rdoc/classes/Time.src/M000081.html +18 -0
  1345. data/doc/main-rdoc/classes/Time.src/M000082.html +18 -0
  1346. data/doc/main-rdoc/classes/Time.src/M000083.html +18 -0
  1347. data/doc/main-rdoc/classes/Time.src/M000086.html +21 -0
  1348. data/doc/main-rdoc/classes/Time.src/M000087.html +18 -0
  1349. data/doc/main-rdoc/classes/Time.src/M000091.html +19 -0
  1350. data/doc/main-rdoc/classes/Time.src/M000093.html +18 -0
  1351. data/doc/main-rdoc/classes/Time.src/M000095.html +18 -0
  1352. data/doc/main-rdoc/classes/Time.src/M000096.html +18 -0
  1353. data/doc/main-rdoc/classes/TimeLimit.html +220 -0
  1354. data/doc/main-rdoc/classes/TimeLimit.src/M000347.html +21 -0
  1355. data/doc/main-rdoc/classes/TimeLimit.src/M000348.html +23 -0
  1356. data/doc/main-rdoc/classes/TimeLimit.src/M000349.html +35 -0
  1357. data/doc/main-rdoc/classes/TimeLimit.src/M000350.html +24 -0
  1358. data/doc/main-rdoc/classes/TimeLimit.src/M000351.html +19 -0
  1359. data/doc/main-rdoc/classes/TimeLimit/Dummy.html +161 -0
  1360. data/doc/main-rdoc/classes/TimeLimit/Dummy.src/M000352.html +22 -0
  1361. data/doc/main-rdoc/classes/TimeLimit/Dummy.src/M000353.html +18 -0
  1362. data/doc/main-rdoc/classes/Timer.html +294 -0
  1363. data/doc/main-rdoc/classes/Timer.src/M000390.html +22 -0
  1364. data/doc/main-rdoc/classes/Timer.src/M000391.html +19 -0
  1365. data/doc/main-rdoc/classes/Timer.src/M000392.html +20 -0
  1366. data/doc/main-rdoc/classes/Timer.src/M000393.html +18 -0
  1367. data/doc/main-rdoc/classes/Timer.src/M000394.html +18 -0
  1368. data/doc/main-rdoc/classes/Timer.src/M000395.html +22 -0
  1369. data/doc/main-rdoc/classes/TracePoint.html +426 -0
  1370. data/doc/main-rdoc/classes/TracePoint.src/M000010.html +16 -0
  1371. data/doc/main-rdoc/classes/TracePoint.src/M000011.html +21 -0
  1372. data/doc/main-rdoc/classes/TracePoint.src/M000012.html +31 -0
  1373. data/doc/main-rdoc/classes/TracePoint.src/M000013.html +21 -0
  1374. data/doc/main-rdoc/classes/TracePoint.src/M000014.html +16 -0
  1375. data/doc/main-rdoc/classes/TracePoint.src/M000015.html +16 -0
  1376. data/doc/main-rdoc/classes/TracePoint.src/M000016.html +16 -0
  1377. data/doc/main-rdoc/classes/TracePoint.src/M000017.html +16 -0
  1378. data/doc/main-rdoc/classes/TracePoint.src/M000020.html +16 -0
  1379. data/doc/main-rdoc/classes/TracePoint.src/M000021.html +16 -0
  1380. data/doc/main-rdoc/classes/TracePoint.src/M000022.html +16 -0
  1381. data/doc/main-rdoc/classes/TracePoint.src/M000023.html +18 -0
  1382. data/doc/main-rdoc/classes/Tuple.html +168 -0
  1383. data/doc/main-rdoc/classes/Tuple.src/M000024.html +19 -0
  1384. data/doc/main-rdoc/classes/Uninheritable.html +204 -0
  1385. data/doc/main-rdoc/classes/Uninheritable.src/M000680.html +18 -0
  1386. data/doc/main-rdoc/classes/Version.html +553 -0
  1387. data/doc/main-rdoc/classes/Version.src/M000046.html +18 -0
  1388. data/doc/main-rdoc/classes/Version.src/M000047.html +18 -0
  1389. data/doc/main-rdoc/classes/Version.src/M000048.html +26 -0
  1390. data/doc/main-rdoc/classes/Version.src/M000049.html +18 -0
  1391. data/doc/main-rdoc/classes/Version.src/M000050.html +18 -0
  1392. data/doc/main-rdoc/classes/Version.src/M000052.html +16 -0
  1393. data/doc/main-rdoc/classes/Version.src/M000053.html +16 -0
  1394. data/doc/main-rdoc/classes/Version.src/M000054.html +16 -0
  1395. data/doc/main-rdoc/classes/Version.src/M000055.html +18 -0
  1396. data/doc/main-rdoc/classes/Version.src/M000056.html +16 -0
  1397. data/doc/main-rdoc/classes/Version.src/M000057.html +16 -0
  1398. data/doc/main-rdoc/classes/Version.src/M000058.html +16 -0
  1399. data/doc/main-rdoc/classes/Version.src/M000059.html +16 -0
  1400. data/doc/main-rdoc/classes/Version.src/M000060.html +16 -0
  1401. data/doc/main-rdoc/classes/Version.src/M000061.html +16 -0
  1402. data/doc/main-rdoc/classes/Version.src/M000062.html +16 -0
  1403. data/doc/main-rdoc/classes/Version.src/M000063.html +16 -0
  1404. data/doc/main-rdoc/classes/Version.src/M000064.html +19 -0
  1405. data/doc/main-rdoc/classes/Version.src/M000065.html +21 -0
  1406. data/doc/main-rdoc/classes/Version.src/M000066.html +21 -0
  1407. data/doc/main-rdoc/classes/Version.src/M000067.html +21 -0
  1408. data/doc/main-rdoc/classes/Version.src/M000068.html +23 -0
  1409. data/doc/main-rdoc/classes/Version.src/M000069.html +21 -0
  1410. data/doc/main-rdoc/classes/Version.src/M000070.html +18 -0
  1411. data/doc/main-rdoc/created.rid +1 -0
  1412. data/doc/main-rdoc/files/README.html +267 -0
  1413. data/doc/main-rdoc/files/lib/facet/1st_rb.html +101 -0
  1414. data/doc/main-rdoc/files/lib/facet/ansicolor_rb.html +101 -0
  1415. data/doc/main-rdoc/files/lib/facet/array-indicies_rb.html +117 -0
  1416. data/doc/main-rdoc/files/lib/facet/array-slicers_rb.html +118 -0
  1417. data/doc/main-rdoc/files/lib/facet/array_rb.html +113 -0
  1418. data/doc/main-rdoc/files/lib/facet/base_rb.html +136 -0
  1419. data/doc/main-rdoc/files/lib/facet/bbcode_rb.html +101 -0
  1420. data/doc/main-rdoc/files/lib/facet/binaryreader_rb.html +108 -0
  1421. data/doc/main-rdoc/files/lib/facet/binding-of-caller_rb.html +108 -0
  1422. data/doc/main-rdoc/files/lib/facet/binding_rb.html +112 -0
  1423. data/doc/main-rdoc/files/lib/facet/bug_rb.html +101 -0
  1424. data/doc/main-rdoc/files/lib/facet/byteorder_rb.html +101 -0
  1425. data/doc/main-rdoc/files/lib/facet/bytes_rb.html +101 -0
  1426. data/doc/main-rdoc/files/lib/facet/cgi-extra_rb.html +110 -0
  1427. data/doc/main-rdoc/files/lib/facet/class_rb.html +110 -0
  1428. data/doc/main-rdoc/files/lib/facet/common_rb.html +138 -0
  1429. data/doc/main-rdoc/files/lib/facet/comparable_rb.html +110 -0
  1430. data/doc/main-rdoc/files/lib/facet/constants_rb.html +101 -0
  1431. data/doc/main-rdoc/files/lib/facet/continuation_rb.html +108 -0
  1432. data/doc/main-rdoc/files/lib/facet/coroutine_rb.html +101 -0
  1433. data/doc/main-rdoc/files/lib/facet/crosscase_rb.html +115 -0
  1434. data/doc/main-rdoc/files/lib/facet/delegate-binding_rb.html +101 -0
  1435. data/doc/main-rdoc/files/lib/facet/duckhunter_rb.html +101 -0
  1436. data/doc/main-rdoc/files/lib/facet/enumerable-args_rb.html +101 -0
  1437. data/doc/main-rdoc/files/lib/facet/enumerable_rb.html +112 -0
  1438. data/doc/main-rdoc/files/lib/facet/expect_rb.html +137 -0
  1439. data/doc/main-rdoc/files/lib/facet/file_rb.html +108 -0
  1440. data/doc/main-rdoc/files/lib/facet/filelist_rb.html +101 -0
  1441. data/doc/main-rdoc/files/lib/facet/fileutils-slicers_rb.html +110 -0
  1442. data/doc/main-rdoc/files/lib/facet/fileutils_rb.html +112 -0
  1443. data/doc/main-rdoc/files/lib/facet/float-rounding_rb.html +111 -0
  1444. data/doc/{files → main-rdoc/files}/lib/facet/float_rb.html +0 -0
  1445. data/doc/main-rdoc/files/lib/facet/floatstring_rb.html +101 -0
  1446. data/doc/main-rdoc/files/lib/facet/functor_rb.html +101 -0
  1447. data/doc/main-rdoc/files/lib/facet/harray_rb.html +101 -0
  1448. data/doc/main-rdoc/files/lib/facet/hash_rb.html +118 -0
  1449. data/doc/main-rdoc/files/lib/facet/heap_rb.html +101 -0
  1450. data/doc/main-rdoc/files/lib/facet/infinity_rb.html +126 -0
  1451. data/doc/main-rdoc/files/lib/facet/init_rb.html +101 -0
  1452. data/doc/main-rdoc/files/lib/facet/integer_rb.html +111 -0
  1453. data/doc/main-rdoc/files/lib/facet/interval_rb.html +109 -0
  1454. data/doc/main-rdoc/files/lib/facet/io-reactor_rb.html +109 -0
  1455. data/doc/main-rdoc/files/lib/facet/io-redirect_rb.html +101 -0
  1456. data/doc/main-rdoc/files/lib/facet/kernel_rb.html +116 -0
  1457. data/doc/main-rdoc/files/lib/facet/lisp-format_rb.html +101 -0
  1458. data/doc/main-rdoc/files/lib/facet/lisp_rb.html +101 -0
  1459. data/doc/main-rdoc/files/lib/facet/macro_rb.html +101 -0
  1460. data/doc/main-rdoc/files/lib/facet/matchdata_rb.html +110 -0
  1461. data/doc/main-rdoc/files/lib/facet/module_rb.html +109 -0
  1462. data/doc/main-rdoc/files/lib/facet/multiton_rb.html +101 -0
  1463. data/doc/main-rdoc/files/lib/facet/nack_rb.html +130 -0
  1464. data/doc/main-rdoc/files/lib/facet/nack_rb.src/M000002.html +22 -0
  1465. data/doc/main-rdoc/files/lib/facet/nil-as-emptiness_rb.html +132 -0
  1466. data/doc/main-rdoc/files/lib/facet/nil-comparable_rb.html +101 -0
  1467. data/doc/main-rdoc/files/lib/facet/nil-missing_rb.html +101 -0
  1468. data/doc/main-rdoc/files/lib/facet/nil_rb.html +109 -0
  1469. data/doc/main-rdoc/files/lib/facet/notcopyable_rb.html +101 -0
  1470. data/doc/main-rdoc/files/lib/facet/numeric_rb.html +110 -0
  1471. data/doc/main-rdoc/files/lib/facet/object_rb.html +120 -0
  1472. data/doc/main-rdoc/files/lib/facet/orderedhash_rb.html +101 -0
  1473. data/doc/main-rdoc/files/lib/facet/ostruct_rb.html +110 -0
  1474. data/doc/main-rdoc/files/lib/facet/ostructable_rb.html +101 -0
  1475. data/doc/main-rdoc/files/lib/facet/parser_rb.html +136 -0
  1476. data/doc/main-rdoc/files/lib/facet/parser_rb.src/M000001.html +16 -0
  1477. data/doc/main-rdoc/files/lib/facet/proc_rb.html +109 -0
  1478. data/doc/main-rdoc/files/lib/facet/rand_rb.html +124 -0
  1479. data/doc/main-rdoc/files/lib/facet/range_rb.html +110 -0
  1480. data/doc/main-rdoc/files/lib/facet/ref_rb.html +101 -0
  1481. data/doc/main-rdoc/files/lib/facet/regexp_rb.html +109 -0
  1482. data/doc/main-rdoc/files/lib/facet/semaphore_rb.html +114 -0
  1483. data/doc/main-rdoc/files/lib/facet/snapshot_rb.html +101 -0
  1484. data/doc/main-rdoc/files/lib/facet/soundex_rb.html +101 -0
  1485. data/doc/main-rdoc/files/lib/facet/statichash_rb.html +101 -0
  1486. data/doc/main-rdoc/files/lib/facet/string-inflect_rb.html +116 -0
  1487. data/doc/main-rdoc/files/lib/facet/string_rb.html +115 -0
  1488. data/doc/main-rdoc/files/lib/facet/superstruct_rb.html +101 -0
  1489. data/doc/main-rdoc/files/lib/facet/symbol_rb.html +110 -0
  1490. data/doc/main-rdoc/files/lib/facet/tagiter_rb.html +101 -0
  1491. data/doc/main-rdoc/files/lib/facet/time_rb.html +116 -0
  1492. data/doc/main-rdoc/files/lib/facet/timelimit_rb.html +108 -0
  1493. data/doc/main-rdoc/files/lib/facet/timer_rb.html +101 -0
  1494. data/doc/main-rdoc/files/lib/facet/times_rb.html +108 -0
  1495. data/doc/main-rdoc/files/lib/facet/tracepoint_rb.html +127 -0
  1496. data/doc/main-rdoc/files/lib/facet/tuple_rb.html +101 -0
  1497. data/doc/main-rdoc/files/lib/facet/uninheritable_rb.html +101 -0
  1498. data/doc/main-rdoc/files/lib/facet/version_rb.html +101 -0
  1499. data/doc/main-rdoc/fr_class_index.html +160 -0
  1500. data/doc/main-rdoc/fr_file_index.html +111 -0
  1501. data/doc/main-rdoc/fr_method_index.html +706 -0
  1502. data/doc/main-rdoc/index.html +24 -0
  1503. data/doc/main-rdoc/rdoc-style.css +208 -0
  1504. data/doc/sstruct.txt +204 -0
  1505. data/doc/tagiter.html +145 -0
  1506. data/lib/facet/1st.rb +81 -0
  1507. data/lib/facet/ansicolor.rb +139 -0
  1508. data/lib/facet/array-indicies.rb +12 -0
  1509. data/lib/facet/array-slicers.rb +13 -0
  1510. data/lib/facet/array.rb +3 -19
  1511. data/lib/facet/array/%5B%5D%3D.rb +43 -0
  1512. data/lib/facet/array/%5B%5D.rb +42 -0
  1513. data/lib/facet/array/body.rb +12 -0
  1514. data/lib/facet/array/combinations.rb +28 -96
  1515. data/lib/facet/array/delete_values.rb +20 -27
  1516. data/lib/facet/array/delete_values_at.rb +58 -0
  1517. data/lib/facet/array/each_combination.rb +46 -0
  1518. data/lib/facet/array/each_unique_pair.rb +37 -0
  1519. data/lib/facet/array/first%21.rb +12 -0
  1520. data/lib/facet/array/first%3D.rb +16 -0
  1521. data/lib/facet/array/foot.rb +13 -0
  1522. data/lib/facet/array/head.rb +10 -0
  1523. data/lib/facet/array/last%21.rb +12 -0
  1524. data/lib/facet/array/last%3D.rb +16 -0
  1525. data/lib/facet/array/permute.rb +30 -0
  1526. data/lib/facet/array/pos.rb +2 -2
  1527. data/lib/facet/array/pull.rb +2 -11
  1528. data/lib/facet/array/range.rb +1 -1
  1529. data/lib/facet/array/rotate%21.rb +23 -0
  1530. data/lib/facet/array/rotate.rb +5 -20
  1531. data/lib/facet/array/{select!.rb → select%21.rb} +0 -0
  1532. data/lib/facet/array/shuffle%21.rb +29 -0
  1533. data/lib/facet/array/shuffle.rb +4 -25
  1534. data/lib/facet/array/tail.rb +9 -0
  1535. data/lib/facet/array/top.rb +31 -0
  1536. data/lib/facet/base.rb +31 -0
  1537. data/lib/facet/bbcode.rb +366 -0
  1538. data/lib/facet/binaryreader.rb +194 -0
  1539. data/lib/facet/binding-of-caller.rb +123 -0
  1540. data/lib/facet/binding.rb +4 -11
  1541. data/lib/facet/binding/%5B%5D%3D.rb +26 -0
  1542. data/lib/facet/binding/%5B%5D.rb +26 -0
  1543. data/lib/facet/binding/called.rb +0 -15
  1544. data/lib/facet/binding/caller.rb +0 -2
  1545. data/lib/facet/binding/{defined?.rb → defined%3F.rb} +0 -0
  1546. data/lib/facet/binding/filename.rb +7 -0
  1547. data/lib/facet/binding/lineno.rb +0 -6
  1548. data/lib/facet/binding/local_variables.rb +0 -26
  1549. data/lib/facet/binding/method_name.rb +16 -0
  1550. data/lib/facet/binding/self.rb +0 -2
  1551. data/lib/facet/bug.rb +49 -0
  1552. data/lib/facet/byteorder.rb +64 -0
  1553. data/lib/facet/bytes.rb +91 -0
  1554. data/lib/facet/cgi-extra.rb +105 -0
  1555. data/lib/facet/class.rb +4 -5
  1556. data/lib/facet/class/cattr_accessor.rb +21 -0
  1557. data/lib/facet/class/cattr_reader.rb +30 -0
  1558. data/lib/facet/class/cattr_writer.rb +33 -0
  1559. data/lib/facet/common.rb +30 -0
  1560. data/lib/facet/comparable.rb +3 -4
  1561. data/lib/facet/comparable/at_least.rb +15 -0
  1562. data/lib/facet/comparable/at_most.rb +15 -0
  1563. data/lib/facet/comparable/bound_by.rb +0 -22
  1564. data/lib/facet/constants.rb +295 -0
  1565. data/lib/facet/continuation.rb +1 -4
  1566. data/lib/facet/coroutine.rb +123 -0
  1567. data/lib/facet/crosscase.rb +319 -0
  1568. data/lib/facet/date/days_in_month.rb +26 -0
  1569. data/lib/facet/date/days_of_month.rb +6 -0
  1570. data/lib/facet/date/stamp.rb +6 -0
  1571. data/lib/facet/date/to_date.rb +7 -0
  1572. data/lib/facet/date/to_s.rb +13 -0
  1573. data/lib/facet/date/to_time.rb +8 -0
  1574. data/lib/facet/{binding/delegate!.rb → delegate-binding.rb} +0 -0
  1575. data/lib/facet/duckhunter.rb +174 -0
  1576. data/lib/facet/enumerable-args.rb +143 -0
  1577. data/lib/facet/enumerable.rb +2 -11
  1578. data/lib/facet/enumerable/%25.rb +15 -0
  1579. data/lib/facet/enumerable/{**.rb → %2A%2A.rb} +0 -0
  1580. data/lib/facet/enumerable/collect_with_counter.rb +2 -5
  1581. data/lib/facet/enumerable/collect_with_index.rb +4 -0
  1582. data/lib/facet/enumerable/cross.rb +10 -4
  1583. data/lib/facet/enumerable/every.rb +3 -2
  1584. data/lib/facet/enumerable/graph.rb +0 -21
  1585. data/lib/facet/enumerable/map_with_counter.rb +4 -0
  1586. data/lib/facet/enumerable/map_with_index.rb +4 -0
  1587. data/lib/facet/enumerable/{none?.rb → none%3F.rb} +0 -0
  1588. data/lib/facet/enumerable/{one?.rb → one%3F.rb} +0 -0
  1589. data/lib/facet/enumerable/per.rb +0 -13
  1590. data/lib/facet/enumerable/to_hash.rb +0 -2
  1591. data/lib/facet/enumerable/uniq_by.rb +0 -1
  1592. data/lib/facet/expect.rb +192 -0
  1593. data/lib/facet/file.rb +1 -3
  1594. data/lib/facet/filelist.rb +291 -0
  1595. data/lib/facet/fileutils-slicers.rb +4 -0
  1596. data/lib/facet/fileutils.rb +5 -8
  1597. data/lib/facet/fileutils/head.rb +25 -0
  1598. data/lib/facet/fileutils/slice.rb +17 -0
  1599. data/lib/facet/fileutils/tail.rb +19 -0
  1600. data/lib/facet/float-rounding.rb +7 -0
  1601. data/lib/facet/float/approx%3F.rb +20 -0
  1602. data/lib/facet/float/round_at.rb +34 -0
  1603. data/lib/facet/float/round_off.rb +12 -0
  1604. data/lib/facet/float/round_to.rb +34 -0
  1605. data/lib/facet/floatstring.rb +177 -0
  1606. data/lib/facet/functor.rb +65 -0
  1607. data/lib/facet/harray.rb +532 -0
  1608. data/lib/facet/hash.rb +3 -17
  1609. data/lib/facet/hash/{<<.rb → %3C%3C.rb} +0 -0
  1610. data/lib/facet/hash/%5B%5D%3D.rb +22 -0
  1611. data/lib/facet/hash/%5B%5D.rb +20 -0
  1612. data/lib/facet/hash/{alias!.rb → alias%21.rb} +0 -0
  1613. data/lib/facet/hash/assert_has_keys%3F.rb +14 -0
  1614. data/lib/facet/hash/assert_has_only_keys%3F.rb +14 -0
  1615. data/lib/facet/hash/at.rb +3 -0
  1616. data/lib/facet/hash/at_rand%21.rb +10 -0
  1617. data/lib/facet/hash/at_rand.rb +2 -80
  1618. data/lib/facet/hash/collate%21.rb +7 -0
  1619. data/lib/facet/hash/collate.rb +0 -5
  1620. data/lib/facet/hash/graph%21.rb +7 -0
  1621. data/lib/facet/hash/graph.rb +26 -0
  1622. data/lib/facet/hash/has_keys%3F.rb +15 -0
  1623. data/lib/facet/hash/{has_keys?.rb → has_keys.rb} +0 -0
  1624. data/lib/facet/hash/has_only_keys%3F.rb +17 -0
  1625. data/lib/facet/hash/inverse.rb +0 -1
  1626. data/lib/facet/hash/keys_to_s%21.rb +27 -0
  1627. data/lib/facet/hash/keys_to_s.rb +4 -32
  1628. data/lib/facet/hash/keys_to_sym%21.rb +43 -0
  1629. data/lib/facet/hash/keys_to_sym.rb +3 -29
  1630. data/lib/facet/hash/rand_key%21.rb +21 -0
  1631. data/lib/facet/hash/rand_key.rb +16 -0
  1632. data/lib/facet/hash/rand_pair%21.rb +22 -0
  1633. data/lib/facet/hash/rand_pair.rb +18 -0
  1634. data/lib/facet/hash/rand_value%21.rb +24 -0
  1635. data/lib/facet/hash/rand_value.rb +18 -0
  1636. data/lib/facet/hash/{swap!.rb → swap%21.rb} +0 -0
  1637. data/lib/facet/hash/{swapkey!.rb → swapkey%21.rb} +0 -0
  1638. data/lib/facet/hash/to_ostruct.rb +0 -17
  1639. data/lib/facet/hash/to_ostruct_recurse.rb +17 -0
  1640. data/lib/facet/hash/traverse%21.rb +15 -0
  1641. data/lib/facet/hash/traverse.rb +0 -16
  1642. data/lib/facet/heap.rb +208 -0
  1643. data/lib/facet/infinity.rb +85 -0
  1644. data/lib/facet/init.rb +56 -0
  1645. data/lib/facet/integer.rb +5 -7
  1646. data/lib/facet/integer/even%3F.rb +12 -0
  1647. data/lib/facet/integer/fact.rb +12 -0
  1648. data/lib/facet/integer/factorial.rb +2 -13
  1649. data/lib/facet/integer/odd%3F.rb +12 -0
  1650. data/lib/facet/interval.rb +269 -0
  1651. data/lib/facet/io-reactor.rb +662 -0
  1652. data/lib/facet/io-redirect.rb +117 -0
  1653. data/lib/facet/kernel.rb +10 -15
  1654. data/lib/facet/kernel/call_stack.rb +1 -1
  1655. data/lib/facet/kernel/called.rb +0 -1
  1656. data/lib/facet/kernel/method_name.rb +1 -2
  1657. data/lib/facet/kernel/require_all.rb +0 -3
  1658. data/lib/facet/kernel/require_facet.rb +12 -0
  1659. data/lib/facet/kernel/resc.rb +0 -1
  1660. data/lib/facet/kernel/returning.rb +20 -0
  1661. data/lib/facet/kernel/warn_with_line.rb +1 -1
  1662. data/lib/facet/lisp-format.rb +1835 -0
  1663. data/lib/facet/lisp.rb +350 -0
  1664. data/lib/facet/macro.rb +97 -0
  1665. data/lib/facet/matchdata.rb +3 -5
  1666. data/lib/facet/matchdata/match.rb +1 -1
  1667. data/lib/facet/matchdata/matchset.rb +7 -0
  1668. data/lib/facet/matchdata/matchtree.rb +29 -0
  1669. data/lib/facet/module.rb +4 -10
  1670. data/lib/facet/module/attr.rb +73 -0
  1671. data/lib/facet/module/attr_accessor.rb +17 -0
  1672. data/lib/facet/module/attr_checker.rb +28 -0
  1673. data/lib/facet/module/attr_reader.rb +13 -0
  1674. data/lib/facet/module/attr_setter.rb +35 -0
  1675. data/lib/facet/module/attr_writer.rb +13 -0
  1676. data/lib/facet/module/include_as.rb +59 -0
  1677. data/lib/facet/module/initializer.rb +2 -1
  1678. data/lib/facet/module/key_attributes.rb +3 -1
  1679. data/lib/facet/module/methods.rb +2 -1
  1680. data/lib/facet/module/redef.rb +6 -0
  1681. data/lib/facet/module/redefine_method.rb +1 -6
  1682. data/lib/facet/module/sort_attributes.rb +0 -2
  1683. data/lib/facet/module/wrap.rb +6 -0
  1684. data/lib/facet/module/wrap_method.rb +1 -5
  1685. data/lib/facet/multiton.rb +167 -0
  1686. data/lib/facet/nack.rb +128 -0
  1687. data/lib/facet/nil-as-emptiness.rb +19 -18
  1688. data/lib/facet/nil-comparable.rb +92 -0
  1689. data/lib/facet/nil-missing.rb +44 -0
  1690. data/lib/facet/nil.rb +3 -13
  1691. data/lib/facet/nil/{[].rb → %5B%5D.rb} +0 -0
  1692. data/lib/facet/nil/blank%3F.rb +10 -0
  1693. data/lib/facet/nil/empty%3F.rb +10 -0
  1694. data/lib/facet/nil/{include?.rb → include%3F.rb} +0 -0
  1695. data/lib/facet/nil/length.rb +0 -9
  1696. data/lib/facet/nil/size.rb +10 -0
  1697. data/lib/facet/notcopyable.rb +82 -0
  1698. data/lib/facet/numeric.rb +4 -7
  1699. data/lib/facet/numeric/at_least.rb +15 -0
  1700. data/lib/facet/numeric/at_most.rb +15 -0
  1701. data/lib/facet/numeric/bound_by.rb +0 -22
  1702. data/lib/facet/numeric/cmp.rb +13 -0
  1703. data/lib/facet/numeric/octet_units.rb +4 -2
  1704. data/lib/facet/numeric/pred.rb +12 -0
  1705. data/lib/facet/numeric/succ.rb +0 -23
  1706. data/lib/facet/object.rb +4 -14
  1707. data/lib/facet/object/__class__.rb +0 -8
  1708. data/lib/facet/object/bool.rb +2 -0
  1709. data/lib/facet/object/boolean.rb +69 -0
  1710. data/lib/facet/object/constant.rb +3 -0
  1711. data/lib/facet/object/{in?.rb → in%3F.rb} +0 -0
  1712. data/lib/facet/object/new.rb +0 -19
  1713. data/lib/facet/object/object_class.rb +9 -0
  1714. data/lib/facet/object/set_from.rb +11 -0
  1715. data/lib/facet/object/set_with.rb +3 -15
  1716. data/lib/facet/object/singleton_class.rb +9 -0
  1717. data/lib/facet/object/special_class.rb +1 -37
  1718. data/lib/facet/object/super_method.rb +10 -0
  1719. data/lib/facet/object/super_send.rb +10 -0
  1720. data/lib/facet/object/supers.rb +31 -19
  1721. data/lib/facet/object/to_b.rb +7 -6
  1722. data/lib/facet/object/with_accessor.rb +4 -36
  1723. data/lib/facet/object/with_reader.rb +16 -0
  1724. data/lib/facet/object/with_writer.rb +18 -0
  1725. data/lib/facet/orderedhash.rb +270 -0
  1726. data/lib/facet/ostruct.rb +4 -6
  1727. data/lib/facet/ostruct/%5B%5D%3D.rb +16 -0
  1728. data/lib/facet/ostruct/%5B%5D.rb +16 -0
  1729. data/lib/facet/ostructable.rb +158 -0
  1730. data/lib/facet/parser.rb +418 -0
  1731. data/lib/facet/proc.rb +1 -4
  1732. data/lib/facet/proc/%2A.rb +7 -0
  1733. data/lib/facet/proc/compose.rb +0 -1
  1734. data/lib/facet/proc/to_method.rb +6 -8
  1735. data/lib/facet/rand.rb +12 -3
  1736. data/lib/facet/range.rb +2 -5
  1737. data/lib/facet/range/to_r.rb +0 -9
  1738. data/lib/facet/range/to_range.rb +11 -0
  1739. data/lib/facet/range/{within?.rb → within%3F.rb} +0 -0
  1740. data/lib/facet/ref.rb +60 -0
  1741. data/lib/facet/regexp.rb +2 -5
  1742. data/lib/facet/regexp/to_re.rb +1 -11
  1743. data/lib/facet/regexp/to_regexp.rb +9 -0
  1744. data/lib/facet/semaphore.rb +89 -0
  1745. data/lib/facet/snapshot.rb +111 -0
  1746. data/lib/facet/soundex.rb +126 -0
  1747. data/lib/facet/statichash.rb +62 -0
  1748. data/lib/facet/string-inflect.rb +9 -0
  1749. data/lib/facet/string.rb +1 -29
  1750. data/lib/facet/string/at_rand%21.rb +20 -0
  1751. data/lib/facet/string/at_rand.rb +0 -83
  1752. data/lib/facet/string/{blank?.rb → blank%3F.rb} +0 -0
  1753. data/lib/facet/string/braket%21.rb +7 -0
  1754. data/lib/facet/string/braket.rb +1 -9
  1755. data/lib/facet/string/camelize.rb +6 -0
  1756. data/lib/facet/string/capitalized%3F.rb +16 -0
  1757. data/lib/facet/string/chars.rb +0 -23
  1758. data/lib/facet/string/class_name.rb +8 -0
  1759. data/lib/facet/string/demodulize.rb +5 -0
  1760. data/lib/facet/string/downcase%3F.rb +16 -0
  1761. data/lib/facet/string/dresner.rb +1 -0
  1762. data/lib/facet/string/each_char.rb +10 -0
  1763. data/lib/facet/string/first%3D.rb +21 -0
  1764. data/lib/facet/string/first.rb +56 -0
  1765. data/lib/facet/string/first_char.rb +23 -0
  1766. data/lib/facet/string/foreign_key.rb +7 -0
  1767. data/lib/facet/string/fuzzy_match.rb +8 -3
  1768. data/lib/facet/string/humanize.rb +5 -0
  1769. data/lib/facet/string/indent.rb +14 -0
  1770. data/lib/facet/string/last%3D.rb +21 -0
  1771. data/lib/facet/string/last.rb +59 -0
  1772. data/lib/facet/string/last_char.rb +25 -0
  1773. data/lib/facet/string/lowercase%3F.rb +7 -0
  1774. data/lib/facet/string/plural.rb +25 -0
  1775. data/lib/facet/string/pluralize.rb +4 -0
  1776. data/lib/facet/string/rand_byte%21.rb +17 -0
  1777. data/lib/facet/string/rand_byte.rb +12 -0
  1778. data/lib/facet/string/rand_char%21.rb +20 -0
  1779. data/lib/facet/string/rand_char.rb +12 -0
  1780. data/lib/facet/string/rand_index.rb +11 -0
  1781. data/lib/facet/string/range.rb +0 -25
  1782. data/lib/facet/string/range_all.rb +24 -0
  1783. data/lib/facet/string/shuffle%21.rb +15 -0
  1784. data/lib/facet/string/shuffle.rb +1 -38
  1785. data/lib/facet/string/shuffle_chars%21.rb +15 -0
  1786. data/lib/facet/string/shuffle_chars.rb +12 -0
  1787. data/lib/facet/string/singular.rb +30 -0
  1788. data/lib/facet/string/singularize.rb +4 -0
  1789. data/lib/facet/string/succ.rb +0 -1
  1790. data/lib/facet/string/tab.rb +0 -28
  1791. data/lib/facet/string/table_name.rb +8 -0
  1792. data/lib/facet/string/tabto.rb +15 -0
  1793. data/lib/facet/string/top.rb +11 -0
  1794. data/lib/facet/string/underscore.rb +5 -0
  1795. data/lib/facet/string/unix_crypt%21.rb +7 -0
  1796. data/lib/facet/string/unix_crypt.rb +0 -5
  1797. data/lib/facet/string/upcase%3F.rb +16 -0
  1798. data/lib/facet/string/uppercase%3F.rb +7 -0
  1799. data/lib/facet/string/{word_filter!.rb → word_filter.rb} +0 -0
  1800. data/lib/facet/string/word_wrap%21.rb +25 -0
  1801. data/lib/facet/string/word_wrap.rb +9 -14
  1802. data/lib/facet/superstruct.rb +241 -0
  1803. data/lib/facet/symbol.rb +2 -10
  1804. data/lib/facet/symbol/%7E.rb +10 -0
  1805. data/lib/facet/symbol/not%3F.rb +6 -0
  1806. data/lib/facet/tagiter.rb +363 -0
  1807. data/lib/facet/time.rb +7 -5
  1808. data/lib/facet/time/change.rb +17 -0
  1809. data/lib/facet/time/custom_format.rb +1 -30
  1810. data/lib/facet/time/elapse.rb +3 -4
  1811. data/lib/facet/time/stamp.rb +6 -0
  1812. data/lib/facet/time/to_date.rb +7 -0
  1813. data/lib/facet/time/to_s.rb +15 -0
  1814. data/lib/facet/time/to_time.rb +7 -0
  1815. data/lib/facet/timelimit.rb +120 -0
  1816. data/lib/facet/timer.rb +112 -0
  1817. data/lib/facet/times.rb +262 -0
  1818. data/lib/facet/tracepoint.rb +171 -0
  1819. data/lib/facet/tuple.rb +45 -0
  1820. data/lib/facet/uninheritable.rb +68 -0
  1821. data/lib/facet/version.rb +154 -0
  1822. data/lib/facets.rb +17 -0
  1823. data/test/array/tc_array.rb +78 -42
  1824. data/test/binding/tc_binding.rb +8 -4
  1825. data/test/class/tc_class.rb +5 -1
  1826. data/test/date/tc_date.rb +40 -0
  1827. data/test/enumerable/tc_enumerable.rb +4 -2
  1828. data/test/fileutils/tc_fileutils.rb +71 -0
  1829. data/test/float/tc_float.rb +4 -15
  1830. data/test/hash/tc_hash.rb +8 -5
  1831. data/test/hash/tc_slice-op.rb +99 -0
  1832. data/test/integer/tc_integer.rb +3 -1
  1833. data/test/kernel/tc_kernel.rb +40 -22
  1834. data/test/kernel/testfile.rb +4 -0
  1835. data/test/matchdata/tc_matchdata.rb +42 -27
  1836. data/test/module/tc_module.rb +71 -6
  1837. data/test/module/{tc_redef.rb → tc_module2.rb} +0 -0
  1838. data/test/nil/tc_nil.rb +5 -4
  1839. data/test/numeric/tc_numeric.rb +82 -78
  1840. data/test/object/tc_new.rb +16 -0
  1841. data/test/object/tc_object.rb +58 -14
  1842. data/test/object/tc_supers.rb +2 -0
  1843. data/test/ostruct/tc_ostruct.rb +10 -2
  1844. data/test/proc/tc_proc.rb +1 -0
  1845. data/test/range/tc_range.rb +2 -1
  1846. data/test/regexp/tc_regexp.rb +1 -0
  1847. data/test/string/tc_string.rb +121 -31
  1848. data/test/symbol/tc_symbol.rb +18 -8
  1849. data/test/tc_1st.rb +16 -0
  1850. data/test/tc_ansicolor.rb +22 -0
  1851. data/test/tc_attr.rb +46 -0
  1852. data/test/tc_bbcode.rb +20 -0
  1853. data/test/tc_binaryreader.rb +14 -0
  1854. data/test/tc_binding_of_caller.rb +2 -0
  1855. data/test/tc_byteorder.rb +41 -0
  1856. data/test/tc_constants.rb +12 -0
  1857. data/test/tc_coroutine.rb +50 -0
  1858. data/test/tc_crosscase.rb +33 -0
  1859. data/test/tc_duckhunter.rb +37 -0
  1860. data/test/tc_enumerable-args.rb +66 -0
  1861. data/test/tc_filelist.rb +17 -0
  1862. data/test/tc_fixtures/filelist/testfile.txt +1 -0
  1863. data/test/tc_fixtures/filelist/testfile2.txt +1 -0
  1864. data/test/tc_floatstring.rb +22 -0
  1865. data/test/tc_functor.rb +18 -0
  1866. data/test/tc_harray.rb +280 -0
  1867. data/test/tc_heap.rb +6 -0
  1868. data/test/tc_infinity.rb +23 -0
  1869. data/test/tc_init.rb +29 -0
  1870. data/test/tc_interval.rb +153 -0
  1871. data/test/tc_io-reactor.rb +5 -0
  1872. data/test/tc_io-redirect.rb +5 -0
  1873. data/test/tc_lisp-format.rb +24 -0
  1874. data/test/tc_lisp.rb +32 -0
  1875. data/test/tc_macro.rb +48 -0
  1876. data/test/tc_multiton.rb +188 -0
  1877. data/test/tc_nack.rb +31 -0
  1878. data/test/tc_nil-as-emptiness.rb +19 -0
  1879. data/test/tc_nil-comparable.rb +29 -0
  1880. data/test/tc_nil-missing.rb +0 -0
  1881. data/test/tc_notcopyable.rb +64 -0
  1882. data/test/tc_orderedhash.rb +36 -0
  1883. data/test/tc_ostructable.rb +31 -0
  1884. data/test/tc_semaphore.rb +5 -0
  1885. data/test/tc_snapshot.rb +20 -0
  1886. data/test/tc_soundex.rb +19 -0
  1887. data/test/tc_statichash.rb +24 -0
  1888. data/test/tc_superstruct.rb +313 -0
  1889. data/test/tc_tagiter.rb +80 -0
  1890. data/test/tc_timelimit.rb +47 -0
  1891. data/test/tc_timer.rb +35 -0
  1892. data/test/tc_tracepoint.rb +10 -0
  1893. data/test/tc_tuple.rb +25 -0
  1894. data/test/tc_uninheritable.rb +33 -0
  1895. data/test/tc_version.rb +90 -0
  1896. data/test/time/tc_time.rb +33 -2
  1897. metadata +1977 -724
  1898. data/LICENSE-GPL +0 -341
  1899. data/LICENSE-RUBY +0 -60
  1900. data/VERSION +0 -7
  1901. data/doc/classes/Array.html +0 -1267
  1902. data/doc/classes/Array.src/M000027.html +0 -19
  1903. data/doc/classes/Array.src/M000028.html +0 -23
  1904. data/doc/classes/Array.src/M000029.html +0 -18
  1905. data/doc/classes/Array.src/M000030.html +0 -18
  1906. data/doc/classes/Array.src/M000031.html +0 -18
  1907. data/doc/classes/Array.src/M000032.html +0 -18
  1908. data/doc/classes/Array.src/M000033.html +0 -18
  1909. data/doc/classes/Array.src/M000034.html +0 -18
  1910. data/doc/classes/Array.src/M000035.html +0 -18
  1911. data/doc/classes/Array.src/M000036.html +0 -20
  1912. data/doc/classes/Array.src/M000037.html +0 -31
  1913. data/doc/classes/Array.src/M000046.html +0 -20
  1914. data/doc/classes/Array.src/M000049.html +0 -19
  1915. data/doc/classes/Array.src/M000050.html +0 -24
  1916. data/doc/classes/Array.src/M000052.html +0 -18
  1917. data/doc/classes/Array.src/M000053.html +0 -25
  1918. data/doc/classes/Array.src/M000054.html +0 -19
  1919. data/doc/classes/Array.src/M000055.html +0 -26
  1920. data/doc/classes/Array.src/M000056.html +0 -19
  1921. data/doc/classes/Array.src/M000057.html +0 -28
  1922. data/doc/classes/Array.src/M000058.html +0 -21
  1923. data/doc/classes/Binding.html +0 -420
  1924. data/doc/classes/Binding.src/M000202.html +0 -19
  1925. data/doc/classes/Binding.src/M000204.html +0 -19
  1926. data/doc/classes/Binding.src/M000205.html +0 -19
  1927. data/doc/classes/Binding.src/M000206.html +0 -18
  1928. data/doc/classes/Binding.src/M000207.html +0 -18
  1929. data/doc/classes/Binding.src/M000208.html +0 -18
  1930. data/doc/classes/Binding.src/M000209.html +0 -18
  1931. data/doc/classes/Binding.src/M000210.html +0 -18
  1932. data/doc/classes/Binding.src/M000211.html +0 -18
  1933. data/doc/classes/Binding.src/M000212.html +0 -18
  1934. data/doc/classes/Binding.src/M000213.html +0 -27
  1935. data/doc/classes/Binding.src/M000214.html +0 -22
  1936. data/doc/classes/Class.html +0 -216
  1937. data/doc/classes/Class.src/M000184.html +0 -20
  1938. data/doc/classes/Class.src/M000185.html +0 -20
  1939. data/doc/classes/Class.src/M000186.html +0 -19
  1940. data/doc/classes/Comparable.html +0 -190
  1941. data/doc/classes/Comparable.src/M000367.html +0 -18
  1942. data/doc/classes/Comparable.src/M000368.html +0 -18
  1943. data/doc/classes/Continuation.html +0 -188
  1944. data/doc/classes/Enumerable.html +0 -648
  1945. data/doc/classes/Enumerable.src/M000345.html +0 -22
  1946. data/doc/classes/Enumerable.src/M000346.html +0 -18
  1947. data/doc/classes/Enumerable.src/M000349.html +0 -18
  1948. data/doc/classes/Enumerable.src/M000356.html +0 -31
  1949. data/doc/classes/Enumerable.src/M000359.html +0 -29
  1950. data/doc/classes/Enumerable.src/M000362.html +0 -20
  1951. data/doc/classes/Enumerable.src/M000363.html +0 -18
  1952. data/doc/classes/File.html +0 -149
  1953. data/doc/classes/FileUtils.html +0 -332
  1954. data/doc/classes/FileUtils.src/M000328.html +0 -28
  1955. data/doc/classes/FileUtils.src/M000329.html +0 -18
  1956. data/doc/classes/FileUtils.src/M000330.html +0 -18
  1957. data/doc/classes/Float.html +0 -180
  1958. data/doc/classes/Float.src/M000181.html +0 -18
  1959. data/doc/classes/Float.src/M000182.html +0 -19
  1960. data/doc/classes/Float.src/M000183.html +0 -19
  1961. data/doc/classes/Functor.html +0 -190
  1962. data/doc/classes/Functor.src/M000195.html +0 -16
  1963. data/doc/classes/Functor.src/M000196.html +0 -16
  1964. data/doc/classes/Hash.html +0 -1319
  1965. data/doc/classes/Hash.src/M000064.html +0 -18
  1966. data/doc/classes/Hash.src/M000065.html +0 -22
  1967. data/doc/classes/Hash.src/M000066.html +0 -23
  1968. data/doc/classes/Hash.src/M000067.html +0 -21
  1969. data/doc/classes/Hash.src/M000069.html +0 -18
  1970. data/doc/classes/Hash.src/M000070.html +0 -22
  1971. data/doc/classes/Hash.src/M000073.html +0 -19
  1972. data/doc/classes/Hash.src/M000075.html +0 -24
  1973. data/doc/classes/Hash.src/M000078.html +0 -18
  1974. data/doc/classes/Hash.src/M000080.html +0 -20
  1975. data/doc/classes/Hash.src/M000083.html +0 -18
  1976. data/doc/classes/Hash.src/M000084.html +0 -20
  1977. data/doc/classes/Hash.src/M000086.html +0 -19
  1978. data/doc/classes/Hash.src/M000087.html +0 -20
  1979. data/doc/classes/Hash.src/M000090.html +0 -19
  1980. data/doc/classes/Hash.src/M000091.html +0 -22
  1981. data/doc/classes/Hash.src/M000092.html +0 -18
  1982. data/doc/classes/Hash.src/M000096.html +0 -19
  1983. data/doc/classes/Hash.src/M000097.html +0 -19
  1984. data/doc/classes/Hash.src/M000098.html +0 -18
  1985. data/doc/classes/Hash.src/M000099.html +0 -18
  1986. data/doc/classes/Hash.src/M000101.html +0 -24
  1987. data/doc/classes/Integer.html +0 -248
  1988. data/doc/classes/Integer.src/M000008.html +0 -18
  1989. data/doc/classes/Integer.src/M000009.html +0 -18
  1990. data/doc/classes/Integer.src/M000010.html +0 -21
  1991. data/doc/classes/Kernel.html +0 -520
  1992. data/doc/classes/Kernel.src/M000337.html +0 -18
  1993. data/doc/classes/Kernel.src/M000338.html +0 -24
  1994. data/doc/classes/Kernel.src/M000339.html +0 -19
  1995. data/doc/classes/Kernel.src/M000342.html +0 -19
  1996. data/doc/classes/Kernel.src/M000344.html +0 -18
  1997. data/doc/classes/MatchData.html +0 -208
  1998. data/doc/classes/MatchData.src/M000107.html +0 -21
  1999. data/doc/classes/MatchData.src/M000108.html +0 -21
  2000. data/doc/classes/Module.html +0 -648
  2001. data/doc/classes/Module.src/M000112.html +0 -32
  2002. data/doc/classes/Module.src/M000114.html +0 -24
  2003. data/doc/classes/Module.src/M000122.html +0 -23
  2004. data/doc/classes/Module.src/M000123.html +0 -24
  2005. data/doc/classes/NilClass.html +0 -336
  2006. data/doc/classes/NilClass.src/M000187.html +0 -18
  2007. data/doc/classes/NilClass.src/M000189.html +0 -16
  2008. data/doc/classes/NilClass.src/M000192.html +0 -16
  2009. data/doc/classes/NilClass.src/M000193.html +0 -16
  2010. data/doc/classes/NilClass.src/M000194.html +0 -16
  2011. data/doc/classes/Numeric.html +0 -1122
  2012. data/doc/classes/Numeric.src/M000127.html +0 -18
  2013. data/doc/classes/Numeric.src/M000128.html +0 -18
  2014. data/doc/classes/Numeric.src/M000129.html +0 -18
  2015. data/doc/classes/Numeric.src/M000130.html +0 -29
  2016. data/doc/classes/Numeric.src/M000132.html +0 -18
  2017. data/doc/classes/Numeric.src/M000133.html +0 -18
  2018. data/doc/classes/Numeric.src/M000135.html +0 -18
  2019. data/doc/classes/Numeric.src/M000138.html +0 -18
  2020. data/doc/classes/Numeric.src/M000141.html +0 -18
  2021. data/doc/classes/Numeric.src/M000144.html +0 -18
  2022. data/doc/classes/Numeric.src/M000148.html +0 -19
  2023. data/doc/classes/Numeric.src/M000149.html +0 -18
  2024. data/doc/classes/Numeric.src/M000151.html +0 -18
  2025. data/doc/classes/Numeric.src/M000153.html +0 -18
  2026. data/doc/classes/Numeric.src/M000155.html +0 -18
  2027. data/doc/classes/Numeric.src/M000157.html +0 -18
  2028. data/doc/classes/Numeric.src/M000159.html +0 -18
  2029. data/doc/classes/Numeric.src/M000161.html +0 -18
  2030. data/doc/classes/Numeric.src/M000163.html +0 -18
  2031. data/doc/classes/Numeric.src/M000165.html +0 -18
  2032. data/doc/classes/Numeric.src/M000167.html +0 -18
  2033. data/doc/classes/Numeric.src/M000169.html +0 -18
  2034. data/doc/classes/Numeric.src/M000171.html +0 -18
  2035. data/doc/classes/Numeric.src/M000174.html +0 -18
  2036. data/doc/classes/Numeric.src/M000179.html +0 -18
  2037. data/doc/classes/Numeric.src/M000180.html +0 -18
  2038. data/doc/classes/Object.html +0 -923
  2039. data/doc/classes/Object.src/M000216.html +0 -20
  2040. data/doc/classes/Object.src/M000219.html +0 -26
  2041. data/doc/classes/Object.src/M000220.html +0 -20
  2042. data/doc/classes/Object.src/M000221.html +0 -18
  2043. data/doc/classes/Object.src/M000222.html +0 -18
  2044. data/doc/classes/Object.src/M000224.html +0 -18
  2045. data/doc/classes/Object.src/M000226.html +0 -18
  2046. data/doc/classes/Object.src/M000228.html +0 -19
  2047. data/doc/classes/Object.src/M000229.html +0 -19
  2048. data/doc/classes/Object.src/M000230.html +0 -21
  2049. data/doc/classes/Object.src/M000232.html +0 -18
  2050. data/doc/classes/Object.src/M000234.html +0 -19
  2051. data/doc/classes/Object.src/M000235.html +0 -19
  2052. data/doc/classes/Object.src/M000236.html +0 -19
  2053. data/doc/classes/Object.src/M000240.html +0 -18
  2054. data/doc/classes/Object.src/M000241.html +0 -18
  2055. data/doc/classes/Object.src/M000242.html +0 -18
  2056. data/doc/classes/OpenStruct.html +0 -206
  2057. data/doc/classes/OpenStruct.src/M000200.html +0 -19
  2058. data/doc/classes/OpenStruct.src/M000201.html +0 -20
  2059. data/doc/classes/Proc.html +0 -184
  2060. data/doc/classes/Range.html +0 -247
  2061. data/doc/classes/Range.src/M000003.html +0 -23
  2062. data/doc/classes/Range.src/M000006.html +0 -18
  2063. data/doc/classes/Regexp.html +0 -205
  2064. data/doc/classes/Regexp.src/M000022.html +0 -18
  2065. data/doc/classes/Regexp.src/M000023.html +0 -18
  2066. data/doc/classes/ScriptBug.html +0 -111
  2067. data/doc/classes/String.html +0 -1930
  2068. data/doc/classes/String.src/M000243.html +0 -27
  2069. data/doc/classes/String.src/M000244.html +0 -18
  2070. data/doc/classes/String.src/M000245.html +0 -18
  2071. data/doc/classes/String.src/M000246.html +0 -18
  2072. data/doc/classes/String.src/M000249.html +0 -18
  2073. data/doc/classes/String.src/M000257.html +0 -20
  2074. data/doc/classes/String.src/M000258.html +0 -20
  2075. data/doc/classes/String.src/M000262.html +0 -23
  2076. data/doc/classes/String.src/M000263.html +0 -24
  2077. data/doc/classes/String.src/M000264.html +0 -23
  2078. data/doc/classes/String.src/M000265.html +0 -23
  2079. data/doc/classes/String.src/M000266.html +0 -18
  2080. data/doc/classes/String.src/M000267.html +0 -18
  2081. data/doc/classes/String.src/M000268.html +0 -19
  2082. data/doc/classes/String.src/M000269.html +0 -19
  2083. data/doc/classes/String.src/M000270.html +0 -18
  2084. data/doc/classes/String.src/M000271.html +0 -18
  2085. data/doc/classes/String.src/M000272.html +0 -19
  2086. data/doc/classes/String.src/M000273.html +0 -18
  2087. data/doc/classes/String.src/M000274.html +0 -72
  2088. data/doc/classes/String.src/M000275.html +0 -20
  2089. data/doc/classes/String.src/M000277.html +0 -21
  2090. data/doc/classes/String.src/M000278.html +0 -25
  2091. data/doc/classes/String.src/M000279.html +0 -18
  2092. data/doc/classes/String.src/M000280.html +0 -21
  2093. data/doc/classes/String.src/M000281.html +0 -18
  2094. data/doc/classes/String.src/M000282.html +0 -23
  2095. data/doc/classes/String.src/M000283.html +0 -18
  2096. data/doc/classes/String.src/M000284.html +0 -21
  2097. data/doc/classes/String.src/M000285.html +0 -28
  2098. data/doc/classes/String.src/M000287.html +0 -18
  2099. data/doc/classes/String.src/M000289.html +0 -18
  2100. data/doc/classes/String.src/M000291.html +0 -18
  2101. data/doc/classes/String.src/M000294.html +0 -18
  2102. data/doc/classes/String.src/M000296.html +0 -22
  2103. data/doc/classes/String.src/M000297.html +0 -18
  2104. data/doc/classes/String.src/M000298.html +0 -22
  2105. data/doc/classes/String.src/M000299.html +0 -21
  2106. data/doc/classes/String.src/M000300.html +0 -18
  2107. data/doc/classes/String.src/M000302.html +0 -18
  2108. data/doc/classes/String.src/M000303.html +0 -18
  2109. data/doc/classes/String.src/M000304.html +0 -18
  2110. data/doc/classes/String/Format.html +0 -279
  2111. data/doc/classes/String/Format.src/M000316.html +0 -18
  2112. data/doc/classes/String/Format.src/M000317.html +0 -18
  2113. data/doc/classes/String/Format.src/M000318.html +0 -18
  2114. data/doc/classes/String/Format.src/M000320.html +0 -18
  2115. data/doc/classes/String/Format.src/M000321.html +0 -18
  2116. data/doc/classes/String/Format.src/M000322.html +0 -18
  2117. data/doc/classes/String/Format.src/M000323.html +0 -18
  2118. data/doc/classes/String/Format.src/M000324.html +0 -18
  2119. data/doc/classes/String/Format.src/M000325.html +0 -18
  2120. data/doc/classes/String/Inflect.html +0 -221
  2121. data/doc/classes/String/Inflect.src/M000310.html +0 -18
  2122. data/doc/classes/String/Inflect.src/M000311.html +0 -18
  2123. data/doc/classes/String/Inflect.src/M000312.html +0 -22
  2124. data/doc/classes/String/Inflect.src/M000313.html +0 -22
  2125. data/doc/classes/String/Inflect.src/M000314.html +0 -30
  2126. data/doc/classes/String/Inflect.src/M000315.html +0 -31
  2127. data/doc/classes/Symbol.html +0 -380
  2128. data/doc/classes/Symbol.src/M000012.html +0 -18
  2129. data/doc/classes/Symbol.src/M000013.html +0 -18
  2130. data/doc/classes/Time.html +0 -227
  2131. data/doc/classes/Time.src/M000025.html +0 -51
  2132. data/doc/classes/Time.src/M000026.html +0 -21
  2133. data/doc/created.rid +0 -1
  2134. data/doc/files/LICENSE-GPL.html +0 -537
  2135. data/doc/files/LICENSE-RUBY.html +0 -166
  2136. data/doc/files/README.html +0 -252
  2137. data/doc/files/lib/facet/all-base-common_rb.html +0 -101
  2138. data/doc/files/lib/facet/all-base_rb.html +0 -133
  2139. data/doc/files/lib/facet/array/[[]]_rb.html +0 -108
  2140. data/doc/files/lib/facet/array/[]_rb.html +0 -108
  2141. data/doc/files/lib/facet/array/combinations_rb.html +0 -101
  2142. data/doc/files/lib/facet/array/delete_values_rb.html +0 -101
  2143. data/doc/files/lib/facet/array/first&last_rb.html +0 -101
  2144. data/doc/files/lib/facet/array/get_rb.html +0 -101
  2145. data/doc/files/lib/facet/array/head&tail_rb.html +0 -101
  2146. data/doc/files/lib/facet/array/middle_rb.html +0 -101
  2147. data/doc/files/lib/facet/array/pos_rb.html +0 -101
  2148. data/doc/files/lib/facet/array/pull_rb.html +0 -101
  2149. data/doc/files/lib/facet/array/range_rb.html +0 -101
  2150. data/doc/files/lib/facet/array/rotate_rb.html +0 -101
  2151. data/doc/files/lib/facet/array/select!_rb.html +0 -101
  2152. data/doc/files/lib/facet/array/shuffle_rb.html +0 -101
  2153. data/doc/files/lib/facet/array/to_b_rb.html +0 -101
  2154. data/doc/files/lib/facet/array_rb.html +0 -120
  2155. data/doc/files/lib/facet/binding/called_rb.html +0 -108
  2156. data/doc/files/lib/facet/binding/caller_rb.html +0 -108
  2157. data/doc/files/lib/facet/binding/defined?_rb.html +0 -108
  2158. data/doc/files/lib/facet/binding/delegate!_rb.html +0 -101
  2159. data/doc/files/lib/facet/binding/lineno_rb.html +0 -108
  2160. data/doc/files/lib/facet/binding/local_variables_rb.html +0 -108
  2161. data/doc/files/lib/facet/binding/self_rb.html +0 -108
  2162. data/doc/files/lib/facet/binding_rb.html +0 -118
  2163. data/doc/files/lib/facet/class/cattr_rb.html +0 -101
  2164. data/doc/files/lib/facet/class_rb.html +0 -114
  2165. data/doc/files/lib/facet/comparable/bound_by_rb.html +0 -101
  2166. data/doc/files/lib/facet/comparable_rb.html +0 -114
  2167. data/doc/files/lib/facet/continuation_rb.html +0 -114
  2168. data/doc/files/lib/facet/enumerable/**_rb.html +0 -108
  2169. data/doc/files/lib/facet/enumerable/collect_with_counter_rb.html +0 -101
  2170. data/doc/files/lib/facet/enumerable/cross_rb.html +0 -108
  2171. data/doc/files/lib/facet/enumerable/every_rb.html +0 -108
  2172. data/doc/files/lib/facet/enumerable/graph_rb.html +0 -101
  2173. data/doc/files/lib/facet/enumerable/none?_rb.html +0 -101
  2174. data/doc/files/lib/facet/enumerable/one?_rb.html +0 -101
  2175. data/doc/files/lib/facet/enumerable/per_rb.html +0 -108
  2176. data/doc/files/lib/facet/enumerable/to_hash_rb.html +0 -101
  2177. data/doc/files/lib/facet/enumerable/uniq_by_rb.html +0 -101
  2178. data/doc/files/lib/facet/enumerable_rb.html +0 -118
  2179. data/doc/files/lib/facet/file/split_all_rb.html +0 -101
  2180. data/doc/files/lib/facet/file_rb.html +0 -114
  2181. data/doc/files/lib/facet/fileutils/head&tail_rb.html +0 -108
  2182. data/doc/files/lib/facet/fileutils/whereis_rb.html +0 -108
  2183. data/doc/files/lib/facet/fileutils_rb.html +0 -115
  2184. data/doc/files/lib/facet/float/round_rb.html +0 -101
  2185. data/doc/files/lib/facet/hash/<<_rb.html +0 -101
  2186. data/doc/files/lib/facet/hash/[]_rb.html +0 -101
  2187. data/doc/files/lib/facet/hash/alias!_rb.html +0 -101
  2188. data/doc/files/lib/facet/hash/at_rand_rb.html +0 -101
  2189. data/doc/files/lib/facet/hash/collate_rb.html +0 -101
  2190. data/doc/files/lib/facet/hash/collect_rb.html +0 -108
  2191. data/doc/files/lib/facet/hash/has_keys?_rb.html +0 -101
  2192. data/doc/files/lib/facet/hash/inverse_rb.html +0 -101
  2193. data/doc/files/lib/facet/hash/keys_to_s_rb.html +0 -101
  2194. data/doc/files/lib/facet/hash/keys_to_sym_rb.html +0 -101
  2195. data/doc/files/lib/facet/hash/swap!_rb.html +0 -101
  2196. data/doc/files/lib/facet/hash/swapkey!_rb.html +0 -101
  2197. data/doc/files/lib/facet/hash/to_ostruct_rb.html +0 -108
  2198. data/doc/files/lib/facet/hash/traverse_rb.html +0 -101
  2199. data/doc/files/lib/facet/hash_rb.html +0 -115
  2200. data/doc/files/lib/facet/integer/evenodd?_rb.html +0 -101
  2201. data/doc/files/lib/facet/integer/factorial_rb.html +0 -101
  2202. data/doc/files/lib/facet/integer/times_collect_rb.html +0 -101
  2203. data/doc/files/lib/facet/integer_rb.html +0 -116
  2204. data/doc/files/lib/facet/kernel/bug!_rb.html +0 -101
  2205. data/doc/files/lib/facet/kernel/call_stack_rb.html +0 -101
  2206. data/doc/files/lib/facet/kernel/called_rb.html +0 -108
  2207. data/doc/files/lib/facet/kernel/maybe_rb.html +0 -101
  2208. data/doc/files/lib/facet/kernel/method_name_rb.html +0 -108
  2209. data/doc/files/lib/facet/kernel/require_all_rb.html +0 -101
  2210. data/doc/files/lib/facet/kernel/require_local_rb.html +0 -101
  2211. data/doc/files/lib/facet/kernel/resc_rb.html +0 -101
  2212. data/doc/files/lib/facet/kernel/warn_with_line_rb.html +0 -101
  2213. data/doc/files/lib/facet/kernel_rb.html +0 -120
  2214. data/doc/files/lib/facet/matchdata/match_from_rb.html +0 -108
  2215. data/doc/files/lib/facet/matchdata/match_rb.html +0 -101
  2216. data/doc/files/lib/facet/matchdata_rb.html +0 -115
  2217. data/doc/files/lib/facet/module/initializer_rb.html +0 -101
  2218. data/doc/files/lib/facet/module/key_attributes_rb.html +0 -101
  2219. data/doc/files/lib/facet/module/memoize_rb.html +0 -130
  2220. data/doc/files/lib/facet/module/methods_rb.html +0 -101
  2221. data/doc/files/lib/facet/module/redefine_method_rb.html +0 -101
  2222. data/doc/files/lib/facet/module/sort_attributes_rb.html +0 -101
  2223. data/doc/files/lib/facet/module/wrap_method_rb.html +0 -101
  2224. data/doc/files/lib/facet/module_rb.html +0 -116
  2225. data/doc/files/lib/facet/nil-as-emptiness_rb.html +0 -130
  2226. data/doc/files/lib/facet/nil/[]_rb.html +0 -101
  2227. data/doc/files/lib/facet/nil/empty?_rb.html +0 -101
  2228. data/doc/files/lib/facet/nil/include?_rb.html +0 -101
  2229. data/doc/files/lib/facet/nil/length_rb.html +0 -101
  2230. data/doc/files/lib/facet/nil_rb.html +0 -115
  2231. data/doc/files/lib/facet/numeric/bound_by_rb.html +0 -101
  2232. data/doc/files/lib/facet/numeric/bytes_rb.html +0 -101
  2233. data/doc/files/lib/facet/numeric/octet_units_rb.html +0 -108
  2234. data/doc/files/lib/facet/numeric/succ_rb.html +0 -101
  2235. data/doc/files/lib/facet/numeric/times_rb.html +0 -101
  2236. data/doc/files/lib/facet/numeric_rb.html +0 -114
  2237. data/doc/files/lib/facet/object/__class___rb.html +0 -101
  2238. data/doc/files/lib/facet/object/bool?_rb.html +0 -101
  2239. data/doc/files/lib/facet/object/constant_rb.html +0 -101
  2240. data/doc/files/lib/facet/object/in?_rb.html +0 -101
  2241. data/doc/files/lib/facet/object/new_rb.html +0 -101
  2242. data/doc/files/lib/facet/object/set_with_rb.html +0 -101
  2243. data/doc/files/lib/facet/object/special_class_rb.html +0 -101
  2244. data/doc/files/lib/facet/object/supers_rb.html +0 -108
  2245. data/doc/files/lib/facet/object/to_b_rb.html +0 -108
  2246. data/doc/files/lib/facet/object/to_bool_rb.html +0 -101
  2247. data/doc/files/lib/facet/object/with_accessor_rb.html +0 -101
  2248. data/doc/files/lib/facet/object_rb.html +0 -120
  2249. data/doc/files/lib/facet/ostruct/[]_rb.html +0 -108
  2250. data/doc/files/lib/facet/ostruct_rb.html +0 -115
  2251. data/doc/files/lib/facet/proc/compose_rb.html +0 -101
  2252. data/doc/files/lib/facet/proc/to_method_rb.html +0 -138
  2253. data/doc/files/lib/facet/proc/to_method_rb.src/M000001.html +0 -29
  2254. data/doc/files/lib/facet/proc_rb.html +0 -115
  2255. data/doc/files/lib/facet/rand_rb.html +0 -120
  2256. data/doc/files/lib/facet/range/to_r_rb.html +0 -101
  2257. data/doc/files/lib/facet/range/within?_rb.html +0 -108
  2258. data/doc/files/lib/facet/range_rb.html +0 -116
  2259. data/doc/files/lib/facet/regexp/to_re_rb.html +0 -101
  2260. data/doc/files/lib/facet/regexp_rb.html +0 -115
  2261. data/doc/files/lib/facet/string/at_rand_rb.html +0 -108
  2262. data/doc/files/lib/facet/string/blank?_rb.html +0 -101
  2263. data/doc/files/lib/facet/string/braket_rb.html +0 -101
  2264. data/doc/files/lib/facet/string/camelcase_rb.html +0 -101
  2265. data/doc/files/lib/facet/string/case?_rb.html +0 -101
  2266. data/doc/files/lib/facet/string/chars_rb.html +0 -101
  2267. data/doc/files/lib/facet/string/dresner_rb.html +0 -101
  2268. data/doc/files/lib/facet/string/first&last_rb.html +0 -101
  2269. data/doc/files/lib/facet/string/format_rb.html +0 -101
  2270. data/doc/files/lib/facet/string/fuzzy_match_rb.html +0 -101
  2271. data/doc/files/lib/facet/string/inflect_rb.html +0 -101
  2272. data/doc/files/lib/facet/string/rand_letter_rb.html +0 -101
  2273. data/doc/files/lib/facet/string/range_rb.html +0 -101
  2274. data/doc/files/lib/facet/string/shuffle_rb.html +0 -101
  2275. data/doc/files/lib/facet/string/succ_rb.html +0 -101
  2276. data/doc/files/lib/facet/string/tab_rb.html +0 -101
  2277. data/doc/files/lib/facet/string/unix_crypt_rb.html +0 -108
  2278. data/doc/files/lib/facet/string/word_filter!_rb.html +0 -101
  2279. data/doc/files/lib/facet/string/word_wrap_rb.html +0 -101
  2280. data/doc/files/lib/facet/string_rb.html +0 -122
  2281. data/doc/files/lib/facet/symbol/camelcase_rb.html +0 -101
  2282. data/doc/files/lib/facet/symbol/~_rb.html +0 -101
  2283. data/doc/files/lib/facet/symbol_rb.html +0 -116
  2284. data/doc/files/lib/facet/time/custom_format_rb.html +0 -108
  2285. data/doc/files/lib/facet/time/elapse_rb.html +0 -101
  2286. data/doc/files/lib/facet/time_rb.html +0 -107
  2287. data/doc/fr_class_index.html +0 -54
  2288. data/doc/fr_file_index.html +0 -239
  2289. data/doc/fr_method_index.html +0 -394
  2290. data/lib/facet-dev/README +0 -11
  2291. data/lib/facet-dev/advice.rb +0 -70
  2292. data/lib/facet-dev/array/**.rb +0 -17
  2293. data/lib/facet-dev/array/at_rand.rb +0 -95
  2294. data/lib/facet-dev/array/each_slice.rb +0 -23
  2295. data/lib/facet-dev/array/pick_values.rb +0 -32
  2296. data/lib/facet-dev/array/remove.rb +0 -21
  2297. data/lib/facet-dev/arraysplit.tar.gz +0 -0
  2298. data/lib/facet-dev/binding/class.rb +0 -11
  2299. data/lib/facet-dev/binding/delegate.rb +0 -15
  2300. data/lib/facet-dev/binding/proc.rb +0 -6
  2301. data/lib/facet-dev/class_include.rb +0 -13
  2302. data/lib/facet-dev/enumerable/[].rb +0 -30
  2303. data/lib/facet-dev/enumerable/rand.rb +0 -412
  2304. data/lib/facet-dev/fileutils/mv_f.rb +0 -6
  2305. data/lib/facet-dev/fileutils/nl_convert.rb +0 -69
  2306. data/lib/facet-dev/fileutils/tc_nlconvert.rb +0 -60
  2307. data/lib/facet-dev/kernel/call_line.rb +0 -15
  2308. data/lib/facet-dev/kernel/does.rb +0 -7
  2309. data/lib/facet-dev/kernel/eval.rb +0 -24
  2310. data/lib/facet-dev/kernel/message.rb +0 -6
  2311. data/lib/facet-dev/module/preserved.rb +0 -108
  2312. data/lib/facet-dev/object/==.rb +0 -49
  2313. data/lib/facet-dev/object/>>.rb +0 -50
  2314. data/lib/facet-dev/object/all.rb +0 -11
  2315. data/lib/facet-dev/object/query.rb +0 -15
  2316. data/lib/facet-dev/object/respond_with_value.rb +0 -14
  2317. data/lib/facet-dev/rails/class_attribute_accessors.rb +0 -57
  2318. data/lib/facet-dev/rails/class_inheritable_attributes.rb +0 -117
  2319. data/lib/facet-dev/rails/clean_logger.rb +0 -10
  2320. data/lib/facet-dev/rails/dependencies.rb +0 -63
  2321. data/lib/facet-dev/rails/inflector.rb +0 -84
  2322. data/lib/facet-dev/rails/misc.rb +0 -8
  2323. data/lib/facet-dev/rails/module_attribute_accessors.rb +0 -57
  2324. data/lib/facet-dev/rails/object_and_class.rb +0 -24
  2325. data/lib/facet-dev/string/+.rb +0 -19
  2326. data/lib/facet-dev/string/pred.rb +0 -123
  2327. data/lib/facet-dev/string/slash.rb +0 -15
  2328. data/lib/facet-dev/string/strip.rb +0 -32
  2329. data/lib/facet-dev/string/succ_distance.rb +0 -112
  2330. data/lib/facet-dev/string/tc_pred.rb +0 -96
  2331. data/lib/facet-dev/string/word_wrap.rb +0 -62
  2332. data/lib/facet-dev/taint.rb +0 -10
  2333. data/lib/facet/all-base-common.rb +0 -13
  2334. data/lib/facet/all-base.rb +0 -27
  2335. data/lib/facet/array/[[]].rb +0 -42
  2336. data/lib/facet/array/[].rb +0 -57
  2337. data/lib/facet/array/first&last.rb +0 -47
  2338. data/lib/facet/array/get.rb +0 -15
  2339. data/lib/facet/array/head&tail.rb +0 -33
  2340. data/lib/facet/class/cattr.rb +0 -82
  2341. data/lib/facet/fileutils/head&tail.rb +0 -65
  2342. data/lib/facet/float/round.rb +0 -33
  2343. data/lib/facet/hash/[].rb +0 -44
  2344. data/lib/facet/hash/collect.rb +0 -8
  2345. data/lib/facet/integer/evenodd?.rb +0 -25
  2346. data/lib/facet/kernel/bug!.rb +0 -25
  2347. data/lib/facet/matchdata/match_from.rb +0 -38
  2348. data/lib/facet/nil/empty?.rb +0 -19
  2349. data/lib/facet/numeric/bytes.rb +0 -51
  2350. data/lib/facet/numeric/times.rb +0 -106
  2351. data/lib/facet/object/bool?.rb +0 -49
  2352. data/lib/facet/object/to_bool.rb +0 -14
  2353. data/lib/facet/ostruct/[].rb +0 -29
  2354. data/lib/facet/string/case?.rb +0 -44
  2355. data/lib/facet/string/first&last.rb +0 -123
  2356. data/lib/facet/string/format.rb +0 -64
  2357. data/lib/facet/string/inflect.rb +0 -70
  2358. data/lib/facet/symbol/~.rb +0 -8
  2359. data/test/array/tc_brackets.rb +0 -16
  2360. data/test/fileutils/tc_head&tail.rb +0 -72
  2361. data/test/hash/tc_slice.rb +0 -98
  2362. data/test/kernel/test_file.rb +0 -3
  2363. data/test/object/tc_constant.rb +0 -21
  2364. data/test/object/tc_with_accessor.rb +0 -31
  2365. data/test/string/tc_fuzzy_match.rb +0 -2
  2366. data/test/string/tc_unix_crypt.rb +0 -2
  2367. data/test/t_require.rb +0 -4
@@ -0,0 +1,117 @@
1
+ #:title: IO::Redirect
2
+ #--
3
+ # IO::Redirect
4
+ # v 1.0
5
+ #
6
+ # Copyright (C) 2002 Paul Brannan <paul@atdesk.com>
7
+ # (Ported from Ruby Treasures)
8
+ #
9
+ # Ruby License
10
+ #
11
+ # This module is free software. You may use, modify, and/or redistribute this
12
+ # software under the same terms as Ruby.
13
+ #
14
+ # This program is distributed in the hope that it will be useful, but WITHOUT
15
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16
+ # FOR A PARTICULAR PURPOSE.
17
+ #
18
+ #
19
+ # $id: io-redirect.rb,v 1.0 2004/10/27 10:00:01 transami Exp $
20
+ #
21
+ # ==========================================================================
22
+ # Revision History ::
23
+ # YYYY.MM.DD Ver. Dev. Description
24
+ # --------------------------------------------------------------------------
25
+ # 2005.04.28 1.0 Trans * Minor modifications to documentation.
26
+ # ==========================================================================
27
+ #++
28
+
29
+ # = Description
30
+ #
31
+ # A class to redirect $stdout, or other IO object, to a StringIO object,
32
+ # or any other object with a write() method.
33
+ #
34
+ # == Synopsis
35
+ #
36
+ # require 'raspberry/new/io-redirect'
37
+ #
38
+ # s = StringIO.new
39
+ # r = Redirector.redirect($stdout, s) do
40
+ # $stdout.puts "this is a test"
41
+ # end
42
+ #
43
+ # == Author(s)
44
+ #
45
+ # * Paul Brannan
46
+ #
47
+
48
+ class IO::Redirect
49
+ VERSION = '1.0.0'
50
+
51
+ # Start redirection from one IO object to any other object with a
52
+ # write() method. +from+ is the IO object to redirect from,
53
+ # and +to+ is the object to redirect to.
54
+ def initialize(from, to)
55
+ @from = from
56
+ @to = to
57
+ start()
58
+ end
59
+
60
+ # Start redirection, if it has not already been started.
61
+ def start
62
+ raise "Redirection already in progress" if @t
63
+ tmp = @from.dup
64
+ r, w = IO.pipe
65
+ @from.reopen(w)
66
+ @t = Thread.new do
67
+ begin
68
+ loop do
69
+ s = r.read(1) # TODO: can I make this buffered?
70
+ @to.write(s)
71
+ end
72
+ ensure
73
+ @from.reopen(tmp)
74
+ @t = nil
75
+ end
76
+ end
77
+ end
78
+
79
+ # Stop redirection, if it is occurring
80
+ def stop
81
+ raise "Redirection already stopped" if not @t
82
+ @t.kill
83
+ end
84
+
85
+ # An exception-safe class method for redirection
86
+ def self.redirect(from, to)
87
+ s = self.new(from, to)
88
+ begin
89
+ yield
90
+ ensure
91
+ s.stop
92
+ end
93
+ end
94
+ end
95
+
96
+
97
+ # --- test ---
98
+
99
+ if __FILE__ == $0 then
100
+
101
+ class SimpleStringIO
102
+ attr_reader :str
103
+ def initialize; @str = ''; end
104
+ def write(str); @str << str; end
105
+ end
106
+
107
+ Thread.abort_on_exception = true
108
+ s = SimpleStringIO.new
109
+ r = Redirector.redirect($stdout, s) do
110
+ $stdout.puts "this is a test"
111
+ $stdout.puts "of the StringIO redirection system"
112
+ end
113
+ puts "Done redirecting."
114
+ puts "Result:\n#{s.str}"
115
+
116
+ end
117
+
data/lib/facet/kernel.rb CHANGED
@@ -1,18 +1,13 @@
1
1
 
2
- # base
3
- require "facet/kernel/fn"
4
- require "facet/kernel/called"
5
- require "facet/kernel/require_local"
2
+ # :title: Common Kernel Facets
6
3
 
7
- # common
8
- require "facet/kernel/call_stack"
9
- require "facet/kernel/require_local"
10
- require "facet/kernel/here"
11
- require "facet/kernel/maybe"
12
-
13
- # uncommon
14
- #require "facet/kernel/bug!"
15
- #require "facet/kernel/demo"
4
+ require 'facet/kernel/fn'
5
+ require 'facet/kernel/called'
6
+ require 'facet/kernel/method_name'
7
+ require 'facet/kernel/require_all'
8
+ require 'facet/kernel/require_local'
9
+ require 'facet/kernel/require_facet'
10
+ require 'facet/kernel/call_stack'
11
+ require 'facet/kernel/here'
12
+ require 'facet/kernel/maybe'
16
13
  #require 'facet/kernel/memoize'
17
- #require "facet/kernel/warn_with_line"
18
- #require 'facet/kernel/get_by_id'
@@ -18,7 +18,7 @@ module Kernel
18
18
  #
19
19
  # Note: If the user decides to redefine caller() to output data
20
20
  # in a different format, prior to requiring this, then the
21
- # results will indeterminate.
21
+ # results will be indeterminate.
22
22
  alias_method :pp_call_stack, :caller
23
23
  def call_stack(level=1)
24
24
  call_str_array = pp_call_stack(level)
@@ -1,4 +1,3 @@
1
- require 'facet/kernel/method_name'
2
1
  module Kernel
3
2
  # Retreive the current running method.
4
3
  # There is a lot of debate on what to call this.
@@ -1,11 +1,10 @@
1
- require 'facet/kernel/called'
2
1
  module Kernel
3
2
  # Retreive the current running method.
4
3
  # There is a lot of debate on what to call this.
5
4
  # #method_name differs from #called only by the fact
6
5
  # that it returns a string, rather then a symbol.
7
6
  #
8
- # require 'facet/main/called'
7
+ # require 'facet/main/method_name'
9
8
  #
10
9
  # def tester; p method_name; end
11
10
  # tester #=> "tester"
@@ -1,6 +1,4 @@
1
-
2
1
  module Kernel
3
-
4
2
  # Require a pattern of files. This make is easy
5
3
  # to require an entire directory, for instance.
6
4
  #
@@ -17,5 +15,4 @@ module Kernel
17
15
  end
18
16
  end
19
17
  end
20
-
21
18
  end
@@ -0,0 +1,12 @@
1
+ require 'uri'
2
+ module Kernel
3
+ # Require file with URI espace codes translated.
4
+ #
5
+ # require 'facet/kernel/require_facet'
6
+ #
7
+ # require_facet 'facet/array/[]'
8
+ #
9
+ def require_facet( fname )
10
+ require File.join( URI.escape(fname, /\W/) )
11
+ end
12
+ end
@@ -1,4 +1,3 @@
1
-
2
1
  module Kernel
3
2
  # Provides a shortcut to the Regexp.escape module method.
4
3
  def resc(x)
@@ -0,0 +1,20 @@
1
+ #--
2
+ # Courtesy of Mikael Brockman
3
+ #++
4
+ module Kernel
5
+ # A Ruby-ized realization of the K combinator.
6
+ #
7
+ # def foo
8
+ # returning values = [] do
9
+ # values << 'bar'
10
+ # values << 'baz'
11
+ # end
12
+ # end
13
+ #
14
+ # foo # => ['bar', 'baz']
15
+ #
16
+ def returning(value)
17
+ yield
18
+ value
19
+ end
20
+ end
@@ -3,7 +3,7 @@ module Kernel
3
3
  #
4
4
  # require 'facet/kernel/warn_with_line'
5
5
  #
6
- # warn_wtih_line("You have been warned.")
6
+ # warn_with_line("You have been warned.")
7
7
  #
8
8
  # _produces_
9
9
  #
@@ -0,0 +1,1835 @@
1
+ #:title: Lisp Format
2
+ #--
3
+ # Lisp Format
4
+ # v 0.3
5
+ #
6
+ # Copyright (C) 2003 Nikolai Weibull <source@pcppopper.org>.
7
+ #
8
+ # This library is free software; you can redistribute it and/or
9
+ # modify it under the terms of the GNU Lesser General Public
10
+ # License as published by the Free Software Foundation; either
11
+ # version 2.1 of the License, or (at your option) any later version.
12
+ #
13
+ # This library is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
+ # Lesser General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU Lesser General Public
19
+ # License along with this library; if not, write to the Free Software
20
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
+ #
22
+ #
23
+ # $id: lisp-format.rb,v 0.3 2004/10/27 10:00:01 transami Exp $
24
+ #
25
+ # ==========================================================================
26
+ # Revision History ::
27
+ # YYYY.MM.DD Ver. Dev. Description
28
+ # --------------------------------------------------------------------------
29
+ # 2004-11-16 0.3 TO * Ported en-masse as a "sub-space" of Lisp.
30
+ # 2003-12-08 0.2 NW * Releasing version 0.2.
31
+ # ==========================================================================
32
+ # To Do ::
33
+ # * the floating point functions are rather horendous
34
+ # ==========================================================================
35
+ #++
36
+
37
+ # = Description
38
+ #
39
+ # "So what is *ruby-lisp*?", you ask. Well, it is a module for implementing nice
40
+ # Lisp features for use in Ruby. Currently the only sub-module that exists is
41
+ # Lisp::Format, which implements Lisp's (format) function and its formatting
42
+ # language. For people not familiar with this language, it is a very expressive
43
+ # string formatting language, much like sprintf()'s, but much more powerful. It
44
+ # allows for iteration, case conversion, conditionals, and much more. If you
45
+ # have ever felt stupid while creating a string iteratively, to print an array or
46
+ # some such, this is definitely for you!
47
+ #
48
+ # This module contains various Lisp facilities that are of general usefulness.
49
+ # Lisp's rich string formatting language is implemented in the Format module.
50
+ # More modules may be added later.
51
+ #
52
+ # This has been (very simply) integrated into the namespace of Lsip from lisp.rb.
53
+ #
54
+ # == Author(s)
55
+ #
56
+ # * Nikolai Weibull <source@pcppopper.org>
57
+ #
58
+ # == More Information
59
+ #
60
+ # The project website for ruby-lisp is currently located at
61
+ # http://ned.rubyforge.org/.
62
+ #
63
+
64
+ #--
65
+ # This module contains various Lisp facilities that are of general usefulness.
66
+ # Lisp's rich string formatting language is implemented in the Format module.
67
+ # More modules may be added later.
68
+ #
69
+ # TODO: the floating point functions are rather horendous
70
+ #++
71
+ module Lisp
72
+ # This module implements the Common Lisp (format) function and it's language.
73
+ module Format
74
+ # An error, positioned somewhere in the input format. This is used to be
75
+ # able to show the user exactly where something failed in the input format
76
+ # string.
77
+ module Positioned
78
+ # Create at a given position.
79
+ def initialize(pos = -1)
80
+ @pos = pos
81
+ end
82
+
83
+ # The position at which the error occured.
84
+ attr :pos, true
85
+ end
86
+
87
+ # An argument was of the wrong type, or there aren't enough arguments.
88
+ class ArgumentError < ArgumentError; include Positioned; end
89
+
90
+ # An index was not valid. Used for argument jumping errors.
91
+ class IndexError < IndexError; include Positioned; end
92
+
93
+ # A parameter was wrong in some sense.
94
+ class ParameterError < ArgumentError; include Positioned; end
95
+
96
+ # The format string contained a syntax error.
97
+ class SyntaxError < SyntaxError; include Positioned; end
98
+
99
+ # The format string was ended before a parameter could be read.
100
+ class MissingParameterError < SyntaxError; end
101
+
102
+ # The format string was ended before a parameter could be completed.
103
+ class IncompleteParameterError < SyntaxError; end
104
+
105
+ # The format string was malformed somehow.
106
+ class MalformedError < SyntaxError; end
107
+
108
+ # A modifier was wrongly given, or there were too many of the same.
109
+ class ModifierError < SyntaxError; end
110
+
111
+ # Represents output for a State object.
112
+ class Output
113
+ # Create a new Output object.
114
+ def initialize(str = '', col = 0)
115
+ @output, @col = str, col
116
+ end
117
+
118
+ # Add +str+ to the output.
119
+ def <<(str)
120
+ if str.is_a? Fixnum
121
+ @output << str.chr
122
+ # How should tabs be handled here? They should perhaps be
123
+ # interpreted as eight (8) characters wide? This of course depends
124
+ # on where @col is already at (8 - @col % 8).
125
+ @col = str == ?\n ? 0 : @col + 1
126
+ else
127
+ @output << str
128
+ @col += str.length - (str.rindex(?\n) or 0)
129
+ end
130
+ end
131
+
132
+ # Convert this object to its string representation, which is the output
133
+ # gathered so far.
134
+ # TODO: this is rather silly
135
+ def to_s
136
+ @output
137
+ end
138
+
139
+ # The current output column.
140
+ attr :col, true
141
+ end
142
+
143
+ # This class represents the state of a given Formatter. It keeps track of
144
+ # output gathered and arguments left to be processed.
145
+ class State
146
+ # Create a state from arguments and a destination output
147
+ def initialize(args, output)
148
+ @args = args
149
+ @arg_pos = 0
150
+ @outputs = [output]
151
+ @case_conv = nil
152
+ end
153
+
154
+ # Push a new Output buffer to collect output in.
155
+ def push_output
156
+ @outputs << Output.new('', @outputs.last.col)
157
+ end
158
+
159
+ # Pop and return the latest output buffer.
160
+ def pop_output
161
+ @outputs.pop
162
+ end
163
+
164
+ # Delegates output to the top-most output buffer.
165
+ def output(str)
166
+ @outputs.last << str
167
+ end
168
+
169
+ # Retrieve the current output column.
170
+ def col
171
+ @outputs.last.col
172
+ end
173
+
174
+ # Retrieve the latest output buffer.
175
+ def latest_output
176
+ @outputs.last
177
+ end
178
+
179
+ # Move +n+ steps forward or backward depending on sign amongst the
180
+ # arguments. Movement is relative or absolute depending on the boolean
181
+ # value of +relative+.
182
+ def args_move(n = 1, relative = true)
183
+ @arg_pos = relative ? @arg_pos + n : n
184
+ raise IndexError.new,
185
+ 'too few arguments' if @arg_pos > @args.size
186
+ raise IndexError.new,
187
+ 'cannot move past first argument' if @arg_pos < 0
188
+ end
189
+
190
+ # Get the current argument and move forward one argument.
191
+ def next_arg
192
+ args_move(1, true)
193
+ @args[@arg_pos - 1]
194
+ end
195
+
196
+ # Get the previously returned argument, without moving.
197
+ def previous_arg
198
+ args_move(-1, relative)
199
+ next_arg
200
+ end
201
+
202
+ # Push back the previously returned argument.
203
+ def push_back_arg
204
+ args_move(-1, true)
205
+ end
206
+
207
+ # Get the number of arguments left to process
208
+ def args_left
209
+ @args.size - @arg_pos
210
+ end
211
+
212
+ attr :case_conv, true
213
+ end
214
+
215
+ # Given a format string, this class lexes it and returns directives it
216
+ # finds. This includes gathering parameters and modifiers for the coming
217
+ # directives. The necessary information to create a directive is gathered
218
+ # and then passed to Directives::Factory#build. Error checking
219
+ # is performed, so that incomplete parameters are caught and malformed
220
+ # modifiers are supressed.
221
+ class Lexer
222
+ @@errorstates = {
223
+ :START => [MissingParameterError,
224
+ 'format string ended before parameter was found'],
225
+ :CHAR => [IncompleteParameterError,
226
+ 'format string ended before character parameter could be read'],
227
+ :INTEGER => [IncompleteParameterError,
228
+ 'format string ended before integer parameter could be read'],
229
+ }
230
+
231
+ # Create a new Lexer using the given format string +format+.
232
+ def initialize(format)
233
+ @format = format
234
+ @pos = 0
235
+ end
236
+
237
+ # Read the next token, given the previous one in +previous+, and return
238
+ # it. This may either be a 'real' directive created by
239
+ # Directives::Factory#build, or a Literal created in-line. If no more
240
+ # tokens remain, +nil+ is returned.
241
+ def next_token(previous)
242
+ if have_more_input
243
+ ch = next_char
244
+ if ch == ?~
245
+ return Directives::Factory.build(params, modifiers, directive,
246
+ previous, @pos)
247
+ else
248
+ literal = Directives::Literal.new(ch.chr)
249
+ while have_more_input and (ch = peek_char) != ?~
250
+ literal << next_char.chr
251
+ end
252
+ literal << ch.chr if not have_more_input and ch == ?~
253
+ return [literal, 0]
254
+ end
255
+ else
256
+ return nil
257
+ end
258
+ end
259
+
260
+ private
261
+
262
+ # Returns +true+ if more input exists.
263
+ def have_more_input
264
+ @pos < @format.length
265
+ end
266
+
267
+ # Reads next character in input.
268
+ def next_char
269
+ @pos += 1
270
+ @format[@pos - 1]
271
+ end
272
+
273
+ # View the next character in input.
274
+ def peek_char
275
+ @format[@pos]
276
+ end
277
+
278
+ # Unread previously read character in input.
279
+ def unget_char
280
+ @pos -= 1
281
+ end
282
+
283
+ # Read parameters to the coming directive. Raises various errors
284
+ # sub-classed from PositionedError when given incomplete
285
+ # parameters, e.g. when it runs out of input.
286
+ def params
287
+ params = []
288
+ sign = 1
289
+ value = 0
290
+ state = :START
291
+ while have_more_input
292
+ ch = next_char
293
+ case state
294
+ when :START
295
+ case ch
296
+ when ?'
297
+ state = :CHAR
298
+ when ?V, ?v
299
+ params << Parameters::Argument.new(@pos)
300
+ state = :DONE
301
+ when ?#
302
+ params << Parameters::ArgumentCount.new(@pos)
303
+ state = :DONE
304
+ when ?,
305
+ params << Parameters::Default.new(@pos)
306
+ state = :START
307
+ when ?+, ?-, ?0, ?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9
308
+ sign = (ch == ?-) ? -1 : 1
309
+ value = (ch == ?+ or ch == ?-) ? 0 : (ch - ?0)
310
+ state = :INTEGER
311
+ else
312
+ unget_char
313
+ state = :DONE
314
+ end
315
+ when :INTEGER
316
+ if (?0..?9).to_a.include? ch
317
+ value = value * 10 + (ch - ?0)
318
+ else
319
+ unget_char
320
+ value *= sign
321
+ params << Parameters::Integer.new(@pos, value)
322
+ state = :DONE
323
+ end
324
+ when :CHAR
325
+ params << Parameters::Character.new(@pos, ch)
326
+ state = :DONE
327
+ when :DONE
328
+ if ch == ?,
329
+ state = :START
330
+ else
331
+ unget_char
332
+ break
333
+ end
334
+ end
335
+ end
336
+ unless state == :DONE
337
+ raise @@errorstates[state][0].new(@pos), @@errorstates[state][1]
338
+ end
339
+ return params
340
+ end
341
+
342
+ # Read modifiers to the coming directive. Raises ModifierError if
343
+ # a specific modifier is given more than once.
344
+ def modifiers
345
+ modifiers = []
346
+ while have_more_input
347
+ ch = next_char
348
+ if ch == ?: or ch == ?@
349
+ unless modifiers.include? ch
350
+ modifiers << ch
351
+ else
352
+ raise ModifierError.new(@pos), "duplicate #{ch.chr} modifier"
353
+ end
354
+ else
355
+ unget_char
356
+ break
357
+ end
358
+ end
359
+ return modifiers
360
+ end
361
+
362
+ # Reads the directive. Raises MalformedFormatError if no input
363
+ # remains to read the directive from.
364
+ def directive
365
+ unless have_more_input
366
+ raise MalformedFormatError.new(@pos),
367
+ 'format string ended before directive was found'
368
+ end
369
+ next_char
370
+ end
371
+ end
372
+
373
+ # Given a lexer, parses the tokens it constructs.
374
+ # It works, quite simply, by maintaining a stack of nesting levels and
375
+ # directives/tokens are added to the current stack level. When a directive
376
+ # removes a level of nesting the previous level's last directive gets
377
+ # connected, using Directive#connect.
378
+ class Parser
379
+ # Create a Parser, given a Lexer, +lexer+.
380
+ def initialize(lexer)
381
+ @lexer = lexer
382
+ end
383
+
384
+ # Do the actual parsing of the tokens. Returns a list of the
385
+ # top-level tokens to run.
386
+ def parse
387
+ stacks = [[]]
388
+ level = 0
389
+ until (token = @lexer.next_token(stacks[level>0?level-1:0].last)).nil?
390
+ directive = token[0]
391
+ nesting = token[1]
392
+ ntop = stacks[level].last.nil? ?
393
+ directive : stacks[level].last.join(directive)
394
+ stacks[level] << directive
395
+ if nesting > 0
396
+ stacks.push []
397
+ level += 1
398
+ elsif nesting < 0
399
+ directives = stacks.pop
400
+ level -= 1
401
+ stacks[level].last.connect directives
402
+ end
403
+ end
404
+ if stacks.size > 1
405
+ raise SyntaxError.new(stacks[-2].last.pos), 'unterminated directive'
406
+ end
407
+ return stacks[0]
408
+ end
409
+ end
410
+
411
+ # Engine for the format Lexer and Parser. Given an input format string and
412
+ # an initial State, it lets the Parser create the directives and then
413
+ # simply iterates over them, Directive#execute:ing them each.
414
+ class Formatter
415
+ # Create a Formatter from a String +format+ and a State +state+.
416
+ def initialize(format, state)
417
+ @parser, @state = Parser.new(Lexer.new(format)), state
418
+ end
419
+
420
+ # Parse and run the result.
421
+ def run
422
+ Format.execute_directives(@state, @parser.parse)
423
+ return @state.latest_output.to_s
424
+ end
425
+ end
426
+
427
+ # This module includes format parameter representation classes. These are
428
+ # passed to directives when they are created.
429
+ module Parameters
430
+ # Base class from which the sub-classes get their behavior. Every
431
+ # parameter should sub-class from this class.
432
+ class Parameter
433
+ # Create a parameter, found at +pos+ in the input format, and with
434
+ # +value+ as its value - if it has one.
435
+ def initialize(pos, value = nil)
436
+ @pos, @value = pos, value
437
+ end
438
+
439
+ # Retrieve this parameters value in the given State, using +default+ if
440
+ # it is not defined.
441
+ def value(state, default)
442
+ @value or default
443
+ end
444
+
445
+ # Position in the input format that this parameter was found.
446
+ attr :pos
447
+ end
448
+
449
+ # Represents the +V+ and +v+ parameters, which retrieve their value from
450
+ # the current argument.
451
+ class Argument < Parameter
452
+ # Retrieve this parameters value by getting the value of the current
453
+ # arguments integral value.
454
+ def value(state, default)
455
+ begin
456
+ arg = state.next_arg
457
+ rescue => e
458
+ e.pos = @pos if e.respond_to?(:pos) and e.pos == -1
459
+ raise
460
+ end
461
+ if arg.nil?
462
+ default
463
+ elsif arg.respond_to? :to_i
464
+ arg.to_i
465
+ else
466
+ raise ArgumentError.new(@pos),
467
+ 'argument not a number or a number string'
468
+ end
469
+ end
470
+ end
471
+
472
+ # Represents the <tt>#</tt> parameter, which retrieves the number of
473
+ # arguments left to process.
474
+ class ArgumentCount < Parameter
475
+ # Retrieve this parameters value by getting the number of arguments
476
+ # left to process.
477
+ def value(state, default)
478
+ state.args_left
479
+ end
480
+ end
481
+
482
+ # Parameter used when the parameter was not specified, so use its default
483
+ # value.
484
+ class Default < Parameter; end
485
+
486
+ # Represents integral parameters, specified directly in the input format.
487
+ class Integer < Parameter; end
488
+
489
+ # Represents character parameters, specified directly in the input
490
+ # format.
491
+ class Character < Parameter; end
492
+ end
493
+
494
+ # This module contains all the formatting directives that are defined in
495
+ # the Lisp formatting embedded language. The base class for all directives
496
+ # is aptly named Directive, and all directive classes should sub-class from
497
+ # it.
498
+ module Directives
499
+ # An unknown directive was found in the format string.
500
+ class UnknownDirectiveError < SyntaxError; end
501
+
502
+ # Represents a string literal in the input format. This is used for
503
+ # combining running lengths of characters with a single pseudo-directive.
504
+ class Literal < String
505
+ # Outputs the string literal this instance represents to the output
506
+ # stream.
507
+ def execute(state)
508
+ state.output self
509
+ end
510
+
511
+ # If the following directive is also a Literal, its contents is simply
512
+ # added to this ones, and returns self. Otherwise the other directive
513
+ # is returned.
514
+ def join(other)
515
+ other.is_a?(Literal) ? self << other : other
516
+ end
517
+ end
518
+
519
+ # Base class for formatting directives. This class makes it easy for
520
+ # sub-classes to access the parameters and modifiers that were given to
521
+ # it when created.
522
+ class Directive
523
+ # Given a set of parameters, modifiers, an owning directive if
524
+ # available, and a position in the output string, create a new
525
+ # Directive.
526
+ def initialize(params, modifiers, top, pos)
527
+ @params, @modifiers, @pos = params, modifiers, pos
528
+ end
529
+
530
+ # This method should be overridden in sub-classes. It gets called when
531
+ # the directive is to be executed. It does nothing by default.
532
+ def execute(state); end
533
+
534
+ # Join this directive with the following one, given in +other+. The
535
+ # default is to simply return +other+. The only known use for this is
536
+ # in SkipWhitespace, where some processing of other is done if it is a
537
+ # Literal.
538
+ def join(other)
539
+ other
540
+ end
541
+
542
+ # The position at which this directive occurs in the input string.
543
+ attr :pos
544
+
545
+ protected
546
+
547
+ # Read the +param+:th parameter in the Lisp::Format::State +state+,
548
+ # using +default+ as a default value if the parameter was not given.
549
+ def param(param, state, default)
550
+ param < @params.size ? @params[param].value(state, default) : default
551
+ end
552
+
553
+ # Check if the colon (<tt>:</tt>) modifier was given.
554
+ def colon_mod?
555
+ modifier? ?:
556
+ end
557
+
558
+ # Check if the at (<tt>@</tt>) modifier was given.
559
+ def at_mod?
560
+ modifier? ?@
561
+ end
562
+
563
+ # Check if the given +modifier+ was given. This method should not
564
+ # generally be called, as #colon_mod? and #at_mod? are easier and
565
+ # better to use.
566
+ def modifier?(modifier)
567
+ @modifiers.include? modifier
568
+ end
569
+
570
+ def arg_error(message)
571
+ raise ArgumentError.new(@pos), message
572
+ end
573
+
574
+ def param_error(pnum, message)
575
+ raise ParameterError.new(@params[pnum].pos), message
576
+ end
577
+ end
578
+
579
+ # Super-class for 'printing' directives, namely ~A (Ascii) and ~S
580
+ # (SExpression). These directives print, in some sense, their argument
581
+ # in a Ruby friendly manner. This means that their argument is either
582
+ # converted to a string using Object#to_s or Object#inspect.
583
+ class Print < Directive
584
+ # All parameters except +inspect+ are simply passed on to
585
+ # Directive#initialize. If +inspect+ is true, string arguments are
586
+ # inspected as well as all other objects.
587
+ def initialize(params, modifiers, top, pos, inspect = false)
588
+ super params, modifiers, top, pos
589
+ @inspect = inspect
590
+ end
591
+
592
+ # Output the given argument as it generally prints in Ruby. The full
593
+ # form is:
594
+ # ~mincol,colinc,minpad,padchar:@[AS]
595
+ # with the following interpretations
596
+ # [+mincol+ (0)]
597
+ # minimum number of columns to output,
598
+ # [+colinc+ (1)]
599
+ # number of columns to increase by, until +mincol+ is reached,
600
+ # [+minpad+ (0)]
601
+ # minimum amount of padding to add (added before +mincol+ is
602
+ # checked),
603
+ # [+padchar+ (?\s)]
604
+ # character to pad with,
605
+ # [:]
606
+ # +nil+ is output as +nil+ (In Lisp, this outputs +nil+ as
607
+ # <tt>()</tt>, which isn't generally useful in Ruby. TODO: come up
608
+ # with better use for this modifier),
609
+ # [@]
610
+ # padding is done on the right.
611
+ def execute(state)
612
+ padmethod = at_mod? ? :rjust : :ljust
613
+ mincol = param(0, state, 0)
614
+ colinc = param(1, state, 1)
615
+ minpad = param(2, state, 0)
616
+ padchar = param(3, state, ?\s).chr
617
+ arg = state.next_arg
618
+ # XXX: this needs checking use .to_s here?
619
+ str = (arg.is_a? String and not @inspect) ? arg.to_s : arg.inspect
620
+ str = str.send(padmethod, str.length + minpad, padchar)
621
+ k = ((mincol - str.length) / colinc.to_f).ceil
622
+ if k > 0
623
+ str = str.send(padmethod, str.length + colinc * k, padchar)
624
+ end
625
+ state.output str
626
+ end
627
+ end
628
+
629
+ # Represents the ~A (Ascii) directive.
630
+ class Ascii < Print; end
631
+
632
+ # Represents the ~S (S-Expression) directive.
633
+ class SExpression < Print
634
+ # Sets +inspect+ to +true+ in the argument list.
635
+ def initialize(*args)
636
+ super(*args << true)
637
+ end
638
+ end
639
+
640
+ # Super-class for number printing directives, namely ~D (Decimal, ~B
641
+ # (Binary), ~O (Octal), and ~X (Hexadecimal). The only difference
642
+ # between these directives is the output radix, which defaults to ten
643
+ # (10), which is decimal.
644
+ class Number < Directive
645
+ # Create a Number directive, using the given output radix +radix+.
646
+ def initialize(params, modifiers, top, pos, radix = 10)
647
+ super params, modifiers, top, pos
648
+ @radix = radix
649
+ end
650
+
651
+ # Output the given argument using its integral representation. The
652
+ # argument must respond to the :to_int message, or else it isn't
653
+ # considered an integer. This is the normal way in which Ruby
654
+ # operates. The full form is
655
+ # ~mincol,padchar,commachar,commainterval:@[DBOX]
656
+ # with the following interpretations
657
+ # [+mincol+ (0)]
658
+ # minimum number of columns to output,
659
+ # [+padchar+ (?\s)]
660
+ # character to pad with,
661
+ # [+commachar+ (,)]
662
+ # character to use for number grouping (see : below),
663
+ # [+commainterval+ (3)]
664
+ # how often to output +commachar+ above,
665
+ # [:]
666
+ # the number is output, with numbers grouped into +commainterval+
667
+ # sized groups of numbers, using +commachar+ as separator,
668
+ # [@]
669
+ # numbers are always output with sign prepended.
670
+ #
671
+ # An ArgumentError is raised if the argument does not respond to the
672
+ # #to_int message.
673
+ def execute(state)
674
+ mincol = param(0, state, 0)
675
+ padchar = param(1, state, ?\s).chr
676
+ commachar = param(2, state, ?,).chr
677
+ interval = param(3, state, 3)
678
+ arg = state.next_arg
679
+ if arg.respond_to? :to_int
680
+ num = arg.to_int
681
+ str = num.to_s(@radix)
682
+ if colon_mod?
683
+ str.gsub!(/(\d)(?=(\d{#{interval}})+(?!\d))/, "\\1#{commachar}")
684
+ end
685
+ str = '+' + str if at_mod? and num >= 0
686
+ # puts(str.rjust(mincol, '-'))
687
+ state.output str.rjust(mincol, padchar)
688
+ else
689
+ arg_error 'argument is not an integer'
690
+ end
691
+ end
692
+ end
693
+
694
+ # Represents the ~D (Decimal) directive.
695
+ class Decimal < Number; end
696
+
697
+ # Represents the ~B (Binary) directive.
698
+ class Binary < Number
699
+ # Set +radix+ to 2.
700
+ def initialize(args)
701
+ super(*args << 2)
702
+ end
703
+ end
704
+
705
+ # Represents the ~O (Octal) directive.
706
+ class Octal < Number
707
+ # Set +radix+ to 8.
708
+ def initialize(args)
709
+ super(*args << 8)
710
+ end
711
+ end
712
+
713
+ # Represents the ~X (Hexadecimal) directive.
714
+ class Hexadecimal < Number
715
+ # Set +radix+ to 16.
716
+ def initialize(args)
717
+ super(*args << 16)
718
+ end
719
+ end
720
+
721
+ # Represents the ~R (Radix) directive. This outputs numbers in a given
722
+ # radix, or using alternative forms, such as Roman numerals or
723
+ # cardinal/ordinal English numbers.
724
+ class Radix < Directive
725
+ @@names = {
726
+ 1 => 'one', 2 => 'two', 3 => 'three',
727
+ 4 => 'four', 5 => 'five', 6 => 'six',
728
+ 7 => 'seven', 8 => 'eight', 9 => 'nine',
729
+ 10 => 'ten', 11 => 'eleven', 12 => 'twelve',
730
+ 13 => 'thirteen', 14 => 'fourteen', 15 => 'fifteen',
731
+ 16 => 'sixteen', 17 => 'seventeen', 18 => 'eighteen',
732
+ 19 => 'nineteen', 20 => 'twenty', 30 => 'thirty',
733
+ 40 => 'forty', 50 => 'fifty', 60 => 'sixty',
734
+ 70 => 'seventy', 80 => 'eighty', 90 => 'ninety'
735
+ }
736
+ @@illions = %w[ \
737
+ thousand million billion trillion
738
+ quadrillion quintillion sextillion septillion
739
+ octillion nonillion decillion undecillion
740
+ duodecillion tredecillion quattuordecillion quindecillion
741
+ sexdecillion septendecillion octodecillion novemdecillion
742
+ vigintillion
743
+ ]
744
+ @@ordinal_ones = %w[
745
+ \ first second third fourth
746
+ fifth sixth seventh eight ninth
747
+ tenth eleventh twelfth thirteenth fourteenth
748
+ fifteenth sixteenth seventeenth eighteenth nineteenth
749
+ ]
750
+ @@ordinal_tens = %w[
751
+ \ \ twentieth thirtieth fortieth
752
+ fiftieth sixtieth seventieth eightieth ninetieth
753
+ ]
754
+ @@romans = [
755
+ [1000, 'M'], [900, 'CM'], [500, 'D'], [400, 'CD'], [100, 'C'],
756
+ [90, 'XC'], [50, 'L'], [40, 'XL'], [10, 'X'], [9, 'IX'],
757
+ [5, 'V'], [4, 'IV'], [1, 'I']
758
+ ]
759
+ @@old_romans = [
760
+ [1000, 'M'], [900, 'DCCCC'], [500, 'D'], [400, 'CCCC'],
761
+ [100, 'C'], [90, 'LXXXX'], [50, 'L'], [40, 'XXXX'],
762
+ [10, 'X'], [9, 'VIIII'], [5, 'V'], [4, 'IIII'],
763
+ [1, 'I']
764
+ ]
765
+
766
+ # Output the given argument using one of a variety of methods. Either
767
+ # the argument is output using a specific radix, using cardinal or
768
+ # ordinal English numbers, or Roman numerals. The full form is
769
+ # ~radix,mincol,padchar,commachar,commainterval:@R
770
+ # with the same interpretation as for ~D (Decimal / Number), but using
771
+ # the given +radix+ instead. An ArgumentError is raised if the
772
+ # argument is not an integer, or, in the case of Roman numerals, if the
773
+ # argument is not a Fixnum value.
774
+ #
775
+ # If none of the parameters are given the output instead depends on the
776
+ # combination of modifiers:
777
+ # [<em>no modifiers</em>]
778
+ # the number is output as a cardinal English number,
779
+ # [:]
780
+ # the number is output as an ordinal English number,
781
+ # [@]
782
+ # the number is output as a Roman numeral,
783
+ # [:@]
784
+ # the number is output as an old Roman numeral.
785
+ #
786
+ # An ArgumentError is raised if the argument is not an integer.
787
+ def execute(state)
788
+ if @params.size > 0
789
+ # XXX: may be ugly to modify these
790
+ n = @params.shift.value
791
+ Factory.build(@params, @modifiers, nil, @pos, n).execute(state)
792
+ else
793
+ arg = state.next_arg
794
+ if arg.respond_to? :to_int
795
+ conversion = :cardinal
796
+ conversion = :ordinal if colon_mod?
797
+ conversion = :roman if at_mod?
798
+ conversion = :old_roman if colon_mod? and at_mod?
799
+ state.output self.send(conversion, arg.to_int)
800
+ else
801
+ arg_error 'argument is not an integer'
802
+ end
803
+ end
804
+ end
805
+
806
+ private
807
+
808
+ # Convert the given number to a cardinal English number string.
809
+ def cardinal(n)
810
+ return 'zero' if n.zero?
811
+ out = []
812
+ negative = n < 0
813
+ n = n.abs
814
+ power = 0
815
+ while n > 0
816
+ before, after = n.divmod(1000)
817
+ if after > 0
818
+ block = cardinal_100s(after) + (power.zero? ? '' : ' ')
819
+ if power < @@illions.size
820
+ block << @@illions[power]
821
+ else
822
+ block << 'times ten to the ' + (power * 3).to_s + ' power'
823
+ end
824
+ out << block
825
+ end
826
+ n = before
827
+ power += 1
828
+ end
829
+ negative and out << 'minus'
830
+ out.reverse.join(', ')
831
+ end
832
+
833
+ # Deal with hundreds for cardinals.
834
+ def cardinal_100s(n)
835
+ out = []
836
+ q, r = n.divmod(100)
837
+ out << @@names[q] + ' hundred' if q > 0
838
+ if r >= 20
839
+ out << @@names[r / 10 * 10] + (r%10>0 ? '-' + @@names[r % 10] : '')
840
+ elsif r > 0
841
+ out << @@names[r]
842
+ end
843
+ out.join(' ')
844
+ end
845
+
846
+ # Convert the given number to an ordinal English number string.
847
+ def ordinal(n)
848
+ return 'zeroth' if n.zero?
849
+ out = []
850
+ if n < 0
851
+ out << 'minus'
852
+ n = n.abs
853
+ end
854
+ hundreds, tens_ones = n.divmod(100)
855
+ if hundreds > 0
856
+ out << cardinal(hundreds * 100) + (tens_ones.zero? ? 'th' : '')
857
+ end
858
+ if tens_ones >= 20
859
+ tens, ones = tens_ones.divmod(10)
860
+ if ones.zero?
861
+ out << @@ordinal_tens[tens]
862
+ else
863
+ out << @@names[tens * 10] + '-' + @@ordinal_ones[ones]
864
+ end
865
+ elsif tens_ones > 0
866
+ out << @@ordinal_ones[tens_ones]
867
+ end
868
+ out.join(' ')
869
+ end
870
+
871
+ # Helper method for roman numerals.
872
+ def roman_helper(n, table)
873
+ unless n.is_a? Fixnum
874
+ arg_error 'only Fixnum values can be converted to roman numerals'
875
+ end
876
+ out = []
877
+ table.each do |decimal, roman|
878
+ q, r = n.divmod(decimal)
879
+ if q > 0
880
+ out << roman * q
881
+ n = r
882
+ end
883
+ end
884
+ out.join('')
885
+ end
886
+
887
+ # Convert the given number to a Roman numeral.
888
+ def roman(n)
889
+ roman_helper(n, @@romans)
890
+ end
891
+
892
+ # Convert the given number to an old Roman numeral.
893
+ def old_roman(n)
894
+ roman_helper(n, @@old_romans)
895
+ end
896
+ end
897
+
898
+ # Represents the ~R (Plural) directive. It outputs English plural
899
+ # suffixes depending on the given argument.
900
+ class Plural < Directive
901
+ # Outputs the given argument as an English plural suffix depending on
902
+ # the arguments value. If arg is not #eql? to 1, a lowercase +s+ is
903
+ # output, else nothing is output. The meaning of modifiers are:
904
+ # [:]
905
+ # backs up one argument before checking,
906
+ # [@]
907
+ # outputs +y+ or +ies+ instead of +s+ and _nothing_,
908
+ # [:@]
909
+ # a combination of the two above.
910
+ def execute(state)
911
+ arg = colon_mod? ? state.previous_arg : state.next_arg
912
+ if at_mod?
913
+ state.output((arg.eql? 1) ? 'y' : 'ies')
914
+ else
915
+ state.output(?s) unless arg.eql? 1
916
+ end
917
+ end
918
+ end
919
+
920
+ # Represents the ~C (Character) directive. It outputs a character
921
+ # argument in one of several different representations depending on given
922
+ # modifiers.
923
+ # TODO: UNICODE this shit.
924
+ class Character < Directive
925
+ # Outputs the given argument in one of the ways described in the table
926
+ # below depending on given modifiers:
927
+ # [<tt>no modifiers</tt>]
928
+ # simply output the character as a normal character,
929
+ # [:]
930
+ # spells out control-bits on the input character, such as
931
+ # Control-Meta-X,
932
+ # [@]
933
+ # outputs the character in such as way that it can be read in by the
934
+ # Ruby interpreter again as input, using the ?_char_ syntax,
935
+ # [:@]
936
+ # has the same effect as : only. The CLTL2 suggests that this
937
+ # outputs unusual shift keys in a manner to make it easy to locate
938
+ # them on a keyboard, but since no such standard has arisen, this is
939
+ # not done.
940
+ def execute(state)
941
+ arg = state.next_arg
942
+ arg_error 'argument not a Fixnum' unless arg.is_a? Fixnum
943
+ ch = arg & 0xff
944
+ if colon_mod?
945
+ state.output('Control-') if (ch & 0x7f) < 0x1f
946
+ state.output('Meta-') if ch >= 0x7f
947
+ state.output(ch & 0x7f | 0x60)
948
+ elsif at_mod?
949
+ state.output('?' + convert_char(ch))
950
+ else
951
+ state.output ch
952
+ end
953
+ end
954
+
955
+ private
956
+
957
+ # Convert a character to a escaped character string if possible.
958
+ # XXX: This should perhaps only use \x or \NNN syntax
959
+ def convert_char(ch)
960
+ if [?\\, ?\n, ?\t, ?\r, ?\f, ?\v, ?\a, ?\e, ?\b, ?\s].include? ch
961
+ ch.chr.inspect[1..-2]
962
+ else
963
+ if (ch & 0x7f) < 0x1f
964
+ "\\C-" + convert_char(ch | 0x60)
965
+ elsif ch >= 0x7f
966
+ "\\M-" + convert_char(ch & 0x7f | 0x60)
967
+ else
968
+ ch
969
+ end
970
+ end
971
+ end
972
+ end
973
+
974
+ # Represents the ~F (Fixed-format floating-point) directive. This
975
+ # outputs floating point values with various kinds of padding and such.
976
+ class FFFP < Directive
977
+ # Outputs the given argument using a floating-point representation.
978
+ # The full form is
979
+ # ~w,d,k,overflowchar,padchar@F
980
+ # with the following interpretations
981
+ # [+w+ (+nil+)]
982
+ # if non-+nil+, the output will be exactly +w+ characters long,
983
+ # [+d+ (+nil+)]
984
+ # if non-+nil+, this is the number of digits output after the decimal
985
+ # point (<tt>.</tt>),
986
+ # [+k+ (0)]
987
+ # scaling factor - the number is first scaled using this value,
988
+ # [+overflowchar+ (+nil+)]
989
+ # if non-+nil+, this character is used when this directive would
990
+ # produce output longer than that specified with the +w+ directive,
991
+ # [+padchar+ (?\s)]
992
+ # character to pad with if +w+ is non-nil and output isn't wide
993
+ # enough yet,
994
+ # [@]
995
+ # numbers are always output with sign prepended.
996
+ #
997
+ # An ArgumentError is raised if the argument is not a number or a
998
+ # string that can be converted to a number.
999
+ def execute(state)
1000
+ width = param(0, state, nil)
1001
+ digits = param(1, state, nil)
1002
+ scale = param(2, state, 0)
1003
+ overflowchar = param(3, state, nil)
1004
+ padchar = param(4, state, ?\s)
1005
+ arg = state.next_arg
1006
+ if arg.respond_to? :to_f
1007
+ num = arg.to_f * (10 ** scale)
1008
+ str = (at_mod? and num >= 0) ? '+' : ''
1009
+ str = sign + (digits.nil? ? num.to_s : sprintf("%.#{digits}f",num))
1010
+ str = sign + sprintf("%.#{$1}f", num) if str =~ /e-([0-9]+)$/
1011
+ unless width.nil?
1012
+ if not digits.nil? and width == digits + 1
1013
+ str.sub!(/^([+-]?)0\./, '\1.')
1014
+ end
1015
+ str = str.rjust(width, padchar.chr) if str.length < width
1016
+ if str.length > width and digits.nil?
1017
+ prec = width - (str.index(/\./) + 1)
1018
+ str = sign + sprintf("%#.#{prec}f", num)
1019
+ end
1020
+ str.sub!(/\.$/, '') if str.length > width and digits.nil?
1021
+ if str.length > width and not overflowchar.nil?
1022
+ str = overflowchar.chr * width
1023
+ end
1024
+ end
1025
+ state.output str
1026
+ elsif arg.respond_to? :to_int
1027
+ state.push_back_arg
1028
+ parameters = @params[0].nil? ? [] : [@params[0]]
1029
+ Factory.build(parameters, [], ?D, nil, @pos).execute(state)
1030
+ else
1031
+ arg_error 'argument is not a number or a number string'
1032
+ end
1033
+ end
1034
+ end
1035
+
1036
+ # Represents the ~E (Exponential floating-point) directive. This outputs
1037
+ # floating point values in what is known as exponential or scientific
1038
+ # floating point format, such as 1.0e+3 for 1000.
1039
+ class ExpFP < Directive
1040
+
1041
+ # Outputs the argument using exponential floating-point format. The
1042
+ # full form is
1043
+ # ~w,d,e,k,overflowchar,padchar,exponentchar@E
1044
+ # with the following interpretations
1045
+ # [+w+ (+nil+)]
1046
+ # if non-+nil+, the output will be exactly +w+ characters long,
1047
+ # [+d+ (+nil+)]
1048
+ # if non-+nil+, this is the number of digits output after the decimal
1049
+ # point (<tt>.</tt>),
1050
+ # [+e+ (+nil+)]
1051
+ # if non-+nil+, the exponent part of the output will be exactly +e+
1052
+ # characters long,
1053
+ # [+k+ (1)]
1054
+ # scaling factor - the number is first scaled using this value,
1055
+ # [+overflowchar+ (+nil+)]
1056
+ # if non-+nil+, this character is used when this directive would
1057
+ # produce output longer than that specified with the +w+ directive,
1058
+ # [+padchar+ (?\s)]
1059
+ # character to pad with if +w+ is non-nil and output isn't wide
1060
+ # enough yet,
1061
+ # [+exponentchar+ (?e)]
1062
+ # character to use for exponent divider,
1063
+ # [@]
1064
+ # numbers are always output with sign prepended.
1065
+ #
1066
+ # An ArgumentError is raised if the argument is not a number or a
1067
+ # string that can be converted to a number.
1068
+ def execute(state)
1069
+ width = param(0, state, nil)
1070
+ digits = param(1, state, nil)
1071
+ edigits = param(2, state, nil)
1072
+ scale = param(3, state, 1)
1073
+ overflowchar = param(4, state, nil)
1074
+ padchar = param(5, state, ?\s).chr
1075
+ exponentchar = param(6, state, ?e).chr
1076
+ arg = state.next_arg
1077
+ if arg.respond_to? :to_f
1078
+ num = arg.to_f
1079
+ sign = (num >= 0 and at_mod?) ? '+' : ''
1080
+ exp = Math.log10(num.abs).floor - (scale - 1)
1081
+ exp_str = exponentchar + (exp >= 0 ? '+' : '-') +
1082
+ (edigits.nil? ? exp.abs.to_s : exp.abs.to_s.rjust(edigits, '0'))
1083
+ if digits.nil? and width.nil? and edigits.nil?
1084
+ str = sign + (num * (10 ** -exp)).to_s + exp_str
1085
+ else
1086
+ if digits.nil?
1087
+ prec = width - sign.length -
1088
+ ((num * (10 ** -exp)).to_s.index(/\./) + 1) - exp_str.length
1089
+ str = sign + sprintf("%#.#{prec}f", num) + exp_str
1090
+ else
1091
+ if scale > 0
1092
+ if scale < digits + 2
1093
+ prec = digits - scale + 1
1094
+ else
1095
+ param_error 3, 'scale must be < digits + 2'
1096
+ end
1097
+ else
1098
+ prec = -scale + (digits + scale)
1099
+ end
1100
+ str = sign + sprintf("%#.#{prec}f", num * (10**-exp)) + exp_str
1101
+ end
1102
+ unless width.nil?
1103
+ if scale <= 0 and str.length > width
1104
+ str.sub!(/^([+-]?)0\./, '\1.')
1105
+ end
1106
+ str = str.rjust(width, padchar) if str.length < width
1107
+ end
1108
+ unless width.nil? and overflowchar.nil?
1109
+ if not edigits.nil? and (exp_str.length - 2) > edigits
1110
+ str = overflowchar.chr * width
1111
+ end
1112
+ end
1113
+ end
1114
+ state.output str
1115
+ elsif arg.respond_to? :to_int
1116
+ state.push_back_arg
1117
+ parameters = @params[0].nil? ? [] : [@params[0]]
1118
+ Factory.build(parameters, [], ?D, nil, @pos).execute(state)
1119
+ else
1120
+ arg_error 'argument is not a number or a number string'
1121
+ end
1122
+ end
1123
+ end
1124
+
1125
+ # Represents the ~G (General floating-point) directive. This outputs its
1126
+ # argument using either a format like ~F or ~E depending upon given
1127
+ # parameters and the magnitude of the argument.
1128
+ class GeneralFP < Directive
1129
+ # Outputs the argument using exponential floating-point format. The
1130
+ # algorithm to decide what format to use looks something like
1131
+ # let
1132
+ # 10^n-1 <= arg < 10^n, or n = 0 if arg = 0,
1133
+ # ee = e + 2, or ee = 4 if e undefined,
1134
+ # ww = w - ee, or ww = nil if w undefined,
1135
+ # dd = d - n, or dd = max(q, min(n, 7)) where q = number of
1136
+ # characters necessary to print arg without loss of information
1137
+ # in
1138
+ # 0 <= dd <= d, and print using
1139
+ # ~ww,dd,,overflowchar,padcharF~ee@T
1140
+ # or print using
1141
+ # ~w,d,e,k,overflowchar,padchar,exponentcharG
1142
+ # Use of the @ modifier in the directives above depends on if it was
1143
+ # passed to ~G in the first place.
1144
+ #
1145
+ # The full form is
1146
+ # ~w,d,e,k,overflowchar,padchar,exponentchar@G
1147
+ # with the following interpretations
1148
+ # [+w+ (+nil+)]
1149
+ # if non-+nil+, the output will be exactly +w+ characters long,
1150
+ # [+d+ (+nil+)]
1151
+ # if non-+nil+, this is the number of digits output after the decimal
1152
+ # point (<tt>.</tt>),
1153
+ # [+e+ (+nil+)]
1154
+ # if non-+nil+, the exponent part of the output will be exactly +e+
1155
+ # characters long,
1156
+ # [+k+ (1)]
1157
+ # scaling factor - the number is first scaled using this value,
1158
+ # [+overflowchar+ (+nil+)]
1159
+ # if non-+nil+, this character is used when this directive would
1160
+ # produce output longer than that specified with the +w+ directive,
1161
+ # [+padchar+ (?\s)]
1162
+ # character to pad with if +w+ is non-nil and output isn't wide
1163
+ # enough yet,
1164
+ # [+exponentchar+ (?e)]
1165
+ # character to use for exponent divider,
1166
+ # [@]
1167
+ # numbers are always output with sign prepended.
1168
+ #
1169
+ # An ArgumentError is raised if the argument is not a number or a
1170
+ # string that can be converted to a number.
1171
+ def execute(state)
1172
+ width = param(0, state, nil)
1173
+ digits = param(1, state, nil)
1174
+ edigits = param(2, state, nil)
1175
+ scale = param(3, state, 1)
1176
+ overflowchar = param(4, state, nil)
1177
+ padchar = param(5, state, ?\s)
1178
+ exponentchar = param(6, state, nil)
1179
+ arg = state.next_arg
1180
+ if arg.respond_to? :to_f
1181
+ num = arg.to_f
1182
+ n = num == 0.0 ? 0 : Math.log10(num.abs).floor + 1
1183
+ ee = edigits.nil? ? 4 : edigits + 2
1184
+ ww = w.nil? ? nil : w - ee
1185
+ if d.nil?
1186
+ q = num.to_s.length
1187
+ d = Math.max(q, Math.min(n, 7))
1188
+ end
1189
+ dd = d - n
1190
+ if 0 <= dd and dd <= d
1191
+ state.push_back_arg
1192
+ parameters = [
1193
+ Parameters::Integer.new(@pos, ww),
1194
+ Parameters::Integer.new(@pos, dd),
1195
+ Parameters::Default.new(@pos),
1196
+ overflowchar.nil? ?
1197
+ Parameters::Default.new(@pos) :
1198
+ Parameters::Character.new(@pos, overflowchar),
1199
+ padchar.nil? ?
1200
+ Parameters::Default.new(@pos) :
1201
+ Parameters::Character.new(@pos, padchar),
1202
+ ]
1203
+ Factory.build(parameters, @modifiers, ?F, nil,
1204
+ @pos).execute(state)
1205
+ Factory.build([Parameters::Integere.new(@pos, ee)], @modifiers,
1206
+ ?T, nil, @pos).execute(state)
1207
+ else
1208
+ state.push_back_arg
1209
+ Factory.build(@params, @modifiers, ?E, nil, @pos).execute(state)
1210
+ end
1211
+ elsif arg.respond_to? :to_int
1212
+ state.push_back_arg
1213
+ parameters = @params[0].nil? ? [] : [@params[0]]
1214
+ Factory.build(parameters, [], ?D, nil, @pos).execute(state)
1215
+ else
1216
+ arg_error 'argument is not a number or a number string'
1217
+ end
1218
+ end
1219
+ end
1220
+
1221
+ # Represents the ~$ (Dollars floating-point) directive. This directive
1222
+ # outputs a floating point argument
1223
+ class DollarFP < Directive
1224
+ # Outputs the argument using a floating point format that suits dollar
1225
+ # values. The full form is
1226
+ # ~d,n,w,padchar:@$
1227
+ # with the following interpretations
1228
+ # [+d+ (2)]
1229
+ # number of digits to print after the decimal point (<tt>.</tt>),
1230
+ # [+n+ (1)]
1231
+ # number of digits to print before the decimal point (<tt>.</tt>),
1232
+ # [+w+ (0)]
1233
+ # minimum width of the field,
1234
+ # [+padchar+ (?\s)]
1235
+ # character used to produce right-adjusting padding with,
1236
+ # [:]
1237
+ # the sign of the value is output before any padding,
1238
+ # [@]
1239
+ # numbers are always output with sign prepended.
1240
+ def execute(state)
1241
+ digits = param(0, state, 2)
1242
+ idigits = param(1, state, 1)
1243
+ width = param(2, state, 0)
1244
+ padchar = param(3, state, ?\s)
1245
+ arg = state.next_arg
1246
+ if arg.respond_to :to_int
1247
+ sign = (arg >= 0 ? (at_mod? ? '+' : '') : '-')
1248
+ str = sprintf("%0#{idigits + digits + 1}.#{digits}f", arg.abs)
1249
+ if colon_mod?
1250
+ str = sign + str.rjust(width, padchar.chr)
1251
+ else
1252
+ str = (sign + str).rjust(width, padchar.chr)
1253
+ end
1254
+ state.output str
1255
+ elsif arg.respond_to? :to_i
1256
+ state.push_back_arg
1257
+ parameters = @params[2].nil? ? [] : [@params[2]]
1258
+ Factory.build(?D, parameters, [], nil, @pos).execute(state)
1259
+ else
1260
+ arg_error 'argument is not a number or a number string'
1261
+ end
1262
+ end
1263
+ end
1264
+
1265
+ # Parent class for character outputting directives, such as ~% (NewLine),
1266
+ # ~| (NewPage), and ~~ (Tilde), which output the same character a given
1267
+ # number of times.
1268
+ class CharacterDirective < Directive
1269
+ # Create and set the character to use to +ch+.
1270
+ def initialize(params, modifiers, top, pos, ch)
1271
+ super params, modifiers, top, pos
1272
+ @ch = ch
1273
+ end
1274
+
1275
+ # Outputs the specific character (depending on the
1276
+ # sub-classing directive) a given number of times. The full form is
1277
+ # ~n[%|~]
1278
+ # with the following interpretations
1279
+ # [+n+ (1)]
1280
+ # number of times to output the specific character.
1281
+ def execute(state)
1282
+ n = param(0, state, 1)
1283
+ state.output(@ch.chr * n)
1284
+ end
1285
+ end
1286
+
1287
+ # Represents the ~% (Newline) directive. This outputs a new-line (?\n)
1288
+ # character a given number of times.
1289
+ class NewLine < CharacterDirective
1290
+ # Set the output character to a new-line (?\n).
1291
+ def initialize(*args)
1292
+ super(*args << ?\n)
1293
+ end
1294
+ end
1295
+
1296
+ # Represents the ~% (Freshline) directive. This outputs a new-line (?\n)
1297
+ # character a given number of times, depending on if it is already at the
1298
+ # first output column or not.
1299
+ class FreshLine < Directive
1300
+ # Outputs a new-line character a given number of times depending on if
1301
+ # it is already at the first output column or not. If it is it outputs
1302
+ # it the given number minus one (1). The full form is
1303
+ # ~n&
1304
+ # with the following interpretations
1305
+ # [+n+ (1)]
1306
+ # number of times to output the specific character (maybe minus one).
1307
+ def execute(state)
1308
+ n = param(0, state, 1)
1309
+ return if n.zero?
1310
+ state.output(?\n) if state._col > 0
1311
+ (n - 1).times do state.output(?\n) end
1312
+ end
1313
+ end
1314
+
1315
+ # Represents the ~| (Newpage) directive. This outputs a new-page (?\f)
1316
+ # character a given number of times.
1317
+ class NewPage < CharacterDirective
1318
+ # Set the output character to a new-page (?\f).
1319
+ def initialize(*args)
1320
+ super(*args << ?\f)
1321
+ end
1322
+ end
1323
+
1324
+ # Represents the ~~ (Tilde) directive. This outputs a tilde (~)
1325
+ # character a given number of times.
1326
+ class Tilde < CharacterDirective
1327
+ # Set the output character to a tilde (~).
1328
+ def initialize(*args)
1329
+ super(*args << ?~)
1330
+ end
1331
+ end
1332
+
1333
+ # Represents the ~?\n (Real new-line) directive. This is used to skip
1334
+ # the new-line and any following white-space characters in the input
1335
+ # format. This is useful in long format strings, where the string has to
1336
+ # be split into multiple lines without ruining indentation.
1337
+ class SkipWhitespace < Directive
1338
+ # Join this directive with the following. This removes any new-line
1339
+ # and/or following white-space from the directive that follows, if it
1340
+ # is a string Literal.
1341
+ def join(other)
1342
+ return other if not other.is_a?(FormatLiteral) or colon_mod?
1343
+ other.sub!(/^[\s\t]+/, '')
1344
+ other[0,0] = '\n' if at_mod?
1345
+ other
1346
+ end
1347
+ end
1348
+
1349
+ # Represents the ~T (Tabulate) directive. This tabulates to a given
1350
+ # position in the output using white-space.
1351
+ class Tabulate < Directive
1352
+ # The output is spaced over to a given position, depending on where it
1353
+ # already is and parameters given to this directive.
1354
+ # ~colnum,colinc:@T
1355
+ # with the following interpretations
1356
+ # [+colnum+ (1)]
1357
+ # column to move to,
1358
+ # [+colinc+ (1)]
1359
+ # number of columns to space over by if already at or beyond
1360
+ # +colnum+,
1361
+ # [@]
1362
+ # performs relative tabulation. +colnum+ is treated as the column to
1363
+ # begin from (spacing over to it if necessary), and then moves over
1364
+ # to a column that is the smallest multiple of +colinc+.
1365
+ #
1366
+ # If output is already at or beyond +colnum+, then output is spaced
1367
+ # over to column <em>colnum + k * colinc</em>, for the smallest _k_
1368
+ # possible. An example of the @ modifiers effect is for the instance
1369
+ # of the ~T directive ~3,8@T, which moves over three columns, and then
1370
+ # to the first eight-sized tab-stop.
1371
+ def execute(state)
1372
+ colnum = param(0, state, 1)
1373
+ colinc = param(1, state, 1)
1374
+ padchar = ?\s.chr
1375
+ if at_mod?
1376
+ state.output(padchar * colnum)
1377
+ state.output(padchar * (colinc - state.col % colinc))
1378
+ else
1379
+ if state.col < colnum
1380
+ state.output(padchar * (colnum - state.col))
1381
+ elsif colinc > 0
1382
+ k = 1 + (state.col - colnum) / colinc
1383
+ state.output(padchar * ((colnum + k * colinc) - state.col))
1384
+ end
1385
+ end
1386
+ end
1387
+ end
1388
+
1389
+ # Represents the ~* (Argument jumping) directive. This moves arbitrarily
1390
+ # amongst the arguments passed to the formatting engine.
1391
+ class ArgJump < Directive
1392
+ # Moves backwards or forwards, relative or absolute, among the
1393
+ # formatting arguments. The full form is
1394
+ # ~n:@*
1395
+ # with the following interpretations
1396
+ # [+n+ (1)]
1397
+ # the amount of arguments to move or the argument to move to if
1398
+ # moving to an absolute position, indexed from zero (0),
1399
+ # [:]
1400
+ # move backwards +n+ arguments
1401
+ # [@]
1402
+ # move to the +n+:th argument, using zero-based indexing (absolute).
1403
+ def execute(state)
1404
+ n = param(0, state, 1)
1405
+ state.args_move(colon_mod? ? -n : n, !at_mod?)
1406
+ end
1407
+ end
1408
+
1409
+ # Represents the ~? (Indirection) directive. This takes the two
1410
+ # following arguments and formats them, using the first as the formatting
1411
+ # string, and the second as its arguments and inserts it into the output.
1412
+ class Indirection < Directive
1413
+ # Uses the next argument as a formatting string and then, depending on
1414
+ # modifiers specified, uses one of a set of different arguments as
1415
+ # input to this formatting. The full form is
1416
+ # ~@?
1417
+ # with the following interpretations
1418
+ # [@]
1419
+ # the formatting string is, much like a macro, inserted into the
1420
+ # formatting stream, so to speak, and consumes arguments and so on
1421
+ # from the current state, instead, as per default, consuming a second
1422
+ # argument and reading arguments from it.
1423
+ def execute(state)
1424
+ if at_mod?
1425
+ formatter = Formatter.new(state.next_arg, state)
1426
+ else
1427
+ format = state.next_arg
1428
+ state = State.new(state.next_arg, state.latest_output)
1429
+ formatter = Formatter.new(format, state)
1430
+ end
1431
+ formatter.run
1432
+ end
1433
+ end
1434
+
1435
+ # Represents the ~( (Begin case-conversion) directive. Everything
1436
+ # contained within it and its matching pair ~) (End case-conversion)
1437
+ # directive is subject to case conversion, such as upcasing or
1438
+ # capitalization.
1439
+ class BeginCaseConversion < Directive
1440
+ # Outputs the contained output case converted using some method that
1441
+ # depends on the combination of modifiers given to this directive. The
1442
+ # full form is
1443
+ # ~:@(
1444
+ # with the following interpretations
1445
+ # [<em>no modifiers</em>]
1446
+ # output is downcased,
1447
+ # [:]
1448
+ # every word is capitalized in the output,
1449
+ # [@]
1450
+ # the first word is capitalized in the output,
1451
+ # [:@]
1452
+ # output is upcased.
1453
+ def execute(state)
1454
+ conv = :DOWN
1455
+ conv = :CAP if colon_mod?
1456
+ conv = :CAP_FIRST if at_mod?
1457
+ conv = :UP if colon_mod? and at_mod?
1458
+ state.case_conv = conv
1459
+ state.push_output
1460
+ end
1461
+ end
1462
+
1463
+ # Represents the ~) (End case-conversion) directive. Everything
1464
+ # contained within it and its matching pair ~( (Begin case-conversion)
1465
+ # directive is subject to case conversion, such as upcasing or
1466
+ # capitalization.
1467
+ class EndCaseConversion < Directive
1468
+ # This does the actual work for the ~( directive, in that it collects
1469
+ # all the output between its matching directive (~() and outputs it
1470
+ # using one of the conversions set up by the ~( (BeginCaseConversion)
1471
+ # directive.
1472
+ def execute(state)
1473
+ output = state.pop_output.to_s
1474
+ state.output(
1475
+ case state.case_conv
1476
+ when :DOWN
1477
+ output.downcase
1478
+ when :CAP
1479
+ output.gsub(/\w+/) do |w| w.capitalize end
1480
+ when :CAP_FIRST
1481
+ output.capitalize
1482
+ when :UP
1483
+ output.upcase
1484
+ end
1485
+ )
1486
+ end
1487
+ end
1488
+
1489
+ # Represents the ~[ (Begin conditional expression) directive. This is
1490
+ # useful to choose among a set of directives depending on arguments and
1491
+ # numbers.
1492
+ class BeginConditional < Directive
1493
+ # Set up some variables and basically pass on to super.
1494
+ def initialize(*args)
1495
+ super(*args)
1496
+ if (colon_mod? or at_mod?) and @params.size > 0
1497
+ param_error 0, 'no parameters allowed together with' +
1498
+ ': and/or @ modifiers'
1499
+ end
1500
+ @clauses = []
1501
+ @default = -1
1502
+ end
1503
+
1504
+ # Process one of the given clauses, depending on the numeric value of
1505
+ # the given argument, or a specified parameter. The full form is
1506
+ # ~n[clause0~;clause1~:;clause2~]
1507
+ # or
1508
+ # ~:[clause0~;clause1~]
1509
+ # or
1510
+ # ~@[clause0~]
1511
+ # with the following interpretations
1512
+ # [+n+ (nil)]
1513
+ # if given, this value will be used to choose a clause instead of
1514
+ # reading an arguments value. This is only useful if +n+ is in fact
1515
+ # the arguments left parameter (<tt>#</tt>). An error is raised if
1516
+ # this argument does not #respond_to? :to_int,
1517
+ # [:]
1518
+ # instead of choosing a clause by number, the argument is tested as a
1519
+ # boolean value, and if false, then first clause is executed, else
1520
+ # the second one is,
1521
+ # [@]
1522
+ # instead of choosing a clause by number, the argument is tested as a
1523
+ # boolean value, and if true, the single clause is executed.
1524
+ def execute(state)
1525
+ test = state.next_arg if colon_mod? or at_mod?
1526
+ if colon_mod?
1527
+ c = test ? 1 : 0
1528
+ elsif at_mod?
1529
+ if test
1530
+ state.push_back_arg
1531
+ c = 0
1532
+ end
1533
+ else
1534
+ n = param(0, state, nil)
1535
+ if n.nil?
1536
+ arg = state.next_arg
1537
+ if arg.respond_to? :to_int
1538
+ n = arg.to_int
1539
+ else
1540
+ arg_error 'argument is not an integral value'
1541
+ end
1542
+ end
1543
+ if n < @clauses.size
1544
+ c = n
1545
+ elsif @default != -1
1546
+ c = @default
1547
+ end
1548
+ end
1549
+ Format.execute_directives(state, @clauses[c]) unless c.nil?
1550
+ end
1551
+
1552
+ # Connect a set of directives to this conditional directive.
1553
+ # A SyntaxError is raised if multiple clauses have been marked as
1554
+ # 'default', or if too many clauses have been specified for a given
1555
+ # set of modifiers.
1556
+ def connect(directives)
1557
+ @clauses = []
1558
+ clause = []
1559
+ directives.each do |d|
1560
+ if d.is_a? ClauseSeparator
1561
+ @clauses << clause
1562
+ clause = []
1563
+ if d.colon_mod?
1564
+ if @default == -1
1565
+ @default = @clauses.size
1566
+ else
1567
+ raise SyntaxError.new(d.pos),
1568
+ 'default clause has already been set'
1569
+ end
1570
+ end
1571
+ elsif d.is_a? EndConditional
1572
+ @clauses << clause
1573
+ break
1574
+ else
1575
+ clause << d
1576
+ end
1577
+ end
1578
+ must = 'two' if colon_mod? and @clauses.size != 2
1579
+ must = 'one' if at_mod? and @clauses.size != 1
1580
+ unless must.nil?
1581
+ raise SyntaxError.new(@pos), "must specify exactly #{must} clauses"
1582
+ end
1583
+ end
1584
+ end
1585
+
1586
+ # Represents the ~; (Clause separator) directive. It separates clauses
1587
+ # inside conditional and justifying directives (~[...~] and ~<...~>). It
1588
+ # may not appear anywhere else.
1589
+ class ClauseSeparator < Directive
1590
+ # Check that +top+ is either a BeginConditional or a
1591
+ # BeginJustification. If not, a SyntaxError is raised.
1592
+ def initialize(params, modifiers, top, pos)
1593
+ super params, modifiers, top, pos
1594
+ unless top.is_a? BeginConditional
1595
+ raise SyntaxError.new(@pos),
1596
+ '~; directive must be contained within a conditional (~[...~])' +
1597
+ ' or a justification (~<...~>)'
1598
+ end
1599
+ end
1600
+ end
1601
+
1602
+ # Represents the ~] (End conditional expression) directive. It ends a
1603
+ # conditional expression, and is an error if it appears without a
1604
+ # matching opening conditional expression.
1605
+ class EndConditional < Directive
1606
+ def initialize(params, modifiers, top, pos)
1607
+ super params, modifiers, top, pos
1608
+ unless top.is_a? BeginConditional
1609
+ raise SyntaxError.new(@pos), '~) without matching ~('
1610
+ end
1611
+ end
1612
+ end
1613
+
1614
+ # Represents the ~{ (Begin iteration) directive. A given set of
1615
+ # directives is used iteratively over a set of arguments (depends on the
1616
+ # modifiers specified) a given number of times, or until it runs out of
1617
+ # arguments.
1618
+ class BeginIteration < Directive
1619
+ # Create and set up some private variables
1620
+ def initialize(params, modifiers, top, pos)
1621
+ super params, modifiers, top, pos
1622
+ @directives = []
1623
+ end
1624
+
1625
+ # Iteratively run the contained directives using sets of arguments
1626
+ # depending upon what modifiers where given. The full form is
1627
+ # ~n:@{...~}
1628
+ # with the following interpretations
1629
+ # [n]
1630
+ # maximum number of times the iteration should be performed,
1631
+ # [<em>no modifiers</em>]
1632
+ # the iteration reads an argument, which must be an Array, and uses
1633
+ # it as the arguments to the contained directives,
1634
+ # [:]
1635
+ # the iteration reads an argument, which must be an Array
1636
+ # containing sub-arrays, and uses the sub-arrays as the arguments to
1637
+ # the contained directives, moving to the next one on each iteration,
1638
+ # [@]
1639
+ # the iteration uses the rest of the arguments as arguments to the
1640
+ # contained directives,
1641
+ # [:@]
1642
+ # the iteration uses the rest of the arguments, which must be Arrays,
1643
+ # using each Array as the set of arguments to the contained
1644
+ # directives.
1645
+ def execute(state)
1646
+ n = param(0, state, nil)
1647
+ return if not n.nil? and n == 0
1648
+ if colon_mod? and at_mod?
1649
+ execute_sets(n, state, false)
1650
+ elsif at_mod?
1651
+ execute_args(n, nil, state, false)
1652
+ elsif colon_mod?
1653
+ execute_sets(n, state, true)
1654
+ else
1655
+ execute_args(n, state.next_arg, state, true)
1656
+ end
1657
+ end
1658
+
1659
+ # Connect a set of directives to this iteration directive.
1660
+ def connect(directives)
1661
+ directives.pop
1662
+ @directives = directives
1663
+ end
1664
+
1665
+ private
1666
+
1667
+ # Execute the iteration using sub-lists either from the following
1668
+ # argument or from the remaining arguments.
1669
+ def execute_sets(n, state, use_next_arg)
1670
+ if use_next_arg
1671
+ sets = state.next_arg
1672
+ arg_error 'argument not an array' unless sets.is_a? Array
1673
+ sets = sets[0...n] unless n.nil?
1674
+ else
1675
+ m = n
1676
+ sets = []
1677
+ while state.args_left > 0 and (m.nil? or m > 0)
1678
+ sets << state.next_arg
1679
+ m -= 1 unless m.nil?
1680
+ end
1681
+ end
1682
+ sets.each do |set|
1683
+ execute_args(nil, set, state, true)
1684
+ end
1685
+ end
1686
+
1687
+ # Execute the iteration while there are arguments left and we haven't
1688
+ # reached our limit of iterations.
1689
+ def execute_args(n, args, state, use_new_state)
1690
+ if use_new_state
1691
+ arg_error 'argument not an array' unless args.is_a? Array
1692
+ state = State.new(args, state.latest_output)
1693
+ end
1694
+ while state.args_left > 0 and (n.nil? or n > 0)
1695
+ Format.execute_directives(state, @directives)
1696
+ n -= 1 unless n.nil?
1697
+ end
1698
+ end
1699
+ end
1700
+
1701
+ # Represents the ~} (End iteration) directive. See BeginIteration for an
1702
+ # explanation of how these directives work together.
1703
+ class EndIteration < Directive
1704
+ # Raise a SyntaxError if +top+ is not a BeginIteration.
1705
+ def initialize(params, modifiers, top, pos)
1706
+ super params, modifiers, top, pos
1707
+ unless top.is_a? BeginIteration
1708
+ raise SynaxError, '~} without matching ~{'
1709
+ end
1710
+ end
1711
+ end
1712
+
1713
+ # Factory for directives. Formatting directives should be created using
1714
+ # singleton methods in this class.
1715
+ class Factory
1716
+ @@directives = {
1717
+ ?A => [Ascii, 4, [], 0],
1718
+ ?S => [SExpression, 4, [], 0],
1719
+ ?D => [Decimal, 4, [], 0],
1720
+ ?B => [Binary, 4, [], 0],
1721
+ ?O => [Octal, 4, [], 0],
1722
+ ?X => [Hexadecimal, 4, [], 0],
1723
+ ?R => [Radix, 5, [], 0],
1724
+ ?P => [Plural, 0, [], 0],
1725
+ ?C => [Character, 0, [], 0],
1726
+ ?F => [FFFP, 5, [?:], 0],
1727
+ ?E => [ExpFP, 7, [?:], 0],
1728
+ ?G => [GeneralFP, 7, [?:], 0],
1729
+ ?$ => [DollarFP, 4, [], 0],
1730
+ ?% => [NewLine, 1, [?:, ?@], 0],
1731
+ ?& => [FreshLine, 1, [?:, ?@], 0],
1732
+ ?| => [NewPage, 1, [?:, ?@], 0],
1733
+ ?~ => [Tilde, 0, [?:, ?@], 0],
1734
+ ?\n => [SkipWhitespace, 0, [[?:, ?@]], 0],
1735
+ ?T => [Tabulate, 2, [], 0],
1736
+ ?* => [ArgJump, 1, [[?:, ?@]], 0],
1737
+ ?? => [Indirection, 0, [?:], 0],
1738
+ ?( => [BeginCaseConversion, 0, [], 0],
1739
+ ?) => [EndCaseConversion, 0, [?:, ?@], 0],
1740
+ ?[ => [BeginConditional, 1, [[?:, ?@]], 1],
1741
+ ?; => [ClauseSeparator, 0, [?@], 0],
1742
+ ?] => [EndConditional, 0, [?@], -1],
1743
+ ?{ => [BeginIteration, 1, [], 1],
1744
+ ?} => [EndIteration, 0, [?:, ?@], -1],
1745
+ }
1746
+
1747
+ # Create a directive given a set of paramaters, modifiers, the
1748
+ # character representing the directive, possible owning directive, and
1749
+ # position in the format string.
1750
+ def self.build(params, modifiers, directive, top, pos)
1751
+ @@directives.include? directive or
1752
+ raise UnknownDirectiveError.new(pos), 'unknown format directive'
1753
+ idx = directive.chr.upcase[0]
1754
+ params.size <= @@directives[idx][1] or
1755
+ raise ParameterError.new(pos),
1756
+ 'too many parameters given, expected no more than ' +
1757
+ @@directives[idx][1].to_s
1758
+ @@directives[idx][2].each do |illegal|
1759
+ if illegal.is_a? Array and (modifiers == illegal or
1760
+ modifiers.reverse == illegal)
1761
+ raise ModifierError.new(pos),
1762
+ 'cannot specify both : and @ modifiers'
1763
+ elsif modifiers.include? illegal
1764
+ raise ModifierError.new(pos),
1765
+ 'cannot specify the ' + mod.chr + 'modifier'
1766
+ end
1767
+ end
1768
+ return [
1769
+ @@directives[idx][0].new(params, modifiers, top, pos),
1770
+ @@directives[idx][3]
1771
+ ]
1772
+ end
1773
+ end
1774
+ end
1775
+
1776
+ private
1777
+
1778
+ # Execute a set of directives in a given state.
1779
+ def self.execute_directives(state, directives)
1780
+ directives.each do |directive|
1781
+ begin
1782
+ directive.execute state
1783
+ rescue => e
1784
+ e.pos = d.pos if e.respond_to?(:pos) and e.pos == -1
1785
+ raise
1786
+ end
1787
+ end
1788
+ end
1789
+ end
1790
+
1791
+ def Lisp.format(format, *args)
1792
+ begin
1793
+ state = Format::State.new(args, Format::Output.new)
1794
+ formatter = Format::Formatter.new(format, state)
1795
+ formatter.run
1796
+ rescue => e
1797
+ puts 'Format error: ' + e.message
1798
+ puts format
1799
+ puts ' ' * (e.pos - 1) + '^' if e.respond_to? :pos
1800
+ raise
1801
+ end
1802
+ end
1803
+ end
1804
+
1805
+
1806
+ =begin
1807
+ # --- development testing ---
1808
+
1809
+ if $0 == __FILE__
1810
+
1811
+ require 'test/unit'
1812
+ require 'test/unit/ui/console/testrunner'
1813
+
1814
+ class FormatTest < Test::Unit::TestCase
1815
+
1816
+ def test_decimal
1817
+ assert(Lisp.format("~D", 1) == "1")
1818
+ end
1819
+
1820
+ def test_decimal_params
1821
+ assert(Lisp.format("~5,'-D~6D", 1, 2) == "----1 2")
1822
+ end
1823
+
1824
+ def test_decimal_modifiers
1825
+ assert(Lisp.format("~5,'-,'.:@D~@D", 1013, 2) == "+1.013+2")
1826
+ assert(Lisp.format("~7,,,2:@D~@D", 1013, 2) == " +10,13+2")
1827
+ end
1828
+
1829
+ # Tests for ~v, ~V, ~#
1830
+ end
1831
+
1832
+ Test::Unit::UI::Console::TestRunner.run(FormatTest)
1833
+
1834
+ end
1835
+ =end