Атанас обнови решението на 24.10.2011 00:22 (преди около 13 години)
+class Array
+
+ def to_hash
+ result = Hash[*self.flatten]
+ end
+
+ def index_by
+ result = {}
+ self.each do |element|
+ key = yield element
+ result.merge!({key => element})
+ end
+ result
+ end
+
+ def subarray_count(subarray)
+ result = 0
+ size = subarray.length - 1
+ self.each_index do |i|
+ result = result + 1 if self[i..i+size].eql?(subarray)
+ end
+ result
+ end
+
+ def occurences_count
+ result = Hash.new(0)
+ self.each do |a|
+ value = self.count(a)
+ result.merge!(a => value)
+ end
+ result
+ end
+end