facets 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (861) hide show
  1. data/ANN +53 -0
  2. data/ChangeLog +50 -0
  3. data/LICENSE-GPL +341 -0
  4. data/LICENSE-RUBY +60 -0
  5. data/README +130 -0
  6. data/Reapfile +74 -0
  7. data/TODO +42 -0
  8. data/VERSION +7 -0
  9. data/doc/classes/Array.html +1267 -0
  10. data/doc/classes/Array.src/M000027.html +19 -0
  11. data/doc/classes/Array.src/M000028.html +23 -0
  12. data/doc/classes/Array.src/M000029.html +18 -0
  13. data/doc/classes/Array.src/M000030.html +18 -0
  14. data/doc/classes/Array.src/M000031.html +18 -0
  15. data/doc/classes/Array.src/M000032.html +18 -0
  16. data/doc/classes/Array.src/M000033.html +18 -0
  17. data/doc/classes/Array.src/M000034.html +18 -0
  18. data/doc/classes/Array.src/M000035.html +18 -0
  19. data/doc/classes/Array.src/M000036.html +20 -0
  20. data/doc/classes/Array.src/M000037.html +31 -0
  21. data/doc/classes/Array.src/M000038.html +19 -0
  22. data/doc/classes/Array.src/M000039.html +24 -0
  23. data/doc/classes/Array.src/M000040.html +23 -0
  24. data/doc/classes/Array.src/M000041.html +31 -0
  25. data/doc/classes/Array.src/M000042.html +27 -0
  26. data/doc/classes/Array.src/M000044.html +22 -0
  27. data/doc/classes/Array.src/M000046.html +20 -0
  28. data/doc/classes/Array.src/M000047.html +18 -0
  29. data/doc/classes/Array.src/M000048.html +24 -0
  30. data/doc/classes/Array.src/M000049.html +19 -0
  31. data/doc/classes/Array.src/M000050.html +24 -0
  32. data/doc/classes/Array.src/M000051.html +22 -0
  33. data/doc/classes/Array.src/M000052.html +18 -0
  34. data/doc/classes/Array.src/M000053.html +25 -0
  35. data/doc/classes/Array.src/M000054.html +19 -0
  36. data/doc/classes/Array.src/M000055.html +26 -0
  37. data/doc/classes/Array.src/M000056.html +19 -0
  38. data/doc/classes/Array.src/M000057.html +28 -0
  39. data/doc/classes/Array.src/M000058.html +21 -0
  40. data/doc/classes/Array.src/M000059.html +18 -0
  41. data/doc/classes/Array.src/M000061.html +23 -0
  42. data/doc/classes/Binding.html +420 -0
  43. data/doc/classes/Binding.src/M000202.html +19 -0
  44. data/doc/classes/Binding.src/M000203.html +22 -0
  45. data/doc/classes/Binding.src/M000204.html +19 -0
  46. data/doc/classes/Binding.src/M000205.html +19 -0
  47. data/doc/classes/Binding.src/M000206.html +18 -0
  48. data/doc/classes/Binding.src/M000207.html +18 -0
  49. data/doc/classes/Binding.src/M000208.html +18 -0
  50. data/doc/classes/Binding.src/M000209.html +18 -0
  51. data/doc/classes/Binding.src/M000210.html +18 -0
  52. data/doc/classes/Binding.src/M000211.html +18 -0
  53. data/doc/classes/Binding.src/M000212.html +18 -0
  54. data/doc/classes/Binding.src/M000213.html +27 -0
  55. data/doc/classes/Binding.src/M000214.html +22 -0
  56. data/doc/classes/Class.html +216 -0
  57. data/doc/classes/Class.src/M000184.html +20 -0
  58. data/doc/classes/Class.src/M000185.html +20 -0
  59. data/doc/classes/Class.src/M000186.html +19 -0
  60. data/doc/classes/Comparable.html +190 -0
  61. data/doc/classes/Comparable.src/M000366.html +20 -0
  62. data/doc/classes/Comparable.src/M000367.html +18 -0
  63. data/doc/classes/Comparable.src/M000368.html +18 -0
  64. data/doc/classes/Continuation.html +188 -0
  65. data/doc/classes/Continuation.src/M000126.html +21 -0
  66. data/doc/classes/Enumerable.html +648 -0
  67. data/doc/classes/Enumerable.src/M000345.html +22 -0
  68. data/doc/classes/Enumerable.src/M000346.html +18 -0
  69. data/doc/classes/Enumerable.src/M000347.html +26 -0
  70. data/doc/classes/Enumerable.src/M000349.html +18 -0
  71. data/doc/classes/Enumerable.src/M000351.html +23 -0
  72. data/doc/classes/Enumerable.src/M000352.html +22 -0
  73. data/doc/classes/Enumerable.src/M000356.html +31 -0
  74. data/doc/classes/Enumerable.src/M000359.html +29 -0
  75. data/doc/classes/Enumerable.src/M000360.html +34 -0
  76. data/doc/classes/Enumerable.src/M000362.html +20 -0
  77. data/doc/classes/Enumerable.src/M000363.html +18 -0
  78. data/doc/classes/Enumerable.src/M000364.html +48 -0
  79. data/doc/classes/Enumerable.src/M000365.html +18 -0
  80. data/doc/classes/File.html +149 -0
  81. data/doc/classes/File.src/M000326.html +21 -0
  82. data/doc/classes/FileUtils.html +332 -0
  83. data/doc/classes/FileUtils.src/M000327.html +59 -0
  84. data/doc/classes/FileUtils.src/M000328.html +28 -0
  85. data/doc/classes/FileUtils.src/M000329.html +18 -0
  86. data/doc/classes/FileUtils.src/M000330.html +18 -0
  87. data/doc/classes/FileUtils.src/M000331.html +46 -0
  88. data/doc/classes/FileUtils.src/M000332.html +27 -0
  89. data/doc/classes/FileUtils.src/M000333.html +55 -0
  90. data/doc/classes/Float.html +180 -0
  91. data/doc/classes/Float.src/M000181.html +18 -0
  92. data/doc/classes/Float.src/M000182.html +19 -0
  93. data/doc/classes/Float.src/M000183.html +19 -0
  94. data/doc/classes/Functor.html +190 -0
  95. data/doc/classes/Functor.src/M000195.html +16 -0
  96. data/doc/classes/Functor.src/M000196.html +16 -0
  97. data/doc/classes/Functor.src/M000197.html +16 -0
  98. data/doc/classes/Functor.src/M000198.html +16 -0
  99. data/doc/classes/Hash.html +1319 -0
  100. data/doc/classes/Hash.src/M000063.html +20 -0
  101. data/doc/classes/Hash.src/M000064.html +18 -0
  102. data/doc/classes/Hash.src/M000065.html +22 -0
  103. data/doc/classes/Hash.src/M000066.html +23 -0
  104. data/doc/classes/Hash.src/M000067.html +21 -0
  105. data/doc/classes/Hash.src/M000068.html +25 -0
  106. data/doc/classes/Hash.src/M000069.html +18 -0
  107. data/doc/classes/Hash.src/M000070.html +22 -0
  108. data/doc/classes/Hash.src/M000071.html +20 -0
  109. data/doc/classes/Hash.src/M000072.html +26 -0
  110. data/doc/classes/Hash.src/M000073.html +19 -0
  111. data/doc/classes/Hash.src/M000074.html +19 -0
  112. data/doc/classes/Hash.src/M000075.html +24 -0
  113. data/doc/classes/Hash.src/M000078.html +18 -0
  114. data/doc/classes/Hash.src/M000080.html +20 -0
  115. data/doc/classes/Hash.src/M000083.html +18 -0
  116. data/doc/classes/Hash.src/M000084.html +20 -0
  117. data/doc/classes/Hash.src/M000086.html +19 -0
  118. data/doc/classes/Hash.src/M000087.html +20 -0
  119. data/doc/classes/Hash.src/M000089.html +16 -0
  120. data/doc/classes/Hash.src/M000090.html +19 -0
  121. data/doc/classes/Hash.src/M000091.html +22 -0
  122. data/doc/classes/Hash.src/M000092.html +18 -0
  123. data/doc/classes/Hash.src/M000093.html +18 -0
  124. data/doc/classes/Hash.src/M000094.html +20 -0
  125. data/doc/classes/Hash.src/M000095.html +19 -0
  126. data/doc/classes/Hash.src/M000096.html +19 -0
  127. data/doc/classes/Hash.src/M000097.html +19 -0
  128. data/doc/classes/Hash.src/M000098.html +18 -0
  129. data/doc/classes/Hash.src/M000099.html +18 -0
  130. data/doc/classes/Hash.src/M000100.html +19 -0
  131. data/doc/classes/Hash.src/M000101.html +24 -0
  132. data/doc/classes/Hash.src/M000104.html +55 -0
  133. data/doc/classes/Hash.src/M000105.html +19 -0
  134. data/doc/classes/Hash.src/M000106.html +19 -0
  135. data/doc/classes/Integer.html +248 -0
  136. data/doc/classes/Integer.src/M000007.html +19 -0
  137. data/doc/classes/Integer.src/M000008.html +18 -0
  138. data/doc/classes/Integer.src/M000009.html +18 -0
  139. data/doc/classes/Integer.src/M000010.html +21 -0
  140. data/doc/classes/Kernel.html +520 -0
  141. data/doc/classes/Kernel.src/M000334.html +27 -0
  142. data/doc/classes/Kernel.src/M000335.html +18 -0
  143. data/doc/classes/Kernel.src/M000336.html +18 -0
  144. data/doc/classes/Kernel.src/M000337.html +18 -0
  145. data/doc/classes/Kernel.src/M000338.html +24 -0
  146. data/doc/classes/Kernel.src/M000339.html +19 -0
  147. data/doc/classes/Kernel.src/M000340.html +22 -0
  148. data/doc/classes/Kernel.src/M000341.html +20 -0
  149. data/doc/classes/Kernel.src/M000342.html +19 -0
  150. data/doc/classes/Kernel.src/M000343.html +21 -0
  151. data/doc/classes/Kernel.src/M000344.html +18 -0
  152. data/doc/classes/MatchData.html +208 -0
  153. data/doc/classes/MatchData.src/M000107.html +21 -0
  154. data/doc/classes/MatchData.src/M000108.html +21 -0
  155. data/doc/classes/MatchData.src/M000109.html +18 -0
  156. data/doc/classes/Module.html +648 -0
  157. data/doc/classes/Module.src/M000112.html +32 -0
  158. data/doc/classes/Module.src/M000114.html +24 -0
  159. data/doc/classes/Module.src/M000115.html +41 -0
  160. data/doc/classes/Module.src/M000116.html +18 -0
  161. data/doc/classes/Module.src/M000117.html +20 -0
  162. data/doc/classes/Module.src/M000118.html +19 -0
  163. data/doc/classes/Module.src/M000119.html +20 -0
  164. data/doc/classes/Module.src/M000120.html +21 -0
  165. data/doc/classes/Module.src/M000122.html +23 -0
  166. data/doc/classes/Module.src/M000123.html +24 -0
  167. data/doc/classes/Module.src/M000124.html +20 -0
  168. data/doc/classes/Module.src/M000125.html +29 -0
  169. data/doc/classes/NilClass.html +336 -0
  170. data/doc/classes/NilClass.src/M000187.html +18 -0
  171. data/doc/classes/NilClass.src/M000188.html +16 -0
  172. data/doc/classes/NilClass.src/M000189.html +16 -0
  173. data/doc/classes/NilClass.src/M000190.html +16 -0
  174. data/doc/classes/NilClass.src/M000191.html +16 -0
  175. data/doc/classes/NilClass.src/M000192.html +16 -0
  176. data/doc/classes/NilClass.src/M000193.html +16 -0
  177. data/doc/classes/NilClass.src/M000194.html +16 -0
  178. data/doc/classes/Numeric.html +1122 -0
  179. data/doc/classes/Numeric.src/M000127.html +18 -0
  180. data/doc/classes/Numeric.src/M000128.html +18 -0
  181. data/doc/classes/Numeric.src/M000129.html +18 -0
  182. data/doc/classes/Numeric.src/M000130.html +29 -0
  183. data/doc/classes/Numeric.src/M000131.html +18 -0
  184. data/doc/classes/Numeric.src/M000132.html +18 -0
  185. data/doc/classes/Numeric.src/M000133.html +18 -0
  186. data/doc/classes/Numeric.src/M000135.html +18 -0
  187. data/doc/classes/Numeric.src/M000138.html +18 -0
  188. data/doc/classes/Numeric.src/M000141.html +18 -0
  189. data/doc/classes/Numeric.src/M000144.html +18 -0
  190. data/doc/classes/Numeric.src/M000147.html +19 -0
  191. data/doc/classes/Numeric.src/M000148.html +19 -0
  192. data/doc/classes/Numeric.src/M000149.html +18 -0
  193. data/doc/classes/Numeric.src/M000150.html +18 -0
  194. data/doc/classes/Numeric.src/M000151.html +18 -0
  195. data/doc/classes/Numeric.src/M000153.html +18 -0
  196. data/doc/classes/Numeric.src/M000155.html +18 -0
  197. data/doc/classes/Numeric.src/M000157.html +18 -0
  198. data/doc/classes/Numeric.src/M000159.html +18 -0
  199. data/doc/classes/Numeric.src/M000161.html +18 -0
  200. data/doc/classes/Numeric.src/M000163.html +18 -0
  201. data/doc/classes/Numeric.src/M000165.html +18 -0
  202. data/doc/classes/Numeric.src/M000167.html +18 -0
  203. data/doc/classes/Numeric.src/M000169.html +18 -0
  204. data/doc/classes/Numeric.src/M000171.html +18 -0
  205. data/doc/classes/Numeric.src/M000174.html +18 -0
  206. data/doc/classes/Numeric.src/M000178.html +20 -0
  207. data/doc/classes/Numeric.src/M000179.html +18 -0
  208. data/doc/classes/Numeric.src/M000180.html +18 -0
  209. data/doc/classes/Object.html +923 -0
  210. data/doc/classes/Object.src/M000215.html +21 -0
  211. data/doc/classes/Object.src/M000216.html +20 -0
  212. data/doc/classes/Object.src/M000217.html +18 -0
  213. data/doc/classes/Object.src/M000219.html +26 -0
  214. data/doc/classes/Object.src/M000220.html +20 -0
  215. data/doc/classes/Object.src/M000221.html +18 -0
  216. data/doc/classes/Object.src/M000222.html +18 -0
  217. data/doc/classes/Object.src/M000224.html +18 -0
  218. data/doc/classes/Object.src/M000226.html +18 -0
  219. data/doc/classes/Object.src/M000228.html +19 -0
  220. data/doc/classes/Object.src/M000229.html +19 -0
  221. data/doc/classes/Object.src/M000230.html +21 -0
  222. data/doc/classes/Object.src/M000232.html +18 -0
  223. data/doc/classes/Object.src/M000233.html +18 -0
  224. data/doc/classes/Object.src/M000234.html +19 -0
  225. data/doc/classes/Object.src/M000235.html +19 -0
  226. data/doc/classes/Object.src/M000236.html +19 -0
  227. data/doc/classes/Object.src/M000237.html +40 -0
  228. data/doc/classes/Object.src/M000238.html +27 -0
  229. data/doc/classes/Object.src/M000239.html +18 -0
  230. data/doc/classes/Object.src/M000240.html +18 -0
  231. data/doc/classes/Object.src/M000241.html +18 -0
  232. data/doc/classes/Object.src/M000242.html +18 -0
  233. data/doc/classes/OpenStruct.html +206 -0
  234. data/doc/classes/OpenStruct.src/M000199.html +22 -0
  235. data/doc/classes/OpenStruct.src/M000200.html +19 -0
  236. data/doc/classes/OpenStruct.src/M000201.html +20 -0
  237. data/doc/classes/Proc.html +184 -0
  238. data/doc/classes/Proc.src/M000110.html +20 -0
  239. data/doc/classes/Range.html +247 -0
  240. data/doc/classes/Range.src/M000003.html +23 -0
  241. data/doc/classes/Range.src/M000004.html +20 -0
  242. data/doc/classes/Range.src/M000005.html +18 -0
  243. data/doc/classes/Range.src/M000006.html +18 -0
  244. data/doc/classes/Regexp.html +205 -0
  245. data/doc/classes/Regexp.src/M000022.html +18 -0
  246. data/doc/classes/Regexp.src/M000023.html +18 -0
  247. data/doc/classes/Regexp.src/M000024.html +18 -0
  248. data/doc/classes/ScriptBug.html +111 -0
  249. data/doc/classes/String.html +1930 -0
  250. data/doc/classes/String.src/M000243.html +27 -0
  251. data/doc/classes/String.src/M000244.html +18 -0
  252. data/doc/classes/String.src/M000245.html +18 -0
  253. data/doc/classes/String.src/M000246.html +18 -0
  254. data/doc/classes/String.src/M000248.html +18 -0
  255. data/doc/classes/String.src/M000249.html +18 -0
  256. data/doc/classes/String.src/M000250.html +21 -0
  257. data/doc/classes/String.src/M000251.html +22 -0
  258. data/doc/classes/String.src/M000253.html +28 -0
  259. data/doc/classes/String.src/M000254.html +23 -0
  260. data/doc/classes/String.src/M000255.html +22 -0
  261. data/doc/classes/String.src/M000256.html +18 -0
  262. data/doc/classes/String.src/M000257.html +20 -0
  263. data/doc/classes/String.src/M000258.html +20 -0
  264. data/doc/classes/String.src/M000259.html +22 -0
  265. data/doc/classes/String.src/M000260.html +18 -0
  266. data/doc/classes/String.src/M000261.html +26 -0
  267. data/doc/classes/String.src/M000262.html +23 -0
  268. data/doc/classes/String.src/M000263.html +24 -0
  269. data/doc/classes/String.src/M000264.html +23 -0
  270. data/doc/classes/String.src/M000265.html +23 -0
  271. data/doc/classes/String.src/M000266.html +18 -0
  272. data/doc/classes/String.src/M000267.html +18 -0
  273. data/doc/classes/String.src/M000268.html +19 -0
  274. data/doc/classes/String.src/M000269.html +19 -0
  275. data/doc/classes/String.src/M000270.html +18 -0
  276. data/doc/classes/String.src/M000271.html +18 -0
  277. data/doc/classes/String.src/M000272.html +19 -0
  278. data/doc/classes/String.src/M000273.html +18 -0
  279. data/doc/classes/String.src/M000274.html +72 -0
  280. data/doc/classes/String.src/M000275.html +20 -0
  281. data/doc/classes/String.src/M000276.html +20 -0
  282. data/doc/classes/String.src/M000277.html +21 -0
  283. data/doc/classes/String.src/M000278.html +25 -0
  284. data/doc/classes/String.src/M000279.html +18 -0
  285. data/doc/classes/String.src/M000280.html +21 -0
  286. data/doc/classes/String.src/M000281.html +18 -0
  287. data/doc/classes/String.src/M000282.html +23 -0
  288. data/doc/classes/String.src/M000283.html +18 -0
  289. data/doc/classes/String.src/M000284.html +21 -0
  290. data/doc/classes/String.src/M000285.html +28 -0
  291. data/doc/classes/String.src/M000286.html +25 -0
  292. data/doc/classes/String.src/M000287.html +18 -0
  293. data/doc/classes/String.src/M000289.html +18 -0
  294. data/doc/classes/String.src/M000291.html +18 -0
  295. data/doc/classes/String.src/M000292.html +18 -0
  296. data/doc/classes/String.src/M000293.html +21 -0
  297. data/doc/classes/String.src/M000294.html +18 -0
  298. data/doc/classes/String.src/M000295.html +18 -0
  299. data/doc/classes/String.src/M000296.html +22 -0
  300. data/doc/classes/String.src/M000297.html +18 -0
  301. data/doc/classes/String.src/M000298.html +22 -0
  302. data/doc/classes/String.src/M000299.html +21 -0
  303. data/doc/classes/String.src/M000300.html +18 -0
  304. data/doc/classes/String.src/M000301.html +18 -0
  305. data/doc/classes/String.src/M000302.html +18 -0
  306. data/doc/classes/String.src/M000303.html +18 -0
  307. data/doc/classes/String.src/M000304.html +18 -0
  308. data/doc/classes/String.src/M000305.html +32 -0
  309. data/doc/classes/String.src/M000306.html +23 -0
  310. data/doc/classes/String.src/M000307.html +24 -0
  311. data/doc/classes/String.src/M000308.html +18 -0
  312. data/doc/classes/String.src/M000309.html +57 -0
  313. data/doc/classes/String/Format.html +279 -0
  314. data/doc/classes/String/Format.src/M000316.html +18 -0
  315. data/doc/classes/String/Format.src/M000317.html +18 -0
  316. data/doc/classes/String/Format.src/M000318.html +18 -0
  317. data/doc/classes/String/Format.src/M000320.html +18 -0
  318. data/doc/classes/String/Format.src/M000321.html +18 -0
  319. data/doc/classes/String/Format.src/M000322.html +18 -0
  320. data/doc/classes/String/Format.src/M000323.html +18 -0
  321. data/doc/classes/String/Format.src/M000324.html +18 -0
  322. data/doc/classes/String/Format.src/M000325.html +18 -0
  323. data/doc/classes/String/Inflect.html +221 -0
  324. data/doc/classes/String/Inflect.src/M000310.html +18 -0
  325. data/doc/classes/String/Inflect.src/M000311.html +18 -0
  326. data/doc/classes/String/Inflect.src/M000312.html +22 -0
  327. data/doc/classes/String/Inflect.src/M000313.html +22 -0
  328. data/doc/classes/String/Inflect.src/M000314.html +30 -0
  329. data/doc/classes/String/Inflect.src/M000315.html +31 -0
  330. data/doc/classes/Symbol.html +380 -0
  331. data/doc/classes/Symbol.src/M000012.html +18 -0
  332. data/doc/classes/Symbol.src/M000013.html +18 -0
  333. data/doc/classes/Symbol.src/M000014.html +22 -0
  334. data/doc/classes/Symbol.src/M000016.html +18 -0
  335. data/doc/classes/Symbol.src/M000017.html +18 -0
  336. data/doc/classes/Symbol.src/M000018.html +28 -0
  337. data/doc/classes/Symbol.src/M000019.html +26 -0
  338. data/doc/classes/Symbol.src/M000020.html +18 -0
  339. data/doc/classes/Symbol.src/M000021.html +18 -0
  340. data/doc/classes/Time.html +227 -0
  341. data/doc/classes/Time.src/M000025.html +51 -0
  342. data/doc/classes/Time.src/M000026.html +21 -0
  343. data/doc/created.rid +1 -0
  344. data/doc/files/LICENSE-GPL.html +537 -0
  345. data/doc/files/LICENSE-RUBY.html +166 -0
  346. data/doc/files/README.html +252 -0
  347. data/doc/files/lib/facet/all-base-common_rb.html +101 -0
  348. data/doc/files/lib/facet/all-base_rb.html +133 -0
  349. data/doc/files/lib/facet/array/[[]]_rb.html +108 -0
  350. data/doc/files/lib/facet/array/[]_rb.html +108 -0
  351. data/doc/files/lib/facet/array/at_rand_rb.html +101 -0
  352. data/doc/files/lib/facet/array/combinations_rb.html +101 -0
  353. data/doc/files/lib/facet/array/delete_values_rb.html +101 -0
  354. data/doc/files/lib/facet/array/first&last_rb.html +101 -0
  355. data/doc/files/lib/facet/array/get_rb.html +101 -0
  356. data/doc/files/lib/facet/array/head&tail_rb.html +101 -0
  357. data/doc/files/lib/facet/array/last_index_rb.html +101 -0
  358. data/doc/files/lib/facet/array/middle_rb.html +101 -0
  359. data/doc/files/lib/facet/array/pos_rb.html +101 -0
  360. data/doc/files/lib/facet/array/pull_rb.html +101 -0
  361. data/doc/files/lib/facet/array/range_rb.html +101 -0
  362. data/doc/files/lib/facet/array/rotate_rb.html +101 -0
  363. data/doc/files/lib/facet/array/select!_rb.html +101 -0
  364. data/doc/files/lib/facet/array/shuffle_rb.html +101 -0
  365. data/doc/files/lib/facet/array/store_rb.html +101 -0
  366. data/doc/files/lib/facet/array/thru_rb.html +101 -0
  367. data/doc/files/lib/facet/array/to_b_rb.html +101 -0
  368. data/doc/files/lib/facet/array/to_h_rb.html +101 -0
  369. data/doc/files/lib/facet/array_rb.html +120 -0
  370. data/doc/files/lib/facet/binding/called_rb.html +108 -0
  371. data/doc/files/lib/facet/binding/caller_rb.html +108 -0
  372. data/doc/files/lib/facet/binding/defined?_rb.html +108 -0
  373. data/doc/files/lib/facet/binding/delegate!_rb.html +101 -0
  374. data/doc/files/lib/facet/binding/eval_rb.html +101 -0
  375. data/doc/files/lib/facet/binding/lineno_rb.html +108 -0
  376. data/doc/files/lib/facet/binding/local_variables_rb.html +108 -0
  377. data/doc/files/lib/facet/binding/self_rb.html +108 -0
  378. data/doc/files/lib/facet/binding_rb.html +118 -0
  379. data/doc/files/lib/facet/class/cattr_rb.html +101 -0
  380. data/doc/files/lib/facet/class_rb.html +114 -0
  381. data/doc/files/lib/facet/comparable/bound_by_rb.html +101 -0
  382. data/doc/files/lib/facet/comparable_rb.html +114 -0
  383. data/doc/files/lib/facet/continuation/create_rb.html +101 -0
  384. data/doc/files/lib/facet/continuation_rb.html +114 -0
  385. data/doc/files/lib/facet/enumerable/**_rb.html +108 -0
  386. data/doc/files/lib/facet/enumerable/collect_with_counter_rb.html +101 -0
  387. data/doc/files/lib/facet/enumerable/cross_rb.html +108 -0
  388. data/doc/files/lib/facet/enumerable/each_slice_rb.html +101 -0
  389. data/doc/files/lib/facet/enumerable/every_rb.html +108 -0
  390. data/doc/files/lib/facet/enumerable/graph_rb.html +101 -0
  391. data/doc/files/lib/facet/enumerable/none?_rb.html +101 -0
  392. data/doc/files/lib/facet/enumerable/one?_rb.html +101 -0
  393. data/doc/files/lib/facet/enumerable/partition_by_rb.html +101 -0
  394. data/doc/files/lib/facet/enumerable/per_rb.html +108 -0
  395. data/doc/files/lib/facet/enumerable/to_hash_rb.html +101 -0
  396. data/doc/files/lib/facet/enumerable/uniq_by_rb.html +101 -0
  397. data/doc/files/lib/facet/enumerable_rb.html +118 -0
  398. data/doc/files/lib/facet/file/split_all_rb.html +101 -0
  399. data/doc/files/lib/facet/file_rb.html +114 -0
  400. data/doc/files/lib/facet/fileutils/head&tail_rb.html +108 -0
  401. data/doc/files/lib/facet/fileutils/safe_ln_rb.html +108 -0
  402. data/doc/files/lib/facet/fileutils/wc_rb.html +108 -0
  403. data/doc/files/lib/facet/fileutils/whereis_rb.html +108 -0
  404. data/doc/files/lib/facet/fileutils/which_rb.html +108 -0
  405. data/doc/files/lib/facet/fileutils_rb.html +115 -0
  406. data/doc/files/lib/facet/float/round_rb.html +101 -0
  407. data/doc/files/lib/facet/float_rb.html +114 -0
  408. data/doc/files/lib/facet/hash/<<_rb.html +101 -0
  409. data/doc/files/lib/facet/hash/[]_rb.html +101 -0
  410. data/doc/files/lib/facet/hash/alias!_rb.html +101 -0
  411. data/doc/files/lib/facet/hash/at_rand_rb.html +101 -0
  412. data/doc/files/lib/facet/hash/collate_rb.html +101 -0
  413. data/doc/files/lib/facet/hash/collect_rb.html +108 -0
  414. data/doc/files/lib/facet/hash/each_rb.html +101 -0
  415. data/doc/files/lib/facet/hash/has_keys?_rb.html +101 -0
  416. data/doc/files/lib/facet/hash/inverse_rb.html +101 -0
  417. data/doc/files/lib/facet/hash/keys_to_s_rb.html +101 -0
  418. data/doc/files/lib/facet/hash/keys_to_sym_rb.html +101 -0
  419. data/doc/files/lib/facet/hash/shuffle_rb.html +101 -0
  420. data/doc/files/lib/facet/hash/slice_rb.html +101 -0
  421. data/doc/files/lib/facet/hash/swap!_rb.html +101 -0
  422. data/doc/files/lib/facet/hash/swapkey!_rb.html +101 -0
  423. data/doc/files/lib/facet/hash/to_h_rb.html +101 -0
  424. data/doc/files/lib/facet/hash/to_ostruct_rb.html +108 -0
  425. data/doc/files/lib/facet/hash/traverse_rb.html +101 -0
  426. data/doc/files/lib/facet/hash/update_each_rb.html +101 -0
  427. data/doc/files/lib/facet/hash/weave_rb.html +101 -0
  428. data/doc/files/lib/facet/hash/zipnew_rb.html +101 -0
  429. data/doc/files/lib/facet/hash_rb.html +115 -0
  430. data/doc/files/lib/facet/integer/evenodd?_rb.html +101 -0
  431. data/doc/files/lib/facet/integer/factorial_rb.html +101 -0
  432. data/doc/files/lib/facet/integer/times_collect_rb.html +101 -0
  433. data/doc/files/lib/facet/integer_rb.html +116 -0
  434. data/doc/files/lib/facet/kernel/bug!_rb.html +101 -0
  435. data/doc/files/lib/facet/kernel/call_stack_rb.html +101 -0
  436. data/doc/files/lib/facet/kernel/called_rb.html +108 -0
  437. data/doc/files/lib/facet/kernel/demo_rb.html +101 -0
  438. data/doc/files/lib/facet/kernel/fn_rb.html +101 -0
  439. data/doc/files/lib/facet/kernel/get_by_id_rb.html +101 -0
  440. data/doc/files/lib/facet/kernel/here_rb.html +101 -0
  441. data/doc/files/lib/facet/kernel/maybe_rb.html +101 -0
  442. data/doc/files/lib/facet/kernel/method_name_rb.html +108 -0
  443. data/doc/files/lib/facet/kernel/require_all_rb.html +101 -0
  444. data/doc/files/lib/facet/kernel/require_local_rb.html +101 -0
  445. data/doc/files/lib/facet/kernel/resc_rb.html +101 -0
  446. data/doc/files/lib/facet/kernel/warn_with_line_rb.html +101 -0
  447. data/doc/files/lib/facet/kernel_rb.html +120 -0
  448. data/doc/files/lib/facet/matchdata/match_from_rb.html +108 -0
  449. data/doc/files/lib/facet/matchdata/match_rb.html +101 -0
  450. data/doc/files/lib/facet/matchdata_rb.html +115 -0
  451. data/doc/files/lib/facet/module/abstract_rb.html +118 -0
  452. data/doc/files/lib/facet/module/alias_module_function_rb.html +101 -0
  453. data/doc/files/lib/facet/module/basename_rb.html +101 -0
  454. data/doc/files/lib/facet/module/by_name_rb.html +108 -0
  455. data/doc/files/lib/facet/module/initializer_rb.html +101 -0
  456. data/doc/files/lib/facet/module/key_attributes_rb.html +101 -0
  457. data/doc/files/lib/facet/module/memoize_rb.html +130 -0
  458. data/doc/files/lib/facet/module/memoize_rb.src/M000002.html +18 -0
  459. data/doc/files/lib/facet/module/methods_rb.html +101 -0
  460. data/doc/files/lib/facet/module/redefine_method_rb.html +101 -0
  461. data/doc/files/lib/facet/module/redirect_rb.html +101 -0
  462. data/doc/files/lib/facet/module/sort_attributes_rb.html +101 -0
  463. data/doc/files/lib/facet/module/wrap_method_rb.html +101 -0
  464. data/doc/files/lib/facet/module_rb.html +116 -0
  465. data/doc/files/lib/facet/nil-as-emptiness_rb.html +130 -0
  466. data/doc/files/lib/facet/nil/[]_rb.html +101 -0
  467. data/doc/files/lib/facet/nil/empty?_rb.html +101 -0
  468. data/doc/files/lib/facet/nil/include?_rb.html +101 -0
  469. data/doc/files/lib/facet/nil/length_rb.html +101 -0
  470. data/doc/files/lib/facet/nil/to_f_rb.html +101 -0
  471. data/doc/files/lib/facet/nil/to_h_rb.html +101 -0
  472. data/doc/files/lib/facet/nil_rb.html +115 -0
  473. data/doc/files/lib/facet/numeric/bound_by_rb.html +101 -0
  474. data/doc/files/lib/facet/numeric/bytes_rb.html +101 -0
  475. data/doc/files/lib/facet/numeric/distance_rb.html +101 -0
  476. data/doc/files/lib/facet/numeric/octet_units_rb.html +108 -0
  477. data/doc/files/lib/facet/numeric/succ_rb.html +101 -0
  478. data/doc/files/lib/facet/numeric/times_rb.html +101 -0
  479. data/doc/files/lib/facet/numeric/to_b_rb.html +101 -0
  480. data/doc/files/lib/facet/numeric_rb.html +114 -0
  481. data/doc/files/lib/facet/object/__class___rb.html +101 -0
  482. data/doc/files/lib/facet/object/assign_with_rb.html +101 -0
  483. data/doc/files/lib/facet/object/bool?_rb.html +101 -0
  484. data/doc/files/lib/facet/object/constant_rb.html +101 -0
  485. data/doc/files/lib/facet/object/copy_rb.html +101 -0
  486. data/doc/files/lib/facet/object/in?_rb.html +101 -0
  487. data/doc/files/lib/facet/object/new_rb.html +101 -0
  488. data/doc/files/lib/facet/object/object_hexid_rb.html +101 -0
  489. data/doc/files/lib/facet/object/set_with_rb.html +101 -0
  490. data/doc/files/lib/facet/object/special_class_rb.html +101 -0
  491. data/doc/files/lib/facet/object/supers_rb.html +108 -0
  492. data/doc/files/lib/facet/object/to_b_rb.html +108 -0
  493. data/doc/files/lib/facet/object/to_bool_rb.html +101 -0
  494. data/doc/files/lib/facet/object/with_accessor_rb.html +101 -0
  495. data/doc/files/lib/facet/object_rb.html +120 -0
  496. data/doc/files/lib/facet/ostruct/[]_rb.html +108 -0
  497. data/doc/files/lib/facet/ostruct/ostruct_update_rb.html +108 -0
  498. data/doc/files/lib/facet/ostruct_rb.html +115 -0
  499. data/doc/files/lib/facet/proc/compose_rb.html +101 -0
  500. data/doc/files/lib/facet/proc/to_method_rb.html +138 -0
  501. data/doc/files/lib/facet/proc/to_method_rb.src/M000001.html +29 -0
  502. data/doc/files/lib/facet/proc_rb.html +115 -0
  503. data/doc/files/lib/facet/rand_rb.html +120 -0
  504. data/doc/files/lib/facet/range/to_r_rb.html +101 -0
  505. data/doc/files/lib/facet/range/umbrella_rb.html +101 -0
  506. data/doc/files/lib/facet/range/within?_rb.html +108 -0
  507. data/doc/files/lib/facet/range_rb.html +116 -0
  508. data/doc/files/lib/facet/regexp/arity_rb.html +101 -0
  509. data/doc/files/lib/facet/regexp/to_re_rb.html +101 -0
  510. data/doc/files/lib/facet/regexp_rb.html +115 -0
  511. data/doc/files/lib/facet/string/at_rand_rb.html +108 -0
  512. data/doc/files/lib/facet/string/blank?_rb.html +101 -0
  513. data/doc/files/lib/facet/string/braket_rb.html +101 -0
  514. data/doc/files/lib/facet/string/camelcase_rb.html +101 -0
  515. data/doc/files/lib/facet/string/case?_rb.html +101 -0
  516. data/doc/files/lib/facet/string/center_lines_rb.html +101 -0
  517. data/doc/files/lib/facet/string/chars_rb.html +101 -0
  518. data/doc/files/lib/facet/string/clump_rb.html +101 -0
  519. data/doc/files/lib/facet/string/cmp_rb.html +101 -0
  520. data/doc/files/lib/facet/string/dresner_rb.html +101 -0
  521. data/doc/files/lib/facet/string/each_word_rb.html +101 -0
  522. data/doc/files/lib/facet/string/first&last_rb.html +101 -0
  523. data/doc/files/lib/facet/string/format_rb.html +101 -0
  524. data/doc/files/lib/facet/string/fuzzy_match_rb.html +101 -0
  525. data/doc/files/lib/facet/string/index_all_rb.html +101 -0
  526. data/doc/files/lib/facet/string/inflect_rb.html +101 -0
  527. data/doc/files/lib/facet/string/line_to_char_map_rb.html +101 -0
  528. data/doc/files/lib/facet/string/line_wrap_rb.html +101 -0
  529. data/doc/files/lib/facet/string/margin_rb.html +101 -0
  530. data/doc/files/lib/facet/string/mscan_rb.html +101 -0
  531. data/doc/files/lib/facet/string/natcmp_rb.html +101 -0
  532. data/doc/files/lib/facet/string/rand_letter_rb.html +101 -0
  533. data/doc/files/lib/facet/string/range_rb.html +101 -0
  534. data/doc/files/lib/facet/string/shatter_rb.html +101 -0
  535. data/doc/files/lib/facet/string/shuffle_rb.html +101 -0
  536. data/doc/files/lib/facet/string/succ_rb.html +101 -0
  537. data/doc/files/lib/facet/string/tab_rb.html +101 -0
  538. data/doc/files/lib/facet/string/to_b_rb.html +101 -0
  539. data/doc/files/lib/facet/string/to_const_rb.html +108 -0
  540. data/doc/files/lib/facet/string/to_proc_rb.html +101 -0
  541. data/doc/files/lib/facet/string/to_re_rb.html +101 -0
  542. data/doc/files/lib/facet/string/unix_crypt_rb.html +108 -0
  543. data/doc/files/lib/facet/string/unpack_rb.html +101 -0
  544. data/doc/files/lib/facet/string/word_filter!_rb.html +101 -0
  545. data/doc/files/lib/facet/string/word_wrap_rb.html +101 -0
  546. data/doc/files/lib/facet/string_rb.html +122 -0
  547. data/doc/files/lib/facet/symbol/camelcase_rb.html +101 -0
  548. data/doc/files/lib/facet/symbol/gen_rb.html +101 -0
  549. data/doc/files/lib/facet/symbol/pad_rb.html +101 -0
  550. data/doc/files/lib/facet/symbol/succ_rb.html +101 -0
  551. data/doc/files/lib/facet/symbol/to_const_rb.html +108 -0
  552. data/doc/files/lib/facet/symbol/to_proc_rb.html +101 -0
  553. data/doc/files/lib/facet/symbol/to_str_rb.html +101 -0
  554. data/doc/files/lib/facet/symbol/~_rb.html +101 -0
  555. data/doc/files/lib/facet/symbol_rb.html +116 -0
  556. data/doc/files/lib/facet/time/custom_format_rb.html +108 -0
  557. data/doc/files/lib/facet/time/elapse_rb.html +101 -0
  558. data/doc/files/lib/facet/time_rb.html +107 -0
  559. data/doc/fr_class_index.html +54 -0
  560. data/doc/fr_file_index.html +239 -0
  561. data/doc/fr_method_index.html +394 -0
  562. data/doc/index.html +24 -0
  563. data/doc/rdoc-style.css +208 -0
  564. data/lib/facet-dev/README +11 -0
  565. data/lib/facet-dev/advice.rb +70 -0
  566. data/lib/facet-dev/array/**.rb +17 -0
  567. data/lib/facet-dev/array/at_rand.rb +95 -0
  568. data/lib/facet-dev/array/each_slice.rb +23 -0
  569. data/lib/facet-dev/array/pick_values.rb +32 -0
  570. data/lib/facet-dev/array/remove.rb +21 -0
  571. data/lib/facet-dev/arraysplit.tar.gz +0 -0
  572. data/lib/facet-dev/binding/class.rb +11 -0
  573. data/lib/facet-dev/binding/delegate.rb +15 -0
  574. data/lib/facet-dev/binding/proc.rb +6 -0
  575. data/lib/facet-dev/class_include.rb +13 -0
  576. data/lib/facet-dev/enumerable/[].rb +30 -0
  577. data/lib/facet-dev/enumerable/rand.rb +412 -0
  578. data/lib/facet-dev/fileutils/mv_f.rb +6 -0
  579. data/lib/facet-dev/fileutils/nl_convert.rb +69 -0
  580. data/lib/facet-dev/fileutils/tc_nlconvert.rb +60 -0
  581. data/lib/facet-dev/kernel/call_line.rb +15 -0
  582. data/lib/facet-dev/kernel/does.rb +7 -0
  583. data/lib/facet-dev/kernel/eval.rb +24 -0
  584. data/lib/facet-dev/kernel/message.rb +6 -0
  585. data/lib/facet-dev/module/preserved.rb +108 -0
  586. data/lib/facet-dev/object/==.rb +49 -0
  587. data/lib/facet-dev/object/>>.rb +50 -0
  588. data/lib/facet-dev/object/all.rb +11 -0
  589. data/lib/facet-dev/object/query.rb +15 -0
  590. data/lib/facet-dev/object/respond_with_value.rb +14 -0
  591. data/lib/facet-dev/rails/class_attribute_accessors.rb +57 -0
  592. data/lib/facet-dev/rails/class_inheritable_attributes.rb +117 -0
  593. data/lib/facet-dev/rails/clean_logger.rb +10 -0
  594. data/lib/facet-dev/rails/dependencies.rb +63 -0
  595. data/lib/facet-dev/rails/inflector.rb +84 -0
  596. data/lib/facet-dev/rails/misc.rb +8 -0
  597. data/lib/facet-dev/rails/module_attribute_accessors.rb +57 -0
  598. data/lib/facet-dev/rails/object_and_class.rb +24 -0
  599. data/lib/facet-dev/string/+.rb +19 -0
  600. data/lib/facet-dev/string/pred.rb +123 -0
  601. data/lib/facet-dev/string/slash.rb +15 -0
  602. data/lib/facet-dev/string/strip.rb +32 -0
  603. data/lib/facet-dev/string/succ_distance.rb +112 -0
  604. data/lib/facet-dev/string/tc_pred.rb +96 -0
  605. data/lib/facet-dev/string/word_wrap.rb +62 -0
  606. data/lib/facet-dev/taint.rb +10 -0
  607. data/lib/facet/all-base-common.rb +13 -0
  608. data/lib/facet/all-base.rb +27 -0
  609. data/lib/facet/array.rb +25 -0
  610. data/lib/facet/array/[[]].rb +42 -0
  611. data/lib/facet/array/[].rb +57 -0
  612. data/lib/facet/array/at_rand.rb +118 -0
  613. data/lib/facet/array/combinations.rb +122 -0
  614. data/lib/facet/array/delete_values.rb +46 -0
  615. data/lib/facet/array/first&last.rb +47 -0
  616. data/lib/facet/array/get.rb +15 -0
  617. data/lib/facet/array/head&tail.rb +33 -0
  618. data/lib/facet/array/last_index.rb +15 -0
  619. data/lib/facet/array/middle.rb +18 -0
  620. data/lib/facet/array/pos.rb +17 -0
  621. data/lib/facet/array/pull.rb +21 -0
  622. data/lib/facet/array/range.rb +22 -0
  623. data/lib/facet/array/rotate.rb +38 -0
  624. data/lib/facet/array/select!.rb +13 -0
  625. data/lib/facet/array/shuffle.rb +37 -0
  626. data/lib/facet/array/store.rb +4 -0
  627. data/lib/facet/array/thru.rb +18 -0
  628. data/lib/facet/array/to_b.rb +6 -0
  629. data/lib/facet/array/to_h.rb +30 -0
  630. data/lib/facet/binding.rb +15 -0
  631. data/lib/facet/binding/called.rb +29 -0
  632. data/lib/facet/binding/caller.rb +10 -0
  633. data/lib/facet/binding/defined?.rb +9 -0
  634. data/lib/facet/binding/delegate!.rb +19 -0
  635. data/lib/facet/binding/eval.rb +10 -0
  636. data/lib/facet/binding/lineno.rb +13 -0
  637. data/lib/facet/binding/local_variables.rb +39 -0
  638. data/lib/facet/binding/self.rb +10 -0
  639. data/lib/facet/class.rb +7 -0
  640. data/lib/facet/class/cattr.rb +82 -0
  641. data/lib/facet/comparable.rb +7 -0
  642. data/lib/facet/comparable/bound_by.rb +41 -0
  643. data/lib/facet/continuation.rb +8 -0
  644. data/lib/facet/continuation/create.rb +51 -0
  645. data/lib/facet/enumerable.rb +17 -0
  646. data/lib/facet/enumerable/**.rb +13 -0
  647. data/lib/facet/enumerable/collect_with_counter.rb +25 -0
  648. data/lib/facet/enumerable/cross.rb +79 -0
  649. data/lib/facet/enumerable/each_slice.rb +60 -0
  650. data/lib/facet/enumerable/every.rb +45 -0
  651. data/lib/facet/enumerable/graph.rb +48 -0
  652. data/lib/facet/enumerable/none?.rb +28 -0
  653. data/lib/facet/enumerable/one?.rb +35 -0
  654. data/lib/facet/enumerable/partition_by.rb +27 -0
  655. data/lib/facet/enumerable/per.rb +18 -0
  656. data/lib/facet/enumerable/to_hash.rb +17 -0
  657. data/lib/facet/enumerable/uniq_by.rb +35 -0
  658. data/lib/facet/file.rb +7 -0
  659. data/lib/facet/file/split_all.rb +17 -0
  660. data/lib/facet/fileutils.rb +11 -0
  661. data/lib/facet/fileutils/head&tail.rb +65 -0
  662. data/lib/facet/fileutils/safe_ln.rb +18 -0
  663. data/lib/facet/fileutils/wc.rb +62 -0
  664. data/lib/facet/fileutils/whereis.rb +63 -0
  665. data/lib/facet/fileutils/which.rb +53 -0
  666. data/lib/facet/float.rb +7 -0
  667. data/lib/facet/float/round.rb +33 -0
  668. data/lib/facet/hash.rb +23 -0
  669. data/lib/facet/hash/<<.rb +5 -0
  670. data/lib/facet/hash/[].rb +44 -0
  671. data/lib/facet/hash/alias!.rb +24 -0
  672. data/lib/facet/hash/at_rand.rb +88 -0
  673. data/lib/facet/hash/collate.rb +25 -0
  674. data/lib/facet/hash/collect.rb +8 -0
  675. data/lib/facet/hash/each.rb +28 -0
  676. data/lib/facet/hash/has_keys?.rb +48 -0
  677. data/lib/facet/hash/inverse.rb +29 -0
  678. data/lib/facet/hash/keys_to_s.rb +50 -0
  679. data/lib/facet/hash/keys_to_sym.rb +59 -0
  680. data/lib/facet/hash/shuffle.rb +51 -0
  681. data/lib/facet/hash/slice.rb +11 -0
  682. data/lib/facet/hash/swap!.rb +14 -0
  683. data/lib/facet/hash/swapkey!.rb +22 -0
  684. data/lib/facet/hash/to_h.rb +13 -0
  685. data/lib/facet/hash/to_ostruct.rb +30 -0
  686. data/lib/facet/hash/traverse.rb +35 -0
  687. data/lib/facet/hash/update_each.rb +24 -0
  688. data/lib/facet/hash/weave.rb +64 -0
  689. data/lib/facet/hash/zipnew.rb +15 -0
  690. data/lib/facet/integer.rb +9 -0
  691. data/lib/facet/integer/evenodd?.rb +25 -0
  692. data/lib/facet/integer/factorial.rb +27 -0
  693. data/lib/facet/integer/times_collect.rb +13 -0
  694. data/lib/facet/kernel.rb +18 -0
  695. data/lib/facet/kernel/bug!.rb +25 -0
  696. data/lib/facet/kernel/call_stack.rb +35 -0
  697. data/lib/facet/kernel/called.rb +20 -0
  698. data/lib/facet/kernel/demo.rb +25 -0
  699. data/lib/facet/kernel/fn.rb +10 -0
  700. data/lib/facet/kernel/get_by_id.rb +7 -0
  701. data/lib/facet/kernel/here.rb +11 -0
  702. data/lib/facet/kernel/maybe.rb +17 -0
  703. data/lib/facet/kernel/method_name.rb +18 -0
  704. data/lib/facet/kernel/require_all.rb +21 -0
  705. data/lib/facet/kernel/require_local.rb +26 -0
  706. data/lib/facet/kernel/resc.rb +7 -0
  707. data/lib/facet/kernel/warn_with_line.rb +19 -0
  708. data/lib/facet/matchdata.rb +8 -0
  709. data/lib/facet/matchdata/match.rb +12 -0
  710. data/lib/facet/matchdata/match_from.rb +38 -0
  711. data/lib/facet/module.rb +14 -0
  712. data/lib/facet/module/abstract.rb +20 -0
  713. data/lib/facet/module/alias_module_function.rb +28 -0
  714. data/lib/facet/module/basename.rb +18 -0
  715. data/lib/facet/module/by_name.rb +42 -0
  716. data/lib/facet/module/initializer.rb +35 -0
  717. data/lib/facet/module/key_attributes.rb +13 -0
  718. data/lib/facet/module/memoize.rb +50 -0
  719. data/lib/facet/module/methods.rb +98 -0
  720. data/lib/facet/module/redefine_method.rb +37 -0
  721. data/lib/facet/module/redirect.rb +39 -0
  722. data/lib/facet/module/sort_attributes.rb +12 -0
  723. data/lib/facet/module/wrap_method.rb +27 -0
  724. data/lib/facet/nil-as-emptiness.rb +34 -0
  725. data/lib/facet/nil.rb +15 -0
  726. data/lib/facet/nil/[].rb +12 -0
  727. data/lib/facet/nil/empty?.rb +19 -0
  728. data/lib/facet/nil/include?.rb +11 -0
  729. data/lib/facet/nil/length.rb +19 -0
  730. data/lib/facet/nil/to_f.rb +10 -0
  731. data/lib/facet/nil/to_h.rb +10 -0
  732. data/lib/facet/numeric.rb +9 -0
  733. data/lib/facet/numeric/bound_by.rb +41 -0
  734. data/lib/facet/numeric/bytes.rb +51 -0
  735. data/lib/facet/numeric/distance.rb +13 -0
  736. data/lib/facet/numeric/octet_units.rb +32 -0
  737. data/lib/facet/numeric/succ.rb +41 -0
  738. data/lib/facet/numeric/times.rb +106 -0
  739. data/lib/facet/numeric/to_b.rb +15 -0
  740. data/lib/facet/object.rb +20 -0
  741. data/lib/facet/object/__class__.rb +17 -0
  742. data/lib/facet/object/assign_with.rb +80 -0
  743. data/lib/facet/object/bool?.rb +49 -0
  744. data/lib/facet/object/constant.rb +22 -0
  745. data/lib/facet/object/copy.rb +13 -0
  746. data/lib/facet/object/in?.rb +12 -0
  747. data/lib/facet/object/new.rb +32 -0
  748. data/lib/facet/object/object_hexid.rb +12 -0
  749. data/lib/facet/object/set_with.rb +29 -0
  750. data/lib/facet/object/special_class.rb +45 -0
  751. data/lib/facet/object/supers.rb +38 -0
  752. data/lib/facet/object/to_b.rb +15 -0
  753. data/lib/facet/object/to_bool.rb +14 -0
  754. data/lib/facet/object/with_accessor.rb +50 -0
  755. data/lib/facet/ostruct.rb +8 -0
  756. data/lib/facet/ostruct/[].rb +29 -0
  757. data/lib/facet/ostruct/ostruct_update.rb +18 -0
  758. data/lib/facet/proc.rb +8 -0
  759. data/lib/facet/proc/compose.rb +22 -0
  760. data/lib/facet/proc/to_method.rb +43 -0
  761. data/lib/facet/rand.rb +10 -0
  762. data/lib/facet/range.rb +9 -0
  763. data/lib/facet/range/to_r.rb +16 -0
  764. data/lib/facet/range/umbrella.rb +37 -0
  765. data/lib/facet/range/within?.rb +19 -0
  766. data/lib/facet/regexp.rb +9 -0
  767. data/lib/facet/regexp/arity.rb +14 -0
  768. data/lib/facet/regexp/to_re.rb +25 -0
  769. data/lib/facet/string.rb +38 -0
  770. data/lib/facet/string/at_rand.rb +99 -0
  771. data/lib/facet/string/blank?.rb +14 -0
  772. data/lib/facet/string/braket.rb +27 -0
  773. data/lib/facet/string/camelcase.rb +24 -0
  774. data/lib/facet/string/case?.rb +44 -0
  775. data/lib/facet/string/center_lines.rb +26 -0
  776. data/lib/facet/string/chars.rb +34 -0
  777. data/lib/facet/string/clump.rb +51 -0
  778. data/lib/facet/string/cmp.rb +17 -0
  779. data/lib/facet/string/dresner.rb +25 -0
  780. data/lib/facet/string/each_word.rb +25 -0
  781. data/lib/facet/string/first&last.rb +123 -0
  782. data/lib/facet/string/format.rb +64 -0
  783. data/lib/facet/string/fuzzy_match.rb +82 -0
  784. data/lib/facet/string/index_all.rb +19 -0
  785. data/lib/facet/string/inflect.rb +70 -0
  786. data/lib/facet/string/line_to_char_map.rb +18 -0
  787. data/lib/facet/string/line_wrap.rb +20 -0
  788. data/lib/facet/string/margin.rb +27 -0
  789. data/lib/facet/string/mscan.rb +16 -0
  790. data/lib/facet/string/natcmp.rb +84 -0
  791. data/lib/facet/string/rand_letter.rb +13 -0
  792. data/lib/facet/string/range.rb +39 -0
  793. data/lib/facet/string/shatter.rb +17 -0
  794. data/lib/facet/string/shuffle.rb +49 -0
  795. data/lib/facet/string/succ.rb +17 -0
  796. data/lib/facet/string/tab.rb +38 -0
  797. data/lib/facet/string/to_b.rb +27 -0
  798. data/lib/facet/string/to_const.rb +16 -0
  799. data/lib/facet/string/to_proc.rb +25 -0
  800. data/lib/facet/string/to_re.rb +13 -0
  801. data/lib/facet/string/unix_crypt.rb +12 -0
  802. data/lib/facet/string/unpack.rb +15 -0
  803. data/lib/facet/string/word_filter!.rb +20 -0
  804. data/lib/facet/string/word_wrap.rb +43 -0
  805. data/lib/facet/symbol.rb +14 -0
  806. data/lib/facet/symbol/camelcase.rb +24 -0
  807. data/lib/facet/symbol/gen.rb +23 -0
  808. data/lib/facet/symbol/pad.rb +20 -0
  809. data/lib/facet/symbol/succ.rb +17 -0
  810. data/lib/facet/symbol/to_const.rb +16 -0
  811. data/lib/facet/symbol/to_proc.rb +22 -0
  812. data/lib/facet/symbol/to_str.rb +12 -0
  813. data/lib/facet/symbol/~.rb +8 -0
  814. data/lib/facet/time.rb +7 -0
  815. data/lib/facet/time/custom_format.rb +111 -0
  816. data/lib/facet/time/elapse.rb +18 -0
  817. data/setup.rb +1361 -0
  818. data/test/array/tc_array.rb +234 -0
  819. data/test/array/tc_brackets.rb +16 -0
  820. data/test/binding/tc_binding.rb +77 -0
  821. data/test/class/tc_class.rb +48 -0
  822. data/test/comparable/tc_comparable.rb +23 -0
  823. data/test/enumerable/tc_enumerable.rb +166 -0
  824. data/test/file/tc_file.rb +14 -0
  825. data/test/fileutils/tc_head&tail.rb +72 -0
  826. data/test/fileutils/tc_wc.rb +46 -0
  827. data/test/fileutils/tc_whereis.rb +35 -0
  828. data/test/fileutils/tc_which.rb +35 -0
  829. data/test/fileutils/test_file.txt +25 -0
  830. data/test/fileutils/test_file2.txt +25 -0
  831. data/test/float/tc_float.rb +70 -0
  832. data/test/hash/tc_each.rb +23 -0
  833. data/test/hash/tc_hash.rb +182 -0
  834. data/test/hash/tc_slice.rb +98 -0
  835. data/test/integer/tc_integer.rb +50 -0
  836. data/test/kernel/tc_kernel.rb +89 -0
  837. data/test/kernel/tc_warn_with_line.rb +1 -0
  838. data/test/kernel/test_file.rb +3 -0
  839. data/test/matchdata/tc_matchdata.rb +47 -0
  840. data/test/module/tc_memoize.rb +2 -0
  841. data/test/module/tc_methods.rb +13 -0
  842. data/test/module/tc_module.rb +51 -0
  843. data/test/module/tc_redef.rb +47 -0
  844. data/test/nil/tc_nil.rb +57 -0
  845. data/test/numeric/tc_numeric.rb +145 -0
  846. data/test/object/tc_constant.rb +21 -0
  847. data/test/object/tc_object.rb +138 -0
  848. data/test/object/tc_supers.rb +63 -0
  849. data/test/object/tc_with_accessor.rb +31 -0
  850. data/test/ostruct/tc_ostruct.rb +16 -0
  851. data/test/proc/tc_proc.rb +32 -0
  852. data/test/range/tc_range.rb +46 -0
  853. data/test/regexp/tc_regexp.rb +35 -0
  854. data/test/string/tc_fuzzy_match.rb +2 -0
  855. data/test/string/tc_margin.rb +98 -0
  856. data/test/string/tc_string.rb +341 -0
  857. data/test/string/tc_unix_crypt.rb +2 -0
  858. data/test/symbol/tc_symbol.rb +60 -0
  859. data/test/t_require.rb +4 -0
  860. data/test/time/tc_time.rb +30 -0
  861. metadata +1013 -0
data/README ADDED
@@ -0,0 +1,130 @@
1
+ = Ruby Facets
2
+
3
+ === Introduction Ruby's Atomic Library
4
+
5
+ Ruby Facets, the Fantastic Atomic Core Extensions, is an growing
6
+ collection of extension methods for Ruby's core and standard libs.
7
+ It is an _atomic_ library in that the methods are, to the greatest
8
+ degree reaonable, packaged individually so that each can be _required_
9
+ independently. Facets is an open library and all are wlecome to
10
+ contribute to it growth. The package currently contains over 200
11
+ methods, spanning 26 classes and modules. Facets also includes a
12
+ repository for experimental works, called <tt>facet-dev</tt>.
13
+ This provideds a public location to develop and try nascent extensions,
14
+ which may eventually make their way into Facets proper.
15
+
16
+
17
+ === Calibre
18
+
19
+ Ruby Facets is part of the Calibre project. You can learn more at:
20
+
21
+ http://calibre.rubyforge.com
22
+
23
+
24
+ === Installation
25
+
26
+ To install untar the package and use the included setup.rb script.
27
+ For example:
28
+
29
+ > tar -xvzf facets-x.y.z.tar.gz
30
+ > cd facets-x.y.z
31
+ > sudo ruby setup.rb
32
+
33
+
34
+ === Usage
35
+
36
+ There are quite a few methods spread out over numerous classes and methods.
37
+ For detailed usage please refer to the API RDocs. Most methods are fairly well
38
+ documented, but not all. Assistance in improving documentation is much appreciated.
39
+
40
+ The general require statement is as follows:
41
+
42
+ require 'facet/<class|module>/<method>'
43
+
44
+ All lowercase. For example, perhaps a paricular application would be better
45
+ served if the NilClass responded to the <tt>#empty?</tt> message.
46
+
47
+ require 'facet/nil/empty?'
48
+
49
+ And the <tt>#empty?</tt> method will then be only new method added.
50
+
51
+ Almost every file is named for the method in contains. The only
52
+ exceptions are for methods that are very tightly related. In these
53
+ cases the file will be named either for the "core" method, or as
54
+ a conjunction, like <tt>first&last.rb</tt>.
55
+
56
+ There are also shortcuts for including selections in mass.
57
+ In the future there will be more of these. For now there are only
58
+ the following two.
59
+
60
+ If you wish to include all the methods consider fundemental "base"
61
+ methods:
62
+
63
+ require 'facet/all-base'
64
+
65
+ This represents a group of about one to two dozen methods that are
66
+ considered likely to be included in future versions of Ruby itself.
67
+
68
+ If you would like to include the "base" methods plus all the methods
69
+ considered "common":
70
+
71
+ require 'facet/all-base-common'
72
+
73
+ This is a large selection of methods that are considered the most
74
+ generally useful.
75
+
76
+ All methods considered "uncommon" must be require individually.
77
+ Since it is possible for a few of the uncommon methods to conflict
78
+ with one another, there is no way to include _everything_.
79
+
80
+
81
+ === Contribute
82
+
83
+ The project thrives on contribution. Please feel free to offer any
84
+ extension you wish. The criteria for inclusion is fairly light:
85
+
86
+ * Is it generally useful and/or highly interesting?
87
+ * Does it pass a basic testcase?
88
+
89
+ If it meets these requirements then it will in all likelihood
90
+ be accepted into the main facets lib. Otherwise it may still find
91
+ a place in the development library. Feel free to explore this
92
+ facets-dev repository and, if so inclined, help develop what's
93
+ there. If you have an underdeveloped extension that you'd like
94
+ to see developed, please submit it and it can be placed into dev,
95
+ where it can reside and worked on by the community at large.
96
+
97
+
98
+ === Mascot
99
+
100
+ Does evey good project need a mascot? Well then, Facets
101
+ has the Raspberry. Why the Raspberry? Because it is
102
+ Red and Faceted, of course. :)
103
+
104
+
105
+ === Authorship
106
+
107
+ This collection was put together by, and largely written by Thomas Sawyer
108
+ (aka T. Onoma). He can be reached via email at transami at runbox.com.
109
+
110
+ Some parts of this collection were written and/or inspired by other
111
+ persons. Fortunately nearly all were copyrighted under the same open
112
+ license as this library. In the few excpetions I have included the
113
+ copyright notice with the source code. In all cases, I have made every
114
+ effort to give credit where credit is due. You will find these thanks
115
+ and acknowledgements at the beginning of the source code.
116
+
117
+ The collection as a whole is licensed as follows:
118
+
119
+ Ruby Facets, the Fantastic Atomic Core Extensions
120
+ Copyright (c) 2004 Thomas Sawyer
121
+ Ruby License
122
+
123
+ The Ruby license is a dual license that also provides for use of the GPL.
124
+ A copy of both licenses should accompany this document.
125
+
126
+
127
+ === Pitch
128
+
129
+ ALL YOUR BASE ARE BELONG TO RUBY
130
+
@@ -0,0 +1,74 @@
1
+ --- %YAML:1.0
2
+
3
+ TITLE: &title Ruby Facets
4
+ NAME: &pkg facets
5
+ VERSION: '0.6.3'
6
+ AUTHOR: Trans
7
+ EMAIL: transfire@gmail.com
8
+ HOMEPAGE: "http://calibre.rubyforge.org"
9
+
10
+ SUMMARY: Fantastic Atomic Core Extensions
11
+
12
+ DESCRIPTION: >
13
+ Ruby Facets is a cornicopia of core extensions for
14
+ the Ruby programming language. It is unique by virtue
15
+ of the atomicity of its design. Methods are stored
16
+ in their own files, allowing for extremely granular
17
+ control of requirements. Ruby Facets is a subproject
18
+ of Ruby Calibre.
19
+
20
+ RUBYFORGE:
21
+ PROJECT: 'calibre'
22
+ USERNAME: transami
23
+
24
+ TEST:
25
+ FILES:
26
+ - 'test/**/tc_*.rb'
27
+ OPTIONS: ~
28
+
29
+ RDOC:
30
+ TITLE: *title
31
+ DIR: 'doc'
32
+ TEMPLATE: html #ruby-red
33
+ OPTIONS: ['--merge', '--promiscuous', '--all']
34
+ MAIN: README
35
+ INCLUDE:
36
+ - 'README'
37
+ - 'LICEN*'
38
+ - 'lib/facet/**/*.rb'
39
+ EXCLUDE: []
40
+
41
+ PACKAGE:
42
+ DIR: pkg
43
+ INCLUDE:
44
+ - 'lib/**/*'
45
+ - 'bench/**/*'
46
+ - 'test/**/*'
47
+ - 'rdoc/**/*'
48
+ - 'doc/**/*'
49
+ - 'pub/**/*'
50
+ - 'demo/**/*'
51
+ - 'samples/**/*'
52
+ - 'examples/**/*'
53
+ - 'setup.rb'
54
+ - '[A-Z]*'
55
+ EXCLUDE:
56
+ - InstalledFiles
57
+ ZIP: true
58
+ GZIP: true
59
+ BZIP2: true
60
+ GEM: true
61
+
62
+ ANNOUNCE:
63
+ TO: transfire@gmail.com #ruby-talk@ruby-lang.org
64
+ FROM: transfire@gmail.com
65
+ DOMAIN: jupiterzeus.net
66
+ SERVER: smtp.gmail.com
67
+ PORT: 25
68
+ ACCOUNT: transfire@gmail.com
69
+ AUTHTYPE: login #cram_md5 #plain
70
+ FILE: ANN
71
+ SLOGAN: ALL YOUR BASE ARE BELONG TO RUBY!
72
+ INFO:
73
+ - http://calibre.rubyforge.org
74
+
data/TODO ADDED
@@ -0,0 +1,42 @@
1
+ IT IS ALWAYS A GOOD IDEA TO WRITE A TEST!
2
+ AND ITS ALWAYS A FINE THING TO IMPROVE DOCUMENTATION!
3
+
4
+ * hash/invert: What about letting Hash#invert take a block that specifies
5
+ what to do when a collision occurs?
6
+
7
+ * hash/at_rand: allow for a _number_ of values, keys and pairs to be returned.
8
+
9
+ * > Yep. Gone. But I may replace with a version that deletes only the first
10
+ > matching element. Thoughts?
11
+ If you don't want to do that I would rather add an option hash to .delete and
12
+ use :once => true or something similar. (More expressive)
13
+
14
+ * numeric/bound_by: Numeric includes Comparable. Maybe drop this, but
15
+ might it be reasonable for Numeric but no other comparables?
16
+
17
+ * nil/[]: Why should nil respond to [], but not to .each? I don't think
18
+ nil should be treated as a container.
19
+ nil/length: See above.
20
+
21
+ * nil/method_missing: I'm not so sure about this. There is a lot of
22
+ libraries depending on nil raising exceptions on failed method access. I
23
+ also think that this could make programming errors very hard to find.
24
+
25
+ * fileutils/head&tail: Hm, I think the block forms ought to be equivalent to
26
+ tail -f and so on. Then the block forms should also return all lines by default
27
+ instead of only the first 10.
28
+
29
+ * fileutils/which: Should probably be based on fileutils/where_is as they have
30
+ lots of common code. The two methods should probably also use RUBY_PLATFORM instead
31
+ of checking for ALT_SEPARATOR.
32
+
33
+ * module/memoize: Should the main memoize method be defined as it is?
34
+ (see bottom of file).
35
+
36
+ * kernel/demo: It can be implemented as demo "1+1"  using Binding.of_caller.
37
+ Using only the block is possibly with SCRIPT_LINES__ or File access and is quite ugly.
38
+
39
+ * hash/weave: Document how does it compare to Hash#merge?
40
+
41
+ * Could use a better String#word_wrap method.
42
+
data/VERSION ADDED
@@ -0,0 +1,7 @@
1
+ 0.6.1 Florian's Mixes
2
+ 0.6.0 Florian's Onslaught
3
+ 0.5.0 First Release
4
+ 0.4.0 Raspberry
5
+ 0.3.0 ABC
6
+ 0.2.0 Succ
7
+ 0.1.0 TomsLib
@@ -0,0 +1,1267 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Array</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Array</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/facet/array/pull_rb.html">
59
+ lib/facet/array/pull.rb
60
+ </a>
61
+ <br />
62
+ <a href="../files/lib/facet/array/[]_rb.html">
63
+ lib/facet/array/[].rb
64
+ </a>
65
+ <br />
66
+ <a href="../files/lib/facet/array/first&last_rb.html">
67
+ lib/facet/array/first&amp;last.rb
68
+ </a>
69
+ <br />
70
+ <a href="../files/lib/facet/array/head&tail_rb.html">
71
+ lib/facet/array/head&amp;tail.rb
72
+ </a>
73
+ <br />
74
+ <a href="../files/lib/facet/array/select!_rb.html">
75
+ lib/facet/array/select!.rb
76
+ </a>
77
+ <br />
78
+ <a href="../files/lib/facet/array/delete_values_rb.html">
79
+ lib/facet/array/delete_values.rb
80
+ </a>
81
+ <br />
82
+ <a href="../files/lib/facet/array/last_index_rb.html">
83
+ lib/facet/array/last_index.rb
84
+ </a>
85
+ <br />
86
+ <a href="../files/lib/facet/array/thru_rb.html">
87
+ lib/facet/array/thru.rb
88
+ </a>
89
+ <br />
90
+ <a href="../files/lib/facet/array/at_rand_rb.html">
91
+ lib/facet/array/at_rand.rb
92
+ </a>
93
+ <br />
94
+ <a href="../files/lib/facet/array/range_rb.html">
95
+ lib/facet/array/range.rb
96
+ </a>
97
+ <br />
98
+ <a href="../files/lib/facet/array/get_rb.html">
99
+ lib/facet/array/get.rb
100
+ </a>
101
+ <br />
102
+ <a href="../files/lib/facet/array/to_b_rb.html">
103
+ lib/facet/array/to_b.rb
104
+ </a>
105
+ <br />
106
+ <a href="../files/lib/facet/array/to_h_rb.html">
107
+ lib/facet/array/to_h.rb
108
+ </a>
109
+ <br />
110
+ <a href="../files/lib/facet/array/[[]]_rb.html">
111
+ lib/facet/array/[[]].rb
112
+ </a>
113
+ <br />
114
+ <a href="../files/lib/facet/array/pos_rb.html">
115
+ lib/facet/array/pos.rb
116
+ </a>
117
+ <br />
118
+ <a href="../files/lib/facet/array/rotate_rb.html">
119
+ lib/facet/array/rotate.rb
120
+ </a>
121
+ <br />
122
+ <a href="../files/lib/facet/array/shuffle_rb.html">
123
+ lib/facet/array/shuffle.rb
124
+ </a>
125
+ <br />
126
+ <a href="../files/lib/facet/array/combinations_rb.html">
127
+ lib/facet/array/combinations.rb
128
+ </a>
129
+ <br />
130
+ <a href="../files/lib/facet/array/middle_rb.html">
131
+ lib/facet/array/middle.rb
132
+ </a>
133
+ <br />
134
+ <a href="../files/lib/facet/array/store_rb.html">
135
+ lib/facet/array/store.rb
136
+ </a>
137
+ <br />
138
+ <a href="../files/lib/facet/enumerable/each_slice_rb.html">
139
+ lib/facet/enumerable/each_slice.rb
140
+ </a>
141
+ <br />
142
+ </td>
143
+ </tr>
144
+
145
+ <tr class="top-aligned-row">
146
+ <td><strong>Parent:</strong></td>
147
+ <td>
148
+ <a href="Object.html">
149
+ Object
150
+ </a>
151
+ </td>
152
+ </tr>
153
+ </table>
154
+ </div>
155
+ <!-- banner header -->
156
+
157
+ <div id="bodyContent">
158
+
159
+
160
+
161
+ <div id="contextContent">
162
+
163
+
164
+
165
+ </div>
166
+
167
+ <div id="method-list">
168
+ <h3 class="section-bar">Methods</h3>
169
+
170
+ <div class="name-list">
171
+ <a href="#M000027">[]</a>&nbsp;&nbsp;
172
+ <a href="#M000049">[]</a>&nbsp;&nbsp;
173
+ <a href="#M000028">[]=</a>&nbsp;&nbsp;
174
+ <a href="#M000050">[]=</a>&nbsp;&nbsp;
175
+ <a href="#M000040">at_rand</a>&nbsp;&nbsp;
176
+ <a href="#M000042">at_rand!</a>&nbsp;&nbsp;
177
+ <a href="#M000033">body</a>&nbsp;&nbsp;
178
+ <a href="#M000056">combinations</a>&nbsp;&nbsp;
179
+ <a href="#M000036">delete_values</a>&nbsp;&nbsp;
180
+ <a href="#M000037">delete_values_at</a>&nbsp;&nbsp;
181
+ <a href="#M000062">each_by</a>&nbsp;&nbsp;
182
+ <a href="#M000057">each_combination</a>&nbsp;&nbsp;
183
+ <a href="#M000061">each_slice</a>&nbsp;&nbsp;
184
+ <a href="#M000058">each_unique_pair</a>&nbsp;&nbsp;
185
+ <a href="#M000029">first=</a>&nbsp;&nbsp;
186
+ <a href="#M000034">foot</a>&nbsp;&nbsp;
187
+ <a href="#M000046">get</a>&nbsp;&nbsp;
188
+ <a href="#M000031">head</a>&nbsp;&nbsp;
189
+ <a href="#M000045">index_range</a>&nbsp;&nbsp;
190
+ <a href="#M000030">last=</a>&nbsp;&nbsp;
191
+ <a href="#M000038">last_index</a>&nbsp;&nbsp;
192
+ <a href="#M000059">middle</a>&nbsp;&nbsp;
193
+ <a href="#M000043">pick</a>&nbsp;&nbsp;
194
+ <a href="#M000051">pos</a>&nbsp;&nbsp;
195
+ <a href="#M000041">rand_index</a>&nbsp;&nbsp;
196
+ <a href="#M000044">range</a>&nbsp;&nbsp;
197
+ <a href="#M000052">rotate</a>&nbsp;&nbsp;
198
+ <a href="#M000053">rotate!</a>&nbsp;&nbsp;
199
+ <a href="#M000035">select!</a>&nbsp;&nbsp;
200
+ <a href="#M000054">shuffle</a>&nbsp;&nbsp;
201
+ <a href="#M000055">shuffle!</a>&nbsp;&nbsp;
202
+ <a href="#M000060">store</a>&nbsp;&nbsp;
203
+ <a href="#M000032">tail</a>&nbsp;&nbsp;
204
+ <a href="#M000039">thru</a>&nbsp;&nbsp;
205
+ <a href="#M000047">to_b</a>&nbsp;&nbsp;
206
+ <a href="#M000048">to_h</a>&nbsp;&nbsp;
207
+ </div>
208
+ </div>
209
+
210
+ </div>
211
+
212
+
213
+ <!-- if includes -->
214
+
215
+ <div id="section">
216
+
217
+
218
+
219
+ <div id="aliases-list">
220
+ <h3 class="section-bar">External Aliases</h3>
221
+
222
+ <div class="name-list">
223
+ <table summary="aliases">
224
+ <tr class="top-aligned-row context-row">
225
+ <td class="context-item-name">shift</td>
226
+ <td>-></td>
227
+ <td class="context-item-value">pull</td>
228
+ </tr>
229
+ <tr class="top-aligned-row context-row">
230
+ <td>&nbsp;</td>
231
+ <td colspan="2" class="context-item-desc">
232
+ Alias for shift.
233
+
234
+ <pre>
235
+ require 'facet/array/pull'
236
+
237
+ a=[1,2,3]
238
+ a.pull #=&gt; 1
239
+ a #=&gt; [2,3]
240
+ </pre>
241
+ </td>
242
+ </tr>
243
+ <tr class="top-aligned-row context-row">
244
+ <td class="context-item-name">unshift</td>
245
+ <td>-></td>
246
+ <td class="context-item-value">put</td>
247
+ </tr>
248
+ <tr class="top-aligned-row context-row">
249
+ <td>&nbsp;</td>
250
+ <td colspan="2" class="context-item-desc">
251
+ Alias for unshift.
252
+
253
+ <pre>
254
+ require 'facet/array/pull'
255
+
256
+ a=[1,2,3]
257
+ a.put(9) #=&gt; [9,1,2,3]
258
+ a #=&gt; [9,1,2,3]
259
+ </pre>
260
+ </td>
261
+ </tr>
262
+ <tr class="top-aligned-row context-row">
263
+ <td class="context-item-name">unshift</td>
264
+ <td>-></td>
265
+ <td class="context-item-value">first!</td>
266
+ </tr>
267
+ <tr class="top-aligned-row context-row">
268
+ <td>&nbsp;</td>
269
+ <td colspan="2" class="context-item-desc">
270
+ Alias for unshift, which <em>pushes</em> an element onto the front of an
271
+ array.
272
+
273
+ <pre>
274
+ require 'facet/array/first&amp;last='
275
+
276
+ a = [&quot;a&quot;,&quot;y&quot;,&quot;z&quot;]
277
+ a.first! &quot;x&quot;
278
+ p a #=&gt; [&quot;x&quot;,&quot;a&quot;,&quot;y&quot;,&quot;z&quot;]
279
+ </pre>
280
+ </td>
281
+ </tr>
282
+ <tr class="top-aligned-row context-row">
283
+ <td class="context-item-name">push</td>
284
+ <td>-></td>
285
+ <td class="context-item-value">last!</td>
286
+ </tr>
287
+ <tr class="top-aligned-row context-row">
288
+ <td>&nbsp;</td>
289
+ <td colspan="2" class="context-item-desc">
290
+ Alias for push.
291
+
292
+ <pre>
293
+ require 'facet/array/first&amp;last='
294
+
295
+ a = [1,2]
296
+ a.last! 3
297
+ p a #=&gt; [1,2,3]
298
+ </pre>
299
+ </td>
300
+ </tr>
301
+ </table>
302
+ </div>
303
+ </div>
304
+
305
+
306
+
307
+
308
+
309
+ <!-- if method_list -->
310
+ <div id="methods">
311
+ <h3 class="section-bar">Public Class methods</h3>
312
+
313
+ <div id="method-M000056" class="method-detail">
314
+ <a name="M000056"></a>
315
+
316
+ <div class="method-heading">
317
+ <a href="Array.src/M000056.html" target="Code" class="method-signature"
318
+ onclick="popupCode('Array.src/M000056.html');return false;">
319
+ <span class="method-name">combinations</span><span class="method-args">(head, *rest)</span>
320
+ </a>
321
+ </div>
322
+
323
+ <div class="method-description">
324
+ <p>
325
+ Produces an array of arrays of all possible combinations of the given
326
+ arrays in the position given. (Explain me better?)
327
+ </p>
328
+ <pre>
329
+ require 'facet/arrat/combinations'
330
+
331
+ a = %w|a b|
332
+ b = %w|a x|
333
+ c = %w|x y|
334
+ Array.combinations(a, b, c).each { |x| p x }
335
+ </pre>
336
+ <p>
337
+ produces
338
+ </p>
339
+ <pre>
340
+ [&quot;a&quot;, &quot;a&quot;, &quot;x&quot;]
341
+ [&quot;a&quot;, &quot;a&quot;, &quot;y&quot;]
342
+ [&quot;a&quot;, &quot;x&quot;, &quot;x&quot;]
343
+ [&quot;a&quot;, &quot;x&quot;, &quot;y&quot;]
344
+ [&quot;b&quot;, &quot;a&quot;, &quot;x&quot;]
345
+ [&quot;b&quot;, &quot;a&quot;, &quot;y&quot;]
346
+ [&quot;b&quot;, &quot;x&quot;, &quot;x&quot;]
347
+ [&quot;b&quot;, &quot;x&quot;, &quot;y&quot;]
348
+ </pre>
349
+ </div>
350
+ </div>
351
+
352
+ <h3 class="section-bar">Public Instance methods</h3>
353
+
354
+ <div id="method-M000027" class="method-detail">
355
+ <a name="M000027"></a>
356
+
357
+ <div class="method-heading">
358
+ <a href="Array.src/M000027.html" target="Code" class="method-signature"
359
+ onclick="popupCode('Array.src/M000027.html');return false;">
360
+ <span class="method-name">[]</span><span class="method-args">(*args)</span>
361
+ </a>
362
+ </div>
363
+
364
+ <div class="method-description">
365
+ <p>
366
+ Modifies #[] to accept a multiple indexes.
367
+ </p>
368
+ <pre>
369
+ require 'facet/array/[]'
370
+
371
+ a = ['a','b','c','d','e','f']
372
+
373
+ a[1] #=&gt; 'b'
374
+ a[1,1] #=&gt; ['b','b']
375
+ a[0,2,4] #=&gt; ['a','c','e']
376
+ a[1,1,1] #=&gt; ['b','b','b']
377
+ </pre>
378
+ <p>
379
+ WARNING: Use with caution! This will cause other routines, which use the
380
+ array[start,length] notation to no longer work. If you feel passinate about
381
+ it, make sure all other routines use slice or facet&#8217;s own <a
382
+ href="Array.html#M000046">get</a> method instead.
383
+ </p>
384
+ </div>
385
+ </div>
386
+
387
+ <div id="method-M000049" class="method-detail">
388
+ <a name="M000049"></a>
389
+
390
+ <div class="method-heading">
391
+ <a href="Array.src/M000049.html" target="Code" class="method-signature"
392
+ onclick="popupCode('Array.src/M000049.html');return false;">
393
+ <span class="method-name">[]</span><span class="method-args">(*args)</span>
394
+ </a>
395
+ </div>
396
+
397
+ <div class="method-description">
398
+ <p>
399
+ Modifies #[] to accept an <a href="Array.html">Array</a> of indexes.
400
+ </p>
401
+ <pre>
402
+ require 'facet/array/[[]]'
403
+
404
+ a = ['a','b','c','d','e','f']
405
+
406
+ a[[1]] #=&gt; ['b']
407
+ a[[1,1]] #=&gt; ['b','b']
408
+ a[[1,-1]] #=&gt; ['b','f']
409
+ a[[0,2,4]] #=&gt; ['a','c','e']
410
+ </pre>
411
+ </div>
412
+ </div>
413
+
414
+ <div id="method-M000028" class="method-detail">
415
+ <a name="M000028"></a>
416
+
417
+ <div class="method-heading">
418
+ <a href="Array.src/M000028.html" target="Code" class="method-signature"
419
+ onclick="popupCode('Array.src/M000028.html');return false;">
420
+ <span class="method-name">[]=</span><span class="method-args">(*args)</span>
421
+ </a>
422
+ </div>
423
+
424
+ <div class="method-description">
425
+ <p>
426
+ Add slicing to element assignment operator. If an <a
427
+ href="Array.html">Array</a> is passed as the assignment then each element
428
+ will be assigned to the corresponding index. The shorter of the two
429
+ determine how many to assign.
430
+ </p>
431
+ <pre>
432
+ require &quot;facet/array/[]&quot;
433
+
434
+ h = [1,2,3]
435
+
436
+ h[0,1] = [10,11] #=&gt; [10,11]
437
+ h #=&gt; [10,11,3]
438
+
439
+ h[0,1] = [12,13,14] #=&gt; [12,13]
440
+ h #=&gt; [12,13,3]
441
+
442
+ h[0,1] = [15] #=&gt; [15]
443
+ h #=&gt; [15,13,3]
444
+ </pre>
445
+ <p>
446
+ If any other object is passed as assignment then all indexes will be
447
+ assigned that same object.
448
+ </p>
449
+ <pre>
450
+ h[0,1] = 99 #=&gt; [99,99]
451
+ h #=&gt; [99,99,3]
452
+ </pre>
453
+ </div>
454
+ </div>
455
+
456
+ <div id="method-M000050" class="method-detail">
457
+ <a name="M000050"></a>
458
+
459
+ <div class="method-heading">
460
+ <a href="Array.src/M000050.html" target="Code" class="method-signature"
461
+ onclick="popupCode('Array.src/M000050.html');return false;">
462
+ <span class="method-name">[]=</span><span class="method-args">(*args)</span>
463
+ </a>
464
+ </div>
465
+
466
+ <div class="method-description">
467
+ <p>
468
+ Modifies #[]= to accept an <a href="Array.html">Array</a> of indexes for
469
+ assignment.
470
+ </p>
471
+ <pre>
472
+ require 'facet/array/[[]]'
473
+
474
+ a = ['a','b','c','d']
475
+
476
+ a[[1]] = 'x' #=&gt; ['x']
477
+ a #=&gt; ['a','x','c','d']
478
+
479
+ a[[1,-1]] = ['m','n'] #=&gt; ['m','n']
480
+ a #=&gt; ['a','m','c','n']
481
+ </pre>
482
+ </div>
483
+ </div>
484
+
485
+ <div id="method-M000040" class="method-detail">
486
+ <a name="M000040"></a>
487
+
488
+ <div class="method-heading">
489
+ <a href="Array.src/M000040.html" target="Code" class="method-signature"
490
+ onclick="popupCode('Array.src/M000040.html');return false;">
491
+ <span class="method-name">at_rand</span><span class="method-args">( number=nil, exclusive=true )</span>
492
+ </a>
493
+ </div>
494
+
495
+ <div class="method-description">
496
+ <p>
497
+ Return random <em>number</em> of value(s) from an <a
498
+ href="Array.html">Array</a>. If the <em>number</em> of elements is not
499
+ specified (or is <tt>nil</tt>) then returns a single element, otherwise
500
+ returns a random array of elements. By defualt the values are exclusive of
501
+ each other, but if <em>exclusive</em> is set to <tt>false</tt>, the same
502
+ values can be choosen more than once.
503
+ </p>
504
+ <p>
505
+ When <em>exclusive</em> is <tt>true</tt> (the default) and the
506
+ <em>number</em> given is greater than the size of the array, then all
507
+ values are returned.
508
+ </p>
509
+ <pre>
510
+ require 'facet/array/at_rand'
511
+
512
+ [1, 2, 3, 4].at_rand #=&gt; 2
513
+ [1, 2, 3, 4].at_rand(1) #=&gt; [2]
514
+ [1, 2, 3, 4].at_rand(2) #=&gt; [1,4]
515
+ [1, 2, 3, 4].at_rand(3) #=&gt; [4,3,2]
516
+ [1, 2, 3, 4].at_rand(3,false) #=&gt; [4,4,2]
517
+ </pre>
518
+ </div>
519
+ </div>
520
+
521
+ <div id="method-M000042" class="method-detail">
522
+ <a name="M000042"></a>
523
+
524
+ <div class="method-heading">
525
+ <a href="Array.src/M000042.html" target="Code" class="method-signature"
526
+ onclick="popupCode('Array.src/M000042.html');return false;">
527
+ <span class="method-name">at_rand!</span><span class="method-args">(number=nil)</span>
528
+ </a>
529
+ </div>
530
+
531
+ <div class="method-description">
532
+ <p>
533
+ Same as <a href="Array.html#M000040">at_rand</a>, but acts in place
534
+ removing the element from the array. This is necessarily exclusive.
535
+ </p>
536
+ <pre>
537
+ require 'facet/array/at_rand'
538
+
539
+ a = [1,2,3,4]
540
+ a.at_rand! #=&gt; 2
541
+ a #=&gt; [1,3,4]
542
+
543
+ a = [1,2,3,4]
544
+ a.at_rand!(2) #=&gt; [2,1]
545
+ a #=&gt; [3,4]
546
+ </pre>
547
+ </div>
548
+ </div>
549
+
550
+ <div id="method-M000033" class="method-detail">
551
+ <a name="M000033"></a>
552
+
553
+ <div class="method-heading">
554
+ <a href="Array.src/M000033.html" target="Code" class="method-signature"
555
+ onclick="popupCode('Array.src/M000033.html');return false;">
556
+ <span class="method-name">body</span><span class="method-args">()</span>
557
+ </a>
558
+ </div>
559
+
560
+ <div class="method-description">
561
+ <p>
562
+ Returns array of first element upto, but not including, the last element.
563
+ </p>
564
+ <pre>
565
+ [1,2,3].body #=&gt; [1,2]
566
+ </pre>
567
+ </div>
568
+ </div>
569
+
570
+ <div id="method-M000036" class="method-detail">
571
+ <a name="M000036"></a>
572
+
573
+ <div class="method-heading">
574
+ <a href="Array.src/M000036.html" target="Code" class="method-signature"
575
+ onclick="popupCode('Array.src/M000036.html');return false;">
576
+ <span class="method-name">delete_values</span><span class="method-args">(*values)</span>
577
+ </a>
578
+ </div>
579
+
580
+ <div class="method-description">
581
+ <p>
582
+ Delete multiple values from array.
583
+ </p>
584
+ <pre>
585
+ require 'facet/array/delete_values'
586
+
587
+ a = [1,2,3,4]
588
+ a.delete_values(1,2) #=&gt; [1,2]
589
+ a #=&gt; [3,4]
590
+ </pre>
591
+ </div>
592
+ </div>
593
+
594
+ <div id="method-M000037" class="method-detail">
595
+ <a name="M000037"></a>
596
+
597
+ <div class="method-heading">
598
+ <a href="Array.src/M000037.html" target="Code" class="method-signature"
599
+ onclick="popupCode('Array.src/M000037.html');return false;">
600
+ <span class="method-name">delete_values_at</span><span class="method-args">(*selectors)</span>
601
+ </a>
602
+ </div>
603
+
604
+ <div class="method-description">
605
+ <p>
606
+ Delete multiple values from array given indexes or index range.
607
+ </p>
608
+ <pre>
609
+ require 'facet/array/delete_values'
610
+
611
+ a = [1,2,3,4]
612
+ a.delete_values_at(1,2) #=&gt; [2,3]
613
+ a #=&gt; [1,4]
614
+ a = [1,2,3,4]
615
+ a.delete_values_at(0..2) #=&gt; [1,2,3]
616
+ a #=&gt; [4]
617
+ </pre>
618
+ </div>
619
+ </div>
620
+
621
+ <div id="method-M000062" class="method-detail">
622
+ <a name="M000062"></a>
623
+
624
+ <div class="method-heading">
625
+ <span class="method-name">each_by</span><span class="method-args">(n=nil, &amp;yld)</span>
626
+ </div>
627
+
628
+ <div class="method-description">
629
+ <p>
630
+ Alias for <a href="Array.html#M000061">each_slice</a>
631
+ </p>
632
+ </div>
633
+ </div>
634
+
635
+ <div id="method-M000057" class="method-detail">
636
+ <a name="M000057"></a>
637
+
638
+ <div class="method-heading">
639
+ <a href="Array.src/M000057.html" target="Code" class="method-signature"
640
+ onclick="popupCode('Array.src/M000057.html');return false;">
641
+ <span class="method-name">each_combination</span><span class="method-args">(k=2) {|self.values_at(*idx)| ...}</span>
642
+ </a>
643
+ </div>
644
+
645
+ <div class="method-description">
646
+ <p>
647
+ Yields the block to each unique combination of <em>n</em> elements.
648
+ </p>
649
+ <pre>
650
+ a = %w|a b c d|
651
+ a.each_combination(3) do |c|
652
+ p c
653
+ end
654
+ </pre>
655
+ <p>
656
+ produces
657
+ </p>
658
+ <pre>
659
+ [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;]
660
+ [&quot;a&quot;, &quot;b&quot;, &quot;d&quot;]
661
+ [&quot;a&quot;, &quot;c&quot;, &quot;d&quot;]
662
+ [&quot;b&quot;, &quot;c&quot;, &quot;d&quot;]
663
+ </pre>
664
+ </div>
665
+ </div>
666
+
667
+ <div id="method-M000061" class="method-detail">
668
+ <a name="M000061"></a>
669
+
670
+ <div class="method-heading">
671
+ <a href="Array.src/M000061.html" target="Code" class="method-signature"
672
+ onclick="popupCode('Array.src/M000061.html');return false;">
673
+ <span class="method-name">each_slice</span><span class="method-args">(n=nil, &amp;yld)</span>
674
+ </a>
675
+ </div>
676
+
677
+ <div class="method-description">
678
+ <p>
679
+ Iterates over <tt>n</tt> elements at a time. If <tt>n</tt> is not given
680
+ then the arity of the block determines the slicing quantity.
681
+ </p>
682
+ <pre>
683
+ require 'facet/array/each_slice'
684
+
685
+ [1, 2, 3, 4].each_slice(2){ |a,b| ... }
686
+ </pre>
687
+ <p>
688
+ This is a specialized version <a
689
+ href="Enumerable.html#M000360">Enumerable#each_slice</a> but optimized
690
+ specifically for <a href="Array.html">Array</a>.
691
+ </p>
692
+ </div>
693
+ </div>
694
+
695
+ <div id="method-M000058" class="method-detail">
696
+ <a name="M000058"></a>
697
+
698
+ <div class="method-heading">
699
+ <a href="Array.src/M000058.html" target="Code" class="method-signature"
700
+ onclick="popupCode('Array.src/M000058.html');return false;">
701
+ <span class="method-name">each_unique_pair</span><span class="method-args">(&amp;yld)</span>
702
+ </a>
703
+ </div>
704
+
705
+ <div class="method-description">
706
+ <p>
707
+ Processes each unique pair (of indices, not value) in the array by yielding
708
+ them to the supplied block.
709
+ </p>
710
+ <pre>
711
+ a = [1,2,3,4]
712
+ a.each_unique_pair{ |a,b| puts a+','+b }
713
+ </pre>
714
+ <p>
715
+ produces
716
+ </p>
717
+ <pre>
718
+ 1,2
719
+ 1,3
720
+ 1,4
721
+ 2,3
722
+ 2,4
723
+ 3,4
724
+ </pre>
725
+ <p>
726
+ This does not guarantee the uniqueness of values. For example:
727
+ </p>
728
+ <pre>
729
+ a = [1,2,1]
730
+ a.each_unique_pair{ |a,b| puts a+','+b }
731
+ </pre>
732
+ <p>
733
+ prduces
734
+ </p>
735
+ <pre>
736
+ 1,2
737
+ 1,1
738
+ 2,1
739
+ </pre>
740
+ <p>
741
+ This is equivalent to <tt><a
742
+ href="Array.html#M000057">each_combination</a>(2){ &#8230; }</tt>.
743
+ </p>
744
+ </div>
745
+ </div>
746
+
747
+ <div id="method-M000029" class="method-detail">
748
+ <a name="M000029"></a>
749
+
750
+ <div class="method-heading">
751
+ <a href="Array.src/M000029.html" target="Code" class="method-signature"
752
+ onclick="popupCode('Array.src/M000029.html');return false;">
753
+ <span class="method-name">first=</span><span class="method-args">(x)</span>
754
+ </a>
755
+ </div>
756
+
757
+ <div class="method-description">
758
+ <p>
759
+ Change the first element.
760
+ </p>
761
+ <pre>
762
+ require 'facet/array/first&amp;last='
763
+
764
+ a = [&quot;a&quot;,&quot;y&quot;,&quot;z&quot;]
765
+ a.first = &quot;x&quot;
766
+ p a #=&gt; [&quot;x&quot;,&quot;y&quot;,&quot;z&quot;]
767
+ </pre>
768
+ </div>
769
+ </div>
770
+
771
+ <div id="method-M000034" class="method-detail">
772
+ <a name="M000034"></a>
773
+
774
+ <div class="method-heading">
775
+ <a href="Array.src/M000034.html" target="Code" class="method-signature"
776
+ onclick="popupCode('Array.src/M000034.html');return false;">
777
+ <span class="method-name">foot</span><span class="method-args">()</span>
778
+ </a>
779
+ </div>
780
+
781
+ <div class="method-description">
782
+ <p>
783
+ Like last but returns the last element in an array.
784
+ </p>
785
+ <pre>
786
+ [1,2,3].foot #=&gt; [3]
787
+ </pre>
788
+ </div>
789
+ </div>
790
+
791
+ <div id="method-M000046" class="method-detail">
792
+ <a name="M000046"></a>
793
+
794
+ <div class="method-heading">
795
+ <a href="Array.src/M000046.html" target="Code" class="method-signature"
796
+ onclick="popupCode('Array.src/M000046.html');return false;">
797
+ <span class="method-name">get</span><span class="method-args">( start, len=1 )</span>
798
+ </a>
799
+ </div>
800
+
801
+ <div class="method-description">
802
+ <p>
803
+ Fetch values given a start index and a length.
804
+ </p>
805
+ <pre>
806
+ require 'facet/array/get'
807
+
808
+ [1,2,3,4].get(0,2) #=&gt; [1,2]
809
+ [1,2,3,4].get(2,2) #=&gt; [3,4]
810
+ </pre>
811
+ </div>
812
+ </div>
813
+
814
+ <div id="method-M000031" class="method-detail">
815
+ <a name="M000031"></a>
816
+
817
+ <div class="method-heading">
818
+ <a href="Array.src/M000031.html" target="Code" class="method-signature"
819
+ onclick="popupCode('Array.src/M000031.html');return false;">
820
+ <span class="method-name">head</span><span class="method-args">()</span>
821
+ </a>
822
+ </div>
823
+
824
+ <div class="method-description">
825
+ <p>
826
+ Like first but returns the first element in an array.
827
+ </p>
828
+ <pre>
829
+ [1,2,3].head #=&gt; [1]
830
+ </pre>
831
+ </div>
832
+ </div>
833
+
834
+ <div id="method-M000045" class="method-detail">
835
+ <a name="M000045"></a>
836
+
837
+ <div class="method-heading">
838
+ <span class="method-name">index_range</span><span class="method-args">(a=nil,z=nil)</span>
839
+ </div>
840
+
841
+ <div class="method-description">
842
+ <p>
843
+ Alias for <a href="Array.html#M000044">range</a>
844
+ </p>
845
+ </div>
846
+ </div>
847
+
848
+ <div id="method-M000030" class="method-detail">
849
+ <a name="M000030"></a>
850
+
851
+ <div class="method-heading">
852
+ <a href="Array.src/M000030.html" target="Code" class="method-signature"
853
+ onclick="popupCode('Array.src/M000030.html');return false;">
854
+ <span class="method-name">last=</span><span class="method-args">(x)</span>
855
+ </a>
856
+ </div>
857
+
858
+ <div class="method-description">
859
+ <p>
860
+ Change the last element.
861
+ </p>
862
+ <pre>
863
+ require 'facet/array/first&amp;last='
864
+
865
+ a = [1,2,5]
866
+ a.last = 3
867
+ p a #=&gt; [1,2,3]
868
+ </pre>
869
+ </div>
870
+ </div>
871
+
872
+ <div id="method-M000038" class="method-detail">
873
+ <a name="M000038"></a>
874
+
875
+ <div class="method-heading">
876
+ <a href="Array.src/M000038.html" target="Code" class="method-signature"
877
+ onclick="popupCode('Array.src/M000038.html');return false;">
878
+ <span class="method-name">last_index</span><span class="method-args">()</span>
879
+ </a>
880
+ </div>
881
+
882
+ <div class="method-description">
883
+ <p>
884
+ Returns the last index of the array. Returns nil is array has no elements.
885
+ </p>
886
+ <pre>
887
+ require 'facet/array/last_index'
888
+
889
+ [1,2,3,4,5].last_index #=&gt; 4
890
+ </pre>
891
+ </div>
892
+ </div>
893
+
894
+ <div id="method-M000059" class="method-detail">
895
+ <a name="M000059"></a>
896
+
897
+ <div class="method-heading">
898
+ <a href="Array.src/M000059.html" target="Code" class="method-signature"
899
+ onclick="popupCode('Array.src/M000059.html');return false;">
900
+ <span class="method-name">middle</span><span class="method-args">(offset=0)</span>
901
+ </a>
902
+ </div>
903
+
904
+ <div class="method-description">
905
+ <p>
906
+ Returns the middle element of an array, or the element offset from middle
907
+ if the parameter is given. Even-sized arrays, not having an exact middle,
908
+ return the middle-right element.
909
+ </p>
910
+ <pre>
911
+ require 'facet/array/middle'
912
+
913
+ [1,2,3,4,5].middle #=&gt; 3
914
+ [1,2,3,4,5,6].middle #=&gt; 4
915
+ [1,2,3,4,5,6].middle(-1) #=&gt; 3
916
+ </pre>
917
+ <p>
918
+ In other words, If there are an even number of elements the higher-indexed
919
+ of the two center elements is indexed as orgin (0).
920
+ </p>
921
+ </div>
922
+ </div>
923
+
924
+ <div id="method-M000043" class="method-detail">
925
+ <a name="M000043"></a>
926
+
927
+ <div class="method-heading">
928
+ <span class="method-name">pick</span><span class="method-args">(number=nil)</span>
929
+ </div>
930
+
931
+ <div class="method-description">
932
+ <p>
933
+ Alias for <a href="Array.html#M000042">at_rand!</a>
934
+ </p>
935
+ </div>
936
+ </div>
937
+
938
+ <div id="method-M000051" class="method-detail">
939
+ <a name="M000051"></a>
940
+
941
+ <div class="method-heading">
942
+ <a href="Array.src/M000051.html" target="Code" class="method-signature"
943
+ onclick="popupCode('Array.src/M000051.html');return false;">
944
+ <span class="method-name">pos</span><span class="method-args">(i)</span>
945
+ </a>
946
+ </div>
947
+
948
+ <div class="method-description">
949
+ <p>
950
+ Returns positive index of an element based on cardinal positions 1 to n and
951
+ n to -1.
952
+ </p>
953
+ <pre>
954
+ require 'facet/array/pos'
955
+
956
+ [1,2,3,4,5].pos(1) #=&gt; 0
957
+ [1,2,3,4,5].pos(-1) #=&gt; 4
958
+ </pre>
959
+ </div>
960
+ </div>
961
+
962
+ <div id="method-M000041" class="method-detail">
963
+ <a name="M000041"></a>
964
+
965
+ <div class="method-heading">
966
+ <a href="Array.src/M000041.html" target="Code" class="method-signature"
967
+ onclick="popupCode('Array.src/M000041.html');return false;">
968
+ <span class="method-name">rand_index</span><span class="method-args">( number=nil, exclusive=true )</span>
969
+ </a>
970
+ </div>
971
+
972
+ <div class="method-description">
973
+ <p>
974
+ Return random index(es) from an <a href="Array.html">Array</a>. If the
975
+ <em>number</em> of elements is not specified (or is <tt>nil</tt>) then
976
+ returns just a single index.
977
+ </p>
978
+ <p>
979
+ When <em>exclusive</em> is <tt>true</tt> (the default) and the
980
+ <em>number</em> given is greater than the size of the array, then all
981
+ indexes are returned.
982
+ </p>
983
+ <pre>
984
+ require 'facet/array/at_rand'
985
+
986
+ [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;].rand_index #=&gt; 1
987
+ [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;].rand_index #=&gt; 2
988
+ [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;].rand_index(2) #=&gt; [2,1]
989
+ [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;].rand_index(3) #=&gt; [1,3,2]
990
+ [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;].rand_index(3,false) #=&gt; [4,3,4]
991
+ </pre>
992
+ </div>
993
+ </div>
994
+
995
+ <div id="method-M000044" class="method-detail">
996
+ <a name="M000044"></a>
997
+
998
+ <div class="method-heading">
999
+ <a href="Array.src/M000044.html" target="Code" class="method-signature"
1000
+ onclick="popupCode('Array.src/M000044.html');return false;">
1001
+ <span class="method-name">range</span><span class="method-args">(a=nil,z=nil)</span>
1002
+ </a>
1003
+ </div>
1004
+
1005
+ <div class="method-description">
1006
+ <p>
1007
+ Returns the index range between two elements. If no elements are given,
1008
+ returns the range from first to last.
1009
+ </p>
1010
+ <pre>
1011
+ require 'facet/array/range'
1012
+
1013
+ ['a','b','c','d'].range #=&gt; 0..3
1014
+ ['a','b','c','d'].range('b','d') #=&gt; 1..2
1015
+ </pre>
1016
+ </div>
1017
+ </div>
1018
+
1019
+ <div id="method-M000052" class="method-detail">
1020
+ <a name="M000052"></a>
1021
+
1022
+ <div class="method-heading">
1023
+ <a href="Array.src/M000052.html" target="Code" class="method-signature"
1024
+ onclick="popupCode('Array.src/M000052.html');return false;">
1025
+ <span class="method-name">rotate</span><span class="method-args">(n=1)</span>
1026
+ </a>
1027
+ </div>
1028
+
1029
+ <div class="method-description">
1030
+ <p>
1031
+ Rotates an array&#8217;s elements from back to front n times.
1032
+ </p>
1033
+ <pre>
1034
+ require 'facet/array/rotate'
1035
+
1036
+ [1,2,3].rotate #=&gt; [3,1,2]
1037
+ [3,1,2].rotate #=&gt; [2,3,1]
1038
+ [3,1,2].rotate #=&gt; [1,2,3]
1039
+ [1,2,3].rotate(3) #=&gt; [1,2,3]
1040
+ </pre>
1041
+ <p>
1042
+ A negative parameter reverses the order from front to back.
1043
+ </p>
1044
+ <pre>
1045
+ [1,2,3].rotate(-1) #=&gt; [2,3,1]
1046
+ </pre>
1047
+ </div>
1048
+ </div>
1049
+
1050
+ <div id="method-M000053" class="method-detail">
1051
+ <a name="M000053"></a>
1052
+
1053
+ <div class="method-heading">
1054
+ <a href="Array.src/M000053.html" target="Code" class="method-signature"
1055
+ onclick="popupCode('Array.src/M000053.html');return false;">
1056
+ <span class="method-name">rotate!</span><span class="method-args">(n=1)</span>
1057
+ </a>
1058
+ </div>
1059
+
1060
+ <div class="method-description">
1061
+ <p>
1062
+ Same as <a href="Array.html#M000052">rotate</a>, but acts in place.
1063
+ </p>
1064
+ <pre>
1065
+ require 'facet/array/rotate'
1066
+
1067
+ a = [1,2,3]
1068
+ a.rotate
1069
+ a #=&gt; [3,1,2]
1070
+ </pre>
1071
+ </div>
1072
+ </div>
1073
+
1074
+ <div id="method-M000035" class="method-detail">
1075
+ <a name="M000035"></a>
1076
+
1077
+ <div class="method-heading">
1078
+ <a href="Array.src/M000035.html" target="Code" class="method-signature"
1079
+ onclick="popupCode('Array.src/M000035.html');return false;">
1080
+ <span class="method-name">select!</span><span class="method-args">( {|| ...}</span>
1081
+ </a>
1082
+ </div>
1083
+
1084
+ <div class="method-description">
1085
+ <p>
1086
+ As with select but modifies the <a href="Array.html">Array</a> in place.
1087
+ </p>
1088
+ <pre>
1089
+ require 'facet/array/select!'
1090
+
1091
+ a = [1,2,3,4,5,6,7,8,9,10]
1092
+ a.select!{ |e| e % 2 == 0 }
1093
+ a #=&gt; [2,4,6,8,10]
1094
+ </pre>
1095
+ </div>
1096
+ </div>
1097
+
1098
+ <div id="method-M000054" class="method-detail">
1099
+ <a name="M000054"></a>
1100
+
1101
+ <div class="method-heading">
1102
+ <a href="Array.src/M000054.html" target="Code" class="method-signature"
1103
+ onclick="popupCode('Array.src/M000054.html');return false;">
1104
+ <span class="method-name">shuffle</span><span class="method-args">()</span>
1105
+ </a>
1106
+ </div>
1107
+
1108
+ <div class="method-description">
1109
+ <p>
1110
+ Randomize the order of an array.
1111
+ </p>
1112
+ <pre>
1113
+ require 'facet/array/shuffle'
1114
+
1115
+ [1,2,3,4].shuffle #=&gt; [2,4,1,3]
1116
+ </pre>
1117
+ </div>
1118
+ </div>
1119
+
1120
+ <div id="method-M000055" class="method-detail">
1121
+ <a name="M000055"></a>
1122
+
1123
+ <div class="method-heading">
1124
+ <a href="Array.src/M000055.html" target="Code" class="method-signature"
1125
+ onclick="popupCode('Array.src/M000055.html');return false;">
1126
+ <span class="method-name">shuffle!</span><span class="method-args">()</span>
1127
+ </a>
1128
+ </div>
1129
+
1130
+ <div class="method-description">
1131
+ <p>
1132
+ As with <a href="Array.html#M000054">shuffle</a> but modifies the array in
1133
+ place. The algorithm used here is known as a Fisher-Yates shuffle.
1134
+ </p>
1135
+ <pre>
1136
+ require 'facet/array/shuffle'
1137
+
1138
+ a = [1,2,3,4]
1139
+ a.shuffle!
1140
+ a #=&gt; [2,4,1,3]
1141
+ </pre>
1142
+ </div>
1143
+ </div>
1144
+
1145
+ <div id="method-M000060" class="method-detail">
1146
+ <a name="M000060"></a>
1147
+
1148
+ <div class="method-heading">
1149
+ <span class="method-name">store</span><span class="method-args">(*args)</span>
1150
+ </div>
1151
+
1152
+ <div class="method-description">
1153
+ <p>
1154
+ Alias for #[]=
1155
+ </p>
1156
+ </div>
1157
+ </div>
1158
+
1159
+ <div id="method-M000032" class="method-detail">
1160
+ <a name="M000032"></a>
1161
+
1162
+ <div class="method-heading">
1163
+ <a href="Array.src/M000032.html" target="Code" class="method-signature"
1164
+ onclick="popupCode('Array.src/M000032.html');return false;">
1165
+ <span class="method-name">tail</span><span class="method-args">()</span>
1166
+ </a>
1167
+ </div>
1168
+
1169
+ <div class="method-description">
1170
+ <p>
1171
+ Returns an array from second element to last element.
1172
+ </p>
1173
+ <pre>
1174
+ [1,2,3].foot #=&gt; [2,3]
1175
+ </pre>
1176
+ </div>
1177
+ </div>
1178
+
1179
+ <div id="method-M000039" class="method-detail">
1180
+ <a name="M000039"></a>
1181
+
1182
+ <div class="method-heading">
1183
+ <a href="Array.src/M000039.html" target="Code" class="method-signature"
1184
+ onclick="popupCode('Array.src/M000039.html');return false;">
1185
+ <span class="method-name">thru</span><span class="method-args">( from, to )</span>
1186
+ </a>
1187
+ </div>
1188
+
1189
+ <div class="method-description">
1190
+ <p>
1191
+ Fetch values from a start index thru an end index.
1192
+ </p>
1193
+ <pre>
1194
+ require 'facet/array/upto'
1195
+
1196
+ [1,2,3,4,5].thru(0,2) #=&gt; [1,2,3]
1197
+ [1,2,3,4,5].thru(2,4) #=&gt; [3,4,5]
1198
+ </pre>
1199
+ </div>
1200
+ </div>
1201
+
1202
+ <div id="method-M000047" class="method-detail">
1203
+ <a name="M000047"></a>
1204
+
1205
+ <div class="method-heading">
1206
+ <a href="Array.src/M000047.html" target="Code" class="method-signature"
1207
+ onclick="popupCode('Array.src/M000047.html');return false;">
1208
+ <span class="method-name">to_b</span><span class="method-args">()</span>
1209
+ </a>
1210
+ </div>
1211
+
1212
+ <div class="method-description">
1213
+ <p>
1214
+ Boolean conversion for not empty?
1215
+ </p>
1216
+ </div>
1217
+ </div>
1218
+
1219
+ <div id="method-M000048" class="method-detail">
1220
+ <a name="M000048"></a>
1221
+
1222
+ <div class="method-heading">
1223
+ <a href="Array.src/M000048.html" target="Code" class="method-signature"
1224
+ onclick="popupCode('Array.src/M000048.html');return false;">
1225
+ <span class="method-name">to_h</span><span class="method-args">(values=nil)</span>
1226
+ </a>
1227
+ </div>
1228
+
1229
+ <div class="method-description">
1230
+ <p>
1231
+ Produces a hash for an <a href="Array.html">Array</a>, or two arrays.
1232
+ </p>
1233
+ <p>
1234
+ If no parameter is given, <a href="Array.html#M000048">to_h</a> expects the
1235
+ receiving array to be associative.
1236
+ </p>
1237
+ <pre>
1238
+ require 'facet/array/to_h'
1239
+
1240
+ a1 = [ [:a,1], [:b,2] ]
1241
+ a1.to_h #=&gt; { :a=&gt;1, :b=&gt;2 }
1242
+ </pre>
1243
+ <p>
1244
+ If an array is given it is considered values and zipped with the receiver,
1245
+ to produce the hash.
1246
+ </p>
1247
+ <pre>
1248
+ a1 = [ :a, :b ]
1249
+ a2 = [ 1, 2 ]
1250
+ a1.to_h(a2) #=&gt; { :a=&gt;1, :b=&gt;2 }
1251
+ </pre>
1252
+ </div>
1253
+ </div>
1254
+
1255
+
1256
+ </div>
1257
+
1258
+
1259
+ </div>
1260
+
1261
+
1262
+ <div id="validator-badges">
1263
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1264
+ </div>
1265
+
1266
+ </body>
1267
+ </html>