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,63 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Credit goes to Daniel J. Berger, via PTools.
|
|
3
|
+
#++
|
|
4
|
+
require 'fileutils'
|
|
5
|
+
|
|
6
|
+
module FileUtils
|
|
7
|
+
if defined?(Win32Exts)
|
|
8
|
+
Win32Exts ||= %w{.exe .com .bat}
|
|
9
|
+
else
|
|
10
|
+
Win32Exts = %w{.exe .com .bat}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# In block form, yields each ((*program*)) within ((*path*)). In non-block
|
|
14
|
+
# form, returns an array of each ((*program*)) within ((*path*)). Returns
|
|
15
|
+
# (({nil})) if not found.
|
|
16
|
+
#
|
|
17
|
+
# On the MS Windows platform, it looks for executables ending with .exe,
|
|
18
|
+
# .bat and .com, which you may optionally include in the program name.
|
|
19
|
+
#
|
|
20
|
+
# File.whereis("ruby") -> ['/usr/local/bin/ruby','/opt/bin/ruby']
|
|
21
|
+
#
|
|
22
|
+
def self.whereis(prog, path=ENV['PATH']) #:yield:
|
|
23
|
+
dirs = []
|
|
24
|
+
path.split(File::PATH_SEPARATOR).each{|dir|
|
|
25
|
+
# Windows checks against specific extensions
|
|
26
|
+
if File::ALT_SEPARATOR
|
|
27
|
+
if prog.include?('.')
|
|
28
|
+
f = File.join(dir,prog)
|
|
29
|
+
if File.executable?(f) && !File.directory?(f)
|
|
30
|
+
if block_given?
|
|
31
|
+
yield f.gsub(/\//,'\\')
|
|
32
|
+
else
|
|
33
|
+
dirs << f.gsub(/\//,'\\')
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
else
|
|
37
|
+
Win32Exts.find_all{|ext|
|
|
38
|
+
f = File.join(dir,prog+ext)
|
|
39
|
+
if File.executable?(f) && !File.directory?(f)
|
|
40
|
+
if block_given?
|
|
41
|
+
yield f.gsub(/\//,'\\')
|
|
42
|
+
else
|
|
43
|
+
dirs << f.gsub(/\//,'\\')
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
}
|
|
47
|
+
end
|
|
48
|
+
else
|
|
49
|
+
f = File.join(dir,prog)
|
|
50
|
+
# Avoid /usr/lib/ruby, for example
|
|
51
|
+
if File.executable?(f) && !File.directory?(f)
|
|
52
|
+
if block_given?
|
|
53
|
+
yield f
|
|
54
|
+
else
|
|
55
|
+
dirs << f
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
}
|
|
60
|
+
dirs.empty? ? nil : dirs
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# The which() method was adopted from Daniel J. Berger, via PTools
|
|
3
|
+
# which in in turn was adopted fromt the FileWhich code posted by
|
|
4
|
+
# Michael Granger on http://www.rubygarden.org.
|
|
5
|
+
#++
|
|
6
|
+
require 'fileutils'
|
|
7
|
+
|
|
8
|
+
module FileUtils
|
|
9
|
+
if defined?(Win32Exts)
|
|
10
|
+
Win32Exts ||= %w{.exe .com .bat}
|
|
11
|
+
else
|
|
12
|
+
Win32Exts = %w{.exe .com .bat}
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Looks for the first occurrence of _program_ within _path_.
|
|
16
|
+
#
|
|
17
|
+
# On the MS Windows platform, it looks for executables ending with .exe,
|
|
18
|
+
# .bat and .com, which you may optionally include in the program name.
|
|
19
|
+
# Returns <tt>nil</tt> if not found.
|
|
20
|
+
#
|
|
21
|
+
def self.which(prog, path=ENV['PATH'])
|
|
22
|
+
path.split(File::PATH_SEPARATOR).each {|dir|
|
|
23
|
+
# Windows checks against specific extensions
|
|
24
|
+
if File::ALT_SEPARATOR
|
|
25
|
+
ext = Win32Exts.find{|ext|
|
|
26
|
+
if prog.include?('.') # Assume extension already included
|
|
27
|
+
f = File.join(dir,prog)
|
|
28
|
+
else
|
|
29
|
+
f = File.join(dir,prog+ext)
|
|
30
|
+
end
|
|
31
|
+
File.executable?(f) && !File.directory?(f)
|
|
32
|
+
}
|
|
33
|
+
if ext
|
|
34
|
+
# Use backslashes, not forward slashes
|
|
35
|
+
if prog.include?('.') # Assume extension already included
|
|
36
|
+
f = File.join( dir, prog ).gsub(/\//,'\\')
|
|
37
|
+
else
|
|
38
|
+
f = File.join( dir, prog + ext ).gsub(/\//,'\\')
|
|
39
|
+
end
|
|
40
|
+
return f
|
|
41
|
+
end
|
|
42
|
+
else
|
|
43
|
+
f = File.join(dir,prog)
|
|
44
|
+
# Avoid /usr/lib/ruby, for example
|
|
45
|
+
if File.executable?(f) && !File.directory?(f)
|
|
46
|
+
return File::join( dir, prog )
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
}
|
|
50
|
+
nil
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
end
|
data/lib/facet/float.rb
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
class Float
|
|
2
|
+
# Rounds off at the given decimal position.
|
|
3
|
+
def round_at( d=0.0 )
|
|
4
|
+
(self * (10.0 ** d)).round.to_f / (10.0 ** d)
|
|
5
|
+
end
|
|
6
|
+
# Rounds to the nearest _n_th. If no _n_th is
|
|
7
|
+
# given, then defaults to nearest 100th.
|
|
8
|
+
def round_to( n=0.01 )
|
|
9
|
+
raise ArgumentError, "zero equates to infinte degree" if n == 0
|
|
10
|
+
(self * (1.0 / n)).round.to_f / (1.0 / n)
|
|
11
|
+
end
|
|
12
|
+
# Determines if another number is approximately equal
|
|
13
|
+
# within a given _n_th degree. Defaults to 100ths
|
|
14
|
+
# if degree is not specified.
|
|
15
|
+
def approx?( x, n=0.01 )
|
|
16
|
+
raise ArgumentError, "zero equates to infinte degree" if n == 0
|
|
17
|
+
self.round_to(n) == x.to_f.round_to(n)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# To properly support Float rounding methods,
|
|
22
|
+
# Numeric must also be augmented.
|
|
23
|
+
class Numeric
|
|
24
|
+
def round_at(*args)
|
|
25
|
+
self.to_f.round_at(*args)
|
|
26
|
+
end
|
|
27
|
+
def round_to(*args)
|
|
28
|
+
self.to_f.round_to(*args)
|
|
29
|
+
end
|
|
30
|
+
def approx?(*args)
|
|
31
|
+
self.to_f.approx?(*args)
|
|
32
|
+
end
|
|
33
|
+
end
|
data/lib/facet/hash.rb
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
# base
|
|
3
|
+
require "facet/hash/to_h"
|
|
4
|
+
|
|
5
|
+
# common
|
|
6
|
+
require "facet/hash/to_ostruct"
|
|
7
|
+
|
|
8
|
+
# uncommon
|
|
9
|
+
#require "facet/hash/alias!"
|
|
10
|
+
#require "facet/hash/at_rand"
|
|
11
|
+
#require "facet/hash/collate"
|
|
12
|
+
#require "facet/hash/each"
|
|
13
|
+
#require "facet/hash/keys_to_string"
|
|
14
|
+
#require "facet/hash/keys_to_symbol"
|
|
15
|
+
#require "facet/hash/<<"
|
|
16
|
+
#require "facet/hash/[]"
|
|
17
|
+
#require "facet/hash/slice"
|
|
18
|
+
#require "facet/hash/swapkey!"
|
|
19
|
+
#require "facet/hash/swap!"
|
|
20
|
+
#require "facet/hash/traverse"
|
|
21
|
+
#require "facet/hash/update_each"
|
|
22
|
+
#require "facet/hash/weave"
|
|
23
|
+
#require "facet/hash/zipnew"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
class Hash
|
|
2
|
+
|
|
3
|
+
alias_method( :at, :[] )
|
|
4
|
+
|
|
5
|
+
# Adds slicing to Hash#[]. If more than one key arguments
|
|
6
|
+
# is given to <tt>Hash#[]</tt>, the return value will be
|
|
7
|
+
# an array of the corresponding values.
|
|
8
|
+
#
|
|
9
|
+
# require "facet/hash/[]"
|
|
10
|
+
#
|
|
11
|
+
# h = { :a => 1, :b => 2, :c => 3 }
|
|
12
|
+
# h[:a] #=> 1
|
|
13
|
+
# h[:a, :b] #=> [1,2]
|
|
14
|
+
#
|
|
15
|
+
def []( *sliceKeys )
|
|
16
|
+
if sliceKeys.length == 1
|
|
17
|
+
return at( sliceKeys[0] )
|
|
18
|
+
else
|
|
19
|
+
return values_at( *sliceKeys )
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Add slicing to element assignment operator.
|
|
24
|
+
#
|
|
25
|
+
# require "facet/hash/[]"
|
|
26
|
+
#
|
|
27
|
+
# h = {:a=>1, :b=>2, :c=>3}
|
|
28
|
+
#
|
|
29
|
+
# h[:a] = 9 #=> 9
|
|
30
|
+
# h #=> {:a=>9, :b=>2, :c=>3}
|
|
31
|
+
#
|
|
32
|
+
# h[:a, :c] = [10,11] #=> [10,11]
|
|
33
|
+
# h #=> {:a=>10, :b=>2, :c=>11}
|
|
34
|
+
#
|
|
35
|
+
def []=( *args )
|
|
36
|
+
if args.length <= 2
|
|
37
|
+
return store( *args )
|
|
38
|
+
end
|
|
39
|
+
aVals = args.pop
|
|
40
|
+
aVals = [aVals] unless aVals.kind_of?( Array )
|
|
41
|
+
args.each_index{ |i| store( args[i], aVals[i] ) }
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Credit goes to Gavin Sinclair.
|
|
3
|
+
#++
|
|
4
|
+
class Hash
|
|
5
|
+
# Modifies the receiving Hash so that the value previously referred to by
|
|
6
|
+
# _oldkey_ is also referenced by _newkey_; _oldkey_ is retained in the Hash.
|
|
7
|
+
# If _oldkey_ does not exist as a key in the Hash, no change is effected.
|
|
8
|
+
#
|
|
9
|
+
# Returns a reference to the Hash.
|
|
10
|
+
#
|
|
11
|
+
# require 'facet/hash/alias!'
|
|
12
|
+
#
|
|
13
|
+
# foo = { :name=>'Gavin', 'wife'=>:Lisa }
|
|
14
|
+
# foo.alias!('name',:name) => { :name=>'Gavin', 'name'=>'Gavin', 'wife'=>:Lisa }
|
|
15
|
+
# foo.alias!('spouse','wife') => { :name=>'Gavin', 'name'=>'Gavin', 'wife'=>:Lisa, 'spouse'=>:Lisa }
|
|
16
|
+
# foo.alias!('bar','foo') => { :name=>'Gavin', 'name'=>'Gavin', 'wife'=>:Lisa, 'spouse'=>:Lisa }
|
|
17
|
+
#
|
|
18
|
+
# Note that if the _oldkey_ is reassigned, the reference will no longer exist,
|
|
19
|
+
# and the _newkey_ will remain as it was.
|
|
20
|
+
def alias!( newkey, oldkey )
|
|
21
|
+
self[newkey] = self[oldkey] if self.has_key?(oldkey)
|
|
22
|
+
self
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Adapted from rand.rb by:
|
|
3
|
+
# * Ilmari Heikkinen <mailto:kig@misfiring.net>
|
|
4
|
+
# * Christian Neukirchen <mailto:chneukirchen@gmail.com>
|
|
5
|
+
#++
|
|
6
|
+
class Hash
|
|
7
|
+
|
|
8
|
+
# Returns a random key-value pair.
|
|
9
|
+
#
|
|
10
|
+
# require 'facet/hash/at_rand'
|
|
11
|
+
#
|
|
12
|
+
# {:one => 1, :two => 2, :three => 3}.at_rand #=> [:one, 1]
|
|
13
|
+
#
|
|
14
|
+
def rand_value
|
|
15
|
+
fetch( rand_key )
|
|
16
|
+
end
|
|
17
|
+
alias( :at_rand, :rand_value )
|
|
18
|
+
|
|
19
|
+
# Deletes a random key-value pair and returns the value.
|
|
20
|
+
#
|
|
21
|
+
# require 'facet/hash/at_rand'
|
|
22
|
+
#
|
|
23
|
+
# a = {:one => 1, :two => 2, :three => 3}
|
|
24
|
+
# a.at_rand! #=> 2
|
|
25
|
+
# a #=> {:one => 1, :three => 3}
|
|
26
|
+
#
|
|
27
|
+
def rand_value!
|
|
28
|
+
k,v = rand_pair
|
|
29
|
+
delete( k )
|
|
30
|
+
return v
|
|
31
|
+
end
|
|
32
|
+
alias_method( :at_rand!, :rand_value! )
|
|
33
|
+
alias_method( :pick, :at_rand! )
|
|
34
|
+
|
|
35
|
+
# Returns a random key.
|
|
36
|
+
#
|
|
37
|
+
# require 'facet/hash/at_rand'
|
|
38
|
+
#
|
|
39
|
+
# {:one => 1, :two => 2, :three => 3}.pick_key #=> :three
|
|
40
|
+
#
|
|
41
|
+
def rand_key
|
|
42
|
+
keys.at( rand(keys.size) )
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Delete a random key-value pair, returning the key.
|
|
46
|
+
#
|
|
47
|
+
# require 'facet/hash/at_rand'
|
|
48
|
+
#
|
|
49
|
+
# a = {:one => 1, :two => 2, :three => 3}
|
|
50
|
+
# a.pick_key! #=> :two
|
|
51
|
+
# a #=> {:one => 1, :three => 3}
|
|
52
|
+
#
|
|
53
|
+
def rand_key!
|
|
54
|
+
k,v = rand_pair
|
|
55
|
+
delete( k )
|
|
56
|
+
return k
|
|
57
|
+
end
|
|
58
|
+
alias( :pick_key, :rand_key! )
|
|
59
|
+
|
|
60
|
+
# Returns a random key-value pair.
|
|
61
|
+
#
|
|
62
|
+
# require 'facet/hash/at_rand'
|
|
63
|
+
#
|
|
64
|
+
# {:one => 1, :two => 2, :three => 3}.pick #=> [:one, 1]
|
|
65
|
+
#
|
|
66
|
+
def rand_pair
|
|
67
|
+
k = rand_key
|
|
68
|
+
return k, fetch(k)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Deletes a random key-value pair and returns that pair.
|
|
72
|
+
#
|
|
73
|
+
# require 'facet/hash/at_rand'
|
|
74
|
+
#
|
|
75
|
+
# a = {:one => 1, :two => 2, :three => 3}
|
|
76
|
+
# a.rand_pair! #=> [:two, 2]
|
|
77
|
+
# a #=> {:one => 1, :three => 3}
|
|
78
|
+
#
|
|
79
|
+
def rand_pair!
|
|
80
|
+
k,v = rand_pair
|
|
81
|
+
delete( k )
|
|
82
|
+
return k,v
|
|
83
|
+
end
|
|
84
|
+
alias_method( :pick_pair, :rand_pair! )
|
|
85
|
+
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
class Hash
|
|
2
|
+
# Returns a new hash built by iterating through each key,value
|
|
3
|
+
# pair and updating the new hash.
|
|
4
|
+
#
|
|
5
|
+
# require 'facet/hash/collate'
|
|
6
|
+
#
|
|
7
|
+
#
|
|
8
|
+
#
|
|
9
|
+
#--
|
|
10
|
+
# Note that this method may get some fine tuning as it
|
|
11
|
+
# currently expects the block to return a "mini-hash"
|
|
12
|
+
# pair -- parhaps an 2-element array woud be better?
|
|
13
|
+
#++
|
|
14
|
+
def collate # :yield:
|
|
15
|
+
newhash = {}
|
|
16
|
+
each_pair{ |k,v| newhash.update( yield(k,v) ) }
|
|
17
|
+
newhash
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# In place version of #collate.
|
|
21
|
+
def collate!(&yld)
|
|
22
|
+
replace( collate(&yld) )
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
class Hash
|
|
2
|
+
# A "smarter" hash#each which iterates through each
|
|
3
|
+
# _value_ if only one block parameter is given.
|
|
4
|
+
#
|
|
5
|
+
# require 'facet/hash/each'
|
|
6
|
+
#
|
|
7
|
+
# {:a=>"a", 2=>"b", "x"=>"c"}.each{ |v| puts v }
|
|
8
|
+
#
|
|
9
|
+
# _produces_
|
|
10
|
+
#
|
|
11
|
+
# a
|
|
12
|
+
# b
|
|
13
|
+
# c
|
|
14
|
+
#
|
|
15
|
+
# WARNING! Use with caution. Methods from other libraries
|
|
16
|
+
# may depend on the old behavior, expecting a two element
|
|
17
|
+
# array to be passed into a single block argument.
|
|
18
|
+
def each(&yld)
|
|
19
|
+
case yld.arity
|
|
20
|
+
when 0
|
|
21
|
+
when 1
|
|
22
|
+
each_value{|v| yield(v)}
|
|
23
|
+
else
|
|
24
|
+
each_pair{|k,v| yld.call(k,v)}
|
|
25
|
+
end
|
|
26
|
+
self
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
class Hash
|
|
2
|
+
|
|
3
|
+
# require 'facet/hash/has_keys?'
|
|
4
|
+
#
|
|
5
|
+
# h = { :a => 1, :b => 2 }
|
|
6
|
+
# h.has_keys?( :a ) #=> true
|
|
7
|
+
# h.has_keys?( :c ) #=> false
|
|
8
|
+
#
|
|
9
|
+
def has_keys?(*check_keys)
|
|
10
|
+
unknown_keys = check_keys - self.keys
|
|
11
|
+
return unknown_keys.empty?
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# require 'facet/hash/has_keys?'
|
|
16
|
+
#
|
|
17
|
+
# h = { :a => 1, :b => 2 }
|
|
18
|
+
# h.has_only_keys?( :a, :b ) #=> true
|
|
19
|
+
# h.has_only_keys?( :a ) #=> false
|
|
20
|
+
#
|
|
21
|
+
def has_only_keys?(*check_keys)
|
|
22
|
+
unknown_keys = self.keys - check_keys
|
|
23
|
+
return !unknown_keys.empty?
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# require 'facet/hash/has_keys?'
|
|
27
|
+
#
|
|
28
|
+
# h = { :a => 1, :b => 2 }
|
|
29
|
+
# h.assert_has_keys( :a ) #=> true
|
|
30
|
+
# h.assert_has_keys( :c ) #=> ArgumentError
|
|
31
|
+
#
|
|
32
|
+
def assert_has_keys(*check_keys)
|
|
33
|
+
raise(ArgumentError, "does not have key(s)") unless has_all_keys?
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# require 'facet/hash/has_keys?'
|
|
37
|
+
#
|
|
38
|
+
# h = { :a => 1, :b => 2 }
|
|
39
|
+
# h.assert_only_keys( :a, :b ) #=> true
|
|
40
|
+
# h.assert_only_keys( :a ) #=> ArgumentError
|
|
41
|
+
#
|
|
42
|
+
def assert_has_only_keys(*check_keys)
|
|
43
|
+
raise(ArgumentError, "has unexpected key(s)") unless has_only_keys?
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
|