Йоан обнови решението на 24.10.2011 05:00 (преди около 13 години)
+class Array
+ def to_hash
+ result_hash = Hash.new
+ each { |key, value| result_hash[key] = value }
+ result_hash
+ end
+
+ def index_by
+ result_hash = Hash.new
+ each { |item| result_hash[yield item] = item }
+ result_hash
+ end
+
+ def subarray_count(subarray)
+ subarrays(subarray.length).select { |x| x == subarray }.length
+ end
+
+ def occurrence_count
+ result_hash = Hash.new 0
+ each { |item| result_hash[item] += 1 }
+ result_hash
+ end
+
+ alias occurences_count occurrence_count # make rspec shut up (nudge nudge wink wink)
+
+ private
+
+ def subarrays(subarray_length)
+ (0.. length - subarray_length).map do |subarray_start|
+ slice subarray_start, subarray_length
+ end
+ end
+
+end