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
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Special thanks to Martin DeMello for helping to develop this.
|
|
3
|
+
#++
|
|
4
|
+
begin
|
|
5
|
+
require 'carat/functor'
|
|
6
|
+
rescue
|
|
7
|
+
class Functor
|
|
8
|
+
def initialize(&func) ; @func = func ; end
|
|
9
|
+
def method_missing(op, *args) ; @func.call(op, *args) ; end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
module Enumerable
|
|
13
|
+
# Uses a Functor to provide R-like per element
|
|
14
|
+
# method application.
|
|
15
|
+
#
|
|
16
|
+
# require 'facet/enumerable/every'
|
|
17
|
+
#
|
|
18
|
+
# a = [1,2,3]
|
|
19
|
+
# b = [4,5]
|
|
20
|
+
#
|
|
21
|
+
# p a.every + 3 => [4,5,6]
|
|
22
|
+
# p a.every + b => [5,7]
|
|
23
|
+
# p a.every.+(b,2) => [[5,7],[3,4,5]]
|
|
24
|
+
#
|
|
25
|
+
# Note that this method is still undergoing some fine tuning.
|
|
26
|
+
# It is questionable as to whether different sized arrays should
|
|
27
|
+
# be padded with nil (or a parameter) and whether multiple parameters
|
|
28
|
+
# are a good idea (e.g. <tt>a.%.+(b,2,...)</tt>).
|
|
29
|
+
def every
|
|
30
|
+
#Functor.new(self) do |op,*args|
|
|
31
|
+
Functor.new do |op,*args|
|
|
32
|
+
a = args.collect do |arg|
|
|
33
|
+
if arg.kind_of?(Enumerable)
|
|
34
|
+
ln = ( arg.length > self.length ? self.length : arg.length )
|
|
35
|
+
self[0...ln].zip(arg[0...ln]).collect{ |a,b| a.send(op,b) }
|
|
36
|
+
#self[0...l].zip(arg[0...1]).collect{ |a,b| b ? a.send(op,b) : nil }
|
|
37
|
+
else
|
|
38
|
+
self.collect{ |a| a.send(op,arg) }
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
a.flatten! if args.length == 1
|
|
42
|
+
a
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Credits for original work goes to Zallus Kanite and Gavin Sinclair.
|
|
3
|
+
#++
|
|
4
|
+
module Enumerable
|
|
5
|
+
#
|
|
6
|
+
# Like <tt>#map</tt>/<tt>#collect</tt>, but it generates a Hash. The block
|
|
7
|
+
# is expected to return two values: the key and the value for the new hash.
|
|
8
|
+
#
|
|
9
|
+
# require 'facet/enumberable/graph'
|
|
10
|
+
#
|
|
11
|
+
# numbers = (1..3)
|
|
12
|
+
# squares = numbers.graph { |n| [n, n*n] } # { 1=>1, 2=>4, 3=>9 }
|
|
13
|
+
# sq_roots = numbers.graph { |n| [n*n, n] } # { 1=>1, 4=>2, 9=>3 }
|
|
14
|
+
#
|
|
15
|
+
def graph(&yld)
|
|
16
|
+
if yld
|
|
17
|
+
inject({}) do |h,kv|
|
|
18
|
+
nk, nv = yld[*kv]
|
|
19
|
+
h[nk] = nv
|
|
20
|
+
h
|
|
21
|
+
end
|
|
22
|
+
else
|
|
23
|
+
Hash[*self.to_a.flatten]
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
alias_method( :build_hash, :graph )
|
|
27
|
+
|
|
28
|
+
#old version
|
|
29
|
+
# result = {}
|
|
30
|
+
# if block_given?
|
|
31
|
+
# self.each do |elt|
|
|
32
|
+
# key, value = yield(elt)
|
|
33
|
+
# result[key] = value
|
|
34
|
+
# end
|
|
35
|
+
# else
|
|
36
|
+
# Hash[*self.to_a.flatten]
|
|
37
|
+
# end
|
|
38
|
+
# result
|
|
39
|
+
# end
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
# As with map_hash but acts in place.
|
|
43
|
+
def graph!( &blk )
|
|
44
|
+
self.replace( map_hash( &blk ) )
|
|
45
|
+
end
|
|
46
|
+
alias_method( :build_hash!, :graph! )
|
|
47
|
+
|
|
48
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Credit goes to Gavin Sinclair.
|
|
3
|
+
#++
|
|
4
|
+
module Enumerable
|
|
5
|
+
#
|
|
6
|
+
# Enumerable#none? is the logical opposite of the builtin method Enumerable#any?. It
|
|
7
|
+
# returns +true+ if and only if _none_ of the elements in the collection satisfy the
|
|
8
|
+
# predicate.
|
|
9
|
+
#
|
|
10
|
+
# If no predicate is provided, Enumerable#none? returns +true+ if and only if _none_ of the
|
|
11
|
+
# elements have a true value (i.e. not +nil+ or +false+).
|
|
12
|
+
#
|
|
13
|
+
# require 'facet/enumerable/none?'
|
|
14
|
+
#
|
|
15
|
+
# [].none? # true
|
|
16
|
+
# [nil].none? # true
|
|
17
|
+
# [5,8,9].none? # false
|
|
18
|
+
# (1...10).none? { |n| n < 0 } # true
|
|
19
|
+
# (1...10).none? { |n| n > 0 } # false
|
|
20
|
+
#
|
|
21
|
+
def none? # :yield: e
|
|
22
|
+
if block_given?
|
|
23
|
+
not self.any? { |e| yield e }
|
|
24
|
+
else
|
|
25
|
+
not self.any?
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Credit goes to Gavin Sinclair.
|
|
3
|
+
#++
|
|
4
|
+
module Enumerable
|
|
5
|
+
#
|
|
6
|
+
# Enumerable#one? returns +true+ if and only if <em>exactly one</em> element in the
|
|
7
|
+
# collection satisfies the given predicate.
|
|
8
|
+
#
|
|
9
|
+
# If no predicate is provided, Enumerable#one? returns +true+ if and only if <em>exactly
|
|
10
|
+
# one</em> element has a true value (i.e. not +nil+ or +false+).
|
|
11
|
+
#
|
|
12
|
+
# require 'facet/enumerable/one?'
|
|
13
|
+
#
|
|
14
|
+
# [].one? # false
|
|
15
|
+
# [nil].one? # false
|
|
16
|
+
# [5].one? # true
|
|
17
|
+
# [5,8,9].one? # false
|
|
18
|
+
# (1...10).one? { |n| n == 5 } # true
|
|
19
|
+
# (1...10).one? { |n| n < 5 } # false
|
|
20
|
+
#
|
|
21
|
+
def one? # :yield: e
|
|
22
|
+
matches = 0
|
|
23
|
+
if block_given?
|
|
24
|
+
self.each do |e|
|
|
25
|
+
if yield(e)
|
|
26
|
+
matches += 1
|
|
27
|
+
return false if matches > 1
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
return (matches == 1)
|
|
31
|
+
else
|
|
32
|
+
one? { |e| e }
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Credit goes to Gavin Sinclair.
|
|
3
|
+
#++
|
|
4
|
+
module Enumerable
|
|
5
|
+
# See Enumerable#partition for the background. #partition_by is best
|
|
6
|
+
# explained by example.
|
|
7
|
+
#
|
|
8
|
+
# require 'facet/enumerable/partition_by'
|
|
9
|
+
#
|
|
10
|
+
# (1..5).partition_by { |n| n % 3 }
|
|
11
|
+
# #=> { 0 => [3], 1 => [1, 4], 2 => [2,5] }
|
|
12
|
+
#
|
|
13
|
+
# ["I had", 1, "dollar and", 50, "cents"].partition_by { |e| e.class }
|
|
14
|
+
# #=> { String => ["I had","dollar and","cents"], Fixnum => [1,50] }
|
|
15
|
+
#
|
|
16
|
+
# #partition_by is used to group items in a collection by something they
|
|
17
|
+
# have in common. The common factor is the key in the resulting hash, the
|
|
18
|
+
# array of like elements is the value.
|
|
19
|
+
def partition_by
|
|
20
|
+
result = {}
|
|
21
|
+
self.each do |e|
|
|
22
|
+
value = yield e
|
|
23
|
+
(result[value] ||= []) << e
|
|
24
|
+
end
|
|
25
|
+
result
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require 'facet/enumerable/every'
|
|
2
|
+
module Enumerable
|
|
3
|
+
# Alias for #every.
|
|
4
|
+
alias_method( :per, :every )
|
|
5
|
+
|
|
6
|
+
# Very nice, concise alias shorthand for #every.
|
|
7
|
+
#
|
|
8
|
+
# require 'facet/enumerable/every'
|
|
9
|
+
#
|
|
10
|
+
# a = [1,2,3]
|
|
11
|
+
# b = [4,5]
|
|
12
|
+
#
|
|
13
|
+
# p a.% + 3 => [4,5,6]
|
|
14
|
+
# p a.% + b => [5,7]
|
|
15
|
+
# p a.%.+(b,2) => [[5,7],[3,4,5]]
|
|
16
|
+
#
|
|
17
|
+
alias_method( :%, :every )
|
|
18
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Enumerable
|
|
2
|
+
|
|
3
|
+
# Produces a hash from an Array with index for keys.
|
|
4
|
+
#
|
|
5
|
+
# require 'facet/array/to_hash'
|
|
6
|
+
#
|
|
7
|
+
# a1 = [ :a, :b ]
|
|
8
|
+
# a1.to_hash #=> { 0=>:a, 1=>:b }
|
|
9
|
+
#
|
|
10
|
+
def to_hash
|
|
11
|
+
h = {}
|
|
12
|
+
each_with_index{|e,i| h[i] = e }
|
|
13
|
+
h
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
17
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module Enumerable
|
|
2
|
+
|
|
3
|
+
# Like #uniq, but determines uniqueness based
|
|
4
|
+
# on a given block.
|
|
5
|
+
#
|
|
6
|
+
# require 'facet/enumerable/uniq_by'
|
|
7
|
+
#
|
|
8
|
+
# (-5..5).to_a.uniq_by {|i| i*i }
|
|
9
|
+
#
|
|
10
|
+
# produces
|
|
11
|
+
#
|
|
12
|
+
# [-5, -4, -3, -2, -1, 0]
|
|
13
|
+
#
|
|
14
|
+
def uniq_by
|
|
15
|
+
h = {}; inject([]) {|a,x| h[yield(x)] ||= a << x}
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# # alternate definition
|
|
19
|
+
# #
|
|
20
|
+
# # [[1, 2], [3, 4], [5, 6], [7, 2]].uniq_by(:at, 1)
|
|
21
|
+
# #
|
|
22
|
+
# def uniq_by(*args, &blk)
|
|
23
|
+
# blk = lambda {|i| i.send(*args)} unless args.empty?
|
|
24
|
+
# raise "needs args or block" unless blk
|
|
25
|
+
# h = {}
|
|
26
|
+
# a = []
|
|
27
|
+
# each {|i|
|
|
28
|
+
# k = blk.call(i)
|
|
29
|
+
# a << i unless h[k]
|
|
30
|
+
# h[k] = true
|
|
31
|
+
# }
|
|
32
|
+
# a
|
|
33
|
+
# end
|
|
34
|
+
|
|
35
|
+
end
|
data/lib/facet/file.rb
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
class File
|
|
2
|
+
# Splits a file path into an array of individual path components.
|
|
3
|
+
# This differs from <tt>File.split</tt>, which divides the path into
|
|
4
|
+
# only two parts, directory path and basename.
|
|
5
|
+
#
|
|
6
|
+
# require 'facet/file/split_all'
|
|
7
|
+
#
|
|
8
|
+
# split_all("a/b/c") => ['a', 'b', 'c']
|
|
9
|
+
#
|
|
10
|
+
def self.split_all(path)
|
|
11
|
+
head, tail = File.split(path)
|
|
12
|
+
return [tail] if head == '.' || tail == '/'
|
|
13
|
+
return [head, tail] if head == '/'
|
|
14
|
+
return split_all(head) + [tail]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# The body() method was provided by Shashank Date, via Daniel Berger.
|
|
3
|
+
#++
|
|
4
|
+
require 'fileutils'
|
|
5
|
+
|
|
6
|
+
module FileUtils
|
|
7
|
+
|
|
8
|
+
module_function
|
|
9
|
+
|
|
10
|
+
# In block form, yields the first number of ((*lines*)) of file ((*filename*)).
|
|
11
|
+
# In non-block form, it returns an array of the first number of ((*lines*)).
|
|
12
|
+
#
|
|
13
|
+
# require 'facet/fileutils/head&tail'
|
|
14
|
+
#
|
|
15
|
+
# # Returns first 10 lines of 'myfile'
|
|
16
|
+
# FileUtils.head("myfile")
|
|
17
|
+
#
|
|
18
|
+
def head(filename,lines=10) #:yield:
|
|
19
|
+
a = []
|
|
20
|
+
IO.foreach(filename){|line|
|
|
21
|
+
break if lines <= 0
|
|
22
|
+
lines -= 1
|
|
23
|
+
if block_given?
|
|
24
|
+
yield line
|
|
25
|
+
else
|
|
26
|
+
a << line
|
|
27
|
+
end
|
|
28
|
+
}
|
|
29
|
+
return a.empty? ? nil : a
|
|
30
|
+
end
|
|
31
|
+
#alias first head
|
|
32
|
+
|
|
33
|
+
# In block form, yields lines ((*from*))-((*to*)). In non-block form,
|
|
34
|
+
# returns an array of lines ((*from*))-((*to*)).
|
|
35
|
+
#
|
|
36
|
+
# require 'facet/fileutils/head&tail'
|
|
37
|
+
#
|
|
38
|
+
# # Returns lines 8-12 of 'myfile'
|
|
39
|
+
# FileUtils.body("myfile",8,12)
|
|
40
|
+
#
|
|
41
|
+
def body(filename,from=10,to=20) #:yield:
|
|
42
|
+
IO.readlines(filename)[from-1..to-1]
|
|
43
|
+
end
|
|
44
|
+
#alias middle body
|
|
45
|
+
#alias mid body
|
|
46
|
+
|
|
47
|
+
# In block form, yields the last number of ((*lines*)) of file ((*filename*)).
|
|
48
|
+
# In non-block form, it returns the lines as an array.
|
|
49
|
+
#
|
|
50
|
+
# Note that this method slurps the entire file, so I don't recommend it
|
|
51
|
+
# for very large files. If you want an advanced form of ((*tail*)), I
|
|
52
|
+
# suggest using file-tail, by Florian Frank (available on the RAA).
|
|
53
|
+
# And no tail -f.
|
|
54
|
+
#
|
|
55
|
+
# require 'facet/fileutils/head&tail'
|
|
56
|
+
#
|
|
57
|
+
# # Returns last 3 lines of 'myfile'
|
|
58
|
+
# FileUtils.tail("myfile",3)
|
|
59
|
+
#
|
|
60
|
+
def tail(filename,lines=10) #:yield
|
|
61
|
+
IO.readlines(filename).reverse[0..lines-1].reverse
|
|
62
|
+
end
|
|
63
|
+
#alias last tail
|
|
64
|
+
|
|
65
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require 'fileutils'
|
|
2
|
+
module FileUtils
|
|
3
|
+
module_function
|
|
4
|
+
# Attempt to do a normal file link, but fall back
|
|
5
|
+
# to a copy if the link fails.
|
|
6
|
+
def safe_ln(*args)
|
|
7
|
+
if @link_not_supported
|
|
8
|
+
FileUtils.cp(*args)
|
|
9
|
+
else
|
|
10
|
+
begin
|
|
11
|
+
FileUtils.ln(*args)
|
|
12
|
+
rescue Errno::EOPNOTSUPP
|
|
13
|
+
@link_not_supported = true
|
|
14
|
+
FileUtils.cp(*args)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Credit goes to Daniel J. Berger.
|
|
3
|
+
#++
|
|
4
|
+
require 'fileutils'
|
|
5
|
+
|
|
6
|
+
module FileUtils
|
|
7
|
+
# With no arguments, returns a four element array consisting of the number
|
|
8
|
+
# of bytes, characters, words and lines in _filename_, respectively.
|
|
9
|
+
#
|
|
10
|
+
# Valid options are <tt>bytes</tt>, <tt>characters</tt> (or just 'chars'),
|
|
11
|
+
# <tt>words</tt> and <tt>lines</tt>.
|
|
12
|
+
#
|
|
13
|
+
# require 'facet/fileutils/wc'
|
|
14
|
+
#
|
|
15
|
+
# # Return the number of words in 'myfile'
|
|
16
|
+
# FileUtils.wc("myfile",'words')
|
|
17
|
+
#
|
|
18
|
+
def self.wc(filename,option='all')
|
|
19
|
+
option.downcase!
|
|
20
|
+
valid = %w/all bytes characters chars lines words/
|
|
21
|
+
|
|
22
|
+
unless valid.include?(option)
|
|
23
|
+
raise "Invalid option: '#{option}'"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
n = 0
|
|
27
|
+
if option == 'lines'
|
|
28
|
+
IO.foreach(filename){ n += 1 }
|
|
29
|
+
return n
|
|
30
|
+
elsif option == 'bytes'
|
|
31
|
+
File.open(filename){ |f|
|
|
32
|
+
f.each_byte{ n += 1 }
|
|
33
|
+
}
|
|
34
|
+
return n
|
|
35
|
+
elsif option == 'characters' || option == 'chars'
|
|
36
|
+
File.open(filename){ |f|
|
|
37
|
+
while f.getc
|
|
38
|
+
n += 1
|
|
39
|
+
end
|
|
40
|
+
}
|
|
41
|
+
return n
|
|
42
|
+
elsif option == 'words'
|
|
43
|
+
IO.foreach(filename){ |line|
|
|
44
|
+
n += line.split.length
|
|
45
|
+
}
|
|
46
|
+
return n
|
|
47
|
+
else
|
|
48
|
+
bytes,chars,lines,words = 0,0,0,0
|
|
49
|
+
IO.foreach(filename){ |line|
|
|
50
|
+
lines += 1
|
|
51
|
+
words += line.split.length
|
|
52
|
+
chars += line.split('').length
|
|
53
|
+
}
|
|
54
|
+
File.open(filename){ |f|
|
|
55
|
+
while f.getc
|
|
56
|
+
bytes += 1
|
|
57
|
+
end
|
|
58
|
+
}
|
|
59
|
+
return [bytes,chars,words,lines]
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|