From 9293375bda03a79e44c8ae471c3613683e9141fa Mon Sep 17 00:00:00 2001 From: Danielius Date: Sun, 22 Nov 2015 15:57:27 +0200 Subject: [PATCH] array.rb styles --- lib/core_extensions/array.rb | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/core_extensions/array.rb b/lib/core_extensions/array.rb index a6efeee..5a70756 100644 --- a/lib/core_extensions/array.rb +++ b/lib/core_extensions/array.rb @@ -8,18 +8,22 @@ class Array return 0 if empty? info = {} - total = 0 each do |i| info[i] = !info[i] ? 1 : (info[i] + 1) - total += 1 end - result = 0 + result(info, length) + end + + private + + def result(info, total) + final = 0 info.each do |_symbol, count| - if count > 0 - result += -count.to_f / total * Math.log(count.to_f / total) / Math.log(2.0) - end + next unless count > 0 + percentage = count.to_f / total + final += -percentage * Math.log(percentage) / Math.log(2.0) end - result + final end end