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.
- data/ANN +53 -0
- data/ChangeLog +50 -0
- data/LICENSE-GPL +341 -0
- data/LICENSE-RUBY +60 -0
- data/README +130 -0
- data/Reapfile +74 -0
- data/TODO +42 -0
- data/VERSION +7 -0
- data/doc/classes/Array.html +1267 -0
- data/doc/classes/Array.src/M000027.html +19 -0
- data/doc/classes/Array.src/M000028.html +23 -0
- data/doc/classes/Array.src/M000029.html +18 -0
- data/doc/classes/Array.src/M000030.html +18 -0
- data/doc/classes/Array.src/M000031.html +18 -0
- data/doc/classes/Array.src/M000032.html +18 -0
- data/doc/classes/Array.src/M000033.html +18 -0
- data/doc/classes/Array.src/M000034.html +18 -0
- data/doc/classes/Array.src/M000035.html +18 -0
- data/doc/classes/Array.src/M000036.html +20 -0
- data/doc/classes/Array.src/M000037.html +31 -0
- data/doc/classes/Array.src/M000038.html +19 -0
- data/doc/classes/Array.src/M000039.html +24 -0
- data/doc/classes/Array.src/M000040.html +23 -0
- data/doc/classes/Array.src/M000041.html +31 -0
- data/doc/classes/Array.src/M000042.html +27 -0
- data/doc/classes/Array.src/M000044.html +22 -0
- data/doc/classes/Array.src/M000046.html +20 -0
- data/doc/classes/Array.src/M000047.html +18 -0
- data/doc/classes/Array.src/M000048.html +24 -0
- data/doc/classes/Array.src/M000049.html +19 -0
- data/doc/classes/Array.src/M000050.html +24 -0
- data/doc/classes/Array.src/M000051.html +22 -0
- data/doc/classes/Array.src/M000052.html +18 -0
- data/doc/classes/Array.src/M000053.html +25 -0
- data/doc/classes/Array.src/M000054.html +19 -0
- data/doc/classes/Array.src/M000055.html +26 -0
- data/doc/classes/Array.src/M000056.html +19 -0
- data/doc/classes/Array.src/M000057.html +28 -0
- data/doc/classes/Array.src/M000058.html +21 -0
- data/doc/classes/Array.src/M000059.html +18 -0
- data/doc/classes/Array.src/M000061.html +23 -0
- data/doc/classes/Binding.html +420 -0
- data/doc/classes/Binding.src/M000202.html +19 -0
- data/doc/classes/Binding.src/M000203.html +22 -0
- data/doc/classes/Binding.src/M000204.html +19 -0
- data/doc/classes/Binding.src/M000205.html +19 -0
- data/doc/classes/Binding.src/M000206.html +18 -0
- data/doc/classes/Binding.src/M000207.html +18 -0
- data/doc/classes/Binding.src/M000208.html +18 -0
- data/doc/classes/Binding.src/M000209.html +18 -0
- data/doc/classes/Binding.src/M000210.html +18 -0
- data/doc/classes/Binding.src/M000211.html +18 -0
- data/doc/classes/Binding.src/M000212.html +18 -0
- data/doc/classes/Binding.src/M000213.html +27 -0
- data/doc/classes/Binding.src/M000214.html +22 -0
- data/doc/classes/Class.html +216 -0
- data/doc/classes/Class.src/M000184.html +20 -0
- data/doc/classes/Class.src/M000185.html +20 -0
- data/doc/classes/Class.src/M000186.html +19 -0
- data/doc/classes/Comparable.html +190 -0
- data/doc/classes/Comparable.src/M000366.html +20 -0
- data/doc/classes/Comparable.src/M000367.html +18 -0
- data/doc/classes/Comparable.src/M000368.html +18 -0
- data/doc/classes/Continuation.html +188 -0
- data/doc/classes/Continuation.src/M000126.html +21 -0
- data/doc/classes/Enumerable.html +648 -0
- data/doc/classes/Enumerable.src/M000345.html +22 -0
- data/doc/classes/Enumerable.src/M000346.html +18 -0
- data/doc/classes/Enumerable.src/M000347.html +26 -0
- data/doc/classes/Enumerable.src/M000349.html +18 -0
- data/doc/classes/Enumerable.src/M000351.html +23 -0
- data/doc/classes/Enumerable.src/M000352.html +22 -0
- data/doc/classes/Enumerable.src/M000356.html +31 -0
- data/doc/classes/Enumerable.src/M000359.html +29 -0
- data/doc/classes/Enumerable.src/M000360.html +34 -0
- data/doc/classes/Enumerable.src/M000362.html +20 -0
- data/doc/classes/Enumerable.src/M000363.html +18 -0
- data/doc/classes/Enumerable.src/M000364.html +48 -0
- data/doc/classes/Enumerable.src/M000365.html +18 -0
- data/doc/classes/File.html +149 -0
- data/doc/classes/File.src/M000326.html +21 -0
- data/doc/classes/FileUtils.html +332 -0
- data/doc/classes/FileUtils.src/M000327.html +59 -0
- data/doc/classes/FileUtils.src/M000328.html +28 -0
- data/doc/classes/FileUtils.src/M000329.html +18 -0
- data/doc/classes/FileUtils.src/M000330.html +18 -0
- data/doc/classes/FileUtils.src/M000331.html +46 -0
- data/doc/classes/FileUtils.src/M000332.html +27 -0
- data/doc/classes/FileUtils.src/M000333.html +55 -0
- data/doc/classes/Float.html +180 -0
- data/doc/classes/Float.src/M000181.html +18 -0
- data/doc/classes/Float.src/M000182.html +19 -0
- data/doc/classes/Float.src/M000183.html +19 -0
- data/doc/classes/Functor.html +190 -0
- data/doc/classes/Functor.src/M000195.html +16 -0
- data/doc/classes/Functor.src/M000196.html +16 -0
- data/doc/classes/Functor.src/M000197.html +16 -0
- data/doc/classes/Functor.src/M000198.html +16 -0
- data/doc/classes/Hash.html +1319 -0
- data/doc/classes/Hash.src/M000063.html +20 -0
- data/doc/classes/Hash.src/M000064.html +18 -0
- data/doc/classes/Hash.src/M000065.html +22 -0
- data/doc/classes/Hash.src/M000066.html +23 -0
- data/doc/classes/Hash.src/M000067.html +21 -0
- data/doc/classes/Hash.src/M000068.html +25 -0
- data/doc/classes/Hash.src/M000069.html +18 -0
- data/doc/classes/Hash.src/M000070.html +22 -0
- data/doc/classes/Hash.src/M000071.html +20 -0
- data/doc/classes/Hash.src/M000072.html +26 -0
- data/doc/classes/Hash.src/M000073.html +19 -0
- data/doc/classes/Hash.src/M000074.html +19 -0
- data/doc/classes/Hash.src/M000075.html +24 -0
- data/doc/classes/Hash.src/M000078.html +18 -0
- data/doc/classes/Hash.src/M000080.html +20 -0
- data/doc/classes/Hash.src/M000083.html +18 -0
- data/doc/classes/Hash.src/M000084.html +20 -0
- data/doc/classes/Hash.src/M000086.html +19 -0
- data/doc/classes/Hash.src/M000087.html +20 -0
- data/doc/classes/Hash.src/M000089.html +16 -0
- data/doc/classes/Hash.src/M000090.html +19 -0
- data/doc/classes/Hash.src/M000091.html +22 -0
- data/doc/classes/Hash.src/M000092.html +18 -0
- data/doc/classes/Hash.src/M000093.html +18 -0
- data/doc/classes/Hash.src/M000094.html +20 -0
- data/doc/classes/Hash.src/M000095.html +19 -0
- data/doc/classes/Hash.src/M000096.html +19 -0
- data/doc/classes/Hash.src/M000097.html +19 -0
- data/doc/classes/Hash.src/M000098.html +18 -0
- data/doc/classes/Hash.src/M000099.html +18 -0
- data/doc/classes/Hash.src/M000100.html +19 -0
- data/doc/classes/Hash.src/M000101.html +24 -0
- data/doc/classes/Hash.src/M000104.html +55 -0
- data/doc/classes/Hash.src/M000105.html +19 -0
- data/doc/classes/Hash.src/M000106.html +19 -0
- data/doc/classes/Integer.html +248 -0
- data/doc/classes/Integer.src/M000007.html +19 -0
- data/doc/classes/Integer.src/M000008.html +18 -0
- data/doc/classes/Integer.src/M000009.html +18 -0
- data/doc/classes/Integer.src/M000010.html +21 -0
- data/doc/classes/Kernel.html +520 -0
- data/doc/classes/Kernel.src/M000334.html +27 -0
- data/doc/classes/Kernel.src/M000335.html +18 -0
- data/doc/classes/Kernel.src/M000336.html +18 -0
- data/doc/classes/Kernel.src/M000337.html +18 -0
- data/doc/classes/Kernel.src/M000338.html +24 -0
- data/doc/classes/Kernel.src/M000339.html +19 -0
- data/doc/classes/Kernel.src/M000340.html +22 -0
- data/doc/classes/Kernel.src/M000341.html +20 -0
- data/doc/classes/Kernel.src/M000342.html +19 -0
- data/doc/classes/Kernel.src/M000343.html +21 -0
- data/doc/classes/Kernel.src/M000344.html +18 -0
- data/doc/classes/MatchData.html +208 -0
- data/doc/classes/MatchData.src/M000107.html +21 -0
- data/doc/classes/MatchData.src/M000108.html +21 -0
- data/doc/classes/MatchData.src/M000109.html +18 -0
- data/doc/classes/Module.html +648 -0
- data/doc/classes/Module.src/M000112.html +32 -0
- data/doc/classes/Module.src/M000114.html +24 -0
- data/doc/classes/Module.src/M000115.html +41 -0
- data/doc/classes/Module.src/M000116.html +18 -0
- data/doc/classes/Module.src/M000117.html +20 -0
- data/doc/classes/Module.src/M000118.html +19 -0
- data/doc/classes/Module.src/M000119.html +20 -0
- data/doc/classes/Module.src/M000120.html +21 -0
- data/doc/classes/Module.src/M000122.html +23 -0
- data/doc/classes/Module.src/M000123.html +24 -0
- data/doc/classes/Module.src/M000124.html +20 -0
- data/doc/classes/Module.src/M000125.html +29 -0
- data/doc/classes/NilClass.html +336 -0
- data/doc/classes/NilClass.src/M000187.html +18 -0
- data/doc/classes/NilClass.src/M000188.html +16 -0
- data/doc/classes/NilClass.src/M000189.html +16 -0
- data/doc/classes/NilClass.src/M000190.html +16 -0
- data/doc/classes/NilClass.src/M000191.html +16 -0
- data/doc/classes/NilClass.src/M000192.html +16 -0
- data/doc/classes/NilClass.src/M000193.html +16 -0
- data/doc/classes/NilClass.src/M000194.html +16 -0
- data/doc/classes/Numeric.html +1122 -0
- data/doc/classes/Numeric.src/M000127.html +18 -0
- data/doc/classes/Numeric.src/M000128.html +18 -0
- data/doc/classes/Numeric.src/M000129.html +18 -0
- data/doc/classes/Numeric.src/M000130.html +29 -0
- data/doc/classes/Numeric.src/M000131.html +18 -0
- data/doc/classes/Numeric.src/M000132.html +18 -0
- data/doc/classes/Numeric.src/M000133.html +18 -0
- data/doc/classes/Numeric.src/M000135.html +18 -0
- data/doc/classes/Numeric.src/M000138.html +18 -0
- data/doc/classes/Numeric.src/M000141.html +18 -0
- data/doc/classes/Numeric.src/M000144.html +18 -0
- data/doc/classes/Numeric.src/M000147.html +19 -0
- data/doc/classes/Numeric.src/M000148.html +19 -0
- data/doc/classes/Numeric.src/M000149.html +18 -0
- data/doc/classes/Numeric.src/M000150.html +18 -0
- data/doc/classes/Numeric.src/M000151.html +18 -0
- data/doc/classes/Numeric.src/M000153.html +18 -0
- data/doc/classes/Numeric.src/M000155.html +18 -0
- data/doc/classes/Numeric.src/M000157.html +18 -0
- data/doc/classes/Numeric.src/M000159.html +18 -0
- data/doc/classes/Numeric.src/M000161.html +18 -0
- data/doc/classes/Numeric.src/M000163.html +18 -0
- data/doc/classes/Numeric.src/M000165.html +18 -0
- data/doc/classes/Numeric.src/M000167.html +18 -0
- data/doc/classes/Numeric.src/M000169.html +18 -0
- data/doc/classes/Numeric.src/M000171.html +18 -0
- data/doc/classes/Numeric.src/M000174.html +18 -0
- data/doc/classes/Numeric.src/M000178.html +20 -0
- data/doc/classes/Numeric.src/M000179.html +18 -0
- data/doc/classes/Numeric.src/M000180.html +18 -0
- data/doc/classes/Object.html +923 -0
- data/doc/classes/Object.src/M000215.html +21 -0
- data/doc/classes/Object.src/M000216.html +20 -0
- data/doc/classes/Object.src/M000217.html +18 -0
- data/doc/classes/Object.src/M000219.html +26 -0
- data/doc/classes/Object.src/M000220.html +20 -0
- data/doc/classes/Object.src/M000221.html +18 -0
- data/doc/classes/Object.src/M000222.html +18 -0
- data/doc/classes/Object.src/M000224.html +18 -0
- data/doc/classes/Object.src/M000226.html +18 -0
- data/doc/classes/Object.src/M000228.html +19 -0
- data/doc/classes/Object.src/M000229.html +19 -0
- data/doc/classes/Object.src/M000230.html +21 -0
- data/doc/classes/Object.src/M000232.html +18 -0
- data/doc/classes/Object.src/M000233.html +18 -0
- data/doc/classes/Object.src/M000234.html +19 -0
- data/doc/classes/Object.src/M000235.html +19 -0
- data/doc/classes/Object.src/M000236.html +19 -0
- data/doc/classes/Object.src/M000237.html +40 -0
- data/doc/classes/Object.src/M000238.html +27 -0
- data/doc/classes/Object.src/M000239.html +18 -0
- data/doc/classes/Object.src/M000240.html +18 -0
- data/doc/classes/Object.src/M000241.html +18 -0
- data/doc/classes/Object.src/M000242.html +18 -0
- data/doc/classes/OpenStruct.html +206 -0
- data/doc/classes/OpenStruct.src/M000199.html +22 -0
- data/doc/classes/OpenStruct.src/M000200.html +19 -0
- data/doc/classes/OpenStruct.src/M000201.html +20 -0
- data/doc/classes/Proc.html +184 -0
- data/doc/classes/Proc.src/M000110.html +20 -0
- data/doc/classes/Range.html +247 -0
- data/doc/classes/Range.src/M000003.html +23 -0
- data/doc/classes/Range.src/M000004.html +20 -0
- data/doc/classes/Range.src/M000005.html +18 -0
- data/doc/classes/Range.src/M000006.html +18 -0
- data/doc/classes/Regexp.html +205 -0
- data/doc/classes/Regexp.src/M000022.html +18 -0
- data/doc/classes/Regexp.src/M000023.html +18 -0
- data/doc/classes/Regexp.src/M000024.html +18 -0
- data/doc/classes/ScriptBug.html +111 -0
- data/doc/classes/String.html +1930 -0
- data/doc/classes/String.src/M000243.html +27 -0
- data/doc/classes/String.src/M000244.html +18 -0
- data/doc/classes/String.src/M000245.html +18 -0
- data/doc/classes/String.src/M000246.html +18 -0
- data/doc/classes/String.src/M000248.html +18 -0
- data/doc/classes/String.src/M000249.html +18 -0
- data/doc/classes/String.src/M000250.html +21 -0
- data/doc/classes/String.src/M000251.html +22 -0
- data/doc/classes/String.src/M000253.html +28 -0
- data/doc/classes/String.src/M000254.html +23 -0
- data/doc/classes/String.src/M000255.html +22 -0
- data/doc/classes/String.src/M000256.html +18 -0
- data/doc/classes/String.src/M000257.html +20 -0
- data/doc/classes/String.src/M000258.html +20 -0
- data/doc/classes/String.src/M000259.html +22 -0
- data/doc/classes/String.src/M000260.html +18 -0
- data/doc/classes/String.src/M000261.html +26 -0
- data/doc/classes/String.src/M000262.html +23 -0
- data/doc/classes/String.src/M000263.html +24 -0
- data/doc/classes/String.src/M000264.html +23 -0
- data/doc/classes/String.src/M000265.html +23 -0
- data/doc/classes/String.src/M000266.html +18 -0
- data/doc/classes/String.src/M000267.html +18 -0
- data/doc/classes/String.src/M000268.html +19 -0
- data/doc/classes/String.src/M000269.html +19 -0
- data/doc/classes/String.src/M000270.html +18 -0
- data/doc/classes/String.src/M000271.html +18 -0
- data/doc/classes/String.src/M000272.html +19 -0
- data/doc/classes/String.src/M000273.html +18 -0
- data/doc/classes/String.src/M000274.html +72 -0
- data/doc/classes/String.src/M000275.html +20 -0
- data/doc/classes/String.src/M000276.html +20 -0
- data/doc/classes/String.src/M000277.html +21 -0
- data/doc/classes/String.src/M000278.html +25 -0
- data/doc/classes/String.src/M000279.html +18 -0
- data/doc/classes/String.src/M000280.html +21 -0
- data/doc/classes/String.src/M000281.html +18 -0
- data/doc/classes/String.src/M000282.html +23 -0
- data/doc/classes/String.src/M000283.html +18 -0
- data/doc/classes/String.src/M000284.html +21 -0
- data/doc/classes/String.src/M000285.html +28 -0
- data/doc/classes/String.src/M000286.html +25 -0
- data/doc/classes/String.src/M000287.html +18 -0
- data/doc/classes/String.src/M000289.html +18 -0
- data/doc/classes/String.src/M000291.html +18 -0
- data/doc/classes/String.src/M000292.html +18 -0
- data/doc/classes/String.src/M000293.html +21 -0
- data/doc/classes/String.src/M000294.html +18 -0
- data/doc/classes/String.src/M000295.html +18 -0
- data/doc/classes/String.src/M000296.html +22 -0
- data/doc/classes/String.src/M000297.html +18 -0
- data/doc/classes/String.src/M000298.html +22 -0
- data/doc/classes/String.src/M000299.html +21 -0
- data/doc/classes/String.src/M000300.html +18 -0
- data/doc/classes/String.src/M000301.html +18 -0
- data/doc/classes/String.src/M000302.html +18 -0
- data/doc/classes/String.src/M000303.html +18 -0
- data/doc/classes/String.src/M000304.html +18 -0
- data/doc/classes/String.src/M000305.html +32 -0
- data/doc/classes/String.src/M000306.html +23 -0
- data/doc/classes/String.src/M000307.html +24 -0
- data/doc/classes/String.src/M000308.html +18 -0
- data/doc/classes/String.src/M000309.html +57 -0
- data/doc/classes/String/Format.html +279 -0
- data/doc/classes/String/Format.src/M000316.html +18 -0
- data/doc/classes/String/Format.src/M000317.html +18 -0
- data/doc/classes/String/Format.src/M000318.html +18 -0
- data/doc/classes/String/Format.src/M000320.html +18 -0
- data/doc/classes/String/Format.src/M000321.html +18 -0
- data/doc/classes/String/Format.src/M000322.html +18 -0
- data/doc/classes/String/Format.src/M000323.html +18 -0
- data/doc/classes/String/Format.src/M000324.html +18 -0
- data/doc/classes/String/Format.src/M000325.html +18 -0
- data/doc/classes/String/Inflect.html +221 -0
- data/doc/classes/String/Inflect.src/M000310.html +18 -0
- data/doc/classes/String/Inflect.src/M000311.html +18 -0
- data/doc/classes/String/Inflect.src/M000312.html +22 -0
- data/doc/classes/String/Inflect.src/M000313.html +22 -0
- data/doc/classes/String/Inflect.src/M000314.html +30 -0
- data/doc/classes/String/Inflect.src/M000315.html +31 -0
- data/doc/classes/Symbol.html +380 -0
- data/doc/classes/Symbol.src/M000012.html +18 -0
- data/doc/classes/Symbol.src/M000013.html +18 -0
- data/doc/classes/Symbol.src/M000014.html +22 -0
- data/doc/classes/Symbol.src/M000016.html +18 -0
- data/doc/classes/Symbol.src/M000017.html +18 -0
- data/doc/classes/Symbol.src/M000018.html +28 -0
- data/doc/classes/Symbol.src/M000019.html +26 -0
- data/doc/classes/Symbol.src/M000020.html +18 -0
- data/doc/classes/Symbol.src/M000021.html +18 -0
- data/doc/classes/Time.html +227 -0
- data/doc/classes/Time.src/M000025.html +51 -0
- data/doc/classes/Time.src/M000026.html +21 -0
- data/doc/created.rid +1 -0
- data/doc/files/LICENSE-GPL.html +537 -0
- data/doc/files/LICENSE-RUBY.html +166 -0
- data/doc/files/README.html +252 -0
- data/doc/files/lib/facet/all-base-common_rb.html +101 -0
- data/doc/files/lib/facet/all-base_rb.html +133 -0
- data/doc/files/lib/facet/array/[[]]_rb.html +108 -0
- data/doc/files/lib/facet/array/[]_rb.html +108 -0
- data/doc/files/lib/facet/array/at_rand_rb.html +101 -0
- data/doc/files/lib/facet/array/combinations_rb.html +101 -0
- data/doc/files/lib/facet/array/delete_values_rb.html +101 -0
- data/doc/files/lib/facet/array/first&last_rb.html +101 -0
- data/doc/files/lib/facet/array/get_rb.html +101 -0
- data/doc/files/lib/facet/array/head&tail_rb.html +101 -0
- data/doc/files/lib/facet/array/last_index_rb.html +101 -0
- data/doc/files/lib/facet/array/middle_rb.html +101 -0
- data/doc/files/lib/facet/array/pos_rb.html +101 -0
- data/doc/files/lib/facet/array/pull_rb.html +101 -0
- data/doc/files/lib/facet/array/range_rb.html +101 -0
- data/doc/files/lib/facet/array/rotate_rb.html +101 -0
- data/doc/files/lib/facet/array/select!_rb.html +101 -0
- data/doc/files/lib/facet/array/shuffle_rb.html +101 -0
- data/doc/files/lib/facet/array/store_rb.html +101 -0
- data/doc/files/lib/facet/array/thru_rb.html +101 -0
- data/doc/files/lib/facet/array/to_b_rb.html +101 -0
- data/doc/files/lib/facet/array/to_h_rb.html +101 -0
- data/doc/files/lib/facet/array_rb.html +120 -0
- data/doc/files/lib/facet/binding/called_rb.html +108 -0
- data/doc/files/lib/facet/binding/caller_rb.html +108 -0
- data/doc/files/lib/facet/binding/defined?_rb.html +108 -0
- data/doc/files/lib/facet/binding/delegate!_rb.html +101 -0
- data/doc/files/lib/facet/binding/eval_rb.html +101 -0
- data/doc/files/lib/facet/binding/lineno_rb.html +108 -0
- data/doc/files/lib/facet/binding/local_variables_rb.html +108 -0
- data/doc/files/lib/facet/binding/self_rb.html +108 -0
- data/doc/files/lib/facet/binding_rb.html +118 -0
- data/doc/files/lib/facet/class/cattr_rb.html +101 -0
- data/doc/files/lib/facet/class_rb.html +114 -0
- data/doc/files/lib/facet/comparable/bound_by_rb.html +101 -0
- data/doc/files/lib/facet/comparable_rb.html +114 -0
- data/doc/files/lib/facet/continuation/create_rb.html +101 -0
- data/doc/files/lib/facet/continuation_rb.html +114 -0
- data/doc/files/lib/facet/enumerable/**_rb.html +108 -0
- data/doc/files/lib/facet/enumerable/collect_with_counter_rb.html +101 -0
- data/doc/files/lib/facet/enumerable/cross_rb.html +108 -0
- data/doc/files/lib/facet/enumerable/each_slice_rb.html +101 -0
- data/doc/files/lib/facet/enumerable/every_rb.html +108 -0
- data/doc/files/lib/facet/enumerable/graph_rb.html +101 -0
- data/doc/files/lib/facet/enumerable/none?_rb.html +101 -0
- data/doc/files/lib/facet/enumerable/one?_rb.html +101 -0
- data/doc/files/lib/facet/enumerable/partition_by_rb.html +101 -0
- data/doc/files/lib/facet/enumerable/per_rb.html +108 -0
- data/doc/files/lib/facet/enumerable/to_hash_rb.html +101 -0
- data/doc/files/lib/facet/enumerable/uniq_by_rb.html +101 -0
- data/doc/files/lib/facet/enumerable_rb.html +118 -0
- data/doc/files/lib/facet/file/split_all_rb.html +101 -0
- data/doc/files/lib/facet/file_rb.html +114 -0
- data/doc/files/lib/facet/fileutils/head&tail_rb.html +108 -0
- data/doc/files/lib/facet/fileutils/safe_ln_rb.html +108 -0
- data/doc/files/lib/facet/fileutils/wc_rb.html +108 -0
- data/doc/files/lib/facet/fileutils/whereis_rb.html +108 -0
- data/doc/files/lib/facet/fileutils/which_rb.html +108 -0
- data/doc/files/lib/facet/fileutils_rb.html +115 -0
- data/doc/files/lib/facet/float/round_rb.html +101 -0
- data/doc/files/lib/facet/float_rb.html +114 -0
- data/doc/files/lib/facet/hash/<<_rb.html +101 -0
- data/doc/files/lib/facet/hash/[]_rb.html +101 -0
- data/doc/files/lib/facet/hash/alias!_rb.html +101 -0
- data/doc/files/lib/facet/hash/at_rand_rb.html +101 -0
- data/doc/files/lib/facet/hash/collate_rb.html +101 -0
- data/doc/files/lib/facet/hash/collect_rb.html +108 -0
- data/doc/files/lib/facet/hash/each_rb.html +101 -0
- data/doc/files/lib/facet/hash/has_keys?_rb.html +101 -0
- data/doc/files/lib/facet/hash/inverse_rb.html +101 -0
- data/doc/files/lib/facet/hash/keys_to_s_rb.html +101 -0
- data/doc/files/lib/facet/hash/keys_to_sym_rb.html +101 -0
- data/doc/files/lib/facet/hash/shuffle_rb.html +101 -0
- data/doc/files/lib/facet/hash/slice_rb.html +101 -0
- data/doc/files/lib/facet/hash/swap!_rb.html +101 -0
- data/doc/files/lib/facet/hash/swapkey!_rb.html +101 -0
- data/doc/files/lib/facet/hash/to_h_rb.html +101 -0
- data/doc/files/lib/facet/hash/to_ostruct_rb.html +108 -0
- data/doc/files/lib/facet/hash/traverse_rb.html +101 -0
- data/doc/files/lib/facet/hash/update_each_rb.html +101 -0
- data/doc/files/lib/facet/hash/weave_rb.html +101 -0
- data/doc/files/lib/facet/hash/zipnew_rb.html +101 -0
- data/doc/files/lib/facet/hash_rb.html +115 -0
- data/doc/files/lib/facet/integer/evenodd?_rb.html +101 -0
- data/doc/files/lib/facet/integer/factorial_rb.html +101 -0
- data/doc/files/lib/facet/integer/times_collect_rb.html +101 -0
- data/doc/files/lib/facet/integer_rb.html +116 -0
- data/doc/files/lib/facet/kernel/bug!_rb.html +101 -0
- data/doc/files/lib/facet/kernel/call_stack_rb.html +101 -0
- data/doc/files/lib/facet/kernel/called_rb.html +108 -0
- data/doc/files/lib/facet/kernel/demo_rb.html +101 -0
- data/doc/files/lib/facet/kernel/fn_rb.html +101 -0
- data/doc/files/lib/facet/kernel/get_by_id_rb.html +101 -0
- data/doc/files/lib/facet/kernel/here_rb.html +101 -0
- data/doc/files/lib/facet/kernel/maybe_rb.html +101 -0
- data/doc/files/lib/facet/kernel/method_name_rb.html +108 -0
- data/doc/files/lib/facet/kernel/require_all_rb.html +101 -0
- data/doc/files/lib/facet/kernel/require_local_rb.html +101 -0
- data/doc/files/lib/facet/kernel/resc_rb.html +101 -0
- data/doc/files/lib/facet/kernel/warn_with_line_rb.html +101 -0
- data/doc/files/lib/facet/kernel_rb.html +120 -0
- data/doc/files/lib/facet/matchdata/match_from_rb.html +108 -0
- data/doc/files/lib/facet/matchdata/match_rb.html +101 -0
- data/doc/files/lib/facet/matchdata_rb.html +115 -0
- data/doc/files/lib/facet/module/abstract_rb.html +118 -0
- data/doc/files/lib/facet/module/alias_module_function_rb.html +101 -0
- data/doc/files/lib/facet/module/basename_rb.html +101 -0
- data/doc/files/lib/facet/module/by_name_rb.html +108 -0
- data/doc/files/lib/facet/module/initializer_rb.html +101 -0
- data/doc/files/lib/facet/module/key_attributes_rb.html +101 -0
- data/doc/files/lib/facet/module/memoize_rb.html +130 -0
- data/doc/files/lib/facet/module/memoize_rb.src/M000002.html +18 -0
- data/doc/files/lib/facet/module/methods_rb.html +101 -0
- data/doc/files/lib/facet/module/redefine_method_rb.html +101 -0
- data/doc/files/lib/facet/module/redirect_rb.html +101 -0
- data/doc/files/lib/facet/module/sort_attributes_rb.html +101 -0
- data/doc/files/lib/facet/module/wrap_method_rb.html +101 -0
- data/doc/files/lib/facet/module_rb.html +116 -0
- data/doc/files/lib/facet/nil-as-emptiness_rb.html +130 -0
- data/doc/files/lib/facet/nil/[]_rb.html +101 -0
- data/doc/files/lib/facet/nil/empty?_rb.html +101 -0
- data/doc/files/lib/facet/nil/include?_rb.html +101 -0
- data/doc/files/lib/facet/nil/length_rb.html +101 -0
- data/doc/files/lib/facet/nil/to_f_rb.html +101 -0
- data/doc/files/lib/facet/nil/to_h_rb.html +101 -0
- data/doc/files/lib/facet/nil_rb.html +115 -0
- data/doc/files/lib/facet/numeric/bound_by_rb.html +101 -0
- data/doc/files/lib/facet/numeric/bytes_rb.html +101 -0
- data/doc/files/lib/facet/numeric/distance_rb.html +101 -0
- data/doc/files/lib/facet/numeric/octet_units_rb.html +108 -0
- data/doc/files/lib/facet/numeric/succ_rb.html +101 -0
- data/doc/files/lib/facet/numeric/times_rb.html +101 -0
- data/doc/files/lib/facet/numeric/to_b_rb.html +101 -0
- data/doc/files/lib/facet/numeric_rb.html +114 -0
- data/doc/files/lib/facet/object/__class___rb.html +101 -0
- data/doc/files/lib/facet/object/assign_with_rb.html +101 -0
- data/doc/files/lib/facet/object/bool?_rb.html +101 -0
- data/doc/files/lib/facet/object/constant_rb.html +101 -0
- data/doc/files/lib/facet/object/copy_rb.html +101 -0
- data/doc/files/lib/facet/object/in?_rb.html +101 -0
- data/doc/files/lib/facet/object/new_rb.html +101 -0
- data/doc/files/lib/facet/object/object_hexid_rb.html +101 -0
- data/doc/files/lib/facet/object/set_with_rb.html +101 -0
- data/doc/files/lib/facet/object/special_class_rb.html +101 -0
- data/doc/files/lib/facet/object/supers_rb.html +108 -0
- data/doc/files/lib/facet/object/to_b_rb.html +108 -0
- data/doc/files/lib/facet/object/to_bool_rb.html +101 -0
- data/doc/files/lib/facet/object/with_accessor_rb.html +101 -0
- data/doc/files/lib/facet/object_rb.html +120 -0
- data/doc/files/lib/facet/ostruct/[]_rb.html +108 -0
- data/doc/files/lib/facet/ostruct/ostruct_update_rb.html +108 -0
- data/doc/files/lib/facet/ostruct_rb.html +115 -0
- data/doc/files/lib/facet/proc/compose_rb.html +101 -0
- data/doc/files/lib/facet/proc/to_method_rb.html +138 -0
- data/doc/files/lib/facet/proc/to_method_rb.src/M000001.html +29 -0
- data/doc/files/lib/facet/proc_rb.html +115 -0
- data/doc/files/lib/facet/rand_rb.html +120 -0
- data/doc/files/lib/facet/range/to_r_rb.html +101 -0
- data/doc/files/lib/facet/range/umbrella_rb.html +101 -0
- data/doc/files/lib/facet/range/within?_rb.html +108 -0
- data/doc/files/lib/facet/range_rb.html +116 -0
- data/doc/files/lib/facet/regexp/arity_rb.html +101 -0
- data/doc/files/lib/facet/regexp/to_re_rb.html +101 -0
- data/doc/files/lib/facet/regexp_rb.html +115 -0
- data/doc/files/lib/facet/string/at_rand_rb.html +108 -0
- data/doc/files/lib/facet/string/blank?_rb.html +101 -0
- data/doc/files/lib/facet/string/braket_rb.html +101 -0
- data/doc/files/lib/facet/string/camelcase_rb.html +101 -0
- data/doc/files/lib/facet/string/case?_rb.html +101 -0
- data/doc/files/lib/facet/string/center_lines_rb.html +101 -0
- data/doc/files/lib/facet/string/chars_rb.html +101 -0
- data/doc/files/lib/facet/string/clump_rb.html +101 -0
- data/doc/files/lib/facet/string/cmp_rb.html +101 -0
- data/doc/files/lib/facet/string/dresner_rb.html +101 -0
- data/doc/files/lib/facet/string/each_word_rb.html +101 -0
- data/doc/files/lib/facet/string/first&last_rb.html +101 -0
- data/doc/files/lib/facet/string/format_rb.html +101 -0
- data/doc/files/lib/facet/string/fuzzy_match_rb.html +101 -0
- data/doc/files/lib/facet/string/index_all_rb.html +101 -0
- data/doc/files/lib/facet/string/inflect_rb.html +101 -0
- data/doc/files/lib/facet/string/line_to_char_map_rb.html +101 -0
- data/doc/files/lib/facet/string/line_wrap_rb.html +101 -0
- data/doc/files/lib/facet/string/margin_rb.html +101 -0
- data/doc/files/lib/facet/string/mscan_rb.html +101 -0
- data/doc/files/lib/facet/string/natcmp_rb.html +101 -0
- data/doc/files/lib/facet/string/rand_letter_rb.html +101 -0
- data/doc/files/lib/facet/string/range_rb.html +101 -0
- data/doc/files/lib/facet/string/shatter_rb.html +101 -0
- data/doc/files/lib/facet/string/shuffle_rb.html +101 -0
- data/doc/files/lib/facet/string/succ_rb.html +101 -0
- data/doc/files/lib/facet/string/tab_rb.html +101 -0
- data/doc/files/lib/facet/string/to_b_rb.html +101 -0
- data/doc/files/lib/facet/string/to_const_rb.html +108 -0
- data/doc/files/lib/facet/string/to_proc_rb.html +101 -0
- data/doc/files/lib/facet/string/to_re_rb.html +101 -0
- data/doc/files/lib/facet/string/unix_crypt_rb.html +108 -0
- data/doc/files/lib/facet/string/unpack_rb.html +101 -0
- data/doc/files/lib/facet/string/word_filter!_rb.html +101 -0
- data/doc/files/lib/facet/string/word_wrap_rb.html +101 -0
- data/doc/files/lib/facet/string_rb.html +122 -0
- data/doc/files/lib/facet/symbol/camelcase_rb.html +101 -0
- data/doc/files/lib/facet/symbol/gen_rb.html +101 -0
- data/doc/files/lib/facet/symbol/pad_rb.html +101 -0
- data/doc/files/lib/facet/symbol/succ_rb.html +101 -0
- data/doc/files/lib/facet/symbol/to_const_rb.html +108 -0
- data/doc/files/lib/facet/symbol/to_proc_rb.html +101 -0
- data/doc/files/lib/facet/symbol/to_str_rb.html +101 -0
- data/doc/files/lib/facet/symbol/~_rb.html +101 -0
- data/doc/files/lib/facet/symbol_rb.html +116 -0
- data/doc/files/lib/facet/time/custom_format_rb.html +108 -0
- data/doc/files/lib/facet/time/elapse_rb.html +101 -0
- data/doc/files/lib/facet/time_rb.html +107 -0
- data/doc/fr_class_index.html +54 -0
- data/doc/fr_file_index.html +239 -0
- data/doc/fr_method_index.html +394 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +208 -0
- data/lib/facet-dev/README +11 -0
- data/lib/facet-dev/advice.rb +70 -0
- data/lib/facet-dev/array/**.rb +17 -0
- data/lib/facet-dev/array/at_rand.rb +95 -0
- data/lib/facet-dev/array/each_slice.rb +23 -0
- data/lib/facet-dev/array/pick_values.rb +32 -0
- data/lib/facet-dev/array/remove.rb +21 -0
- data/lib/facet-dev/arraysplit.tar.gz +0 -0
- data/lib/facet-dev/binding/class.rb +11 -0
- data/lib/facet-dev/binding/delegate.rb +15 -0
- data/lib/facet-dev/binding/proc.rb +6 -0
- data/lib/facet-dev/class_include.rb +13 -0
- data/lib/facet-dev/enumerable/[].rb +30 -0
- data/lib/facet-dev/enumerable/rand.rb +412 -0
- data/lib/facet-dev/fileutils/mv_f.rb +6 -0
- data/lib/facet-dev/fileutils/nl_convert.rb +69 -0
- data/lib/facet-dev/fileutils/tc_nlconvert.rb +60 -0
- data/lib/facet-dev/kernel/call_line.rb +15 -0
- data/lib/facet-dev/kernel/does.rb +7 -0
- data/lib/facet-dev/kernel/eval.rb +24 -0
- data/lib/facet-dev/kernel/message.rb +6 -0
- data/lib/facet-dev/module/preserved.rb +108 -0
- data/lib/facet-dev/object/==.rb +49 -0
- data/lib/facet-dev/object/>>.rb +50 -0
- data/lib/facet-dev/object/all.rb +11 -0
- data/lib/facet-dev/object/query.rb +15 -0
- data/lib/facet-dev/object/respond_with_value.rb +14 -0
- data/lib/facet-dev/rails/class_attribute_accessors.rb +57 -0
- data/lib/facet-dev/rails/class_inheritable_attributes.rb +117 -0
- data/lib/facet-dev/rails/clean_logger.rb +10 -0
- data/lib/facet-dev/rails/dependencies.rb +63 -0
- data/lib/facet-dev/rails/inflector.rb +84 -0
- data/lib/facet-dev/rails/misc.rb +8 -0
- data/lib/facet-dev/rails/module_attribute_accessors.rb +57 -0
- data/lib/facet-dev/rails/object_and_class.rb +24 -0
- data/lib/facet-dev/string/+.rb +19 -0
- data/lib/facet-dev/string/pred.rb +123 -0
- data/lib/facet-dev/string/slash.rb +15 -0
- data/lib/facet-dev/string/strip.rb +32 -0
- data/lib/facet-dev/string/succ_distance.rb +112 -0
- data/lib/facet-dev/string/tc_pred.rb +96 -0
- data/lib/facet-dev/string/word_wrap.rb +62 -0
- data/lib/facet-dev/taint.rb +10 -0
- data/lib/facet/all-base-common.rb +13 -0
- data/lib/facet/all-base.rb +27 -0
- data/lib/facet/array.rb +25 -0
- data/lib/facet/array/[[]].rb +42 -0
- data/lib/facet/array/[].rb +57 -0
- data/lib/facet/array/at_rand.rb +118 -0
- data/lib/facet/array/combinations.rb +122 -0
- data/lib/facet/array/delete_values.rb +46 -0
- data/lib/facet/array/first&last.rb +47 -0
- data/lib/facet/array/get.rb +15 -0
- data/lib/facet/array/head&tail.rb +33 -0
- data/lib/facet/array/last_index.rb +15 -0
- data/lib/facet/array/middle.rb +18 -0
- data/lib/facet/array/pos.rb +17 -0
- data/lib/facet/array/pull.rb +21 -0
- data/lib/facet/array/range.rb +22 -0
- data/lib/facet/array/rotate.rb +38 -0
- data/lib/facet/array/select!.rb +13 -0
- data/lib/facet/array/shuffle.rb +37 -0
- data/lib/facet/array/store.rb +4 -0
- data/lib/facet/array/thru.rb +18 -0
- data/lib/facet/array/to_b.rb +6 -0
- data/lib/facet/array/to_h.rb +30 -0
- data/lib/facet/binding.rb +15 -0
- data/lib/facet/binding/called.rb +29 -0
- data/lib/facet/binding/caller.rb +10 -0
- data/lib/facet/binding/defined?.rb +9 -0
- data/lib/facet/binding/delegate!.rb +19 -0
- data/lib/facet/binding/eval.rb +10 -0
- data/lib/facet/binding/lineno.rb +13 -0
- data/lib/facet/binding/local_variables.rb +39 -0
- data/lib/facet/binding/self.rb +10 -0
- data/lib/facet/class.rb +7 -0
- data/lib/facet/class/cattr.rb +82 -0
- data/lib/facet/comparable.rb +7 -0
- data/lib/facet/comparable/bound_by.rb +41 -0
- data/lib/facet/continuation.rb +8 -0
- data/lib/facet/continuation/create.rb +51 -0
- data/lib/facet/enumerable.rb +17 -0
- data/lib/facet/enumerable/**.rb +13 -0
- data/lib/facet/enumerable/collect_with_counter.rb +25 -0
- data/lib/facet/enumerable/cross.rb +79 -0
- data/lib/facet/enumerable/each_slice.rb +60 -0
- data/lib/facet/enumerable/every.rb +45 -0
- data/lib/facet/enumerable/graph.rb +48 -0
- data/lib/facet/enumerable/none?.rb +28 -0
- data/lib/facet/enumerable/one?.rb +35 -0
- data/lib/facet/enumerable/partition_by.rb +27 -0
- data/lib/facet/enumerable/per.rb +18 -0
- data/lib/facet/enumerable/to_hash.rb +17 -0
- data/lib/facet/enumerable/uniq_by.rb +35 -0
- data/lib/facet/file.rb +7 -0
- data/lib/facet/file/split_all.rb +17 -0
- data/lib/facet/fileutils.rb +11 -0
- data/lib/facet/fileutils/head&tail.rb +65 -0
- data/lib/facet/fileutils/safe_ln.rb +18 -0
- data/lib/facet/fileutils/wc.rb +62 -0
- data/lib/facet/fileutils/whereis.rb +63 -0
- data/lib/facet/fileutils/which.rb +53 -0
- data/lib/facet/float.rb +7 -0
- data/lib/facet/float/round.rb +33 -0
- data/lib/facet/hash.rb +23 -0
- data/lib/facet/hash/<<.rb +5 -0
- data/lib/facet/hash/[].rb +44 -0
- data/lib/facet/hash/alias!.rb +24 -0
- data/lib/facet/hash/at_rand.rb +88 -0
- data/lib/facet/hash/collate.rb +25 -0
- data/lib/facet/hash/collect.rb +8 -0
- data/lib/facet/hash/each.rb +28 -0
- data/lib/facet/hash/has_keys?.rb +48 -0
- data/lib/facet/hash/inverse.rb +29 -0
- data/lib/facet/hash/keys_to_s.rb +50 -0
- data/lib/facet/hash/keys_to_sym.rb +59 -0
- data/lib/facet/hash/shuffle.rb +51 -0
- data/lib/facet/hash/slice.rb +11 -0
- data/lib/facet/hash/swap!.rb +14 -0
- data/lib/facet/hash/swapkey!.rb +22 -0
- data/lib/facet/hash/to_h.rb +13 -0
- data/lib/facet/hash/to_ostruct.rb +30 -0
- data/lib/facet/hash/traverse.rb +35 -0
- data/lib/facet/hash/update_each.rb +24 -0
- data/lib/facet/hash/weave.rb +64 -0
- data/lib/facet/hash/zipnew.rb +15 -0
- data/lib/facet/integer.rb +9 -0
- data/lib/facet/integer/evenodd?.rb +25 -0
- data/lib/facet/integer/factorial.rb +27 -0
- data/lib/facet/integer/times_collect.rb +13 -0
- data/lib/facet/kernel.rb +18 -0
- data/lib/facet/kernel/bug!.rb +25 -0
- data/lib/facet/kernel/call_stack.rb +35 -0
- data/lib/facet/kernel/called.rb +20 -0
- data/lib/facet/kernel/demo.rb +25 -0
- data/lib/facet/kernel/fn.rb +10 -0
- data/lib/facet/kernel/get_by_id.rb +7 -0
- data/lib/facet/kernel/here.rb +11 -0
- data/lib/facet/kernel/maybe.rb +17 -0
- data/lib/facet/kernel/method_name.rb +18 -0
- data/lib/facet/kernel/require_all.rb +21 -0
- data/lib/facet/kernel/require_local.rb +26 -0
- data/lib/facet/kernel/resc.rb +7 -0
- data/lib/facet/kernel/warn_with_line.rb +19 -0
- data/lib/facet/matchdata.rb +8 -0
- data/lib/facet/matchdata/match.rb +12 -0
- data/lib/facet/matchdata/match_from.rb +38 -0
- data/lib/facet/module.rb +14 -0
- data/lib/facet/module/abstract.rb +20 -0
- data/lib/facet/module/alias_module_function.rb +28 -0
- data/lib/facet/module/basename.rb +18 -0
- data/lib/facet/module/by_name.rb +42 -0
- data/lib/facet/module/initializer.rb +35 -0
- data/lib/facet/module/key_attributes.rb +13 -0
- data/lib/facet/module/memoize.rb +50 -0
- data/lib/facet/module/methods.rb +98 -0
- data/lib/facet/module/redefine_method.rb +37 -0
- data/lib/facet/module/redirect.rb +39 -0
- data/lib/facet/module/sort_attributes.rb +12 -0
- data/lib/facet/module/wrap_method.rb +27 -0
- data/lib/facet/nil-as-emptiness.rb +34 -0
- data/lib/facet/nil.rb +15 -0
- data/lib/facet/nil/[].rb +12 -0
- data/lib/facet/nil/empty?.rb +19 -0
- data/lib/facet/nil/include?.rb +11 -0
- data/lib/facet/nil/length.rb +19 -0
- data/lib/facet/nil/to_f.rb +10 -0
- data/lib/facet/nil/to_h.rb +10 -0
- data/lib/facet/numeric.rb +9 -0
- data/lib/facet/numeric/bound_by.rb +41 -0
- data/lib/facet/numeric/bytes.rb +51 -0
- data/lib/facet/numeric/distance.rb +13 -0
- data/lib/facet/numeric/octet_units.rb +32 -0
- data/lib/facet/numeric/succ.rb +41 -0
- data/lib/facet/numeric/times.rb +106 -0
- data/lib/facet/numeric/to_b.rb +15 -0
- data/lib/facet/object.rb +20 -0
- data/lib/facet/object/__class__.rb +17 -0
- data/lib/facet/object/assign_with.rb +80 -0
- data/lib/facet/object/bool?.rb +49 -0
- data/lib/facet/object/constant.rb +22 -0
- data/lib/facet/object/copy.rb +13 -0
- data/lib/facet/object/in?.rb +12 -0
- data/lib/facet/object/new.rb +32 -0
- data/lib/facet/object/object_hexid.rb +12 -0
- data/lib/facet/object/set_with.rb +29 -0
- data/lib/facet/object/special_class.rb +45 -0
- data/lib/facet/object/supers.rb +38 -0
- data/lib/facet/object/to_b.rb +15 -0
- data/lib/facet/object/to_bool.rb +14 -0
- data/lib/facet/object/with_accessor.rb +50 -0
- data/lib/facet/ostruct.rb +8 -0
- data/lib/facet/ostruct/[].rb +29 -0
- data/lib/facet/ostruct/ostruct_update.rb +18 -0
- data/lib/facet/proc.rb +8 -0
- data/lib/facet/proc/compose.rb +22 -0
- data/lib/facet/proc/to_method.rb +43 -0
- data/lib/facet/rand.rb +10 -0
- data/lib/facet/range.rb +9 -0
- data/lib/facet/range/to_r.rb +16 -0
- data/lib/facet/range/umbrella.rb +37 -0
- data/lib/facet/range/within?.rb +19 -0
- data/lib/facet/regexp.rb +9 -0
- data/lib/facet/regexp/arity.rb +14 -0
- data/lib/facet/regexp/to_re.rb +25 -0
- data/lib/facet/string.rb +38 -0
- data/lib/facet/string/at_rand.rb +99 -0
- data/lib/facet/string/blank?.rb +14 -0
- data/lib/facet/string/braket.rb +27 -0
- data/lib/facet/string/camelcase.rb +24 -0
- data/lib/facet/string/case?.rb +44 -0
- data/lib/facet/string/center_lines.rb +26 -0
- data/lib/facet/string/chars.rb +34 -0
- data/lib/facet/string/clump.rb +51 -0
- data/lib/facet/string/cmp.rb +17 -0
- data/lib/facet/string/dresner.rb +25 -0
- data/lib/facet/string/each_word.rb +25 -0
- data/lib/facet/string/first&last.rb +123 -0
- data/lib/facet/string/format.rb +64 -0
- data/lib/facet/string/fuzzy_match.rb +82 -0
- data/lib/facet/string/index_all.rb +19 -0
- data/lib/facet/string/inflect.rb +70 -0
- data/lib/facet/string/line_to_char_map.rb +18 -0
- data/lib/facet/string/line_wrap.rb +20 -0
- data/lib/facet/string/margin.rb +27 -0
- data/lib/facet/string/mscan.rb +16 -0
- data/lib/facet/string/natcmp.rb +84 -0
- data/lib/facet/string/rand_letter.rb +13 -0
- data/lib/facet/string/range.rb +39 -0
- data/lib/facet/string/shatter.rb +17 -0
- data/lib/facet/string/shuffle.rb +49 -0
- data/lib/facet/string/succ.rb +17 -0
- data/lib/facet/string/tab.rb +38 -0
- data/lib/facet/string/to_b.rb +27 -0
- data/lib/facet/string/to_const.rb +16 -0
- data/lib/facet/string/to_proc.rb +25 -0
- data/lib/facet/string/to_re.rb +13 -0
- data/lib/facet/string/unix_crypt.rb +12 -0
- data/lib/facet/string/unpack.rb +15 -0
- data/lib/facet/string/word_filter!.rb +20 -0
- data/lib/facet/string/word_wrap.rb +43 -0
- data/lib/facet/symbol.rb +14 -0
- data/lib/facet/symbol/camelcase.rb +24 -0
- data/lib/facet/symbol/gen.rb +23 -0
- data/lib/facet/symbol/pad.rb +20 -0
- data/lib/facet/symbol/succ.rb +17 -0
- data/lib/facet/symbol/to_const.rb +16 -0
- data/lib/facet/symbol/to_proc.rb +22 -0
- data/lib/facet/symbol/to_str.rb +12 -0
- data/lib/facet/symbol/~.rb +8 -0
- data/lib/facet/time.rb +7 -0
- data/lib/facet/time/custom_format.rb +111 -0
- data/lib/facet/time/elapse.rb +18 -0
- data/setup.rb +1361 -0
- data/test/array/tc_array.rb +234 -0
- data/test/array/tc_brackets.rb +16 -0
- data/test/binding/tc_binding.rb +77 -0
- data/test/class/tc_class.rb +48 -0
- data/test/comparable/tc_comparable.rb +23 -0
- data/test/enumerable/tc_enumerable.rb +166 -0
- data/test/file/tc_file.rb +14 -0
- data/test/fileutils/tc_head&tail.rb +72 -0
- data/test/fileutils/tc_wc.rb +46 -0
- data/test/fileutils/tc_whereis.rb +35 -0
- data/test/fileutils/tc_which.rb +35 -0
- data/test/fileutils/test_file.txt +25 -0
- data/test/fileutils/test_file2.txt +25 -0
- data/test/float/tc_float.rb +70 -0
- data/test/hash/tc_each.rb +23 -0
- data/test/hash/tc_hash.rb +182 -0
- data/test/hash/tc_slice.rb +98 -0
- data/test/integer/tc_integer.rb +50 -0
- data/test/kernel/tc_kernel.rb +89 -0
- data/test/kernel/tc_warn_with_line.rb +1 -0
- data/test/kernel/test_file.rb +3 -0
- data/test/matchdata/tc_matchdata.rb +47 -0
- data/test/module/tc_memoize.rb +2 -0
- data/test/module/tc_methods.rb +13 -0
- data/test/module/tc_module.rb +51 -0
- data/test/module/tc_redef.rb +47 -0
- data/test/nil/tc_nil.rb +57 -0
- data/test/numeric/tc_numeric.rb +145 -0
- data/test/object/tc_constant.rb +21 -0
- data/test/object/tc_object.rb +138 -0
- data/test/object/tc_supers.rb +63 -0
- data/test/object/tc_with_accessor.rb +31 -0
- data/test/ostruct/tc_ostruct.rb +16 -0
- data/test/proc/tc_proc.rb +32 -0
- data/test/range/tc_range.rb +46 -0
- data/test/regexp/tc_regexp.rb +35 -0
- data/test/string/tc_fuzzy_match.rb +2 -0
- data/test/string/tc_margin.rb +98 -0
- data/test/string/tc_string.rb +341 -0
- data/test/string/tc_unix_crypt.rb +2 -0
- data/test/symbol/tc_symbol.rb +60 -0
- data/test/t_require.rb +4 -0
- data/test/time/tc_time.rb +30 -0
- 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
|
+
|
data/Reapfile
ADDED
|
@@ -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,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&last.rb
|
|
68
|
+
</a>
|
|
69
|
+
<br />
|
|
70
|
+
<a href="../files/lib/facet/array/head&tail_rb.html">
|
|
71
|
+
lib/facet/array/head&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>
|
|
172
|
+
<a href="#M000049">[]</a>
|
|
173
|
+
<a href="#M000028">[]=</a>
|
|
174
|
+
<a href="#M000050">[]=</a>
|
|
175
|
+
<a href="#M000040">at_rand</a>
|
|
176
|
+
<a href="#M000042">at_rand!</a>
|
|
177
|
+
<a href="#M000033">body</a>
|
|
178
|
+
<a href="#M000056">combinations</a>
|
|
179
|
+
<a href="#M000036">delete_values</a>
|
|
180
|
+
<a href="#M000037">delete_values_at</a>
|
|
181
|
+
<a href="#M000062">each_by</a>
|
|
182
|
+
<a href="#M000057">each_combination</a>
|
|
183
|
+
<a href="#M000061">each_slice</a>
|
|
184
|
+
<a href="#M000058">each_unique_pair</a>
|
|
185
|
+
<a href="#M000029">first=</a>
|
|
186
|
+
<a href="#M000034">foot</a>
|
|
187
|
+
<a href="#M000046">get</a>
|
|
188
|
+
<a href="#M000031">head</a>
|
|
189
|
+
<a href="#M000045">index_range</a>
|
|
190
|
+
<a href="#M000030">last=</a>
|
|
191
|
+
<a href="#M000038">last_index</a>
|
|
192
|
+
<a href="#M000059">middle</a>
|
|
193
|
+
<a href="#M000043">pick</a>
|
|
194
|
+
<a href="#M000051">pos</a>
|
|
195
|
+
<a href="#M000041">rand_index</a>
|
|
196
|
+
<a href="#M000044">range</a>
|
|
197
|
+
<a href="#M000052">rotate</a>
|
|
198
|
+
<a href="#M000053">rotate!</a>
|
|
199
|
+
<a href="#M000035">select!</a>
|
|
200
|
+
<a href="#M000054">shuffle</a>
|
|
201
|
+
<a href="#M000055">shuffle!</a>
|
|
202
|
+
<a href="#M000060">store</a>
|
|
203
|
+
<a href="#M000032">tail</a>
|
|
204
|
+
<a href="#M000039">thru</a>
|
|
205
|
+
<a href="#M000047">to_b</a>
|
|
206
|
+
<a href="#M000048">to_h</a>
|
|
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> </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 #=> 1
|
|
239
|
+
a #=> [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> </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) #=> [9,1,2,3]
|
|
258
|
+
a #=> [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> </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&last='
|
|
275
|
+
|
|
276
|
+
a = ["a","y","z"]
|
|
277
|
+
a.first! "x"
|
|
278
|
+
p a #=> ["x","a","y","z"]
|
|
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> </td>
|
|
289
|
+
<td colspan="2" class="context-item-desc">
|
|
290
|
+
Alias for push.
|
|
291
|
+
|
|
292
|
+
<pre>
|
|
293
|
+
require 'facet/array/first&last='
|
|
294
|
+
|
|
295
|
+
a = [1,2]
|
|
296
|
+
a.last! 3
|
|
297
|
+
p a #=> [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
|
+
["a", "a", "x"]
|
|
341
|
+
["a", "a", "y"]
|
|
342
|
+
["a", "x", "x"]
|
|
343
|
+
["a", "x", "y"]
|
|
344
|
+
["b", "a", "x"]
|
|
345
|
+
["b", "a", "y"]
|
|
346
|
+
["b", "x", "x"]
|
|
347
|
+
["b", "x", "y"]
|
|
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] #=> 'b'
|
|
374
|
+
a[1,1] #=> ['b','b']
|
|
375
|
+
a[0,2,4] #=> ['a','c','e']
|
|
376
|
+
a[1,1,1] #=> ['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’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]] #=> ['b']
|
|
407
|
+
a[[1,1]] #=> ['b','b']
|
|
408
|
+
a[[1,-1]] #=> ['b','f']
|
|
409
|
+
a[[0,2,4]] #=> ['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 "facet/array/[]"
|
|
433
|
+
|
|
434
|
+
h = [1,2,3]
|
|
435
|
+
|
|
436
|
+
h[0,1] = [10,11] #=> [10,11]
|
|
437
|
+
h #=> [10,11,3]
|
|
438
|
+
|
|
439
|
+
h[0,1] = [12,13,14] #=> [12,13]
|
|
440
|
+
h #=> [12,13,3]
|
|
441
|
+
|
|
442
|
+
h[0,1] = [15] #=> [15]
|
|
443
|
+
h #=> [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 #=> [99,99]
|
|
451
|
+
h #=> [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' #=> ['x']
|
|
477
|
+
a #=> ['a','x','c','d']
|
|
478
|
+
|
|
479
|
+
a[[1,-1]] = ['m','n'] #=> ['m','n']
|
|
480
|
+
a #=> ['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 #=> 2
|
|
513
|
+
[1, 2, 3, 4].at_rand(1) #=> [2]
|
|
514
|
+
[1, 2, 3, 4].at_rand(2) #=> [1,4]
|
|
515
|
+
[1, 2, 3, 4].at_rand(3) #=> [4,3,2]
|
|
516
|
+
[1, 2, 3, 4].at_rand(3,false) #=> [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! #=> 2
|
|
541
|
+
a #=> [1,3,4]
|
|
542
|
+
|
|
543
|
+
a = [1,2,3,4]
|
|
544
|
+
a.at_rand!(2) #=> [2,1]
|
|
545
|
+
a #=> [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 #=> [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) #=> [1,2]
|
|
589
|
+
a #=> [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) #=> [2,3]
|
|
613
|
+
a #=> [1,4]
|
|
614
|
+
a = [1,2,3,4]
|
|
615
|
+
a.delete_values_at(0..2) #=> [1,2,3]
|
|
616
|
+
a #=> [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, &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
|
+
["a", "b", "c"]
|
|
660
|
+
["a", "b", "d"]
|
|
661
|
+
["a", "c", "d"]
|
|
662
|
+
["b", "c", "d"]
|
|
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, &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">(&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){ … }</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&last='
|
|
763
|
+
|
|
764
|
+
a = ["a","y","z"]
|
|
765
|
+
a.first = "x"
|
|
766
|
+
p a #=> ["x","y","z"]
|
|
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 #=> [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) #=> [1,2]
|
|
809
|
+
[1,2,3,4].get(2,2) #=> [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 #=> [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&last='
|
|
864
|
+
|
|
865
|
+
a = [1,2,5]
|
|
866
|
+
a.last = 3
|
|
867
|
+
p a #=> [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 #=> 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 #=> 3
|
|
914
|
+
[1,2,3,4,5,6].middle #=> 4
|
|
915
|
+
[1,2,3,4,5,6].middle(-1) #=> 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) #=> 0
|
|
957
|
+
[1,2,3,4,5].pos(-1) #=> 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
|
+
["a", "b", "c", "d"].rand_index #=> 1
|
|
987
|
+
["a", "b", "c", "d"].rand_index #=> 2
|
|
988
|
+
["a", "b", "c", "d"].rand_index(2) #=> [2,1]
|
|
989
|
+
["a", "b", "c", "d"].rand_index(3) #=> [1,3,2]
|
|
990
|
+
["a", "b", "c", "d"].rand_index(3,false) #=> [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 #=> 0..3
|
|
1014
|
+
['a','b','c','d'].range('b','d') #=> 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’s elements from back to front n times.
|
|
1032
|
+
</p>
|
|
1033
|
+
<pre>
|
|
1034
|
+
require 'facet/array/rotate'
|
|
1035
|
+
|
|
1036
|
+
[1,2,3].rotate #=> [3,1,2]
|
|
1037
|
+
[3,1,2].rotate #=> [2,3,1]
|
|
1038
|
+
[3,1,2].rotate #=> [1,2,3]
|
|
1039
|
+
[1,2,3].rotate(3) #=> [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) #=> [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 #=> [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 #=> [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 #=> [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 #=> [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 #=> [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) #=> [1,2,3]
|
|
1197
|
+
[1,2,3,4,5].thru(2,4) #=> [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 #=> { :a=>1, :b=>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) #=> { :a=>1, :b=>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>
|